定点补码一位乘法器的设计.docx
课程设计报告课程设计名称:计算机组成原理课程设计课程设计题目:定点补码一位乘法器的设计院(系):专业:班级:学号:姓名:指导教师:完成日期:目录第1章总体设计方案11.1设计原理1设计思路21.3设计环境3第2章详细设计方案42.1 顶层方案图的设计与实现4创立顶层图形设计文件4器件的选择与引脚锁定4功能模块的设计与实现5求补电路模块的设计与实现52.2.2 控制电路模块的设计与实现62.2.3 选择器模块的设计与实现6第3章编程下载与硬件测试83.1 编程下载83.2 硬件测试及结果分析8参考文献10附录(电路原理图)11第1章总体设计方案1.1设计原理(1)用X补XY补直接求XXY补讨论当相乘的两个数中有一个或二个为负数的情况,在讨论补码乘法运算时,对被乘数或局部积的处理上与原码乘法有某些类似,差异仅表现在被乘数和局部积的符号位要和数值一起参加运算。假设Y补=YOYlY2.Yn当Yo为1时,那么有Y=-I+YiX2i故有XXY=XXYiX2-l-X当Y为负值时,用补码乘计算XXY补,是用X补乘上Y补的数值位,而不理Y补符号位上的L乘完之后,在所得的乘积中再减X,即加一X补。实现补码乘法的另一个方案是比拟法,是由BoOTH最早提出的,这一方法的出发点是防止区分乘数符号的正负,而且让乘数符号位也参加运算。技巧上表现在分解乘数的每一位上的1为高一位的一个+1和本位上的一个1:X×Y=X×(-1+Yi×2i)(逐项展开那么得)=X×-YO+Y1×2-1+Y2×2-2+.+Yn×2-n=X×-Y0+(Yl-Yl×2-l)+(Y2×2-l-Y2×2-2)+.÷(YnX2(n-I)-YnX2n)(合并相同幕次项得)=X×(Yl-YO)÷(Y2-Y1)×2-l+.+(Yn-Yn-I)×2-(n-1)+(0-Yn)×2-n=X×(Yi÷l-Yi)X2i(写成累加求和的形式,得到实现补码乘运算的算法)将上述公式展开,那么每一次的局部积为:Pl=2-1(Yn÷I-Yn)XX补P2=2-l(Pl+(Yn-Yn-I)XX)补Pi=2-l(Pn-i+(Yn-I+2-Yn-I÷l)XX)补Pn=2-l(Pn-l+(Y2-Yl)×X)Pn+1=(Pn+(Y1-YO)XX)补那么最终补码乘积为X*Y补=Pn+l补由上述公式可以看出,比拟法是用乘数中每相邻的两位判断如何求得每次的相加数。每两位Yi和Yi+1的取值有00,01,10,11四种组合,那么它们的差值分别为0,1,-1和0,非最后一次的局部积,分别为上一次局部积的1/2(右移一位)的值Rj,Rj+X补,Rj-X补(即Rj+-X补)和Rj,但一定要注意:最后一次求出的局部积即为最终乘积,不执行右移操作。用此法计算乘积,需要乘数存放器的最低一位之后再补充一位Yn÷l,并使其初值为0,再增加对Yn和Yn÷l两位进行译码的线路,以区分出Yn+1-Yn4种不同的差值。对N位的数(不含符号位)相乘,要计算N+1次局部积,并且不对最后一次局部积执行右移操作。此时的加法器最好采用双符号位方案。(2)BoOth乘法规那么假设X、Y都是用补码形式表示的机器数,X补和Y补=Ys.YlY2.Yn,都是任意符号表示的数。比拟法求新的局部积,取决于两个比拟位的数位,即Yi÷lYi的状态。布斯乘法规那么归纳如下:首先设置附加位Yn+l=0,局部积初值Z0补二0。当nWO时,判断YnYn+1,假设YnYn+1=00或11,即相邻位相同时,上次局部积右移一位,直接得局部积。假设YnYn+1=01,上次局部积加X补,然后右移一位得新局部积。假设YnYn+1=10,上次局部积加-X补,然后右移一位得新局部积。当n=0时,判YnYn+1(对应于YoY1),运算规那么同只是不移位。即在运算的最后一步,乘积不再右移。设计思路设计一个二输入三选一选择器对可能的三种情况进行选择。中选择器中输入为SOSl为00或者11时,由一存放器一端接GND,另一端对其进行零输入;中选择器中输入为SoSl为01时,对其进行X补输入;中选择器中输入为SOSl为10时,对X补输入端加一非门和一加法器对其进行取反加1输入。输出结果与一个一端接GND初始置零的存放器相连接于一个加法器,实现局部积加法运算计算结果存放于两个相同的移位存放器中,当局部积相加之后,由两个移位存放器同时对局部积的和进行移位操作。最后由两个移位存放器的输出端连接至选择器重新选择进行循环操作,直到局部积移位结束。这里用布斯算法在硬件电路上比拟容易实现。布斯算法的流程图如下:图LI定点补码一位乘法器的流程图补码一位乘法的硬件实现逻辑图如下:1.2定点原码一位乘法器的原理框图1.3设计环境硬件环境:伟福COP2000型计算机组成原理实验仪、XCV200实验板、微机;EDA环境:XmnX设计软件。第2章详细设计方案2.1 顶层方案图的设计与实现顶层方案图实现一位补码乘法器的逻辑功能,采用原理图设计输入方式完成,电路实现基于XCV200可编程逻辑芯片。在完成原理图的功能设计后,把输入/输出信号安排到XCV200指定的引脚上去,实现芯片的引脚锁定。2.1.1 创立顶层图形设计文件顶层图形文件主要由一个两个16进制数和和一个封装模块组装而成的一个完整的设计实体。可利用XilinX模块实现顶层图形文件的设计,顶层图形文件结构如图2.1所示。图2一位补码乘法器顶层图形文件结构2.1.2 器件的选择与引脚锁定(1)件的选择由于硬件设计环境是基于伟福COP2000型计算机组成原理实验仪和XCV200实验板,故采用的目标芯片为XlinxXCV200可编程逻辑芯片。(2)引脚锁定把顶层图形文件中的输入/输出信号安排到XlinxXCV200芯片指定的引脚上去,实现芯片的引脚锁定,各信号及XlinxXCV200芯片引脚对应关系如表2.1所示。表2.1信号和芯片引脚对应关系图形文件中的输入输出信号XCV200芯片引脚XOP103XlP102X2PlOlX3PlOOX4P97X5P96X6P95X7P94YOP87YlP86Y2P85Y3P84Y4P82Y5P81Y6P80Y7P79CLRP73CLKP213013P93012P99OllP107OlOP10809P10908Pl2407P12506P14705P15204P17803Pl8402P185OlP203OOP111OOOPllO2.2 功能模块的设计与实现2.2.1 求补电路模块的设计与实现这个模块由八位加法器,非门组成,GND8输入的是8个低电平信号,这个模块实现的是对-X求补功能。(1)创立求补电路模块设计原理图。求补电路原理结构如下图:图求补电路模块逻辑框图(2)创立元件图形符号为能在图形编辑器(原理图设计输入方式)中调用NEG芯片,需要为NEG模块创立一个元件图形符号,可利用Xilinxfoundationf3.1编译器中的如下步骤实现:ToolS=>SymbolWizard=)下一步。A7:0是输入信号,B7:0是输出信号。其元件图形符号如下图:图求补电路模块元件图形符号功能仿真对创立的存放器模块进行功能仿真,验证其功能的正确性,可用Xilinxfoundationf3.1编译器的SimUlator模块实现。仿真结果如下图:图2.4求补电路仿真结果2.2.2 控制电路模块的设计与实现控制电路模块是由8个选择器模块和一个求补电路模块组成,实现选择控制功能。当C为高电平时输出-X的补码,当C端为低电平时,输出X的补码。(1)控制电路设计原理图。控制电路原理结构如下图:图2.5控制电路逻辑框图(2)创立元件图形符号为能在图形编辑器原理图设计输入方式)中调用21DC8芯片,需要为2JDC8模块创立一个元件图形符号,可利用Xilinxfoundationf3.1编译器中的如下步骤实现:Tools=>SymbolWiZard=>下一步。A7:0LC是输入信号,OUT7:0是输出信号。其元件图形符号如下图:图2.6控制电路图形符号功能仿真对创立的存放器模块进行功能仿真,验证其功能的正确性,可用Xilinxfoundationf3.1编译器的SimUIator模块实现。仿真结果如下图:图2.7控制电路仿真结果2.2.3 选择器模块的设计与实现选择器主要由三个门电路组成,当CC输入为高电平时,0输出的值为A的值,否那么输出B的值(1)创立选择器设计原理图。选择器原理结构如图2.8所示:图2.8选择器原理框图(2)创立元件图形符号为能在图形编辑器原理图设计输入方式)中调用DCl芯片,需要为DCl模块创立一个元件图形符号,可利用Xilinxfoundationf3.1编译器中的如下步骤实现:TooIS=>SymbolWiZard=>下一步。A、B、CC是输入信号,0是输出信号。其元件图形符号如下图:图选择器元件图形符号功能仿真对创立的存放器模块进行功能仿真,验证其功能的正确性,可用Xilinxfoundationf3.1编译器的SimUlator模块实现。仿真结果如下图:图2.10选择器仿真结果第3章编程下载与硬件测试编程下载利用COP2000仿真软件的编程下载功能,将得到.bit文件下载到XCV200实验板的XCV200可编程逻辑芯片中。3.2硬件测试及结果分析利用XCV200实验板进行硬件功能测试。一位补码乘法器的输入数据通过XCV200实验板的输入开关实现,输出数据通过XCV200实验板的LED指示灯实现,其对应关系如表3.1所示。表3.1XCV200实验板信号对应关系XCV200芯片引脚信号XCV200实验板P94K0:7P95K0:6P96K0:5P97K0:4PlOOK0:3PlOlK0:2Pl02KO:IP103K0:0P79K1:7P80K1:6P81K1:5P82K1:4P84K1:3P85K1:2P86K1:1P87K1:0P73K2:0P213P213P147A7P152A6P178A5Pl84A4P185A3P203A2PlllAlPllOAOP93B6P99B5P107B4P108B3P109B2P124BlP125BO利用表中的输入参数作为输入数据,逐个测试输出结果,即用XCV200实验板的开关K0、Kl及K2控制数据输入,同时观察数码显示管和发光二极管显示结果,得到如图3.1所示的硬件测试结果。结构图I存储器Ir n r r nu u u u u u32SlSJS5S4S3r ri n r n n u u u u u uA7 A6 A5 A4 A3 A2 Al AO170,169,168,149,153,154,155,156 )92,193,194,195,199, 200,201,202 175,174,173,159,160,161,162,163 187,205, 206,207,208,167,186,176215,216, 217,218,220, 221,222,223224,228.229,230,231,232.234,23557236, 237, 238,003,004, 005,006,0071031,042.046,052,057,067,068,07488020,021,023,024,025, 026,027,028189009, OlOt 011,012,013,017,018,019)9078,093, 099,107,108, 109,124,125 147,152» 178,184,185, 203,111,110 033,034,035,036,038, 039,040,04) 056,055,054,053,050, 049,048,047063,064,065,066,070,0?1,072,073 079,080,081,082,084, 085,086,087094,095,096,097,100. IOlt 102,103XCV200DataL. DataH AddrL. AddrHOOH OOH OOM OOH111J14J16,118,127,130,132,134,139,141110,113,115, 117,120,12S, 131,133,138, 140CSWRRDBMBLRAM'单个脉冲连续脉冲CLOCKIHTP213P146ZgS 寸 EelLo工工WXXX工0QQ8QQQQoK4: OOM(O)ZgInpb>NlO<*> C <*> C <*> m <y-> c>> XxXXX工工工 QQQQQQQQoK3. OOM(O)Z(DSBecb Neioieidieieiei XM工工工XW QQQQQQQQoK2: OOM(O)QOBQQBQHoKl. O5H(5)ZgS b 6C4bO OOOOOOOO XXXXW工工 QQQQHgQSoKD: ODM(13) IFFG域程I遇信设置I打开模式I保用同式I硬件测试结果图参考文献1曹昕燕.EDA技术实验与课程设计M.北京:清华大学出版社,20062范延滨.微型计算机系统原理、接口与EDA设计技术M.北京:北京邮电大学出版社,20063王爱英.计算机组成与结构(第4版)M.北京:清华大学出版社,20064侯伯亨,顾新.VHDL硬件描述语言与数字逻辑电路设计M.西安:西安电子科技大学出版社,1998.5-9.5廖裕评,陆瑞强.CPLD数字电路设计-使用MAX+PLUSIIM.北京:清华大学出版社,2001.217-221.6附录电路原理图QC公 LOC-C-SLOC+XIOC*心 oc10C"1 L0C<fi匕修A'a3 X locLOCLOCLOCLMIOC课程设计总结:1 .在刚开始做这个课程设计时,由于对知识理解得不够深刻,导致设计上的失误,后来经过老师的指导才逐步形成了初步设计方案。在进行整体仿真时,发现乘数没有打入存放器,又经过分步仿真调试后,发现是由于没有清零的缘故导致了以上故障。调整脉冲后,以上故障解决。2 .设计采用了自上而下的设计方法,根本实现了定点补码一位乘法的功能,能够正确求得积等结果。3 .通过这次课程设计,我充分锻炼了自己的动手能力以及分析解决问题的能力,弥补了自己在学习上的一些漏洞,改正了学习时对知识理解上的一些错误;在查阅资料的过程中,拓宽了自己的知识面;也明白了实践出真知,以后学习是不能只注重课本上的理论,要注重在实际中运用它,这样才能真正提高自己的能力。指导教师评语:指导教师(签字):年月日课程设计成绩