计算机组成原理课程设计报告16位机微程序控制器指令系统的设计与实现.doc

上传人:laozhun 文档编号:2882298 上传时间:2023-03-01 格式:DOC 页数:23 大小:776.50KB
返回 下载 相关 举报
计算机组成原理课程设计报告16位机微程序控制器指令系统的设计与实现.doc_第1页
第1页 / 共23页
计算机组成原理课程设计报告16位机微程序控制器指令系统的设计与实现.doc_第2页
第2页 / 共23页
计算机组成原理课程设计报告16位机微程序控制器指令系统的设计与实现.doc_第3页
第3页 / 共23页
计算机组成原理课程设计报告16位机微程序控制器指令系统的设计与实现.doc_第4页
第4页 / 共23页
计算机组成原理课程设计报告16位机微程序控制器指令系统的设计与实现.doc_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《计算机组成原理课程设计报告16位机微程序控制器指令系统的设计与实现.doc》由会员分享,可在线阅读,更多相关《计算机组成原理课程设计报告16位机微程序控制器指令系统的设计与实现.doc(23页珍藏版)》请在三一办公上搜索。

1、计算机组成原理课程设计报告 16位机微程序控制器指令系统的设计与实现 班级: 姓名: 教师: 信息工程学院计算机系目录一、设计题目2二、设计目的2三、设计说明2四、设计内容3五、分组及任务分配3六、课程设计环境3七、基本指令和扩展指令的执行流程框图47.1基本指令流程框图47.2扩展指令流程框图5八、基本指令和扩展指令的微程序编码表5九、基本、扩展指令映射表89.1基本指令入口地址映射表89.2扩展指令入口地址映射表8十、指令设计方案9十一、测试程序13十二、自评21十三、遇到的问题及解决方案21十四、总结21十五、课程设计日志22一、设计题目16位机微程序控制器指令系统的设计与实现二、设计目

2、的通过看懂教学计算机组合逻辑控制器中已经设计好并正常运行的几条基本指令(例如ADD、MVRR、OUT、MVRD、JR、RET等指令)的功能、格式和执行流程,然后自己设计微程序控制器中的29条基本指令和19条扩展指令的功能、格式和执行流程,并在教学计算机上实现、调试正确,达到以下目的:1、深入理解计算机控制器的功能、组成知识和各类典型指令的执行过程;2、对指令格式、寻址方式、指令系统、指令分类等建立具体的总体概念;3、学习微程序控制器的设计过程和相关技术。三、设计说明控制器设计是学习计算机总体组成和设计的重要的部分。要在TEC2000教学计算机上完成这项设计,必须清楚懂得:1、TEC2000教学

3、机的微程序控制器主要由作为选件的微程序控制器小板和教学机大板上的7片GAL20V8组成。2、TEC2000教学机微程序控制器上要实现的全部基本指令和扩展指令的控制信号都是由微程序小板上的7片控制存储器给出的。3、应了解监控程序的A命令只支持基本指令,扩展指令应用E命令将指令代码写入到相应的存储单元中;不能用T、P命令单步调试扩展指令,只能用G命令执行扩展指令。4、要明白TEC2000教学机支持的指令格式及指令执行流程分组情况;理解TEC2000教学机中已经设计好并正常运行的各类指令的功能、格式、执行流程和控制信号的组成。5、明确自己要实现的指令格式、功能、执行流程设计中必须遵从的约束条件。6、

4、为了完成扩展指令的功能、格式和执行流程,并在教学计算机上实现、调试正确的实验内容,具体过程包括: 1)确定指令格式和功能,要受教学机已有硬件的约束,应尽量与已实现指令的格式和分类办法保持一致; 2)划分指令执行步骤并设计每一步的执行功能,设计节拍状态的取值,应参照已实现指令的处理办法来完成,特别要注意的是,读取指令的节拍只能用原来已实现的,其他节拍的节拍状态也应尽可能的与原用节拍的状态保持一致和相近;3)在指令微程序表中填写每一个控制信号的状态值,注意要特别仔细,并有意识地体会这些信号的控制作用;4)将设计好的微码,装入控制存储器的相应单元;5)写一个包含你设计的指令的程序,通过运行该程序检查

5、执行结果的正确性,来初步判断你的设计是否正确;如果有问题,通过几种办法查出错误并改正,继续调试,直到完全正确。四、设计内容1、完成微程序控制器指令系统设计,主要内容是由学生自己设计29条基本指令和19条扩展指令的功能、格式和执行流程,并在教学计算机上实现、运行、调试正确。2、首先看懂TEC2000教学计算机的功能部件组成和线路逻辑关系,然后分析教学计算机组合逻辑控制器中已经设计好并正常运行的几条典型指令(例如ADD、MVRR、OUT、MVRD、JRC、RET等指令)的功能、格式和执行流程。3、设计微程序控制器指令系统中各条指令的功能、格式和执行流程,并在教学计算机上实现、调试正确,例如ADC、

6、STC、JRS、JRNS、LDRX、STRX、JMPR、CALR、LDRA等19条扩展指令。4、单条运行指令,查看指令的功能、格式和执行流程。5、用监控程序的A、E(扩展指令必须用E命令置入)命令编写一段小程序,观察运行结果。五、分组及任务分配1、 仿照教学计算机组合逻辑控制器,设计微程序控制器中基本指令的功能、格式和执行流程,画出29条基本指令的执行流程框图和微程序编码表。2、 设计19条扩展指令的功能、格式和执行流程,设计每条微指令各字段的具体编码值,包括控制码的各字段、下址字段、形成下址用到的条件码,画出19条扩展指令的执行流程框图和微程序编码表。3、 确定微码各字段与控制存储器各个芯片

7、之间的关系,列表写出各控制存储器芯片中存储单元的内容,将设计好的微码装入控制存储器。4、 编写若干个测试程序,包含所有的基本指令和扩展指令,通过运行这些程序可以检查所有指令设计是否正确。最后,所有同学共同参与测试,通过运行测试程序,判断指令设计是否正确。如果有问题,查出错误并改正,继续调试,直到完全正确。六、课程设计环境1、硬件环境: PC 机一台、TEC2000 实验机一台、微程序控制器实验板一块。2、软件环境:(1)Win xp、DOS(2)TEC2003 仿真终端程序PCEC(3)TEC2003 监控程序。七、基本指令和扩展指令的执行流程框图7.1基本指令流程框图7.2扩展指令流程框图八

8、、基本指令和扩展指令的微程序编码表指令名微址下址CI3-0SCC3-00MEW0I2-0SAI8-6SBI5-3BASSTSSHSCIDC2DC1ALL0000E041315501700100E043205501B00200E0101000001003002040100000001A303004900000011C30301738000000303A32470000000331023043205501B0中断隐指令3A00E040100000703B00E043314000303C00E004100500513D00E043314000303E00E002100000013F313047305

9、00005ADD04303041B8001000SUB05303041B9001100AND06303041BC001000CMP0930304199001100XOR08303041BE001000TEST0A3030419C001000OR07303041BB001000MVRR0B303044B8001000DEC0D30304339001000INC0C30304338001100SHL0E30304378006000SHR0F30304358005000JR1130304530550002JRC1030344010000000JRNC1030344010000000JRZ103034

10、4010000000JRNZ1030344010000000JMPA1E24304320550130LDRR1B00E04490000030IN1214364710000032OUT121436471000003213303023100000011430303730000000STRR1900E04318000030PSH/F151A374331400030151A3743314000301630300010000003POP/F171C374320440130171C3743204401301830301010002000MVRD1D1C304320550130RET2300E0432044

11、01302430301730500000CALA1F00E043205501302000E017000000002100E043314000302230300220550001ADC50303041B8001200SBB51303041B9001200RCL5430304378006400RCR5530304358005400ASR5330304358005C00NOT523030433F001000JMPR5A303044B0500000JRS6930354010000000JRNS69303540100000006A30304530550002CLC5630304010003000STC5

12、730304010004000EI5830304010000060DI5930304010000070CALR6400E043314000306500E0041005000166303044B0500000LDRA5B00E043205501305C1C301710000030LDRX5D00E043205501305E1C301590000030STRX6100E043205501306200E015B00000306330300390000001STRA5F00E04320550130601A301710000030IRET6700E043204401306823301010002040九

13、、基本、扩展指令映射表9.1基本指令入口地址映射表9.2扩展指令入口地址映射表十、指令设计方案1、将设计好的微码写入控制存储器。一次只对一片28C64 控制存储器芯片进行读写,该芯片可插在扩展芯片的高位或低位,若插在高位,输入时信号编码为高八位,低八位补零;若插在低位,输入时信号编码为低八位,高位补零。若一次扩展两片28C64控制器芯片,要注意信号要与产生该信号的芯片相对。(1)将扩展新片的内存单元地址置为40005FFF,将MAPROM 插入扩展芯片的位置,微程序入口地址对应的内存单元的地址为芯片的起始地址和该指令的编码值之和。具体操作如下:E 40004000 00FF:04 00FF:0

14、5 00FF:06 00FF:09 00FF:0800FF:0A 00FF:07 00FF:0B 00FF:0D 00FF:0C00FF:0E 00FF:0FE 40414041 00FF:11E 40444044 00FF:10 00FF:10 00FF:10 00FF:10E 406C406C 00FF: 00FF: 00FF:58 00FF:59E 40804080 00FF:1E 00FF:1B 00FF:12 00FF:19 00FF:1500FF:15 00FF:12 00FF:17 00FF:1DE 408C408C 00FF:17 00FF: 00FF: 00FF: 23E 4

15、0CE40CE 00FF:1FE 40EF40EF 00FF:67(2)将MPROM1-MPROM7依次插入扩展芯片的位置对其编程,内存单元的地址为芯片的起始地址和该指令操作功能所对应的微址之和,操作如下:MPROM1产生下址信号,MPROM2 产生CI30、SCC30 信号,对MPROM1-2 的操作为:MPROM1 在高位 MPROM2 在低位:E 40004000 00FF:00E0 00FF:00E0 00FF:00E0 00FF:002000FF:3030 00FF:3030 00FF:3030 00FF:303000FF:3030 00FF:3030 00FF:3030 00FF:

16、303000FF:3030 00FF:3030 00FF:3030 00FF:303000FF:3034 00FF:3030 00FF:1436 00FF:303000FF:3030 00FF:1A37 00FF:3030 00FF:1C3700FF:3030 00FF:00E0 00FF:3030 00FF:00E000FF:3030 00FF:1C30 00FF:2430 00FF:00E000FF:00E0 00FF:00E0 00FF:3030 00FF:00E000FF:3030E 40304030 00FF:3A32 00FF:0230E 403A403A 00FF:00E0 00

17、FF:00E0 00FF:00E0 00FF:00E000FF:00E0 00FF:3130E 40584058 00FF:3030 00FF:3030E 40674067 00FF:00E0(3)MPROM3 产生0MRW、0I20 信号,MPROM4产生SAI8I6、SBI5I3信号,对 MPROM3-4的操作为:MPROM3 在高位 MPROM4 在低位:E 40004000 00FF:4131 00FF:4320 00FF:1010 00FF:401000FF:41B8 00FF:41B9 00FF:41BC 00FF:41BB00FF:41BE 00FF:4199 00FF:419C

18、 00FF:44B800FF:4338 00FF:4339 00FF:4378 00FF:435800FF:4010 00FF:4530 00FF:4710 00FF:231000FF:3730 00FF:4331 00FF:0010 00FF:432000FF:1010 00FF:4318 00FF:0490 00FF:449000FF:1738 00FF:4320 00FF:4320 00FF:432000FF:1700 00FF:4331 00FF:0220 00FF:432000FF:1730E 40304030 00FF:4700 00FF:4320E 403A403A 00FF:4

19、010 00FF:4331 00FF:0410 00FF:433100FF:0210 00FF:4730E 40584058 00FF:4010 00FF:4010 E 40674067 00FF:4320 (4)MPROM5 产生B 口、A口信号,MPROM6 产生0SST、SSHSCI 信号,对 MPROM5-6的操作为:MPROM5 在高位 MPROM6 在低位:E 40004000 00FF:5501 00FF:5501 00FF:0000 00FF:000000FF:0010 00FF:0011 00FF:0010 00FF:001000FF:0010 00FF:0011 00FF:

20、0010 00FF:001000FF:0011 00FF:0010 00FF:0060 00FF:005000FF:0000 00FF:5500 00FF:0000 00FF:000000FF:0000 00FF:4000 00FF:0000 00FF:440100FF:0020 00FF:0000 00FF:0000 00FF:000000FF:0000 00FF:5501 00FF:5501 00FF:550100FF:0000 00FF:4000 00FF:5500 00FF:440100FF:5000E 40304030 00FF:0000 00FF:5501E 403A403A 00

21、FF:0000 00FF:4000 00FF:0500 00FF:400000FF:0000 00FF:5000E 40584058 00FF:0000 00FF:0000E 4067 4067 00FF:4401 (5)MPROM7 产生DC2、DC1 信号,对MPROM7 的操作为:E 40004000 00FF:70 00FF:B0 00FF:10 00FF:0000FF:00 00FF:00 00FF:00 00FF:0000FF:00 00FF:00 00FF:00 00FF:0000FF:00 00FF:00 00FF:00 00FF:0000FF:00 00FF:02 00FF:

22、32 00FF:0100FF:00 00FF:30 00FF:03 00FF:3000FF:00 00FF:30 00FF:01 00FF:3000FF:00 00FF:30 00FF:30 00FF:3000FF:00 00FF:30 00FF:01 00FF:3000FF:00E 40304030 00FF:03 00FF:B0E 403A403A 00FF:70 00FF:30 00FF:51 00FF:3000FF:01 00FF:05E 40584058 00FF:60 00FF:70 E 40674067 00FF:302. 八个控制存储器芯片中各存储单元的内容列表指令名MAPRO

23、MMPROM1MPROM2MPROM3MPROM4MPROM5MPROM6MPROM7ALL0000000000E0004100310055000100700001000000E0004300200055000100B00002000000E00010001000000000001000030000002000400010000000000000001A0030003000040090000000000001001C00300030001700380000000000000030003A003200470000000000000003003100020030004300200055000100

24、B0中断隐指令003A000000E000400010000000000070003B000000E000430031004000000030003C000000E000040010000500000051003D000000E000430031004000000030003E000000E000020010000000000001003F0031003000470030005000000005ADD000400300030004100B8000000100000SUB000500300030004100B9000000110000AND000600300030004100BC00000010

25、0000CMP00090030003000410099000000110000XOR000800300030004100BE000000100000TEST000A003000300041009C000000100000OR000700300030004100BB000000100000MVRR000B00300030004400B8000000100000DEC000D0030003000430039000000100000INC000C0030003000430038000000110000SHL000E0030003000430078000000600000SHR000F00300030

26、00430058000000500000JR00110030003000450030005500000002JRC00100030003400400010000000000000JRNC00100030003400400010000000000000JRZ00100030003400400010000000000000JRNZ00100030003400400010000000000000JMPA001E0024003000430020005500010030LDRR001B000000E000440090000000000030IN001200140036004700100000000000

27、32OUT001200140036004700100000000000320013003000300023001000000000000100140030003000370030000000000000STRR0019000000E000430018000000000030PSH/F0015001A0037004300310040000000300015001A00370043003100400000003000160030003000000010000000000003POP/F0017001C0037004300200044000100300017001C00370043002000440

28、001003000180030003000100010000000200000MVRD001D001C003000430020005500010030RET0023000000E00043002000440001003000240030003000170030005000000000CALA001F000000E0004300200055000100300020000000E0001700000000000000000021000000E00043003100400000003000220030003000020020005500000001DI005900300030004000100000

29、00000070十一、测试程序1测试基本指令的程序:(1)验证指令MVRD,MVRR,ADD,SUB,XOR,OR,RET。运行结果:R0=0064(R1+R0R0);R1=0023;R3=FFF7(R3-R2R3);R6=0070(R6与R7相异或);R7=FFF7(R7与R3或运算)。(2)验证指令IN,OUT,SHR, AND,CMP,JRC, JRNC,JMPA。功能:从键盘上连续打入多个属于0到9的数字符并在屏幕上显示,遇非数字符结束输入过程。 (3)测试INC,JRNZ。功能:计算1到10的累加和。(4)测试DEC,JRZ,PUSH,POP,JR。功能:用次数控制在终端屏幕上输出0

30、到9是个数字符。(5)测试STRR,LDRR,CALA。功能:读出内存中的字符,将其显示到显示器的屏幕上,转换为小写字母后再写回存储器原存储区域。(6)测试TEST,SHL。运行结果:R0=0040(SHL R0);标志位Z=1,结果正确。(7)验证PSHF,POPF。运行结果:单步执行程序后,状态标志位C由0变为1,结果正确。2测试扩展指令DI的程序A 21042104:JR 2120 ;跳转到中断服务程序A 21082108:JR 2130 ;跳转到中断服务程序 A 210C210C:JR 2140 ;跳转到中断服务程序A 21202120:PUSH R0 ;R0进栈2121:PUSH R

31、3 ;R3进栈2122:MVRD R3,31 ;将字符1的ASCII码送寄存器R32124:JR 2150 2125:RETA 21302130:PUSH R02131:PUSH R32132:MVRD R3,32 ;将字符2的ASCII码送寄存器R32134:JR 21502135:RETA 21402140:PUSH R02141:PUSH R32142:MVRD R3,33 ;将字符3的ASCII码送寄存器R32144:JR 2150;2145:RET2150:*DI ;关中断 A 21512151:MVRD R0,0042 ;将字符“B”赋值给R0,B即Begin的缩写。2153:CA

32、LA 2200 ;调用子程序,完成显示2155:MVRD R0,0049 ;将字符“I”赋值给R0,I即Interrupt的缩写。2157:CALA 2200 ;调用子程序,完成显示2159:MVRR R0,R3 ;将R3的内容送R0215A:CALA 2200 ;调用子程序,完成显示215C:IN 81 ;判键盘上是否按了一个键215D:SHR R0 ;即串口是否有了输入字符215E:SHR R0215F:JRNC 215C ;若没有,等待2160:IN 80 ;输入字符到R02161:MVRD R0,0045 ;将字符“E”赋值给R0,E即End2163:CALA 2200 ;调用子程序,

33、完成显示 2165:MVRD R0,0049 ;将字符“I”赋值给R0,I即Interrupt的缩写2167:CALA 2200 ;调用子程序,完成显示2169:MVRR R0,R3 ;将R3的内容送R1216A:CALA 2200 ;调用子程序,完成显示216C:POP R3 ;R3出栈216D:POP R0 ;R0出栈216E:*IRET ;中断返回A 22002200:PUSH R0 ;R0进栈2201:IN 81 ;查询接口状态,判字符输出完成否2202:SHR R02203:JRNC 2201 ;未完,循环等待2204:POP R0 ;R0出栈2205:OUT 80 ;输出R0的值2

34、206:RET;A 20002000:*EI ;开中断A 20012001:MVRD R0,0036 ;将字符6的ASCII码送寄存器R02003:CALA 2200 ;输出该字符2005:MVRD R0,4000 ;延时子程序2007:DEC R02008:JRNC 20072009:JR 2001 ;跳到2001循环执行该程序200A:RETG 2000 结果无误注:本程序执行时只可执行一次中断,然后中断关闭;如果将2000的内存单元原值置为6F00,则从开始中断即为关闭;如果将2150和2000的内存单元原值都置为6E00,则中断一直都是开着的,可一直实现中断。(DI:6F00;EI:6E00;IRET:EF00)十二、自评单步执行检测,证明了29条基本指令和第13条扩展指令(DI)是正确的。测试程序的正确运行结果,也进一步证明所有指令准确无误。由此我们可以知道16位机微程序控制器指令系统的设计是正确的。我们的设计基本上达到了实验目的所要求的。十三、遇到的问题及解决方案

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号