定点补码一位乘法器的设计与实现Word格式文档下载.docx

上传人:b****2 文档编号:14486387 上传时间:2022-10-23 格式:DOCX 页数:18 大小:209.48KB
下载 相关 举报
定点补码一位乘法器的设计与实现Word格式文档下载.docx_第1页
第1页 / 共18页
定点补码一位乘法器的设计与实现Word格式文档下载.docx_第2页
第2页 / 共18页
定点补码一位乘法器的设计与实现Word格式文档下载.docx_第3页
第3页 / 共18页
定点补码一位乘法器的设计与实现Word格式文档下载.docx_第4页
第4页 / 共18页
定点补码一位乘法器的设计与实现Word格式文档下载.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

定点补码一位乘法器的设计与实现Word格式文档下载.docx

《定点补码一位乘法器的设计与实现Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《定点补码一位乘法器的设计与实现Word格式文档下载.docx(18页珍藏版)》请在冰豆网上搜索。

定点补码一位乘法器的设计与实现Word格式文档下载.docx

第2章 详细设计方案ﻩ3

2.1  顶层方案图的设计与实现3

2.1.2器件的选择与引脚锁定ﻩ4

2.1.3编译、综合、适配5

2.2功能模块的设计与实现ﻩ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)如果ynyn+1= 01,部分积加[x]补,再右移一位;

(3)如果ynyn+1 =10,部分积加[ - x]补,再右移一位;

这样重复进行n+1 步,但最后一步不移位。

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

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

当选择器中输入为Yi Yi+1为00或者11时,由一寄存器一端接GND,另一端对其进行零输入;

当选择器中输入为Yi Yi+1为01时,对其进行[X]补输入;

当选择器中输入为YiYi+1为10时,对[X]补输入端加一非门和一加法器对其进行取反加1输入。

输出结果与一个一端接GND初始置零的寄存器相连接于一个加法器,实现部分积加法运算;

计算结果存放于两个相同的移位寄存器中,当部分积相加之后,由两个移位寄存器同时对部分积的和进行移位操作。

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

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

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

1.3设计环境

·

硬件环境:

伟福COP2000型计算机组成原理实验仪、XCV200实验板、微机;

EDA环境:

Xilinxfoundationf3.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实验板,故采用的目标芯片为XilinxXCV200可编程逻辑芯片。

(2)引脚锁定

把顶层图形文件中的所有输入、输出信号对应到XilinxXCV200芯片指定的引脚上去,实现芯片的引脚锁定,各信号及XilinxXCV200芯片引脚对应关系如表2.1所示:

表2.1 信号和芯片引脚对应关系

图形文件中的输入/输出信号

XCV200芯片引脚信号

GRD

P50

ZCLOCK

P213

FJW

P47

CLR

P49

VCC

P48

S1

P80

S2

P81

S3

P82

S4

P84

S5

P85

S6

P86

S7

P87

Y1

P95

Y2

P96

Y3

P97

Y4

P100

Y5

P101

Y6

P102

Y7

P103

E0

P63

E1

P73

E2

P72

E3

P71

E4

P70

E5

P66

E6

P65

E7

P64

2.1.3编译、综合、适配

利用Xilinx foundationf3.1的原理图编辑器对顶层图形文件进行编译,并最终生成网络表文件,利用设计实现工具经综合、优化、适配,生成可供时序仿真的文件和器件下载编程文件。

2.2功能模块的设计与实现

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

2.2.1 取补模块的设计与实现

进行求补的方法就是从数的最右端开始,由右向左,直到找出第一个“1”,例如,。

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

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

当控制信号线为“1”时,启动对2求补的操作;

当控制信号线为“0”时,输出将和输入相等。

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

(1)创建求乘数补码电路模块设计原理图

乘数求补电路原理结构如图2.1所示:

图2.1乘数求补电路原理结构图

(2)创建元件图形符号

   其元件图形符号如图2.2所示:

图2.2求补电路模块元件图形符号

(3)功能仿真

对创建的取补模块进行功能仿真,验证其功能的正确性,可用Xilinxfoundationf3.1编译器的Simulator模块实现。

仿真结果如图2.3所示:

图2.3 取补电路模块仿真结果

2.2.2选择器模块的设计与实现

选择器主要由一个D2-4E芯片和逻辑门电路控制选择输出。

输入端输入的值分别为,以及“”(八个输入端为一组)。

D2-4E芯片的和端的“0”和“1”控制,,,当为01时,输出为高电平,即为输出值为1,通过逻辑门电路实现输出为的值;

当为10时,输出为为高电平,即为输出值为1,通过逻辑门电路实现输出为的值;

当为00时,输出为为高电平,即为输出值为1,同时当为11时,输出为为 高电平,即为输出值为1,由于此时和输出值为相同,故此两条数据线通过一个或门输出一条数据线,此时输出值为“”。

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

(1)创建选择器设计原理图

三输入一输出选择器原理结构如图2.4所示:

图2.4选择器原理框图

(2)创建元件图形符号

 其元件图形符号如图2.5所示

图2.5 选择器元件图形符号

对创建的三输入一输出器模块进行功能仿真,验证其功能的正确性,可用Xilinx foundationf3.1编译器的Simulator模块实现。

仿真结果如图2.6所示:

 

 

         

 图2.6 选择模块仿真结果图

2.2.3 乘数补码移位寄存器模块的设计与实现

乘数补码移位寄存器模块由八个二选一选择器(MUXCY),9个寄存器(FD)组成,端输入的是1个低电平信号其余都为高电平信号。

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

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

移位的和两个输出端恰好为和的两个值,和的两个值要分别接到选择器的和端。

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

乘数补码移位寄存器原理结构如图2.7所示:

图2.7 乘数补码移位寄存器原理结构图

(2)创建元件图形符号

其元件图形符号如图2.8所示:

      

        

图2.8 乘数补码移位寄存器电路模块元件图形符号

对创建的乘数补码移位寄存器模块进行功能仿真,验证其功能的正确性,可用Xilinxfoundationf3.1编译器的Simulator模块实现。

仿真结果如图2.9所示:

图2.9乘数补码移位寄存器模块仿真结果

2.2.4部分积移位寄存器模块的设计与实现

部分积移位寄存器模块是由一个8位寄存器(FD8CE)和四个逻辑门电路组成,实现部分积移位寄存功能。

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

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

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

部分积移位寄存器原理结构如图2.10所示:

图2.10部分积移位寄存器原理图

(2)功能仿真

对创建的寄存器模块进行功能仿真,验证其功能的正确性,可用Xilinx foundationf3.1编译器的Simulator模块实现。

仿真结果如图2.11所示:

图2.11 部分积移位寄存器仿真结果

2.3 仿真调试

仿真调试主要验证设计电路逻辑功能、时序的正确性,本设计中主要采用功能仿真方法对设计的电路进行仿真。

通过多组数据进行仿真测试,分别对两个正数相乘,一个正数与一个负数相乘,两个负数相乘结果进行检验。

(1)建立仿真波形文件及仿真信号选择

功能仿真时,首先建立仿真波形文件,选择仿真信号,对选定的输入信号设置参数,选定仿真信号和设置参数。

(2)功能仿真结果与分析

仿真结果分别如图2.12、所示。

      

图2.12功能仿真波形结果

由图2.12所示信息对比可知,多组仿真都完全正确,说明本设计能实现补码一位乘法计算功能。

第3章编程下载与硬件测试

利用COP2000仿真软件的编程下载功能,将得到.bit文件下载到XCV200实验板的XCV200可编程逻辑芯片中。

由于此次编译有点问题,最终没能成功下载到实验版的XCV200可编程逻辑芯片中。

参考文献 

[1]曹昕燕.EDA技术实验与课程设计[M].北京:

清华大学出版社,2006

[2]

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1