已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Booth 乘法器实验报告乘法器实验报告 一 实验目的一 实验目的 1 理解并掌握乘法器的原理 2 理解并掌握 Booth 算法 及其实现方式 二 实验原理二 实验原理 1 乘法规律 乘法规律 假定是十进制数的各位要么为 0 要么为 1 例如 1000 1001 从上面可以得出乘法的基本规律 1 从右到左用乘数的每一位乘以被乘数 每一次乘得的中间结果比上一次的 结果往左移一位 2 积的位数比被乘数和乘数的位数要多得多 3 若十进制各位限制为 0 或 1 则乘法变成 若乘数位为 1 则简单的复制被乘数到合适的位置 若乘数位是 0 则在合适的位置置 0 2 2 有符号数乘法 有符号数乘法 BoothBooth 乘法器乘法器 1 1 1 1 的分类的分类 Booth 算法的关键在于把 1 分类为开始 中间 结束 3 种 如下图 0 11 11 0 1 的结束 Booth 算法 1 的分类示意图 2 2 算法描述 算法描述 以前乘法器的第一步是根据乘数的最低位来决定是否将被乘数加到中间结果 积 而 Booth 算法则是根据乘数的相邻两位来决定操作 第一步根据相邻 2 位 的 4 种情况来进行加或减操作 第二步仍然是将积寄存器右移 算法描述如下 根据当前位和其右边的位 作如下操作 00 0 的中间 无任何操作 被乘数 1 0 0 010 乘数 1 0 0 110 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 积 1 0 0 1 0 0 010 1 的中间1 的开始 01 1 的结束 将被乘数加到积的左半部分 10 1 的开始 积的左半部分减去被乘数 11 1 的中间 无任何操作 将积寄存器算术右移一位 对于 Booth 算法 举例如下 210 310 610 或者说是 00102 11012 1111 10102 运算过程见下表 BoothBooth 算法运算过程算法运算过程 重重 复复 步步 骤骤被被 乘乘 数 数 mdmd 积积 p p 0 初始值 00100000 1101 0 1 1 10 积 积 被乘数 2 积右移一位 00101110 1101 0 1111 0110 1 2 1 01 积 积 被乘数 2 积右移一位 00100001 0110 1 0000 1011 0 3 1 10 积 积 被乘数 2 积右移一位 00101110 1011 0 1111 0101 1 4 1 11 nop 2 积右移一位 00101111 0101 1 1111 1010 1 三 实验步骤三 实验步骤 1 在 PC 机上完成 ISE 的安装 2 完成工程设计 3 下载 四 实验现象四 实验现象 1 1 ModelsimModelsim 按照实例给出仿真结果 2 2 输入输出规则 输入输出规则 1 输入的 4 位被乘数 md3 md0 对应四个开关 2 输入的 4 为乘数 mr3 mr0 对应四个按键 3 乘积 product 的后两位对应 LED 点 3 3 操作细节 操作细节 BoothBooth 算法实验算法实验 重重 复复 步步 骤骤被被 乘乘 数 数 mdmd 积积 p p 被 乘 数 7 10 乘数是 6 10 0 初始值 10010000 0110 0 1 1 10 积 积 被乘数 2 积右移一位 10010000 0110 0 0000 0011 0 2 1 01 积 积 被乘数 2 积右移一位 10010111 0011 0 0011 1001 1 3 1 10 积 积 被乘数 2 积右移一位 10010011 1001 1 0001 1100 1 4 1 11 nop 2 积右移一位 10011010 1100 1 1101 0110 0 重重 复复 步步 骤骤被被 乘乘 数 数 mdmd 积积 p p 被 乘 数 4 10 乘数是 5 10 0 初始值 11000000 1011 0 1 1 10 积 积 被乘数 2 积右移一位 11000100 1011 0 0010 0101 1 2 1 01 积 积 被乘数 2 积右移一位 11000010 0101 1 0001 0010 1 3 1 10 积 积 被乘数 2 积右移一位 11001101 0010 1 1110 1001 0 4 1 11 nop 2 积右移一位 11000010 1001 0 0001 0100 1 五 心得体会五 心得体会 通过这次实验 真正领悟到所谓的 软件思想 与 硬件理念 的不同 脱开 VHDL 我们用学过的任意高级语言编程 我们可以对变量循环赋值 可以 随赋值随利用 但这些是纯的软件思想 硬件无法立即反应与实现 信号量在 赋值方面尤其体现了这一点 实验中 由于积寄存器在一步操作中既要做加减 运算 又要右移 反复操作了很多次 却始终无法完成一个信号量在一个进程 中完成两个操作 也试验了在两个进程中分别完成 但结果又成了多驱动问题 追究了半天原因 想到了用能 即赋值即使用 的变量来作为 媒介 用变量 来完成加减运算 而积寄存器只需要从 媒介 中右移一位取值 这样可以既 运算又完成右移 library ieee use ieee std logic 1164 all use ieee std logic unsigned all entity Booth is port md in std logic vector 3 downto 0 mr in std logic vector 3 downto 0 p buffer std logic vector 8 downto 0 clk in std logic final buffer std logic end entity architecture rtl of Booth is signal count std logic vector 2 downto 0 signal t std logic vector 3 downto 0 shared variable c std logic vector 4 downto 0 shared variable b std logic vector 8 downto 0 begin process clk begin c 0 0 if clk event and clk 1 then b 8 downto 0 p 8 downto 0 if count 000 then p 8 downto 5 0000 p 4 downto 1 mr 3 downto 0 p 0 0 b 8 downto 5 0000 b 4 downto 1 mr 3 downto 0 b 0 0 t 3 downto 0 not md 3 downto 0 1 final 0 else if p 1 downto 0 01 then b 8 downto 5 b 8 downto 5 md 3 downto 0 elsif p 1 downto 0 10 then b 8 downto 5 b 8 downto 5 t 3 downto 0 end if p 8 b 8 p 7 downto 0 b 8 downto 1 end if count count 1 if count 100 then count 000 final p 8 downto 5 0000 p 4 downto 1 mr 3 downto 0 p 0 0 b 8 downto 5 0000 b 4 downto 1 mr 3 downto 0 b 0 0 t 3 downto 0 not md 3 downto 0 1 count 001 final if p 1 downto 0 01 then b 8 downto 5 b 8 downto 5 md 3 downto 0 elsif p 1 downto 0 10 then b 8 downto 5 b 8 downto 5 t 3 downto 0 end if count 010 p 8 b 8 p 7 downto 0 if p 1 downto 0 01 then b 8 downto 5 b 8 downto 5 md 3 downto 0 elsif p 1 downto 0 10 then b 8 downto 5 b 8 downto 5 t 3 downto 0 end if p 8 b 8 p 7 downto 0 b 8 downto 1 count if p 1 downto 0 01 then b 8 downto 5 b 8 downto 5 md 3 downto 0 elsif p 1 downto 0 10 then b 8 downto 5 b 8 downto 5 t 3 downto 0 end if p 8 b 8 p 7 downto 0 b 8 downto 1 count if p 1 downto 0 01 then
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年电子数据采集协议含隐私保护条款
- 教育机构工伤事故预防及应急措施
- 二年级上册道德法治教学进度计划
- 语文教学反思评课稿范文
- 屏蔽机房建设实施方案
- 《中国美食》的教学反思
- 人教版三年级数学下学期第一单元测试题
- 人教版小学数学三年级上册计算题天天练
- 苏教版二年级数学上册各单元教材分析
- 《北京的春节》教学设计
- 计算机视觉与机器人智慧树知到期末考试答案章节答案2024年浙江大学
- JT-T-1046-2016道路运输车辆邮箱及液体燃料运输罐体阻隔防爆安全技术要求
- 上海老字号餐饮品牌数字化转型指数研究报告
- 免疫调节剂(口腔科临床用药课件)
- 出国留学-话题education英语演讲PPT
- 【10套试卷】厦门市外国语学校小升初模拟考试数学试题含答案
- 最后一战-励志高考冲刺30天主题班会 高考倒计时主题班会课件
- 杭州师范大学堪培拉教育领导与管理硕士项目
- GB/T 28686-2012燃气轮机热力性能试验
- GB/T 16301-2008船舶机舱辅机振动烈度的测量和评价
- GB/T 1185-2006光学零件表面疵病
评论
0/150
提交评论