BCD码
Binary-Coded Decimal,简称BCD,用4位二进制数来表示1位十进制数中的0~9这10个数码,简称BCD码,即BCD代码。日常所说的BCD码大都是指8421BCD码形式。
8421BCD码表示形式
1:0001 2:0010 3:0011
4:0100 5:0101 6:0110
7:0111 8:1000 9:1001
8421BCD码加法原理
BCD码中1——9可以用四位二进制数0000——1001表示,而1010——1111这6个数为无效数。两个4位二进制数相加所得的结果超过1001,则将所得数加0110,
来跳过6个无效数,并产生一个进位。
Verilog代码
1 module bcd(cout,sum,ina,inb,cin);
2
3 input cin;
4 input [3:0] ina,inb;
5 output reg [3:0] sum; //等价于output [3:0] sum;reg [3:0] sum;
6 output reg cout;
7 reg [4:0] temp;
8
9 always @(ina, inb, cin)
10 begin
11 temp<=ina+inb+cin;
12 if(temp>9)
13 {cout,sum}<=temp+6;
14 else
15 {cout,sum}<=temp;
16 end
17
18 endmodule
19