问题标签 [questasim]

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.

0 投票
3 回答
303 浏览

system-verilog - systemverilog 中的参数数组

我尝试实例化参数数组,例如

但是当我尝试在 questasim 中编译这个模块时,我得到了这种错误

-- 编译模块顶部**错误:(vlog-13069)parameters_array.sv(3):靠近“[”:语法错误,意外'[',期待';' 或者 ','。

对这个主题的搜索使我找到了以下主题,回答者说 systemverilog 确实允许这种构造。
我真的不想使用长参数向量,因为它会导致新的困难,并且这种构造正在 Vivado 中编译(但为了验证,我需要使用 Questa)。

0 投票
1 回答
173 浏览

code-coverage - 如何加载coverage_db?

我正在尝试为我的设计编写功能覆盖。我编写了所需的封面组,但现在我面临着在测试运行之间传输我的覆盖范围的困难。这里有几个代码示例:

如果我尝试在上面运行测试,我会收到此错误:

** 错误:(vsim-6844) Covergroup '/t/test/cg' 没有在模拟中创建实例,忽略它

显然,问题在于 cg 在测试开始后创建,而 config_db 在尚未创建时加载。所以我这样$load_coverage_db放置run_phase

现在,我收到了这种类型的警告:

** 警告:(vsim-6841) Covergroup 实例 '/t::test::cg ' 存在于模拟中但未在数据库中找到

我需要做什么,才能让我的旧覆盖率在测试中?

0 投票
1 回答
311 浏览

verilog - Questasim - 是否可以在新设计上记录和重新加载信号?

我正在运行一个包含很多组件的测试(UVM)。这是一个顶级测试,但是我正在调试一个内部模块,我只对连接到该模块的接口的信号感兴趣。因为它是一个 TL,所以我需要很长时间才能到达我感兴趣的时间点。这些信号是其他模块的产物,但我现在对那些不感兴趣。

目前我正在使用 Questa sim,所以我想知道是否有一种方法可以存储这些信号中的事件,以便我可以只重新运行这些信号。因此我的意图是更改模块,重新编译并直接使用新版本的输入,而不必实际运行整个测试并等待那么长时间。

0 投票
2 回答
646 浏览

modelsim - 从命令行创建 questasim/modelsim 项目

我正在尝试编写一个 makefile 来编译和模拟一些 vhdl 代码。

有没有办法从 linux/windows 命令行创建项目?

如果您打开该工具并运行“新项目”,这很简单,但没有从命令行执行此操作的文档。

0 投票
1 回答
171 浏览

tcl - 如何在 VHDL 中检查所有组件层次结构级别的信号值

通常,我使用 TCL 和模拟器命令执行此操作,以确保在复位期间所有信号都初始化为有效值,但我想知道是否有办法在纯 VHDL 中完成此操作。

这是一个基于 TCL 的示例。使用起来非常方便,*并与模拟器命令foreach一起循环捕获所有信号名称。每当我想检查所有信号是否有效时,我都会find调用该过程。check_sigs

我知道我可以在 VHDL-2008 中使用分层名称,但是以这种方式写出每个信号太麻烦了。

有谁知道用纯VHDL做到这一点的方法?

0 投票
1 回答
1877 浏览

modelsim - 从 Questasim 的代码覆盖范围中排除某些设计单元

我在 questasim 上运行了代码覆盖率,并得到了 ucdb 文件作为输出。但是我需要排除连接到顶部模块的一些模块的代码覆盖率。我不需要覆盖一些模块,这可以改善覆盖率报告。

如果不再次运行模拟,我该如何做到这一点?谢谢。

0 投票
1 回答
411 浏览

linux - 使用 shell 脚本和 make 实用程序运行回归

我想使用 shell 脚本运行回归,该脚本应该通过make命令启动每个测试。以下是我的脚本的简单版本:

上述脚本的问题在于,当 make 命令启动一个程序时,该脚本会进入下一个迭代,而无需等待上一个迭代中该程序的完成,并继续从文件中读取下一行。

make 实用程序中是否有任何选项可以确保它等待程序完成?也许我错过了其他东西。

这是 Makefile 的相关部分:

0 投票
1 回答
354 浏览

modelsim - 在 Modelsim/Questasim 中有没有办法增加波浪线的厚度?

使用带有 4K 显示器的 Modelsim/Questasim 10.6b 很难看到信号的线路,尤其是 std_logic 信号,矢量要好一些。

我能够通过编辑->首选项增加文本大小,但没有发现任何类似的波浪“重量”或“厚度”。

0 投票
1 回答
626 浏览

verilog - 使用两个 4 CLA 的 Questasim 中 SystemVerilog 的 8 位进位超前加法器错误

当我模拟 CLA4Top、CLA8Top 和测试时,我不断收到错误消息。给出了测试平台,整个项目都编译好了。对于 CLA4Top,我认为“cout”看起来是正确的,但“sum”与预期输出不匹配。我改变了它,这是更新的代码:

这是 CLA4Top.sv

这是 CLA8Top.sv

这是 testbench.sv

有什么我可以做的改变会给我$display("***Congratulations, No errors found after %d tests***", test_count);你可以看到的吗?我有什么问题,为什么?我将包括运行 CLA4Top.sv 的成绩单。

模拟 CLA4Top 并运行 20000000

0 投票
1 回答
165 浏览

system-verilog - 我正在为一个模拟原理图的模块编写一个 SystemVerilog 测试台,但不知道为什么脚本窗口说没有连接到端口 Y?

下面的示意图是我为我的模块建模的。这是一个 SystemVerilog 硬件分配,我们必须使用连续分配。签名模型给了我们。请注意,电路中没有延迟。我遇到的问题是我真的不知道自己在做什么,因为我是 SystemVerilog 的新手,这是我第一次必须编写自己的测试台。 示意图到模型

这是模块代码:

到目前为止,这就是我的测试平台代码:

作业要求“该电路的测试平台应在一个初始块中设置 $monitor() 语句,并生成所有可能的输入组合,在更改输入之间有 #5 ns 的延迟。” 我们使用 QuestaSim 或 ModelSim 进行模拟,这里是成绩单和波形窗口。 tb 项目窗口 截图 tb 波形窗口截图

我必须添加时钟吗?为什么它说端口 Y 缺少连接?我的波形窗口看起来正确吗?