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

system-verilog - 我可以将 2 个状态超出范围的访问位分配给 4 个状态变量吗?

这应该产生 x 还是 0,因此结果完全是 x 或 0?会计。如果我们越界访问 2 个状态变量到 LRM,那么它应该是 0。将 0 分配给 r2 是否正确。

0 投票
1 回答
77 浏览

verilog - 在以下情况下应该输出什么?

在以下情况下,o/p 应该是什么?我在不同的编译器上运行它,每个编译器得到不同的结果。

0 投票
1 回答
1386 浏览

verilog - 谁能解释 SystemVerilog 中“$sreadmemh”的用法?我在任何地方都没有得到明确的解释

请解释一下这段代码是如何工作的......

0 投票
2 回答
28291 浏览

verilog - Verilog中的4位加减法器

我正在为 4 位加法减法器编写 verilog 代码。我正在使用结构设计。起初,我为 1 位全加器编写了 verilog 代码。然后我用它来编写 4 位加法减法器的代码。

0 投票
1 回答
4305 浏览

verilog - Verilog 中的 4 位 SR 锁存器

我正在为 4 位 SR 锁存器编写 verilog 代码。我认为锁存器是异步的。所以我没有包括时钟。起初我编写了 1 位 SR 锁存器的代码,然后我将该代码用于 4 位 SR 锁存器。

问题是什么?它没有通过测试用例,即 Q(t) = 0x0x, Qc(t) = 1010 and S = 1100, R = 0000, En =0, Q(t+1) = 0x0x, Qc(t+1) = 1010

0 投票
2 回答
91 浏览

verilog - iverilog 错误可能源于不正确的变量类型

我是 Verilog 编程的新手,正在使用 2 个 4 位比较器实现一个 8 位无符号幅度比较器。我相信我的代码已正确实现,但是我收到错误,我认为这是由于不正确的变量类型分配造成的。由于我是这门语言的新手,我认为这是一个学习机会,但是我找不到足够的相关材料来引导我找到解决方案。如果有人可以解释为什么我使用的类型不正确(或者如果这是我面临的不同问题),将不胜感激。

编辑:我改变了我对这个建议的回答,模块实例化在 always 块之外,连线为 eq、gt 和 lt,但仍然出现错误。更新了错误代码。

错误信息:

(PS 我知道在其他模块中包含测试台是不合适的,但是当我可以一次看到所有模块时,我更容易学习。)

0 投票
1 回答
271 浏览

verilog - iverilog 模拟器如何解释我的 RAM 代码以确定“x”值?

我正在尝试使用 Icarus Verilog 在 Verilog 中编写和测试一个简单的 16 位宽 RAM8 芯片。我发现很难从概念上理解为什么 iverilog 模拟器在某些时钟滴答上向我显示“x”(未定义)值,并想知道是否有人可以为这个问题提供概念上的理解。

我尝试了两种不同的设计,其中一种的输出对我来说很有意义,但我无法解析第二种的输出。

第一个设计制作out了一个寄存器,并为输出分配了时钟:

而第二种设计out是连续分配的电线:

这两个的测试台是相同的:

我为第一个设计运行测试台的输出是这样的:

这个输出对我来说很有意义。每次我加载一个新值时,输出都是未定义的,因为加载与正在加载的值同时发生在输出寄存器中(因此,该时钟滴答的垃圾值)。

然而,第二个设计的测试台的输出让我感到困惑:

我的问题是:输出的周期性未定义值是由什么引起的?共同点似乎是当 clk 为 0 且负载为 1 时,但我无法从我对寄存器的理解中回忆起为什么这会导致输出为垃圾。我设计中的所有寄存器都在正时钟沿触发,那么为什么负沿会改变任何值?

我想我可能会对这里的引擎盖下发生的事情感到困惑,并且也希望有人确认或反驳我对第一个设计行为的解释。提前感谢任何花时间阅读和回答的人。

0 投票
1 回答
1172 浏览

warnings - 如何克服“警告:instruction_reg 的端口 8(目标)需要 8 位,得到 1。” 在verilog?

我的任务是使用verilog 实现一个带有数据存储器的处理器。指令是硬编码的(32 位指令)。我已完成插入数据存储器。对于加载和存储指令但是当我得到 - “警告:指令reg的端口8(目标)需要8位,得到1。”

这是指令集架构的verilog代码

0 投票
1 回答
535 浏览

verilog - 为什么iverilog 抱怨这个表达式/端口宽度?

当我尝试使用 STRUCTURAL 代码制作 5 位 2x1 MUX 时,我遇到了一个令人困惑的 Verilog 错误,但我似乎找不到任何关于我的代码为什么会显示错误的信息。错误是:

我知道它在谈论我的一个输入,但我不知道端口 1 中的哪个输入。但是根据其余代码的布局方式,我很确定所有 5 位宽的输入都匹配带 5 位线和 5 位输出。任何帮助,将不胜感激!

供参考的是我的 .v 和 tb.v

.v: {module mux_2x1_5bit(in1, in2, gate, out);

结核病:

0 投票
1 回答
120 浏览

verilog - 为什么iverilog 抱怨我的测试平台模块?

我正在为我的 CompSci 类编写一个 verilog 模块,这个模块特别是数据内存模块。从结构和分析上讲,我正在研究它,它应该基于我拥有的其他文件工作,但我不确定为什么这个文件特别表现出来并给了我所有的 x。希望有一双新的眼睛可以帮助找到我错过的错误。提前致谢。

数据存储器.v:

datamem_tb.v: