问题标签 [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 代码,尤其是从 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)中没有看到任何竞争条件,两个版本都是相同的。
可能是什么原因?
recursion - iverilog递归函数导致分段错误
这是有问题的代码:
基本上,iverilog (Icarus Verilog) 只是给了我一个Segmentation fault: 11 vvp svsim
错误。
我尝试了一些调试,它似乎不喜欢递归,即使我有一个递归锚。
不过,从内部调用函数不是问题。也测试过。
任何帮助表示赞赏!
编辑:
这里我有一段代码调用此函数失败:
verilog - 条件中具有无效值的 IF 语句的 Verilog 行为
如果 Verilog 中的 IF 语句在条件中具有无效值,则仅评估 else 分支。(在模拟中。)
例如下面的模块 SimpleIfStatement2b if a = 1'bx: b=0'b1
我在 Vegilog-2005 标准中搜索这种行为,但找不到它。
这种行为是标准的一部分还是仅在iverilog模拟器的实现中?这也是 VHDL/SystemVerilog/SystemC 的情况吗?描述这个的标准在哪里?
标准输出:
verilog - 结构verilog中的时钟生成代码
我试图从 Thomas Moorby 的“The Verilog HDL”一书中自学verilog 编程。在其中一个练习中,他们要求仅使用结构 verilog 生成时钟(当然 $monitor 部分除外)。
我尝试了以下方法:
问题是,它适用于 iVerilog 0.9.7,但对于 10.0 及更高版本,它不起作用.. 我只是得到 clk 的未定义值!
看起来不像 iVerilog 中的错误,否则它可能已在 10.x 版本之一中修复。有没有其他方法可以让这个工作?另外,当前代码有什么问题(如果有的话)?
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:
verilog - Verilog 测试台中的信号未从初始状态继续前进
我正在使用一个由两个相互连接的 d_flipflops (DFF) 组成的系统(第一个 DFF 的输出 q 连接到第二个触发器的输入 d。我创建了 DFF 的子模块并将它们嵌入到顶部模块中。然后我创建了一个测试台。但是问题是无论我提供的时间延迟如何,模拟都不会超出初始状态。它说模拟在 t=0 完成。虽然编译没有错误,但我不明白我的代码有什么问题。我还尝试提供绝对时间值作为测试台中的延迟(例如 #50ns 而不是 #50)但没有用。我尝试在 iverilog 中对此进行模拟,还尝试了来自 EDAplayground 的不同编译器。它会如果有人可以对我的问题提供见解,对我有很大帮助。谢谢!
这是测试台:
verilog - 如何在verilog中将一个模块的输出用作另一个模块的输入?
我正在尝试使用在 Tanenbaum 教科书中给出的 verilog 来实现 IJVM,为此我正在制作 ALU 单元和移位寄存器,我已经分别制作了 ALU 和移位寄存器单元,现在我想结合这两个单元,即我想要将ALU的输出即“result”(请参阅代码)作为移位器的输入即“Alu_out”(请参阅代码)。并得到最终输出形式的移位器即“C”(请参阅编码)。任何人都可以帮助解决这个问题以及如何编写测试平台。
verilog - JK 触发器状态图实现的错误输出
我正在尝试在verilog中实现一个简单的JK触发器FSM。但是我看到输出“q”和“q_not”在多个时间点都是错误的。我在下面展示代码和输出。有人可以让我知道代码有什么问题。特别是我想知道这个实现有什么问题,即使还有其他方法可以实现 JK 触发器。
JK触发器和测试台模块
测试台模拟的输出,显示输入值和主要输出值
enter code here
谢谢!