Booth乘法器实验报告
更新时间:2024-03-12 15:47:01 阅读量: 综合文库 文档下载
- booth乘法器原理推荐度:
- 相关推荐
运算器部件实验:Booth乘法器
班级:软件工程
一、 实验目的
理解并掌握乘法器的原理。
二、 实验原理
Booth算法是一种十分有效的计算有符号数乘法的算法。算法的新型之处在于减法也可用于计算乘积。Booth发现加法和减法可以得到同样的结果。因为在当时移位比加法快得多,所以Booth发现了这个算法,Booth算法的关键在于把1分类为开始、中间、结束三种,如下图所示
当然一串0或者1的时候不操作,所以Booth算法可以归类为以下四种情况:
Booth算法根据乘数的相邻2位来决定操作,第一步根据相邻2位的4中情况来进行加或减操作,第二部仍然是将积寄存器右移,算法描述如下: (1) 根据当前为和其右边的位,做如下操作: 00: 0的中间,无任何操作;
01: 1的结束,将被乘数加到积的左半部分; 10:1的开始,积的左半部分减去被乘数; 11: 1的中间,无任何操作。 (2) 将积寄存器右移1位。
因为Booth算法是有符号数的乘法,因此积寄存器移位的时候,为了保留符号位,进行算术右移。同时如果乘数或者被乘数为负数,则其输入为该数的补码,若积为负数,则输出结果同样为该数的补码。
三、 实验步骤
(1) 打开QuartusII
(2) 将子板上的JTAG端口和PC机的并行口用下载电缆连接,打开试验台电
源。
(3) 执行Tools→Programmer命令,将booth_multiplier.sof下载到FPGA
中。
(4) 在实验台上通过模式开关选择FPGA-CPU独立调试模式010. (5) 将开关CLKSEL拨到0,将短路子DZ3短接且短路子DZ4断开,使FPGA-CPU
所需要的时钟使用正单脉冲时钟。
四、 实验现象
实验结果见下表: 重复 0 1 2 3 4
重复 0 1 2 3 4
步骤 初始值 2:积右移一位 1:11->nop 2:积右移一位 2:积右移一位 2:积右移一位 被乘数(md) 被乘数是(-4)10 1100 1100 1100 1100 1100 1100 积(p) 乘数是(-5)10 0000 1011 0 0100 1011 0 0010 0101 1 0010 0101 1 0001 0010 1 1101 0010 1 1110 1001 0 0010 1001 0 0001 0100 1 步骤 初始值 1:00->nop 2:积右移一位 2:积右移一位 1:11->nop 2:积右移一位 2:积右移一位 被乘数(md) 被乘数是(-7)10 1001 1001 1001 1001 1001 1001 1001 积(p) 乘数是(8)10 0000 0110 0 0000 0110 0 0000 0011 0 0111 0011 0 0011 1001 1 0011 1001 1 0001 1100 1 1010 1100 1 1101 0110 0 1:10->积=积-被乘数 1001 1:01->积=积+被乘数 1001 1:10->积=积-被乘数 1100 1:01->积=积+被乘数 1100 1:10->积=积-被乘数 1100 五、 具体代码实现
端口声明:
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_vector(3 downto 0):=\
具体算法实现如下:
process(clk)is begin
if(clk'event and clk='1')then --时钟沿到来 if(counter=\
p_s(8 downto 0)<=\ --进行初始化操作 elsif(counter(0)='0')then
p_s(8 downto 0)<=p_s(8)&p_s(8 downto 1); --计数为偶数时进行移位操作 elsif(counter(0)='1')then --计数位奇数是进行加或减操作 --由于计算过程中会进行移位操作,所以p_s(1 downto 0)始终表示当前位和当前位的右边--一位
if(p_s(1 downto 0)=\
p_s(8 downto 5)<=p_s(8 downto 5)+((not md)+\ --减法操作 elsif(p_s(1 downto 0)=\
p_s(8 downto 5)<=p_s(8 downto 5)+md(3 downto 0); --加法操作 end if; end if;
if(counter<\ --计数器counter及final输出的操作 counter<=counter+\ elsif(counter=\ final<='1';
counter<=\ else
final<='0'; end if; p<=p_s; end if;
end process; --进程结束
正在阅读:
Booth乘法器实验报告03-12
初中运动会广播稿怎么写精彩3篇04-02
八下复习课外文言文翻译07-12
关于赴杭州、苏州、上海等地工业园区学习考察的调研报告12-06
汽轮机扣大盖作业指导书07-19
2013年12月安徽省计算机等级二级考试真题C语言05-28
(4)关于投资者利益保护的思索-4961 - 图文09-10
中国美术学院设计素描教案05-11
上证指数12月6日走势分析08-06
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 乘法器
- 实验
- 报告
- Booth
- 2016年安全监理培训试题及答案
- 2.6.2《在实践中追求和发展真理》同步测试题(新人教版必修4)
- 《计算机应用信息系统》试题(A卷)答案
- “十三五”重点项目-粗品肌酸项目商业计划书
- 对物理实验操作考试的几点意见
- 大气污染控制工程课程设计
- 工地人员、车辆、物资出入现场的管理规定
- 小学英语特岗教师招聘考试冲刺题及答案
- 2014年攸县事业单位考试真题
- 信息系统分析与设计项目课程作业
- 医院制剂室制度
- 关于开展优化专业结构建设调研请示及方案
- 嵌入式农业监控系统的设计
- 最全的四年级英语下册知识点总结
- 蝴蝶绒面料项目可行性研究报告(目录) - 图文
- 10年《数据结构》课程设计参考题
- 2018-2019-浙江高考满分作文赏析-精选word文档(3页)
- 在小学语文教学中发挥学生的主体性-最新教育文档
- 幼师考试名词解释
- 2018年档案管理年度工作总结