|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
编了一个四位全加器,但是仿真仿不出来、请大神们帮忙指错,叩拜那~~~~测试程序:
- /***********************四位全加器*******************/
- `include "adder.v"
- module adder_tb();
- reg[3:0]addend,adder;//加数和被加数
- initial
- begin
- addend=4'b0001;//被加数赋值1
- adder=4'b0010;//加数赋值2
- end
- adder m(.addend(addend),.adder(adder));//调用
- endmodule
复制代码
adder:
- module adder(addend,adder,sum);
- input[3:0] addend,adder;
- output[4:0] sum;//和
- wire a1,a2,a3,a4,b1,b2,b3,b4,c0,c1,c2,c3,c4,d1,d2,d3,d4;//加数和被加数的各个位、每个全加器的进位位、每个全加器的和
- assign c0=1'b0;
- assign a1=addend[0];
- assign a2=addend[1];
- assign a3=addend[2];
- assign a4=addend[3];
- assign b1=adder[0];
- assign b2=adder[1];
- assign b3=adder[2];
- assign b4=adder[3];
- assign d1=((~a1)&(~b1)&c0)|((~a1)&b1&(~c0))|(a1&(~b1)&(~c0))|(a1&b1&c0);
- assign d2=((~a2)&(~b2)&c1)|((~a2)&b2&(~c1))|(a2&(~b2)&(~c1))|(a2&b2&c1);
- assign d3=((~a3)&(~b3)&c2)|((~a3)&b3&(~c2))|(a3&(~b3)&(~c2))|(a3&b3&c2);
- assign d4=((~a4)&(~b4)&c3)|((~a4)&b4&(~c3))|(a4&(~b4)&(~c3))|(a4&b4&c3);
- assign c1=(a1&b1)|(a1&(~b1)&c0)|((~a1)&b1&c0);
- assign c2=(a2&b2)|(a2&(~b2)&c1)|((~a2)&b2&c1);
- assign c3=(a3&b3)|(a3&(~b3)&c2)|((~a3)&b3&c2);
- assign c4=(a4&b4)|(a4&(~b4)&c3)|((~a4)&b4&c3);
- assign sum={c4,d4,d3,d2,d1};
- endmodule
复制代码
|
|