计算机组成原理课设 定点原码一位除法器的设计.docx
- 文档编号:26877522
- 上传时间:2023-06-23
- 格式:DOCX
- 页数:14
- 大小:92.33KB
计算机组成原理课设 定点原码一位除法器的设计.docx
《计算机组成原理课设 定点原码一位除法器的设计.docx》由会员分享,可在线阅读,更多相关《计算机组成原理课设 定点原码一位除法器的设计.docx(14页珍藏版)》请在冰豆网上搜索。
计算机组成原理课设定点原码一位除法器的设计
沈阳航空航天大学
课程设计报告
课程设计名称:
计算机组成原理课程设计
课程设计题目:
定点原码一位除法器的设计
院(系):
计算机学院
专业:
计算机科学与技术
班级:
94010101
学号:
2009040101013
姓名:
胡桂林
指导教师:
周大海
完成日期:
2012年1月13日
第1章总体设计方案
1.1设计环境
伟福COP2000实验箱,用汇编语言编程实现定点原码一位除法器
COP2000计算机组成原理实验系统由实验平台、开关电源、软件三大部分组成。
实验平台上有寄存器组R0-R3、运算单元、累加器A、暂存器W、直通/左移/右移单元、地址寄存器、程序计数器、堆栈、中断源、输入/输出单元、存储器单元、微地址寄存器、指令寄存器、微程序控制器、组合逻辑控制器、扩展座、总线插孔区、微动开关/指示灯、逻辑笔、脉冲源、20个按键、字符式LCD、RS232口。
COP2000集成调试软件(即仿真测试软件)共分为6部分:
(1)主菜单区实现实验仪的各项功能的菜单,包括[文件][编辑][汇编][运行][帮助]五大项,各项线面做详细介绍。
(2)快捷图标区快速实现各项功能按键
(3)源程序/机器码区在此区域有源程序窗口,反汇编窗口,EM程序代码窗口。
源程序用于输入,显示,编辑汇编源程序:
反汇编窗口显示程序编译后的机器码及反汇编的程序;EM程序代码窗口用数据方式机器码。
(4)机构图/逻辑波形区结构图能结构化显示模型机的各部件,以及运行时数据走向寄存器值;逻辑波形图能显示模型机运行时所有信号的程序。
(5)微程序/跟踪区微程序表格用来显示程序运行时微程序的时序,及每个时钟脉冲各控制位的状态,跟踪表用来记录显示程序及微程序执行的轨迹,指令系统可以帮助你设计新的指令系统。
(6)寄存器状态区用来显示程序执行时各内部寄存器的值。
1.2设计原理
定点原码一位除法器因为对余数的处理不同,又可分为恢复余数法和加减交替法,课设要求用恢复余数法进行计算,但余数为负时,需加上除数,将其恢复成原来的余数,商符由两数符号位进行异或求得,商值由两数绝对值相除求得。
恢复余数定点原码一位除法器实现的功能如表1.1所示,设计的电路应实现表1.1中给定的功能。
设:
X=X0X1……Xn
Y=Y0Y1……Yn
X0X1,Y0Y1分别为符号位,K为两符号位的异或值
X/Y=K*|X|/|Y|
|X|/|Y|利用恢复余数法求的,商根据余数的符号是正或负来判断。
当为负时,上商为0,同时还应该把除数再加到差上去,恢复余数为原来的正值之后再左移一位。
若差为0或为正值时,就没有恢复余数的操作,上商为1,余数左移一位。
其计算过程如下:
例:
已知:
X=0.1011
Y=0.1101
求:
X/Y
被除数(余数)
商
说 明
0.1011
+1.0011
0.0000
+[-|y|]补(减去除数)
1.1110
+0.1101
0.0000
余数为负,上商0
恢复余数+[|y|]补
0.1011
1.0110
+1.1011
0.0000
0.0000
被恢复的被除数
←1位
+[-|y|]补(减去除数)
0.1001
1.0010
+1.0011
0.0001
0.0010
余数为正,上商1
←1位
+[-|y|]补(减去除数)
0.0101
0.1010
+1.0011
0.0011
0.0110
余数为正,上商1
←1位
+[-|y|]补(减去除数)
1.1101
+0.1101
0.0110
余数为负,上商0
恢复余数+[|y|]
0.0101
1.0100
+1.0011
0.0110
0.1100
被恢复的被除数
←1位
+[-|y|]补(减去除数)
0.0111
0.1101
余数为正,上商1
表1.1恢复余数定点原码一位除法器功能表
商的符号位为:
X0
Y0=1
1=0
商值为:
X/Y=0.1101
第2章详细设计方案
2.1总流程图
用存储器R1和R2存储除数X和被除数Y,再将除数和被除数送到外存9FH和9EH,X*,Y*,[—Y*]补存入存储器R1,R2和9CH中。
(1):
余数R2加上[—Y*],判断余数正负,如果余数为正执行商置1模块;否则执行商置0模块。
并判断计数数值C是否为零,不为零执行
(1);为零执行
(2):
余数R2加上[—Y*],判断余数正负,如果余数为正把商R0的最低位置1;否则把商R0的最低位置0。
将9FH和9EH地址存的除数和被除数的符号位进行异或,求出商的符号。
输出商和余数,由OUT和R2分别显示。
图2.1总流程图
2.2上商置0模块流程图
上商置0模块中要进行恢复余数,原码一位除法器恢复余数法进行计算,区别于加减交替算法。
当余数为负时,将商的最后一位添0,这时,需要进行恢复,余数加上[Y*]补,再将得到的余数和商同时左移一位,然后余数再加上[—Y*]补存到R2上,再判断余数的正负,如果余数为负时,循环进行上商置0的操作,否则,进行上商置1的操作。
图2.2上商置0模块流程图
2.3上商置1模块流程图
上商置1的算法比较简单,不存在不同的算法,原码一位除法都是相同的计算。
当余数为正时上商置1,这时,再将得到的余数和商同时向左移一位,然后余数加上[—Y*]补存到R2上,在判断余数的正负。
如果余数为正时,循环进行上商置1的操作,否则,进行上商置0的操作。
图2.3上商置1模块流程图
2.4商的符号流程图
商的符号计算原码一位除法和原码一位乘法一样都是单独处理的,商符由两数的符号位进行异或运算求得,商值是由两数绝对值相除求得。
将9FH和9EH地址的除数X和被除数Y分别右移四位,得到X1和Y1再将两数进行相加运算,得到一个值是Z,然后判断Z的最低位是否为零,如果为零,则商的符号为正,否则商的符号为负。
图2.4商的符号流程图
第3章测试结果
3.1程序仿真
将事先编好的汇编程序输入到列表里,保存将格式改写成.asm,再进行仿真,仿真可以一步一步进行仿真,你可以看到每步执行过程中,寄存器R0~R3和累加器A的变化,根据变化可以知道每步执行是否正确,直到最后输出OUT和R2。
3.2仿真测试一
当X=0.1011B,Y=0.1101B时的仿真结果如下图所示。
已知X=0.1011B,Y=0.1101B,根据原码一位除法恢复余数法进行计算可得出商为0.1101,再将X和Y的符号位进行异或可得出商的符号为正,所以最终商为0.1101,余数为0.0111。
OUT显示出商结果:
0DHR2显示余数结果:
07H
3.3仿真测试二
当X=0.1001B,Y=—0.1101B时的仿真结果如下图所示。
已知X=0.1001B,Y=—0.1101B,根据原码一位除法恢复余数法进行计算可得出商为0.1011,再将X和Y的符号位进行异或可得出商的符号为负,所以最终商为1.1101,余数为1.1001。
OUT显示出商结果:
1BHR2显示余数结果:
19H
附录
地址
汇编语言
机器码
注释
00
MOVR2,#0B
8E0B
送除数X到R2
02
MOVR1,#0D
8D0D
送被除数Y到R1
04
MOVA,R1
71
取除数X
05
MOV9FH,A
889F
除数存到9F
07
MOVA,R2
72
取被除数Y
08
MOV9EH,A
889E
被除数存到9E
0A
MOVR0,#00
8C00
送R3到A
0C
MOVA,R1
71
送R0到A
0D
ANDA,#0F
5C0F
求出[Y*]补
0F
MOV9C,A
889C
[Y*]补存到9C
11
MOVR1,A
81
求出[-Y*]补送到R2
12
MOVA,R1
71
13
CPLA
E4
14
ADDA,#01
1C01
16
ANDA,#1F
5C1F
18
MOVR1,A
81
19
MOVA,R2
72
1A
ANDA,#0F
5C0F
1C
MOVR2,A
82
1D
MOVR3,#05
8F05
R3初值05H
1F
MOVA,R2
72
余数加上[-Y*]补存到R2
20
ADDA,R1
11
21
MOVR2,A
82
22
MOVA,R3
73
计数R3减1,存回R3
23
SUBA,#01
3C01
25
MOVR3,A
83
26
ANDA,#0F
5C0F
R3和0F与
28
JZ4D
A44D
为零跳到4D
2A
MOVA,R2
72
判断R2符号位是否为1
2B
ANDA,#10
5C01
2D
JZ40
A440
为零跳到40
2F
MOVA,R0
70
上商置零
30
ANDA,#07
5C07
32
MOVR0,A
80
33
MOVA,R2
72
余数加上[Y*]补
34
ADDA,9C
189C
36
RL,A
D4
左移一位
37
MOVR2,A
82
存到R2
38
MOVA,R0
70
商送到A
39
RL,A
D4
左移一位
3A
MOVR0,A
80
存到R0
3B
MOVA,R1
71
余数加上[-Y*]补存到R2
3C
ADDA,R2
12
3D
MOVR2,A
82
3E
JMP22
AC22
跳到22
40
MOVA,R0
70
上商置1
41
ORA,#01
6C01
43
RLA
D4
左移一位
44
MOVR0,A
80
存回R0
45
MOVA,R2
72
余数左移一位
46
RLA
D4
47
MOVR2,A
82
存回R2
48
MOVA,R1
71
余数加上[-Y*]补存到R2
49
ADDA,R2
12
4A
MOVR2,A
82
4B
JMP22
AC22
跳到22
4D
MOVA,R2
72
R2存到9B
4E
MOV9BH,A
889B
50
ADDA,#10
5C01
R2加上10H
52
JZ58
A458
为零跳转到58
54
MOVR0,A
70
上商置零
55
ADDA,#07
5C07
57
MOVR0,A
80
存回R0
58
MOVA,R0
70
不为零上商置1
59
ORA,#01
6C01
5B
MOVR0,A
80
存回R0
5C
MOVA,9F
789F
除数X左移四位
5E
RRA
D0
5F
RRA
D0
60
RRA
D0
61
RRA
D0
62
MOVR1,A
81
存到R1
63
MOVA,9E
789E
被除数Y左移四位
65
RRA
D0
66
RRA
D0
67
RRA
D0
68
RRA
D0
69
MOVR2,A
82
存到R2
6A
MOVA,R1
71
R1加上R2
6B
ADDA,R2
12
6C
ANDA,#01
5C01
判断最低位是否为零
6E
JZ75
A475
为零跳到75
70
MOVA,R0
70
不为零上商置1
71
ADDA,#01
1C10
73
JMP76
A476
跳转到76
75
MOVA,R0
70
商送到A
76
OUT
C4
输出A
77
MOVA,9B
789B
余数存到R2
79
ANDA,#0F
5C0F
7B
MOVR2,A
82
参考文献
[1]曹昕燕.EDA技术实验与课程设计[M].北京:
清华大学出版社,2006
[2]范延滨.微型计算机系统原理、接口与EDA设计技术[M].北京:
北京邮电大学出版社,2006
[3]王爱英.计算机组成与结构(第4版)[M].北京:
清华大学出版社,2006
[4]WilliamStallings张昆藏[译]计算机组织与结构—性能设计(第五版)[M]北京:
电子工业出版社2001
[5]黄任.编著VHDL入门·解惑·经典实例·经验总结.[M]北京:
北京航空航天大学出版社,2005
[6]李勇.计算机原理与设计(修订本).[M]长沙:
国防科技大学出版社,1984
[7]白中英主编.计算机组成原理.[M]北京:
科学出版社,1994
课程设计总结:
本次课程设计让我收获颇丰,起初拿到课程设计题目,不知道如何去实现设计要求,经过前几天查阅资料,老师帮助,我对这次课程设计要求有了更深的了解,知道了具体应该怎样操作,怎样去实现原码一位除法器,怎样去操作Cop2000实验箱。
我想说本次课程设计不但使我们复习了计算机组成原理课程的内容,还让我们复习并应用了算法设计与分析以及汇编语言课程的内容,我们加深了对计算机系统概念的理解。
。
我衷心感谢学校和老师给我们安排了这次课程设计,我们平时在享受信息时代带来的方便迅捷的同时也养成了懒惰、急于求成的坏习惯,而这次的课程设计不允许我们偷懒,每个人必须下足功夫才能够完成,而在完成的过程中,我们的心态也悄然发生了变化,从开始的些许抵触转变为乐在其中,这难道不值得感谢吗?
我衷心的希望学校学院能给我安排更多的此类实践课程,增强我们的动手实践能力,促进理论知识的消化吸收。
最后感谢几位指导教师的悉心讲解和耐心指导,谢谢您!
指导教师评语:
指导教师(签字):
年月日
课程设计成绩
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机组成原理课设 定点原码一位除法器的设计 计算机 组成 原理 定点 一位 法器 设计