问题标签 [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.
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'
verilog - 固定输入的 Verilog 时序分析
我有一段简单的 Verilog 代码,我在其中修复了两个数字。45 和 46。将它们相乘并显示输出。为此,我编写了一段简单的 Verilog 代码。
但是,当我生成综合后仿真模型时,综合报告不显示任何时序分析。但是,当变量是输入时,它会找到电路的逻辑和布线时间。
我对为固定输入创建的电路的这些指标感兴趣。
这是我的代码:
无论如何我可以让时序分析为此工作吗?
ruby-on-rails - 编程综合;究竟是什么?
目前我正在读一本关于软件开发工程的书。在本书的第一章中,它说:
综合是一种用于开发软件的生产力机制,通过该机制生成实现而不是手动创建。
它让我感到困惑,我在互联网上找不到任何明确的解释。那么任何人都可以告诉我一个在编程领域的真实例子吗?如果它类似于代码生成器(例如,用于自动创建项目目录和代码文件的 Ruby on Rails 命令行);它与元编程有什么区别?
谢谢。
parsing - FPGA 网表解析器
在几乎所有的 FPGA 综合工具中,HDL 综合的输出是某种 EDIF 格式。例如,在 Synopsys 中,这种格式具有扩展名 .edn。然而,这种格式已经依赖于 FPGA 技术(取决于在综合之前选择的 FPGA 类型及其单元)。同时,在所有综合工具中,我可以看到具有最简单 OR、AND 门和 DFF 的门级表示,但具有这种表示级别的输出文件是加密的。
在 FPGA 综合过程之后,我必须获得最低级别的(AND、OR、DFF)网表。由于生成的 EDIF 文件依赖于技术/单元,因此解析它们并不容易(我需要 FPGA 单元描述库)。无论如何,我可以通过任何综合程序获得最低级别的网表表示吗?
预先感谢您的关注。
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 找出每个门的每组有符号数字的实际时间延迟分析吗?
file - VHDL:缺少以下文件:.stx、.ncd、.xrpt
在我开始综合之前(只要我按下“保存”),我就会收到以下警告:
有谁知道有什么问题?
matlab - cwtft中的逆连续小波变换和[Parm]
cwtft
什么是'parm'意味着当你在or中设置小波函数的名称时icwtft
。wave = {wname,[7.6]}
. 当我使用'morl'
函数cwtft
或icwtft
变换时,我也可以改变 Fb 和 Fc 吗?如果没有,那么如何使用 cwt 变换重建我的信号?因为 cwt 让我为 fb 和 fc ( cmorfb-fc
) 选择可选值。Matlab 没有直接的小波逆变换功能。
hardware - 是否可以避免指定默认值以便在 Chisel 中获得 X?
以下Chisel代码按预期工作。
但是,如果我不指定,则会出现编译时错误io.rdData := UInt(0)
,因为需要默认值。有没有办法在默认情况下明确指定X
或让模块没有默认输出 X,erm?
您可能想要这样做的一些原因是,如果ren
未断言,则任何内容都不应依赖于输出,并且 Xs 允许您指定它,并且指定 X 可以告诉综合工具它是无关紧要的,用于优化目的。
vhdl - 使用记录是解决VHDL中所有锁存问题的方法吗
最近有人告诉我,解决 VHDL 合成期间所有(大多数)意外锁存器问题的解决方案是将任何有问题的信号记录在案。
这似乎有点好得令人难以置信,但我对 VHDL 的经验并不多,所以可能还有其他一些我没有考虑的东西。
我应该把我所有的信号都记录下来吗?
scala - 测试工具中的凿子运行时错误
这个凿子代码工作正常:
然而,这个 - 一个小的变化 - 会产生运行时错误: