微程序控制器试验报告_第1页
微程序控制器试验报告_第2页
微程序控制器试验报告_第3页
微程序控制器试验报告_第4页
微程序控制器试验报告_第5页
已阅读5页,还剩9页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、微程 序控制器实验预习报告1. 微程序控制器的组成和工作原理。 微程序控制器主要由控制存储器、微指令寄存器和地址转移逻辑三大部分组 成。 其工作原理分为:一、将程序和数据通过输入设备送入存储器; 二、启动运行 后,从存储器中取出程序指令送到控制器去识别,分析该指令要求什么事; 三、 控制器根据指令的含义发出相应的命令(如加法、减法),将存储单元中存 放 的 操作数据取出送往运算器进行运算,再把运算结果送回存储器指定的单元中 ; 四、运算任务完成后,就可以根据指令将结果通过输出设备输出2微程序、微指令、微命令之间的关 系。 一系列微指令的有序集合称为微程序。 在微程序控制方式之下,从控制存储器中

2、取出,完成一个或几个微操作的命 令 称为微指令。控制部件通过控制线向执行部件发出各种控制命令 , 通常把这种控制命令叫做微 命令。所以总的来说:微程序包含微指令,而每条微指令包含的微命令控制。3. 微指令、微程序的设计及调试。 在微程序流程图中,根据每个状态的微指令,将其进行编码,设计出所需硬 件 及执行效率较高的微程序控制电路,然后进行调试。思考题:1. 举例说明实验中出现的基本概念: 微命令、微操作、微指 令、微程序? 微命令:控制器发出的每个控制信号,如对运算单元的控制 m cn s3 s2 s1 s0 发出的 010101 等。微操作:由微命令控制实现的最基本的操作称为微操作。如发出运

3、算器加 运算的微命令后,运算器进行加法计算,就称为微操作。微指令:完成一个或几个微操作的指令。如控制器进行存数据的命令后, 需要有we信号有效,pc保持,来控制这些的指令即为微 指令。微程序:微程序包含微指令。如微程序流程中包括很多微指令控制,进行 一些加减运算,存储数据,地址自加一等等。2. 解释并比较微程序控制器的几种设 计方法? 微序列控制器通过吧控制信号存储在一个查找 Rom,(1) 用水平编码生成微 操作 (2) 用垂直编码生成微操作 (3) 从微代码直接产生控制信号。3. 微程序控制器的控制对象、手段及 方法?控制器如何取指 令? 微程序控制器控制对象分为硬件方面和软件方面,硬件方

4、面为数据通路的 控制信号,软件方面为测试程序的控制信号。 控制器根据状态机的不同状态进行指令读取,在不同状态下取得的指令也 不同。4. 控制器的功能?如何取指令、分析 指令、执行指令? 通过下址取得指令,根据控制信号进行不同信号的开启或关闭也就是分析 指令,然后再在控制信号的作用下执行指令。5. 下址的产生方法?常用的有哪些, 实验中用到了哪些?A:计数器方式一一在顺序执行微指令时,后续微指令地址由现行微指令 加上一个增量来产生;在非顺序执行微指令时,必须在执行现行微指令后, 转去执行指定后续微指令地址的下一条微指令。E:增量方式与断定方式的结合一一微指令的顺序控制字段分成两部分: 条件选择字

5、段与转移地址字段 . 由这两个字段结合,当转移条件满足时, 将转移地址字段作下一个微地址;若无转移要求,则直接从微程序计数器 中取得下一条微指令 . 一般用于微指 令执行时,需要外部判断条件的场 合 C:多路转移方式一一当微程序不产生分支时,后续微地址直接由微指令 的顺序控制字段给出;否则有若干个后续地址可以选择,此时必须由顺序 控制字段的判别测试和状态条件信息来选择其中一个微地址 . 一般用于有多个转移且可以使用组合逻辑设计转移地址逻辑的场合。 实 验中用到了多路转移方式。6. 每条机器指令的指令码如何与其入 口微地址对应?微程序 分支如何处理? 通过编码方式,将指令码的状态分成不同的几个,

6、再运用微地址进行编码, 对不同的指令码编程不同的地质,一一对应。在不同分支出现时利用临时寄存器 IR 对几个分支进行编码,映射为不同 状态。7. 如何简化微程序流程图,使其 ADD AND旨令在部分微指令中合并?(如AFHRAM RAM>DR2 R5DR1只对ALU部分的下址进行区分,其他部分用同样的下址即可,这样可以省 去一个 IR 的编码状态。8. 电路设计过程中如果出现多个状态 机怎么办? 将不同状态机的控制信号进行区分,在不同控制信号作用下进行多个状态机 的 控制。实验日志11月 10日对微指令的复习和理解,明白了下址的控制方法但是对电路中 P1 的意义不太理 解。经过看微程序流

7、程图,发现 P1在Idir需要进行下载时有效,所以 P1即为控制 临时存储器 IR 的控制信号,该控制信 号由流程图中第四步中有效,来控制 IR 的下址是否有效。11 月 12日编写ROM寸发现P1具体为1的状态不同会出现不能强读强写,所以将 P1为1 改为当RAM数据传到IR时令其有效,得到正确波形。11 月 18日仿真时发现ar的第一个地址不正确, 应该为00H但是却是个不是个确定的值。 经分析发现第一个ar值应该为sw输入到总线上,而总线的值没有k输入,所以将k的输入设定为00H,得到的仿真结果正确。实验报告ROM部分代码(只显示编码部分):Sw r4b r5b alu pcbus dr

8、1 dr2 r4l r5l m cn s3 s2 s1 s0 we rd pclr pcld pcen ldar ldir p1 下址五位 "0111100000000000010100000001"whe naddress="OOOOO"ELSE-SW->PC"1111000000000000011110000010"whe naddress="00001"ELSE-PC->AR PC=PC+1"1111100000000000110001101000"whe naddress=&

9、quot;00010"ELSE-RAM->IR"1111000000000000011110010101"whe naddress="01001"ELSE-LDA1:PC->AR PC=PC+1"1111100000000000110010010110"whe naddress="10101"ELSE-LDA2: RAM-> AR"1111100010000000110000000001"whe naddress="10110"ELSE-LDA3:

10、RAM->R5"1111000000000000011110010111"whe naddress="01010"ELSE-STA1: PC->AR PC=PC+1"1111100000000000110010011000"whe naddress="10111"ELSE-STA2:RAM -> AR"1101100000000001010000000001"whe naddress="11000"ELSE-STA3:R5->RAM"1111

11、000000000000011110011001"whe naddress="01011"ELSE-OUT1: PC->AR PC=PC+1"1111100000000000110010011010"whe naddress="11001"ELSE-OUT2: RAM -> AR"1111100000000000110000000001"whe naddress="11010"ELSE-OUT3:RAM->BUS"1101110000000000010000

12、011011"whe naddress="01100"ELSE-COM1:R5->DR1"1110100011000000010000000001"whe naddress="11011"ELSE-COM2:/ALU->R5"1111000000000000011110011100"whe naddress="01101"ELSE-JMP1:PC->AR PC=PC+1"1111100000000000110100000001"whe naddre

13、ss="11100"ELSE-JMP2:RAM->PC"1111000000000000011110000011"whe naddress="01110"ELSE-ADD1:PC->AR PC=PC+1"1111100000000000110010000100"whe naddress="00011"ELSE-ADD2:RAM->AR"1111101000000000110000000101"whe naddress="00100"ELS

14、E-ADD3:RAM->DR2"1101110000000000010000000110"whe naddress="00101"ELSE-ADD4:R5->DR1"1110100010110010010000000001"whe naddress="00110"ELSE-ADD5:ALU-R5 加"1111000000000000011110011101"whe naddress="01111"ELSE-AND1:PC->AR PC=PC+1"1

15、111100000000000110010011110"whe naddress="11101"ELSE-AND2:RAM->AR"1111101000000000110000011111"whe naddress="11110"ELSE-AND3:RAM->DR2"1101110000000000010000000111"whe naddress="11111"ELSE-AND4:R5->DR1"1110100011010110010000000001&q

16、uot;when address="00111"ELSE-AND5:ALU-R5101011and"0111100000000000010100010001"whe naddress="10000"ELSE-KWE1:SW->PC"1111000000000000011110010010"whe naddress="10001"ELSE-KWE2:PC->AR PC=PC+1"0111100000000001010000010001"whe naddress=&q

17、uot;10010"ELSE-KWE3:SW->RAM"0111100000000000010100010011"whe naddress="01000"ELSE-KWE1:SW->PC"1111000000000000011110010100"whe naddress="10011"ELSE-KWE2:PC->AR PC=PC+1"1111100000000000110000010011"whe naddress="10100"ELSE-KWE3

18、:RAM->BUS"1111100000000000100010000000"没有加数据通路部分时的仿真波形:njm11VdluI 4V KI n>波形分析:将状态机定为单步运行状态,dp为1, qd每次进行启动。CLR由1->0->1,清零作用使微地址 A40为00000。执行第一个单拍,执行将输入值传给 pc,得到下址00001执行第二个单拍,执行微地址为 00001的微指令,PC->AR pc自加一,地址计 数加1变为01H,得到下址00010。执行第三个单拍,将00地址的值读出来赋给IR,在T3时序信号到来时, 执行将RAM中存放的数据

19、(指令)送到IR (指令寄存器),此处运用手动输入 的方法,同时给出判别信号 P及下一条微指令的地址01000,在T4有效时,P1 为1,IR7,IR6,IR5可以手动输入010将微地址改为01010,产生下条微指令 的地址。然后即可进入STA指令操作。然后下址为10111,开始执行RAM- AR操作。从其他输出信号看产生的 输出也是正确的。下一个操作进行强读信号的执行。在之前将CLR信号置为0,进行清零才行,得到0 0 0 0 0地址。然后将KRD信号从1到0再到1,使得a 3 强置数为1,可以将地址从0 0 0 0 0变为0 1 0 0 0,该地址产生下址10 0 11,即为强读控制信号。

20、加入数据通路部分进行仿真:说明:数据通路加上后应该修改部分控制信号,以满足状态机在不 同状态下控制ar, alu , pc等的正确执行。修改如下:if 匕2*色寸色m a*d -* 11七上吏二if lddrl=r 2 二已壬二 dr l<=bTis_re5; elslf lddr2« !11 Then dr2<-bus reg;| END if:-EM xf:1 f t3 * eVenT; and t 3="= 1 1 * t 七电詐if idr4=111 七E它Frey;elsrf ldzE11 -Xen r5<bns reg;T2时刻由于要将RAM勺

21、数据送出,同时dr1或者dr2得到数据,然后进行逻辑 或算术运算,故RAMclk应该有效,Iddr及Iddr2有效。T3时刻将地址送入ar或将dr1及dr2的运算结果存入R4或R5,故Iddr4和Iddr5有效,ar的clk有效。波形如下:iLOO De±40 A mJU 0400 D 応 SOO ntffiO 0 ni W 0 h< MO 0 m »0 0 血rtla4F叮123” 1cotiiil jli it iiiiiii j*l relrr1* .1KUJK>XCl4L1L“创片 Ttj母.7聒匚3.】匡0no匸 i n ! 皿2S “ioo丄# C4

22、狎9 tie.3 42-ti,<kkcXamiX0310X口 口;a30,?,8呛X. «iXbCK<J" ILri <rOWwj OlkCi1出d: -T;TXXXtZB""UKiTKI I'rtaultJQJ-3&El P毛:"SCS C-:" X ''H3;anni iq*阴B "L.-CBttL® k:, , T . . ”/波形分析:(125为显示电路时钟信号,a|g为七段译码器各管,Eq为四个驱 动灯控制信号,此处不做讨论)1、初始状态clr为0将a4.

23、O清零,然后将qd从1变为0再到1, dp定 为1,使状态机进入单步运行状态(或者 qd 直为1,为连续循环运行状态)。可以看出t的变化从0000到1000循环2、随着一个单步周期 a从00001到00010变化。200ns到300ns, pc变为101置数状态,将sw->pc执行。3、地址a为00001,执行pc->AR,pc变为111,ar为00H,使得RAM寻到00H的地址为下一指令输出该地址的数据做准备,进行加计数得到总线数据位01H,同时产生下址00010。1.1 »1 1 tlh1弋at T.«Hior 1£5rtt1_11_11_11L

24、1_1t 1 1 11 11drysnoCTC亠昔电4J如73ini-iliOQg|i ftK 1oa®r? »JtL 9DO1 召 1u3 na O1SOur打1时四一卿!Y MAC :f C> LOO X tLKi Y Ml 第 Udio X回<«J&lOJQi: ! 1DC10 ICtlw国 41jj'!X_so_X.# rIS rsII 1IKDCni云卅AIj«l<hi winQiiormn园*1COLJ 93国見4、地址为00010时,执行RAM->IR指令,总线上显示00H,同时产生下址01000且令

25、p1为1,使得IR在下一周期得到总线上高三位的地址。(不 再采用单步运行仿真,令qd=1连续运行)5、地址为01000时,总线数据位00H单元的数据20H,其二进制高三位为001,由于P1为1,使得1.2us到1.3us时t4有效将ir送入a的低三位产生新的地址01001,开始进行LDA指令操作,往后依次类推。6、 地址为01001时进行PC->AR , PC=PC+操作,产生的下址为10101,总线显示为01H后,ar得到01H单元数据0D作为新的地址,然后送入RAM(RAM -> AR , pc的值为100及111也符合状态。I I 厂 厂 I I I I I I I I I

26、I 鬥<<?Id也 1 Sillt0:*»DCSopDDX CXhOLX OQLQX l&OK 1QOXXX 门1°°X丨 口曲XX1C1QT XLOI IQXamoiZ3CZZZZZ2ZZ-"¥yr虫T111602DCLO:CLK*電d 也| tj_elu inuL I 二 <l u liEll tL | r_»lui LmHI* w w i Mt ITEi 2弼鼻7、地址为10101产生的下址为10110,执行RAM->R5此时ar地址已经为0DH (见上一步骤产生原因)8、在该单步运行周期结束后,

27、下一周期t1变为1后送到数据通路部分进行执行,在数据总线显示55H后,再有一个时钟将总线数据打入 R5, R5显示正确。10110产生下址00001。JB聆GLXVWSgIXJu:-la33sf9el3TJ.U lILTtl I .JiTlS tl | r_«JLn i mt 1 p d-_.bjf xi.ai t. Jl ryali.4 1I1S11«dw-kiI *mI-S15&QWif b,l-厂 NEY L.V.-Y 佔肌X- X," y 抓 Xr.>X(JW1QDCZQIWQ工:狂 乂8*8Tco丽TX 一r 1U T- JC ;_L 3

28、.-I *9、地址为00001时,pc加计数从02H变为03H,同时得到下址02H送到ar产生下址00010。10、地址为00010时,第三个节拍,ar得到02H地址,在下一单步运行周期 的第二节拍将02H地址的数据送出到总线,总线显示 C0H产生下址 01000。11、 Pc保持100,此时p1为1,同时LDIR有效,取得总线数据高三位110 作为a的后三位。产生下址01110,进入ADD操作环节。总结一下:此时R5存储55H, R4, R2, R1都没有值。下一步将要从 RAM中取得数据直接送入R2,再将R5的送入R1,运用ALU部分进行加运算L±JL1JLL*L£L1

29、JL±E国回E3占鮭3- 6XTiw3.Q«3 ?US4-0wi 1( us,4.Z ua1_11_1 1 iJ-1I1cds&02 *03戈 .00jodTX" odio XT ouu 3T 1000 TXT 0001 TXT ou凶 3T oioo "X iodo TXT oooi>-i >00031LWJ ! JJTSZ2ES22McOfL111DCmomitl*lu 轟讥I12 地址为00011前,数据通路部分执行上个周期的指令 PC->AR PC=PC+。 总线上03H变为04H,与上次执行相同的指令,将 03H地址给

30、ar。同时 产下下址00100。13 地址为00100时,数据通路部分执行上个周期的指令,得到03H单元的数据0EH作为地址,送入ar中,产生下址00101。clr£3* 1TJ* fto iay 434 <6CK1=11心讦S'l>ts* yrv 畳.71FI±llbd3:d.TI35!TI71KTEk na.ll | I.Olli IRKt |4rZ r( si * iThilJi ilr-® iruU |u-pti .creu比灯 |轴14 地址为00101时,数据通路部分执行上个周期的指令,得到0EH单元数据8AH总线显示出了该单元的数

31、据即为 8AH产生下址00110。地址15 为00110时,执行上个周期指令,将 8AH送入R2寄存器。R2寄存器显示数据位8AH正确。同时产生下址00001地址为00001时,执行上一周期操作,将 R5的数据送入到R1,看到R1 显示数据可以得知该显示为正确的。然后进行ALU加运算,得到加的结果为DFH送入到R5总线显示计算结果正确,同时R5得到数据DFH产生下址0001017 地址为00010时再次重复之前操作,此处不再分析。地址为04H,然后得到04H单元数据40H,其二进制高三位为下址低 三位。所以得到下址为01010,进入STA指令操作。地址为10111时,执行上条指令的操作 PC-

32、>AR PC=PC+,1将地址05H 送入ar,pc自加一变为06H,显示在总线上。然后下址为11000。<liG.卑 m6 - &口4I B «i7 如i _FImcCUdf3m叩込QI_4u kuCl |&35,泊.du tuulbQr.tlq mrdlTw厨 pr_*r init.11 <nOQa wniBDl X Kirn I DLDD X 10 XI ®L0 I P1DC X 3 ,f; (HOI 羽!D、血 ZOoinjfSST 1 un匸i .-cjnc - wsixB d»1K3:li)(Tr»dim X

33、训wx «Xorri±J ttLil X皿JCilla It520 地址为11000时,操作上一步指令,将05H单元数据10H送入AR作为 新的地址,产生下址00001。21 地址为00001时,上一步操作将R5数据存入地址为10H的Ram中,总线 显示数据位DFH操作正确,同时产生下址 00010。22接下来的操作与之前相同,不再赘述同样的经过几个节拍脉冲,将地址 a到01000状态,此时总线高三位是 011,在p1为1,ldir有效时得到下址01011。进入OUT操作分支。 与24STAB作相同,只是在最后a地址为11010时产生下址00001。同时 执行RAM到AR的

34、操作,此时RAM勺07H单元数据位10H,将该数据继续 作 为AR显示RAM10哋址的数据。25、 地址为00001时执行上步操作,将 Ram勺0H地址的数据显示出来为 DFH可见数据写入成功。余下的将进行如下操作:将R5的数据DFH与 Ram中 0FH单元数据F0H进行相与运算得到D0H,送至R5, 再对其取反的2FH最后无条件返回00H单元地址。不再进行波形分析。下载验证时引脚分配如下:37KRD3811>KWEIrwutPIN 901 W 1CLKIrvutPIN 122H£rojtPITIES1 11*L25Pirj_i25K的输入可以直接置为低电平,不再分配。最后为模拟机部分:运算

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论