问题标签 [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 - 16 位纹波进位加法器和 16 位(两级)进位超前加法器的门控成本
嗨,我只是好奇组合 16 位纹波进位加法器和 16 位(两级)进位超前加法器的门限成本是多少。谢谢
verilog - 使用JK触发器的D触发器和使用SR触发器的JK触发器
您好正在尝试为使用 JK 触发器的 D 触发器以及使用 SR 触发器的 JK 触发器编写结构和测试台代码。但我遇到了一些错误。请任何人都可以帮助我提前谢谢。这是我的编码
D2jk 的结构
/li>
D2jk 的测试台代码
得到这样的错误
jk2sr的结构代码
/li>
JK2SR 的测试台代码
verilog - 使用 Verilog 的 4Way Demultiplexer 电路
我在这里为我的数字逻辑课的作业而苦苦挣扎。我已经在网上搜索了资源,但没有多少被证明是有用的。似乎每个人的方法都与我们在课堂上所做的不同。也没有教科书,只有每周的讲义,这本也不是很有帮助。我已经给我的导师发了电子邮件,但没有任何回复。所以基本上,这是我最后的希望。
我需要构建一个 4 路解复用器,但是,必须首先构建一个 2 路解复用器,然后使用其中的三个来创建一个四路解复用器。
这几乎就是我们得到的所有指令。我们展示了如何以相同的方式创建一个 4way 多路复用器 - 首先创建一个 2way,然后使用 3 次。所以,我只是修改了我们在那里显示的内容。但我的输出不太正确。我为每个输出得到一个“z”。
“exp0,exp1,exp2,exp3”是我应该得到的预期输出。
2Way Demux
4路多路复用器
4Way Demux 测试台
verilog - 使用 Verilog 在 32 位 ALU 中实现一位标志
我正在完成一项任务,有点迷茫,不知道如何开始。我需要在 32 位 ALU 中实现以下标志:
• Z(“Zero”):如果运算结果为零,则设置为 1(“True”)
• N(“Negative”):如果结果的第一位是 1,则设置为 1(“True”),表示负数
• O(“溢出”):设置为1(“真”)表示操作溢出总线宽度。
此外,一个比较函数将输入 a 与输入 b 进行比较,然后设置三个标志之一:
• 如果输入 a 小于输入 b,则为 LT
• GT 如果输入 a 大于输入 b
• EQ 如果输入 a 等于输入 b
我需要修改此 ALU 以包含三个标志和比较输出,然后更改测试台以测试所有这些修改。
这是我为这项作业收到的所有信息,实际上没有教科书或任何其他资源。这是一个在线课程,我无法得到老师的回应。所以我对如何开始有点困惑。在数字逻辑方面,我仍然是个新手,所以请多多包涵。我只需要一些帮助来理解这些标志和比较是如何工作的。如果有人能更好地向我解释它们是如何工作的,它们是做什么的,以及我如何将它们实现到 ALU 和测试平台中,我将不胜感激。
我不指望任何人来完成我的任务,我真的只需要帮助理解它。
铝型材
ALU 测试台
verilog - Verilog 中的环形计数器
我需要修改这个环形计数器以从最高有效位转移到最低有效位,然后重置回最高有效位。输出应如下所示:
环形计数器
环形计数器测试台
我对数字逻辑还是很陌生,所以请多多包涵。我对如何修改这个环形计数器有点困惑。任何形式的帮助或解释这将如何工作,将不胜感激。
verilog - Verilog中的BitSet电路
一种特定类型的位级操作包括在给定索引和新值的情况下设置或清除多位值中的单个位。此操作可以通过具有以下接口的 BitSet 电路在硬件中实现:
- 输入 x 是一个 4 位值,表示原始值。
- 输出 y 是一个 4 位值,表示在位设置操作之后的修改值。
- 输入索引是一个 2 位的值,范围从 0 到 3,表示要修改的位的索引。
- 输入值是设置为 0 或 1 的 1 位值,表示位索引应在输出 y 中取的值。y 中的每个其他位都应与 x 中的相应位匹配。
这是我从课堂示例中获取的代码:
这是测试台:
编译时,我收到以下错误:
我什至不确定这是否可以满足我的要求,但是任何人都可以帮助解决错误或如何修复程序以执行要求的操作吗?
verilog - 在头文件中声明 Verilog 函数
当我尝试编译包含头文件的测试台时,该头文件包含函数声明 Icarus Verilog (v10.0 stable) 中止并出现以下错误:
这个错误很明显。但是,头文件实际上包含在模块(测试台)中。由于包含指令应该只替换为相应头文件中的文本,因此函数声明实际上包含在模块中(与错误消息声称的相反)。我之前曾在 Xilinx ISE (fuse/isim) 上使用过这个头文件,它的工作原理与预期一样。甚至没有警告。
是否允许在头文件中声明函数(以便以后包含在模块中)?
我无法在 Verilog LRM(IEEE 1364-2001,第 10 章)中找到这个问题的答案。
例子:
测试.vh:
测试.v:
调用iverilog:iverilog -o test.o -Wall test.v test.vh
verilog - 带有输出的iverilog测试平台模块
我正在尝试制作一个测试台来模拟一个工作的顶级模块(和子模块),但是我无法让 iverilog 正确处理顶部的输出(LEDS、RS232Rx 和 RS232Tx 是物理引脚)
这是我在测试台上的尝试
我看到这样的错误
我已经尝试了很多东西,但没有太多的启发或不同的错误消息,最好的 LED 作为测试台输出,只显示 top.v 中的一个错误,它正在工作......我看到非常相似的错误rx,tx 但将它们注释掉以缩短输出...
只是重申 top.v 确实,不仅合成而且在实际硬件上的行为完全符合预期
verilog - 如何在 Verilog 中进行矩阵乘法?
我正在尝试将1x3 * 3X64
矩阵相乘,因为矩阵中的每个值都是十进制数,所以对于每个值,我所取4
的位是一次4x64
访问4
每行的总位的位。
我试图概括它。
矩阵的形式1x3 [2,4,3]
为 &
3*64(64 decimal value in each row)
第1行[11111111111111111111111111111(64)]
第 2 行[11111111(8)22222222(8).....88888888(8)]
第 3 行[1234567812345678.......................12345678]
我试过的代码
我需要这个的广义形式..
我得到的错误:
错误:HDLCompilers:110 -“mat.v”第 36 行向量线“h1”的部分选择中的最低有效位操作数是非法的
verilog - 减去两个 32 位输入时出现 Icarus Verilog 语法错误?
我在学习 Verilog 的第一周遇到了非常令人沮丧的经历。
我正在尝试编译以下代码 - 来自 mipsalu.v
当我尝试使用 编译它iverilog -o test mipsalu.v
时,iverilog 告诉我
当我删除有问题的行并再次编译时,没有错误-
任何见解将不胜感激。谢谢!
编辑:值得一提的是,我正在使用 MinGW/MSYS 在 Windows 8.1 上运行 Icarus Verilog 版本 10