Verilog HDL 的2位BCD码加法器
2位BCD码加法器
一、实验内容:
利用Verilog HDL语言,编写一个2为BCD码加法器程序,并在DE2板是实现功能的运用。
A0、A1,B0、B1分别是2个输入数字,S0-S2为输出,经过BCD加法器的运算,能实现BCD码加法功能。
设计思路:
A0、B0分别是A、B的低位,相加的值T0=A0+B0,若T0>10,则Z0赋值为10,同时进位C0=1,和值低位S0=T0-Z0;同理,高位A1、B1,T1=A1+B1+C0,若T1>10,则Z1=10,进位C1=1,和值高位S1=T1-Z1;S2=C1。
二、实验源程序:
1) BCD加法器
module BCDadder(A0,A1,B0,B1,S0,S1,S2,clear); //定义输入模块 input [3:0]A0; //考虑到A0、B0、A1、B1的值可能 input [3:0]A1; 超过十进制数8,顾定义长度为4位; input [3:0]B0;
input [3:0]B1;
input clear;
output S0;
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; //低位和值可能超过16,所以定义T0、T1长 reg [4:0]T1; 度为5;
reg [4:0]Z0;
reg [4:0]Z1;
always @(posedge clear) //以每一次复位上升沿到来开始计算和值;