串行乘法与并行乘法

本文介绍了OR1200软核处理器中的串行乘法和并行乘法实现。串行乘法采用“移位——加”迭代算法,需要32个时钟周期完成32位乘法。并行乘法则利用FPGA内部的乘法器或Booth算法,如在Altera EP2C70上,仅需5个时钟周期。
摘要由CSDN通过智能技术生成

以下内容摘自《步步惊芯——软核处理器内部设计分析》一书


串行乘法

      OR1200中串行乘法采用的是“移位——加”迭代算法,这种算法借鉴了手工计算乘法的过程,对于二进制乘法,比如:1101*1011,手工计算过程如图8.1所示。



图8.1 手工计算二进制乘法的过程


      从图中可知手工计算时会将被乘数与乘数中每一位依次相乘,最后将所有的乘积项一并相加。这种方法速度快,但是用硬件实现时,会耗费较多硬件资源。“移位——加”迭代算法对此作了修改:每算出一乘积项,就加到乘积中。假设一开始B等于被乘数的值,A等于乘数的值,中间步骤算出的乘积项称为部分积,保存在D中,那么“移位——加”迭代算法的硬件结构图、运算过程分别如图8.2中(1)、(2)所示。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值