




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
EDA第六次实验日志微程序控制器实验实验预习:微程序控制器的组成和工作原理是什么?微程序、微指令、微命令之间有什么关系?微指令、微程序如何设计与调试?预习解答:微程序控制器的组成和工作原理是什么?微程序控制器的原理图如图所示。微程序控制器主要由控制存储器、微指令寄存器和地址转移逻辑三大部分组成,其中微指令寄存器分为微地址寄存器和微命令寄存器两部分。石器。石器。并执行;重复上面动作知道微程序结束。读出一条微指令并执行微指令的时间总和称为一个微指令周期。通常在串行方式的微程序控制器中,微指令周期就是只读寄存器是的工作周期。控制存储器的字长就是微指令字的长度,其存储容量视机器指令系统而定,即取决于微程序的数量。对控制寄存器的要求是读出周期要短,因此通常采用双极型半导体只读寄存器。(2)微指令寄存器微指令寄存器用来存放由控制器读出的一条微指令信息。其中微指令寄存器决定将要访问的下一条微指令的地址,而微命令寄存器则保存一条微指令的操作控制字段和判别测试字段的信息。(3)地址转移逻辑在一般情况下,微指令由控制存储器读出后直接给出下一条微指令的地址,通常简称为微地址,这个微地址信息就存放在微地址寄存器中。如果微程序不出现分支,那么下一条微指令的地址就直接由微地址寄存器给出,当程序出现分支时,意味着微程序出现条件转移,在这种情况下,通过判别测试字段P和执行内部的“状态条件”反馈信息,去修改微地址寄存器的内容;并按照改好的内容去读下一条微指令。地址转移逻辑就承担自动完成修改微地址的任务。其工作原理分为:一、将程序和数据通过输入设备送入存储器;二、启动运行后,从存储器中取出程序指令送到控制器去识别,分析该指令要求什么事;三、控制器根据指令的含义发出相应的命令(如加法、减法),将存储单元中存放的操作数据取出送往运算器进行运算,再把运算结果送回到存储器指定的单元中;四、运算任务完成后,就可以根据指令将结果通过输出设备输出。微程序、微指令、微命令之间有什么关系?实现一条机器指令功能的许多条微指令组成微程序。在机器的一个CPU周期中,一组实现一定操作功能的微命令的组合构成一条微指令。控制部件通过控制线像执行部件发出的各种控制命令叫做微命令。所以总的说来:微程序包含微指令,而每条微指令包含微命令。微指令、微程序如何设计与调试?在微程序流程图中,根据每个状态的微指令,将其进行编码,设计出所需硬件及执行效率较高的微程序控制电路,然后进行调试。课后习题:举例说明实验中出现的基本概念:微命令、微操作、微指令、微程序?微命令:控制器发出的每个控制信号,如对运算单元的控制mcns3s2sis0发出的010101等。微操作:由微命令控制实现的最基本的操作称为微操作。如发出运算器家运算的微命令后,运算器进行假发运算,就称为微操作。微指令:完成一个或几个微操作的指令。如控制器进行存数据命令后,需要we信号有效,pc保持,来控制这些的指令即为微指令。微程序:微程序包含微指令。如微程序流程中包括很多微指令控制,进行一些加减运算,存储数据,地址自加一等等。解释并比较微程序控制器的几种设计方法?为序列控制器通过把控制信号存储在一个查找ROM(1)用水平编码生成微操作(2)用垂直代码生成微操作(3)用伪代码直接产生控制信号微程序控制器的功能是什么?如何取指令、分析指令、执行指令?控制器的功能:它根据用户预先编好的程序,依次从存储器中取出各条指令,放在指令寄存器IR中,通过指令译码(分析)确定应该进行什么操作(包括中断处理),然后通过操作控制器OC,按确定的时序,向相应的部件发出微操作控制信号。通过下址取得指令,根据控制信号进行不同的信号的开启或关闭也就是分析指令,然后再在控制信号的作用下执行指令。常用的下址产生方法有哪些?实验中用到了哪些?常用的下址产生方法有:计数器方式增量方式与断定方式的结合多路转移方式实验中用到了多路转移方式。每条机器指令的指令码如何与其入口微地址对应?通过编码方式,将指令码的状态分成不同的几个,再运用微地址进行编码,对不同的微指令变成不同的地址,一一对应。如何简化微程序流程图中的ADD、AND指令?只对ALU部分的下址进行区分,其他部分用同样的下址即可,这样可以省去一个IR的编码状态。电路设计过程中如果出现多个状态机怎么办?将不同的状态机的控制信号加以区分,在不同控制信号作用下进行多个状态机的控制。日志部分11月16号之前看了实验,但由于忙着写其他课程的作业的原因,没有仔细把实验原理看懂,看到了一堆复杂的微指令之后就茫然了,不知所措。实验课时,老师讲解了本次实验的实验原理和实验内容,并举例说明了如何实现微指令,对微指令又复习了一遍。11月17号老师讲完课之后我就知道了ROM是用来存放微指令的,但实际如何实现我还不知道。ROM部分由于是lpm定制的,需要对mif文件进行初始设置,开始不知道怎么弄,后来问了同学明白了,ROM中存储微指令的功能实际上是通过将输入的地址映射到相应地址单元去读取单元中的二进制码与输出一一对应来实现的存储微指令功能。完成了设计微代码。ROM部分开始是用lpm定制的,后来看了ppt好像是要求用代码,就又写了ROM的代码。列出微代码如下:(ROM部分)output<="1010111100000000000000000001"whenaddress="00000"else--SW->PC"1111111000001000000000000010"whenaddress="00001"else--PC->AR,PC=PC+1"1001111100000100000001101000"whenaddress="00010"else--RAM->IR"1111111000001000000000010101"whenaddress="01001"else--LDA1:PC->AR,PC=PC+1"1001111100001000000001010110"whenaddress="10101"else--LDA2:RAM->AR"1001111110000000000001000001"whenaddress="10110"else--LDA3:RAM->R5"1111111000001000000000010111"whenaddress="01010"else--STA1:PC->AR,PC=PC+1"1001111100001000000001011000"whenaddress="10111"else--STA2:RAM->AR"1001101100000000000000000001"whenaddress="11000"else--STA3:R5->RAM"1111111000001000000000011001"whenaddress="01011"else--OUT1:PC->AR,PC=PC"1001111100001000000001011010"whenaddress="11001"else--OUT2:RAM->AR"1001111100000000000001000001"whenaddress="11010"else--OUT3:RAM->BUS"1001101100010000000000011011"whenaddress="01100"else--COM1:R5->DR1"1001110110000010000000000001"whenaddress="11011"else--COM2:/ALU->R5"1111111000001000000000011100"whenaddress="01101"else--JMP1:PC->AR,PC=PC"1011111100000000000001000001"whenaddress="11100"else--JMP2:RAM->PC"1111111000001000000000000011"whenaddress="01110"else--ADD1:PC->AR,PC=PC"1001111100001000000001000100"whenaddress="00011"else--ADD2:RAM->AR"1001111100100000000001000101"whenaddress="00100"else--ADD3:RAM->DR2"1001101100010000000000000110"whenaddress="00101"else--ADD4:R5->DR1"1001110110000001100100000001"whenaddress="00110"else--ADD5:ALU->R5加"1111111000001000000000011101"whenaddress="01111"else--AND1:PC->AR,PC=PC"1001111100001000000001011110"whenaddress="11101"else--AND2:RAM->AR"1001111100100000000001011111"whenaddress="11110"else--ADD3:RAM->DR2"1001101100010000000000000111"whenaddress="11111"else--ADD4:R5->DR1"1001110110000010101100000001"whenaddress="00111"else--ADD5:ALU->R5101011and"1010111100000000000000010001"whenaddress="10000"else--KWE1:SW->BUS"1111111000001000000000010010"whenaddress="10001"else--KWE2:PC->AR,PC=PC"1000111100000000000010010001"whenaddress="10010"else--KWE3:SW->RAM"1010111100000000000000010011"whenaddress="01000"else--KWE1:SW->BUS"1111111000001000000000010100"whenaddress="10011"else--KWE2:PC->AR,PC=PC"1001111100000000000001010011"whenaddress="10100"else--KWE3:RAM->BUS"1001111100001000000000000000";后来发现自己写的微代码的顺序和书上电路图部分那几个端口的顺序不太一样,不想再改代码了,于是把端口的顺序改来将就微代码。Vhdl编译时老是提醒出错,但是我找了好久都不知道到底错在哪里,后来发现是process的问题,原来用了process,编译时就会报错,后来直接把process删掉了,编译就通过了,好像是并行和串行的问题。11月22号在将时序电路的电路图放到本次实验的工程中的时候,也出现了一点问题,只copy了状态图文件和状态图的bsf文件到当前工程中,对当前工程进行编译的时候,报了错,才想起来是不可以直接对状态图进行编译的,于是又把vhd文件拷贝了过来。完成了绘制电路图。11月23日添加数码管模块,下载到实验箱上,验证每一步都正确执行了,并解释每步的有效信号。用模拟机实现老师给的运算:(非5非D)A(非B加A)其中A=05HB=0AHC=01HD=02H设计程序表:RAM地址内容说明00H20HLDA01H18HLDA18H->R502H80HCOMR5->R503H40HSTA04H1CHSTAR5->1CH05H20HLDA06H19HLDA19H->R507H80HCOMR5->R508HE0HAND09H1CHR5AND1CH->R50AH40HSTA0BH1DHSTAR5->1DH
0CH20HLDA0DH1AHLDA1AH->R50EH80HCOMR5->R50FHC0HADD10H1BHR5ADD1BH->R511HE0HAND12H1DHR5AND1DH->R513H40HSTA14H1EHSTAR5->1EH15H16H17H18H01H存放D19H02H存放C1AH0AH存放B1BH05H存放A1CH存放非D1DH存放非DMEC1EH存放(非5非D)A(非B加A)HexEdit文件:运行模拟机:按下nemor^按下nemor^:00:20B8:E001:1809:1C02:800A:4003:400B:1D04:1C0C:2005:200D:1A06:190E:8007:800F:C010:1B11:E012:1D13:4014:1E15:0016:0017:0018:0119:021A:0AIB:051C:00ID:00IE:00IF:0020:0021:0022:0023:0024:0025:0026:0027:0028:0029:002A:002B:002C:002D:002E:002F:0030:0031:0032:0033:0034:0035:0036:0037:0038:0039:003A:003B:003C:003D:003E:003F:00——START——OP:0050M_NXT_ADDR:0BMem0D中的数据都是在Hex■■■每一步寄存器中的值。今天学会了如何写程序表来进行复合运算,而且得到了正确的结果:PC:14OP:E0M_ADDR:01M_NXT_ADDR:02AR:13DR1:FFFADR2:FFFCR5:FFF8PC:14OP:40M_ADDR:02M_NXT_ADDR:0AAR:13DRl:FFFfiDR2:FFFCR5:FFF8PC:15OP:40M_fiDDR:0fiM_NXT_fiDDR:17AR:14DRl:FFFfiDR2:FFFCR5:FFF8PC:15OP:40M_fiDDR:l?M_NXT_fiDDR:18AR:1EDRl:FFFfiDR2:FFFCR5:FFF800:2001:1802:8003:4004:1C05:2006:1907:8008:E009:1C0A:400B:1D0C:200D:1A0E:800F:C010:1B11:E012:1D13:4014:1E15:0016:0017:0018:0119:021A:0AIB:051C:FFFE1D:FFFCIE:FFF8IF:0020:0021:0022:0023:0024:0025:0026:0027:0028:0029:00
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO/IEC 19762:2025 EN Information technology - Automatic identification and data capture (AIDC) techniques - Vocabulary
- 【正版授权】 ISO 13402:2025 EN Surgical and dental hand instruments - Determination of resistance against autoclaving,corrosion and thermal exposure
- 【正版授权】 IEC 60614-1:1994 EN-D Conduits for electrical installations - Specification - Part 1: General requirements
- 【正版授权】 IEC 60335-2-75:2024 EXV-CMV EN Household and similar electrical appliances - Safety - Part 2-75: Particular requirements for commercial dispensing appliances and vending mac
- 劝学的课件讲解
- 副肿瘤综合征护理
- 小学春节安全教育
- 20xx年高端专业模版
- 上海师范大学天华学院《精读二:文学与人生》2023-2024学年第二学期期末试卷
- 江苏食品药品职业技术学院《污染与恢复生态学》2023-2024学年第二学期期末试卷
- 2019年四川省广元市利州区万达中学小升初数学择校考试卷
- 粮食流通管理条例考核试题及答案
- 搞好班组安全建设
- 德语四级真题2023
- TPM培训讲义的教案
- 农村公路养护工程预算定额(征求意见稿)
- 2023年社保基金安全警示教育学习研讨会发言稿报告(4篇)
- 院感知识考试试题及答案
- GB/T 28724-2012固体有机化学品熔点的测定差示扫描量热法
- GB/T 23743-2009饲料中凝固酶阳性葡萄球菌的微生物学检验Baird-Parker琼脂培养基计数法
- 第2章城市道路网规划课件
评论
0/150
提交评论