COP实现原码一位除法Word下载.docx
- 文档编号:21292015
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:12
- 大小:232.57KB
COP实现原码一位除法Word下载.docx
《COP实现原码一位除法Word下载.docx》由会员分享,可在线阅读,更多相关《COP实现原码一位除法Word下载.docx(12页珍藏版)》请在冰豆网上搜索。
附录(源代码)…………………………………………………………………………11
第1章总体设计方案
1.1设计原理
原码一位除,即两个原码数相除,商的符号为除数和被除数的符号异或值。
采用汇编语言实现定点原码一位除法器,算法为恢复余数法。
利用恢复余数的方法来进行运算。
1.2设计思路
算法为恢复余数法,先用被除数减去除数,如果结果为正数商1,然后左移,如果是负数商0然后加上Y的补,继续运算。
实验开始时将实验数据从实验箱的开关输入到R0,R1,R2三个寄存器中,R0为被除数,R1为除数,R2为商。
运算过程采用恢复余数法。
主要判断被除数减去除数的商值。
如果为负,商0然后加除数然后左移。
如果商值为正商1,左移。
数据都存放在寄存器中,最后结果在OUT寄存器中显示。
1.3设计环境
COP2000模型机包括了一个标准CPU所具备所有部件,这些部件包括:
运算器ALU、累加器A、工作寄存器W、左移门L、直通门D、右移门R、寄存器组R0-R3、程序计数器PC、地址寄存器MAR、堆栈寄存器ST、中断向量寄存器IA、输入端口IN、输出端口寄存器OUT、程序存储器EM、指令寄存器IR、微程序计数器uPC、微程序存储器uM,以及中断控制电路、跳转控制电路。
其中运算器和中断控制电路以及跳转控制电路用CPLD来实现,其它电路都是用离散的数字电路组成。
微程序控制部分也可以用组合逻辑控制来代替。
模型机的指令码为8位,根据指令类型的不同,可以有0到2个操作数。
指令码的最低两位用来选择R0-R3寄存器,在微程序控制方式中,用指令码做为微地址来寻址微程序存储器,找到执行该指令的微程序。
而在组合逻辑控制方式中,按时序用指令码产生相应的控制位。
在本模型机中,一条指令最多分四个状态周期,一个状态周期为一个时钟脉冲,每个状态周期产生不同的控制逻辑,实现模型机的各种功能。
ADDA,R?
------------将寄存器R?
的值加入累加器A中
ADDA,#II----------立即数#II加入累加器A中
SUBA,#II-----------从累加器中减去立即数后加入累加器A中
ANDA,#II-----------累加器A“与”立即数II
(2)数据传送指令
MOVA,R?
的值送到累加器A中
MOVR?
#II------------将立即数II存放到寄存器R?
中
MOVR?
,A------------将累加器A中的值送到寄存器A中
(3)移位指令
RRA----------------累加器A右移
RLA----------------累加器A左移
(4)跳转指令
JZMM---------------若零标志位置1,跳转到MM地址
JMPMM---------------跳转到MM
(5)位运算
ANDA,R?
------------累加器A“与”寄存器R?
的值
(6)输入输出
OUT--------------------将累加器A中数据输出到输出端口
第2章详细设计方案
2.1总体方案的设计与实现
定点原码一位除,算法为恢复余数法,当余数为负时,需加上除数,将其恢复城原来的余数。
商值的确定是通过比较被除数和除数的绝对值的大小,即x”-y”实现的,而计算机内只设加法器,所以需要将x”-y”操作变为|x|补+|y|补得操作。
2.1.1总体方案的逻辑图
图2.1
如上逻辑框图2.1.1中所示,R0、R1、R2均是8位的寄存器。
R0是被除数,R1是除数,R2为商。
其结果在OUT中输出。
2.1.2算法流程图
图2.2算法流程图
算法流程图如图2.3所示。
除法开始前,R2寄存器被清0,准备接收商,被除数的原码放在R0寄存器中,除数的原码放在R1寄存器中,计数器R3中存放需要移位的次数。
除法开始后,首先判断除数是否为0,若除数为0则进行处理,若不为0,则用被除数减去除数,若运算结果大于0,商上1。
若结果小于0,商上0。
然后被除数左移一位,计数器减1。
当计数器R3内容为0时,结束运算。
2.2功能模块的设计与实现
2.2.1模块的设计与实现
2.2.1.1功能描述
主要模块包括:
循环控制模块、加减运算模块、商符运算模块。
循环控制模块:
通过计数器内容控制运算过程。
若计算器大于0,继续进行运算;
若计算器为0,结束运算。
主要应用恢复余数过程。
图2.3循环模块流程图
加减运算模块:
实现加减运算功能,当余数为正时,商加1,当余数为负时,商加0。
图2.4加减模块流程图
商符运算模块:
通过异或运算求出商的符号。
图2.5商结果显示流程图
本设计可以进行定点原码一位除法运算。
通过以上几个关键模块实现。
主要方法是恢复余数法,在运算过程中主要是判断被除数和除数之间的差来决定运算过程的。
移位模块流程
2.2.1.2数据输入流程图
图2.6数据输入流程图
第3章验证测试
3.1验证测试
输入被除数:
A3H
输入除数:
07H
图2.7验证
参考文献
[1]李景华.可编程程逻辑器件与EDA技术[M].北京:
东北大学出版社,2001
[2]COP2000实验指导书
[3]唐朔飞.计算机组成原理(第二版)[M].北京:
高等教育出版社,2008
[4]王冠.VerilogHDL与数字电路设计[M].北京:
机械工业出版社,2005
[5]江国强.EAD技术习题与实验[M].北京:
电子工业出版社,2005
[6]杜建国.VerilogHDL硬件描述语言[M].北京:
国防工业出版社,2004
附录(源代码)
MOVR0,#82H
MOVR1,#04H
MOVR2,#00H
MOVR3,#07H;
数据执行次数
MOVA,R0
MOV9FH,A
MOVA,R1
MOV9EH,A
MOVA,R0;
数据存入
ANDA,#7FH;
去掉符号
MOVR0,A
ANDA,#7FH
MOVR1,A
SUBA,#00H;
断定除数是否为零
JZOVERFLOW
SUBA,R1
LOOP:
JZNEXT
ANDA,#80H
SUBA,#00H
JZS1
SUBA,#80H
JZS2
S1:
;
为正上“1”
RLA
MOVA,R2
ADDA,#01H
MOVR2,A
MOVA,R3
SUBA,#01H
MOVR3,A
JMPLOOP
S2:
为负上“0”
ADDA,R1
NEXT:
根据最后的余数断定上0或上1
JZOUT1
JZOUT2
OUT1:
为正上1
7位表示
JMPF
OUT2:
为负上0
RLA
ADDA,#00H
F:
断定符号为正负
MOVA,9FH
MOVA,9EH
SUBA,R0
JZFF2
JMPFF1
FF1:
异号结果为1
ORA,#80H
OUT
JMPOVER
FF2:
同号结果为0
ORA,#00H
OVER:
OVERFLOW:
END
课程设计总结:
本次课程设计让我收获颇丰,起初拿到课程设计题目,不知道如何去实现设计要求,经过前几天查阅资料,老师帮助,我对这次课程设计要求有了更深的了解,知道了具体应该怎样操作,怎样去实现原码一位除法器,怎样去操作Cop2000实验箱。
我想说本次课程设计不但使我们复习了计算机组成原理课程的内容,还让我们复习并应用了算法设计与分析以及汇编语言课程的内容,我们加深了对计算机系统概念的理解。
。
我衷心感谢学校和老师给我们安排了这次课程设计,我们平时在享受信息时代带来的方便迅捷的同时也养成了懒惰、急于求成的坏习惯,而这次的课程设计不允许我们偷懒,每个人必须下足功夫才能够完成,而在完成的过程中,我们的心态也悄然发生了变化,从开始的些许抵触转变为乐在其中,这难道不值得感谢吗?
我衷心的希望学校学院能给我安排更多的此类实践课程,增强我们的动手实践能力,促进理论知识的消化吸收。
最后感谢几位指导教师的悉心讲解和耐心指导,谢谢您!
指导教师评语:
指导教师(签字):
年月日
课程设计成绩
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- COP 实现 一位 除法