Booth算法及其MIPS实现 booth算法

乘法操作CPU设计过程中 很重要的环节。相比加减法器等简单操作的电路,乘法电路的设计更加复杂,对面积和延时的影响也更加突出。无符号数乘法的实现,类似于手算乘法,可以通过移位和加法操作完成。有符号数的乘法操作要复杂一些。一种最容易的想法是,把有符号数的绝对值按照无符号数相乘,再用乘数和被乘数的符号位异或得到乘法结果的符号位。但这种算法实现是消耗的面积和延时十分严重,我们必须寻找面积延时消耗更少的算法。

Booth算法是一种计算有符号数乘法运算的简单算法。下面描述一下Booth算法实现的具体步骤:

Booth算法及其MIPS实现 booth算法

把L位的乘数A和L位的被乘数B表示成补码形式,用2L位的W存储运算结果。把B填充到W的低L位,从B的最低位开始,依次根据和当前操作位低一位的值对W进行相应的操作,如下表所示,其中.

为了简单起见,用8位有符号数的乘法0x8E×0x9F演示一下Booth算法的具体过程:

最后,给出16位有符号数Booth乘法的MIPS实现代码:

(在博客中字符对齐实在是太难了,还是截成图片传上来省事儿)

  

爱华网本文地址 » http://www.aihuau.com/a/25101016/293616.html

更多阅读

C#程序实现Canny边缘检测算法 边缘检测算法实现

转载自:http://blog.csdn.net/yjz_uestc/article/details/6664937Canny边缘检测是被公认的检测效果最好的边缘检测方法,是由JohnF.Canny于1986年提出,算法目标是找出一个最优的边缘检测的方法,所谓最优即:1.好的检测:算法能够尽可能的标

笔试题目总结——常用数据结构与算法 数据结构与算法笔试题

数据结构与算法,这个部分的内容其实是十分的庞大,要想都覆盖到不太容易。在校学习阶段我们可能需要对每种结构,每种算法都学习,但是找工作笔试或者面试的时候,要在很短的时间内考察一个人这方面的能力,把每种结构和算法都问一遍不太现实。

在STEP7V5.5中如何实现数值微分?算法 数值微分画线算法

在 STEP 7 V5.5 中如何实现数值微分?【算法】描述在数学中,微分是一个函数变化率的处理。不过在实践中,通常没有数学值,而 (举例来说)只有一个随时间变化的值。这个基于 STEP 7 Basic V5.5的程序根据当前值和前一函数值(一阶导数)计算

PID控制算法原理图及其快速调试要诀 pid控制系统原理图

无论在FA领域还是在PA领域,PID算法都是各类工业控制技术的祖师爷,那么其原理是什么呢?我们需要把以下图片牢牢记在脑海中,经常看看,边看边学,边看边用,用着用着,就慢慢懂了:熟记PID整定调教顺口溜:  参数整定找最佳,从小到大顺序查;  先是

基于LSB信息隐藏算法的MATLAB实现 svm算法matlab实现

%将水印图像按最低位有效(LSB)方法嵌入到载体图像中,并把水印从载体图像中提取出来%注:整个算法分为水印嵌入部分和水印提取部分,及hcf com down_sampled水印分析% 程序代写&算法设计,联系qq:380238062,转载时请保留clc %清屏cle

声明:《Booth算法及其MIPS实现 booth算法》为网友向往普罗旺斯分享!如侵犯到您的合法权益请联系我们删除