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