问题标签 [gtkwave]

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 投票
1 回答
83 浏览

verilog - 在凿子中生成用于模拟的寄存器延迟

当我使用 Verilog 时,我想定义一个这样的寄存器:

因为使用#1了 ,所以寄存器在波形中会在位姿后面稍有变化clk,调试时会很清楚。

我想知道我是否可以在 chisel3 中做到这一点?既可以通过 Firrtl 生成 Verilog,也可以在 iotester 中生成“vcd”波形。

0 投票
1 回答
60 浏览

vhdl - GTKW 无法阻止应用程序(GHDL macOS)

我能够在 macos 上成功地分析和运行 GHDL 中的简单 VHDL 计数器,但是在启动 GTKW 时,使用泛型会导致问题。

错误信息是

无法阻止应用程序(GetProcessPID() 返回 184467095516)

任何想法这意味着什么或导致此错误的原因是什么?(谷歌搜索找不到任何东西)

好像和这条线有关

从此代码段

在测试台(围绕该计数器)中打印带有报告的计数器在这两种情况下都很好,即在这两种情况下,计数器都运行 0..7。

所以模拟运行,但 .ghw 文件中似乎有一些令人反感的东西。

0 投票
0 回答
75 浏览

vhdl - 不确定如何为 GTKWave 编写 VHDL(GHDL) 测试平台

我正在尝试通过命令提示符在 GTKWave 上运行以下代码(使用 ghdl,用 VHDL 编写)。我不明白我应该如何编写测试台(在代码下方),以便我可以看到简单代码的所有信号和变量。

试验台:

请你让我知道我哪里出错了或者我需要添加什么以便观察 GTKWave 中信号和变量的变化,提前谢谢你!

0 投票
0 回答
40 浏览

port - VHDL 传入信号不会覆盖端口上的初始值

我正在尝试在 vhdl 中为 riscv 编写解码器,但我产生了一个我自己无法弄清楚的错误。为了重现它,我创建了这些文件:

我想要发生的是在测试中将指令的最低 5 位放入 reg 然后放入 reg_out。因为“test”中的信号用零初始化,word_sup 用 1 初始化,所以 regout 的整数值应该是 2**5 -1 但它始终保持为inst_in 最低 5 位的初始值

为什么 word_sup 的值不覆盖 inst_in 的值?

如果我生成一个 vcd 文件来查看值 gtkwave 告诉我该文件格式错误,因为它是空的。但我不明白为什么会这样。

0 投票
0 回答
7 浏览

verilator - Verilator 生成空的 .vcd 文件,因此 GTKWave 无法检查它们

我目前正在尝试弄清楚如何将 Verilator 与 GTKWave 一起使用来验证和调试 System Verilog 设计,但我遇到了一个问题。我设法让 Verilator 输出一个 .vcd 文件(位于 /tmp/trace.vcd),但是当我尝试使用 GTKwave 打开它时出现错误:

这个错误在我看来文件中没有任何数据,并且在文本编辑器中检查其内容并不能阻止这一点:

当我通过 GTKWave GUI 打开 .vcd 文件时,它只显示一个空的 GUI,进一步支持该文件是空的(奇怪的是,它在命令行上给出了一个错误,但不是通过 GUI。)。

我的代码基于通过获取示例的点点滴滴直到它编译来猜测要做什么(如果我直接尝试,来自 Verilator 存储库的跟踪示例会引发大量 C++ 错误),因此这不起作用并不特别令人惊讶,但我找不到任何文章可以更系统地解释跟踪应该如何在 Verilator 中工作,所以这并没有给我一个继续工作的方向。

以下是显示此错误的 MCVE 的文件:CMakeLists.txt

测试台.cpp:

计数器.sv:

使用这些文件,我只需像普通 C++ 项目一样编译 CMake 项目,然后运行代码:

如何检查通过 Verilator 模拟的 System Verilog 代码的波形?我希望 gtkwave 在使用此过程时显示波形,但事实并非如此。

0 投票
0 回答
16 浏览

verilog - Icarus iverilog - 如何在 Icarus iverilog 中编译和模拟具有多个子模块的 Verilog 代码?

我正在开发一个包含 20 多个 Verilog 模块的大型项目。可以想象,代码中有许多模块实例化。

我一直在使用 ModelSim 进行模拟,但它已经到了一个点,即模拟一切需要花费太多时间。因此,我正在尝试使用 Icarus iverilog,希望运行得更快。

我学习了如何使用以下命令使用其测试平台模拟一个模块:

iverilog.exe -o dsn counter_tb.v counter.v

vvp.exe dsn

gtkwave.exe 计数器.vcd

但是,如何使用顶层模块中的测试平台编译和模拟我的整个设计?我假设我需要先编译所有模块,然后使用测试台,但我没有找到任何命令或指令来这样做。

提前致谢!