问题标签 [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.
verilog - Verilog 错误:无法在模块中绑定参数
我是 Verilog 的新手,如果有人能帮我解决这个错误,我将不胜感激:
我正在尝试编写一个测试台PU_tb,它正在实例化这个模块:
模块 PU_conv 如下所示:
我收到此错误:
错误:无法在“PU_tb”中绑定参数“image_height”
错误:无法在“PU_tb”中绑定参数“image_width”错误:无法在“PU_tb”
中绑定参数“kernel_height”
错误:无法在“中绑定参数“kernel_width” PU_tb'
内核和图像的宽度和高度声明如下:
我究竟做错了什么?
verilog - 如何使用生成语句重写此代码?
我有一个看起来像这样的 Verilog 代码。
如何使用generate
语句编写此代码?请注意,输入top
固定在top
. 我无法将其更改为像a[2:0]
.
for-loop - “for”的输出是未知的,而不是 Verilog 中的 1
我正在使用 Icarus iVerilog 来合成和测试我的代码,但是当逻辑上应该出现 1 时,我得到了未知值。这是我正在尝试做的一个例子。
这应该产生一些形式的门
我的预期输出是
我实际上得到
我找不到 x 的任何原因,并且开始怀疑这是 iVerilog 的问题。
verilog - 移位和加法乘数的 Verilog 代码
大家好,我创建了一个 Shift - And - Add 乘数。我对为什么我的输出错误并且总是在 85 感到困惑。这是测试台的问题吗?顺便说一句,它正在工作。
新1.v
tb_new1.v
我多次运行代码,一切似乎都在遵循我的 FSM。谁能指出哪里出错了。对这个真的很困惑
version-control - vcs 与 iverilog/modelsim 对 Systemverilog 规则 4.7(非确定性)的解释不同
对于 SystemVerilog 的 2012 规则 4.7 是如何实现的,我仍然有些困惑。该规则规定,在这样的情况下:
所有分配都将安排在非阻塞分配队列上,然后必须按顺序执行。最后一个值获胜。到这里,一切都清楚了。
但对于所有模拟器来说,接下来发生的事情并不相同。iverilog 和 Modelsim(至少 Vivado 2016/3 版)在“a”上创建一个事件,这会导致 cnt 增加。这似乎也符合卡明斯先生在 SNUG 2000 上说明的行为
然而,VCS 会过滤掉中间值并仅应用最后一个值,顺便说一下,这也是真正的触发器工作的方式。
在这种情况下,这不是纯粹的假设性讨论,仿真结果不同,iverilog/modelsim 行为可能会导致很难捕捉到的错误,因为触发器会切换,但波形中看不到值变化。
另一点是:如果iverilog/modelsim 是正确的,那么为什么他们要创建一个事件而不是两个?
编辑:附加说明。
上面的例子确实意义不大。一个更现实的情况是
这是完全合法的,并且在真正的硬件中永远不会出现故障。第一个总是在逻辑上实际上等同于
但是,如果您使用 ModelSim 模拟第一个版本,您会看到您的 q 愉快地切换,clk2 常量为 0。这将是调试的噩梦。
arrays - 如何在“verilog”中创建一个数组(里面的代码)
我想创建一个名为“a”的数组并用任何二进制数填充它
它是一维数组,我的代码必须像 mips 中的 sw 一样(存储字)'m' 我想将它存储在 's' 中的值
谢谢,
///////////////////////////////////
for-loop - 简单 Verilog for 循环中的错误
我正在熟悉 Verilog 做一些小练习,现在我正在尝试实现一个线性反馈移位寄存器。
我正在尝试使用 for 循环对始终块内的触发器链进行建模,但 iverilog 不断给我错误寄存器“i”,在 lfsr 中未知,其中“i”是迭代变量,lfsr 是我的模块。
有人可以帮帮我吗?
谢谢。
verilog - 包含的iverilog语法?
我试图在我的主文件 (cpu.v) 中包含一个 Verilog 文件 (alu.v)。两个文件都在同一个目录中。
当我尝试编译它时,我收到以下错误。
我看不出 include 语句是怎么错的。我确定我的语法是正确的,如下所示。
verilog - verilog 声明一个非线
试图声明一条线与 C 线相反,我们使用 nC 作为这条线。
我们的教授向我们展示了使用 or (destination,1,2);, and (destination,1,2); , 但不是 not();. 我们认为不应该是(nC, C);但它根本不起作用。