加减交替法定点原码一位除法器.docx
《加减交替法定点原码一位除法器.docx》由会员分享,可在线阅读,更多相关《加减交替法定点原码一位除法器.docx(29页珍藏版)》请在冰豆网上搜索。
加减交替法定点原码一位除法器
课程设计报告
课程设计名称:
计算机组成原理课程设计
课程设计题目:
加减交替法定点原码一位除法器设计
院(系):
专业:
班级:
学号:
姓名:
指导教师:
完成日期:
目录
第1章总体设计方案1
1.1设计原理1
1.2设计思路2
1.3设计环境3
第2章详细设计方案5
2.1顶层方案图的设计与实现5
2.1.1创建顶层图形设计文件5
2.1.2器件的选择与引脚锁定6
2.1.3编译、综合、适配7
2.2功能模块的设计与实现7
2.2.1输入寄存器的设计与实现7
2.2.2选择器模块的设计与实现9
2.2.3移位电路模块的设计与实现11
2.2.4加法器模块的设计与实现12
2.2.5相反数补码模块的设计与实现14
2.2.6控制器模块的设计与实现15
2.2.7商寄存器模块的设计与实现17
2.2.8恢复余数寄存器模块的设计与实现18
2.3仿真调试21
第3章编程下载与硬件测试22
3.1编程下载22
3.2硬件测试及结果分析22
参考文献26
附录(电路原理图)27
第1章总体设计方案
1.1设计原理
定点除法运算有两种不同的实现方法,一种是恢复余数法,即在运算过程中,必须先算减法,若余数为正,才知道够减,若余数为负,则知道不够减,不够减时必须恢复原来的余数,以便再继续往下运算。
另一种是不恢复余数法,又称加减交替法,此次设计即是采用加减交替法来实现四位二进制数的定点原码一位除法。
加减交替法的实现是对恢复余数法的一种修正,当某一次求得的差值(余数Ri)为负时,不恢复它,继续求下一位的商,但用加上除数(+[—Y]补)的办法来取代(-Y)的操作,其他操作依然不变。
即:
(1)当余数为正时,商上“1”,求下一位商的办法是余数左移一位,再减去除数;
(2)当余数为负数时,商上“0”,求下一位商的办法是余数左移一位,再加上除数。
(3)这种方法不用恢复余数,但若最后一次上商
为“0”,而又需要得到正确的余数,则在这最后一次仍需恢复余数。
例如:
X的值为0.1011,Y的值为0.1101,求
被除数操作说明
00101100000
+)110011+[-Y]补
11111000000不够减,商上0
11110000000左移
+)001101+Y
00100100001够减,商上1
01001000010左移
+)110011+[-Y]补
00010100011够减,商上1
00101000110左移
+)110011+[-Y]补
11110100110不够减,商上0
11101001100左移
+)001101+Y
00011101101够减,商上1
余数商
1.2设计思路
定点原码一位除法器由一个除数寄存模块,一个被除数寄存模块,一个控制模块,一个加法模块,一个移位模块,一个除数选择模块,一个余数选择模块,一个移位模块、一个商寄存模块,一个恢复余数寄存模块构成,采用逻辑电路设计输入方式。
定点原码一位除法器的顶层采用原理图设计输入方式。
定点原码一位除法器的实现框图如图1.1所示:
图1.1定点原码一位除法器原理框图
1.3设计环境
(1)硬件环境:
•伟福COP2000型计算机组成原理实验仪
COP2000计算机组成原理实验系统由实验平台、开关电源、软件三大部分组成实验平台上有寄存器组R0-R3、运算单元、累加器A、暂存器B、直通/左移/右移单元、地址寄存器、程序计数器、堆栈、中断源、输入/输出单元、存储器单元、微地址寄存器、指令寄存器、微程序控制器、组合逻辑控制器、扩展座、总线插孔区、微动开关/指示灯、逻辑笔、脉冲源、20个按键、字符式LCD、RS232口。
COP2000计算机组成原理实验系统各单元部件都以计算机结构模型布局,清晰明了,系统在实验时即使不借助PC机,也可实时监控数据流状态及正确与否,实验系统的软硬件对用户的实验设计具有完全的开放特性,系统提供了微程序控制器和组合逻辑控制器两种控制器方式,系统还支持手动方式、联机方式、模拟方式三种工作方式,系统具备完善的寻址方式、指令系统和强大的模拟调试功能。
(2)EDA环境:
✧Xilinxfoundationf3.1设计软件
该系统由设计入口工具、设计实现工具、设计验证工具三大部分组成。
设计入口工具包括原理图编辑器、有限状态机编辑器、硬件描述语言(HDL)编辑器、LogiBLOX模块生成器、Xilinx内核生成器等软件。
其功能是:
接收各种图形或文字的设计输入,并最终生成网络表文件。
设计实现工具包括流程引擎、限制编辑器、基片规划器、FPGA编辑器、FPGA写入器等软件。
设计实现工具用于将网络表转化为配置比特流,并下载到器件。
设计验证工具包括功能和时序仿真器、静态时序分析器等,可用来对设计中的逻辑关系及输出结果进行检验,并详尽分析各个时序限制的满足情况。
图1.2Xilinxfoundationf3.1设计平台
✧COP2000集成调试软件
COP2000集成开发环境是为COP2000实验仪与PC机相连进行高层次实验的配套软件,它通过实验仪的串行接口和PC机的串行接口相连,提供汇编、反汇编、编辑、修改指令、文件传送、调试FPGA实验等功能,该软件在Windows下运行。
图1.3COP2000计算机组成原理集成调试软件
第2章详细设计方案
2.1顶层方案图的设计与实现
顶层方案图是实现两个四位二进制数的定点原码一位除法器的的逻辑功能,采用原理图设计输入方式完成,电路实现基于XCV200可编程逻辑芯片。
在完成原理图的功能设计后,把输入和输出信号安排到XCV200指定的引脚上去,实现芯片的引脚锁定。
2.1.1创建顶层图形设计文件
顶层图形文件主要由两个六位的二进制数输入端、一个功能使能端、一个数据清零端和一个脉冲控制端,一个六位余数输出端、一个四位商输出端和一个两位符号位输出端组装而成的一个完整的设计实体。
除法器的设计采用自顶向下的设计思路和自底向上的实现思想。
除法运算作为顶层模块,可利用Xilinxfoundationf3.1中的器件来实现,顶层图形文件结构如图2.1所示。
图2.1定点原码一位除法器顶层图形文件结构
2.1.2器件的选择与引脚锁定
(1)器件的选择
由于硬件设计环境是基于伟福COP2000型计算机组成原理实验仪和XCV200实验板,故采用的目标芯片为XlinxXCV200可编程逻辑芯片。
(2)引脚锁定
被除数A[0:
5]为六位输入信号,除数B[0:
5]为六位输入信号,时钟脉冲CLK、电路使能端CE和清零端CLR各占一位管脚;所得的商SHANG[0:
4]占有五位信号,余数YUSHU[0:
5]占六位信号,以及符号FUHAO1和FUHAO2各占一位信号,把顶层图形文件中的输入和输出信号安排到XlinxXCV200芯片指定的引脚上去,实现芯片的引脚锁定,各信号及XlinxXCV200芯片引脚对应关系如表2.1所示。
表2.1引脚锁定对应
输入信号
XCV200芯片引脚信号
XCV200实验板
P96
K0:
5
P97
K0:
4
P100
K0:
3
P101
K0:
2
P102
K0:
1
P103
K0:
0
P81
K1:
5
P82
K1:
4
P84
K1:
3
P85
K1:
2
P86
K1:
1
P87
K1:
0
P213
CLOCK
P72
K2:
1
P71
K2:
2
输出信号
XCV200芯片引脚信号
XCV200实验板
P78
B7
P93
B6
P107
B4
P108
B3
P109
B2
P124
B1
P125
B0
P178
A5
P184
A4
P185
A3
P203
A2
P111
A1
P110
A0
2.1.3编译、综合、适配
利用Xilinxfoundationf3.1的原理图编辑器对顶层图形文件进行编译,并最终生成网络表文件,利用设计实现工具经综合、优化、适配,生成可供时序仿真的文件和器件下载编程文件。
2.2功能模块的设计与实现
定点原码一位除法器的整体设计是以输入寄存器模块、选择器模块、移位器模块、加法器模块、求补码模块、控制器模块、输出寄存器模块为基础而实现的。
2.2.1输入寄存器的设计与实现
寄存器具有使能、清零和时钟脉冲端,能够对于输入的数据进行控制。
该模块被应用为除数寄存器模块和被除数寄存器模块。
(1)输入寄存器模块原理图
输入端用PREGIN[0:
5],控制端CE、CLK、CLR来表示,输出用PREGOUT[0:
5]表示。
输入寄存器模块原理如图2.2所示:
图2.2输入寄存器逻辑电路
(2)创建元件图形符号
为能在图形编辑器(原理图设计输入方式)中调用PINREGISTER芯片,需要为PINREGISTER模块创建一个元件图形符号,可利用Xilinxfoundationf3.1编译器中的如下步骤实现:
Tools=>SymbolWizard=>下一步。
PREGIN[0:
5]是数据输入信号,CE、CLR、CLK是输入信号,PREGOUT[0:
5]、S0、S1是数据输出信号。
其元件图形符号如图2.3所示:
图2.3输入寄存器模块元件图形符号
(3)功能仿真
对创建的输入寄存器进行功能仿真,验证其功能的正确性,可用XilinxFoundation编译器的Simulator模块实现。
仿真结果如图2.4所示:
图2.4输入寄存器模块仿真结果
将寄存器模块的功能和仿真结果对照可知,寄存器模块的仿真结果正确。
2.2.2选择器模块的设计与实现
选择器用于实现数据的选择。
该模块利用六个M2_1器件。
该选择器应用于除数选择和余数选择。
(1)选择器模块原理图
选择器的输入端用SELECTINA[0:
5]和SELECTINB[0:
5]来表示输入的要选择的数据,用S来判断选择哪个数据,输出端用SELECTOUT[0:
5]表示。
选择器模块原理如图2.5所示:
图2.5选择器模块逻辑电路
(2)创建元件图形符号
为能在图形编辑器(原理图设计输入方式)中调用SELECTUNIT芯片,需要为SELECTUNIT模块创建一个元件图形符号,可利用Xilinxfoundationf3.1编译器中的如下步骤实现:
Tools=>SymbolWizard=>下一步。
SELECTINA[0:
5]、SELECTINB[0:
5]和S是输入信号,SELECTOUT[0:
5]是数据输出信号。
其元件图形符号如图2.6所示:
图2.6选择器模块元件图形符号
(3)功能仿真
对创建的选择器模块进行功能仿真,验证其功能的正确性,可用XilinxFoundationf3.1编译器Simulator模块实现。
仿真结果如图2.7所示:
图2.7选择器模块仿真结果
将选择器模块的功能和仿真结果对照,可知选择器模块的仿真结果正确。
2.2.3移位电路模块的设计与实现
该移位电路使用两个寄存器来实现,并利用时钟脉冲、使能端口和清零端口来实现启停和清零功能。
(1)移位电路模块原理图
移位寄存器的输入端用PLEFTIN[0:
5]来表示输入的所要的数据,用CE、C和CLR来控制数据的输入,输出端用SELECTOUT[0:
5]表示。
移位寄存器寄存器模块原理如图2.8所示:
图2.8移位电路模块逻辑电路
(2)创建元件图形符号
为能在图形编辑器(原理图设计输入方式)中调用PLEFTREGISTER芯片,需要为PLEFTREGISTER模块创建一个元件图形符号,可利用Xilinxfoundationf3.1编译器中的如下步骤实现:
Tools=>SymbolWizard=>下一步。
PLEFTIN[0:
5]、CE、C和CLR是输入信号,PLEFTOUT[0:
5]是数据输出信号。
其元件图形符号如图2.9所示:
图2.9移位寄存器模块元件图形符号
(3)功能仿真
对创建的移位电路模块进行功能仿真,验证其功能的正确性,可用XilinxFoundationf3.1编译器Simulator模块实现。
仿真结果如图2.10所示:
图2.10移位寄存器模块仿真结果
将移位器模块的功能和仿真结果对照,可知移位器模块的仿真结果正确。
2.2.4加法器模块的设计与实现
此模块的功能和一般加法器的功能一致。
利用已给的加法器设计所需要的加法器
(1)选择器模块原理图
移位寄存器的输入端用ADDAIN[0:
5]和ADDBIN[0:
5]来表示,输出端用ADDOUT[0:
5]表示。
加法器模块原理如图2.11所示:
图2.11加法器模块逻辑电路
(2)创建元件图形符号
为能在图形编辑器(原理图设计输入方式)中调用ADD6芯片,需要为ADD6模块创建一个元件图形符号,可利用Xilinxfoundationf3.1编译器中的如下步骤实现:
Tools=>SymbolWizard=>下一步。
ADDAIN[0:
5]和ADDBIN[0:
5]是输入信号,ADDOUT[0:
5]是数据输出信号。
其元件图形符号如图2.12所示:
图2.12加法器模块元件图形符号
(3)功能仿真
对创建的加法器电路模块进行功能仿真,验证其功能的正确性,可用XilinxFoundationf3.1编译器Simulator模块实现。
仿真结果如图2.13所示:
图2.13加法器模块仿真结果
将加法器模块的功能和仿真结果对照,可知加法器模块的仿真结果正确。
2.2.5相反数补码模块的设计与实现
因为符号位已经单独考虑,所以参与运算的数都是正数,通过四个非门和高电平的处理,即可得到求补后的输出信号。
(1)选择器模块原理图
相反数补码器的输入端用PATHIN[0:
5]来表示,输出端用PATHOUT[0:
5]表示。
加法器模块原理如图2.14所示:
图2.14相反数补码模块逻辑电路
(2)创建元件图形符号
为能在图形编辑器(原理图设计输入方式)中调用PATHCODE芯片,需要为PATHCODE模块创建一个元件图形符号,可利用Xilinxfoundationf3.1编译器中的如下步骤实现:
Tools=>SymbolWizard=>下一步。
PATHIN[0:
5]是输入信号,PATHOUT[0:
5]是数据输出信号。
其元件图形符号如图2.15所示:
图2.15相反数补码模块元件图形符号
(3)功能仿真
对创建的加法器电路模块进行功能仿真,验证其功能的正确性,可用XilinxFoundationf3.1编译器Simulator模块实现。
仿真结果如图2.16所示:
图2.16相反数补码模块仿真结果
将加法器模块的功能和仿真结果对照可知,加法器模块的仿真结果正确。
2.2.6控制器模块的设计与实现
该模块的输出为清零(CLR),使能端(CE),五个寄存器的控制端和两个选择器的片选端时钟控制信号。
(1)选择器模块原理图
相反数补码器的输入端用PATHIN[0:
5]来表示,输出端用PATHOUT[0:
5]表示。
加法器模块原理如图2.17所示:
图2.17控制器模块逻辑电路
(2)创建元件图形符号
为能在图形编辑器(原理图设计输入方式)中调用CONTROLUNIT芯片,需要为CONTROLUNIT模块创建一个元件图形符号,可利用Xilinxfoundationf3.1编译器中的如下步骤实现:
Tools=>SymbolWizard=>下一步。
主时钟脉冲(INCLK)、除法器使能端(INCE)、除法器清零端(INCLR)是输入信号,INPUTREGCLK、SELECT1CLK、SELECT2CLK、PREGCLK、OUTCE、LEFTCLK和OUTCLR是数据输出信号。
其元件图形符号如图2.18所示:
图2.18控制器模块元件图形符号
(3)功能仿真
对创建的控制器电路模块进行功能仿真,验证其功能的正确性,可用XilinxFoundationf3.1编译器Simulator模块实现。
仿真结果如图2.19所示:
图2.19控制器模块仿真结果
将控制器模块的功能和仿真结果对照,可知控制器模块的仿真结果正确。
2.2.7商寄存器模块的设计与实现
商寄存器的输入是利用移位数据输入,利用数据的左移来达到商的输出,
并利用时钟脉冲、使能端口和清零端口来实现启停和清零功能。
(1)商寄存器模块原理图
相反数补码器的输入端用ONLEFTIN、CE、CLK、CLR来表示,输出端用SHANGOUT[0:
4]表示。
加法器模块原理如图2.20所示:
图2.20商寄存器模块逻辑电路
(2)创建元件图形符号
为能在图形编辑器(原理图设计输入方式)中调用ONELEFTREGISTER芯片,需要为ONELEFTREGISTER模块创建一个元件图形符号,可利用Xilinxfoundationf3.1编译器中的如下步骤实现:
Tools=>SymbolWizard=>下一步。
ONLEFTIN、CE、CLK、CLR是输入信号,SHANGOUT[0:
4]是数据输出信号。
其元件图形符号如图2.21所示:
图2.21商寄存器模块元件图形符号
(3)功能仿真
对创建的商寄存器模块进行功能仿真,验证其功能的正确性,可用XilinxFoundationf3.1编译器Simulator模块实现。
仿真结果如图2.22所示:
图2.22商寄存器模块仿真结果
将商寄存器模块的功能和仿真结果对照可知,商寄存器器模块的仿真结果正确。
2.2.8恢复余数寄存器模块的设计与实现
由于恢复余数,首先要判断片选端的信号是高还是低电平,进而做出判断是要实行加法,还是直接把数据送入到就寄存器中。
在判断信号的时候,我们要利用M2_1选择器来实现,而如果是地低电平的话,我们就要施行加法这一操作。
故需要加法器。
在数据储存的时候,我们要利用寄存器来存储。
(1)商寄存器模块原理图
相反数补码器的输入端用RESIN[0:
5]、CHUSHUIN[0:
5]、RESS、RESCE、RESC和RECLR来表示,输出端用RESOUT[0:
5]表示。
加法器模块原理如图2.23所示:
图2.23恢复余数寄存器模块逻辑电路
(2)创建元件图形符号
为能在图形编辑器(原理图设计输入方式)中调用RESUMECODE芯片,需要为RESUMECODE模块创建一个元件图形符号,可利用Xilinxfoundationf3.1编译器中的如下步骤实现:
Tools=>SymbolWizard=>下一步。
RESIN[0:
5]、CHUSHUIN[0:
5]、RESS、RESCE、RESC和RECLR是输入信号,RESOUT[0:
4]是数据输出信号。
其元件图形符号如图2.24所示:
图2.24恢复余数寄存器模块元件图形符号
(3)功能仿真
对创建的恢复余数寄存器模块进行功能仿真,验证其功能的正确性,可用XilinxFoundationf3.1编译器Simulator模块实现。
仿真结果如图2.25所示:
图2.25恢复余数寄存器模块仿真结果
将恢复余数寄存器模块的功能和仿真结果对照,可知恢复余数寄存器模块的仿真结果正确。
2.3仿真调试
仿真调试主要验证设计电路逻辑功能、时序的正确性,本设计中主要采用功能仿真方法对设计的电路进行仿真。
(1)建立仿真波形文件及仿真信号选择
功能仿真时,首先建立仿真波形文件,选择仿真信号,对选定的输入信号设置参数,选定的仿真信号和设置的参数如表2.2所示。
表2.2仿真信号选择和参数设置
输入信号
输出信号
A
B
CLR
CLK
CE
FUHAO
SHANG
YUSHU
A0-A5
B0-B5
0
↑
1
00/11
S0-S4
Y0-Y5
(2)功能仿真结果与分析
功能仿真波形结果如图2.26所示,仿真数据结果如表2.3所示。
参照1.1的例子,可以看出功能仿真结果是正确的,进而说明电路设计的正确性。
图2.26功能仿真波形结果
仿真的结果如下表2.3所示:
表2.3仿真结果
输入信号
输出信号
A
B
CLR
CLK
CE
FUHAO
SHANG
YUSHU
001011
001101
0
↑
1
00
01101
000111
第3章编程下载与硬件测试
3.1编程下载
利用XilinxFoundation的编程下载功能,将得到的.bit文件下载到XCV200实验板的XCV200可编程逻辑芯片中。
3.2硬件测试及结果分析
利用XCV200实验板进行硬件功能测试。
原码一位除法器的输入数据通过XCV200实验板的输入开关实现,输出数据通过XCV200实验板的LED指示灯实现,其对应关系如表3.1。
表3.1XCV200实验板信号对应关系
输入信号
XCV200芯片引脚信号
XCV200实验板
P96
K0:
5
P97
K0:
4
P100
K0:
3
P101
K0:
2
P102
K0:
1
P103
K0:
0
P81
K1:
5
P82
K1:
4
P84
K1:
3
P85
K1:
2
P86
K1:
1
P87
K1:
0
P213
CLOCK
P72
K2:
1
P71
K2:
2
输出信号
XCV200芯片引脚信号
XCV200实验板
P78
B7
P93
B6
P107
B4
P108
B3
P109
B2
P124
B1
P125
B0
P178
A5
P184
A4
P185
A3
P203
A2
P111
A1
P110
A0
对于原码为:
X的值为111011,Y的值为001101,那么运算结果如表3.2所示:
表3.2输入值与计算结果
输入信号
输出信号
A
B
CLR
CLK
CE
FUHAO
SHANG
YUSHU
111011
001101
0
↑
1
11
01101
000111
所得到的结果如下图3.1所示:
图3.1对表3.2输入数据所得到的结果
根据实验板上得到的结果和计算出来的表3.2的数据一致。
对于原码为:
X的值为000101,Y的值为001100,那么运算结果如表3.3:
表3.3输入值与计算结果
输入信号
输出信号
A
B
CLR
CLK
CE
FUHAO
SHANG
YUSHU
000101
001100
0
↑
1
00
00110
001000
所得到的结果如下图3.2所示:
图3.2对表3.3输入数据所得到的结果
根据实验板上得到的结果和计算出来的表3.3的数据一致。
综合以上的实验板所得到的结果说明加减交替法定点原码一位除法器设计成功。
参考文献
[1]李景华.可编程程逻辑器件与EDA技术[M].北京:
东北大学出版社,2001
[