




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、合肥工业大学大学实验报告课程名称:实验名称:指导教师:移位乘法器设计& 8位Booth乘法器设计陶辉20114712电子科学与技术11-1班倪伟设计FPGA名:号:级:合肥工业大学电子科学与应用物理学院制移位乘法器实验原理移位和相加乘法原理,乘法通过逐项移位相加原理来实现,从被乘数的最低位开始, 若为1,则乘数右移后与上一次的和相加;若为 0,左移后以全零相加,直至被乘数的最 高位。实验步骤算法主程序module MUL(A,B,data);inp ut 7:0 A;inp ut 7:0 B;out put 15:0 data; wire 15:0 data; reg 7:0 D;re
2、g 7:0 A1;reg 7:0 B1;reg C;always (A or B)begi nA1 = A;B1 = B;D = 0;C = 0;rep eat(8)beg inif(A10=1)C,D = D + B1;else C,D = D + 0;C,D,A1 = C,D,A1 >> 1;endendassign data = D,A1;en dmodule移位乘法器测试文件module test;reg 7:0 A;reg 7:0 B;/ Out putswire 15:0 data;/I nsta ntiate the Unit Un der Test (UUT)MUL
3、 uut (11A(A),.data(data));in itial beg in/In itialize InputsA = 0;B = 0;/ Wait 100 ns for global reset to finish#20;A = 8'b0000_0010;B = 8'b0000_1101;/ Add stimulus hereenden dmodule实验结果及分析县K'电 data15壷 A17:0殆 0>17:O999, MSQOOOaQQQQDCQDOoaaiQDDCDliaiZl: 1h 004 PE<X3J>(>000000C
4、jllQlQODDOOOlO00001101Ir CKKh wp2进制输入输出结果1 1 J r 1 1 埠声1 1 1 r 1 n npsm «a ps1 J L 1 r 1 i 11 J i 1 r 1 1 1pa1 1 1 r 1 1 1Ij QMj OM e>e 11, OWjOOp OS:il h 111 ri 111卜萼d如1丸21-雹 BP:QL313111:1, CKH, CKX)盟SefaiMlt. wcf*+ n ff XW10进制输入输出结果四、体会通过移位乘法器的设计,简单的了解了ISE软件的基本功能,主要菜单选项,以及如何建立一个工程,如何在工程里面写
5、程序和进行编译和综合等。总体来说最困难的部分就是把这个移位乘法器的算法弄明白。可能我们平常自己算乘 法没有任何困难,但是要通过编码的形式,让计算机能够了解整个算法的流程却不是一 件容易的事情。在整个编写移位乘法器的过程中,看懂整个流程图花费了我很长的时间。 了解整个算法的流程之后编程自然顺理成章了。所以,我在之后做自己的课题“ booth乘法器”的时候我也花费了很长的时间通过上网查询,详细了解这个算法的确切含义。虽然花费了很长的时间在研究算法上,但是我觉得是值得的,因为那是最根本的地 方。最后结果也如愿出来了。所以,我觉得以后在编程的时候,了解你要编写模块的作用以及通过什么算法来实 现是一件很
6、重要的事情。8位booth乘法器设计实验原理Booth算法是一种十分有效的计算有符号数乘法的算法。算法的新型之处在于减法也可用于计算乘积。Booth发现加法和减法可以得到同样的结果。因为在当时移位比加法快得多, 所以Booth发现了这个算法,Booth算法的关键在于把1分类为开始、中间、结束三种,如下图 所示1的纠束 WvM2ai'丄丨0。|图Beth箕法中1的分英示意当然一串0或者1的时候不操作,所以的中间,无任何操作;的结束,将被乘数加到积的左半部分; 的开始,积的左半部分减去被乘数;的中间,无任何操作。01:11«前谊右边的位分类101的弃蜡111的中同011的结求00
7、«的中冋Booth算法可以归类为以下四种情况:Booth算法中I的甘类Booth算法根据乘数的相邻2位来决定操作,第一步根据相邻2位的4中情况来进行加或减操 作,第二部仍然是将积寄存器右移,算法描述如下:(1)根据当前为和其右边的位,做如下操作:00:01:1011:(2)将积寄存器右移1位。因为Booth算法是有符号数的乘法,因此积寄存器移位的时候,为了保留符号位,进行 算术右移。同时如果乘数或者被乘数为负数,贝U其输入为该数的补码,若积为负数,贝U输出 结果同样为该数的补码。制于 BoortiW法.準嵌如卜I 2机X 3皿=一血.或1101, = 1111 IOIO5.迄鼻过程见
8、古&1卑Booth算怯i6算过風歩*1摘乘CUT:,枳如:00010<WM 1101 01让桝-桝=好戳no 10Nionoi 01:枳橹1盧OOIQllIlOIHOi1h 011軸-矗"量no IDMAIOILQ 1A ft*橹 1 &<H>iaOOWMILD11= ID-軸N欄一被扁5no 1011101011 01: ft#潜 1 &<H>iaIII 0101 J41: 1 nop1: ft/.n 1 a0010<H»IOIII 0101 1Illi lOlDI实验步骤主程序代码:module booth8(
9、data_ on, data_out);input data_ on;wire 15:0 data_o n;out put 19:0 data_out;wire 19:0 data_out;reg 7:0 R0,R1,R2;reg c1, p;reg 4:0 i;reg 3:0 t mp;reg 19:0 data;always(data_ on)begi nR0=0;R1=data_o n7:0;R2=data_o n15:8;p=0;rep eat(8)beg incase(R20, p) 2'b00: R0=R0;2'b01: R0=R0+R1;2'b10: R0
10、=R0-R1;2'b11: R0=R0;endcase c仁R07;c1,R0,R2, p=c1,R0,R2, p>>1;enddata=0;rep eat(16)beg inrep eat(5) begi ntmp, data=t mp ,datavv4;if(t mp>=5) tmp=tmp+3;else tmp=tmp;data3:0=t mp;end data,R0,R2=data,R0,R2<<1;endendassig n data_out=data;en dmodule顶层模块:module top(clk,rst,data_out,data
11、_i n);input clk,rst;out put 19:0 data_out;out put 15:0 data_i n;wire 15:0 data_i n;reg 2:0 addra,ct;reg clk1;always (po sedge clk or n egedge rst) begi n if(rst = 0) begi n ct<=0;clk1<=0;end else if(ct=7) begi n clk1<=clk1;ct<=0;end elsect<=ct+1;end booth8 U1(.data_out(data_out).data_
12、 on( data_i n) );rom U2( .clka(clkl), /inp ut clka .addra(addra), / inpu t 2 : 0 addra .douta(data_i n) / out put 15 : 0 douta );always (po sedge clk1 or n egedge rst) begin if (rst=0) addra <= 0;else addra <= addra + 1;enden dmodule测试模块:module test;/Inputs reg clk;reg rst;/ Out puts wire 19:0
13、 data_out;wire 15:0 data_i n;/ I nsta ntiate the Unit Un der Test (UUT) top uut (.clk(clk).rst(rst).data_out(data_out).datan(data_i n)); in itial beg in/In itialize Inputs clk = 0;rst = 1;#10 rst=0;#10 rst=1;/ Wait 100 ns for global reset to finish #800 $st op;/ Add stimulus hereend always #5 clk=cl
14、k;en dmodule國 WawToim - DEV4 肪血忙弭(KCSVUd 1071 UMn;Q WrIWO (ILAt図实验结果及分析COE文件,输入的8组数据16q COE Fib ContentsRadix:COE Vector: memory_initialization_vectorIndexVSI'ue0000010407208093070340509508086060970709Close 旦总 IpIcdc输出结果:每 Wavslomii. DEHvDBvicel iXCSVDtl 100 lUlNITsO UvlUO iLA)1D1Busi'Srnal
15、丿 did® ;rfT_IEHP 4/1_1U41U51Dl5307OMW307»oQ600如皿 aaDOdddiii 呱ID07MDOODDDDDDDMEOI阳 飞00如皿0。皿口血1血创仙fA :乘数 B:被乘数 data_booth:BCD输出积BuEiSiqnal272929313334J=JLJ=3741420309 厂 00 X wr 09 X OJ 厂丽r 03 Y "Y orsot 0* Y OS 厂5D fl酉 X o£丫 如 ? X DP X 03 厂09 X 03 戈OSDCM20M2A :乘数 B :被乘数 data booth:
16、十进制输出积nsNameHE A7.On 节 &7:01Valuedata_ljo(?th15 5000 000 DQOlIfii elk0世(St1lOlWOWWOWWltlWlflrLTUuin.£50 n區I IZDC=>C|45G "LrLnJirLrurLrLrLrLrurLrLrLrLrLrLTLrLrLrLrLrLrLrLnJtl: 7fi0_-e42 DS IlDefauir wffgTg|测试波形四、体会经过两个礼拜的不懈努力,终于把最后的实验结果按要求完成了。 从一开始的一头雾 水到逐渐明白了方向,了解了该如何操作。一切都是对未知知识上下求索。虽然团队只有三个人,但是我们互相协助, 各司其职,每个人分派自己的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 健康线上教程课件下载网
- 国一花木兰数学试卷
- 2025年中国炼胶机械行业市场深度分析及发展趋势预测报告
- 2021-2026年中国转基因农业市场供需现状及投资战略研究报告
- 2024-2030全球水源热工业热泵行业调研及趋势分析报告
- “以竹代塑”主要产品名录(2025年版)
- 医院医保政策解读课件
- 绿色转型观察|中国基础设施公募在可再生能源领域进展研究 2025
- 营口市公共场所管理办法
- 蓝天救援队车牌管理办法
- 2025年大学英语四级考试题及答案
- 财政国库管理培训课件
- 国际功能、残疾和健康分类(ICF)及核心组合
- 企业管理考试题目和答案
- 质量管理基础知识培训课件
- 2025年 陕西延长石油有限责任公司所属单位招聘考试笔试试卷附答案
- 2025年电力系统与自动化专业考试试题及答案
- 多耐病人的隔离措施及护理
- 2025年食品安全法律法规的基础考试试卷及答案
- 专题02 运动的描述-2025-2026学年人教版《物理》八年级上学期暑期预习自学讲义
- 新生儿腹胀的观察及护理
评论
0/150
提交评论