原码一位乘法器
手工计算原理
这里我们要计算0.1101x1.1011
会列这种式子
上面的叫被乘数,下面的是乘数
计算时将乘数每一位取出与被乘数相乘,把位置错开后相加(实际上乘数只有1和0,所以相加的每一个数要么是乘数要么是0)

两个问题及解决方法
- 首先是这个乘数的位数不是固定的,可能会有好多,所以我们不能用n个加法器直接加起来,而要用一个寄存器累加结果,这样每次只有两个数相加
- 第二个问题就是计算出来的结果位数也会变多,比如乘数有n位,那么结果多出的位数也是n位,所以我们可以把多出的位数存到乘数的寄存器中
原码一位乘法器原理
经过以上分析,首先我们需要三个寄存器
- A,存放部分积的累加结果,最后会变成最终结果的高位部分1000
- B,存放被乘数
- C,存放乘数,最后会变成最终结果的低位部分1111
设置初值
A=00.0000
B=|X|=00.1101
C=|Y|=00.1011
计算过程

- 每次运算都要先判断乘数取出的一位是1还是0,然后相应地把累加寄存器A加上B或者0
- 这里C寄存器图中的小数点是为了分隔结果值和原来的被乘数,这里我们看第一次加法结束后,乘数最右侧的1被取出,这个1已经没有用了,

本文详细介绍了原码一位和两位乘法器的工作原理和计算过程。通过手工计算,展示了如何处理乘数位数不固定的问题,以及如何累加部分积。在一位乘法器中,利用三个寄存器进行计算,而在两位乘法器中,通过欠账触发器提升运算速度。文章还讨论了不同的运算规则和逻辑实现。
最低0.47元/天 解锁文章
2149

被折叠的 条评论
为什么被折叠?



