1/10基于微程序控制器的模型计算机设计目录1.课程设计的目的...................................................................................................................................12.课程设计要求.......................................................................................................................................13.课程设计报告内容...............................................................................................................................11)、系统主要功能............................................................................................................................12)、总体设计....................................................................................................................................23)、微程序控制器............................................................................................................................34.汇编语言测试程序...............................................................................................................................65.机器语言测试程序...............................................................................................................................66、详细设计原理图................................................................................................................................77、机器指令运行波形............................................................................................................................79.设计总结及体会...................................................................................................................................8参考文献............................................................................................................................................82/101/101.课程设计的目的:1)、融会贯通教材各章的内容,通过知识的综合运用,加深对计算机系统各模块的工作原理及相互联系的认识,从而清晰地建立计算机的整机概念。2)、学习设计和调试计算机的基本步骤和方法,培养科学研究的独立工作能力,取得工程设计的实践和经验。2.课程设计要求:根据给定的数据格式和指令系统,一台微程序控制的8位模型计算机,并运行能完成一定功能的机器语言程序进行验证。课程设计完成的内容1)系统的总体设计,画出模型机数据通路框图;2)微程序控制器的设计,包括设计所有机器指令的微程序流程图;设计微指令格式(建议采用全水平型微指令),设计微程序代码表(根据微程序流程图和微指令格式来设计);3)根据设计的指令格式,将汇编语言源程序手工转换成机器语言源程序4)画出模型机的原理图;5)画出模型计算机指令执行波形图3.课程设计报告内容:1)、系统主要功能A、数据格式数据字规定采用定点整数补码表示法,字长8位,其中最高位为符号位,其格式如下:76543210符号位尾数B、指令格式本设计CPU指令系统中使用5条机器指令,其格式与功能说明如下:表1模型机指令系统及指令编码形式助记符机器指令码Addr地址码功能说明IN20H“INPUT”中的数据→R0ADDaddr40HXXHR0+[addr]→R0STAaddr60HXXHR0→[addr]OUTaddr80HXXH[addr]→BUSJMPaddrA0HXXHaddr→PC2/10IN指令为单字长(字长为8bits)指令,其功能是将数据开关的8位数据输入到R0寄存器。ADD指令为双字长指令,第一个字为操作码,第二个字为操作数地址,其功能是将R0寄存器的内容与内存中地址为A的数相加,结果存放在R0寄存器中。STA指令为双字长指令,第一个字为操作码,第二个字为操作数地址,其功能是将R0寄存器中的内容存储到以第二个字为地址的内存单元中。OUT指令为双字长指令,第一个字为操作码,第二个字为操作数地址,其功能是将内存中以第二个字为地址的内存单元中的数据读出到数据总线,显示之。JMP指令为双字长指令,第一个字为操作码,第二个字为操作数地址,其功能是程序无条件转移到第二个字指定的内存单元地址。2)、总体设计总体设计的主要任务是根据指令系统的要求,选定所用器件,设计总框图(数据通路)。总体设计的主要步骤如下:A、对指令系统中的各条指令进行分析,得出所需要的占领周期与操作序列,以便确定各器件的类型和数量;B、构成一个总框图草图,进行各逻辑部件之间的互相连接,即初步确定数据通路,使得由指令系统所要求的数据通路都能实现,并满足技术指标的要求;C、检查全部指令周期的操作序列,确定所需要的控制点和控制信号;D、检查所设计的数据通路,尽可能降低成本,简化线路,优化性能。以上过程可以反复进行,以便得到一个较好的方案。方案确定后,检查所选用的各个器件是否满足数据通路的要求。数据通路的设计和器件的选择应同时进行,接入总线的器件都要有三态输出,以便与总线连接。本课题采用下图中所示的设计方案,本方案没有考虑乘法和除法指令操作,采用单总线结构,使用的许多器件都是三态输出。这种方案便于总线的连接和扩展,但缺点是指令和数据的传送都要经过总线,因此对总线的使用权就要分配得当。图1.系统总体框图(数据通路图)3/103)、微程序控制器数据通路图一旦确定,数据流的通路,运算器和控制器的结构也就确定了。图1中各功能器件上标注的控制信号,就是微程序控制器设计的依据。A、微指令格式微指令格式采用水平型微指令格式,微指令格式如下:31302928272625242322212019181716************************************S3S2S1S0MCnLOADWELDR0LDDR11514131211109876453210LDDR2LDIRLDARALU-BR0-BSW-BPC-BRAM-BLDPCP1******UA4UA3UA2UA1UA0各字段说明如下:uA4~uA0:微程序控制器的微地址输出信号,是下一条要执行的微指令的地址。S3、S2、S1、S0:由微程序控制器输出的ALU操作选择信号,以控制执行16种算术操作或16中逻辑操作中的某一种操作。M:微程序控制输出的ALU操作方式选择信号。M=0执行算术操作;M=1执行逻辑操作。Cn:微程序控制器输出的进位标志信号,Cn=1表示ALU运算时最低位有进位;Cn=0则表示无进位。LOAD:PC程序计数器初始值装载信号WE:WE=0.存储器读;WE=1,存储器写。LDR0:R0通用寄存器装载信号LDDR1:DR1暂存器装载信号LDDR2:DR2暂存器装载信号LDIR:IR寄存器装载信号LDPC:PC程序计数器自动加一信号LDAR:AR寄存器装载信号ALU-B:ALU运算结果输出三态门控信号R0-B:R0输出三态门控信号SW-B:SW输出三态门控信号PC-B:PC输出三态门控信号RAM-B:RAM输出三态门控信号P1:微程序分支处的判别测试。P1=1,控制器对当前的机器指令进行翻译。******:无定义,备用B、微程序控制器4/10微指令长度为31位,据此可以确定控制存储器的字长也应为31位。微指令格式确定后,微程序的横向设计在于正确选择数据通路,纵向设计在于确定后继微指令地址。纵向设计的通常做法是先确定微程序分支处的微地址,因为微程序分支处需要进行判别测试,这些微地址确定后,就可以在“微地址表”中把相应的微地址单元填进去,以免后面的设计中重复使用,以致造成设计错误。当拟定“取指”微指令时,该微指令的判别测试字段应指明P1测试。“取指”微指令是所有微程序都使用的公用微指令,P1测试的结果导致微程序出现多路分支。在本模型机中,只拟设计5条机器指令,故用指令寄存器的前3位(IR7-IR5)作为测试条件,微程序可以实现8路转移,但我们只用到前5路分支后的微地址分别定为00100B-10100B(即04H-14H)。C、微程序流程图:图2.微程序流程图010000000000001512111E0D0F0B0A0914100C0804JMPOUTSTAADDIN运行微程序PCBUSBUSARPC+1RAMBUSBUSIRP(1)PCARPC+1RAMBUSBUSARROBUSBUSRAMPCARPC+1RAMBUSBUSARRAMBUSPCARPC+1RAMBUSBUSPCPCARPC+1RAMBUSBUSARRAMBUSBUSDR2R0DR1(DR0)+(DR1)R0SWR05/10E、微代码表设计如下:地址******************************S3S2S1S0CnLOADWELDR0LDDR1LDDR2LDIRLDARALU|BR0|BSW|BPC|BRAM|BLDPCP1****UA4UA3UA2UA1UA0000000228111110100004140111040002040011080000228911111090000210A11110A0000810B111110B0001080F1111110F038190001111110C0000228D1111110D0000210E211110E0004080011100000229111111110000210E1111112000001001140000810F1111111500080100116/10F、微程序控制器的逻辑结构框图4.汇编语言测试程序根据指令系统编写汇编语言测试程序。IN;ADD10H;STA11H;OUT11H;JMP00H;5.机器语言测试程序根据设计的指令格式,将汇编语言测试程序手工转换成机器语言源程序,并将其写入到模型机中的RAM中去。与上述汇编语言源程序对应的机器语言源程序如下:助记符RAM地址机器代码功能说明IN0020SW→R0ADD10H0140R0+[10H]