实验七八微程序控.ppt_第1页
实验七八微程序控.ppt_第2页
实验七八微程序控.ppt_第3页
实验七八微程序控.ppt_第4页
实验七八微程序控.ppt_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

实验七 八微程序控制器设计 简单CPU 一 实验目的 1 通过实验 进一步理解微程序控制器的组成结构 理解微程序控制器的控制原理2 加深理解微程序控制器的工作原理 掌握指令流程与功能3 理解掌握微程序控制器的设计思路与方法二 实验原理1 微程序控制器的组成原理控制存储器 实现整个指令系统的所有微程序 一般指令系统是规定的由高速半导体存储器构成 容量视机器指令系统而定 取决于微程序的个数 其长度就是微指令字的长度 微指令寄存器 存放从控存读出的当前微指令 微操作控制字段将操作控制信号送到控制信号线上 微地址字段指出下一条微地址的形成 微地址寄存器 存放将要访问的下一条微指令地址地址转移逻辑 形成将要执行的微指令地址 形成方式 取指令公操作所对应的微程序一般从控存的0地址开始 所以微程序的人口地址0是由硬件控制的 当出现分支时 通过判别测试字段 微地址字段 和执行部件的反馈信息形成后即微地址 Cpu设计步骤 拟定指令系统确定总体结构 数据通路 安排时序拟定指令流程 根据指令系统 写出对应所有机器指令的全部微操作机器节拍安排 然后列出操作时间表确定微指令的控制方式 下地址形成方式 微指令格式及微指令字长 编写全部的微指令的代码 最后将编写的微指令放入控制存储器中 指令系统是设计计算机的依据 拟定指令系统将涉及基本字长 指令格式 指令类型 寻址方式等内容根据内存的字长 可定基本字长8位 指令格式 单字长 双字长指令 在双字长指令格式中 第二个字节一般定义为操作数或操作数地址 总体结构 根据要求设计数据通路 拟定指令系统 操作码 地址码 指令格式 寻址方式 直接寻址 指令中给出操作数的地址 指令系统 load store add sub bne 格式 寻址方式 指令类型设置 微指令的编码 操作控制字段 下地址字段 采用直接控制方法15个控制信号 5位下地址 可根据需要扩展 操作码3位 最多定义8条机器指令数据传输范围R R R SS R寻址方式 确定总体结构 寄存器 ALU 数据通路设置 寄存器 ACC MDR MAR IR PC ALU 数据通路 1 设计微程序确定微程序流程图 也就是控制算法流程图 2 确定微指令格式微指令格式中的操作控制字段取决于执行部件的子系统需要多少微指令 假定采用直接控制方式 执行部件需要10个微命令 则操作控制字段需要10位 测试判别字段取决于微程序流程图中有多少处分支转移 假定有3处分支 则测试判别字段需要3位 下址字段取决于微程序流程图的规模 假定微程序共用50条微指令 则下址字段至少需要6位 这是因为ROM地址译码时 26 64 6位地址可容纳64条微指令 3 将微程序编译成二进制代码 4 微程序写入控制存储器 5 设计硬件电路 微程序控制器的设计步骤 在系统的一个基本周期 又称机器周期 一般由几个时钟周期组成 中 一组实现一定操作功能的微命令的组合 构成一条微指令 强调两点 第一 一条微指令的有效持续时间为一个系统基本周期 它表示从CM中读出微指令与执行这条微指令的时间总和 当从ROM中读出下一条微指令后 当前的这条微指令即失效 第二 一条微指令中包含若干个微命令 它们分头并行地控制执行部件进行相应的微操作 微指令除给出微命令信息外 还应给出测试判别信息 一旦出现此信息 执行这条微指令时要对系统的有关 状态标志 进行测试 从而实现控制算法流程图的条件分支 微指令中还包含一个下址字段 该字段将指明ROM中下一条微指令的地址 微程序控制器的结构与微指令的格式密切相关 上图是微程序控制器的结构框图 它由控制存储器 微地址寄存器 微命令寄存器和地址转移逻辑几部分组成 微地址寄存器和微命令寄存器两者的总长度即为一条微指令的长度 二者合在一起称为微指令寄存器 取指令 PC MAR PC 1 PC M MDR IR 执行 addr MAR M MDR ACC Load地址码 主存中的数据读入ACC 拟定指令流程和微命令序列 拟定指令流程 拟定指令流程和微命令序列 微命令序列 取指令 PC MAR PC 1 PC M MDR IR 执行 addr MAR M MDR ACC 取指 取操作数 拟定指令流程和微命令序列 Load 把主存内容读入ACCStore 把ACC内容存入主存Add 主存内容与ACC相加Sub 主存内容与ACC相减Bne 转移 形成控制逻辑 00010100010000000001 00000000000110000010 操作码对应的编码LOAD 000 STORE 001 ADD 010 SUB 011 BNE 100 内存中储存的机器指令 参考设计 机器指令的编码 指令执行的基本过程 2 微程序控制器执行过程A 从控存中逐条读出 取机器指令 用的微指令 并执行取指令公操作 执行完后 从主存读出的机器指令放入IR B 根据IR中的操作码 经过地址形成部件得到该机器指令对应的微程序入口地址 并送入微地址寄存器 C 从控存中逐条取出对应的微指令并执行 D 执行完对应的的一条机器指令的一段微程序后又回到取指微程序的入口微 地址 继续A 3微指令编码法直接控制法 就是在微指令的操作控制字段中 每一个微命令都用一位信息表示 只要将控制字段中表示该命令的相应位置1或置0就可以打开或关闭某个控制门 微命令的产生不必经过译码 控制简单 直观 操作并行性好 缺点 微指令太长 上图中标明了一个基本机器周期中的控制时序信号 例如用上一周期的T4时间按微地址寄存器内容从ROM中读一条微指令 经过一段时间后被读出 用当前周期的T1时间打入到微指令寄存器 T2 T3时间用来控制执行部件进行操作 T4时间修改微地址寄存器内容并读出下一条微指令 操作码地址码 地址转移逻辑 IR 微地址寄存器 操作控制字段 顺序控制字段 微命令操作信号 逻辑程序入口 微指令 安排指令时间表 微程序编码 微地 微地址03的下地址位01111 说明应该是根据指令操作码来形成 即下地址的低3位是指令操作码 高2位为01因此LOAD指令的开始地址是01000 也可以用其他形成方式 Load01000store01001Add01010Sub01011Bne01100地址12的下地址 也要根据运算器的结果是否位 0 来判断 所以其下地址设为10000 以决定下地址是13还是14至于控制信号何时为 1 CPU头文件cpu defsLIBRARYIEEE USEIEEE STD LOGIC 1164 ALL PACKAGEcpu defsIS 定义程序包 包头 包体TYPEopcodeIS load store add sub bne 这个语句适合于定义一些用std logic等不方便定义的类型 综合器自动实现枚举类型元素的编码 一般将第一个枚举量 最左边 编码为0CONSTANTword w NATURAL 8 CONSTANTop w NATURAL 3 CONSTANTrfill STD LOGIC VECTOR op w 1downto0 others 0 FUNCTIOnslv2op slv INSTD LOGIC VECTOR RETURNopcode FUNCTIONop2slv op inopcode RETURNSTD LOGIC VECTOR ENDPACKAGEcpu defs PACKAGEBODYcpu defsISTYPEoptableISARRAY opcode OFSTD LOGIC VECTOR op w 1DOWNTO0 数组有5个元素 其他均0CONSTANTtrans table optable 000 001 010 011 100 FUNCTIONop2slv op INopcode RETURNSTD LOGIC VECTORISBEGINRETURNtrans table op ENDFUNCTIONop2slv ENDPACKAGEBODYcpu defs 实验7 8微程序控制器实验LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL IEEE NUMERIC STD ALL USEWORK CPU DEFS ALL 使用自己定义的程序包ENTITYCPUISPORT clock INSTD LOGIC 时钟reset INSTD LOGIC 复位mode INSTD LOGIC VECTOR 2DOWNTO0 查看用mem addr INUNSIGNED word w op w 1DOWNTO0 地址output OUTSTD LOGIC VECTOR word w 1DOWNTO0 data r out OUTSTD LOGIC VECTOR 19DOWNTO0 微指令Rop out OUTSTD LOGIC VECTOR op w 1DOWNTO0 操作码add r out OUTUNSIGNED 4DOWNTO0 微地址R ENDENTITY ARCHITECTURErtlOFCPUISTYPEmem arrayISARRAY 0TO2 word w op w 1 OFSTD LOGIC VECTOR word w 1DOWNTO0 定义RAMSIGNALmem mem array CONSTANTprog mem array 0 op2slv load CONSTANTcode microcode array 控制存储器0 00010100010000000001 1 00000000000110000010 2 00001010000000000011 3 00000100001000001111 4 00100010000000000000 5 00000000000100000000 6 00000010100001000000 7 00000010100000100000 8 00000000000110000100 9 01000001000000000101 10 00000000000110000110 11 00000000000110000111 12 00000000000110010000 13 10000010000000000000 14 00000000000000000000 SIGNALcount UNSIGNED word w op w 1DOWNTO0 SIGNALop STD LOGIC VECTOR op w 1DOWNTO0 SIGNALz flag STD LOGIC SIGNALmdr out STD LOGIC VECTOR word w 1DOWNTO0 SIGNALmar out UNSIGNED word w op w 1DOWNTO0 SIGNALIR out STD LOGIC VECTOR word w 1DOWNTO0 SIGNALacc out UNSIGNED word w 1DOWNTO0 SIGNALsysbus out STD LOGIC VECTOR word w 1DOWNTO0 EGINPROCESS reset clock VARIABLEinstr reg STD LOGIC VECTOR word w 1DOWNTO0 VARIABLEacc UNSIGNED word w 1DOWNTO0 CONSTANTzero UNSIGNED word w 1DOWNTO0 OTHERS 0 VARIABLEmdr STD LOGIC VECTOR word w 1DOWNTO0 VARIABLEmar UNSIGNED word w op w 1DOWNTO0 VARIABLEsysbus STD LOGIC VECTOR word w 1DOWNTO0 VARIABLEmicrocode microcode array VARIABLEadd r UNSIGNED 4DOWNTO0 VARIABLEdata r STD LOGIC VECTOR 19DOWNTO0 VARIABLEtemp STD LOGIC VECTOR 4DOWNTO0 BEGIN 内部信号传递 IFreset 0 THENadd r OTHERS 0 count 0 instr reg OTHERS 0 acc OTHERS 0 mdr OTHERS 0 mar OTHERS 0 z flag 0 ELSIFRISING EDGE clock THEN microprogramcontrollerdata r code TO INTEGER add r IFdata r 4DOWNTO0 01111 THEN 判断下地址temp 01 PCIFdata r 16 1 THEN PC bus 1 sysbus rfill ALUIFdata r 17 1 THEN load ACC 1 acc UNSIGNED mdr ENDIF IFdata r 11 1 THEN ALU ACC 1 IFdata r 6 1 THEN ALU add 1 acc acc UNSIGNED mdr ELSIFdata r 5 1 THEN ALU sub 1 acc acc UNSIGNED mdr ENDIF ENDIF IFdata r 18 1 THEN ACC bus 1 sysbus STD LOGIC VECTOR acc ENDIF IFacc zeroTHENz flag 1 ELSEz flag 0 EN

温馨提示

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

评论

0/150

提交评论