vhdl - 使用 Quartus Prime 和 Modelsim 对 CPLD 进行 VHDL 时序仿真
问题描述
我正在为开发板上用于测试的Intel Max II CPLD开发设计 ( VHDL ) 。稍后这很可能会被Coolrunner II CPLD取代。
我对此很陌生。使用Quartus Prime Lite和Modelsim的基本编译和仿真工作正常。我目前的设计是这样的:
-- The top level entity used for synthesis.
entity foo is
port(...)
end foo;
architecture rtl of foo is
...
begin:
...
end rtl;
-- The top level entity used for simulation producing some test input signals.
entity foo_tb is
end foo_tb;
architecture behave of foo_tb is
...
component foo is
port (...);
end component foo;
begin:
UUT : foo
port map (...);
...
end behave;
查看生成的(RTL)模拟,我无法发现真实硬件上存在的任何信号延迟,只是我在architecture behave of foo_tb
and中指定的行为architecture rtl of foo
。
但我曾预计编译过程会进行综合,然后生成一些VHDL 代码,其中包含类似architecture <some_name> of foo
用于模拟目的的东西,它模拟真实硬件的行为,考虑到综合的最坏情况下的时序行为。
- 是否生成了这样的 VHDL 代码?
如果生成这样的 VHDL 代码:
- 我在哪里可以找到生成的VHDL文件?
- 我怎么能从内部使用它
architecture behave of foo_tb
如果未生成此类 VHDL 代码:
- 如何使用我的设计的详细时序模型进行仿真,该模型源自特定CPLD上的具体综合?
- 我如何以编程方式为这种模拟生成输入信号?
- 我如何以编程方式检查这种模拟的正确输出信号?
解决方案
推荐阅读
- python - 仅包含 2 个输入列表之间共有元素的列表(如果没有重复,我无法做到)
- kotlin - How to sort arraylist of ZonedDateTime in Kotlin?
- javascript - 使用 JavaScript 上传文件时的文件类型和大小验证
- kotlin - Kotlin - 如何检查矩阵中是否存在字符?
- c++ - 在 Linux 中从 C++ 向 Mysql 中插入数据时遇到问题
- flutter - 保持按钮固定在屏幕底部,但仅当上述列表高度小于设备高度时
- azure-functions - 带有事件中心触发器的 Azure 函数写入重复消息
- node.js - nodejs greenlock-express不会创建证书
- python - request.get() 中的 auth 关键字有什么作用?
- python - 带有 boost/dll 的 pybind - 双重使用 DLL?