3.2、原码一位乘法、补码一位乘法、乘法运算器设计
一、原码一位乘法







二、补码一位乘法





三、原码一位乘法器和原码阵列乘法器
3.1、原码一位乘法器

右边电路图的各个部分的名称和运行规则如下:
①、ALU:执行累加功能的加法器;
②、Y:乘数寄存器;
③、A:部分集寄存器;
乘数寄存器(A)每次送到加法器(ALU)中的值是0还是被乘数的绝对值|X|主要取决于乘数寄存器(A)的相关位,当Yn=1时,送到加法器(ALU)中的值是被乘数的绝对值|X|;当Yn=0时,送到加法器(ALU)中的值是0,为了实现累加,部分集(A)到加法器(ALU)有一条通路,运算的结果要修改累加器A的话要通过一个ALU→A的控制信号,部分集(A)最终要送回到ALU的时候又要通过一个A→ALU的控制信号。
3.2、原码阵列乘法器
上面乘法器的不足点在于部分集(A)到ALU的循环累加,当我们对运算器的速度有要求的时候,便不能满足,需要下面的原码阵列乘法器来实现:


可以将上面乘法器的串行进位链修改成下面的进位方式来对这个乘法器进行优化,优化后如下:

优化后的区别如下:
①、同一行的多个FA之间不再存在串行进位的关系;
②、增加了一行串行FA阵列用来处理最后一行FA的进位关系

四、补码一位乘法器和补码阵列乘法器
4.1、补码一位乘法器

右边电路图的各个部分的名称和运行规则如下:
①、ALU:执行累加功能的加法器;
②、Y:乘数寄存器;
③、P:部分集寄存器;
ALU除了处理部分集寄存器P中反馈的数据以外,另外一个运算的数据是由Yn+1和Yn的不同取值来确定的,不是[X]补就是[-X]补,当Yn+1 = Yn时,不需要将0送入到ALU中,只需要将部分集P右移1位就可以。其余运行规则可以参照原码一位乘法器的运行规则。
4.2、补码阵列乘法器
上面补码一位乘法器的不足点也存在性能不高的问题,可以用以下补码阵列乘法器来解决。


浙公网安备 33010602011771号