组成原理课程设计(复杂模型机设计实验)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

复杂模型机设计实验
一、实验目的
综合运用所学计算机原理知识,设计并实现较为完整的计算机。

二、实验设备
TDN-CM+计算机组成原理教学实验系统。

三、数据格式及指令系统
1.数据格式
模型机规定采用定点补码表示法表示数据,且字长为8位,其格式如下:
2.指令格式
模型机设计四大类指令共十六条,其中包括算术逻辑指令、I/O指令、访问及转移指令和停机指令。

1)算术逻辑指令
设计7条算术逻辑指令并用单字节表示,寻址方式采用寄存器直接寻址,其格式如下:
其中,OP-CODE为操作码,rs为源寄存器,rd为目的寄存器,并规定:
7条算术逻辑指令的名称、功能和具体格式见表
2)访存指令及转移指令
模型机设计2条访存指令――存数(STA)和取数(LDA),2条转移指令――无条件转移(JMP)和结果为零或有进位转移指令(BZC),这4条指令长度为2个字节,其指令格式为:
其中,OP-CODE为操作码,rd为目的寄存器地址(LDA、STA指令使用)。

D为偏移量(正负均可),M为寻址模式,其定义如下:
本模型机规定变址寄存器RI指定为寄存器R2。

3)I/O指令
输入(IN)和输出(OUT)指令采用单字节指令,其格式如下:
其中,addr=01时,选中“INPUT DEVICE”中的开关组作为输入设备,addr=10时,选中“OUTPUT DEVICE”中的数码块作为输出设备。

4)停机指令
指令格式如下:
HALT指令用于实现停机操作。

3.指令系统
本模型机共有16条基本指令,其中算术逻辑指令7条,访存指令和程序控制指令4条,输入输出指令2条,其它指令1条,表列出了各条指令的格式、汇编符号、指令功能。

表1
四、总体设计
本模型机的数据通路框图如图所示。

图1:数据通路图
根据机器指令系统的要求,设计微程序流程图及确定微地址如下:
图2:微程序流程图
根据流程图,确定如下微程序:
微程序:
$M00018108 $M2205DB81 $M0101ED82 $M230180E4 $M0200C050 $M24018001 $M0300A004 $M2595AAA0 $M0400E0A0 $M2600A027 $M0500E006 $M2701BC28 $M0600A007 $M2895EA29 $M0700E0A0 $M2995AAA0 $M0801ED8A $M2A01B42B $M0901ED8C $M2B959B41 $M0A00A03B $M2C01A42D $M0B018001 $M2D65AB6E $M0C00203C $M2E0D9A01 $M0D00A00E $M2F01AA30 $M0E01B60F $M300D8171 $M0F95EA25 $M31959B41 $M1001ED83 $M32019A01 $M1101ED85 $M3301B435 $M1201ED8D $M3405DB81 $M1301EDA6 $M35B99B41 $M14001001 $M360D9A01 $M15030401 $M37298838 $M16018016 $M38019801 $M173D9A01 $M3919883A
$M18019201 $M3A019801
$M1901A22A $M3B070A08
$M1A01B22C $M3C068A09
$M1B01A232
$M1C01A233
$M1D01A236
$M1E318237
$M1F318239
$M20009001
$M21028401
验证程序:
助记符机器码
IN 01, R0 $P0044
IN 01, R2 $P0146
SBC R2,R0 $P02A8
MOV R0, R1 $P0381
RLC R1, R1 $P04F5
OUT R1,R1 $P0559
HALT $P0660
指令功能:
在实验板的数据开关手动输入一个数存到R0寄存器里,在输入另一个数到R2寄存器里,然后用R2-R0存到R0寄存器里,接着把R0里的数转存到R1寄存器,然后再把R1的数左移一位存到R1,接着在数码管显示输出当前R1寄存器里的数,最后停止。

五、实验步骤
1.按图连接实验线路
2.写入程序
1)手动写入
A.按如下步骤讲微代码写入微控器中的存储器2816中:
①将编程开关置为PROM(编程)状态。

②将实验板上“STATE UNIT”中的“STEP”置为“STEP”,“STOP”
置为“RUN”状态。

③用二进制模拟开关置微地址MA5—MA0。

④在MK24-MK1开关上置微代码,24位开关对应24位显示灯,
开关量置为“0”时灯亮,开关量为“1”时灯灭。

⑤启动时序电路(按动启动按钮“START”),即将微代码写入到2816
的相应地址对应的单元中。

⑥重复①-⑤步骤,将所有的微代码写入2816中。

B.按如下步骤校验微代码
①将编程开关置为READ(校验)状态。

②将实验板上“STATE UNIT”中的“STEP”置为“STEP”,“STOP”
置为“RUN”状态。

③用二进制模拟开关置微地址MA5—MA0。

④启动时序电路(按动启动按钮“START”),读出微代码。

观察显
示灯MD24-MD1的状态(灯亮为“0”,灭为“1”),检查读出的微代码是否与写入的相同。

如果不同,则将开关置于PROM编程状态,重新执行③)即可。

C.按如下步骤使用KWE微程序进行机器指令程序的装入。

①使编程开关处于“RUN”,STEP为“STEP”状态,STOP为“RUN”
状态。

②拨动总清开关CLR(0→1→0),微地址寄存器清零,程序计数器清
零,然后使控制台SWB、SWA开关置为“0 1”,并按动一次START,微地址显示灯显示“010001”。

③再按动一次START,微地址灯显示“010100”,此时数据开关的内
容置为要写入的机器指令。

再按动两次START键后,即完成该条指令的写入,并且微地址显示灯显示“010001”。

(注:由KWE的流程图可知,该流程每执行一次,将向PC寄存器所指向的存储器单元中写入一个字节的数据,并且将PC加1。


④如果还需要向存储器中输入数据,则需重复重新执行③。

D.按如下步骤使用KRD微程序进行机器指令程序的检查。

①使编程开关处于“RUN”,STEP为“STEP”状态,STOP为“RUN”
状态。

②拨动总清开关CLR(0→1→0),微地址寄存器清零,程序计数器清
零,然后使控制台SWB、SWA开关置为“0 0”,并按动一次启
动开关START,微地址显示灯显示“010000”。

③再按动一次START,微地址灯显示“010010”,第三次按动STRAT,
微地址灯显示为“010111”,再按动STRAT后此时输出单元的数
码管显示为PC寄存器所指单元的内容。

(注:由KRD的流程图可
知,该流程每执行一次,将显示PC寄存器所指向的存储器单元中
一个字节的数据,并且将PC加1。


④如果还需要检查存储器中其他单元的数据,则需重复重新执行③。

2)联机读/写程序
将微代码写入文本文件中,通过联机软件载入实验系统。

3.运行程序
1)本机运行
A.单步运行程序
①使编程开关处于“RUN”状态,STEP为“STEP”状态,STOP为
“RUN”状态。

②拨动总清开关CLR(0→1→0),微地址寄存器清零,程序计数器清
零。

③单步运行一条微指令,每按动一次START键,即单步运行一条微
指令。

对照微程序流程图,观察微地址显示灯是否与流程一致。

④当运行结束后,可检查存数单元(0BH)中的结果是否和理论计算
结果一致。

B.连续运行程序
①使编程开关处于“RUN”状态,STEP为“EXEC”状态,STOP为
“RUN”状态。

②拨动总清开关CLR(0→1→0),微地址寄存器清零,程序计数器清
零。

③按动START键,系统将连续运行程序,直至将STOP拨至“STOP”
状态。

④当运行结束后,可检查存数单元(0BH)中的结果是否和理论计算
结果一致。

2)联机运行
联机运行程序时,进入软件界面,装载机器指令及微指令后,运行即可。

图3:实验连接图
六、实验总结:
这次课程设计中,基于前几次实验中,对计算机的大致组成以及运行原理有了初步的了解,并且对实验板也比较熟悉了,所以按照实验连接图连线也比较上手了,经过那么多次实验,觉得
连线最重要的就是认真,如果一开小差就会出错,每连完一条线之后,都要检查一遍,看是否连错,这告诉我们,做每一件事都要认认真真的完成,容不得一丝马虎,否则只会落得个事倍功半的效果。

这次课程设计最重要的就是编写程序了,要想编写程序首次要对程序了解,知道每个助记符对应的机器码是什么意思,对应的二进制的每四位代表什么。

在对程序理解的过程中,刚开始不知道程序的十六进制是如何通过助记符转换过来的,经过对指令格式的剖析才知道没个助记符对应的二进制,然后对刚编好的程序进行运行,通过观察CPU一般都是先取机器指令,然后编译,送往寄存器,然后再去指令,再编译,一直这样下去,直到停止为止,此次课程设计最大的收获就是,通过观察大致了解了CPU 的运行方式,并且都指令也有了较大的了解,还懂得了合作和请教才是完成任务的最佳方法。

相关文档
最新文档