加减交替法定点原码一位除法器.docx
- 文档编号:23211341
- 上传时间:2023-05-15
- 格式:DOCX
- 页数:30
- 大小:463.85KB
加减交替法定点原码一位除法器.docx
《加减交替法定点原码一位除法器.docx》由会员分享,可在线阅读,更多相关《加减交替法定点原码一位除法器.docx(30页珍藏版)》请在冰豆网上搜索。
加减交替法定点原码一位除法器
沈阳航空航天大学
课程设计报告
课程设计名称:
计算机组成原理课程设计
课程设计题目:
基于加减交替法的定点原码一位除法器的设计与实现
院(系):
计算机学院
专业:
网络工程
班级:
34010201
学号:
2013040102012
姓名:
吉学金
指导教师:
孙恩岩
学术诚信声明
本人声明:
所呈交的报告(含电子版及数据文件)是我个人在导师指导下独立进行设计工作及取得的研究结果。
尽我所知,除了文中特别加以标注或致谢中所罗列的内容以外,报告中不包含其他人己经发表或撰写过的研究结果,也不包含其它教育机构使用过的材料。
与我一同工作的同学对本研究所做的任何贡献均己在报告中做了明确的说明并表示了谢意。
报告资料及实验数据若有不实之处,本人愿意接受本教学环节“不及格”和“重修或重做”的评分结论并承担相关一切后果。
本人签名:
吉学金日期;2016年1月16日
目录
第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控制器模块的设计与实现8
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商寄存器模块的设计与实现19
2.3仿真调试20
第3章编程下载与硬件测试22
3.1编程下载22
3.2硬件测试及结果分析22
参考文献26
第1章总体设计方案
1.1设计原理
本次课设要求使用加减交替法/不恢复余数法,用三个寄存器A,B,C分别存放被除数/余数,除数Y以及[-Y]补,和商。
D为除数Y/[-Y]补送加法器电路。
A寄存器用被除数初始化,作为初始余数。
实现余数和D(即加减交替法的选择结果,通过加法器运算结果的最高两位即符号位确定,如果符号为负,则选择+Y,否则+[-Y]补)相加是通过A送加法器和D送加法器,在加法器中完成的。
加法器的输出经过移位电路向左移一位送入A寄存器中。
C寄存器是用移位寄存器实现的,左移时将移入通过加法器输出结果高位符号确定的商。
完成除法运算后,A寄存器中保存余数,C寄存器中保存商。
主要步骤如下,当某一次求得的差值(余数Ri)为负时,不恢复它,继续求下一位的商,但用加上除数(+[—Y]补)的办法来取代(-Y)的操作,其他操作依然不变。
即
(1)当余数为正时,商上“1”,求下一位商的办法是余数左移一位,再减去除数;
(2)当余数为负数时,商上“0”,求下一位商的办法是余数左移一位,再加上除数。
(3)这种方法不用恢复余数,但若最后一次上商
为“0”,而又需要得到正确的余数,则在这最后一次仍需恢复余数。
例1.1:
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
余数商
X/Y=0.1101余数=0.0111
1.2设计思路
基于加减交替法定点原码一位除法器设计方法是;由一个ALU模块,一个被除数寄存模块,一个除数寄存模块,一个控制模块,一个加法模块,一个移位模块,一个除数选择模块,一个余数选择模块,一个移位模块、一个商寄存模块,一个恢复余数寄存模块构成,由控制器发出移位和减法命令,顶层设计采用原理图设计输入方式。
定点原码一位除法器的实现框图如图1.1所示:
图1.1定点原码一位除法器原理框图
1.3设计环境
(1)硬件环境:
伟福COP2000型计算机组成原理实验仪
COP2000计算机组成原理实验系统由实验平台、开关电源、软件三大部分组成实验平台上有寄存器组R0-R3、运算单元、累加器A、暂存器B、直通/左移/右移单元、地址寄存器、程序计数器、堆栈、中断源、输入/输出单元、存储器单元、微地址寄存器、指令寄存器、微程序控制器、组合逻辑控制器、扩展座、总线插孔区、微动开关/指示灯、逻辑笔、脉冲源、20个按键、字符式LCD、RS232口。
(2)EDA环境:
Xilinxfoundationf3.1设计软件
该系统由设计入口工具、设计实现工具、设计验证工具三大部分组成。
设计入口工具包括原理图编辑器、有限状态机编辑器、硬件描述语言(HDL)编辑器、LogiBLOX模块生成器、Xilinx内核生成器等软件。
其功能是:
接收各种图形或文字的设计输入,并最终生成网络表文件。
设计实现工具包括流程引擎、限制编辑器、基片规划器、FPGA编辑器、FPGA写入器等软件。
设计实现工具用于将网络表转化为配置比特流,并下载到器件。
设计验证工具包括功能和时序仿真器、静态时序分析器等,可用来对设计中的逻辑关系及输出结果进行检验,并详尽分析各个时序限制的满足情况。
如图1.2所示:
图1.2Xilinxfoundationf3.1设计平台
(3)COP2000集成调试软件
COP2000集成开发环境是为COP2000实验仪与PC机相连进行高层次实验的配套软件,它通过实验仪的串行接口和PC机的串行接口相连,提供汇编、反汇编、编辑、修改指令、文件传送、调试FPGA实验等功能,该软件在Windows下运行。
如图1.3所示:
图1.3COP2000计算机组成原理集成调试软件
第2章详细设计方案
2.1顶层方案图的设计与实现
顶层方案图是实现两个四位二进制数的定点原码一位除法器的的逻辑功能,采用原理图设计输入方式完成,电路实现基于XCV200可编程逻辑芯片。
在完成原理图的功能设计后,把输入和输出信号安排到XCV200指定的引脚上去,实现芯片的引脚锁定。
除法运算作为顶层模块,可利用Xilinxfoundationf3.1中的器件来实现,顶层图形文件结构如图2.1所示:
图2.1定点原码一位除法器顶层图形文件结构
2.1.1创建顶层图形设计文件
顶层图形文件是由两个六位的二进制数输入端、一个功能使能端、一个数据清零端和一个脉冲控制端,一个四位商输出端,一个六位余数输出端和一个两位符号位输出端组装成的一个设计体系。
除法器的设计采用自顶向下的设计思路和自底向上的实现思想。
2.1.2器件的选择与引脚锁定
(1)器件的选择
由于硬件设计环境是基于伟福COP2000型计算机组成原理实验仪和XCV200实验板,故采用的目标芯片为XilinxXCV200可编程逻辑芯片。
(2)引脚锁定
被除数A[0:
5]为六位输入信号,除数B[0:
5]为六位输入信号,时钟脉冲CLK、电路使能端CE和清零端CLR各占一位管脚;所得的商SHANG[0:
4]占有五位信号,余数YUSHU[0:
5]占六位信号,以及符号FUHAO1和FUHAO2各占一位信号,把顶层图形文件中的输入和输出信号安排到XilinxXCV200芯片指定的引脚上去,实现芯片的引脚锁定,各信号及XilinxXCV200芯片引脚对应关系如表2.1所示:
表2.1引脚锁定对应
输入信号
XCV200芯片引脚信号
XCV200实验板
P72
K2:
1
P71
K2:
2
P213
CLOCK
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
输出信号
XCV200芯片引脚信号
XCV200实验板
P178
A5
P184
A4
P185
A3
P203
A2
P111
A1
P110
A0
P78
B7
P93
B6
P107
B4
P108
B3
P109
B2
P124
B1
P125
B0
2.1.3编译、综合、适配
利用Xilinxfoundationf3.1的原理图编辑器对顶层图形文件进行编译,并最终生成网络表文件,利用设计实现工具经综合、优化、适配,生成可供时序仿真的文件和器件下载编程文件。
2.2功能模块的设计与实现
定点原码一位除法器的整体设计的主要模块为:
输入寄存器模块、选择器模块、移位器模块、加法器模块、求补码模块、控制器模块、输出寄存器模块为基础而实现的。
2.2.1控制器模块的设计与实现
该模块的输出为清零(CLR),使能端(CE),五个寄存器的控制端和两个选择器的片选端时钟控制信号。
(1)选择器模块原理图
相反数补码器的输入端用PATHIN[0:
5]来表示,输出端用PATHOUT[0:
5]表示。
加法器模块原理如图2.2所示:
图2.2控制器模块逻辑电路
(2)创建元件图形符号
为能在图形编辑器(原理图设计输入方式)中调用CONTROLUNIT芯片,需要为CONTROLUNIT模块创建一个元件图形符号,可利用Xilinxfoundationf3.1编译器中的如下步骤实现:
Tools=>SymbolWizard=>下一步。
主时钟脉冲(INCLK)、除法器使能端(INCE)、除法器清零端(INCLR)是输入信号,INPUTREGCLK、SELECT1CLK、SELECT2CLK、PREGCLK、OUTCE、LEFTCLK和OUTCLR是数据输出信号。
其元件图形符号如图2.3所示:
图2.3控制器模块元件图形符号
(3)功能仿真
对创建的控制器电路模块进行功能仿真,验证其功能的正确性,可用XilinxFoundationf3.1编译器Simulator模块实现。
仿真结果如图2.4所示:
图2.4控制器模块仿真结果
将控制器模块的功能和仿真结果对照,可知控制器模块的仿真结果正确。
2.2.2输入寄存器的设计与实现
输入寄存器电路需要使用两个FD4CE寄存器来实现,寄存器模块被应用于被除数寄存器模块和除数寄存器模块,具有使能、清零和时钟脉冲端,可以对于输入的数据进行控制,用于求出被除数与除数的绝对值以供使用。
(1)输入寄存器模块原理图
输入端用PREGIN[0:
5],输出用PREGOUT[0:
5]表示,控制端用CE、CLK、CLR来表示。
输入寄存器模块原理如图2.5所示:
图2.5输入寄存器模块逻辑电路
(2)创建元件图形符号
为能在图形编辑器(原理图设计输入方式)中调用PINREGISTER芯片,需要为PINREGISTER模块创建一个元件图形符号,可利用Xilinxfoundationf3.1编译器中的如下步骤实现:
Tools=>SymbolWizard=>下一步。
PREGIN[0:
5]是数据输入信号,CE、CLR、CLK是输入信号,PREGOUT[0:
5]、S0、S1是数据输出信号。
其元件图形符号如图2.6所示:
图2.6输入寄存器模块元件图形符号
(3)功能仿真
对创建的输入寄存器模块功能进行仿真,验证其功能的正确性,可用XilinxFoundation编译器的Simulator模块实现。
仿真结果如图2.7所示:
图2.7输入寄存器模块仿真结果
将寄存器模块的功能和仿真结果对照可知,寄存器模块的仿真结果正确。
2.2.3选择器模块的设计与实现
选择器用于实现对数据的选择,该模块由六个M2_1器件构成。
该选择器应用于选择符合要求的除数和余数。
(1)选择器模块原理图
选择器的输入端用SELECTINA[0:
5]和SELECTINB[0:
5]来表示输入的要选择的数据,输出端用SELECTOUT[0:
5]来表示,用S来判断选择哪个数据。
选择器模块原理如图2.8所示:
图2.8选择器模块逻辑电路
(2)创建元件图形符号
为能在图形编辑器(原理图设计输入方式)中调用SELECTUNIT芯片,需要为SELECTUNIT模块创建一个元件图形符号,可利用Xilinxfoundationf3.1编译器中的如下步骤实现:
Tools=>SymbolWizard=>下一步。
SELECTINA[0:
5]、SELECTINB[0:
5]和S是输入信号,SELECTOUT[0:
5]是数据输出信号。
其元件图形符号如图2.9所示:
图2.9选择器模块元件图形符号
(3)功能仿真
对创建的选择器模块功能进行仿真,验证其功能的正确性,可用XilinxFoundationf3.1编译器Simulator模块实现。
仿真结果如图2.10所示:
图2.10选择器模块仿真结果
将选择器模块的功能和仿真结果对照,可知选择器模块的仿真结果正确。
2.2.4相反数补码模块的设计与实现
由于符号位已经单独作考虑,所以参与运算的数都是正数,即通过六个非门和高电平的处理,就可得到求补后的输出信号。
(1)选择器模块原理图
相反数补码器的输入端用PATHIN[0:
5]来表示,输出端用PATHOUT[0:
5]表示。
加法器模块原理如图2.11所示:
图2.11相反数补码模块逻辑电路
(2)创建元件图形符号
为能在图形编辑器(原理图设计输入方式)中调用PATHCODE芯片,需要为PATHCODE模块创建一个元件图形符号,可利用Xilinxfoundationf3.1编译器中的如下步骤实现:
Tools=>SymbolWizard=>下一步。
PATHIN[0:
5]是输入信号,PATHOUT[0:
5]是数据输出信号。
其元件图形符号如图2.12所示:
图2.12相反数补码模块元件图形符号
(3)功能仿真
对创建的加法器电路模块进行功能仿真,验证其功能的正确性,可用XilinxFoundationf3.1编译器Simulator模块实现。
仿真结果如图2.13所示:
图2.13相反数补码模块仿真结果
将加法器模块的功能和仿真结果对照可知,加法器模块的仿真结果正确。
2.2.5加法器模块的设计与实现
该模块要实现的是两个四位二进制数的相加,此模块的功能和一般加法器的功能一致。
利用已给的加法器设计所需要的加法器
(1)选择器模块原理图
移位寄存器的输入端用ADDAIN[0:
5]和ADDBIN[0:
5]来表示,输出端用ADDOUT[0:
5]表示。
加法器模块原理如图2.14所示:
图2.14加法器模块逻辑电路
(2)创建元件图形符号
为能在图形编辑器(原理图设计输入方式)中调用ADD6芯片,需要为ADD6模块创建一个元件图形符号,可利用Xilinxfoundationf3.1编译器中的如下步骤实现:
Tools=>SymbolWizard=>下一步。
ADDAIN[0:
5]和ADDBIN[0:
5]是输入信号,ADDOUT[0:
5]是数据输出信号。
其元件图形符号如图2.15所示:
图2.15加法器模块元件图形符号
(3)功能仿真
对创建的加法器电路模块功能进行仿真,验证其功能的正确性,可用XilinxFoundationf3.1编译器Simulator模块实现。
仿真结果如图2.16所示:
图2.16加法器模块仿真结果
将加法器模块的功能和仿真结果对照,可知加法器模块的仿真结果正确。
2.2.6移位电路模块的设计与实现
移位电路需要使用两个FD4CE寄存器来实现,并且利用时钟脉冲、使能端口和清零端口来实现启停、清零和实现余数左移一位的功能。
(1)移位电路模块原理图
移位寄存器的输入端用PLEFTIN[0:
5]来表示输入的所要的数据,输出端用PLEFTOUT[0:
5]表示,用CE、C和CLR来控制数据的输入。
移位寄存器寄存器模块原理如图2.17所示:
图2.17移位电路模块逻辑电路
(2)创建元件图形符号
为能在图形编辑器(原理图设计输入方式)中调用PLEFTREGISTER芯片,需要为PLEFTREGISTER模块创建一个元件图形符号,可利用Xilinxfoundationf3.1编译器中的如下步骤实现:
Tools=>SymbolWizard=>下一步。
PLEFTIN[0:
5]、CE、C和CLR是输入信号,PLEFTOUT[0:
5]是数据输出信号。
其元件图形符号如图2.18所示:
图2.18移位寄存器模块元件图形符号
(3)功能仿真
对创建的移位电路模块进行功能仿真,验证其功能的正确性,可用XilinxFoundationf3.1编译器Simulator模块实现。
仿真结果如图2.19所示:
图2.19移位寄存器模块仿真结果
将移位器模块的功能和仿真结果对照,可知移位器模块的仿真结果正确。
2.2.7恢复余数寄存器模块的设计与实现
由于要恢复余数,首先要判断片选端的信号是高电平还是低电平,进而做出判断是要实行加法,还是直接把数据送入到就寄存器中。
在判断信号的时候,我们要利用M2_1器件来实现,如果是低电平的话,就要实行加法这一操作,故需要加法器;而如果是高电平的话,就是要实行数据储存的这一操作,我们要利用寄存器来存储。
(1)恢复余数寄存器模块原理图
相反数补码器的输入端用RESIN[0:
5]、CHUSHUIN[0:
5]、RESS、RESCE、RESC和RECLR来表示,输出端用RESOUT[0:
5]表示。
恢复余数寄存器模块原理如图2.20所示:
图2.20恢复余数寄存器模块逻辑电路
(2)创建元件图形符号
为能在图形编辑器(原理图设计输入方式)中调用RESUMECODE芯片,需要为RESUMECODE模块创建一个元件图形符号,可利用Xilinxfoundationf3.1编译器中的如下步骤实现:
Tools=>SymbolWizard=>下一步。
RESIN[0:
5]、CHUSHUIN[0:
5]、RESS、RESCE、RESC和RECLR是输入信号,RESOUT[0:
4]是数据输出信号。
其元件图形符号如图2.21所示:
图2.21恢复余数寄存器模块元件图形符号
(3)功能仿真
对创建的恢复余数寄存器模块进行功能仿真,验证其功能的正确性,可用XilinxFoundationf3.1编译器Simulator模块实现。
仿真结果如图2.22所示:
图2.22恢复余数寄存器模块仿真结果
将恢复余数寄存器模块的功能和仿真结果对照,可知恢复余数寄存器模块的仿真结果正确。
2.2.8商寄存器模块的设计与实现
商寄存器数据的输入是利用移位输入,利用数据的左移来达到商的输出,
并利用时钟脉冲、使能端口和清零端口来实现启停和清零功能。
(1)商寄存器模块原理图
相反数补码器的输入端用ONLEFTIN、CE、CLK、CLR来表示,输出端用SHANGOUT[0:
4]表示。
加法器模块原理如图2.23所示:
图2.23商寄存器模块逻辑电路
(2)创建元件图形符号
为能在图形编辑器(原理图设计输入方式)中调用ONELEFTREGISTER芯片,需要为ONELEFTREGISTER模块创建一个元件图形符号,可利用Xilinxfoundationf3.1编译器中的如下步骤实现:
Tools=>SymbolWizard=>下一步。
ONLEFTIN、CE、CLK、CLR是输入信号,SHANGOUT[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编程下载
利用Xilinxfoundationf3.1的编程下载功能,将得到的.bit文件下载到XCV200实验板的XCV200可编程逻辑芯片中。
3.2硬件测试及结果分析
利用XCV200实验板进行硬件功能测试。
原码一位除法器的输入数据通过XCV200实验板的输入开关实现,输出数据通过XCV200实验板的LED指示灯实现,其对应关系如表3.1。
表3.1XCV200实验板信号对应关系
输入信号
XCV200芯片引脚信号
XCV200实验板
P72
K2:
1
P71
K2:
2
P213
CLOCK
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
输出信号
XCV200芯片引脚信号
XCV200实验板
P178
A5
P184
A4
P185
A3
P203
A2
P111
A1
P110
A0
P78
B7
P93
B6
P107
B4
P108
B3
P109
B2
P124
B1
P125
B0
对于原码为:
X的值为000101,Y的值为001100,那么运算结果如表3.2:
表3.2输入值与计算结果
输入信号
输出信号
A
B
CLR
CLK
CE
FUHAO
SHANG
YUSHU
000101
001100
0
↑
1
00
00110
00100
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 加减 交替 法定 点原码 一位 法器
![提示](https://static.bdocx.com/images/bang_tan.gif)