微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 大家帮我看看这个testbench

大家帮我看看这个testbench

时间:10-02 整理:3721RD 点击:
由于是新手,testbench还不是很会,一个王金明书本上的4位全加器的仿真,仿真出来的东西怎么都看不明白,现在求教一下大家:
源代码:
module adder4(ina,inb,cin,cout,sum);
  input[3:0] ina;
  input[3:0] inb;
  input cin;
  
  output cout;
  output[3:0] sum;
  
  assign {sum,cout}=ina+inb+cin;
endmodule
激励测试如下:
`timescale 1ns/1ns
`include"four_adder.v"
module adder4_tb;
  reg[3:0] a;
  reg[3:0] b;
  reg cin;
  
  wire[3:0] sum;
  wire cout;
  integer i;
  integer j;
  
  adder4 adder(a,b,cin,cout,sum);
  always #5 cin=~cin;
  
  initial
  begin
    a=0;
    b=0;
    cin=0;
    for(i=1;i<10;i=i+1)
    #10 a=i;
  end
  
  initial
  begin
    for(j=1;j<16;j=j+1)
    #10 b=j;
  end
  
  initial
  begin
    $monitor($time, , , "%d + %d +%b={%b,%d}",a,b,cin,cout,sum);
    #160 $finish;
  end
endmodule

然后仿真出来的结果:
#                    0   0 +  0 +0={0, 0}
#                    5   0 +  0 +1={1, 0}
#                   10   1 +  1 +0={0, 1}
#                   15   1 +  1 +1={1, 1}
#                   20   2 +  2 +0={0, 2}
#                   25   2 +  2 +1={1, 2}
#                   30   3 +  3 +0={0, 3}
#                   35   3 +  3 +1={1, 3}
#                   40   4 +  4 +0={0, 4}
#                   45   4 +  4 +1={1, 4}
#                   50   5 +  5 +0={0, 5}
#                   55   5 +  5 +1={1, 5}
#                   60   6 +  6 +0={0, 6}
#                   65   6 +  6 +1={1, 6}
#                   70   7 +  7 +0={0, 7}
#                   75   7 +  7 +1={1, 7}
#                   80   8 +  8 +0={0, 8}
#                   85   8 +  8 +1={1, 8}
#                   90   9 +  9 +0={0, 9}
#                   95   9 +  9 +1={1, 9}
#                  100   9 + 10 +0={1, 9}
#                  105   9 + 10 +1={0,10}
#                  110   9 + 11 +0={0,10}
#                  115   9 + 11 +1={1,10}
#                  120   9 + 12 +0={1,10}
#                  125   9 + 12 +1={0,11}
#                  130   9 + 13 +0={0,11}
#                  135   9 + 13 +1={1,11}
#                  140   9 + 14 +0={1,11}
#                  145   9 + 14 +1={0,12}
#                  150   9 + 15 +0={0,12}
#                  155   9 + 15 +1={1,12}



结果和波形图怎么都那么怪异?

大家帮我试试
看看问题出在哪里

这句话有问题吧:
{sum,cout}=ina+inb+cin;
应该是:
{cout, sum}=ina+inb+cin;



    O
可以了
原来这里出问题了,修改了可以了

yunsi yun si

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top