您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > 实验四--常规型微程序控制器组成实验
1实验四常规型微程序控制器组成实验一、实验目的1.掌握时序发生器的组成原理。2.掌握微程序控制器的组成原理。二、实验电路1.时序发生器本实验所用的时序电路见图3.4。电路由一个500KHz晶振、2片GAL22V10、一片74LS390组成,可产生两级等间隔时序信号T1-T4、W1-W3,其中一个W由一轮T1-T4组成,相当于一个微指令周期或硬连线控制器的一拍,而一轮W1-W3可以执行硬连线控制器的一条机器指令。另外,供数字逻辑实验使用的时钟由MF经一片74LS390分频后产生。图3.4时序信号发生器本次实验不涉及硬连线控制器,因此时序发生器中产生W1-W3的部分也可根据需要放到硬连线控制器实验中介绍。产生时序信号T1-T4的功能集成在图中左边的一片GAL22V10中,另外它还产生节拍信号W1-W3的控制时钟CLK1。该芯片的逻辑功能用ABEL语言实现。其源程序如下:MODULETIMER1TITLE'CLOCKGENERATORT1-T4'CLK=.C.;INPUTMF,CLR,QD,DP,TJ,DBPIN1..6;W3PIN7;OUTPUTT1,T2,T3,T4PIN15..18ISTYPE'REG';CLK1PIN14ISTYPE'COM';QD1,QD2,QDRPINISTYPE'REG';2ACTPINISTYPE'COM';S=[T1,T2,T3,T4,QD1,QD2,QDR];EQUATIONSQD1:=QD;QD2:=QD1;ACT=QD1&!QD2;QDR:=CLR&QD#CLR&QDR;T1:=CLR&T4&ACT#CLR&T4&!(DP#TJ#DB&W3)&QDR;T2:=CLR&T1;T3:=CLR&T2;T4:=!CLR#T3#T4&!ACT&(DP#TJ#DB&W3)#!QDR;CLK1=T1#!CLR&MF;S.CLK=MF;END节拍电位信号W1-W3只在硬连线控制器中使用,产生W信号的功能集成在右边一片GAL22V10中,用ABEL语言实现。其源程序如下:MODULETIMER2//头部TITLE'CLOCKGENERATORW1-W3'DECLARATIONS//说明部CLK=.C.;INPUTCLK1,CLR,SKIPPIN1..3;OUTPUTW1,W2,W3PIN16..18ISTYPE'REG';W=[W1,W2,W3];EQUATIONS//逻辑描述部W1:=CLR&W3;W2:=CLR&W1&!SKIP;W3:=!CLR#W2#W1&SKIP;W.CLK=CLK1;ENDTIMER2//结束部左边GAL的时钟输入MF是晶振的输出,频率为500KHz。T1-T4的脉宽为2μs。CLR实际上是控制台的CLR#信号,因为ABEL语言的书写关系改为CLR,仍为低有效。CLR#=0将系统复位,此时时序停在T4、W3,微程序地址为000000B。建议每次实验台加电后,先按CLR#复位一次。实验台上CLR#到时序电路的连接已连好。对时序发生器TJ输入引脚的连接要慎重,当不需要暂停微程序的运行时,将它接地;如果需要的话,将它与微程序控制器的输出微命令TJ相连。QD(启动)是单脉冲信号,在3GAL中用时钟MF对它进行了同步,产生QD1和QD2。ACT表达式为QD1&!QD2,脉宽为2μs。QDR是运行标志,QD信号使其置1,CLR#将其置0。DB(单步)、DP(单拍)是来自实验台的二进制开关模拟信号。当TJ=0、DB=0、DP=0时,一旦按下QD键,时序信号T1-T4周而复始的发送出去,此时机器处于连续运行状态。当DP=1、TJ=0、DP=0时,按下QD键,机器将处于单拍运行状态,此时只发送一组T1、T2、T3、T4时序信号就停机,此时机器时序停在T4。利用单拍方式,每次只读出一条微指令,因而可以观察微指令代码以及当前的执行结果。当机器连续运行时,如果TJ=1,也会使机器中断运行,时序停在T4。DB、SKIP、CLK1信号以及W1-W3节拍电位信号都是针对硬连线控制器的。硬连线控制器执行一条机器指令需要一组W1-W3时序信号。CLK1是产生W信号的控制时钟,由左边一片GAL产生。DB信号就是控制每次发送一组W1-W3后停机。执行某些机器指令不需要一组完整的W信号,SKIP信号就是用来跳过本指令剩余的W节拍信号的。2.数据通路微程序控制器是根据数据通路和指令系统来设计的。这里采用的数据通路是在综合前面各实验的基础上,整合了运算器模块、存储器模块等形成的。有关数据通路整体的详细说明,请参阅第一章。3.微指令格式根据给定的8条机器指令功能和数据通路总体图的控制信号,采用的微指令格式如图3.5所示。微指令字长31位,其中顺序控制部分9位:判别字段3位,后继微地址6位。操作控制字段22位,各位进行直接控制。012345678910111213141516171819202122232425262728293031后继微地址判别字段μA0μA1μA2μA3μA4μA5P0P1P2备用TJLDIRPC+1LDPC#AR+1LDAR#LDDR1LDDR2LDRiSW-BUS#Rs-BUS#ALU-BUS#RAM-BUS#CER#CEL#LRWCn#MS0S1S3S2图3.5微指令格式对应微指令格式,微程序控制器的组成见图3.6。控制存储器采用4片E2PROM(HN58C65)组成,HN58C65是8K×8位的,地址输入端有13位(A12-A0),实验中只用到A5-A0,所以A12-A6接地,实际的使用空间为64字节。微地址寄存器μAR共6位,用一片8D触发器74LS174组成,带有异步清零端。两级与、或门构成微地址转移逻辑,用于产生下一微指令地址。在每一个T1的上升沿,新的微指令地址打入微地址寄存器中,控制存储器随即输出该条微指令的控制信号。微地址转移逻辑生成下一微地址,等到下一个T1上升沿,将其打入微地址寄存器中。微地址转移逻辑的多个输入信号中,SWC、SWB、SWA是控制台指令的定义开关,它们用来决定控制台指令微程序的分支。C是进位信号,IR7-IR4是机器指令的操作码字段,根据它们的值来控制微程序转向某个特定的分支。三、机器指令与微程序为教学中简单明了,本实验仪器使用了8条机器指令,均为单字长(8位)指令。指令功能及格式如表3.3所示。指令的高4位IR7-IR4是操作码,提供给微程序控制器用作地址转移;低4位提供给数据通路。4μA0μA1μA2μA3μA4μA5P0P1P2备用TJLDIRPC+1LDPC#AR+1LDAR#LDDR1LDDR2LDRiLR/W#MS0S1S3S2CM0CM1CM2CM3CIR7IR6IR5IR4SWCSWBSWACLR#T1μAR(174)P2P1P0D5D4D3D0D1D2Q5Q4Q3Q0Q1Q2A5A4A3A0A1A2A6…A12A5A4A3A0A1A2A6A5A4A3A0A1A2A6A5A4A3A0A1A2A6C5C4C3C0C1C2C6C7C5C4C3C0C1C2C6C7C5C4C3C0C1C2C6C7C5C4C3C0C1C2C6C7图3.6微程序控制器电路图…A12…A12…A12SW-BUS#Rs-BUS#ALU-BUS#RAM-BUS#CER#CEL#Cn#微命令显示灯表3.3指令功能与格式名称助记符功能指令格式IR7IR6IR5IR4IR3IR2IR1IR0加法ADDRd,RsRd+Rs→Rd0000Rs1Rs0Rd1Rd0减法SUBRd,RsRd-Rs→Rd0001Rs1Rs0Rd1Rd0逻辑与ANDRd,RsRd&Rs→Rd0010Rs1Rs0Rd1Rd0存数STARd,[Rs]Rd→[Rs]0011Rs1Rs0Rd1Rd0取数LDARd,[Rs][Rs]→Rd0100Rs1Rs0Rd1Rd0条件转移JCR3若C=1则R3→PC010111××停机STP暂停执行0110××××输出OUTRsRs→DBUS0111Rs1Rs0××应当指出,用这8条指令来编写实际程序是远远不够的。我们的目的是为了教学,通过执行一些最简单的程序来掌握微程序控制器的工作原理。上述8条指令的微程序流程图如图3.7所示。每条微指令可按前述的微指令格式转换成二进制代码,然后写入微程序控制器的控制存储器中。5P(0)SWDBUSDBUSARSWDBUSDBUSARTJSWDBUSDBUSARDBUSPCTJSWDBUSDBUSRAMRAMDBUSTJAR+1SWDBUSDBUSRAMAR+1TJSWDBUSDBUSPCRAMIBUSIBUSIRP(1)RdDR1RsDR2RsDBUSDBUSARRdDR1RsDBUSDBUSARRdDR1RsDR2ANDALUDBUSDBUSRdPC+1DR1ALUALUDBUSDBUSRAMPC+1R3DBUSDBUSPCRAMDBUSDBUSRdPC+1PC+1RdDR1RsDR2PC+1TJADDALUDBUSDBUSRdPC+1SUBALUDBUSDBUSRdPC+1P(2)0800KTRRF(100)WRF(011)RRM(010)WRM(001)PR(000)0C0B1DOA02040903050204080F0F10ADD(0000)SUB(0001)AND(0010)STA(0011)LDA(0100)JC(0101)STP(0110)1011181219131A141B150FC=0C=11F160F图3.7微程序流程图RAMIBUSTJSWDBUSDBUSRiTJSWDBUSDBUSARDBUSPCTJSWDBUSDBUSRAM1ERAMIBUSRsDBUSTJ0D0E0607RsDBUSPC+1TJ171COUT(0111)SWCSWBSWC微指令代码表根据图3.7的微程序流程图计算出微程序代码比较困难。为了计算出微程序代码,需要1个各微指令使用的信号表,即代码表。表3.4微程序代码表微指令KTRRFWRFRRMWRMPR当前微地址000C1E06070B1D0D0E0A0203090405080F6下一微地址081E06071E1D0D0E1D0203020405040F10P01................P1................1P2.................备用.................TJ.1..11.11.1.1.1..LDIR...1...1........1PC+1.................LDPC#.1...1.........1.AR+1...........1..1..LDAR#.1...1...1..1....LDDR1.................LDDR2.................LDRi........1........SW_BUS#.11..11.11..11.1.RS_BUS#....1............ALU_BUS#.................RAM_BUS#..........1......CER#...1...1........1CEL#..1...1...1..1...LR/W#..0...0...1..0...Cn#.................M.................S0.................S1.................S2.................S3.................注:后缀为#的信号都是低电平有效信号,为了在控存ROM中用“1”表示有效,这些信号在控制器中经过反相后送往数据通路。表3.4微程序代码表(续)微指令ADDSUBANDSTALDAJCSTPOUT当前微地址10181119121A131B141C151F1617下一微地址180F190F1A0F1B0F1C0F0F0F0F0FP0..............P1..............7P2..........1...备用..............TJ...........
本文标题:实验四--常规型微程序控制器组成实验
链接地址:https://www.777doc.com/doc-5485019 .html