个人资料整理仅限学习使用课程设计报告课程设计名称:计算机组成原理课程设计课程设计题目:定点补码一位乘法器的设计院<系):计算机学院专业:计算机科学与技术班级:学号:姓名:指导教师:完成日期:2018年1月15日目录第1章总体设计方案11.1设计原理11.2设计思路21.3设计环境4第2章详细设计方案52.1顶层方案图的设计与实现52.1.1创建顶层图形设计文件52.1.2器件的选择与引脚锁定62.2功能模块的设计与实现72.2.1求补电路模块的设计与实现72.2.2 控制电路模块的设计与实现82.2.3选择器模块的设计与实现10第3章编程下载与硬件测试123.1编程下载123.2硬件测试及结果分析12参考文献14附录<电路原理图)15第1章总体设计方案1.1设计原理<1)用[X]补×[Y]补直接求[X×Y]补讨论当相乘的两个数中有一个或二个为负数的情况,在讨论补码乘法运算时,对被乘数或部分积的处理上与原码乘法有某些类似,差别仅表现在被乘数和部分积的符号位要和数值一起参加运算。
若[Y]补=Y0Y1Y2…Yn 当Y0为1时,则有Y=-1+Yi×2-i故有X×Y=X×Yi×2-1-X当Y为负值时,用补码乘计算[X×Y]补,是用[X]补乘上[Y]补的数值位,而不理[Y]补符号位上的1,乘完之后,在所得的乘积中再减X,即加-[X]补。
实现补码乘法的另一个方案是比较法,是由BOOTH最早提出的,这一方法的出发点是避免区分乘数符号的正负,而且让乘数符号位也参加运算。
技巧上表现在分解乘数的每一位上的1为高一位的一个+1和本位上的一个-1:X×Y=X×<-1+Yi×2i)<逐项展开则得)=X×[-Y0+Y1×2-1+Y2×2-2+…+Yn×2-n]=X×[-Y0+(Y1-Y1×2-1>+(Y2×2-1-Y2×2-2>+…+(Yn×2-(n-1>-Yn×2-n>]<合并相同幂次项得)=X×[(Y1-Y0>+(Y2-Y1> ×2-1+…+(Yn-Yn-1> ×2-(n-1>+(0-Yn> ×2-n]=X×<Yi+1-Yi)×2-i<写成累加求和的形式,得到实现补码乘运算的算法)将上述公式展开,则每一次的部分积为:P1=[2-1(Yn+1-Yn> ×X]补P2=[2-1(P1+(Yn-Yn-1> ×X>]补…Pi=[2-1(Pn-i+(Yn-I+2-Yn-I+1> ×X>]补…Pn=[2-1(Pn-1+(Y2-Y1> ×X>]补Pn+1=[ (Pn+(Y1-Y0> ×X>]补则最终补码乘积为[X*Y]补=[Pn+1]补由上述公式可以看出,比较法是用乘数中每相邻的两位判断如何求得每次的相加数。
每两位Yi和Yi+1的取值有00,01,10,11四种组合,则它们的差值分别为0,1,-1和0,非最后一次的部分积,分别为上一次部分积的1/2<右移一位)的值Rj,Rj+[X]补,Rj-[X]补<即Rj+[-X]补)和Rj,但一定要注意:最后一次求出的部分积即为最终乘积,不执行右移操作。
用此法计算乘积,需要乘数寄存器的最低一位之后再补充一位Yn+1,并使其初值为0,再增加对Yn和Yn+1两位进行译码的线路,以区分出Yn+1-Yn 4种不同的差值。
对N位的数<不含符号位)相乘,要计算N+1次部分积,并且不对最后一次部分积执行右移操作。
此时的加法器最好采用双符号位方案。
<2)Booth乘法规则假设X、Y都是用补码形式表示的机器数,[X]补和[Y]补=Ys.Y1Y2…Yn,都是任意符号表示的数。
比较法求新的部分积,取决于两个比较位的数位,即Yi+1Yi的状态。
布斯乘法规则归纳如下:首先设置附加位Yn+1=0,部分积初值[Z0]补=0。
当n≠0时,判断YnYn+1,若YnYn+1=00或11,即相邻位相同时,上次部分积右移一位,直接得部分积。
若YnYn+1=01,上次部分积加[X]补,然后右移一位得新部分积。
若YnYn+1=10,上次部分积加[-X]补,然后右移一位得新部分积。
当n=0时,判YnYn+1(对应于Y0Y1>,运算规则同(1>只是不移位。
即在运算的最后一步,乘积不再右移。
1.2设计思路设计一个二输入三选一选择器对可能的三种情况进行选择。
当选择器中输入为S0 S1为00或者11时,由一寄存器一端接GND,另一端对其进行零输入;当选择器中输入为S0 S1为01时,对其进行[X]补输入;当选择器中输入为S0 S1为10时,对[X]补输入端加一非门和一加法器对其进行取反加1输入。
输出结果与一个一端接GND初始置零的寄存器相连接于一个加法器,实现部分积加法运算计算结果存放于两个相同的移位寄存器中,当部分积相加之后,由两个移位寄存器同时对部分积的和进行移位操作。
最后由两个移位寄存器的输出端连接至选择器重新选择进行循环操作,直到部分积移位结束。
这里用布斯算法在硬件电路上比较容易实现。
布斯算法的流程图如下:图1.1 定点补码一位乘法器的流程图补码一位乘法的硬件实现逻辑图如下:1.2 定点原码一位乘法器的原理框图1.3 设计环境·硬件环境:伟福COP2000型计算机组成原理实验仪、XCV200实验板、微机;·EDA环境:Xilinx设计软件。
第2章详细设计方案2.1 顶层方案图的设计与实现顶层方案图实现一位补码乘法器的逻辑功能,采用原理图设计输入方式完成,电路实现基于XCV200可编程逻辑芯片。
在完成原理图的功能设计后,把输入/输出信号安排到XCV200指定的引脚上去,实现芯片的引脚锁定。
2.1.1创建顶层图形设计文件顶层图形文件主要由一个两个16进制数和和一个封装模块组装而成的一个完整的设计实体。
可利用Xilinx模块实现顶层图形文件的设计,顶层图形文件结构如图2.1所示。
图2.1 一位补码乘法器顶层图形文件结构2.1.2器件的选择与引脚锁定<1)器件的选择由于硬件设计环境是基于伟福COP2000型计算机组成原理实验仪和XCV200实验板,故采用的目标芯片为Xlinx XCV200可编程逻辑芯片。
<2)引脚锁定把顶层图形文件中的输入/输出信号安排到Xlinx XCV200芯片指定的引脚上去,实现芯片的引脚锁定,各信号及Xlinx XCV200芯片引脚对应关系如表 2.1所示。
表2.1 信号和芯片引脚对应关系2.2功能模块的设计与实现2.2.1求补电路模块的设计与实现这个模块由八位加法器,非门组成,GND8输入的是8个低电平信号,这个模块实现的是对-X求补功能。
(1)创建求补电路模块设计原理图。
求补电路原理结构如图2.2所示:图2.2求补电路模块逻辑框图<2)创建元件图形符号为能在图形编辑器<原理图设计输入方式)中调用NEG芯片,需要为NEG模块创建一个元件图形符号,可利用Xilinx foundation f3.1编译器中的如下步骤实现:Tools=>Symbol Wizard=>下一步。
A[7:0]是输入信号,B[7:0]是输出信号。
其元件图形符号如图2.3所示:图2.3求补电路模块元件图形符号<3)功能仿真对创建的寄存器模块进行功能仿真,验证其功能的正确性,可用Xilinx foundation f3.1编译器的Simulator模块实现。
仿真结果如图2.4所示:图2.4 求补电路仿真结果2.2.2控制电路模块的设计与实现控制电路模块是由8个选择器模块和一个求补电路模块组成,实现选择控制功能。
当C为高电平时输出-X的补码,当C端为低电平时,输出X的补码。
(1)控制电路设计原理图。
控制电路原理结构如图2.5所示:图2.5 控制电路逻辑框图<2)创建元件图形符号为能在图形编辑器<原理图设计输入方式)中调用2_1DC8芯片,需要为2_1DC8模块创建一个元件图形符号,可利用Xilinx foundation f3.1编译器中的如下步骤实现:Tools=>Symbol Wizard=>下一步。
A[7:0]、C是输入信号,OUT[7:0]是输出信号。
其元件图形符号如图2.6所示:图2.6 控制电路图形符号<3)功能仿真对创建的寄存器模块进行功能仿真,验证其功能的正确性,可用Xilinx foundation f3.1编译器的Simulator模块实现。
仿真结果如图2.7所示:图2.7 控制电路仿真结果2.2.3选择器模块的设计与实现选择器主要由三个门电路组成,当CC输入为高电平时,O输出的值为A的值,否则输出B的值(1)创建选择器设计原理图。
选择器原理结构如图2.8所示:图2.8选择器原理框图<2)创建元件图形符号为能在图形编辑器<原理图设计输入方式)中调用DC1芯片,需要为DC1模块创建一个元件图形符号,可利用Xilinx foundation f3.1编译器中的如下步骤实现:Tools=>Symbol Wizard=>下一步。
A、B、CC是输入信号,O是输出信号。
其元件图形符号如图2.9所示:图2.9选择器元件图形符号<3)功能仿真对创建的寄存器模块进行功能仿真,验证其功能的正确性,可用Xilinx foundation f3.1编译器的Simulator模块实现。
仿真结果如图2.10所示:图2.10 选择器仿真结果第3章编程下载与硬件测试3.1编程下载利用COP2000仿真软件的编程下载功能,将得到.bit文件下载到XCV200实验板的XCV200可编程逻辑芯片中。
3.2 硬件测试及结果分析利用XCV200实验板进行硬件功能测试。
一位补码乘法器的输入数据通过XCV200实验板的输入开关实现,输出数据通过XCV200实验板的LED指示灯实现,其对应关系如表3.1所示。
表3.1XCV200实验板信号对应关系利用表3.1中的输入参数作为输入数据,逐个测试输出结果,即用XCV200实验板的开关K0、K1及K2控制数据输入,同时观察数码显示管和发光二极管显示结果,得到如图3.1所示的硬件测试结果。
图3.1 硬件测试结果图参考文献[1] 曹昕燕.EDA技术实验与课程设计[M].北京:清华大学出版社,2006[2] 范延滨.微型计算机系统原理、接口与EDA设计技术[M].北京:北京邮电大学出版社,2006[3] 王爱英.计算机组成与结构(第4版>[M].北京:清华大学出版社,2006[4]侯伯亨,顾新.VHDL硬件描述语言与数字逻辑电路设计[M].西安:西安电子科技大学出版社,1998.5-9.[5]廖裕评,陆瑞强.CPLD数字电路设计--使用MAX+PLUSⅡ[M].北京:清华大学出版社,2001.217-221.[6]John F Wakerly.DIGIAL DESIGN Principles & Practices (Third Edition>[M].北京:高等教育出版社,2001.446-54附录<电路原理图)。