Booth算法_乘法器实验报告.doc

Booth算法_乘法器实验报告.doc

ID:53958220

大小:66.01 KB

页数:5页

时间:2020-04-11

Booth算法_乘法器实验报告.doc_第1页
Booth算法_乘法器实验报告.doc_第2页
Booth算法_乘法器实验报告.doc_第3页
Booth算法_乘法器实验报告.doc_第4页
Booth算法_乘法器实验报告.doc_第5页
资源描述:

《Booth算法_乘法器实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Booth乘法器实验报告一、实验目的1、理解并掌握乘法器的原理。2、理解并掌握Booth算法,及其实现方式。二、实验原理1、乘法规律假定是十进制数的各位要么为0要么为1,例如1000*1001被乘数100010乘数×1001101000000000001000积100100010从上面可以得出乘法的基本规律:(1)从右到左用乘数的每一位乘以被乘数,每一次乘得的中间结果比上一次的结果往左移一位。(2)积的位数比被乘数和乘数的位数要多得多。(3)若十进制各位限制为0或1,则乘法变成①若乘数位为1,则简单的复制被乘数到合适的

2、位置;②若乘数位是0,则在合适的位置置0。2、有符号数乘法—Booth乘法器(1)1的分类Booth算法的关键在于把1分类为开始、中间、结束3种,如下图1的开始1的中间0111101的结束Booth算法1的分类示意图(2)算法描述以前乘法器的第一步是根据乘数的最低位来决定是否将被乘数加到中间结果积,而Booth算法则是根据乘数的相邻两位来决定操作,第一步根据相邻2位的4种情况来进行加或减操作,第二步仍然是将积寄存器右移。算法描述如下:①根据当前位和其右边的位,作如下操作00:0的中间,无任何操作;01:1的结束,将被乘

3、数加到积的左半部分;10:1的开始,积的左半部分减去被乘数;11:1的中间,无任何操作。②将积寄存器算术右移一位。对于Booth算法,举例如下:210*-310=-610,或者说是00102*11012=111110102。运算过程见下表。Booth算法运算过程重复步骤被乘数(md)积(p)0初始值001000001101011:10->积=积-被乘数2:积右移一位001011101101011110110121:01->积=积+被乘数2:积右移一位001000010110100001011031:10->积=积-被乘

4、数2:积右移一位001011101011011110101141:11->nop2:积右移一位0010111101011111110101三、实验步骤1、在PC机上完成ISE的安装。2、完成工程设计。3、下载。四、实验现象1、Modelsim按照实例给出仿真结果2、输入输出规则(1)输入的4位被乘数md3~md0对应四个开关。(2)输入的4为乘数mr3~mr0对应四个按键。(3)乘积product的后两位对应LED点。3、操作细节Booth算法实验重复步骤被乘数(md)积(p)被乘数(-7)10乘数是(6)100初始值

5、100100000110011:10->积=积-被乘数2:积右移一位100100000110000000011021:01->积=积+被乘数2:积右移一位100101110011000111001131:10->积=积-被乘数2:积右移一位100100111001100011100141:11->nop2:积右移一位1001101011001110101100重复步骤被乘数(md)积(p)被乘数(-4)10乘数是(-5)100初始值110000001011011:10->积=积-被乘数2:积右移一位1100010010

6、11000100101121:01->积=积+被乘数2:积右移一位110000100101100010010131:10->积=积-被乘数2:积右移一位110011010010111101001041:11->nop2:积右移一位1100001010010000101001五、心得体会通过这次实验,真正领悟到所谓的“软件思想”与“硬件理念”的不同。脱开VHDL,我们用学过的任意高级语言编程,我们可以对变量循环赋值、可以随赋值随利用,但这些是纯的软件思想,硬件无法立即反应与实现,信号量在赋值方面尤其体现了这一点。实验中,

7、由于积寄存器在一步操作中既要做加减运算,又要右移,反复操作了很多次,却始终无法完成一个信号量在一个进程中完成两个操作,也试验了在两个进程中分别完成,但结果又成了多驱动问题。追究了半天原因,想到了用能“即赋值即使用”的变量来作为“媒介”,用变量来完成加减运算,而积寄存器只需要从“媒介”中右移一位取值,这样可以既运算又完成右移。libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityBoothisport(md:instd_lo

8、gic_vector(3downto0);mr:instd_logic_vector(3downto0);p:bufferstd_logic_vector(8downto0);clk:instd_logic;final:bufferstd_logic);endentity;architecturertlofBoothissigna

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。