Vhdl Quartus II仅在模拟中使用文件

Vhdl Quartus II仅在模拟中使用文件,vhdl,modelsim,quartus,Vhdl,Modelsim,Quartus,我想在夸特斯进行模拟。因此,我在分配菜单中分配了一个测试台。我的测试台包括我的DUT(D)和一个额外的组件(E),它只用于模拟(所以这个组件包括不可语法化的语句)。如果我从测试台删除E,我的模拟将运行,但当我想在测试台中包含E时,我从modelsim得到错误: my_testbench.vhd(197): (vcom-1195) cannot find expanded name "mylib.only_for_simulation". 如何使Quartus/Modelsim编译E文件?启动

我想在夸特斯进行模拟。因此,我在分配菜单中分配了一个测试台。我的测试台包括我的DUT(D)和一个额外的组件(E),它只用于模拟(所以这个组件包括不可语法化的语句)。如果我从测试台删除E,我的模拟将运行,但当我想在测试台中包含E时,我从modelsim得到错误:

 my_testbench.vhd(197): (vcom-1195) cannot find expanded name "mylib.only_for_simulation".

如何使Quartus/Modelsim编译E文件?

启动模拟时,Quartus分析项目设置中指定的所有文件(可通过菜单分配->设置->文件访问)。但是,它仅从顶层实体开始阐述了DUT所需的实体(参见菜单分配->设置->常规)。 例如,在我的测试项目中,
top
指定了DUT的实体,并且
my_testbench
仅用于模拟
仅用于模拟。这是启动模拟后消息窗口中Quartus的输出:

信息(12021):在源代码中找到2个设计单元,包括1个实体 文件my_testbench.vhdl

信息(12021):在源代码中找到2个设计单元,包括1个实体 文件top.vhdl

信息(12021):在源代码中找到2个设计单元,包括1个实体 仅用于\u simulation.vhdl的文件\u

信息(12127):详细说明顶层层次结构的实体“顶层”

只有存储在细化过程中找到的实体的文件才会自动添加到脚本中以启动ModelSim模拟器。因此,如果
my_testbench
only_for_simulation
被列为项目文件,这并不重要。必须始终在测试台设置中指定进一步的模拟文件,该设置可通过菜单分配->设置->模拟->编译测试台->测试台->新建/编辑访问。在这里,您必须列出存储
my\u testbench
仅用于模拟的文件。您必须按照正确的编译顺序列出它们,也就是说,在
my\u testbench
之前,仅用于模拟。在此对话框中,您还可以通过属性将
only_for_simulation
库设置为
mylib
。这里是我的测试台设置的屏幕截图


生成的ModelSim脚本以扩展名
.do
存储在子目录simulation/ModelSim in文件中。它列出了ModelSim要编译的所有文件。ModelSim只按照给定的顺序编译它们。

额外的组件是写在测试台文件中还是单独的文件中?听起来好像您没有将
仅用于模拟的
编译到
mylib
中。您是否错误地将其编译到默认的
work
库中?@MartinZabel:是的,它在一个额外的文件中@BrianDrummond:我将其添加到
mylib
中。如果转到
设计单位
视图,则此文件位于右侧库中。但它可能无法编译。怎么说Quartus编译这个文件也只是为了仿真?谢谢!这正是我需要的。你是通过尝试(包括因为花了这么多时间在Quartus上而了解它)来了解这一点的吗?还是在任何WP或AppNote中都有关于这一点的章节?我正在用Quartus进行大量FPGA设计,因此,我的答案的第一部分已经在我的脑海中。我只需要检查为其中一个模拟文件设置库名称是否也有效。我不能说在这个话题上是否有一个好的WP或AppNote。