八位加法器设计实验报告 下载本文

实验四:8位加法器设计实验

1.实验目的:熟悉利用quartus原理图输入方法设计简单组合电路,掌握层次化设计方法。

2.实验原理:一个八位加法器可以由八个全加器构成,加法器间的进位可以串行方式实现,即将低位加法器的进位输出cout与相邻的高位加法器的最低进位输入信号cin相接。 3.实验任务:完成半加器,全加器,八位加法器设计,使用例化语句,并将其设计成一个原件符号入库,做好程序设计,编译,程序仿真。

1)编译成功的半加器程序: module h_adder(a,b,so,co); input a,b; output so,co; assign so=a^b; assign co=a&b; endmodule

2)编译成功的全加器程序:

module f_adder(ain,bin,cin,cout,sum); output cout,sum;input ain,bin,cin; wire net1,net2,net3;

h_adder u1(ain,bin,net1,net2);

h_adder u2(.a(net1),.so(sum),.b(cin),.co(net3)); or u3(cout,net2,net3); endmodule

3)编译成功的八位加法器程序:

module f_adder8(ain,bin,cin,cout,sum); output

[7:0]sum;

output

cout;input

[7:0]ain,bin;input cin;

wire cout0, cout1, cout2 ,cout3, cout4,cout5,cout6; f_adder

u0(.ain(ain[0]),.bin(bin[0]),.cin(cin),.sum(sum[0]),.cout(cout0)); f_adder

u1(.ain(ain[1]),.bin(bin[1]),.cin(cout0),.sum(sum[1]),.cout(cout1)); f_adder

u2(.ain(ain[2]),.bin(bin[2]),.cin(cout1),.sum(sum[2]),.cout(cout2)); f_adder

u3(.ain(ain[3]),.bin(bin[3]),.cin(cout2),.sum(sum[3]),.cout(cout3)); f_adder

u4(.ain(ain[4]),.bin(bin[4]),.cin(cout3),.sum(sum[4]),.cout(cout4)); f_adder

u5(.ain(ain[5]),.bin(bin[5]),.cin(cout4),.sum(sum[5]),.cout(cout5)); f_adder

u6(.ain(ain[6]),.bin(bin[6]),.cin(cout5),.sum(sum[6]),.cout(cout6)); f_adder

u7(.ain(ain[7]),.bin(bin[7]),.cin(cout6),.sum(sum[7]),.cout(cout)); endmodule

4)八位加法器仿真程序: module f_adder8_vlg_tst();

// constants // general purpose registers //reg eachvec;

// test vector input registers reg [7:0] ain; reg [7:0] bin; reg cin;

// wires