问题标签 [synthesis]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
293 浏览

minimize - 将布尔函数映射到单元格

我需要以最佳方式(或几乎最佳方式:D)将已知的布尔表达式映射到 AND、OR、NOT 门,即执行表达式的单元库绑定(又名技术映射)。

该表达式有 4 个输入变量(A、B、C、D)并产生 4 个输出函数 F1、F2、F3、F4。

是否有可以执行任务的简单工具?

布尔表达式:

F1 = A' BC D' + A' B' C' D' + A' B C' D' + A B' C + A' BCD + A B' C' D + A' B' CD

F2 = A' B' C' D' + A' B' C' D + AB C' + A' BCD + B' C D' + A B' C' D

F3 = A' BC D' + ABD + B' C D' + A B' C' D + A' B' CD + A B' D'

F4 = AB C' D + A' B C' D' + A' B' C' D + AC D' + A' BCD + A' B' CD + A B' D'

0 投票
2 回答
822 浏览

verilog - 固定输入的 Verilog 时序分析

我有一段简单的 Verilog 代码,我在其中修复了两个数字。45 和 46。将它们相乘并显示输出。为此,我编写了一段简单的 Verilog 代码。

但是,当我生成综合后仿真模型时,综合报告不显示任何时序分析。但是,当变量是输入时,它会找到电路的逻辑和布线时间。

我对为固定输入创建的电路的这些指标感兴趣。

这是我的代码:

无论如何我可以让时序分析为此工作吗?

0 投票
2 回答
864 浏览

ruby-on-rails - 编程综合;究竟是什么?

目前我正在读一本关于软件开发工程的书。在本书的第一章中,它说:

综合是一种用于开发软件的生产力机制,通过该机制生成实现而不是手动创建。

它让我感到困惑,我在互联网上找不到任何明确的解释。那么任何人都可以告诉我一个在编程领域的真实例子吗?如果它类似于代码生成器(例如,用于自动创建项目目录和代码文件的 Ruby on Rails 命令行);它与元编程有什么区别?

谢谢。

0 投票
2 回答
923 浏览

parsing - FPGA 网表解析器

在几乎所有的 FPGA 综合工具中,HDL 综合的输出是某种 EDIF 格式。例如,在 Synopsys 中,这种格式具有扩展名 .edn。然而,这种格式已经依赖于 FPGA 技术(取决于在综合之前选择的 FPGA 类型及其单元)。同时,在所有综合工具中,我可以看到具有最简单 OR、AND 门和 DFF 的门级表示,但具有这种表示级别的输出文件是加密的。

在 FPGA 综合过程之后,我必须获得最低级别的(AND、OR、DFF)网表。由于生成的 EDIF 文件依赖于技术/单元,因此解析它们并不容易(我需要 FPGA 单元描述库)。无论如何,我可以通过任何综合程序获得最低级别的网表表示吗?

预先感谢您的关注。

0 投票
1 回答
607 浏览

verilog - 在 Verilog 中调整模块的工作频率

我正在创建一个相当复杂的模块,其中涉及 2 个模块的时序分析,每个模块都有自己的算法,但将 2 个有符号数作为输入并输出一个有符号数。

我正在使用 Xilinx 作为我的综合工具在 Verilog 中为 FPGA 设计这个模块。现在我了解到赛灵思通常会为任何模块提供最坏情况下的时序分析。这意味着,如果我有一个从输入到输出(包括路由时间)需要 250 皮秒的数字范围,如果甚至有一组输入需要 400 皮秒,那么 Xilinx 显示的时序分析将是 400 皮秒。

我的目标是找到:

1) 如果模块 1 对于任何一组数字都比模块 2 快。

1) 模块 1 比模块 2 快的数字范围。

我能想到的唯一合乎逻辑的方法是提高模块的工作频率。那就是强制两个模块在 300 皮秒而不是 400 皮秒之后给出它们的输出。

显然,如果我提高工作频率,测试台中的一些输入会给出错误的输出。我的假设是,首先开始给出错误答案的模块具有算法。

所以我的疑问是:

1)是否可以使用 Xilinx 增加 Verilog 中模块的工作频率(在综合或分析期间我必须强制执行的一些设置)。如果没有,是否有更好的工具可以进行时序分析?

2)这种方法可行吗?没有使用 Cadence 进行门级合成,无论如何,我可以使用 Verilog 找出每个门的每组有符号数字的实际时间延迟分析吗?

0 投票
1 回答
10157 浏览

file - VHDL:缺少以下文件:.stx、.ncd、.xrpt

在我开始综合之前(只要我按下“保存”),我就会收到以下警告:

有谁知道有什么问题?

0 投票
1 回答
924 浏览

matlab - cwtft中的逆连续小波变换和[Parm]

cwtft什么是'parm'意味着当你在or中设置小波函数的名称时icwtftwave = {wname,[7.6]}. 当我使用'morl'函数cwtfticwtft变换时,我也可以改变 Fb 和 Fc 吗?如果没有,那么如何使用 cwt 变换重建我的信号?因为 cwt 让我为 fb 和 fc ( cmorfb-fc) 选择可选值。Matlab 没有直接的小波逆变换功能。

0 投票
2 回答
375 浏览

hardware - 是否可以避免指定默认值以便在 Chisel 中获得 X?

以下Chisel代码按预期工作。

但是,如果我不指定,则会出现编译时错误io.rdData := UInt(0),因为需要默认值。有没有办法在默认情况下明确指定X或让模块没有默认输出 X,erm?

您可能想要这样做的一些原因是,如果ren未断言,则任何内容都不应依赖于输出,并且 Xs 允许您指定它,并且指定 X 可以告诉综合工具它是无关紧要的,用于优化目的。

0 投票
3 回答
340 浏览

vhdl - 使用记录是解决VHDL中所有锁存问题的方法吗

最近有人告诉我,解决 VHDL 合成期间所有(大多数)意外锁存器问题的解决方案是将任何有问题的信号记录在案。

这似乎有点好得令人难以置信,但我对 VHDL 的经验并不多,所以可能还有其他一些我没有考虑的东西。

我应该把我所有的信号都记录下来吗?

0 投票
1 回答
381 浏览

scala - 测试工具中的凿子运行时错误

这个凿子代码工作正常:

然而,这个 - 一个小的变化 - 会产生运行时错误: