问题标签 [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.
verilog - Icarus Verilog 模拟:范围索引表达式不是常数:i
我在 Icarus Verilog 中模拟 16 位 MIPS 网表。这是我在测试台中遇到的错误
当我也模拟 RTL 时,我确实遇到了同样的错误,但我仍然把 vcd 文件转储了出来。在网表的情况下,我什至没有生成 vcd 文件。很高兴听到你的想法。
verilog - 在verilog中实现PIPO
我希望在 verilog HDL 中实现 32 位并行并行输出。这是我写的代码...
但是,这会导致以下错误日志(使用iverilog
):
有什么问题?
verilog - Icarus 产生的结果与 Silos 不同
在尝试编译和模拟 Verilog 模块和激励时,我收到了一些奇怪的结果。如果我在 Silos 中模拟它,代码会按预期运行。如果我在 Icarus(iverlog 和 vvp)中模拟它,则时间与 Silos 不同(从 0 而不是 200 开始,我并不关心 Silos 有 235 -> 255 而 Icarus 有 235 -> 265)。Silos 重复功能按我的预期工作,但是当使用 Icarus 时,我似乎无法弄清楚他们是如何得到这个结果的。此外,当将重复 R2GDELAY 更改为 3 时,Icarus 似乎也没有按预期执行。使用 Icarus 时我是否遗漏了一些东西,例如我必须手动将开始时间设置为 0,以便稍后在模拟中获得准确的结果,还是筒仓自动初始化我必须在 Icarus 中手动执行的变量?此代码取自 Verilog HDL 书籍,可在此处找到http://authors.phptr.com/palnitkar/
这是代码:
这是筒仓的输出:
这是iverilog的输出:
编辑:添加分号,如上面的代码所示。
谢谢你的帮助!
arrays - Icarus verilog 转储内存数组 ($dumpvars)
我尝试转储一个数组(reg [31:0] data [31:0]),但我无法成功。我已经尝试过iverilog wiki中的方式:
它有效,但发生了两件事。
- 出现警告:VCD 警告:数组字 cpu_tb.cpu0.cpu_dp.cpu_regs.data[0] 将与转义标识符冲突。
- 在 GTKWave 中,我在 SST 窗口中有类似的内容:\data[0][31:0]
有什么解决办法吗?
在此先感谢并为我的英语感到抱歉。
verilog - 先进先出的 Verilog 测试平台
谁能帮我为以下代码编写verilog测试台代码!我试过了,但它不起作用!它是具有单个时钟的 fifo(先进先出)的代码。我用icarus模拟器
先进先出4:
verilog - 使用 Icarus Verilog 模拟程序计数器设计时的无限循环
我正在使用以下原型实现一个简单的程序计数器加法器:
当使用 Icarus Verilog 进行模拟时,我在第一个滴答声中得到一个无限循环,在该循环上禁用覆盖并启用计数,因此内部寄存器由 PC 加法器 (PC + 4) 的输出提供。
我将问题简化为一段基本代码,其中 D 触发器用作 1 位寄存器:
模拟卡住后,VCD 输出不显示任何状态变化。
我的猜测是,在特定的滴答声中,加法器不断地输入不同的值(不断地添加),因此它不稳定,模拟器正在等待该值被修复并卡住。
这个设计是否正确(即可以合成并且应该可以工作)?
algorithm - 将组合循环转换为锁存器
您能否推荐一种将任何循环组合逻辑转换为非循环组合逻辑加锁存器的算法?谢谢
verilog - 使用 gEDA 和 iVerilog 的 Verilog 测试平台代码
我的任务是编写一个简单的 2 到 4 解码器,然后显示可能的结果和波形。
我将 gEDA 套件与 Icarus Verilog (iVerilog) 一起用作编译器,并将 GTKWave 用于波形。
这是我第一次使用 Verilog 编码或使用 gEDA 套件。从谷歌搜索看来,我需要遵循这个设计流程:
- 想想你想要实现的设计。在我的情况下,解码器
- 在 VHDL/Verilog 中实现设计。
- 在 VHDL/Verilog 中实现一个测试平台。
- 使用 iVerilog 编译设计文件和测试台文件
- 使用测试台和 .vcd 转储文件使用 GTKWave 显示波形
测试台文件无法编译,我不知道为什么,我尝试了几种变体,但一直出错。任何帮助深表感谢。谢谢你。
这是我的设计文件代码:
这是我的测试台代码:
我正在使用的终端中的命令是:
编辑:这是确切的错误消息
verilog - Verilog HDL 中的始终与永远
Verilog HDL中的always
关键字(不是always @
块)和关键字有什么区别?forever
这是我的发现,但我仍然无法在两者之间划清界限:
来自维基百科:
always关键字的作用类似于“C”构造 while(1) {..},因为它将永远执行。
来自ElectroSofts:
永远的指令不断重复它后面的语句。因此,它应该与程序时序控制一起使用(否则它会挂起模拟)。
有人可以对此给出更清晰的解释吗?谢谢!
compiler-errors - 在 reg 声明中出现解析错误
我从这段代码的第 15 行得到一个解析错误。
这是我正在初始化 input 和 reg 变量的测试台的一部分。
我正在使用 iVerilog 进行合成。这是错误消息:
谁能帮我弄清楚为什么我会遇到解析错误?谢谢!