124数字系统的实现 例一:设计一个求两个4位二进制数之积的数字乘法 器。乘数存于寄存器Q中,被乘数存于寄存器M中, 求两数之积的命令信号为MF,z为8位乘积 解: 系统级设计 1算法设计(第一种算法) (1)手算过程 (一次相加)
例一: 设计一个求两个4位二进制数之积的数字乘法 器。乘数存于寄存器Q中,被乘数存于寄存器M中, 求两数之积的命令信号为MF,Z为8位乘积。 一、系统级设计 1.算法设计(第一种算法) (1)手算过程 (一次相加) 解: 12.4 数字系统的实现
表12.4.1乘法的手算过程 运算过程 算式说明 1010被乘数 ×1101乘数 1010第一部分积 0000第二部分积 1010第三部分积 1010 第四部分积 10000010乘积=部分积之和
运算过程 算式说明 1 0 1 0 被乘数 × 1 1 0 1 乘数 1 0 1 0 第一部分积 0 0 0 0 第二部分积 1 0 1 0 第三部分积 + 1 0 1 0 第四部分积 1 0 0 0 0 0 1 0 乘积=部分积之和 表 12.4.1 乘法的手算过程
算法规律 I两个r位的二进制数相乘,乘积为2r位 Ⅱ乘数的第i位为0时,第位的部分积为0; 乘数的第位为1时,第位的部分积是被乘数。 Ⅲ第i位的部分积相对于第i-位的部分积求和时 左移一位。 (2)电路实现过程(多次相加) 为了用数字电路完成求和运算,必须改变乘 法过程,把一次多数相加改成累计求和,累计的 和称为部分和,把它存如累加寄存器中
算法规律: Ⅰ两个r位的二进制数相乘,乘积为2r位。 Ⅱ乘数的第i位为0时,第i位的部分积为0; Ⅲ第i位的部分积相对于第i-1位的部分积求和时 左移一位。 为了用数字电路完成求和运算,必须改变乘 法过程,把一次多数相加改成累计求和,累计的 和称为部分和,把它存如累加寄存器中。 乘数的第i位为1时,第i位的部分积是被乘数。 (2)电路实现过程 (多次相加)
表1242累计部分积的乘法过程 运算过程 算式说明 1010 被乘数 l101 乘数 00000000 累加器初始内容 1010 第一部分积 00001010 第一部分和 0000 第二部分积 00001010 第二部分和 +1010 第三部分积 00110010 第三部分和 +1010 第四部分积 10000010 乘积第四部分和
运算过程 算式说明 1 0 1 0 被乘数 × 1 1 0 1 乘数 0 0 0 0 0 0 0 0 累加器初始内容 + 1 0 1 0 第一部分积 0 0 0 0 1 0 1 0 第一部分和 + 0 0 0 0 第二部分积 0 0 0 0 1 0 1 0 第二部分和 + 1 0 1 0 第三部分积 0 0 1 1 0 0 1 0 第三部分和 + 1 0 1 0 第四部分积 1 0 0 0 0 0 1 0 乘积=第四部分和 表 12.4.2 累计部分积的乘法过程
(3)算法流程图 Start=1 A-△--|2- 组合逻辑 控制器 Q←SR(Q M.M M←SL() A←A+M (a)算法流程图
(3)算法流程图 (a)算法流程图