BCDadder实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4'd1: display3 = 7'b1111001;
4'd2: display3 = 7'b0100100;
4'd3: display3 = 7'b0110000;
4'd4: display3 = 7'b0011001;
4'd5: display3 = 7'b0010010;
4'd6: diisplay2 = 7'b1111001;
4'd2: display2 = 7'b0100100;
4'd3: display2 = 7'b0110000;
4'd4: display2 = 7'b0011001;
4'd5: display2 = 7'b0010010;
4'd6: display2 = 7'b0000010;
4'd7: display3 = 7'b1111000;
4'd8: display3 = 7'b0000000;
4'd9: display3 = 7'b0011000;
default: display3 = 7'b1000000;
endcase
case(B1)
4'd0: display4 = 7'b1000000;
4'd8: display6 = 7'b0000000;
4'd9: display6 = 7'b0011000;
default: display6 = 7'b1000000;
endcase
case(S2)
4'd0: display7 = 7'b1000000;
4'd1: display7 = 7'b1111001;
output S1;
output S2;
reg [3:0]S0;
reg [3:0]S1;
reg [3:0]S2;
reg [4:0]C0;
reg [4:0]C1;
reg [4:0]T0;
reg [4:0]T1;
reg [4:0]Z0;
reg [4:0]Z1;
assign {T0}=A0+B0; //标记个位相加数之和
4'd1: display4 = 7'b1111001;
4'd2: display4 = 7'b0100100;
4'd3: display4 = 7'b0110000;
4'd4: display4 = 7'b0011001;
4'd5: display4 = 7'b0010010;
4'd6: display4 = 7'b0000010;
reg[6:0] display1;
reg[6:0] display2;
reg[6:0] display3;
reg[6:0] display4;
always @(A0 or A1 or B0 or B1)
begin
case(A0)
4'd0: display1 = 7'b1000000; //只显示0-9十个数字
always @(T0,clear)
begin
if(T0>9)
begin
Z0=10;
C0=1;
end
else
begin
Z0=0;
C0=0;
end
begin
T1=A1+B1+C0; //十位数与进位数相加
if(T1>9)
begin
Z1=10;
C1=1;
end
else
begin
Z1=0;
C1=0;
end
三、各模块代码:
BCD码加法器程序:
module BCDadder(A0,A1,B0,B1,S0,S1,S2,clear);
input [3:0]A0; //定义4位二进制数
input [3:0]A1;
input [3:0]B0;
input [3:0]B1;
input clear;
output S0;
output[6:0] display7;
reg[6:0] display5;
reg[6:0] display6;
reg[6:0] display7;
always @(S0 or S1 or S2)
begin
case(S0)
4'd0: display5 = 7'b1000000;
4'd1: display5 = 7'b1111001;
六、实验总结:
通过本实验设计出2位BCD码加法器,使其输入的二进制数相加转化为十进制数输出。做该实验时遇到不少困难,感谢同学的帮助。首先通过对加法器代码的仿真来确定程序的正确。把各模块的程序分别做好,并保存为电路标记图,最后通过连接电路实现其完整功能。
4'd7: display2 = 7'b1111000;
4'd8: display2 = 7'b0000000;
4'd9: display2 = 7'b0011000;
default: display2 = 7'b1000000;
endcase
case(B0)
4'd0: display3 = 7'b1000000;
4'd8: display5 = 7'b0000000;
4'd9: display5 = 7'b0011000;
default: display5 = 7'b1000000;
endcase
case(S1)
4'd0: display6 = 7'b1000000;
4'd1: display6 = 7'b1111001;
end
end
assign {S0}=T0-Z0;
assign {S1}=T1-Z1;
assign {S2}=C1;
endmodule
二进制输入转化为十进制显示LCD数码管分配程序:
Module inputdisplay(A0,A1,B0,B1,display1,display2,
display3,display4);
4'd2: display5 = 7'b0100100;
4'd3: display5 = 7'b0110000;
4'd4: display5 = 7'b0011001;
4'd5: display5 = 7'b0010010;
4'd6: display5 = 7'b0000010;
4'd7: display5 = 7'b1111000;
4'd2: display7 = 7'b0100100;
4'd3: display7 = 7'b0110000;
4'd4: display7 = 7'b0011001;
4'd5: display7 = 7'b0010010;
4'd6: display7 = 7'b0000010;
4'd7: display7 = 7'b1111000;
4'd2: display6 = 7'b0100100;
4'd3: display6 = 7'b0110000;
4'd4: display6 = 7'b0011001;
4'd5: display6 = 7'b0010010;
4'd6: display6 = 7'b0000010;
4'd7: display6 = 7'b1111000;
4'd1: display1 = 7'b1111001;
4'd2: display1 = 7'b0100100;
4'd3: display1 = 7'b0110000;
4'd4: display1 = 7'b0011001;
4'd5: display1 = 7'b0010010;
4'd6: display1 = 7'b0000010;
4'd7: display1 = 7'b1111000;
4'd8: display1 = 7'b0000000;
4'd9: display1 = 7'b0011000;
default: display1 = 7'b1000000;
endcase
case(A1)
4'd0: display2 = 7'b1000000;
4'd7: display4 = 7'b1111000;
4'd8: display4 = 7'b0000000;
4'd9: display4 = 7'b0011000;
default: display4 = 7'b1000000;
endcase
end
endmodule
输出十进制LCD数码管分配程序:
module outdisplay(S0,S1,S2,display5,display6,display7);
input[3:0] S0;
input[3:0] S1;
input[3:0] S2;
output[6:0] display5; //输出端为三位数,故三个数码管
output[6:0] display6;
4'd8: display7 = 7'b0000000;
4'd9: display7 = 7'b0011000;
default: display7 = 7'b1000000;
endcase
end
endmodule
四、BCD加法器仿真结果:
五、电路连接图:
由4个输入端和一个clear清零输入构成输入部分,进入到加法器进行加法运算。与4个输入端相连的还有4个数码管显示,显示出的是0-9的十进制数。加法器的另一端与输出端相连,且输出端与3个数码管相接,使其转化为十进制数输出。
input[3:0] A0;
input[3:0] A1;
input[3:0] B0;
input[3:0] B1;
output[6:0] display1; //一共四个数码管,每个数码管7位
output[6:0] display2;
output[6:0] display3;
output[6:0] display4;
一、实验目的:
完成2位BCD码加法器的设计,用VerilogHDL编程,在DE2平台上实现,加数、被加数、和分别用数码管显示。在DE2平台上下载并演示实验结果。
二、设计思路:
由五部分组成:输入端,输出端,数码管显示,clear清零端,加法器。输入端为4位的二进制数,并转化为两位数的十进制数经数码管输出。输入数字经过加法器的运算,输出4位的二进制数,并转化为三位数的十进制数经数码管输出显示。加法器中需要有进位数表示。
相关文档
最新文档