当前位置:文档之家› 定点补码一位乘法器的设计与实现

定点补码一位乘法器的设计与实现

课程设计报告课程设计名称:计算机组成原理课程设计课程设计题目:定点补码一位乘法器的设计与实现院(系):计算机学院专业:计算机科学与技术班级:学号:姓名:指导教师:完成日期:2012年1月13日目录第1章总体设计方案 (1)1.1设计原理 (1)1.2设计思路 (1)1.3设计环境 (2)第2章详细设计方案 (3)2.1顶层方案图的设计与实现 (3)2.1.1创建顶层图形设计文件 (3)2.1.2器件的选择与引脚锁定 (4)2.1.3编译、综合、适配 (5)2.2功能模块的设计与实现 (5)2.2.1 取补模块的设计与实现 (5)2.2.2选择器模块的设计与实现 (7)2.2.3 乘数补码移位寄存器模块的设计与实现 (11)2.2.4 部分积移位寄存器模块的设计与实现 (13)2.3仿真调试 (14)第3章编程下载与硬件测试 (16)参考文献 (17)附录(电路原理图) (18)第1章总体设计方案1.1 设计原理在计算两个补码相乘时,可以通过Booth算法来实现定点补码一位乘的功能。

布斯(Booth)算法采用相加和相减的操作计算补码数据的乘积,Booth算法对乘数从低位开始判断,根据后两个数据位的情况决定进行加法、减法还是仅仅进行移位操作。

讨论当相乘的两个数中有一个或二个为负数的情况,在讨论补码乘法运算时,对被乘数或部分积的处理上与原码乘法有某些类似,差别仅表现在被乘数和部分积的符号位要和数值一起参加运算。

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 设计思路首先要采用原码值输入,乘数和被乘数皆为8位。

而且根据补码一位乘法运算规则:(1) 如果yn = yn+1,部分积[ zi ] 加0,再右移一位;(2) 如果yn yn+1 = 01,部分积加[ x ]补,再右移一位;(3) 如果yn yn+1 = 10,部分积加[ - x]补,再右移一位;这样重复进行n+1 步,但最后一步不移位。

包括一位符号位,所得乘积为2n+1 位,其中n 为尾数位数。

设计一个二输入三选一选择器对可能的三种情况进行选择。

当选择器中输入为Yi Yi+1为00或者11时,由一寄存器一端接GND,另一端对其进行零输入;当选择器中输入为Yi Yi+1为01时,对其进行[X]补输入;当选择器中输入为Yi Yi+1为10时,对[X]补输入端加一非门和一加法器对其进行取反加1输入。

输出结果与一个一端接GND初始置零的寄存器相连接于一个加法器,实现部分积加法运算;计算结果存放于两个相同的移位寄存器中,当部分积相加之后,由两个移位寄存器同时对部分积的和进行移位操作。

最后由两个移位寄存器的输出端连接至选择器重新选择进行循环操作,直到部分积移位结束。

定点补码一位乘法器的设计总框图如图1.1所示。

图1.1 定点补码一位乘法器的设计总框图1.3 设计环境·硬件环境:伟福COP2000型计算机组成原理实验仪、XCV200实验板、微机;·EDA环境:Xilinx foundation f3.1设计软件、COP2000仿真软件。

第2章详细设计方案2.1 顶层方案图的设计与实现顶层方案图是用来实现补码一位乘法器乘数与被乘数的输入和取补,以及结果的寄存和输出、二输入三输出选择器和运算控制电路、移位电路等逻辑功能,采用原理图设计输入方式完成,电路实现基于XCV200可编程逻辑芯片。

在完成原理图的功能设计后,把输入以及输出信号安排到XCV200指定的引脚上去,实现芯片的引脚锁定。

2.1.1创建顶层图形设计文件顶层图形文件的设计实体主要由取补电路(封装为QUBU),二输入三输出选择器(基于D2-4E的改装),乘数移位寄存器(封装为U11),部分积移位寄存器(基于FD实现),加法器(基于ADD8的改装),等模块组装而成的一个完整的可编程逻辑芯片U30。

顶层图形文件结构如图2.1所示:图2.1 顶层图形文件结构图2.1.2器件的选择与引脚锁定(1)器件的选择由于硬件设计环境是基于伟福COP2000型计算机组成原理实验仪和XCV200实验板,故采用的目标芯片为Xilinx XCV200可编程逻辑芯片。

(2)引脚锁定把顶层图形文件中的所有输入、输出信号对应到Xilinx XCV200芯片指定的引脚上去,实现芯片的引脚锁定,各信号及Xilinx XCV200芯片引脚对应关系如表2.1所示:表2.1 信号和芯片引脚对应关系图形文件中的输入/输出信号XCV200芯片引脚信号GRD P50ZCLOCK P213FJW P47CLR P49VCC P48S1 P80S2 P81S3 P82S4 P84S5 P85S6 P86S7 P87Y1 P95Y2 P96Y3 P97Y4 P100Y5 P101Y6 P102 Y7 P103 E0 P63 E1 P73 E2 P72 E3 P71 E4 P70 E5 P66 E6 P65 E7P642.1.3编译、综合、适配利用Xilinx foundation f3.1的原理图编辑器对顶层图形文件进行编译,并最终生成网络表文件,利用设计实现工具经综合、优化、适配,生成可供时序仿真的文件和器件下载编程文件。

2.2 功能模块的设计与实现功能模块主要由取补电路,二输入三输出选择器,移位寄存器,部分积移位寄存器等模块组成,由Xilinx XCV200可编程逻辑芯片分别实现。

2.2.1 取补模块的设计与实现进行求补的方法就是从数的最右端0a 开始,由右向左,直到找出第一个“1”,例如1=i a ,n i ≤≤0。

则i a 以左的每一个输入位都求反,即1变0,0变1。

最右端的起始链式输入1-C 必须永远置成“0”。

当控制信号线E 为“1”时,启动对2求补的操作;当控制信号线E 为“0”时,输出将和输入相等。

可以利用符号位来作为控制信号E 。

(1) 创建求乘数补码电路模块设计原理图乘数求补电路原理结构如图2.1所示:图2.1 乘数求补电路原理结构图(2)创建元件图形符号其元件图形符号如图2.2所示:图2.2 求补电路模块元件图形符号(3)功能仿真对创建的取补模块进行功能仿真,验证其功能的正确性,可用Xilinx foundation f3.1编译器的Simulator模块实现。

仿真结果如图2.3所示:图2.3 取补电路模块仿真结果2.2.2选择器模块的设计与实现选择器主要由一个D2-4E 芯片和逻辑门电路控制选择输出。

输入端输入的值分别为补][X -,补][X 以及“00000000”(八个输入端为一组)。

D2-4E 芯片的0A 和1A 端的“0”和“1”控制0D ,1D ,2D ,3D 当10A A 为01时,输出为2D 高电平,即为2D 输出值为1,通过逻辑门电路实现输出为补][X -的值;当10A A 为10时,输出为1D 为 高电平,即为1D 输出值为1,通过逻辑门电路实现输出为补][X 的值;当10A A 为00时,输出为0D 为 高电平,即为0D 输出值为1,同时当10A A 为11时,输出为3D 为 高电平,即为3D 输出值为1,由于此时0D 和3D 输出值为相同,故此两条数据线通过一个或门输出一条数据线,此时输出值为“00000000”。

正好实现三输入一输出的选择器模块。

(1)创建选择器设计原理图三输入一输出选择器原理结构如图2.4所示:图2.4 选择器原理框图(2)创建元件图形符号其元件图形符号如图2.5所示图2.5 选择器元件图形符号(3)功能仿真对创建的三输入一输出器模块进行功能仿真,验证其功能的正确性,可用Xilinx foundation f3.1编译器的Simulator模块实现。

仿真结果如图2.6所示:(a)(b))(c图2.6 选择模块仿真结果图2.2.3 乘数补码移位寄存器模块的设计与实现乘数补码移位寄存器模块由八个二选一选择器(MUXCY ),9个寄存器(FD )组成,CP 端输入的是1个低电平信号其余都为高电平信号。

MUXCY 选择器由控制信号S 端,输入端i D 和i C ,以及输出端O 组成,当S 端为低电平信号时,选择输出i D 值,当S 端为高电平信号时,选择输出i C 值。

每次的输出信号寄存到FD 中,MUXCY 输出端O 连接下一位的寄存器,这样就实现了移位寄存的功能。

移位的07Y 和08两个输出端恰好为n y 和1+n y 的两个值,n y 和1+n y 的两个值要分别接到选择器的0A 和1A 端。

(1)创建乘数补码移位寄存器模块设计原理图。

乘数补码移位寄存器原理结构如图2.7所示:图2.7 乘数补码移位寄存器原理结构图(2)创建元件图形符号其元件图形符号如图2.8所示:图2.8 乘数补码移位寄存器电路模块元件图形符号(3)功能仿真对创建的乘数补码移位寄存器模块进行功能仿真,验证其功能的正确性,可用Xilinx foundation f3.1编译器的Simulator模块实现。

仿真结果如图2.9所示:图2.9 乘数补码移位寄存器模块仿真结果2.2.4 部分积移位寄存器模块的设计与实现部分积移位寄存器模块是由一个8位寄存器(FD8CE)和四个逻辑门电路组成,实现部分积移位寄存功能。

由于部分积的初始值为“00000000”,这样就要求FD8CE 寄存器的初始值为“00000000”,只需要给清零端CLR一个高电平的信号即可实现。

进行部分积移位时,要求移位过程中保证符号位相同,这样就需要把第一位符号位复制为两个数,而其余的6位相继向下串一位,这样就实现了移位功能,同时还保证的符号位相同。

(1)部分积移位寄存器设计原理图。

部分积移位寄存器原理结构如图2.10所示:图2.10 部分积移位寄存器原理图(2)功能仿真对创建的寄存器模块进行功能仿真,验证其功能的正确性,可用Xilinx foundation f3.1编译器的Simulator模块实现。

仿真结果如图2.11所示:图2.11 部分积移位寄存器仿真结果2.3 仿真调试仿真调试主要验证设计电路逻辑功能、时序的正确性,本设计中主要采用功能仿真方法对设计的电路进行仿真。

相关主题