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

verilog - 如何在测试台上运行 verilog 代码?

我为波纹进位加法器编写了代码。测试台也可用。如何在我的 Verilog 代码上运行这个测试平台?我没有模拟器。我正在使用iverilog编译器。

ipple_carry_adder.v

试验台

0 投票
1 回答
1496 浏览

verilog - Verilog 代码编译没有错误但没有输出

我试图创建一个 16 位输入到 4 位输出编码器。我能够编译我的代码而没有任何错误,但是在 [ iverilog encoder_tb.v -o encoder] & [ vvp encoder vcd] 命令之后,即使我已经给出$monitor$display任何我能想到的语句,它也没有给我任何东西。我无法调试这个。

0 投票
1 回答
150 浏览

macos - 在macbook上设置iverilog环境

我试图使iverilog 命令st 我可以在我的Macbook Air 上运行verilog 程序。在安装文件的几个步骤之后,教程告诉我输入:

它在iverilog 命令方面起作用,即我可以编译.v 文件。但是,正常的命令,如lsman等。我猜是命令集的PATH的问题,这意味着那些正常的unix命令是没有定位的。

有人可以告诉我如何解决它而且我不需要每次都导出 PATH 吗?

0 投票
3 回答
409 浏览

mips - 数组声明和访问 Verilog

我正在尝试在 Verilog 中创建一个具有 10 个空格的 32 位数组。这是代码:

然后我尝试将 32 位值分配给该寄存器内的不同位置。这是一个代码示例:

编译时出现以下错误:

第 21 行代表我试图访问internalMemory[1].

关于为什么会发生这种情况以及如何解决它的任何建议?

谢谢!

更新 1:

按照这里的要求,我正在尝试实现指令寄存器的代码:

0 投票
2 回答
945 浏览

interface - 如何使用脚本或工具获取 Verilog 模块的输入和输出名称?

是否有工具或脚本允许我解析 Verilog 文件以获取模块输入和输出的名称?我试图查看iverilog 和yosys,但它们似乎没有此功能。我可以自己写,但我不想重新发明轮子。谢谢!

0 投票
2 回答
2686 浏览

verilog - Verilog 4 位加减计数器设计使用负边沿触发 T 触发器

我对 Verilog HDL 很陌生,我必须编写这个 4 位向上计数器。在阅读了一些上下计数器和 t 触发器的帮助下,我已经编写了以下代码:

现在,我收到此错误:

第 25 行是这一行:

我不是 100% 确定我的编码是否正确。你能告诉我我的问题在哪里吗?

0 投票
2 回答
1932 浏览

verilog - 将 5 位总线连接到 32 位输出总线

我的设计需要多个多路复用器,它们都有两个输入,大多数都是 32 位宽。我从设计 32 位 2:1 多路复用器开始。

现在我需要一个 5 位 2:1 多路复用器,并且我想重用我的 32 位设计。连接输入很容易(见下面的代码),但我很难连接输出。

这是我的代码:

当我通过 iverilog 运行代码时,我收到一条警告,指出多路复用器需要 32 位输出,但连接的总线只有 5 位宽。模拟显示了预期的结果,但我想摆脱警告。

有没有办法告诉iverilog忽略多路复用器输出的27个未使用位,还是我必须将32位宽的总线连接到多路复用器的输出?

0 投票
3 回答
905 浏览

verilog - verilog 中的环形计数器

我正在尝试使用 Verilog 中的 D 触发器创建一个 4 位计数器。我正在关注这张图http://i.imgur.com/VR5593a.png。我得到了单个 D 触发器的代码。我遇到的问题是第一个时钟周期中的 D0。我猜我必须首先假设 Q0 为 1,Q1、Q2、Q3 为 0。我不确定如何在代码中只传递一次 D0 的初始值。

0 投票
0 回答
217 浏览

verilog - Verilog 内存组件输入

我正在 Verilog 的一个实验室工作,其中一项任务告诉我将不同的内容写入 2 个不同的地址。

这是我的代码:

mem 的工作原理如下:

为了读取一个字,在地址上设置它的地址并设置读取。经过一段时间的延迟,单词的内容会在 memOut 上稳定下来。要写入,在 memIn 上设置要写入的数据,在 address 上设置目标地址,然后设置 write。数据将在 clk 的下一个上升沿写入目标。


上面的输出是地址 16 的正确值,但地址 20 和 24 是“xxxxxxxx”。

我已经坚持了一段时间,我不明白为什么我不能重新分配 memIn。

任何帮助将非常感激。

谢谢。

0 投票
1 回答
312 浏览

verilog - 基准代码中的错误

触发器结构代码和测试台代码

我不知道我在哪里犯了错误。我在输出中几乎没有错误。

@@@试验台@@@@

得到这样的错误:

错误-[V2KS] 使用 Verilog IEEE 1364-2000 语法

TFlipflop.v, 4 Verilog 2000 IEEE 1364-2000 使用的语法:组合端口和类型声明。请使用 +v2k 编译以支持此结构。

错误-[V2KS] 使用 Verilog IEEE 1364-2000 语法

TFlipflop.v, 4 Verilog 2000 IEEE 1364-2000 使用的语法:Ansi 风格的端口声明。请使用 +v2k 编译以支持此结构。

错误-[V2KS] 使用 Verilog IEEE 1364-2000 语法

TFlipflop.v, 6 Verilog 2000 IEEE 1364-2000 使用的语法:逗号分隔的敏感度列表。请使用 +v2k 编译以支持此结构。

解析设计文件“test_TFlipflop.v”

错误-[V2KS] 使用 Verilog IEEE 1364-2000 语法

test_TFlipflop.v, 21 Verilog 2000 IEEE 1364-2000 使用的语法:逗号分隔的敏感度列表。请使用 +v2k 编译以支持此结构。

4 个错误 CPU 时间:0.036 秒