复杂模型机的设计与实现Word文档下载推荐.docx
《复杂模型机的设计与实现Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《复杂模型机的设计与实现Word文档下载推荐.docx(16页珍藏版)》请在冰点文库上搜索。
模型机规定采用定点补码表示数据,且字长为8位,其格式如下:
其中第7位为符号位,数值表示范围是:
-128≤X≤127(定点整数),-1≤X<
1(定点小数)。
2.指令格式
模型机设计五大类指令共十六条,其中包括算术逻辑指令、I/O指令、访存指令、转移指令和停机指令。
⑴算术逻辑指令
设计9条算术逻辑指令并用单字节表示,寻址方式采用寄存器直接寻址,其格式如下:
其中,OP-CODE为操作码,rs为源寄存器,rd为目的寄存器,并规定:
⑵访存指令和转移指令
模型机设计2条访存指令、即存数指令(STA)、取数指令(LDA);
2条转移指令,即无条件转移指令(JMP)、结果为零或有进位转移指令(BZC),指令格式为:
其中,OP-CODE为操作码,rd为目的寄存器地址(LDA、STA指令使用)。
D为形式地址,如为位移量,正负均可,M为寻址模式,其定义如下:
模型机规定变址寄存器RI指定为寄存器R2。
⑶I/O指令
输入(IN)和输出(OUT)指令采用单字节指令,其格式如下:
其中,addr=01时,选中“INPUTDEVICE”中的开关组作为输入设备,addr=10时,选中“OUTPUTDEVICE”中的LED作为输出设备。
⑷停机指令
HALT指令,用于实现停机操作,指令格式如下:
3.指令系统
模型机有16条基本指令,其中算术逻辑运算指令9条,访问内存指令2条,程序控制指令2条,输入输出指令2条,其它指令2条。
表1列出了各条指令的格式、汇编符号、指令功能。
表1指令格式
4.微指令格式
微指令字长32位,格式如下所示:
A字段
B字段
说明:
DDR1表示LDDR1DDR2表示LDDR2
5.模型计算机数据通路框图
模型计算机数据通路框图如图1所示:
图1模型机数据通路框图
6.微程序设计
按照系统建议的微指令格式和模型计算机数据通路框图,分析指令流程,为每条机器指令编制微程序,并和系统自带的微程序比较(在复位后,输入“3”,按“装载”,可将系统微程序装入)。
编制微程序实现新指令的功能。
四、设计内容
4.1、基本内容
1.试验箱系统图
2.程序流程图
3.分析微指令执行序列
首先通过代码在指令流程图中找到对应项,然后再在系统控存内容找出对应的32位指令程序,然后再根据拟定好的数据格式和指令系统对微指令进行分析。
表1系统控存内容
地址
代码
功能
00
00000080
空操作
01
20006040
PC→AR,PC+1
02
00801006
RAM→IR按B转
03
00800420
RAM→DR1
04
0080C038
RAM→AR按B转
05
008040C0
RAM→AR
06
008004E0
07
C0000810
RI→DR2
08
40294090
DR1+DR2→AR
09
40298438
DR1+DR2→DR1按B转
0A
008004D0
0B
20000810
PC→DR2
0C
A00008B0
RD→DR2
0D
40290280
DR1+DR2→RD?
0E
0F
A0000408
RD→DR1
10
50200488/400F0488
DR1→DR1
11
50300448/40100548
DR1变反→DR1
12
500004C8/
DR1+1→DR1
13
502004B0/400F04B0
14
00000000
15
40000280/50
DR1+1→RD
16
A00008E8
17
403D0280/50
DR1^DR2→RD
18
40300280
DR1变反→RD
19
601400D8
299带进位右移
1A
601800D8
299带进位左移
1B
60000280
299→RD
1C
40200280/00800280
DR1→RD/RAM→RD
1D
A0800180
RD→RAM
1E
40602080/405F2080
DR1→PC
1F
00008072
BZC按条件转
20
200060C0
21
80000280
RS→RD
22
200060A0
PC→AR,PC+1
23
80000430
RS→DR1
24
20006060
25
800008F0
RS→DR2
26
20006050
27
A00004A8
RD+1→RD
28
01000281
SW→RD
29
80000468
2A
A2000080
RD→LED
2B
A0000418
2C
00000034
HALT微地址不变
2D
800C0098
RS→299移位器
2E
401C0280
0→RD
2F
800C0058
30
40140280
4.设计内容
(1)运行几条指令,按照系统的微指令格式和模型计算机数据通路框图分析其流程,写出所分析机器指令的微程序。
(2)增加一条新指令,为其编制微程序。
(3)编制程序,完成连加运算。
5.设计思路
(1)修改微指令:
修改微指令,首先要弄懂其每一位代表什么意思有什么功能,参照74LS181的功能表,我们所修改的是把AND指令修改为异或指令XOR,只需控制74LS181上的M,S0,SI,S2,S3,将算数运算改为相应的逻辑运算,即M17403D0280修改为M17403E0280,只需修改21-17位即可,然后对照及其软件验证其正确性。
(2)连加运算设计:
先输入一个数作为控制连加的次数,然后每次输入一个数作为要加的数,把结果放到内存的某个空间里,实现连加,直到次数达到控制值。
4.2、运行程序
1.单步运行微程序
键入数字键00(PC地址从00H开始),然后每按动一次“单步”命令键,运行一条微指令。
对照微程序流程图,观察微地址显示灯是否和流程一致。
2.单步运行机器程序
键入数字键03H(PC地址),然后每按动一次“宏步”命令键,运行一条机器指令。
对照机器指令程序,观察微地址显示灯是否和流程一致。
3.程序连续运行与暂停程序
键入数字键00H(PC地址)按动“运行”命令键使模型机进入实时运行状态。
在实时运行状态按“宏单”键执行的暂停命令,使模型机进入停机状态,参照机器指令及微程序流程图,将实验现象与理论分析比较。
4.3、运行结果
上图所示,实现功能为输入循环次数R0的数值03H。
上图所示,实现功能为P01B0;
COMR0
上图所示,实现功能为P0270;
INCR0
上图所示,实现功能P0636;
ADCR1,R2
上图所示,实现功能为输出运算结果R2的值,具体如下图所示:
83H
第一次连加运算之后的结果显示:
86H
第二次连加运算之后的结果显示:
89H
第三次连加运算之后的结果显示:
8CH
程序终止运行。
五、程序代码
1.修改微指令
P0084;
INR0
P0185;
inR1
P0294;
YIHUOr0,r1
P0AC0;
HALT
2.连加运算
总结与心得
硬件课程设计历时两周时间,综合了计算机组成原理和接口技术相关的学科知识和技能。
在实验设计期间,小组成员能够团队协作,共同攻克难关。
最终课程设计顺利完成,为大三最后的时刻。
画上了一个圆满的句号。
由于是上学期学过,忘掉不少。
这次实验时候,预先一起复习了一下相关的知识点。
在理论有所了解的基础上,再进行实验的实际操作。
借助软件平台和已经连接好电路的试验箱,首先验证了实验所附带的第三个程序代码的显示结果。
在此基础上,进行修改微指令的任务。
但在设计连加运算时候,碰到了阻碍。
对汇编语言的陌生,也是一个不小的阻扰。
分工合作,两人研究汇编语言修改指令代码,一人设计总体程序架构。
后来又请教老师同学,参观或“偷师”别人的经验。
最终能够成功实现连加运算的结果输出。
通过这次课程设计,即是对旧知识的回顾和复习,又是一种对新知识的自主学习和探索。
课程设计的目的并不在于上交一份报告,而是对这种学习能力和解决问题能力的培养。
课程设计也是对理论知识的进一步消化和吸收,因为只有实践才是检验知识的唯一道路。
感谢这次参与课程设计的小组成员们,一个好的团队是成功的保证。
还有帮助我们共同进步的老师和同学们,他们在理论和实际操作的经验使我们少走了曲径,一并致谢。
这是一次很成功的课程设计。