沈阳航空工业学院课程设计报告课程设计名称:计算机组成原理课程设计课程设计题目:定点原码两位乘法器的设计院(系):计算机学院专业:计算机科学与技术班级:4401102学号:200403011063姓名:翟峰指导教师:李平完成日期:2006年12月31日沈阳航空工业学院课程设计报告-I-目录沈阳航空工业学院...........................................................................................................I第1章总体设计方案..................................................................................................11.1设计原理..............................................................................................................11.2设计思路..............................................................................................................31.3设计环境..............................................................................................................4第2章功能模块的设计与实现..................................................................................52.1顶层电路的设计与实现......................................................................................52.1.1创建顶层图形设计文件..................................................................................52.1.2器件的选择与引脚锁定..................................................................................52.2基本功能模块的组成及工作原理......................................................................72.2.1被乘数模块的组成及工作原理......................................................................72.2.2乘数模块的组成及工作原理..........................................................................92.2.3选择模块的组成及工作原理........................................................................102.2.4移位模块的组成及工作原理.........................................................................112.3仿真调试............................................................................................................13第3章编程下载与硬件测试....................................................................................143.1编程下载............................................................................................................143.2硬件测试及结果分析........................................................................................14参考文献........................................................................................................................16附录(电路原理图)..............................................................................................17沈阳航空工业学院课程设计报告第1章总体设计方案-1-第1章总体设计方案1.1设计原理定点原码两位乘与定点原码一位乘一样,符号位的运算和数值部分是分开进行的,但为了提高运算速度,所以采用了原码两位乘,因为原码两位乘是用乘数的末两位的状态来决定新的部分积如何形成,可提高运算速度。乘数和被乘数都用原码表示。两位乘数有四种可能的组合,每种组合对应与以下操作:00——相当与0*X。部分积+0,右移两位;01——相当与1*X。部分积+X,右移两位;10——相当与2*X。部分积+2X,右移两位;11——相当与3*X。部分积+3X,右移两位。与一位乘法比较,多出了+2X和3X两种情况。把X左移1位即得到2X,在机器内通常采用左斜送一位来实现。可是+3X一般不能一次完成,如分成两次进行,又降低了计算速度。解决问题的办法是:以(4X-X)来代替3X运算,在本次运算中只执行-X,而+4X则归并到下一步执行,此时部分积以右移了两位,上一步欠下的+4X已变成+X,在实际线路中要用一个触发器C来记录是否欠下+4X,若是,则C变为1。因此实际操作用Yi-1,Yi,C三位来控制,运算规则如下所示:组合值Yi-1YiC操作C值变化0000部分积+0;右移两位C=01001部分积+x;右移两位C=01010部分积+x;右移两位C=02011部分积+2x;右移两位C=02100部分积+2x;右移两位C=03101部分积-x;右移两位C=13110部分积-x;右移两位C=14111部分积+0;右移两位C=1沈阳航空工业学院课程设计报告第1章总体设计方案-2-定点原码两位乘法器实现的功能应如下面例子所示,设计的电路应实现下面例子给定的功能。用原码两位乘方法求X*Y,已知X=0.101100,Y=0.111001。、[-x]补=11.0101002x=01.011000部分积乘数附加位说明00.0000001110010组合值为1,部分积+x,c=000.1011000+00.1011000011100右移2位0组合值为2,+2x,c=0+组合值为3,+[-x]补,c=1+1右移2位1c=1,+x11100100.00101101.01100000111001.100011右移2位00.011000110011011.01010011.10110011001100.101100+00.10011111.111011001100001100结果的符号位=x0异或y0,即x·y=0.100111001100沈阳航空工业学院课程设计报告第1章总体设计方案-3-实现定点原码两位乘法的逻辑电路框图如1.1所示.图1.1定点原码两位乘法器逻辑电路框图1.2设计思路我所设计的定点原码两位乘法器是用一个乘数模块,一个被乘数模块和部分积模块以及移位电路和选择器构成。部分积0X2X-X被乘数乘数选择器ALU加法器移位电路控制电路最低两位移出沈阳航空工业学院课程设计报告第1章总体设计方案-4-定点原码两位乘法器顶层的乘法器采用原理图设计输入方式,原码两位乘的整体设计包含一个乘数模块,一个被乘数模块和部分积模块以及移位电路和选择器作为底层设计,采用Verilog设计输入方式。采用硬件描述语言进行电路设计并实现给定的功能,设计的Verilog程序经编译、调试后形成*.bit文件并下载到XCV200可编程逻辑芯片中,经硬件测试验证设计的正确性。1.3设计环境·硬件环境:伟福COP2000型计算机组成原理实验仪、XCV200实验板、微机;·EDA环境:XilinxFoundationF3.1设计软件。沈阳航空工业学院课程设计报告第2章功能模块的设计与实现-5-第2章功能模块的设计与实现2.1顶层电路的设计与实现顶层方案图实现原码两位乘法器的逻辑功能,采用原理图设计输入方式完成,电路实现基于XCV200可编程逻辑芯片。在完成原理图的功能设计后,把输入/输出信号安排到XCV200指定的引脚上去,实现芯片的引脚锁定。2.1.1创建顶层图形设计文件顶层图形文件主要由一个乘数模块,一个被乘数模块和部分积模块以及选择器模块和移位电路模块封装而成的一个完整的设计实体,输入和输出组成。可利用XilinxFoundationF3.1设计软件软件实现顶层图形文件的设计两位乘法器的顶层图形如图2.1所示,INTA为乘数输入端,INTB为被乘数输入端,CLK为脉冲输入端,OUTC为两数积高位输出端,OUTD为两数积低位输出端。图2.1定点原码两位器顶层图形文件2.1.2器件的选择与引脚锁定(1)器件的选择由于硬件设计环境是基于伟福COP2000型计算机组成原理实验仪和XCV200实验板,故采用的目标芯片为XlinxXCV200可编程逻辑芯片。(2)引脚锁定沈阳航空工业学院课程设计报告第2章功能模块的设计与实现-6-把顶层图形文件中的输入/输出信号安排到XlinxXCV200芯片指定的引脚上去,实现芯片的引脚锁定,各信号及XlinxXCV200芯片引脚对应关系。图形文件中的输入/输出信号XCV200芯片引脚INTA94,95,96,97,100,101,102,103INTB79,80,81,82,84,85,86,87CLK213OUTC224,228,229,230,231,232,234,235OUTD215,216,217,218,220,221,222,223沈阳航空工业学院课程设计报告第2章功能模块的设计与实现-7-2.2基本功能模块的组成及工作原理定点原码两位乘法器是由一个乘数模块,一个被乘数模块和部分积模块以及选择器模块和移位电路模块为基础而实现的,设计时被乘数模块,部分积模块以及选择器模块用图形设计输入方式实现,移位电路模块采用Verilog语言设计方式实现。2.2.1被乘数模块的组成及工作原理(1)被乘数模块的组成被乘数模块由4个寄存器,1个移位寄存器,1个加法器等组成。(2)被乘数模块的工作原理被乘数模块主要的功能是实现把X转换成0,X,2X以及-X然后再由选择器模块选择出那一个送到加法器里。对2X的实现才用移位寄存器来实现,用其左移的功能将X左移一位得到2X,-X用加法器和寄存器得到,采用取反加一的办法实现。沈阳航空工业学院课程设计报告第2章功能模块的设计与实现-8-(3)被乘模块内部结构沈阳航空工业学院课程设计报告第2章功能模块的设计与实现-9-2.2.2乘数模块的组成及工作原理(1)乘数模块的组成乘数模块由寄存器和移位电路组成。(2)乘数模块的工作原理乘数模块主要功能是右移两位将乘数最低两位移出,所移出的两位去控制被乘数模块去选择向加法器所送的数,移位由一个移位电路实现右移两位,在移位的同时乘数本身右移两