如何在 System Verilog 中刷新文件缓冲区?
我想在模拟中执行 $finish 之前刷新文件缓冲区。是否有我可以使用的文件刷新命令?或者我必须简单地使用 $fclose 吗?我意识到我可以在这种情况下关闭…
ModelSim 无法识别参数数据类型?
这是我尝试在 Modelsim 中运行的一些 Verilog 代码。 parameter Data_width = 8 //DATA SIZE input CLK, RST input [Data _width-1:0] D 当我尝试编译…
如何使用 Unix 脚本选择 Verilog 测试文件?
我必须对DPRAM进行验证。 每个测试用例都写在名为 test1.v、test2.v 等的不同文件中。 我想编写一个脚本(unix),这样当我输入 run test1.v 时,只有…
无法实现简单的 ALU
我有一个用 Verilog 描述的基本 8 位 ALU。我正在尝试实现该设计,但收到错误消息: ERROR:NgdBuild:809 - output pad net 'quotient<1>'有非法负…
RAM 深度的地址宽度
我正在实现一个可配置的 DPRAM,其中 RAM DEPTH 是参数。 如何根据 RAM 深度确定地址宽度? 我知道关系 RAM DEPTH = 2 ^ (ADDRESS WIDTH) 即 ADDRESS …
测试 verilog 模块时何时以及为何必须使用 DUT?
我刚刚开始学习 verilog 模块的软件测试平台。我注意到,当测试台调用模块时,它将 DUT 放在模块名称和敏感度列表之间。这是什么意思,为什么有必要?…
这两个模块的行为有何不同
这两个模块似乎可以互换。他们的行为有何不同? module Add_half (sum, c_out, a, b) input a, b output reg c_out output reg sum always@(a, b) beg…
如何在没有initial或always块的情况下使用$display
我正在尝试调试一个不使用初始或始终使用 $display 语句的 Verilog 模块。然而,这些在初始或始终块之外似乎是非法的。这是为什么?我有什么选择?…
Verilog 中的 for 循环如何执行?
Verilog 中的 for 循环是否并行执行?我需要多次调用一个模块,但它们必须同时执行。我没有将它们一一写出来,而是考虑使用 for 循环。效果会一样吗?…
为什么这个 Verilog 代码无法编译?
导致问题的部分是c[1] = p[0] + g[0] & c0。有什么问题吗? module CLA_gen(p, g, c0, c) input [3:0] p input [3:0] g input c0 output reg [4:1]…
为什么这个Verilog函数中没有赋值语句?
来自 C++ 背景的我开始学习 Verilog。该代码描述了进入两个与门的四个输入。这两个与门的输出进入或门。或门的输出是最终的输出。 // a user-defined …