首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Verilog加法器测试平台

Verilog加法器测试平台
EN

Stack Overflow用户
提问于 2019-10-04 17:23:55
回答 1查看 438关注 0票数 1
代码语言:javascript
复制
//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

///

代码语言:javascript
复制
`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和in2获得了这个值。除了他们,他们有一条蓝线。还有,外面有一条红线。我真的不明白这有什么问题。请帮帮忙。

EN

回答 1

Stack Overflow用户

发布于 2019-10-04 18:02:48

尽管您在模块中将in1in2out定义为32位端口(如您的注释所示),但测试台中连接的信号只有1位宽。因此,只驱动模块输入信号的第一位(即in1[0]in2[0])。

尝试使用以下测试平台:

代码语言:javascript
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58233513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档