西安邮电大学Verilog 四位超前进位全加器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
西安邮电大学Verilog HDL实验报告(二)
——带超前进位的四位全加器
学院名称:电子工程学院
班级:电子
学生姓名:
学号:
实验题目带超前进位的四位全加器
一、实验内容
设计的一个带超前进位的四位全加器。
二、实验步骤
1、在ModelSim软件中对激励模块和设计模块进行书写和编译;
2、对编译好的模块进行仿真。
三、源代码:
1、主程序
module fulladd4(sum, c_out, a, b, c_in);
output [3:0] sum;
output c_out;
input [3:0] a,b;
input c_in;
wire p0,g0,p1,g1,p2,g2,p3,g3;
wire c4,c3,c2,c1;
xor a1(p0,a[0],b[0]);
xor a2(p1,a[1],b[1]);
xor a3(p2,a[2],b[2]);
xor a4(p3,a[3],b[3]);
and b1(g0,a[0],b[0]);
and b2(g1,a[1],b[1]);
and b3(g2,a[2],b[2]);
and b4(g3,a[3],b[3]);
and d1(e1,p0,c_in);
or f1(c1,e1,g0);
and d2(e2,p1,g0);and d3(e3,p1,p0,c_in);or f2(c2,g1,e2,e3);
A nd d4(e4,p2,g1);and d5(e5,p2,p1,g0);and d6(e6,p2,p1,c_in);or f3(c3,g2,e4,e5,e6);
and d7(e7,p3,g2);and d8(e8,p3,p2,g1);and d9(e9,p3,p2,p1,g0);and d10(e10,p3,p2,p1,p0,c_in);or f4(c4,g3,e7,e8,e9,e10);
xor m0(sum[0],p0,c_in);
xor m1(sum[1],p1,c1);
xor m2(sum[2],p2,c2);
xor m3(sum[3],p3,c3);
and n1(c_out,c4,c4);
endmodule
2、激励程序
module fulladd4_tb;
reg [3:0] A,B;
reg C_IN;
wire [3:0] SUM;
wire C_OUT;
fulladd4 fulladd_4(.sum(SUM),.a(A),.b(B),.c_in(C_IN),.c_out(C_OUT));
initial
begin
A = 4'b0000;
B = 4'b0111;C_IN = 0;#100;
A = 4'b0001;
B = 4'b0011;C_IN = 0;#100;
A = 4'b0010;
B = 4'b1011;C_IN = 0;#100;
A = 4'b0011;
B = 4'b1001;C_IN = 1;#100;
A = 4'b1111;
B = 4'b1111;C_IN = 1;#100;
end
endmodule
四、仿真结果及分析
输出结果:
结果分析:
当A=0000,B=0111,C_IN=0时,SUM=0111;
当A=0001,B=0011,C_IN=0时,SUM=0100;
当A=0010,B=1011,C_IN=0时,SUM=1101;
当A=0011,B=1001,C_IN=1时,SUM=1101;
当A=1111,B=1111,C_IN=1时,SUM=1111;
根据结果,SUMi=A i•Bi^Ci
C i+1= Ai •B i+Ci•(Ai^Bi)
进位则C_OUT = 1。
五、实验总结:
在这次实验过程中,开始时程序一直都编译不出来,总是出现错误,认真修改后,总算是编译成功了。经过这次的实验,深深的感觉到理论和实际还是很有差距的。这次实验还是给我带来了相当大的帮助。使我的理论与实际结合在一起。
更多信息↓↓↓