求解verilog
时间:10-02
整理:3721RD
点击:
编了一个四位全加器,但是仿真仿不出来、请大神们帮忙指错,叩拜那测试程序:
adder:
- /***********************四位全加器*******************/
- `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
小编我仿出来是对的,没改代码,[img][img][/img][/img]
没有时钟,仿真进程没有启动
为什么需要时钟?又不是逻辑电路。
原来是我modelsim之前只跑了底层模块、而且还没把底层模块的输出接出去
“底层模块的输出接出去”我用的modelsim6.5e没有影响
