verilog - Verilog Adder 测试平台
问题描述
//In here, `WORD_LEN is 32.
`include "Defines.v"
module Adder (in1, in2, out);
input [`WORD_LEN-1:0] in1, in2;
output [`WORD_LEN-1:0] out;
assign out = in1 + in2;
endmodule
///////////////////////////////////////// /////////////
`timescale 1ns/1ns
module AdderTest;
reg in1, in2;
wire out;
Adder TestAdder(.in1(in1), .in2(in2), .out(out));
initial begin
in1 = 4'b0000; in2 = 4'b0000; #100;
in1 = 4'b0011; in2 = 4'b1111; #100;
in1 = 4'b1000; in2 = 4'b1100; #100;
$stop;
end
endmodule
当我模拟这个时,只有 in1[0] 和 in2[0] 得到值。除了他们,他们得到了一条蓝线。此外,还有一条红线。我真的不明白这有什么问题。请帮忙。
解决方案
尽管您在模块中将 、 和 定义in1
为in2
32out
位端口(如您的注释所示),但测试台中连接的信号只有 1 位宽。因此,只有模块输入信号的第一位(即in1[0]
和in2[0]
)被驱动。
尝试使用以下测试台:
module AdderTest;
reg [31:0] in1, in2; // CHANGE
wire [31:0] out; // CHANGE
Adder TestAdder(.in1(in1), .in2(in2), .out(out));
initial begin
in1 = 4'b0000; in2 = 4'b0000; #100;
in1 = 4'b0011; in2 = 4'b1111; #100;
in1 = 4'b1000; in2 = 4'b1100; #100;
$stop;
end
endmodule
推荐阅读
- azure - 如何将私钥证书 (.pfx)、公钥证书 (.cer) 上传到 Azure WebApp
- css - CSS3 - 点击链接时的转换:翻译属性
- google-cloud-platform - 是否可以使 Cloud Storage 对象对通过应用程序进行身份验证的用户可见?
- acumatica - 如何在 Acumatica 报告中加粗部分文本
- node.js - EJS分配变量?
- regex - 提取仅包含英文名称的节点的值
- tensorflow - 如何在 TensorFlow 中检索 eval_metrics 的值
- javascript - 使用链中获取和 Promise.all 的多个 API 调用
- python - Python3.6上运行的Flask找不到htmlentitydefs?
- javascript - 从 Chrome 扩展访问 Javascript 上下文开发工具