|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
刚刚学verilog编了一个加法器,代码如下,仿真的时候a怎么总是在00处,不往下面走啊。。。
`timescale 1ns/100ps
module adder2b(output reg [1:0] C,S, input [1:0] A,B);
initial
C[0]=1'b0;
always@(A,B)
begin
#1 S[0]=A[0]^B[0]^C[0];
#1 C[1]=(A[0]&B[0])|(C[0]&(A[0]^B[0]));
#1 S[1]=A[1]^B[1]^C[1];
end
endmodule
`timescale 1ns/100ps
module adder2b_tb;
reg [1:0] a,b;
reg i;
initial
begin
#10 a[1:0]=2'b00;
b[1:0]=2'b00;
for( i=0;i<=3;i=i+1)
#10 b=b+i;
#10 a[1:0]=2'b01;
b[1:0]=2'b00;
for( i=0;i<=3;i=i+1)
#10 b=b+i;
#10 a[1:0]=2'b10;
b[1:0]=2'b00;
for( i=0;i<=3;i=i+1)
#10 b=b+i;
#10 a[1:0]=2'b11;
b[1:0]=2'b00;
for( i=0;i<=3;i=i+1)
#10 b=b+i;
end
adder2b test(.C(),.S(),.A(a),.B(b));
endmodule |
|