ala*_*ack 5 vhdl modelsim quartus
我想在 Quartus 中运行一个仿真。所以我在“分配”菜单中分配了一个测试平台。我的测试平台包括我的 DUT(D) 和一个额外的组件 (E),它仅用于仿真(因此该组件包含不可合成的语句)。如果我从 Testbench 中删除 E,我的模拟就会运行,但是当我想在我的 Testbench 中包含 E 时,我从 modelsim 收到错误:
my_testbench.vhd(197): (vcom-1195) cannot find expanded name "mylib.only_for_simulation".
Run Code Online (Sandbox Code Playgroud)
我怎样才能让 Quartus/Modelsim 编译 E 文件?
当您开始仿真时,Quartus会分析项目设置中指定的所有文件(可通过菜单“Assignment”->“Settings”->“Files”访问)。但是,它仅从顶级实体开始详细说明DUT 所需的实体(请参阅菜单分配 -> 设置 -> 常规)。例如,在我的测试项目中top
指定了 DUT 的实体,并且仅在仿真时需要 和my_testbench
。only_for_simulation
这是启动仿真后 Quartus 在消息窗口中的输出:
信息 (12021):在源文件 my_testbench.vhdl 中找到 2 个设计单元,包括 1 个实体
信息 (12021):在源文件 top.vhdl 中找到 2 个设计单元,包括 1 个实体
信息 (12021):在源文件 only_for_simulation.vhdl 中找到 2 个设计单元,包括 1 个实体
信息(12127):为顶级层次结构详细阐述实体“top”
只有存储在精化过程中找到的实体的文件才会自动添加到脚本中以启动 ModelSim 模拟器。my_testbench
因此,是否将和only_for_simulation
列为项目文件并不重要。更多模拟文件必须始终在测试平台设置中指定,可通过菜单分配 -> 设置 -> 模拟 -> 编译测试平台 -> 测试平台 -> 新建/编辑。my_testbench
在那里,您必须列出存储和 的文件only_for_simulation
。并且您必须按照正确的编译顺序(即only_for_simulation
之前)列出它们my_testbench
。only_for_simulation
在此对话框中,您还可以通过属性设置库mylib
。这是我的测试台设置的屏幕截图。
生成的ModelSim脚本存储在子目录simulation/modelsim中,文件扩展名为.do
. 它列出了 ModelSim 编译的所有文件。ModelSim 仅按照给定的顺序编译它们。