组成原理课程设计Word下载.docx
《组成原理课程设计Word下载.docx》由会员分享,可在线阅读,更多相关《组成原理课程设计Word下载.docx(25页珍藏版)》请在冰豆网上搜索。
5.掌握按照系统建议的微指令流程图,将每条微指令译成二进制代码。
6.熟悉用为过程控制模型机的数据通路。
7.掌握部件单元电路实验的基础上,进一步将其自成系统构造一台基本模型计算机。
8.学习设计与调试计算机的基本步骤及方法。
9.通过单步和连续运行程序,进一步熟悉机器指令与微指令之间的关系,并掌握手动和联机读/写程序的方法。
10.使学生较熟悉的应用电子线路CAD工具完成单片机系统的硬件设计任务:
培养学生分析、解决问题的能力:
提高学生的科技论文写作能力。
第二章移位模型机的设计
2.1.设计原理
在部件实验过程中,各部件单元的控制信号是人为模拟产生的,而本次实验将在微程序控制下自动产生各部件单元控制信号,实现特定指令的功能,这里,计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微程序。
2.1.1主存储器的读写和运行
存储器读操作(KRD):
拨动总清开关CLR后,当控制台开关SWB,SWA置为“00”时,按START微动开关,可对RAM进行连续手动读出。
存储器写操作(KWE):
拨动总清开关CLR后,当控制台开关SWB,SWA置为“01”时,按START微动开关,可对RAM进行连续手动写入。
启动程序:
拨动总清开关CLR后,当控制台开关SWB,SWA置为“11”时,按START微动开关,即可转入到第01号“取指”微指令,启动程序运行。
上述三条控制台指令两个开关SWB,SWA的状态来设置,其定义如下:
SWB
SWA
控制台指令
读内存(KRD)
1
写内存(KWE)
启动程序(RP)
2.1.2指令寄存器介绍
指令寄存器(IR)用来保存当前正在执行的一条指令。
当执行一条指令时,先把它从内存取到指令寄存器中,然后再对其进行译码、执行。
指令划分为操作码喝地址码字段,由二进制数构成,为了执行任何给定的指令,必须对操作码进行测试[P
(1)],通过节拍脉冲T4的控制以便识别所要求的操作。
“指令译码器”(实验板上标有“INSDECODE”的芯片)根据指令中的操作码译码强置微控器单元的微地址,使下一条微指令指向相应的微程序首地址。
2.1.3输入输出设备
本系统有两种外部I/O设备,一种是二进制代码开关,它作为输入设备(INPUTDEVICE);
另一种是数码块,它作为输出设备(OUTPUTDEVICE)。
例如:
输入时,二进制开关数据直接经过三态门送到总线上,只要开关状态不变,输入的信息就不变。
输出时,将输出数据送到数据总线上,当写信息(W/R)有效时,将数据打入输出锁存器,驱动数码块显示。
2.1.4移位运算指令
本实验在基本模型机的基础上搭接移位控制电路,实现移位控制运算。
实验机系统中增加设计4条移位运算指令
(1).左环移RL
(2).带进位左环移RLC
(3).右环移
(4).带进位右环移
直至令格式如下:
助记符操作码
RR01010000
RRC01100000
RL01110000
RLC10000000
说明:
RR是将R0寄存器的内容循环右移一位
RRC是将R0寄存器的内容带进位右移一位,它将R0寄存器最低位移入进位位,同时将进位位移至R0寄存器的最高位
RL是将R0寄存器的数据循环左移一位
RLC是将R0寄存器中的数据带进位循环左移一位
2.1.5指令设计
带移位运算的模型机的设计与实现指令
(1)IN输入“INPUTDEVICE”->
R0,
(2)ADD[0DH]R0+[0DH]->
R0,
(3)RLC带进位左移
(4)IN“INPUTDEVICE”->
(5)RRC带进位右移
(6)RL左环移
(7)STA[0EH]R0->
[0EH]
(8)OUT[0EH][0EH]->
BUS
(9)JMP[00H]00H->
PC
2.1.6带移位运算的模型机监控软件的设计
本模型机监控软件主要完成从输入设备读入数据,进行算术运算、移位运算后,将结果存入内存的某个单元,最后通过输出设备输出结果。
监控软件详细如下:
地址(二进制)内容(二进制)助记符说明
0000000000000000IN;
“输入开关量”->
R0
0000000100010000ADD[0DH];
R0+[0DH]->
0000001000001101
0000001110000000RLC带进位左移
0000010000000000IN;
“输入开关量”->
0000010101100000RRC带进位右移
0000011001110000RL左环移
0000011100100000STA[0EH];
R0->
0000100000001110
0000100100110000OUT[0EH];
[0EH]->
0000101000001110
0000101101000000JMP00H00H->
0000110000000000
0000110101000000;
自定义数据
00001110;
结果存放单元
2.2功能设计
(1).根据实验原理设计数据通路框图,如图2-1所示。
图2-1数据通路框图
(2).根据机器指令画出对应的微程序流程图
本实验的微程序流程图见图2-2和2-3所示。
当拟定“取指”微指令时,该微指令的判别测试字段为P
(1)测试。
由于“取指”微指令是所有微程序都使用的公用微指令,因此P
(1)的测试结果出现多路分支。
本机用指令寄存器的前4位I7-I4作为测试条件,出现5路分支,占用5个固定微地址单元。
(3).根据微程序流程图设计微指令并转换成16进制代码文件
当全部微程序设计完毕后,应将每条微指令代码化,即按微指令格式将微程序流程图转化成二进制微代码表,如表2-4所示,再转化成16进制代码文件。
图2-1微程序流程图
图2-2微程序流程图
(4).微指令格式
微指令共长24位,其控制位顺序如下:
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
S3
S2
S1
S0
M
Cn
WE
B1
B0
A
B
C
6
5
4
3
2
Ua5
Ua4
Ua3
Ua2
Ua1
Ua0
其中UA5-UA0为6位的后续微地址,A、B、C三个译码字段,分别有三组译码控制电路产生各控制信号。
C字段中的P
(1)-P(4)是四个测试字位。
其功能是根据机器指令及相应微代码进行译码,使微程序转入相应的微程序地址入口,从而实现微程序的顺序、分支、循环运行。
I7-I2为指令寄存器的第7-2位输出,SE5-SE1为微控器单元微地址锁存器的强制端输出。
AR为算出运算是否影响进位及判零标志控制为,低电平有效。
B字段中的RSB、RDB、RIB分别为元寄存器选通信号、目的寄存器选通信号及变址寄存器选通信号,其功能是根据机器指令来进行三个工作寄存器R0、R1及R2的宣统译码。
I0-I4为指令寄存器的第0-4位,LDRI为打入工作寄存器信号的译码器使能控制位。
A字段B字段C字段
选择
LDRi
LDDR1
LDDR2
LDIR
LOAD
LDAR
RS-B
RD-B
RI-B
299-B
ALU-B
PC-B
P
(1)
P
(2)
P(3)
P(4)
AR
LDPC
将微程序流程图按微指令格式转化而成的“二进制微代码表”。
表2-4二进制微代码表
微地址
S3S2S1S0MCNWEA9A8
A
B
C
UA5…UA0
00
000000011
000
100
010000
01
110
110
000010
02
000000001
001
001000
03
000100
04
011
000101
05
010
000110
06
011000011
101
000001
07
001101
10
000000000
11
000011
12
000111
13
001110
14
010110
15
000000101
16
001111
17
010101
20
010010
21
010100
22
010111
23
24
011000
25
000001110
26
27
30
000001101
010001
(5).根据微程序流程图设计微程序并转化成十六进制文件格式(文件名C8JHE2),具体内容如下:
机器指令程序微指令程序
$P0110$P0C00$M00088105$M0A8CED05$M151D823
$P020D$P0D40$M0182ED05$M0B8CED05$M161F823
$P0380$M0250C004$M0C8CED05$M1721823
$P0400$M0304E004$M0D8CED05$M1823823
$P0560$M0405B004$M0E8CED05$M1923823
$P0670$M0506A205$M0F8CED05$M1A1BA0
$P0720$M06019A95$M108CED05$M1B010A
$P080E$M070FE004$M118CED05$M1C81D1
$P0930$M088AED05$M128CED05$M1D1E8825
$P0A0E$M098CED05$M138CED05$M1E019805
$P0B40$M098CED05$M148CED05$M1F20882D
(7).确定连线图,根据各部件的功能,确定好电路各个芯片的连接,如下:
2.3移位模型机设计的连线
a.跳线器J1—J12全部拨在右边(自动工作方式)
b.跳线器J16、J18、J23、J24全部拨在左边;
c.跳线器J13-J15、J19、J25全部拨在右边;
d.跳线器J20-J22、J26、J27连上短路片;
e.UJ1连UJ2,JSE1连JSE2,SJ1连SJ2;
f.MBUS连BUS2;
g.REGBUS连BUS5;
h.PCBUS连EXJ3;
i.ALUBUS连EXJ3
j.ALUO1连BUS1;
k.EXJ1连BUS3;
l.ALUO2连BUS4.
(9).仔细查线无误后接通电源。
(10).写程序
方法一:
手动写入。
使用控制台KWE和KRD微程序进行机器指令程序的装入和检查。
:
①使编程开关处于"
RUN”,STEP为“STEP”状态,STOP为“RUN”状态。
②拨动总清开关CLR(0→1),微地址寄存器清零,程序计数器清零,然后控制台SWB,SWA开关置为“01”,按动一次启动开关START,微地址显示灯显示“001001”,再按动一次START,微地址灯显示“001100”,此时数据开关的内容置为要写入的机器指令,按动两次START键后,即完成该条指令的写入。
若仔细阅读KWE的流程,就不难发现,机器指令的首地址总清后为00H,以后每个循环PC自动加1,所以,每次按动START,只有在微地址灯显示“001100”时,才设置内容,直到所有机器指令写完。
③写完程序后须进行校验。
拨动总清开关CLR(0→1)后,微地址清零。
PC程序计数器清零,然后使控制台开关SWB,SWA为“00”,按动启动START,微地址灯将显示“001000"
;
再按START,微地址灯显示为“001010”;
第3次按START,微地址灯显示为“001110”;
再按START后,此时输出单元的数码管显示为该首地址中的内容。
不断按动START,以后每个循环PC会自动加1,可检查后续单元内容。
每次在微地址灯显示为“001000”时,是将当前地址中的机器指令写入到输出设备中显示。
方法二:
联机读/写程序。
使用软件中的F4_LOAD功能装入机器指令格式文件或F2_R/WPR功能逐条写入。
(4)运行程序。
①单步运行程序:
A.使编程开关处于“RUN”状态,STEP为“STEP”状态,STOP为“RUN”状态。
B.拨动总清开关CLR(0→1),微地址清零,程序计数器清,程序首址为00H。
C.单步运行一条微指令,每按动一次START键,即单步运行一条微指令。
对照微程序流程图,观察微地址显示灯是否和流程一致。
D.当运行结束后,可检查存数单元(0EH)中的结果是否和理论值一致
②连续运行程序:
A.使STATEUNIT中的STEP开关置为“EXEC”状态,STOP开关置为“RUN”状态。
B.拨动CLR开关,清微地址及程序计数器,然后按动START,系统连续运行程序,稍后将STOP拨至“STOP”时,系统停机。
C.停机后,可检查存数单元(0EH)结果是否正确。
第三章移位模型机设计分析
3.1监控软件分析
地址(二进制)内容(二进制)助记符
0000000000000000IN;
从输入开关任意输入数据存于R0
0000000100010000ADD[0DH];
另一个加数是内存地址0DH中的内容
0000001000001101;
存放0DH的地址为00000010
0000001110000000RLC;
带进位左移
0000010000000000IN;
0000010101100000RRC;
带进位右移
0000011001110000RL;
左环移
0000011100100000STA[0EH];
将R0中的内容存放在地址为0EH的单元
0000100000001110;
存放0EH的地址为00001000
0000100100110000OUT[0EH];
将0EH中的内容在数码管上显示出来
0000101101000000JMP00H;
程序计数器PC的值跳转到0
0000110000000000
0000110101000000;
3.2微程序分析
M00
088105
M01
82ED05
;
PC—>
AR,PC+1,取指令
M02
50C004
;
RAM->
BUS->
IR,分析指令
M03
04E004
AR,取操作数地址
M04
05B004
DR2,取操作数拨那个存放到DR2寄存器中
M05
06A205
R0->
DR1,将从输入端输入的数据存放到DR1寄存器中
M06019A95
(DR2+DR1)->
R0,DR2和DR1中的内容相加,结果存放在R0
M07
0FE004
AR,获取R0中内容存放在主存中的单元地址
M08
8AED05
空操作
M09
8CED05
IN->
R009表示微程序入口地址
M0A
0EA004
PC->
AR,PC+1(0A是ADD微程序入口地址)
M0B
018005
AR,PC+1(0B是STA微程序入口地址)
M0C
0D2004
AR,PC+1(0C是OUT微程序入口地址)
M0D
098A06
AR,PC+1(0D是JUMP微程序入口地址)
M0E
080A07
AR,PC+1(0E是SUB微程序入口地址);
M0F
018206
R299,带进位左环移
M10
011004
M11
83ED05
M12
87ED05
M13
99ED05
BUS,BUS->
M14
9CED05
LED
M15
1D8235
M16
1F8235
RAM
M17
218235
M18
238235
DR2
M19
1AE004
DR1
M1A
1BA004
(DR2-DR1)->
M1B
010A07
OUT
M1C
81D104
M1D
1E8825
R299->
M1E
019805
左循
M1F
20882D
M20
3.3机器指令分析
1.输入(IN)
①将PC的值给AR,PC的值加1
②RAM的值通过总线(BUS)传给IR。
③将输入端(IN)的内容输入到R0。
(输入初始值0)
2.加法运算(ADD)作用:
让存储器中的值与输入的值相加
③将PC的值给AR,PC的值加1
④将RAM中的数值传给DR2,将R0的值传给DR1
⑤将DR1,DR2的数值传到ALU中相加,得到的结果存入R0中。
3.存数(STA)作用:
保护R0的值
④