复杂模型机设计实验
专业:软件工程
班级:1000505
组员:
组员:
一、实验目的
综合运用所学计算机组成原理知识,设计并实现较为完整的计算机。
二、实验设备
PC机一台,TD-CMA实验系统一套。   
三、实验原理
下面讲述一下模型计算机的数据格式及指令系统。
1.数据格式
模型机规定采用定点补码表示法表示数据,字长为8位,8位全用来表示数据(最高位不表示符号),数值表示范围是: 0≤X≤28-1。
2.指令设计
模型机设计三大类指令共十五条,其中包括运算类指令、控制转移类指令,数据传送类指令。运算类指令包含三种运算,算术运算、逻辑运算和移位运算,设计有6条运算类指令,分别为:ADD、AND、INC、SUB、OR、RR,所有运算类指令都为单字节,寻址方式采用寄存器直接寻址。控制转移类指令有三条HLT、JMP、BZC,用以控制程序的分支和转移,其中HLT为单字节指令,JMP和BZC为双字节指令。数据传送类指令有IN、OUT、MOV、LDI、LAD、STA共6条,用以完成寄存器和寄存器、寄存器和I/O、寄存器和存储器之间的数据交换,除MOV指令为单字节指令外,其余均为双字节指令。
3.指令格式
所有单字节指令(ADD、AND、INC、SUB、OR、RR、HLT和MOV)格式如下:
7654
32
10
OP-CODE
RS
RD
其中,OP-CODE为操作码,RS为源寄存器,RD为目的寄存器,并规定:
RS或RD
选定的寄存器
00
01
10
11
R0
R1
R2
R3
IN和OUT的指令格式为:
7654(1)
32(1)
10(1)
7—0(2)
OP-CODE
RS
RD
P
其中括号中的1表示指令的第一字节,2表示指令的第二字节,OP-CODE为操作码,RS为源寄存器,RD为目的寄存器,P为I/O端口号,占用一个字节。
系统设计五种数据寻址方式,即立即、直接、间接、变址和相对寻址,LDI指令为立即寻址,LAD、STA、JMP和BZC指令均具备直接、间接、变址和相对寻址能力。
LDI的指令格式如下,第一字节同前一样,第二字节为立即数。
7654(1)
32(1)
10(1)
7—0(2)
OP-CODE
RS
RD
data
LAD、STA、JMP和BZC指令格式如下。
7654(1)
32(1)
10(1)
7—0(2)
OP-CODE
M
RD
D
其中M为寻址模式,具体见表5-3-2,以R2做为变址寄存器RI。
表5-3-2  寻址方式
寻址模式M
有效地址E
说 明
00
01
10
11
E = D
E =(D)
E =(RI)+ D
E =(PC)+ D
直接寻址
间接寻址
RI变址寻址
相对寻址
4.指令系统
根据模型机所要完成的功能设计自己的指令系统。列出了各条指令的格式、汇编符号、指令功能。
四、总体设计
本模型机的数据通路框图如图5-3-2所示。
二进制转换十六进制算法
图5-3-2  数据通路框图
和前面的实验相比,复杂模型机实验指令多,寻址方式多,只用一种测试已不能满足设计要求,为此指令译码电路需要重新设计。如图5-3-3所示在IR单元的INS_DEC中实现。
5-3-3  指令译码原理图
本实验中要用到四个通用寄存器R3…R0,而对寄存器的选择是通过指令的低四位,为此还得设计一个寄存器译码电路,在IR单元的REG_DEC(GAL16V8)中实现,如图5-3-4所示。
图5-3-4  寄存器译码原理图
根据机器指令系统要求,设计微程序流程图及确定微地址,如图5-3-5所示。
按照系统建议的微指令格式,见表5-3-4,参照微指令流程图,将每条微指令代码化,译成二进制代码表,见表5-3-5,并将二进制代码表转换为联机操作时的十六进制格式文件。
表5-3-4  微指令格式
五、实验步骤
1. 按图5-3-6连接实验线路,仔细检查接线后打开实验箱电源。
2. 写入实验程序,本设计采用联机写入方式。
联机软件提供了微程序和机器程序下载功能,以代替手动读写微程序和机器程序,但是微程序和机器程序得以指定的格式写入到以TXT为后缀的文件中。
选择联机软件的“【转储】—【装载】”功能,在打开文件对话框中选择上面所保存的文件,软件自动将机器程序和微程序写入指定单元。
选择联机软件的“【转储】—【刷新指令区】”可以读出下位机所有的机器指令和微指令,并在指令区显示,对照文件检查微程序和机器程序是否正确,如果不正确,则说明写入操作失败,应重新写入,可以通过联机软件单独修改某个单元的指令,以修改微指令为例,先用鼠标左键单击指令区的‘微存’TAB按钮,然后再单击需修改单元的数据,此时该单元变为编辑框,输入6位数据并回车,编辑框消失,并以红显示写入的数据。
3. 运行程序 ,本次课程设计采用联机运行
进入软件界面,选择菜单命令“【实验】—【复杂模型机】”,打复杂模型机实验数据通路图,选择相应的功能命令,即可联机运行、监控、调试程序。
按动CON单元的总清按钮CLR,然后通过软件运行程序,当模型机执行完OUT指令后,检查
OUT单元显示的数是否正确。在数据通路图和微程序流中观测指令的执行过程,并观测软件中地址总线、数据总线以及微指令显示和下位机是否一致。
六、操作码设定
OP
CODE
微地址
IN
0000
30
OUT
0001
31
ADD
0010
32
AND
0011
33
RCL
0100
34
MOV
0101
35
XLAT
0110
36
NEG
0111
37
XCHG
1000
38
SUB
1001
39
七、实验程序
1.机器程序
$P 00 01
  $P 01 00
  $P 02 56
  $P 03 68
  $P 04 01
  $P 05 21
  $P 06 14
  $P 07 40
  $P 08 4A
  $P 09 9C
  $P 0A 70
  $P 0B 84
  $P 0C 01
  $P 0D 99
  $P 0E BF
  $P 0F F3
  $P 10 7D
  $P 11 30
  $P 12 36
  $P 13 80
  $P 14 18
  $P 15 FF
  $P 16 7B