多周期MIPS微程序控制器实验教学课件.pptx
多周期MIPS 微程序谭志虎1实验目的n 掌握多周期MIPS CPU设计原理n 掌握微程序控制器设计的基本原理n 利用微程序控制器的设计实现多周期MIPS处理器n 主要任务p 绘制多周期MIPS CPU数据通路p 实现微程序控制器p 测试联调2核心指令集8条 (可实现内存区域冒泡排序)# MIPS指令 RTL功能描述1add$rd,$rs,$rtR$rdR$rs+R$rt溢出时产生异常,且不修改R$rd2slt$rd,$rs,$rtR$rdR$rsR$rt小于置1,有符号比较3addi$rt,$rs,immR$rtR$rs+SignExt16b(imm)溢出产生异常4lw$rt,imm($rs)R$rtMem4B(R$rs+SignExt16b(imm)5sw$rt,imm($rs)Mem4B(R$rs+SignExt16b(imm)R$rt6beq$rs,$rt,immif(R$rs=R$rt)PCPC+SignExt18b(imm,00)7bne$rs,$rt,immif(R$rs!=R$rt)PCPC+SignExt18b(imm,00)8syscall系统调用,这里用于停机3多周期MIPS CPU数据通路参考ALUALUENCLK31:265:001AddrInstrData15:015:1120:1625:21SignExtendR1#R2#W#WDWER1R2RegisterRegisterFileFileABSignImm42SrcASrcBEqualAluResultCAluoutEN控 制 器FuncOp01rsrtrdCLKCLKCLKCLKCLKCLKIRDRIorDIRWriteMemWritePCWriteBranchPCSrcAluOpALUSrcBALUSrcARegWritePCEnRegDstMemtoRegPC00011011010101WERDAMemoryMemoryWDCLK4步骤1:构建多周期MIPS CPU数据通路n 在MIPS多周期CPU(微程序)子电路中,利用如下组件构建CPU数据通路p PC、MEM、IR、DR、RegFile、ALU、Controller5步骤2:设计微程序控制器n 输入信号n 指令字Opcode,Func字段(12位)n 时钟信号、复位信号n 输出信号n 多路选择器选择信号n 内存访问控制信号n 寄存器写使能信号n 运算器控制信号、指令译码信号6控制信号功能说明 (8条核心指令集)#控制信号信号说明产生条件1PCWritePC写使能控制 取指令周期,分支指令执行2IorD指令还是数据 0表示指令,1表示数据3IRwrite指令寄存器写使能 高电平有效4MemWrite写内存控制信号 sw指令5MemRead读内存控制信号 lw指令 取指令6BeqBeq指令译码信号 Beq指令7BneBne指令译码信号 Bne指令8PcSrcPC输入来源 顺序寻址还是跳跃寻址9AluOP运算器操作控制符 4位 ALU_Control控制,00加,01减,10由Funct定10AluSrcA运算器第一输入选择 11AluSrcB运算器第二输入选择 Lw指令,sw指令,addi12RegWrite寄存器写使能控制信号 寄存器写回信号13RegDst写入寄存器选择控制信号 R型指令14MemToReg写入寄存器的数据来自存储器 lw指令7微程序控制器内部架构译码阶段地址转移逻辑下址字段逻辑微指令n 载入微程序,设计地址转移逻辑81.完善控制器内部逻辑n 打开 CPU.circ 打开多周期微程序控制器电路n 首先完成如下电路逻辑: 指令译码、ALU控制92.实现微程序地址转移逻辑n 填写微程序地址入口表 (Excel表 微程序地址转移逻辑自动生成.xlsx )p 左侧是译码信号,右侧是对应类型指令对应的入口地址,地址转移逻辑会自动生成n 自动生成 微程序地址转移逻辑 子电路 p Logisim的分析电路功能 Project Analyze Circuit 10构建指令状态变换图n 一个状态对应一个时钟周期n 一个状态对应一条微指令n 状态值对应微指令地址113.根据状态图构建微程序n 状态值 微指令地址n 不同状态 微控制信号、P字段设置、下址字段 微指令 微程序微指令、微程序自动生成 Excel表格12步骤3:CPU测试n 在存储器中载入排序程序sort.hexn 时钟自动仿真,Windows: Ctrl+k Mac: command+k 运行程序n 程序停机后,查看数据存储器中排序情况,有符号降序排列谭志虎下节课再见s t a n h u s t . e d u . c n