


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025福建福州市事业单位招聘772人考前自测高频考点模拟试题及答案详解(全优)
- 2025年洮南市面向社会公开招聘化工园区特勤站政府专职消防员聘用人员模拟试卷附答案详解(黄金题型)
- 2025甘肃武威市古浪县八步沙林场招聘财会、水利专业人员3人考前自测高频考点模拟试题及答案详解参考
- 2025湖南衡阳理工职业学院人才招聘4人考前自测高频考点模拟试题及参考答案详解一套
- 医生进修心得体会(集合15篇)
- 2025河北科技工程职业技术大学选聘52人模拟试卷附答案详解(典型题)
- 2025甘肃平凉市第二批市直单位公益性岗位人员招聘37人模拟试卷及一套参考答案详解
- 2025年杭州拱墅区朝晖街道社区卫生服务中心招聘编外聘用人员1人模拟试卷完整参考答案详解
- 2025年宣城广德市国有资产投资经营有限公司下属公司招聘11人模拟试卷及答案详解(各地真题)
- 2025年临沂市机电工程学校公开招聘教师(20名)模拟试卷及答案详解(网校专用)
- 【02-新课预习】第10讲 专题提升- 运动图像与追及相遇问题 (教师版) -2025新高一物理暑假衔接讲练 (人教版)
- 施工企业会计实务课件
- 2025年时事政治试题库及答案(共550题)
- 汽车玻璃升降器培训资料
- DB2301∕T 178-2024 地下市政基础设施普查及信息化管理平台建设技术规程
- 《人工智能与社会》高职人工智能通识课程全套教学课件
- 龋齿的治疗讲课件
- 中医肠道健康课件
- 妊娠期高血压疾病诊治指南(2025版)解读
- 巡回护士的职责及流程
- 中石油2025年招聘笔试真押题
评论
0/150
提交评论