超前进位加法器的设计2.docx
《超前进位加法器的设计2.docx》由会员分享,可在线阅读,更多相关《超前进位加法器的设计2.docx(13页珍藏版)》请在冰豆网上搜索。
超前进位加法器的设计2
目录
第1章总体设计方案1
1.1设计原理1
1.2设计思路2
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四位超前进位加法器模块的设计与实现5
2.3仿真调试7
第3章编程下载与硬件测试9
3.1编程下载9
3.2硬件测试及结果分析9
参考文献11
附录(程序清单或电路原理图)12
第1章总体设计方案
1.1设计原理
带进位、溢出提示功能的六位补码超前进位加法器,加上两双符号位是八位。
可以由2个四位超前进位加法器构成。
由第一个四位超前进位加法器的进位输出作为第二个超前进位加法器的进位输入即可实现带进位、溢出提示功能的六位补码超前进位加法器的设计。
超前进位产生电路是根据各位进位的形成条件来实现的。
只要满足下述条件,就可形成进位C1、C2、C3、C4。
所以:
第一位的进位C1=X1*Y1+(X1+Y1)*C0
第二位的进位C2=X2*Y2+(X2+Y2)*X1*Y1+(X2+Y2)(X1+Y1)C0
第三位的进位C3=X3*Y3+(X3+Y3)X2*Y2+(X3+Y3)*(X2+Y2)*X1*Y1+
(X3+Y3)(X2+Y2)(X1+Y1)*C0
第四位的进位C4=X4*Y4+(X4+Y4)*X3*Y3+(X4+Y4)*(X3+Y3)*X2*Y2
+(X4+Y4)(X3+Y3)(X2+Y2)*X1*Y1
+(X4+Y4)(X3+Y3)(X2+Y2)(X1+Y1)*C0
下面引入进位传递函数Pi和进位产生函数Gi的概念。
它们定义为:
Pi=Xi+Yi
Gi=Xi*Yi
P1的意义是:
当X1和Y1中有一个为1时,若有进位输入,则本位向高位传递此进位。
这个进位可以看成是低位进位越过本位直接向高位传递的。
G1的意义是:
当X1,Y1均为1时,不管有无进位输入,本位定会产生向高位的进位。
将Pi,Gi代人C1~C4式中,便可得;
C1=G1+P1*C0式
(1)
C2=G2+P2*G1+P2*P1*C0式
(2)
C3=G3+P3*G2+P3*P2*G1+P3*P2*P1*C0式(3)
C4=G4+P4*G3+P4*P3*G2+P4*P3*P2*G1+P4*P3*P2*P1*C0式(4)
带进位、溢出判断的六位超前进位加法器可由2个四位超前进位加法器(JFQ4)组成,第一个四位超前进位加法器的输出作为第二个四位超前进位加法器的进位输入即可形成带进位、溢出判断的六位超前进位加法器。
八位超前进位加法器的原理框图如图1.1所示:
图1.1八位超前进位加法器原理框图
1.2设计思路
一个带进位、溢出提示功能的六位补码超前进位加法器,可以由2个四位超前进位加法器模块构成。
四位超前进位加法器采用Schematic设计输入方式,顶层的四位超前进位加法器采用原理图设计输入方式。
采用硬件描述语言进行电路设计并实现上述给定进位的功能,设计的Schematic程序经编译、调试后形成lll*.bit文件并下载到XCV200可编程逻辑芯片中,经硬件测试验证设计的正确性。
1.3设计环境
·硬件环境:
伟福COP2000型计算机组成原理实验仪、XCV200实验板、微机;
·EDA环境:
XilinxFoundationF3.1设计软件、ModulSimEDA仿真软件。
第2章详细设计方案
2.1顶层方案图的设计与实现
顶层方案图实现一位全加器的逻辑功能,采用原理图设计输入方式完成,电路实现基于XCV200可编程逻辑芯片。
在完成原理图的功能设计后,把输入/输出信号安排到XCV200指定的引脚上去,实现芯片的引脚锁定并进行硬件测试,检验硬件测试结果与软件仿真结果是否相等,由此判断出八位超前进位加法器的设计是否符合要求。
2.1.1创建顶层图形设计文件
顶层图形文件由1个六位超前进位加法器(JFQ6)构成,实现16位输入8位输出。
六位超前进位加法器可由2个四位超前进位加法器(JFQ4)组成,第一个四位超前进位加法器的输出作为第二个四位超前进位加法器的进位输入即可形成六位的超前进位加法器。
并且,U1输入端的A0~A3为第一个数的低四位(A0为最低位),U1输入端的B0~B3为第二个数的低四位(B0为最低位),;U2输入端的A0~A3为第一个数的高四位(A3为第一个数的最高位),U2输入端的B0~B3为第二个数的高四位(B3为第二个数的最高位);U1输出端的S0~S3为两个数相加和的低四位(S0为最低位),U2输出端的S0~S3为两个数相加和的高四位(S3为高位),并且U2输出端的CO为进位输出端(即两个数加和的最高位)。
可以用表达式表示两个数相加为:
A7A6A5A4A3A2A1A0+B7B6B5B4B3B2B1B0=COS7S6S5S4S3S2S1S0
将符号位S6、S7经异或操作后得到YC信号,可作为溢出判断依据。
可利用XilinxFoundationF3.1实现顶层图形文件的设计,顶层图形文件结构如图2.1所示:
图2.1八位超前进位加法器顶层图形文件结构
2.1.2器件的选择与引脚锁定
(1)器件的选择
由于硬件设计环境是基于伟福COP2000型计算机组成原理实验仪和XCV200实验板,故采用的目标芯片为XilinxXCV200可编程逻辑芯片。
(2)引脚锁定
把顶层图形文件中的输入/输出信号安排到XilinxXCV200芯片指定的引脚上去,实现芯片的引脚锁定,为硬件测试做好准备工作。
各信号及XilinxXCV200芯片引脚对应关系如表2.1所示:
表2.1输入/输出信号和XCV200芯片引脚对应关系
输入信号
XCV200芯片引脚
输出信号
XCV200芯片引脚
A0
LOC=P41
S0
LOC=P110
A1
LOC=P40
S1
LOC=P111
A2
LOC=P39
S2
LOC=P203
A3
LOC=P38
S3
LOC=P185
A4
LOC=P36
S4
LOC=P184
A5
LOC=P35
S5
LOC=P178
A6
LOC=P34
CO
LOC=P147
A7
LOC=P33
YC
LOC=P152
B0
LOC=P47
B1
LOC=P48
B2
LOC=P49
B3
LOC=P50
B4
LOC=P53
B5
LOC=P54
B6
LOC=P55
B7
LOC=P56
2.1.3编译、综合、适配
利用Xilinx编译器对顶层图形文件进行编译、综合、优化、逻辑分割、适配和布线,生成可供时序仿真的文件和器件下载编程文件。
2.2功能模块的设计与实现
带进位、溢出判断六位超前进位加法器采用Schematic设计输入方式,由2个四位超前进位加法器构成,四位超前进位加法器的内部采用门电路设计并引入了进位传递函数Pi和进位产生函数Gi的概念。
2.2四位超前进位加法器模块的设计与实现
根据上面在1.1中讲述的四位超前进位加法器的设计原理那样,四位超前进位加法器的实现是建立在进位C1,C2,C3,C4的基础之上的。
所以,由于上面第1章第1节中关于进位C1,C2,C3,C4已经进行了详细的讲述,根据式
(1)、
(2)、(3)、(4)可以画出四位超前进位加法器的逻辑图。
九个输入分别用表示A0、A1、A2、A3、B0、B1、B2、B3、C0,输出用S0、S1、S2、S3、CO表示,形成的Schematic四位加法器芯片用JFQ4来命名。
四位超前进位加法器的逻辑图如图2.2所示:
(1)创建Schematic原理图(及四位超前进位加法器的逻辑图)
图2.2四位超前进位加法器的逻辑图
(2)功能仿真
对创建的四位超前进位加法器(JFQ4)进行功能仿真,验证其功能的正确性,可用Xilinx编译器的Simulator模块实现。
则
A3A2A1A0+B3B2B1B0+C0=C4F3F2F1F0
四位超前进位加法器的结果图、波形仿真图如2.3、2.4所示,将两个图的结果与理论计算结果进行比较验证,由此判断四位超前进位加法器(JFQ4)的设计是否正确,若两个图的结果与理论计算结果一致,那么说明四位超前进位加法器的设计完全正确。
四位超前进位加法器的结果图、波形仿真图如图2.3、2.4所示:
图2.3四位超前进位加法器的结果图
图2.4四位超前进位加法器的波形仿真图
2.3仿真调试
仿真调试主要验证设计电路逻辑功能、时序的正确性,本设计中主要采用功能仿真方法对设计的电路进行仿真。
功能仿真波形结果如图2.6所示,对仿真数据结果与理论计算结果进行对比(理论计算结果为:
11100011+00111100+0=100011111),可以看出功能仿真结果是正确的,进而说明电路设计的正确性。
八位超前进位加法器的结果图、波形仿真图如图2.5、2.6所示:
图2.5八位超前进位加法器的结果图
图2.6八位超前进位加法器的波形仿真图
第3章编程下载与硬件测试
3.1编程下载
利用Xilinx的编程下载功能,将得到的lll*.bit文件下载到XCV200实验板的XCV200可编程逻辑芯片中。
3.2硬件测试及结果分析
利用XCV200实验板进行硬件功能测试。
八位超前进位加法器的输入数据通过XCV200实验板的输入开关K4、K3、K2实现,输出数据通过XCV200实验板的LED指示灯实现,其对应关系如表3.1所示。
表3.1XCV200实验板信号对应关系
XCV200芯片引脚信号
XCV200实验板
A7~A0
K4
B7~B0
K3
S5~S0
A5~A0
YC
A6
CO
A7
输入两个参数作为输入数据,测试输出结果,即用XCV200实验板的开关K3,K4输入数据,同时观察A7~A0的输出。
理论运算的结果是:
00110101+00101100=01100001不进位,有溢出。
将硬件测试结果与理论运算结果进行比较,验证设计的带进位、溢出判断的六位超前进位加法器的计算结果是否正确,有图3.1可知带进位、溢出判断的六位超前进位加法器的计算结果与理论值相等,说明设计的加法器正确。
经过软件编译形成keshe.bit文件,打开COP2000并开启试验箱,首先进行串口通信测试,串口通信测试成功后,点击FPGA编程,选中keshe.bit文件进行下载,下载完成后将K4设置为00110101,K3设置为00101100,,观察输出A7~A0的变化情况。
硬件测试结果如图3.1所示:
图3.1硬件测试结果
由图3.1硬件测试结果可知测试结果与理论计算结果完全相同,说明设计的八位超前进位加法器是正确的,符合要求的。
参考文献
[1]曹昕燕.EDA技术实验与课程设计[M].北京:
清华大学出版社,2006
[2]范延滨.微型计算机系统原理、接口与EDA设计技术[M].北京:
北京邮电大学出版社,2006
[3]王爱英.计算机组成与结构(第4版)[M].北京:
清华大学出版社,2006
[4]侯伯亨,顾新.VHDL硬件描述语言与数字逻辑电路设计.西安:
西安电子科技大学出版社,1999
[5]杜建国.VerilingHDL硬件描述语言.北京:
国防工业出版社,2003
[6]林灶生.刘绍汉。
VerilogFPGA芯片设计.北京:
北京航空航天出版社,2006
[7]白中英.计算机组成原理(第3版).北京:
科技出版社
[8]李景华.可编程程逻辑器件与EDA技术[M].北京:
东北大学出版社,2001
[9]王冠.VerilogHDL与数字电路设计[M].北京:
机械工业出版社,2005
[10]江国强.EAD技术习题与实验[M].北京:
电子工业出版社,2005
附录(程序清单或电路原理图)
带进位、溢出判断的补码六位超前进位加法器的原理图:
四位补码超前进位加法器的内部构造图:
课程设计总结:
在课程设计的过程中由于对软件环境的不熟悉导致对课程设计的总体把握不太明白。
在经过一段时间的熟悉和老师的讲解,终于,初步了解了这个课程设计的工作环境。
由于连线封装仿真下载每一步都存在着许多问题,稍稍不仔细就会出现错误,通过十天的坚持,我终于将超前进位加法器做出来了。
最后,在通过这次的课程设计,了解了XilinxFoundationF3.1可编程器件开发工具软件,伟福COP2000实验箱、可编程逻辑器件和外围电路设计,学到了许多从前不知道的东西,学到了坚持,学到了仔细,学到了步步为营,一步一个脚印踏踏实实。
指导教师评语:
指导教师(签字):
年月日
课程设计成绩