ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:212KB ,
资源ID:9765312      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9765312.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微程序控制器实验报告.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

微程序控制器实验报告.docx

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

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

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

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

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

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

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

8、r1 dr2 r4l r5l m cn s3 s2 s1 s0 we rd pclr pcld pcen ldar ldir p1 下址五位 0111100000000000010100000001 when address=00000 ELSE-SW-PC 1111000000000000011110000010 when address=00001 ELSE-PC-AR PC=PC+1 1111100000000000110001101000 when address=00010 ELSE-RAM-IR 1111000000000000011110010101 when address=0

9、1001 ELSE-LDA1:PC-AR PC=PC+1 1111100000000000110010010110 when address=10101 ELSE-LDA2: RAM- AR 1111100010000000110000000001 when address=10110 ELSE-LDA3:RAM-R5 1111000000000000011110010111 when address=01010 ELSE-STA1: PC-AR PC=PC+1 1111100000000000110010011000 when address=10111 ELSE-STA2:RAM - AR

10、 1101100000000001010000000001 when address=11000 ELSE-STA3:R5-RAM 1111000000000000011110011001 when address=01011 ELSE-OUT1: PC-AR PC=PC+1 1111100000000000110010011010 when address=11001 ELSE-OUT2: RAM - AR 1111100000000000110000000001 when address=11010 ELSE-OUT3:RAM-BUS 110111000000000001000001101

11、1 when address=01100 ELSE-COM1 :R5-DR1 1110100011000000010000000001 when address=11011 ELSE-COM2:/ALU-R5 1111000000000000011110011100 when address=01101 ELSE-JMP1:PC-AR PC=PC+1 1111100000000000110100000001 when address=11100 ELSE-JMP2:RAM-PC 1111000000000000011110000011 when address=01110 ELSE-ADD1:

12、PC-AR PC=PC+1 1111100000000000110010000100 when address=00011 ELSE-ADD2:RAM-AR 1111101000000000110000000101 when address=00100 ELSE-ADD3:RAM-DR2 1101110000000000010000000110 when address=00101 ELSE-ADD4:R5-DR1 1110100010110010010000000001 when address=00110 ELSE-ADD5:ALU-R5 加111100000000000001111001

13、1101 when address=01111 ELSE-AND1:PC-AR PC=PC+1 1111100000000000110010011110 when address=11101 ELSE-AND2:RAM-AR 1111101000000000110000011111 when address=11110 ELSE-AND3:RAM-DR2 1101110000000000010000000111 when address=11111 ELSE-AND4:R5-DR1 1110100011010110010000000001 when address=00111 ELSE-AND

14、5:ALU-R5 101011and 0111100000000000010100010001 when address=10000 ELSE-KWE1:SW-PC 1111000000000000011110010010 when address=10001 ELSE-KWE2:PC-AR PC=PC+1 0111100000000001010000010001 when address=10010 ELSE-KWE3:SW-RAM 0111100000000000010100010011 when address=01000 ELSE-KWE1:SW-PC 1111000000000000

15、011110010100 when address=10011 ELSE-KWE2:PC-AR PC=PC+1 1111100000000000110000010011 when address=10100 ELSE-KWE3:RAM-BUS 1111100000000000100010000000;没有加数据通路部分时的仿真波形:波形分析:将状态机定为单步运行状态, dp 为 1,qd 每次进行启动。CLR由 1-0-1 ,清零作用使微地址 A40为 00000。 执行第一个单拍,执行将输入值传给 pc,得到下址 00001 执行第二个单拍,执行微地址为 00001的微指令, PC-AR,p

16、c自加一,地址计 数加 1 变为 01H,得到下址 00010。执行第三个单拍,将 00 地址的值读出来赋给 IR,在 T3 时序信号到来时, 执行将 RAM中存放的数据(指令)送到 IR(指令寄存器),此处运用手动输入的 方法,同时给出判别信号 P及下一条微指令的地址 01000,在 T4有效时, P1 为 1,IR7,IR6,IR5 可以手动输入 010 将微地址改为 01010,产生下条微指令的地 址。然后即可进入 STA指令操作。然后下址为 10111,开始执行 RAM- 操作。 从其他输出信号看产生的输 出也是正确的。下一个操作进行强读信号的执行。 在之前将信号置为, 进行清零才 行

17、,得到地址。 然后将信号从到再到, 使得 强置 数为,可以将地址从变为, 该地址产生下址, 即为强读控制信号。加入数据通路部分进行仿真: 说明:数据通路加上后应该修改部分控制信号, 以满足状态机在不同状态下控制 ar ,alu ,pc 等的正确执行。修改如下:T2 时刻由于要将 RAM的数据送出,同时 dr1 或者 dr2 得到数据,然后进行逻辑 或算术运算,故 RAMclk应该有效, lddr 及 lddr2 有效。T3时刻将地址送入 ar 或将 dr1 及dr2 的运算结果存入 R4或R5,故lddr4 和lddr5 有效, ar 的 clk 有效。波形如下:波形分析:(125 为显示电路

18、时钟信号, a|g 为七段译码器各管, Eq为四个驱动 灯控制信号,此处不做讨论)1、初始状态 clr 为 0,将a4.0 清零,然后将 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的地址为下一指令输出该地址的数据做准备, 进行

19、加计数得到总线数 据位 01H,同时产生下址 00010。4、 地址为 00010 时,执行 RAM-IR指令,总线上显示 00H,同时产生下址 01000 且令 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+1操作,

20、产生的下址为 10101,总线 显示为 01H后,ar 得到 01H 单元数据 0D作为新的地址,然后送入 RA(MRAM - AR ),pc 的值为 100及 111 也符合状态。7、 地址为 10101 产生的下址为 10110,执行 RAM-R5,此时 ar 地址已经为 0DH (见上一步骤产生原因)8、 在该单步运行周期结束后,下一周期 t1 变为 1 后送到数据通路部分进行执 行,在数据总线显示 55H 后,再有一个时钟将总线数据打入 R5,R5 显示 正确。 10110产生下址 00001。9、地址为 00001时, pc加计数从 02H变为 03H,同时得到下址 02H送到 ar

21、 产 生下址 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部分进行加运算12、 地址为 00011前,数据通路部分执行上个周期的指令 PC-AR PC=PC+。

22、1 总线上 03H变为 04H,与上次执行相同的指令, 将 03H地址给 ar 。同时产 下下址 00100。13、 地址为 00100 时,数据通路部分执行上个周期的指令, 得到 03H单元的数 据 0EH作为地址,送入 ar 中,产生下址 00101。14、 地址为 00101 时,数据通路部分执行上个周期的指令, 得到 0EH单元数据8AH,总线显示出了该单元的数据即为 8AH。产生下址 00110。15、 地址为 00110时,执行上个周期指令,将 8AH送入 R2寄存器。 R2寄存器 显示数据位 8AH,正确。同时产生下址 00001。16、 地址为 00001 时,执行上一周期操作

23、,将 R5的数据送入到 R1,看到 R1显示数据可以得知该显示为正确的。 然后进行 ALU加运算,得到加的结果为 DFH,送入到 R5。总线显示计算结果正确,同时 R5 得到数据 DFH。产 生下址 0001017、 地址为 00010 时再次重复之前操作,此处不再分析。18、 在地址为 01000时,与之前一样,但是此时 pc 加计数并且送到 ar 使其地址为 04H,然后得到 04H 单元数据 40H,其二进制高 三位为下址低三位。 所以得到下址为 01010,进入 STA指令操作。19、 地址为 10111时,执行上条指令的操作 PC-AR PC=PC+,1 将地址 05H送 入 ar

24、, pc 自加一变为 06H,显示在总线上。然后下址为 11000。20、 地址为 11000 时,操作上一步指令,将 05H单元数据 10H送入 AR,作为新的地址,产生下址 00001。21、 地址为 00001时,上一步操作将 R5数据存入地址为 10H的 Ram中,总线显示数据位 DFH,操作正确,同时产生下址 00010。同样的经过几个节拍脉冲,将地址 a 到 01000 状态,此时总线高三位是011,在 p1 为 1,ldir 有效时得到下址 01011。进入 OUT操作分支。24、 与 STA操作相同,只是在最后 a 地址为 11010时产生下址 00001。同时执 行 RAM到

25、 AR的操作,此时 RAM的 07H 单元数据位 10H,将该数据继续作 为 AR,显示 RAM10H地址的数据。25、 地址为 00001时执行上步操作, 将 Ram的 0H地址的数据显示出来为 DFH,可见数据写入成功。余下的将进行如下操作 :将 R5 的数据 DFH与 Ram中 0FH单元数据 F0H进行相与运算得到 D0H,送至 R5, 再对其取反的 2FH。最后无条件返回 00H单元地址。不再进行波形分析。 下载验证时引脚分配如下:K的输入可以直接置为低电平,不再分配。最后为模拟机部分:运算公式为 (A+B)andC,其中 ABC分别为 01H ,02H,03H。模拟机修改内存值如 下图:程序运行步骤为:先进行取 A 的值,到 R5,然后加上 12 单元内部数据( B的值),存入 R5,再运 用 com 指令进行取反,得到的值存入 R5及 RAM14H单元。然后取得 13H 单元数 据到 R5,进行取反运算后存到 R5,再将 14H单元数据存到 R2,R5到 R1,进行 and 运算,最后结果存入 R5及 15H 单元,用 JMP指令跳回至 00H单元。 单步运行结果如下:1、14H单元存入的数据应该为 FFFC,即 A+B取反的结果,从图中可以看出是正确的

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1