问题标签 [iverilog]

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

verilog - 如何测量 gtkwave 中两个标记之间的时间?

我正在使用iverilog 模拟我的verilog 设计并将输出转储到fst 文件。然后我使用 gtkwave 查看波形。gtkwave 允许我添加一些标记。然后我如何测量任何两个标记之间的增量。我通读了 gtkwave 手册,它谈到了 Toggle Delta-Frequency 选项

切换增量频率

允许您在测量标记之间的距离时在主窗口右上角的增量时间和频率显示之间切换。默认行为是显示增量时间。

但是,我的波形窗口中没有显示任何增量值。

增量频率切换

我在这里错过了一些选择吗?

我在 cygwin 下运行 gtkwave 的 Windows 上。

0 投票
1 回答
138 浏览

verilog - 顺序块中的位移失败,组合没有。为什么?

几天来我一直在调试一段 Verilog 代码,尤其是从 FX2LP(赛普拉斯 CY7C68016A)USB 控制器发送和接收字节。无需赘述,数据在每个周期中按字节发送和传输。对于我的测试,我使用了一个 16 字节的缓冲区,我首先填充它然后再传回(回声测试)。

我的代码的重要部分如下所示:

此代码在模拟(iVerilog)中完美运行。但是在 Altera Cyclone 上合成和执行时,我得到了非常奇怪的错误。例如,大多数情况下,每个字节都会读取传输到 FPGA 的第一个字节。例如,发送11 22 33 44 55 66 ...将接收11 11 11 11 11 11 ...

现在,当我改为引入一个新变量时:

并将顺序always @(posedge FIFO_CLK)块中的部分替换为:

在组合部分:

然后它起作用了!

这意味着:我所做的只是将寄存器的移位从顺序块移动到组合块。

我在我的代码和模拟(iVerilog)中没有看到任何竞争条件,两个版本都是相同的。

可能是什么原因?

0 投票
3 回答
243 浏览

recursion - iverilog递归函数导致分段错误

这是有问题的代码:

基本上,iverilog (Icarus Verilog) 只是给了我一个Segmentation fault: 11 vvp svsim错误。
我尝试了一些调试,它似乎不喜欢递归,即使我有一个递归锚。
不过,从内部调用函数不是问题。也测试过。
任何帮助表示赞赏!

编辑:
这里我有一段代码调用此函数失败:

0 投票
3 回答
153 浏览

verilog - Verilog 程序在 4x1 多路复用器上没有得到想要的输出

我有这个程序,我想为这个图 4x2 解码器图制作:我一直试图通过否定它们来将输出数组的初始值从 0 更改为 1 和 1 到 0,但我仍然没有得到想要的结果。

4x1 多路复用器

我的运行时输出假设与此相同: http ://athena.ecs.csus.edu/~changw/137/prg/2/demo/mux4x1-output.txt (或此处的代码)

但我明白了......我做错了什么?

0 投票
2 回答
2213 浏览

verilog - 条件中具有无效值的 IF 语句的 Verilog 行为

如果 Verilog 中的 IF 语句在条件中具有无效值,则仅评估 else 分支。(在模拟中。)

例如下面的模块 SimpleIfStatement2b if a = 1'bx: b=0'b1

我在 Vegilog-2005 标准中搜索这种行为,但找不到它。

这种行为是标准的一部分还是仅在iverilog模拟器的实现中?这也是 VHDL/SystemVerilog/SystemC 的情况吗?描述这个的标准在哪里?

http://tpcg.io/nAY75e

标准输出:

0 投票
2 回答
5756 浏览

verilog - 结构verilog中的时钟生成代码

我试图从 Thomas Moorby 的“The Verilog HDL”一书中自学verilog 编程。在其中一个练习中,他们要求仅使用结构 verilog 生成时钟(当然 $monitor 部分除外)。

我尝试了以下方法:

问题是,它适用于 iVerilog 0.9.7,但对于 10.0 及更高版本,它不起作用.. 我只是得到 clk 的未定义值!

看起来不像 iVerilog 中的错误,否则它可能已在 10.x 版本之一中修复。有没有其他方法可以让这个工作?另外,当前代码有什么问题(如果有的话)?

0 投票
1 回答
1224 浏览

verilog - Error in compilation: Replication operator in Verilog

I am writing verilog code (behavioural) for a 16-bit ALU. I am facing compilation error:

I am facing compilation error in this line of op_sar:

This is the error I am receiving:

0 投票
1 回答
274 浏览

verilog - Verilog 测试台中的信号未从初始状态继续前进

我正在使用一个由两个相互连接的 d_flipflops (DFF) 组成的系统(第一个 DFF 的输出 q 连接到第二个触发器的输入 d。我创建了 DFF 的子模块并将它们嵌入到顶部模块中。然后我创建了一个测试台。但是问题是无论我提供的时间延迟如何,模拟都不会超出初始状态。它说模拟在 t=0 完成。虽然编译没有错误,但我不明白我的代码有什么问题。我还尝试提供绝对时间值作为测试台中的延迟(例如 #50ns 而不是 #50)但没有用。我尝试在 iverilog 中对此进行模拟,还尝试了来自 EDAplayground 的不同编译器。它会如果有人可以对我的问题提供见解,对我有很大帮助。谢谢!

这是测试台:

0 投票
1 回答
922 浏览

verilog - 如何在verilog中将一个模块的输出用作另一个模块的输入?

我正在尝试使用在 Tanenbaum 教科书中给出的 verilog 来实现 IJVM,为此我正在制作 ALU 单元和移位寄存器,我已经分别制作了 ALU 和移位寄存器单元,现在我想结合这两个单元,即我想要将ALU的输出即“result”(请参阅​​代码)作为移位器的输入即“Alu_out”(请参阅​​代码)。并得到最终输出形式的移位器即“C”(请参阅编码)。任何人都可以帮助解决这个问题以及如何编写测试平台。

0 投票
1 回答
100 浏览

verilog - JK 触发器状态图实现的错误输出

我正在尝试在verilog中实现一个简单的JK触发器FSM。但是我看到输出“q”和“q_not”在多个时间点都是错误的。我在下面展示代码和输出。有人可以让我知道代码有什么问题。特别是我想知道这个实现有什么问题,即使还有其他方法可以实现 JK 触发器。

JK触发器和测试台模块

测试台模拟的输出,显示输入值和主要输出值

enter code here

谢谢!