问题标签 [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.
simulation - Modelsim(Questasim 10.1)保存某个时间的结果并查看原理图数据
我已经启动了一个模拟来重现一个错误。该错误发生在仿真时间为 1 秒后,因此仿真持续时间过长。有没有办法从模拟的某个点(即1s之后)只保存波形和其他信息?这可以加快模拟速度吗?
我还有另一个问题。在这个模拟中,我没有保存 .dbg。我试图打开原理图进行调试,但它没有出现(它说调试数据与加载的设计不匹配)。在这种情况下有没有办法打开模式?我正在使用 Questasim 10.1。
提前致谢
vhdl - Modelsim/Questasim 单元延迟仿真
我想使用 Questasim 10.1 启动单位延迟 RTL 模拟。我已经查看了如何编译设计,并且发现有一个+delay_mode_unit
编译verilog
文件的选项。我的设计是vhdl
。
这种设计有选择吗?
makefile - 从 Makefile 在 Questa 中运行测试
我已经编写了一个 Makefile 来在 questasim 中运行测试。我正在使用以下命令。
vsim -l 成绩单 -voptargs=+acc 测试 -do $(WAVEDIR)/$(WAVE_FILE)
这有助于打开 questa 窗口并模拟测试用例。使用瘦 questa 控制台,我需要运行“run -a”以便完整的测试执行。
有没有我可以在我的 Makefile 中添加的命令,它可以在不使用 questa 控制台命令的情况下执行测试用例。
提前致谢
问候小号
verilog - Questa Sim 中的 assign 语句产生 x 作为输出
我写了一个模块,它应该“或”一个带有延迟版本的信号。但是,当我模拟我的设计时,输出总是 x 而不是 1。我不知道为什么。这是我编写设计的方式:
延迟版本的行为符合预期,但Edge
只是error
转到“x”而不是 1。
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
verilog - System Verilog:时钟块效应传播
考虑以下 SV 代码片段:
另一方面,对于第二个模拟器,时钟模块输出作用于第一个时钟,并且可以在第一个时钟下降沿看到效果。你可以看到下面的图片。 第二个模拟器
另一方面,如果我更改输出偏移延迟,使用小于 100ps 延迟的延迟(es 10ps),则第二个模拟器的行为与第一个模拟器相同(在第二个姿势后, a信号发生变化,输出偏移为10ps)。
两个模拟器中哪一个更符合 IEEE 1800-2017 SV 标准?在我看来,根据我对标准的理解,第一个模拟器更符合标准。
时间刻度设置为 1fs 以避免与模拟器分辨率相关的任何问题。
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 和 @ 引用整个数组的一些语法(愚蠢但需要哈哈):
我在模块中某处的尝试:
“@”附近:语法错误,意外的“@”。
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