组成原理课设乔旻浩.docx
- 文档编号:26609908
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:23
- 大小:708.33KB
组成原理课设乔旻浩.docx
《组成原理课设乔旻浩.docx》由会员分享,可在线阅读,更多相关《组成原理课设乔旻浩.docx(23页珍藏版)》请在冰豆网上搜索。
组成原理课设乔旻浩
目录
第1章课程设计1
1.1设计目的1
1.2设计基本原理1
1.2.1实验模型机CPU结构1
1.2.2机器指令的结构和功能2
第2章微指令设计5
2.1微指令设计流程图5
2.2二进制微代码表设计6
2.2.1控制台指令代码与数据6
2.2.2DEC5和RSA指令代码与数据7
2.2.3机器指令与操作码7
第3章指令的写入8
3.1实验接线图8
3.2写入程序9
3.2.1写入微指令9
3.2.2机器指令的写入与检查9
第4章运行程序11
4.1运行程序11
4.1.1单步运行11
4.1.2连续运行程序11
4.2设计新的指令11
4.3选作指令11
4.4微指令代码12
第5章问题解决方案14
5.1遇到的问题14
5.2解决的方法14
设计总结15
第1章课程设计
1.1设计目的
(1)在掌握部件单元电路实验的基础上,进一步将其组成系统构造一台基本模型计算机。
(2)为其定义五条机器指令,并编写相应的微程序,具体上机调试掌握整机概念。
(3)掌握微程控器的组成原理。
(4)掌握微程序的编写、写入,观察微程序的运行。
(5)通过课程设计,使学生将掌握的计算机组成基本理论应用于实践中,在实际操作中加深对计算机各部件的组成和工作原理的理解,掌握微程序计算机中指令和微指令的编码方法,深入理解机器指令在计算机中的运行过程。
1.2设计基本原理
1.2.1实验模型机CPU结构
运算器单元(ALUUINT)
运算器单元由以下部分构成:
两片74LS181构成了并-串型8位ALU;两个8位寄存器DR1和DR2为暂存工作寄存器,保存参数或中间运算结果。
ALU的S0~S3为运算控制端,Cn为最低进位输入,M为状态控制端。
ALU的输出通过三态门74LS245连到数据总线上,由ALU-B控制该三态门。
寄存器堆单元(REGUNIT)
该部分由3片8位寄存器R0、R1、R2组成,它们用来保存操作数用中间运算结构等。
三个寄存器的输入输出均以连入数据总线,由LDRi和RS-B根据机器指令进行选通。
指令寄存器单元(INSUNIT)
指令寄存器单元中指令寄存器(IR)构成模型机时用它作为指令译码电路的输入,实现程序的跳转,由LDIR控制其选通。
时序电路单元(STATEUNIT)
用于输出连续或单个方波信号,来控制机器的运行。
微控器电路单元(MICRO-CONTROLLERUNIT)
微控器主要用来完成接受机器指令译码器送来的代码,使控制转向相应机器指令对应的首条微代码程序,对该条机器指令的功能进行解释或执行的工作。
由输入的W/R信号控制微代码的输出锁存。
由程序计数器(PC)和地址寄存器(AR)实现程序的取指功能。
逻辑译码单元(LOGUNIT)
用来根据机器指令及相应微代码进行译码使微程序转入相应的微地址入口,从而实现微程序的顺序、分支、循环运行,及工作寄存器R0、R1、R2的选通译码。
主存储器单元(MAINMEM)
用于存储实验中的机器指令。
输入输出单元(INPUT/OUTPUTDEVICE)
输入单元使用八个拨动开关作为输入设备,SW-B控制选通信号。
输出单元将输入数据置入锁存器后由两个数码管显示其值。
该数据结构通路框图如图1-1所示:
图1-1数据通路图
1.2.2机器指令的结构和功能
部件实验过程中,各部件单元的控制信号是人为模拟产生的,而本次课设是在微程控下自动产生各部件单元控制信号,实现特定指令的功能。
这里,计算机数据通路的控制将由微程控器来完成,CPU从存储器中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。
本次课设采用实验四中五条机器指令:
IN(输入)、AND(逻辑与运算)、SUB(二进制减法)、NOR(逻辑或非运算)、JMP(无条件转移)。
为了向RAM中装入程序和数据,检查写入是否正确,并能启动程序执行,还必须设计三个控制台操作微程序。
存储器读操作(KRD):
拨动总清开关CLR后,控制台开关SWB、SWA为“00”时,按START微动开关,可对RAM连续手动读操作。
存储器写操作(KWE):
拨动总清开关CLR后,控制台开关SWB、SWA为“01”时,按START微动开关,可对RAM进行连续手动写入。
启动程序:
拨动总清开关CLR后,控制台开关SWB、SWA置为“11”时,按START微动开关,即可转入到第01号“取址”微指令,启动程序运行。
上述三条控制台指令用两个开关SWB、SWA的状态来设置,其定义如表1-2所示:
表1-2控制台定义格式
SWB
SWA
控制台指令
0
0
1
0
1
1
读存储器(KRD)
写存储器(KWE)
启动程序(RP)
微指令字长共24位,其控制位顺序如表1-3所示。
表1-3控制位顺序
24
23
22
21
20
19
18
17
16
15~13
S3
S2
S1
S0
M
Cn
WE
CE
LDPC
A
12~10
9~7
6
5
4
3
2
1
B
C
uA5
uA4
uA3
uA2
uA1
uA0
其中UA5~UA0为下一条微指令微地址,A、B、C为三个译码字段,分别由三个控制位译码出多种不同控制信息。
A字段B字段C字段
其中UA5-UA0为6位的后续微地址,A、B、C三个译码字段,分别由三个控制位译码出多位。
C字段中的P
(1)-P(4)是四个测试字位。
其功能是根据机器指令及相应微代码进行译码,使微程序转入相应的微地址入口,从而实现微程序的顺序、分支、循环运行。
B字段中的RD-B、R0-B、RI-B、分别为源寄存器选通信号、目的寄存器选通信号及变址寄存器选通信号其功能是根据机器指令来进行三个工作寄存R0、R1、R2的选通译码。
A8、A9为控制选通信号,当A8A9为00时,选通SW-B;为01时,选通CE;为10时,选通LED-B;为11时,表示均未选通。
S0~S3为运算控制控制信号,Cn为进位控制信号,M为状态控制控制信号。
第2章微指令设计
2.1微指令设计流程图
系统涉及到的微程序流程,当拟定“取址”微指令时,该微指令的判别测试字段为P
(1)测试。
由于“取址”微指令是所有微程序都使用的公用微指令,因此P
(1)的测试结果出现多路分支。
本机用指令寄存器的前4位(IR7-IR4)作为测试条件,出现5路分支,占用5个固定微地址单元。
控制台操作为P(4)测试如图2-1所示,它以控制台开关SWB、SWA作为测试条件,出现了3路分支,占用3个固定微地址单元。
当分支微地址单元固定后,剩下的其它地方就可以一条微指令占用一个微地址单元随意填写。
注意:
微程序流程图上的单元地址为8进制。
图2-1控制台操作
我设计的机器指令是DEC5和RSA,具体流程如图2-2所示:
图2-2流程图
2.2二进制微代码表设计
当完成上述全部微程序设计后,对每条微指令进行代码化,即将微程序流程图按微指令格式转化而成的,转化成为如下的“二进制微代码表”。
2.2.1控制台指令代码与数据
控制台指令代码及数据,如表2-1所示。
表2-1控制台指令
微地址
S3
S2
S1
S0
M
CN
WE
CE
LDPC
A
B
C
UA5--UA0
00Q
0
0
0
0
0
0
0
1
1
101
110
100
010000
01Q
0
0
0
0
0
0
0
1
1
110
111
000
000010
02Q
0
0
0
0
0
0
0
0
0
100
000
001
001000
20Q
0
0
0
0
0
0
0
1
1
110
111
000
010010
21Q
0
0
0
0
0
0
0
1
1
110
111
000
010100
22Q
0
0
0
0
0
0
0
0
0
000
000
000
010000
24Q
0
0
0
0
0
0
1
0
0
000
110
000
010001
2.2.2DEC5和RSA指令代码与数据
DEC5指令代码与数据,如表2-2所示。
表2-2DEC5指令代码与数据
微地址
S3
S2
S1
S0
M
CN
WE
CE
LDPC
A
B
C
UA5--UA0
16Q
0
0
0
0
0
0
0
1
1
110
111
000
100010
42Q
0
0
0
0
0
0
0
0
0
011
000
000
100011
43Q
0
0
0
0
0
0
0
1
1
110
111
000
100100
44Q
0
0
0
0
0
0
0
0
0
110
000
000
100101
45Q
0
0
0
0
0
0
0
0
0
010
000
000
100110
RSA指令代码与数据,如表2-3所示。
表2-2DEC5指令代码与数据
微地址
S3
S2
S1
S0
M
CN
WE
CE
LDPC
A
B
C
UA5--UA0
17Q
0
0
0
0
0
0
0
1
0
010
001
000
100111
47Q
0
0
0
0
0
0
0
1
1
110
111
000
101000
50Q
0
0
0
0
0
0
0
0
0
110
000
000
101001
51Q
0
0
0
0
0
0
0
0
0
011
000
000
101010
52Q
0
1
1
0
0
0
0
1
0
001
101
000
101011
53Q
0
0
0
0
0
0
0
1
0
010
001
000
101100
54Q
0
0
0
0
0
0
0
1
0
001
101
000
000001
注:
表2-1、表2-2、表2-3的微地址采用了2位八进制数表示。
2.2.3机器指令与操作码
DEC5和RSA的机器指令与操作码,如表2-4所示。
表2-4机器指令与操作码
地址(二进制)
内容(二进制)
助记符
说明
00001011
01100000
DEC5[4EH]
[4EH]-5->[4EH]
00001100
00000101
00001101
01001110
00001110
01110000
RSA[4FH]
R0-[4FH]+1->R0
00001111
01001111
第3章指令的写入
3.1实验接线图
按照设计的实现线路图,连接实验线路,仔细检查实验线路无误后接通电源。
实验线路图如图3-1所示、微指令线路图如3-2所示。
图3-1实验接线图
图3-2微指令接线图
3.2写入程序
3.2.1写入微指令
将“微程序二进制代码表”中设计好的微指令正确写入E2PROM芯片2816中,校验正确后进行下一步。
微程序二进制代码写入的实验接线图如图3-2所示。
⑴编程
①将编程开关置为PROM(编程)状态。
②将实验板上的“STARTUNIT”中的“STEP”置为“STEP”,“STOP”置为“RUN”状态。
③用二进制模拟开关UA0~UA5置微地址MA0~MA5。
④在MK23~MK0开光上置微地址代码,24位开关对应24位显示灯,开关置为“0”时灯亮,开光置为“1”时灯灭。
⑤启动时序电路(按动启动按钮“START”),即将微代码写入到E2PROM2816的相应地址对应的单元中。
⑥重复①~⑤步骤,将已完成的微地址代码及数据写入到2816中。
⑵校验
①将编辑开关置为READ(校验)状态。
②将实验板的“STEP”开关置为“STEP”状态,“STOP”开关置为“RUN”状态
③用二进制模拟开关UA0~UA5置微地址MA0~MA5。
④按动“START”键,启动时序电路,读出微代码。
观察显示灯MK23~MK0的状态(灯亮为“0”,灭为“1”),检查读出的微代码是否与写入相同。
如果不同,则将开关置为PROM编辑状态,重新执行⑴即可。
3.2.2机器指令的写入与检查
使用如图3-3所示的控制台KWE和KRD微程序进行机器指令程序的装入和检查。
图3-3控制台
⑴使编程开关置为“RUN”,STEP置为“STEP”状态,STOP置为“RUN”状态。
⑵拨动总清开关CLR(1→0→1),微地址寄存器清零。
此时用“DATAUNIT”单元的8位二进制开关给出写入RAM区的首地址,控制台SWB、SWA开关置为“01”,按动一次启动开关START,微地址显示灯显示为“010001”再按动一次START键,微地址灯显示“010100”,此时数据开关的内容置为要写入的机器指令,按动一次START键,即完成该条指令的写入。
机器指令的首地址只要第一次给如即可,PC会自动加1,所以每次按动START,只有在微地址灯显示“010100”时,才设置内容,知道所有机器指令完成。
⑶写完程序后须进行校验。
拨动总清开关CLR(1→0→1)后,微地址清零。
此时用“DATAUNIT”单元的8位二进制开关置要读的RAM区首地址,控制开关SWB、SWA为“00”,按动启动START,微地址灯将显示为“010000”,再按动START,微地址将显示为“010010”,第三次按动START,微地址显示为“010000”,此时总线单元的显示灯显示为该首地址的内容。
不断按动START,可检查后续单元内容。
注意:
每次仅在微地址灯显示为“010000”时,显示灯的内容才是相应地址中那个的机器指令内容。
第4章运行程序
4.1运行程序
4.1.1单步运行
⑴使编程开关处于“RUN”状态,STEP为“STEP”状态,STOP为“RUN”状态。
⑵拨动总清开关CLR(1→0→1),微地址清零。
⑶将“DATAUNIT”的8位数据开关(D7~D0)设置为机器指令首地址。
⑷按动START启动键,单步运行一条微指令,每次按动一次START键,即单步运行一条微指令。
对照微程序流程图,观察微地址显示灯是否和流程一致。
⑸当运行结束后,可检查存数单元中的结果是否和理论值一致。
4.1.2连续运行程序
⑴使“STARTUNIT”中的STEP开关置为“EXEC”状态。
STOP开关置为“RUN”状态。
⑵将“DATAUNIT”的8位二进制开关设置为机器指令程序首地址,然后按动START,系统连续运行程序,稍后将STOP拨至“STOP”时,系统停机。
⑶停机后可检查存数单元结果是否正确。
4.2设计新的指令
在上述设计任务正确完成后,根据前面的设计原理和步骤,为该基本模型设计更多的新机器指令,例如减法指令、逻辑运算指令等。
要求:
设计两条新指令,画出新机器指令的微程序流程图,对照微指令格式转化二进制码,上机调试运行。
4.3选作指令
除了完成每小组必做的4条机器指令(IN、SUB、SEC、DECR、INC),本小组选作了额外的2条机器指令(DEC5、RSA)。
4.4微指令代码
各条微指令代码如表4-1所示。
表4-1微指令代码表
微地址
S3
S2
S1
S0
M
CN
WE
CE
LDPC
A
B
C
UA5--UA0
00Q
0
0
0
0
0
0
0
1
1
101
110
100
010000
20Q
0
0
0
0
0
0
0
1
1
110
111
000
010010
21Q
0
0
0
0
0
0
0
1
1
110
111
000
010100
22Q
0
0
0
0
0
0
0
0
0
000
000
000
010000
23Q
0
0
0
0
0
0
0
1
0
000
000
000
000001
24Q
0
0
0
0
0
0
1
0
0
000
110
000
010001
IN
01Q
0
0
0
0
0
0
0
1
1
110
111
000
000010
02Q
0
0
0
0
0
0
0
0
0
100
000
001
001000
10Q
0
0
0
0
0
0
0
1
0
001
110
000
000001
SUB[4AH]
11Q
0
0
0
0
0
0
0
1
1
110
111
000
000011
03Q
0
0
0
0
0
0
0
0
0
110
000
000
000100
04Q
0
0
0
0
0
0
0
0
0
011
000
000
000101
05Q
0
0
0
0
0
0
0
1
0
010
001
000
000110
06Q
0
1
1
0
0
0
1
0
0
000
101
000
000001
NRA[4BH]
12Q
0
0
0
0
0
0
0
1
0
011
001
000
000111
07Q
0
0
0
0
0
0
0
1
1
110
111
000
010101
25Q
0
0
0
0
0
0
0
0
0
110
000
000
010110
26Q
0
0
0
0
0
0
0
0
0
010
000
000
010111
27Q
0
0
1
0
0
1
1
0
0
000
101
000
000001
INC[4CH],3
13Q
0
0
0
0
0
0
0
1
1
110
111
000
011000
30Q
0
0
0
0
0
0
0
0
0
011
000
000
011001
31Q
0
0
0
0
0
0
0
1
1
110
111
000
011010
32Q
0
0
0
0
0
0
0
0
0
110
000
000
011011
33Q
0
0
0
0
0
0
0
0
0
010
000
000
011100
34Q
1
0
0
1
0
1
1
0
0
000
101
000
000001
SEC[4DH]
14Q
0
0
0
0
0
0
0
1
0
010
001
000
011101
35Q
0
0
0
0
0
0
0
1
1
110
111
000
011110
36Q
0
0
0
0
0
0
0
0
0
110
000
000
011111
37Q
0
0
0
0
0
0
0
0
0
011
000
000
100000
40Q
0
1
1
0
0
1
0
1
0
001
101
000
000001
DECR
15Q
0
0
0
0
0
0
0
1
0
010
001
000
100001
41Q
1
1
1
1
0
1
0
1
0
001
101
000
000001
DEC5[4EH]
16Q
0
0
0
0
0
0
0
1
1
110
111
000
100010
42Q
0
0
0
0
0
0
0
0
0
011
000
000
100011
43Q
0
0
0
0
0
0
0
1
1
110
111
000
100100
44Q
0
0
0
0
0
0
0
0
0
110
000
000
100101
45Q
0
0
0
0
0
0
0
0
0
010
000
000
100110
46Q
0
1
1
0
0
0
1
0
0
000
101
000
000001
RSA[4FH]
17Q
0
0
0
0
0
0
0
1
0
010
001
000
100111
47Q
0
0
0
0
0
0
0
1
1
110
111
000
101000
50Q
0
0
0
0
0
0
0
0
0
110
000
000
101001
51Q
0
0
0
0
0
0
0
0
0
011
000
000
101010
52Q
0
1
1
0
0
0
0
1
0
001
101
000
101011
53Q
0
0
0
0
0
0
0
1
0
010
001
000
101100
54Q
0
0
0
0
0
0
0
1
0
001
101
000
000001
第5章问题解决方案
5.1遇到的问题
当查询RAM中地址的内容时,存放的内容和理论值不一致。
可正常读出机器指令但无法正常写入。
⑶运行程序跳转出现错误。
⑷运算结果与理论值不相符。
5.2解决的方法
⑴将存放错误内容的24位微地址重新写入,再次校验结果正确。
⑵检查连线是否正确,在王老师的指导下,发现AR信号不起作用,将AR信号线用其它信号代替,重新写入机器指令。
⑶检查连线是否正确,经检查后发现LDIR连接线接触不良,更换连接线连接正确后,运行程序。
⑷检查运算错误的微指令代码是否输入有误,经检查没发现错误,再查看是否微指令代码编写错误,经检查发现,算法DR1-1和DR1+1算法选择误将减1当做A-1,两者概念不同,前者是总线上的数据,而后者才是我们所要运算的数据,经改正重新写入后,运行正确。
设计总结
经过短暂的一周微机课程设计后,发现计算机组成原理是一门很有趣的课程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 组成 原理 课设乔旻浩