问题标签 [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 回答
410 浏览

verilog - 我收到编译错误:data_out 不是有效的左值

  1. 这是模块单元...

    /li>
  2. 这是测试台

    /li>
  3. 我正在使用 linux 中的 iverilog 命令编译此代码。

  4. iverilog -o register_unit.v register_unit_tb.v

  5. 在编译代码时,它在 data_out 端口上出现错误,它说它是无效的转换。

  6. 错误是 data_out 不是 test_bench 中的有效左值,并且 data_out 在这里被声明为线。

0 投票
2 回答
9805 浏览

verilog - icarus 的 SystemVerilog 支持(iverilog 编译器)

iverilog在 Mac 上使用,我在编译一些包含always_ffalways_comb块的代码时遇到问题。ModelSim 编译这些代码没有任何问题。是否可以配置iverilog为支持always_ffalways_comb阻止,或者编译器不支持它们?

0 投票
1 回答
4503 浏览

verilog - Verilog - 嵌套生成具有多个 genvars 的循环,不可能?

我试图在下面的代码中向我的生成循环中添加第二级嵌套,但是iverilog 抛出了一个错误,即寄存器j未知:

../crc.v:119: register ``j'' unknown in crc_tb.U_crc.loop[31].

那么是否可以在verilog中使用多个genvars?看起来像是j被解释为一个寄存器。

代码片段:

0 投票
2 回答
1903 浏览

verilog - 如何在verilog中获得可合成的延迟

我在verilog中做了一个错误控制代码,我得到了18000 ns延迟的解码数据。我需要将解码后的数据与原始数据进行比较,但我的原始数据开始大约 100 ns,那么如何对这两个信号进行比较。

如何在verilog中延迟我的输入数据并且应该是可合成的?

我需要实现这是硬件。

0 投票
1 回答
760 浏览

arrays - Icarus 不知道如何解析 localparam 数组?

我正在使用 Windows 8.1 的 Icarus Verilog v10 并且在编译一维数组时遇到了问题,例如:

或二维数组,如:

当我尝试在命令提示符下使用 iverilog 编译它时:iverilog -o tb.vvp ".v files here"我收到以下错误:

第 39 行和第 54 行是上面两个阵列所在的行。

出了什么问题,我该如何解决这个荒谬的错误?

0 投票
1 回答
197 浏览

verilog - $signal 的算术移位在条件表达式中给出不同的结果并且总是阻塞

我正在为 MIPS 编写 ALU。

我曾经把它写成顺序逻辑(或总是块?我不知道为什么但c必须是reg所以我猜它是顺序逻辑?)

好像是组合逻辑

而且效果很好,4'b0100: c = $signed(mux_b) >>> mux_a[4:0]可以得到正确的输出。但是由于某些原因,我决定使用组合逻辑条件表达式。

这几乎是一样的,除了c是一个wire

我运行这段代码,它告诉我,4294967280 (FFFFFFF0) >>> 8 = 33554431 (1FFFFFF) 这太荒谬了。

但如果我(op == 4'b0100) ? ({ {31{mux_b[32]}}, mux_b} >> mux_a[4:0]) :改用,我可以得到正确的结果。

谁能告诉我原因?以下是这些变量的定义方式(使用 33 位作为溢出标志)

0 投票
2 回答
214 浏览

time - Verilog:顺序阻塞时间

为什么顺序块(非并行)中所有指令的时间都相同?

IE

输出:

0 投票
1 回答
136 浏览

testing - Verilog:=== 运算符不工作

我有一根电线:

最后,我使用以下方法在网络上测试二进制文件:

输出:

当它清楚地显示时为什么它会失败module3Output=1

如果需要,我可以发布完整的代码。

0 投票
2 回答
2437 浏览

verilog - Verilog:如何扩展寄存器中的二进制文件?

对寄存器中的二进制文件进行符号扩展和零扩展的代码格式是什么?

IE

符号扩展a为 32 位,将其添加到 中b,并将结果放入c.

零扩展a为 32 位,将其添加到b,并将结果放入c.

0 投票
2 回答
379 浏览

verilog - Verilog:使用原始模块与位运算符的实现

我正在阅读的教科书使用内置的原始模块实现了 1 位加法器:

但是为什么不使用按位运算符呢?看起来更简单。

除非按位运算符隐式使用原始模块?