实验二乘法器实验报告.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验二乘法器实验报告

计算机组成原理实验报告 姓名 学号 、 班级 、 实验题目 运算器部件实验 乘法器 一、实验目的 掌握乘法器以及booth乘法器的原理 二、实验原理 乘法计算步骤: (1)从右到左用乘数的每一位乘以被乘数,每一次乘得的中间结果比上一次的结果往左移一位。 (2)积的位数比被乘数和乘数的位数要多的多。事实上,如果我们忽略符号位,n位的被乘数和m位的乘数相乘的结果的位数有(n+m)位。因此,乘法必须象加法那样处理溢出问题,如果两个32位的数相乘,积也只有32位的时候,就会出现溢出。 在上面的例子中,我们把十进制数的各位限制为0或1。因此,每一步的乘法相当简单: (1)如果乘数位是1,则简单的复制被乘数到合适的位置(1×被乘数); (2)如果乘数位是0,则在合适的位置置0 因为二进制数的各位是0或1,所以与上面情况类似。 一个有效的计算有符号数乘法的是Booth算法,算法的新颖之处在于减法也可以用于计算乘积。假定210×610,或者说00102×01102: 0 0 1 0 X 0 1 1 0 + 0 0 0 0 移位(乘数位为0) + 0 0 1 0 相加(乘数位为1) + 0 0 1 0 相加(乘数位为1) + 0 0 0 0 移位(乘数位为0) 0 0 0 0 1 1 0 0 Booth发现加法和减法可以得到同样的结果。例如, 610 = -210 + 810 或者 01102 = -00102 + 10002 因为在当时移位比加法快得多,所以Booth发现了这个算法。Booth算法的关键在于把1分类为开始、中间、结束三种。 当然一串0的时候加法减法都不做。因此,总结1的分类情况有4种如表2.4所示: 表2.4 1的分类 当前位 当前位右边的位 分类 1 0 1的开始 1 1 1的中间 0 1 1的结束 0 0 0的中间 Booth算法则是根据乘数的相邻2位来决定操作,第一步根据相邻2位的4种情况来进行加或减操作,第二步仍然是将积寄存器右移。算法描述如下: 根据当前位和其右边的位,做如下操作: 00:0的中间,无任何操作; 01:1的结束,将被乘数加到积的左半部分; 10:1的开始,积的左半部分减去被乘数; 11:1的中间,无任何操作。 将积寄存器右移1位。 需要注意的是,因为Booth乘法器是有符号数的乘法,因此积寄存器移位的时候,为了保留符号位,进行算术右移,不像前面的算法逻辑右移就可以了。 对于Booth算法,举例如下,210×-310=-610,或者说是00102×11012=1111 10102。 表2.5 Booth乘法器举例 重复 步骤 被乘数(md) 积(p) 0 初始值 0010 0000 1101 0 1 1:10→积=积-被乘数 0010 1110 1101 0 2:积右移1位 0010 1111 0110 1 2 1:01→积=积+被乘数 0010 0001 0110 1 2:积右移1位 0010 0000 1011 0 3 1:10→积=积-被乘数 0010 1110 1011 0 2:积右移1位 0010 1111 0101 1 4 1:11→空操作 0010 1111 0101 1 2:积右移1位 0010 1111 1010 1 三、实验步骤 1.打开Quartus-tools-programmer,将booth_multiplier.sof下载到FPGA中。注意进行programmer时,应在program/configure下的方框中打勾,然后下载。 2.在实验台上通过模式开关选择FPGA独立调试模式010。 3.将短路子DZ3短接且短路子DZ4断开,使FPGA-CPU所需要的时钟使用正单脉冲时钟。 四、实验现象 本实验实现4位数的Booth乘法(有符号数乘法)。 输入输出规则对应如下: 1.输入的4位被乘数(multiplicand)md3~md0对应开关SD11~SD8。 2.输入的4位乘数(multiplier)mr3~mr0对应开关SD3~SD0。 3.按单脉冲按钮,输入脉冲,也即节拍。 4.乘积product(8位)p7~p0对应灯A8~A1,辅助位A0。 5.当计算结束时,final信号为1,对应灯R7。 如表2.5的bo

文档评论(0)

2017ll + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档