问题标签 [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 投票
0 回答
113 浏览

simulation - Modelsim(Questasim 10.1)保存某个时间的结果并查看原理图数据

我已经启动了一个模拟来重现一个错误。该错误发生在仿真时间为 1 秒后,因此仿真持续时间过长。有没有办法从模拟的某个点(即1s之后)只保存波形和其他信息?这可以加快模拟速度吗?

我还有另一个问题。在这个模拟中,我没有保存 .dbg。我试图打开原理图进行调试,但它没有出现(它说调试数据与加载的设计不匹配)。在这种情况下有没有办法打开模式?我正在使用 Questasim 10.1。

提前致谢

0 投票
1 回答
173 浏览

vhdl - Modelsim/Questasim 单元延迟仿真

我想使用 Questasim 10.1 启动单位延迟 RTL 模拟。我已经查看了如何编译设计,并且发现有一个+delay_mode_unit编译verilog文件的选项。我的设计是vhdl

这种设计有选择吗?

0 投票
2 回答
1537 浏览

makefile - 从 Makefile 在 Questa 中运行测试

我已经编写了一个 Makefile 来在 questasim 中运行测试。我正在使用以下命令。

vsim -l 成绩单 -voptargs=+acc 测试 -do $(WAVEDIR)/$(WAVE_FILE)

这有助于打开 questa 窗口并模拟测试用例。使用瘦 questa 控制台,我需要运行“run -a”以便完整的测试执行。

有没有我可以在我的 Makefile 中添加的命令,它可以在不使用 questa 控制台命令的情况下执行测试用例。

提前致谢

问候小号

0 投票
1 回答
75 浏览

verilog - Questa Sim 中的 assign 语句产生 x 作为输出

我写了一个模块,它应该“或”一个带有延迟版本的信号。但是,当我模拟我的设计时,输出总是 x 而不是 1。我不知道为什么。这是我编写设计的方式:

延迟版本的行为符合预期,但Edge只是error转到“x”而不是 1。

0 投票
1 回答
61 浏览

verilog - RTL 仿真中 SystemVerilog 赋值语句的评估

我试图理解为什么当两个语句的条件表达式相同时,两个 SystemVerilog 赋值语句的语句覆盖率可能会彼此不同。

考虑以下:

在此处输入图像描述

如图所示,这两个语句的条件表达式相同,即_T_6

但是,语句的命中数(即语句覆盖率)是不同的(请注意最左侧的数字)。

我期望 RTL​​ 模拟器在 _T_6 的值发生变化时评估这两个语句的次数相等。RTL 模拟器在模拟过程中如何处理这些语句?

0 投票
1 回答
764 浏览

verilog - EDA Playground EPWave $dumpfile

我正在尝试在 EDA Playground 中模拟我的设计。我使用 ModelSim(不是来自 EDA)在我的本地计算机上测试了我的设计文件和测试台文件,它是成功的。但是,我尝试对 EDA Playground 做同样的事情。它在没有 EPWave 的情况下成功编译和运行。当我尝试单击“打开 EPWave”选项时,它给了我一个名为

未找到 *.vcd 文件。EPWave 不会打开。你用过'$dumpfile("dump.vcd"); $dumpvars;'?

我该如何解决这个问题?谢谢。

我还将链接添加到我的设计https://www.edaplayground.com/x/A9Rb

0 投票
1 回答
106 浏览

verilog - System Verilog:时钟块效应传播

考虑以下 SV 代码片段:

在时钟块事件后 100ps 后,信号通过输出同步驱动发生变化。我在使用两个 EDA 模拟器运行它时观察到不同的行为。对于第一个模拟器,时钟模块输出a作用于第二个姿态,信号在第二个下降沿发生变化。你可以看到下面的图片。 第一个模拟器

另一方面,对于第二个模拟器,时钟模块输出作用于第一个时钟,并且可以在第一个时钟下降沿看到效果。你可以看到下面的图片。 第二个模拟器

另一方面,如果我更改输出偏移延迟,使用小于 100ps 延迟的延迟(es 10ps),则第二个模拟器的行为与第一个模拟器相同(在第二个姿势后, a信号发生变化,输出偏移为10ps)。

两个模拟器中哪一个更符合 IEEE 1800-2017 SV 标准?在我看来,根据我对标准的理解,第一个模拟器更符合标准。

时间刻度设置为 1fs 以避免与模拟器分辨率相关的任何问题。

0 投票
2 回答
157 浏览

verilog - SystemVerilog:在界面数组上折叠和&...折叠或| 在接口数组上

我正在尝试非常彻底地更改我的一些代码。我在模块端口签名中使用广泛使用的结构的任何地方,我都想用接口替换(如果合适的话)。

我还没有弄清楚的一个逻辑操作是折叠 & or 和折叠 or。

使用常规的位向量很容易做到这一点:在模块中的某个地方,我可以很容易地执行折叠 & 和 |

但是,我的问题是,如何在跨接口数组的单个位字段上执行此操作

我的尝试如下(即使是愚蠢的尝试):

尝试#1:

我在模块中某处的尝试:

错误:“genvar”附近:语法错误,意外的 genvar,期待 ';'。

尝试#2:

我在模块中某处的尝试:

错误:实例数组“my_intfs”的非常量索引

尝试#3:

我在模块中某处的尝试:

(vlog-13172) 部分选择后的选定名称可能只是接口端口上的 modport。

尝试#4:

我在模块中某处的尝试:

(vopt-7033) 在组合块中驱动的变量“temp_signal”不得由任何其他进程驱动

尝试#5:

我在模块中某处的尝试:

(vopt-7033) 在组合块中驱动的变量“temp_signal”不得由任何其他进程驱动。

尝试#6:

我在模块中某处的尝试:

(vopt-2990) 对未打包类型的非法操作。

尝试#7(愚蠢但想要的哈哈):

我在模块中某处的尝试:

“&”附近:语法错误,意外的“&”

尝试 #8 使用 bash/sh 和 @ 引用整个数组的一些语法(愚蠢但需要哈哈):

我在模块中某处的尝试:

“@”附近:语法错误,意外的“@”。

0 投票
2 回答
50 浏览

verilog - 非阻塞分配中的 SystemVerilog 分层引用

我在我的测试台中看到奇怪的行为,其中非阻塞分配充当连续分配,而不是输出延迟一个周期的 RHS。

我的测试台通过 将模块“cov”绑定到 cpu.cache 的 DUT bind cache cov cov_top,并且在“cov”模块中我有这个非阻塞分配:

DUT 中的 cache.cntrl.LinkState 是非阻塞分配的输出,所以我希望 LinkState_d1 只是简单地跟随来自 DUT 的 LinkState,只是延迟了一个周期。但是在波形查看器中,我看到 LinkState_d1 与 LinkState 完全匹配,就好像它是连续分配一样,这是我在波形中看到的时钟图:

当我们在连续分配的 RHS 中使用分层引用时,会发生什么不同的事情吗?或者这只是一个模拟器错误?我正在使用 questasim 2019.4

0 投票
1 回答
35 浏览

verilog - 我的测试台只显示不关心我的输入

当我测试我的数据流模块时,我所有的输入都是无关紧要的。我不确定问题出在哪里。可能是我的方程式还是我的测试台本身?

这是我的代码。

数据流:

试验台:

输入/输出结果:

[ 测试台输出1