1、计算机组成原理课程设计16位机微程序控制器指令系统的设计与实现一、设计题目16位机微程序控制器指令系统的设计与实现二、设计目的通过看懂教学计算机组合逻辑控制器中已经设计好并正常运行的几条基本指令(例如ADD、MVRR、OUT、MVRD、JR、RET等指令)的功能、格式和执行流程,然后自己设计微程序控制器中的29条基本指令和19条扩展指令的功能、格式和执行流程,并在教学计算机上实现、调试正确,达到以下目的:1、深入理解计算机控制器的功能、组成知识和各类典型指令的执行过程;2、对指令格式、寻址方式、指令系统、指令分类等建立具体的总体概念;3、学习微程序控制器的设计过程和相关技术。三、设计说明控制器
2、设计是学习计算机总体组成和设计的重要的部分。要在TEC2000教学计算机上完成这项设计,必须清楚懂得:1、TEC2000教学机的微程序控制器主要由作为选件的微程序控制器小板和教学机大板上的7片GAL20V8组成。2、TEC2000教学机微程序控制器上要实现的全部基本指令和扩展指令的控制信号都是由微程序小板上的7片控制存储器给出的。3、应了解监控程序的A命令只支持基本指令,扩展指令应用E命令将指令代码写入到相应的存储单元中;不能用T、P命令单步调试扩展指令,只能用G命令执行扩展指令。4、要明白TEC2000教学机支持的指令格式及指令执行流程分组情况;理解TEC2000教学机中已经设计好并正常运行
3、的各类指令的功能、格式、执行流程和控制信号的组成。5、明确自己要实现的指令格式、功能、执行流程设计中必须遵从的约束条件。6、为了完成扩展指令的功能、格式和执行流程,并在教学计算机上实现、调试正确的实验内容,具体过程包括: 1)确定指令格式和功能,要受教学机已有硬件的约束,应尽量与已实现指令的格式和分类办法保持一致; 2)划分指令执行步骤并设计每一步的执行功能,设计节拍状态的取值,应参照已实现指令的处理办法来完成,特别要注意的是,读取指令的节拍只能用原来已实现的,其他节拍的节拍状态也应尽可能的与原用节拍的状态保持一致和相近;3)在指令微程序表中填写每一个控制信号的状态值,注意要特别仔细,并有意识
4、地体会这些信号的控制作用;4)将设计好的微码,装入控制存储器的相应单元;5)写一个包含你设计的指令的程序,通过运行该程序检查执行结果的正确性,来初步判断你的设计是否正确;如果有问题,通过几种办法查出错误并改正,继续调试,直到完全正确。四、设计内容1、完成微程序控制器指令系统设计,主要内容是由学生自己设计29条基本指令和19条扩展指令的功能、格式和执行流程,并在教学计算机上实现、运行、调试正确。2、首先看懂TEC2000教学计算机的功能部件组成和线路逻辑关系,然后分析教学计算机组合逻辑控制器中已经设计好并正常运行的几条典型指令(例如ADD、MVRR、OUT、MVRD、JRC、RET等指令)的功能
5、、格式和执行流程。3、设计微程序控制器指令系统中各条指令的功能、格式和执行流程,并在教学计算机上实现、调试正确,例如ADC、STC、JRS、JRNS、LDRX、STRX、JMPR、CALR、LDRA等19条扩展指令。4、单条运行指令,查看指令的功能、格式和执行流程。5、用监控程序的A、E(扩展指令必须用E命令置入)命令编写一段小程序,观察运行结果。五、设计要求分组及任务分配每组四名同学,任务分配为:朱冠兰负责仿照教学计算机组合逻辑控制器,设计微程序控制器中基本指令的功能、格式和执行流程,画出29条基本指令的执行流程框图和微程序编码表。冯云龙负责设计扩展指令的功能、格式和执行流程,设计微指令各字
6、段的具体编码值,包括控制码的各字段、下址字段、形成下址用到的条件码,画出扩展指令的执行流程框图和微程序编码表。胡学智负责确定微码各字段与控制存储器各个芯片之间的关系,列表写出各控制存储器芯片中存储单元的内容,将设计好的微码装入控制存储器。王硕负责编写若干个测试程序,包含所有的基本指令和扩展指令,通过运行这些程序可以检查所有指令设计是否正确。最后,所有组员共同参与测试,通过运行测试程序,判断指令设计是否正确。(二)学生应交材料1、课程设计报告,每组交一份。2、一块自定义指令系统的微程序控制器板。3、课程设计日记,每人交一份。(三)课程设计报告内容1、题目名称;2、题目内容;3、基本指令和扩展指令
7、的执行流程框图;4、基本指令和扩展指令的微程序编码表;5、八个控制存储器芯片中各存储单元的内容列表;6、测试程序;7、自评(从实现的功能上评价);8、遇到的问题及解决方案;9、总结(主要从综合应用知识、分析问题、解决问题方面总结)。六、进度安排第1周 周一 上午 课程设计动员 周二 周五 (1)熟悉汇编、TEC2000机开发环境(2)基本指令设计(3)扩展指令设计(4)编写调试程序。第2周 周一 周五 微指令写入芯片,运行测试程序,调试指令。 第3周 周一 周三 编写课程设计报告。周四、周五 验收和答辩总结。 七、课程设计环境1、硬件环境: PC机一台、TEC2000实验机一台、微程序控制器实
8、验板一块。 2、软件环境: (1)Win2000、DOS (2)TEC2000仿真终端程序PCEC(3)TEC2000监控程序。八、软件设计方案1将设计好的微码写入控制存储器。一次只对一片28C64控制存储器芯片进行读写,该芯片可插在扩展芯片的高位或低位,若插在高位,输入时信号编码为高八位,低八位补零;若插在低位,输入时信号编码为低八位,高位补零。若一次扩展两片28C64控制器芯片,要注意信号要与产生该信号的芯片相对。将扩展新片的内存单元地址置为40005FFF,将MAPROM插入扩展芯片的位置,微程序入口地址对应的内存单元的地址为芯片的起始地址和该指令的编码值之和。具体操作如下:E 4000
9、4000 00FF:04 00FF:05 00FF:06 00FF:09 00FF:08 00FF:0A 00FF:07 00FF:0B 00FF:0D 00FF:0C 00FF:0E 00FF:0F E 40204020 00FF:50 E 40414041 00FF:11E 40444044 00FF:10 00FF:10 00FF:10 00FF:10 E 40804080 00FF:1E 00FF:1B 00FF:12 00FF:19 00FF:15 00FF:15 00FF:12 00FF:17 00FF:1D E 408C408C 00FF:17 00FF: 00FF: 00FF:
10、 23E 40CE40CE 00FF:1F 将MPROM1MPROM7依次插入扩展芯片的位置对其编程,内存单元的地址为芯片的起始地址和该指令操作功能所对应的微址之和,操作如下:MPROM1产生下址信号,MPROM2产生CI30、SCC30信号对MPROM1-2的操作为:MPROM1 在高位 MPROM2 在低位E 40004000 00FF:00E0 00FF:00E0 00FF:00E0 00FF:0020 00FF:3030 00FF:3030 00FF:3030 00FF:3030 00FF:3030 00FF:3030 00FF:3030 00FF:303000FF:3030 00FF
11、:3030 00FF:3030 00FF:303000FF:3034 00FF:3030 00FF:1436 00FF:3030 00FF:3030 00FF:1A37 00FF:3030 00FF:1C37 00FF:3030 00FF:00E0 00FF:3030 00FF:00E0 00FF:3030 00FF:1C30 00FF:2430 00FF:00E000FF:00E0 00FF:00E0 00FF:3030 00FF:00E0 00FF:3030 E 40304030 00FF:3A32 00FF:0230 E 40504050 00FF:3030MPROM3产生0MRW、0I
12、20信号,MPROM4产生SAI8I6、SBI5I3信号,对MPROM3-4的操作为:MPROM3 在高位 MPROM4 在低位E 40004000 00FF:4131 00FF:4320 00FF:1010 00FF:4010 00FF:41B8 00FF:41B9 00FF:41BC 00FF:41BB 00FF:41BE 00FF:4199 00FF:419C 00FF:44B800FF:4338 00FF:4339 00FF:4378 00FF:435800FF:4010 00FF:4530 00FF:4710 00FF:231000FF:3730 00FF:4331 00FF:001
13、0 00FF:4320 00FF:1010 00FF:4318 00FF:0490 00FF:4490 00FF:1738 00FF:4320 00FF:4320 00FF:432000FF:1700 00FF:4331 00FF:0220 00FF:4320 00FF:1730E 40304030 00FF:4700 00FF:4320 E 4050 00FF:41B8MPROM5产生B口、A口信号,MPROM6产生0SST、SSHSCI信号,对MPROM5-6的操作为:MPROM5 在高位 MPROM6 在低位E 40004000 00FF:5501 00FF:5501 00FF:0000
14、 00FF:0000 00FF:0010 00FF:0011 00FF:0010 00FF:0010 00FF:0010 00FF:0011 00FF:0010 00FF:001000FF:0011 00FF:0010 00FF:0060 00FF:005000FF:0000 00FF:5500 00FF:0000 00FF:000000FF:0000 00FF:4000 00FF:0000 00FF:4401 00FF:0020 00FF:0000 00FF:0000 00FF:0000 00FF:0000 00FF:5501 00FF:5501 00FF:550100FF:0000 00F
15、F:4000 00FF:5500 00FF:4401 00FF:5000E 40304030 00FF:0000 00FF:5501 E 40504050 00FF:0012 MPROM7产生DC2、DC1信号,对MPROM7的操作为:E 40004000 00FF:70 00FF:B0 00FF:10 00FF:00 00FF:00 00FF:00 00FF:00 00FF:00 00FF:00 00FF:00 00FF:00 00FF:00 00FF:00 00FF:00 00FF:00 00FF:00 00FF:00 00FF:02 00FF:32 00FF:0100FF:00 00FF
16、:30 00FF:03 00FF:30 00FF:00 00FF:30 00FF:01 00FF:30 00FF:00 00FF:30 00FF:30 00FF:3000FF:00 00FF:30 00FF:01 00FF:30 00FF:00E 40304030 00FF:03 00FF: 0B E 40504050 00FF:00 九、测试程序1测试基本指令的程序:1)测试MVRD,MVRR,PSHF,ADD,SUB,AND,CMP,JRNZ,POPF,RET,XOR,TEST,JRZ的程序程序流程图:程序:(2000) MVRD R0,0041 ;MVRD MVRD R1,0016 MV
17、RD R2,0084 MVRR R3,R1 ;MVRR MVRR R6,R0 MVRD R7,0000(200A) PSHF ;PSHF ADD R0,R1 ;ADD,-R0=0057 SUB R2,R1 ;SUB,-R2=006E AND R3,R1 ;AND,-R3=0016 CMP R2,R1 ;CMP JRNZ 2050 ;JRNZ(2010) POPF ;POPF RET ;RET(2050) XOR R1,R6 ;XOR,-R1=0057 TEST R0,R7 ;TEST JRZ 2010 ;JRZ运行结果:2)测试OR,DEC,PUSH,INC,POP,SHR,JRC,SHL,J
18、R,JMPA的程序程序流程图:程序:(2000) MVRD R0,0046 ;MVRD MVRD R1,0016 MVRR R2,R1 ;MVRR MVRR R3,R0 MVRR R6,R0(2007) OR R0,R1 ;OR,-R0=0056 DEC R1 ;DEC,-R1=0015 PUSH R2 ;PUSH INC R2 ;INC,-R2=0017 POP R2 ;POP,-R2=0016 SHR R3 ;SHR,-R3=0023 CMP R1,R0 ;CMP JRC 2050 ;JRC(200F) SHL R6 ;SHL,-R6=008C RET ;RET(2050) JR 2060
19、 ;JR(2060) JMPA 200F ;JMPA运行结果:3)测试LDRR,CALA,OUT,STRR,IN,JRNC的程序程序流程图:程序:(2070) 2070: 0041 2071: 0042 2073:0043 2074:0043(2000) MVRD R3,0004 ;MVRD MVRD R2,2070 ;MVRD(2004) LDRR R0,R2 ;LDRR CALA 200C ;CALA DEC R3 ;DEC JRZ 200B ;JRZ INC R2 ;INC JR 2004 ;JR(200B) RET ;RET(200C) OUT 80 ;OUT MVRD R1,0020
20、 ;MVRD ADD R0,R1 ;ADD STRR R2,R0 ;STRR(2011) IN 81 ;IN SHR R0 ;SHR JRNC 2011 ;JRNC RET ;RET运行结果:2测试扩展指令的程序:1)验证指令ADC的程序。程序: (2000) MVRD R0,FFFF MVRD R1,1111 ADD R0,R1 RET运行结果:R0=1110,R1=1111,F=10000011E 2004(2004) 0001:2001运行结果:R0=1111,R1=1111,F=10000011十、自评测试程序的运行结果证明了29条基本指令和19条扩展指令是正确的。由此我们可以知道16位机微程序控制器指令系统的设计是正确的。我们的设计基本上达到了实验目的所要求的。 十一、遇到的问题及解决方案测试扩展指令时,用E命令编码写入,但我们对指令格式不熟悉,导致测试时程序无法正确运行。经过我们大量的测试以及寻找相关资料,我们总结出了正确的格式并正确地调试了程序。十二、总结在整个设计过程中,虽然分工明确,但是大家仍然不时交流彼此的经验,分享收获,使知识得以互补,遇到困难时也能够互相帮助解决问题,最终使任务圆满完成。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1