


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、运算器部件实验:Booth乘法器班级:软件工程一、 实验目的理解并掌握乘法器的原理。二、 实验原理Booth算法是一种十分有效的计算有符号数乘法的算法。算法的新型之处在于减法也可用于计算乘积。Booth发现加法和减法可以得到同样的结果。因为在当时移位比加法快得多,所以Booth发现了这个算法,Booth算法的关键在于把1分类为开始、中间、结束三种,如下图所示当然一串0或者1的时候不操作,所以Booth算法可以归类为以下四种情况: Booth算法根据乘数的相邻2位来决定操作,第一步根据相邻2位的4中情况来进行加或减操作,第二部仍然是将积寄存器右移,算法描述如下:(1) 根据当前为和其右边的位,做
2、如下操作: 00: 0的中间,无任何操作; 01: 1的结束,将被乘数加到积的左半部分; 10:1的开始,积的左半部分减去被乘数; 11: 1的中间,无任何操作。(2) 将积寄存器右移1位。 因为Booth算法是有符号数的乘法,因此积寄存器移位的时候,为了保留符号位,进行算术右移。同时如果乘数或者被乘数为负数,则其输入为该数的补码,若积为负数,则输出结果同样为该数的补码。 三、 实验步骤(1) 打开QuartusII(2) 将子板上的JTAG端口和PC机的并行口用下载电缆连接,打开试验台电源。(3) 执行ToolsProgrammer命令,将booth_multiplier.sof下载到FPG
3、A中。(4) 在实验台上通过模式开关选择FPGA-CPU独立调试模式010.(5) 将开关CLKSEL拨到0,将短路子DZ3短接且短路子DZ4断开,使FPGA-CPU所需要的时钟使用正单脉冲时钟。四、 实验现象实验结果见下表:重复 步骤 被乘数(md) 积(p) 被乘数是(-7)10 乘数是(8)100初始值10010000 0110 011:00->nop10010000 0110 02:积右移一位10010000 0011 021:10->积=积-被乘数10010111 0011 02:积右移一位10010011 1001 131:11->nop10010011 1001
4、 12:积右移一位10010001 1100 141:01->积=积+被乘数10011010 1100 12:积右移一位10011101 0110 0重复 步骤 被乘数(md) 积(p) 被乘数是(-4)10 乘数是(-5)100初始值11000000 1011 011:10->积=积-被乘数11000100 1011 02:积右移一位11000010 0101 121:11->nop11000010 0101 12:积右移一位11000001 0010 131:01->积=积+被乘数11001101 0010 12:积右移一位11001110 1001 041:10-
5、>积=积-被乘数11000010 1001 02:积右移一位11000001 0100 1五、 具体代码实现端口声明:port( clk: in std_logic; md : in std_logic_vector(3 downto 0); mr : in std_logic_vector(3 downto 0); p : out std_logic_vector(8 downto 0); final: out std_logic );信号量声明:signal p_s:std_logic_vector(8 downto 0);signal counter:std_logic_vecto
6、r(3 downto 0):="0000" -counter具体算法实现如下:process(clk)isbegin if(clk'event and clk='1')then -时钟沿到来 if(counter="0000")then p_s(8 downto 0)<="0000"&mr(3 downto 0)&"0" -进行初始化操作 elsif(counter(0)='0')then p_s(8 downto 0)<=p_s(8)&p
7、_s(8 downto 1); -计数为偶数时进行移位操作 elsif(counter(0)='1')then -计数位奇数是进行加或减操作-由于计算过程中会进行移位操作,所以p_s(1 downto 0)始终表示当前位和当前位的右边-一位 if(p_s(1 downto 0)="10")then p_s(8 downto 5)<=p_s(8 downto 5)+(not md)+"0001"); -减法操作 elsif(p_s(1 downto 0)="01")then p_s(8 downto 5)<=p_s(8 downto 5)+md(3 downto 0); -加法操作 end if; end if; if(counter<"1001")then -计数器counter及final输出的操作 counter<=counter+"0001" elsif(counter="1001")then fin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山东省废旧回收管理办法
- 四川土地经纪人管理办法
- epc项目范围管理办法
- 个人nra账户管理办法
- 合作方人员管理办法细则
- 唐山电动车户籍管理办法
- 游戏公司游戏引擎与游戏画面优化升级方案
- 金融投资出借咨询与收益分配合同
- 高标准草场土地租赁与畜牧业发展合同
- 车辆购置税费分期付款合同范本
- 职业院校生涯教育与就业指导体系构建研究
- 2025至2030中国电镀锌钢行业发展趋势分析与未来投资战略咨询研究报告
- 山西省2025年中考语文真题(含答案)
- 企业研发人员管理制度
- 黑吉辽蒙2025年高考政治真题含解析
- 沪教七年级 (下) Unit 7 Role models of our time 重点复习课件
- 2025年云南省高考化学试卷真题(含答案解析)
- 辽宁省沈阳市沈河区2025届英语八下期末监测模拟试题含答案
- 2025-2030中国养生面条市场供需渠道及运营模式发展趋势报告
- 初中英语1600词汇汇-总(背诵版+例句)
- 高考英语3000词默写版(一)
评论
0/150
提交评论