微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 求解verilog

求解verilog

时间:10-02 整理:3721RD 点击:
编了一个四位全加器,但是仿真仿不出来、请大神们帮忙指错,叩拜那测试程序:

  1. /***********************四位全加器*******************/
  2. `include "adder.v"
  3. module adder_tb();
  4. reg[3:0]addend,adder;//加数和被加数
  5. initial
  6. begin
  7. addend=4'b0001;//被加数赋值1
  8. adder=4'b0010;//加数赋值2
  9. end
  10. adder m(.addend(addend),.adder(adder));//调用
  11. endmodule

复制代码



adder:

  1. module adder(addend,adder,sum);
  2. input[3:0] addend,adder;
  3. output[4:0] sum;//和
  4. wire a1,a2,a3,a4,b1,b2,b3,b4,c0,c1,c2,c3,c4,d1,d2,d3,d4;//加数和被加数的各个位、每个全加器的进位位、每个全加器的和
  5. assign c0=1'b0;
  6. assign a1=addend[0];
  7. assign a2=addend[1];
  8. assign a3=addend[2];
  9. assign a4=addend[3];
  10. assign b1=adder[0];
  11. assign b2=adder[1];
  12. assign b3=adder[2];
  13. assign b4=adder[3];
  14. assign d1=((~a1)&(~b1)&c0)|((~a1)&b1&(~c0))|(a1&(~b1)&(~c0))|(a1&b1&c0);
  15. assign d2=((~a2)&(~b2)&c1)|((~a2)&b2&(~c1))|(a2&(~b2)&(~c1))|(a2&b2&c1);
  16. assign d3=((~a3)&(~b3)&c2)|((~a3)&b3&(~c2))|(a3&(~b3)&(~c2))|(a3&b3&c2);
  17. assign d4=((~a4)&(~b4)&c3)|((~a4)&b4&(~c3))|(a4&(~b4)&(~c3))|(a4&b4&c3);
  18. assign c1=(a1&b1)|(a1&(~b1)&c0)|((~a1)&b1&c0);
  19. assign c2=(a2&b2)|(a2&(~b2)&c1)|((~a2)&b2&c1);
  20. assign c3=(a3&b3)|(a3&(~b3)&c2)|((~a3)&b3&c2);
  21. assign c4=(a4&b4)|(a4&(~b4)&c3)|((~a4)&b4&c3);
  22. assign sum={c4,d4,d3,d2,d1};
  23. endmodule

复制代码




小编我仿出来是对的,没改代码,[img][img][/img][/img]

没有时钟,仿真进程没有启动



   为什么需要时钟?又不是逻辑电路。


原来是我modelsim之前只跑了底层模块、而且还没把底层模块的输出接出去

“底层模块的输出接出去”我用的modelsim6.5e没有影响

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

网站地图

Top