这篇文章上次修改于 398 天前,可能其部分内容已经发生变化,如有疑问可询问作者。

电路设计原理与步骤

使用Verilog HDL语言设计一个如图的1位全加器。采用结构描述法编写程序并进行仿真验证。
全加器的结构图如图:
_ud6p__e_dqt<code>a</code>_swd94si.png

设计代码

代码:

module class3
(input ain,bin,cin,//三输入ain,bin,cin
output cout,sum);//输出
wire d,e,f;
hadd u1(ain,bin,e,d);
hadd u2(e,cin,sum,f);
or u3(cout,d,f);
endmodule

module hadd//半加器模块
(input a,b,
output so,co);
assign so=~a^b;
assign co=a&b;
endmodule

电路仿真图:
@i@3vuxfulsby0o`fof8_bi.png
如图所示,ain和bin为被加数和加数,cin为进位输入,sum为和,cout为进位输出,仿真结果符合sum=ain⊕bin⊕cin的结果。

八位全加器设计

module class4
(input [7:0]ain,bin,\\加数和被加数
input cin,
output [7:0]sum,
output cout);\\进位信号
assign {sum,cout}=ain+bin+cin;\\赋值
endmodule

5xm_r_0jblmn1i_13bf6_8v.png
上图为使用行为级描述设计的八位全加法器,ain,bin为要相加的两个八位宽数,cin为进位输入,sum为和,cout为进位输出。