问题标签 [icarus]

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 回答
82 浏览

verilog - 为什么 ModelSIM 不显示时序波形,而 GTKWave 可以?

我对verilog有点陌生,并且在所有基本概念上都在苦苦挣扎。我正在尝试在 ModelSim 中显示时序波形,其中只是抛出“ # (vish-4014) No objects found matching '/tb/*'. ”(在我的情况下)。

而当我在 VSCode 中使用 icarus 和 gkwave 模拟测试台时,它会显示我需要的必要波形。在 VS Code 中,我运行

GTKwave 弹出并显示波形。我正在测试的硬件需要 2 个数字作为输入并返回小数和大数(附在下面的 cns 模块)。我正在模拟的测试平台名为“tb.v”,内容如下:

我正在实例化的相关模块是:

和:

0 投票
1 回答
493 浏览

verilog - 打开 .vcd 文件时出错。没有这样的文件或目录

我的 Verilog 代码存储在C:\FA. 共有三个文件:

我按照我的书的步骤。

  1. iverilog -o fa.vvp
  2. vvp fa.vvp
  3. 结束
  4. getwave fa.vcd &

当我getwave fa.vcd &用来模拟它,然后它显示:

我首先使用 Icarus 和 GTKwave,然后我不知道如何修复它。

0 投票
1 回答
90 浏览

verilog - Verilog中的洗衣机

所以这是我 对洗衣机代码的问题陈述。

我已经完全按照给定的规范编写了模块,但我对 100 个时钟周期或 50 个时钟周期感到震惊。

我不知道如何使代码停在那里并等待 100 个时钟周期或 50 个时钟周期执行,在时钟周期执行期间对输出没有影响。

0 投票
1 回答
42 浏览

verilog - 未调用 Verilog 模块

我正在开发一个程序,该程序将采用 BCD 值,将其转换为二进制,并将给定值倒计时为 0。BCD 转换模块运行良好,但似乎我的“微波”模块没有被调用。

我这个程序的输出是:

我可以看到转换,但倒计时不会发生。谁能解释我可能出错的地方或指出可以帮助我回答这个问题的资源方向?我的代码如下:

0 投票
1 回答
43 浏览

verilog - 在 Verilog 测试平台中测试可参数化模块的多种配置

假设我有一个可参数化的 Verilog 模块,如下例所示:

使用 Verilog 1364-2005,我想编写一个测试平台,在这个模块上运行具有许多不同值的测试NUMBER_OF_PARALLEL_CORES

我知道可行的一个选项是使用一个generate块来创建一堆number_cruncher具有不同值的不同 s NUMBER_OF_PARALLEL_CORES。但是,这不是很灵活 - 需要在编译时选择值。

当然,我也可以显式地实例化许多不同的模块,但这很耗时,并且不适用于我想做的那种“模糊”测试。

我的问题:

  • 有没有办法通过使用从命令行传入的 plusarg 来做到这一点$value$plusargs?(我强烈怀疑 Verilog 1364-2005 的答案是否定的)。
  • 是否有另一种方法可以在测试台中“模糊”模块参数化,或者使用生成块是唯一的方法?
0 投票
1 回答
40 浏览

simulation - 使用 Icarus 模拟 verilog 输出时,有没有办法在模拟中包含 FPGA 硬件功能,例如 RAM?

我是 FPGA 新手,并且开始使用使用 ICE40UP5K 芯片的 iceBreaker 板。我的目标是制作一个 LED 显示驱动器,驱动类似于流行显示模块上使用的 HUB75 的东西。

我已经能够模拟波形生成,并使用此处的教程在 GtkWave 中查看它: https ://brng.dev/blog/technical/tutorial/2019/05/11/icarus_gtkwave/

我接下来的步骤涉及使用 ICE40UP5K 内部的 RAM 组。有没有办法在我的模拟中包含这个 RAM 的存在?

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

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

提前致谢!