第3讲简单模型机设计(微程序实现).ppt
《第3讲简单模型机设计(微程序实现).ppt》由会员分享,可在线阅读,更多相关《第3讲简单模型机设计(微程序实现).ppt(43页珍藏版)》请在冰豆网上搜索。
第3讲简单模型机的设计(微程序实现)计算机学院张瑞华模型机设计步骤拟定指令系统确定总体结构逻辑设计确定控制方式编制指令流程编制微程序调试1、拟定指令系统v拟定指令系统将涉及到基本字长、指令格式、指令种类、寻址方式等内容。
这些内容的确定又和总体结构密切相关。
v基本字长存储器容量为2568,基本字长定为8位v指令格式指令格式可有单字长指令和双字长指令两种在双字长格式中,第二字节一般定义为操作数或操作数地址。
操作码OP寻址方式寄存器号寻址方式寄存器号基本字长8位743210指令格式源操作数目的操作数v指令类型模型机有单操数指令、双操作数指令和无操作数指令。
操作码OP共4位,最多可定义16条指令。
v寻址方式当寻址方式位为0,是寄存器寻址,操作数在指定的寄存器中,相应的寄存器号位为0是R0,为1是寄存器R1;当寻址方式位为1时,寻址方式位和寄存器号位组合,v10:
是立即数寻址,操作数在指令的下一个单元;v11:
是直接寻址,操作数地址在指令的下一个单元。
ABR0R1PCIRMAR7-0RAMRDWRCRBCPR0CPR1CPPCCPIRCPMARPBRESTREST2、确定总体结构MARAD-BUSA-BUS三态门图1v寄存器组的设置R0、R1为通用寄存器,8位。
IR为指令寄存器,8位。
PC程序计数器,8位。
MAR为地址寄存器,8位。
v加法器ALU的设置采用74181、74182实现v选择器的设置连入A选择器的数据来源是RAM的读出数据和R0寄存器的数据。
连入B选择器的数据来源是PC的数据和R1的数据。
v数据通路模型机的数据通路是以总线为基础,以CPU为核心构成的。
v取指令:
MAA直传CPIRRAM选择器ABusIRv送指令地址PBB直传CPMARPC选择器BBusMARv指令计数器1PBA加B加1(A为0)cppcPC选择器BBusPCvR0R1RAA直传CPR1R0选择器ABusR1vR1RAMRBB直传CWRR1选择器BBusRAM3、逻辑设计v总体结构中,虚线框内的RAM是FPGA之外预先配置好的。
v
(1)ALU的逻辑设计由74181和74182组成。
图2选择器设计v
(2)寄存器的设计v不带复位的寄存器结构中R0、R1通用寄存器,可存放操作数或结果、中间结果,每个寄存器均由8个D触发器构成。
在CPRi的作用下接收总线的数据送入寄存器,输出连入选择器。
指令寄存器IR1、IR2其结构同通用寄存器。
v带复位的寄存器结构中MAR地址寄存器是一个带复位的寄存器,带复位是指当有复位信号时,MAR清零。
逻辑图如图3所示。
图3带复位的八位寄存器逻辑图v程序计数器PC的设计程序计数器结构如上图3所示,是有复位信号的8位寄存器。
PC加1是通过加法器实现的。
复位信号RET的作用是有复位信号时,计数器PC清零。
v(3)三态门的设计利用2片74125实现:
C=H时,三态;C=L时,Y=Av(4)部件之间的连接由系统结构图(图1)可看出,部件之间的连接是采用以CPU为中心的总线连接方式。
加法器的输出通过总线BUS连接到所有寄存器和存储器的输入端,除指令寄存器IR和地址寄存器MAR的输出端外,其它部件的输出端分别送入选择器A和选择器B。
连线图如图4所示。
图44、确定控制方式v控制命令是确定信息的流向,不同的数据通路需要不同的控制命令。
v架构图图1中,涉及到了许多控制命令例如CPR0、CPMAR、MA、RB等等,这些命令如何产生?
v通常有两种方式,即硬布线逻辑电路方式和微程序方式。
本章模型机采用微程序方式。
v微程序的执行方式采用增量、垂直方式。
确定总体结构ABR0R1PCIRMAR7-0RAMRDWRCRBCPR0CPR1CPPCCPIRCPMARPBRESTRESTMARAD-BUSA-BUS三态门v微程序控制器的结构如图5所示,主要由控制存储器ROM3#、ROM2#、ROM1#、微指令寄存器IR23-16、IR15-8、IR7-0构成。
图5微程序控制器时序PPP脉冲的低电平用做控制存储器读命令RDP脉冲的上升边沿将读出的微指令送IR脉冲的上升边沿将形成的后继地址送微程序计数器PC,同时将运算结果(总线的数据)送指定的寄存器。
v3、微指令格式v微指令字长24位即IR23IR0。
v
(1)微指令字段定义vALU控制:
IR21IR20IR19IR18IR17IR16vMS3S2S1S0C0v三态门控制:
IR6v0高阻态使C1v1三态门使能使C0v停机控制:
IR3v0G=0,运行v1G=1,停机vvA选择器控制:
IR15IR1400备用01RA10MA11备用vB选择器控制:
IR13IR1200备用01PB10RB11备用2-4译译码码器器,互斥互斥2-4译译码码器器,互斥互斥v输出分配:
IR11IR10IR9000备用001CPR0010CPR1011CPPC100CPIR101CPMAR110备用111备用v存储器读写控制:
IR5IR410RD01WR3-8译译码码器器,互斥互斥v后继微地址形成方式:
vIR2IR1IR0v000备用v001PC1顺序执行v010JP无条件转移,地址由IR15-8提供。
v011QJP高四位按操码转移,低4位为0。
v100YJP给定高4位低4位按源寻址方式转移。
v101MJP给定高4位低4位按目寻址方式转移。
v110备用v111备用3-8译译码码器器,互互斥斥v
(2)微命令形成逻辑v微命令形成逻辑电路如图6所示。
v图中二四译码器逻辑原理如7图7所示。
v三八译码器逻辑原理如7图8所示。
图6PC微地址形成部件PLDJPQJP操作吗IR8-5微指令IR15-8图9后继地址形成部件是多路选择器(3)后继微地址产生逻辑为简单起见只选三种后继微地址生成方式即增量方式、无条件转移方式、按操作码转移方式。
其结构框图如图9所示。
当LD1时,微程序计数PC执行加1操作。
当LD0时且JP1时,无条件转移,有微指令的中八位提供转移地址。
当LD0时且QJP1时,按操作码转移。
vPC的设计的设计图图9中的中的后继地址形成电路后继地址形成电路v功能:
多路选择器当JP=1,QJP=0时,Y7Y6Y5Y4Y3Y2Y1Y0=IR15IR14IR13IR12IR11IR10IR9IR8当JP=0,QJP=1时,Y7Y6Y5Y4Y3Y2Y1Y0=IR7IR6IR5IR40000v链接时,Y7Y6Y5Y4Y3Y2Y1Y0连接PC的D7D0,PC的RE接高电平vcc。
4、微程序编写v编写程序MOV105#,R0MOV201#,R1ADDR0,R1MOV3R1,(FA#)HALTv
(2)操作码二进制代码MOV1:
0001MOV2:
0010ADD:
0011MOV3:
0100HALT:
0101操作码OP寻址方式寄存器号寻址方式寄存器号基本字长8位743210指令格式源操作数目的操作数v指令类型模型机有单操数指令、双操作数指令和无操作数指令。
操作码OP共4位,最多可定义16条指令。
v寻址方式当寻址方式位为0,是寄存器寻址,操作数在指定的寄存器中,相应的寄存器号位为0是R0,为1是寄存器R1;当寻址方式位为1时,寻址方式位和寄存器号位组合,v10:
是立即数寻址,操作数在指令的下一个单元;v11:
是直接寻址,操作数地址在指令的下一个单元。
v程序代码:
地址代码地址内容000011000100000101200101001300000001400110001501000111611110101701010000v(3)微程序入口(十六进制代码)取指周期微指令入口:
00HMOV1执行周期微指令入口:
10HMOV2执行周期微指令入口:
20HADD执行周期微指令入口:
30HMOV3执行周期微指令入口:
40HHALT执行周期微指令入口:
50Hv(4)指令执行流程v00vvRAMIRvvPC+1PCv10203040vPCMARPCMARR0+R1R1PCMARG=1vvPC+1PCPC+1PCPCMARPC+1PCvvRAMR0RAMR1JPRAMMARvvPCMARPCMARR1RAMvvJPJPPCMARvvJP(5)编制微程序v根据指令流程和微指令格式就可以开始编制微程序。
v指令流程中每一个流程对应一条微指令,结合总体结构框图图1,写出这个流程所对应的数据通路的控制命令。
v例RAMIR所需的控制命令是MA,CPIR并在表3-1中的相应位置填写上“1”,不需要的命令填写“0”。
v另外每一条微指令都要确定下条微指令地址的生成方式。
总体结构ABR0R1PCIRMAR7-0RAMRDWRCRBCPR0CPR1CPPCCPIRCPMARPBRESTRESTMARAD-BUSA-BUS三态门v微代码:
v在验收时,为使用连续脉冲,增加下列启动/停止电路。
v5调试v1、FPGA系统平台上的所有开关和发光二极管(除L之外)均随意编程用作数据输入和状态显示。
选择系统结构中典型部件进行功能测试看是否满足要求,若有错改之。
典型部件如下:
选择器A带复位的寄存器MAR不带复位的寄存器R0程序计数器PCv在部件设计无错、连线无错、FPGA的管脚定义无错时可生成下载文件下载到FPGA中。
v2、单片机系统微程序经过检查无误后通过“计算机组成原理与系统结构安装软件”以十六进制写入3#RAM2#RAM和1#RAM的相应单元中去。
然后再读出检查看是否正确,有错改之。
写入代码时RAM2#和RAM1#是分别写入的,要注意单元的对应。
汇编程序以十六进制代码从0单元开始写入RAM的相应单元中。
v6统调v具体步骤如下:
v1、按复位键RET使MAR清0、指令计数器PC清0,保证从存储器0号单元取指令。
使微程序计数器UPC清0,保证从3#RAM、2#ROM、1#ROM的0#单元取出取指令微程序的第一条微指令。
v2、执行微程序按复位键后,PC,PC,MAR为0。
按一次脉冲键产生一负脉冲(作为RD),将ROM1#、ROM2#0号单元的16位微指令代码读出,用的上升沿将微指令送入IR15-0,看是否正确。
第一条微指令产生的命令是:
MA、RD2、CPIR,后继微地址产生方式为PC+1,其操作是:
RD2读RAM,单元地址为0,即读0号单元的内容。
0号单元的内容是一条指令,指令代码读出后,在MA的作用下,进入加法器至总线。
此时,总线上的内容点亮LR15-8,查看是否正确。
注意的是:
在没有按下次脉冲键前,数据通路的内容一直不变。
v
(2)按一次脉冲键又产生一负脉冲。
该负脉冲反相后的上升沿产生CPIR,将上条微指令读出的指令代码送IR,同时上升沿还将PC+1。
该负脉冲的低电平用以读出PC指示的第二条微指令。
v要求:
实现更多的指令,如减法、逻辑运算等。