计算机组成原理课程设计16位机微程序控制器指令系统的设计与实现Word文件下载.docx
《计算机组成原理课程设计16位机微程序控制器指令系统的设计与实现Word文件下载.docx》由会员分享,可在线阅读,更多相关《计算机组成原理课程设计16位机微程序控制器指令系统的设计与实现Word文件下载.docx(13页珍藏版)》请在冰豆网上搜索。
每组四名同学,任务分配为:
朱冠兰负责仿照教学计算机组合逻辑控制器,设计微程序控制器中基本指令的功能、格式和执行流程,画出29条基本指令的执行流程框图和微程序编码表。
冯云龙负责设计扩展指令的功能、格式和执行流程,设计微指令各字段的具体编码值,包括控制码的各字段、下址字段、形成下址用到的条件码,画出扩展指令的执行流程框图和微程序编码表。
胡学智负责确定微码各字段与控制存储器各个芯片之间的关系,列表写出各控制存储器芯片中存储单元的内容,将设计好的微码装入控制存储器。
王硕负责编写若干个测试程序,包含所有的基本指令和扩展指令,通过运行这些程序可以检查所有指令设计是否正确。
最后,所有组员共同参与测试,通过运行测试程序,判断指令设计是否正确。
(二)学生应交材料
1、课程设计报告,每组交一份。
2、一块自定义指令系统的微程序控制器板。
3、课程设计日记,每人交一份。
(三)课程设计报告内容
1、题目名称;
2、题目内容;
3、基本指令和扩展指令的执行流程框图;
4、基本指令和扩展指令的微程序编码表;
5、八个控制存储器芯片中各存储单元的内容列表;
6、测试程序;
7、自评(从实现的功能上评价);
8、遇到的问题及解决方案;
9、总结(主要从综合应用知识、分析问题、解决问题方面总结)。
六、进度安排
第1周周一上午课程设计动员
周二~周五
(1)熟悉汇编、TEC—2000机开发环境
(2)基本指令设计
(3)扩展指令设计
(4)编写调试程序。
第2周周一~周五微指令写入芯片,运行测试程序,调试指令。
第3周周一~周三编写课程设计报告。
周四、周五验收和答辩总结。
七、课程设计环境
1、硬件环境:
PC机一台、TEC—2000实验机一台、微程序控制器实验板一块。
2、软件环境:
(1)Win2000、DOS
(2)TEC—2000仿真终端程序PCEC
(3)TEC—2000监控程序。
八、软件设计方案
1.将设计好的微码写入控制存储器。
一次只对一片28C64控制存储器芯片进行读写,该芯片可插在扩展芯片的高位或低位,若插在高位,输入时信号编码为高八位,低八位补零;
若插在低位,输入时信号编码为低八位,高位补零。
若一次扩展两片28C64控制器芯片,要注意信号要与产生该信号的芯片相对。
将扩展新片的内存单元地址置为4000~5FFF,将MAPROM插入扩展芯片的位置,微程序入口地址对应的内存单元的地址为芯片的起始地址和该指令的编码值之和。
具体操作如下:
E4000
400000FF:
0400FF:
0500FF:
0600FF:
0900FF:
08
00FF:
0A00FF:
0700FF:
0B00FF:
0D00FF:
0C
0E00FF:
0F
E4020
402000FF:
50
E4041
404100FF:
11
E4044
404400FF:
1000FF:
10
E4080
408000FF:
1E00FF:
1B00FF:
1200FF:
1900FF:
15
00FF:
1500FF:
1700FF:
1D
E408C
408C00FF:
23
E40CE
40CE00FF:
1F
将MPROM1~MPROM7依次插入扩展芯片的位置对其编程,内存单元的地址为芯片的起始地址和该指令操作功能所对应的微址之和,操作如下:
MPROM1产生下址信号,MPROM2产生CI3~0、SCC3~0信号
对MPROM1-2的操作为:
MPROM1在高位MPROM2在低位
00E000FF:
0020
303000FF:
3030
3030
303400FF:
143600FF:
1A3700FF:
1C37
00E0
1C3000FF:
243000FF:
E4030
403000FF:
3A3200FF:
0230
E4050
405000FF:
MPROM3产生0MRW、0I2~0信号,MPROM4产生SAI8~I6、SBI5~I3信号,
对MPROM3-4的操作为:
MPROM3在高位MPROM4在低位
413100FF:
432000FF:
101000FF:
4010
41B800FF:
41B900FF:
41BC00FF:
41BB
41BE00FF:
419900FF:
419C00FF:
44B8
433800FF:
433900FF:
437800FF:
4358
401000FF:
453000FF:
471000FF:
2310
373000FF:
433100FF:
001000FF:
4320
431800FF:
049000FF:
4490
173800FF:
170000FF:
022000FF:
1730
470000FF:
4320
41B8
MPROM5产生B口、A口信号,MPROM6产生0SST、SSHSCI信号,
对MPROM5-6的操作为:
MPROM5在高位MPROM6在低位
550100FF:
000000FF:
0000
001100FF:
0010
0010
006000FF:
0050
550000FF:
4401
002000FF:
5501
5000
5501
0012
MPROM7产生DC2、DC1信号,对MPROM7的操作为:
7000FF:
B000FF:
1000FF:
00
0000FF:
0000FF:
00
0200FF:
3200FF:
01
3000FF:
0300FF:
30
0100FF:
0300FF:
0B
00
九、测试程序
1.测试基本指令的程序:
1)测试MVRD,MVRR,PSHF,ADD,SUB,AND,CMP,JRNZ,POPF,RET,XOR,TEST,JRZ的程序
程序流程图:
程序:
(2000)MVRDR0,0041;
MVRD
MVRDR1,0016
MVRDR2,0084
MVRRR3,R1;
MVRR
MVRRR6,R0
MVRDR7,0000
(200A)PSHF;
PSHF
ADDR0,R1;
ADD,->
R0=0057
SUBR2,R1;
SUB,->
R2=006E
ANDR3,R1;
AND,->
R3=0016
CMPR2,R1;
CMP
JRNZ2050;
JRNZ
(2010)POPF;
POPF
RET;
RET
(2050)XORR1,R6;
XOR,->
R1=0057
TESTR0,R7;
TEST
JRZ2010;
JRZ
运行结果:
2)测试OR,DEC,PUSH,INC,POP,SHR,JRC,SHL,JR,JMPA的程序
(2000)MVRDR0,0046;
MVRRR2,R1;
MVRRR3,R0
(2007)ORR0,R1;
OR,->
R0=0056
DECR1;
DEC,->
R1=0015
PUSHR2;
PUSH
INCR2;
INC,->
R2=0017
POPR2;
POP,->
R2=0016
SHRR3;
SHR,->
R3=0023
CMPR1,R0;
JRC2050;
JRC
(200F)SHLR6;
SHL,->
R6=008C
RET;
(2050)JR2060;
JR
(2060)JMPA200F;
JMPA
3)测试LDRR,CALA,OUT,STRR,IN,JRNC的程序
(2070)2070:
00412071:
00422073:
00432074:
0043
(2000)MVRDR3,0004;
MVRDR2,2070;
(2004)LDRRR0,[R2];
LDRR
CALA200C;
CALA
DECR3;
DEC
JRZ200B;
INCR2;
INC
JR2004;
(200B)RET;
(200C)OUT80;
OUT
MVRDR1,0020;
ADD
STRR[R2],R0;
STRR
(2011)IN81;
IN
SHRR0;
SHR
JRNC2011;
JRNC
2.测试扩展指令的程序:
1)验证指令ADC的程序。
(2000)MVRDR0,FFFF
MVRDR1,1111
ADDR0,R1
RET
R0=1110,R1=1111,F=10000011
E2004
(2004)0001:
2001
R0=1111,R1=1111,F=10000011
十、自评
测试程序的运行结果证明了29条基本指令和19条扩展指令是正确的。
由此我们可以知道16位机微程序控制器指令系统的设计是正确的。
我们的设计基本上达到了实验目的所要求的。
十一、遇到的问题及解决方案
测试扩展指令时,用E命令编码写入,但我们对指令格式不熟悉,导致测试时程序无法正确运行。
经过我们大量的测试以及寻找相关资料,我们总结出了正确的格式并正确地调试了程序。
十二、总结
在整个设计过程中,虽然分工明确,但是大家仍然不时交流彼此的经验,分享收获,使知识得以互补,遇到困难时也能够互相帮助解决问题,最终使任务圆满完成。