计算机体系结构中的BCD加法器是什么?
BCD加法器指的是一个4位二进制加法器,它可以将两个4位BCD格式的字相加。加法的输出是一个BCD格式的4位输出字,它定义了被加数和加数的十进制和,以及在该和超过十进制值9时产生的进位。因此,BCD加法器可以实现十进制加法。
BCD加法器的构造
二进制数字的和 | BCD数字的和 | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
K | Z8 | Z4 | Z2 | Z1 | C | S8 | S4 | S2 | S1 | 十进制 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 1 |
0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 2 |
0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 3 |
0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 4 |
0 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 5 |
0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 6 |
0 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 7 |
0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 8 |
0 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 9 |
0 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | 10 |
0 | 1 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 11 |
0 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 12 |
0 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 13 |
0 | 1 | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 14 |
0 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 15 |
1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 16 |
1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 17 |
1 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 18 |
1 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 19 |
在这个表中,K是进位。字母Z下方的下标定义了权重。根据表格,权重为8、4、2和1。这些权重可以分配给BCD码中的四位。第一列包含二进制和,如4位二进制加法器的输出所示。
第二列包含以BCD表示的两个十进制数的输出和。如果二进制和小于或等于1001,则相应的BCD数相同,因此无需转换。
BCD中的十进制数是通过操作一个4位二进制加法器并一次执行一位算术运算来插入的。它可以生成一个二进制和,第一次加法是在BCD数字的低位对上执行的。
如果输出等于或大于1010,则可以通过向二进制和中插入0110来进行修正。这可以使输出进位对于下一对有效数字来说是必要的。
因此,将连续的高位数字对以及输入进位一起插入以创建它们的二进制和。如果此输出高于或等于1010,则通过插入0110进行修正。此过程在每个十进制数字相加之前重复。
它有助于更改识别所需校正的逻辑电路。当二进制和具有输出进位K = 1时,需要进行校正。从1010到1111开始的不同六种组合需要校正,在Z8位置为1。它可以将它们与二进制1000和1001区分开来,后者也在Z8位置接收1,定义Z4或Z2应该有一个1。
以下布尔函数可以定义校正和输出进位的条件:
C = K + Z8Z4 + Z8Z2
如果C = 1,则将0110添加到二进制和中,并为下一级提供输出进位。
广告