计算机组织与体系结构课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
东莞理工学院本科课程设计
课程设计题目:具有访存及循环移位运算功能的
复杂模型机的设计
学生姓名:许悦
学号:200841402113
系别:计算机学院
专业班级:计算机科学与技术1班
指导教师姓名:张丽娟
一、课程设计要求及目的
要求:
1.综合运用所学计算机原理知识,设计并实现较为完整的计算机。
2.掌握计算机整机概念。
深入理解基本模型计算机的功能、组成方法;
深入学习计算机各类典型指令的执行流程。
3.在理解组织计算机体系结构基础上,能根据给定的程序功能,学会编写机器指令代码,掌握微程序的设计方法,理解微程序流程图及确定
微地址,将微代码写入控制存储器。
4.通过熟悉较完整的计算机的设计,全面了解并掌握微程序控制方式计算机的设计方法。
目的:具有访存及循环移位运算功能的复杂模型机的设计
机器指令程序如下:
IN 01,R0 ;(R0)=02H
LDA 00,20,R1 ;将[20H]存储单元的数据03H送R1
ADC R0,R1 ;(R1)=05H
RRC R1,R2 ;(R1)=05H,(R2)=02H,CY=1
OUT 10,R1 ;05H
OUT 10,R2 ;02H
HLT
二、机器指令设计文档
编写机器指令助记符
$P0044 IN 01,R0
$P0101 LDA 00,20,R1
$P0220
$P0391 ADC R0,R1
$P04E6 RRC R1,R2
$P0559 OUT 10,R1
$P065A OUT 10,R2
$P0760 HLT
$P2003
三、指令系统格式及微程序格式
本模型机共有 16 条基本指令,其中算术逻辑指令7条,访问内存指令和程序控制指令4条,输入输出指令2条,其它指令 1 条。
表 7.2-1 列出了各条指令的格式、汇编符号、指令格式、助记符号和功能。
(1) 算术逻辑指令
设计9条算术逻辑指令并用单字节表示,寻址方式采用寄
存器直接寻址,其格式如右:其中,OP-CODE 为操作码,rs 为
源寄存器,rd 为目的寄存器,并规定:9 条算术逻辑指令的名
称、功能和具体格式见表 7.2-1。
(2) 访问指令及转移指令
模型机设计 2 条访内指令,即存数(STA)、取数(LDA),2 条转移指令,即无条件转移(JMP)、结果为零或有进位转移指令(BZC),指令格式为:
其中,OP-CODE 为操作码,rd 为目的寄存器地址(LDA、STA 指令使用)。
D 为位移量(正负均可),M 为寻址模式,其定义如下:
本模型机规定变址寄存器 RI 指定为寄存器 R2。
(3) I/O 指令
输入(IN)和输出(OUT)指令采用单字节指令,其格式如下:
其中,addr=01 时,选中“INPUT DEVICE”中的开关组作为输入设备,addr=10 时,选中“OUTPUT DEVICE”中的数码块作为输出设备。
(4) 停机指令
指令格式如下:
HALT 指令,用于实现停机操作。
本模型机的数据通路框图如图 7.2-1。
根据机器指令系统要求,设计微程序流程图及确定微地址,如图 7.2-2。
微指令的前六位S3S2S1S0MCnWE根据表2.5-2 74LS181逻辑功能表写出:
微指令格式
微指令字长共24位,其控制位顺序如表4.4-1所示。
四、设计微程序流程图及确定微地址
微代码设计文档
(1)编写控制台启动程序微指令,程序流程图
这条微指令的地址为00(八进制),即00H。
下一条微指令的地址为10(八进制),所以微指令的低六位(6-1)为001 000。
由数据通路可知完成此操作为空,没有用到运算器所以高六位(24-19)为000000。
也没有用到W/R控制信号故WE A9 A8(18-16)为0 1 1。
A字段、B字段的控制信号也没用到故A B(15-10)为000 000。
用到P(4)控制信号故C字段(9-7)为100。
综上所述24位微指令二进制代码为:
0000000 1 1000 000100 001000
故本条微指令为:$M00018108
(2)编写IN 02,R0微指令
a)IN的第一条微指令为
这条微指令的地址为01(八进制),即为01H。
下一条微指令的地址为02(八进制),所以微指令的低六位(6-1)为000 010
由数据通路可知完成此操作没有用到运算器所以高六位(24-19)为000000。
存储器RAM处于打开状态,即W/R为0、CE=0,故第18位WE=W/R=0;Y0=SW-B=0,Y1=CE=0, Y2=LED-B=0,即第17、16位的A9 A8为1 1。
AR的控制信号LDAR=1,故A字段为110;PC-B=1,故B字段为110;PC的控制信号LDPC=1,故C字段为110。
综上所述24位微指令二进制代码为:
0000000 1 1110 110110 000010 故本条微指令为:$M0101ED82
b)IN的第二条微指令为
这条微指令的地址是02(八进制)即02H。
下一条微指令的地址是20(八进制)所以微指令的低六位(6-1)为010 000。
由数据通路可知完成此操作没有用到运算器所以高六位(24-19)为000 000。
存储器RAM处于读状态,即W/R为0、CE=1,故18位WE=W/R=0;Y1=CE=1,故
17-16位的A9 A8为0 1。
IR的控制信号LDIR=1,故A字段为100;B字段控制信号全为零,故B字段为
000;P(1)控制信号为1,故C字段为001 。
综上所述24位微指令二进制代码为:
0000000 0 1100 000001 010000 故本条微指令为:$M0200C050
c)IN的第三条微指令为
这条微指令的地址是24(八进制)即14H。
下一条微指令的地址是01(八进制)所以微指令的低六位(6-1)为000 001。
由数据通路可知完成此操作没有用到运算器所以高六位(24-19)为000 000。
存储器RAM处于不工作状态,故W/R为0,故18位WE=W/R=0;Y0=SW-B=1,故
17-16位的A9 A8为0 0。
R0的控制信号LDDR1=1,故A字段为010;其余控制信号全为零,故B字段为
000, C字段为000 。
综上所述24位微指令二进制代码为:
0000000 0 0001 000000 000001 故本条微指令为:$M14001001
(3)编写LDA 00,20,R1微指令
a)LDA的第一条微指令为
这条微指令的地址是20(八进制)即10H。
下一条微指令的地址是03(八进制)所以微指令的低六位(6-1)为000 011
由数据通路可知完成此操作没有用到运算器所以高六位(24-19)为000 000。
存储器RAM处于打开状态,即W/R为0、CE=0,故第18位WE=W/R=0;Y0=SW-B=0,Y1=CE=0, Y2=LED-B=0,即第17、16位的A9 A8为1 1。
AR的控制信号LDAR=1,故A字段为110;PC-B=1,故B字段为110;PC的控制信号LDPC=1,故C字段为110。
综上所述24位微指令二进制代码为:
0000000 1 1110 110110 000011 故本条微指令为:$M1001ED83
b)LDA的第二条微指令为
这条微指令的地址是03(八进制)即03H。
下一条微指令的地址是04(八进制)所以微指令的低六位(6-1)为000 100。
由数据通路可知完成此操作没有用到运算器所以高六位(24-19)为000 000。
存储器RAM处于读状态,故W/R为0、CE=1,故18位WE=W/R=0;Y1=CE=1,故
17-16的A9 A8为0 1。
DR1的控制信号LDDR1=1,故A字段为010,其余控制信号为零,故B字段为
000,C字段为000 。
综上所述24位微指令二进制代码为:
0000000 0 1010 000000 000100 故本条微指令为:$M0300A004
c)LDA的第三条微指令为
这条微指令的地址是04(八进制)即04H。
下一条微指令的地址是40(八进制)所以微指令的低六位(6-1)为100 000。
由数据通路可知完成此操作没有用到运算器所以高六位(24-19)为000 000。
存储器RAM处于读状态,即W/R为0、CE=1;故18位WE=W/R=0;Y1=CE=1,故
17-16位的A9 A8为0 1。
AR的控制信号LDAR=1,选择信号P(2)=1,其余控制信号全为零。
故A字段为
110,B字段为000,C字段为010。
综上所述24位微指令二进制代码为:
0000000 0 1110 000010 100000 故本条微指令为:$M0400E0A0
d)LDA的第四条微指令为
这条微指令的地址是40(八进制)即20H。
下一条微指令的地址是01(八进制)所以微指令的低六位(6-1)为000 001。
由数据通路可知完成此操作没有用到运算器所以高六位(24-19)为000 000。
存储器RAM处于读状态,故W/R为0、CE=1,故18位WE=W/R=0;Y1=CE=1,故
17-16位的A9 A8为1 1。
Rd的控制信号LDRi=1,其余控制信号为0 ;故A字段为001,B字段为000,C
字段为000 。
综上所述24位微指令二进制代码为:
0000000 0 1001 000000 000001 故本条微指令为:$M20009001
(4)编写ADC R0,R1微指令
a)ADC的第一条微指令为
这条微指令的地址是31(八进制)即19H。
下一条微指令的地址是52(八进制)所以微指令的低六位(6-1)为101 010。
由数据通路可知完成此操作没有用到运算器所以高六位(24-19)为000 000。
没有用到存储器RAM,故W/R为0、CE=0,故18位WE=W/R=0;Y3=1,故17-16
位的A9 A8为1 1。
DR1的控制信号LDDR1=1,Rs的控制信号RS-B=1,其余控制信号为0;故A字
段为010,B字段为001,C字段为000。
综上所述24位微指令二进制代码为:
0000000 1 1010 001000 101010 故本条微指令为:$M1901A22A
b)ADC的第二条微指令为
这条微指令的地址是52(八进制)即2AH。
下一条微指令的地址是53(八进制)所以微指令的低六位(6-1)为101 011。
由数据通路可知完成此操作没有用到运算器所以高六位(24-19)为000 000。
没有用到存储器RAM,故W/R为0、CE=0,故18位WE=W/R=0;Y3=1,故17-16
位的A9 A8为1 1。
DR2的控制信号LDDR2=1,Rd的控制信号RD-B=1,其余控制信号为0;故A字
段为011,B字段为010,C字段为000。
综上所述24位微指令二进制代码为:
0000000 1 1011 010000 101011 故本条微指令为:$M2A01B42B
c)ADC的第三条微指令为
这条微指令的地址是53(八进制)即2BH。
下一条微指令的地址是01(八进制)所以微指令的低六位(6-1)为000 001。
由数据通路可知完成此操作加法运算器的控制信号S3=1、S0=1、Cn=1,其余为
0;所以高六位(24-19)为100 101。
没有用到存储器RAM,故W/R为0、CE=0,故18位WE=W/R=0;Y3=1,故17-16
位的A9 A8为1 1。
Rd的控制信号LDRi=1,ALU的控制信号ALU-B=1,AR的控制信号ALU-B=1;故
A字段为001,B字段为101,C字段为101。
综上所述24位微指令二进制代码为:
1001010 1 1001 101101 000001 故本条微指令为:$M2B959B41
微程序
$M00018108
$M0101ED82
$M0200C050
$M0300A004
$M0400E0A0
$M0801ED8A
$M0901ED8C
$M0A00A03B
$M0B018001
$M0C00203C
$M1001ED83
$M14001001
$M15030401
$M16018016
$M1901A22A
$M1E318237
$M20009001
$M2A01B42B
$M2B959B41
$M37298838
五、画接线图
六、调试步骤和结论
(1)课程设计调试步骤:
a)按上图连接好电路。
b)联机读写程序,选择联机软件【转储】→【装载】功能菜单调入以前的实验程序检
查接线是否正确。
c)正确无误后装载本小组的程序,联机运行程序时,进入软件界面,装载机器指令及
微指令后,选择【运行】→【通路图】→【复杂模型机】功能菜单打开数据通路图,
按相应步骤联机运行、监控、调试程序。
拨动总清开关CLR清零后,使程序的首地
址以及微程序地址为00H,程序可从头开始运行。
d)仔细观察数据通路写出机器指令和微指令的执行过程。
e)分析机器指令程序,仔细观察数码管并写出输出结果。
(2)仔细观察数据通路写出机器指令和微指令的执行过程:
(3)数码管的显示输出结果:R1输出的是12,R2输出的是09,CY=0。
七、心得体会
通过这次的课程设计我受益匪浅,虽然各个部件之前都有操作,对微指令和微程序的编写也略懂,但还没到完全熟悉的程度。
这次的课程设计是把各个部件通过理论和实践相结合设计出一个复杂模型机。
在连接路线时虽然看起来挺简单,连好线后并没有立即通过调试,而又花了很多时间去找出错误,最后我们还是没找出来,只能请教张老师,原因是我们装载完程序后又重装载了一次调试的程序,机器把这两个程序混淆,故我们并没有立即得出正确的结果。
接下来就是编写机器指令和微程序,我们回宿舍编写了各自的机器指令和微程序,到调试后才发现对数据通路图的控制信号并不熟悉,导致出现了很多错误。
我选择了把测试的程序从头到尾一步一步地运行,过程中仔细观察通路图的控制信号及微指令的写法。
通过一个上午我才慢慢对控制信号有了更进一步的熟悉和了解。
再次回去宿舍编写微指令的时候就没出现什么错误了。
通过这次的课程设计,我对计算机硬件有了更进一步的了解,平常使用的计算机都局限于软件方面的应用,很少接触硬件,故对硬件的了解几乎是一片空白。
我和同组的同学做出了一个带有简单功能的复杂模型机令我有一种很大的成功感,我会把我所学到的知识应用到日后的学习中,为日后的学习打下坚实的基础。