基础知识

取指令阶段

  • 需要完成的功能是 Mem[PC++] → IR
  • 计算+1的动作和访问内存可以并行
  • 但是内存取出来的地址和ALU的结果必须分不同的周期送回
节拍 数据通路 控制信号 说明
T1 Mem[PC]→IR,(PC)→AluSrcA,(AluOut)→PC IRin,IRWrite,AluSrcA=PC,IR_{in}, IRWrite, AluSrcA=PC,IRin​,IRWrite,AluSrcA=PC,
AluOp=ADD,ALuSrcB=4,PCWriteAluOp=ADD, ALuSrcB=4,PCWriteAluOp=ADD,ALuSrcB=4,PCWrite
完成PC+=4和内存取指令
T2 (IR)→OP/Func/R1#/R2#/Imm, PC+4+Imm16<<2→C AluOp=ADD,AluSrcB=(PC+4+Imm)AluOp=ADD, AluSrcB=(PC+4+Imm)AluOp=ADD,AluSrcB=(PC+4+Imm) 完成译码,取操作数和分支地址的计算

LOAD 指令

节拍 数据通路 控制信号 说明
T1 (A)+Imm→C) AluOP=ADD,AluSrcA=A,AluSrcB=ImmAluOP=ADD,AluSrcA=A, AluSrcB=ImmAluOP=ADD,AluSrcA=A,AluSrcB=Imm 算操作数地址
T2 Mem[C]→DR IorD=1IorD=1IorD=1 访问主存
T3 (DR)→Reg RegWrite,MemtoRegRegWrite,MemtoRegRegWrite,MemtoReg 寄存器的写回

ADD 指令

  • (R0) + (R1) → R0
节拍 数据通路 控制信号 说明
T1 (R1)+(R2)→C AluOP=OP,AluSrcA=A,AluSrcB=BAluOP=OP, AluSrcA=A,AluSrcB=BAluOP=OP,AluSrcA=A,AluSrcB=B 完成实际的运算,保存在C中
T2 ©→Reg RegDst=rd,RegWrite=1,MemtoReg=CRegDst=rd, RegWrite=1,MemtoReg=CRegDst=rd,RegWrite=1,MemtoReg=C 运算结果写回到通用寄存器

STORE指令

  • (R0)→Mem[R2]
  • 涉及到内存的写,寄存器的读
节拍 数据通路 控制信号 说明
T1 (A)+Imm→C AluOP=ADD,AluSrcA,AluSrcB=ImmAluOP=ADD, AluSrcA, AluSrcB=ImmAluOP=ADD,AluSrcA,AluSrcB=Imm 算要访问的地址
T2 Mem[C]=B MemWrite=1,IorD=1MemWrite=1, IorD=1MemWrite=1,IorD=1 将寄存器B的值锁存到指定地址

BEQ

节拍 数据通路 控制信号 说明
T1 cmp(A,B) Branch,PCSrc=1,AlUOP=cmp,AluSrcA=A,AluSrcB=BBranch, PCSrc=1, AlUOP=cmp,AluSrcA=A, AluSrcB=BBranch,PCSrc=1,AlUOP=cmp,AluSrcA=A,AluSrcB=B

微指令的结构分析

  • 下址地段:若P标志位为0,则表示下一条微指令的地址
  • 0号地址一定为取指微程序的入口
  • 每段微程序的最后一条要跳转到0地址回到取指阶段

【实验】多周期CPU微程序设计相关推荐

  1. 合肥工业大学宣城校区计算机组成原理实验 单周期 CPU 设计与实现

    本实验使用的是Verilog,离谱的是CSDN居然找不到Verilog的代码块,只能使用c语言的代码块了. 一.实验目的: 通过设计并实现支持 10 条指令的CPU,进一步理解和掌握CPU 设计的基本 ...

  2. 计算机组成原理实验2---单周期CPU

    实验目的 实验内容 设计一个单周期CPU,该CPU至少能实现以下指令功能操作. 必须写一段测试用的汇编程序,而且必须包含所要求的所有指令,slti指令必须检查两种情况:"小于"和& ...

  3. 计算机组成原理实验——单周期CPU相关问题

    目录 Q&A casex是什么意思 always(*)中的*是什么意思 wire,reg,assign,always,initial都代表什么含义?在什么类型的语句中使用? 怎么看仿真波形 g ...

  4. 计算机组成原理实验单周期处理,计算机组成原理实验实验报告-单周期cpu设计...

    计算机组成原理实验实验报告-单周期cpu设计 (16页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 计算机组成原理实验计算机组成原理实验 ...

  5. 【中山大学计算机组成原理实验】单周期CPU设计与实现

    实验一 : 单周期CPU设计与实现 一. 实验目的 (1) 掌握单周期CPU数据通路图的构成.原理及其设计方法: (2) 掌握单周期CPU的实现方法,代码实现方法: (3) 认识和掌握指令与CPU的关 ...

  6. 计算机公共基础知识实验报告,MIPS单周期CPU实验报告总结.doc

    <计算机组成原理实验> 实验报告 (实验二) 学 院 名 称 : 专业(班级) : 学 生 姓 名 : 学号 : 时间:2017年11月25日 成 绩 : 实 验 二 : 单周期 CPU设 ...

  7. 【计算机组成原理】实验4:单周期CPU(Verilog)中海大

    [计算机组成原理]实验4 使用Verilog语言实现一个单周期CPU,测试平台:Vivado ①部分代码: single_cycle_cpu.v: `timescale 1ns / 1ps`defin ...

  8. 【Computer Organization笔记10】单周期CPU设计:基于7条MIPS指令的数据通路

    本次笔记内容: P19 计算机组成原理(19) P20 计算机组成原理(20) 本节课对应幻灯片: 组成原理24 singlecycle.pptx 基于上节课的7条MIPS指令的数据通路,分别针对7条 ...

  9. (Verilog)多周期CPU设计

    (Verilog)多周期CPU设计 写在前面:在参考别人的博客自己做了一遍单周期cpu后,觉得不是很难,于是自己尝试了做一下多周期cpu,然后被各种bug糊脸...果然,自己尝试和有大佬指路还是有很大 ...

最新文章

  1. Matlab与线性代数 -- 全1矩阵
  2. javascript——事件默认行为
  3. 教程-DelphiXE7如何调用Java Class,JAR等文件?
  4. Winform中实现连接Mysql8使用mysqldump实现备份表的数据
  5. PHP 在作为中间件时print无返回值问题
  6. C#委托、事件学习之(三)——热水器烧水案例
  7. jdbc显示mysql的数据_JDBC链接mysql插入数据后显示问号的原因及解决办法
  8. c语言实现全排列并存储,C语言实现全排列和回溯法总结
  9. 【优化分类】基于matlab GA优化GRNN超参数分类【含Matlab源码 1399期】
  10. opencv实时录像+视频打码
  11. python计算快递运费价格表_python实现快递价格查询系统
  12. 下厨房某词条下的所有图片爬取
  13. 湍流公式推导系列——(一) 不可压湍动能方程的推导与含义
  14. SLG手游卡牌类游戏机器人逻辑算法
  15. 《牡丹亭》中的情与理
  16. opencv_contrib安装笔记
  17. python打包成.exe文件时出现“系统找不到指定路径”
  18. java % 负数_Java如何在括号中显示负数?
  19. cs231n-2022-assignment2#Q1:多层全连接神经网络
  20. [共享工具] 一套鼠标键盘控制两台不同系统的主机

热门文章

  1. clickhouse 常用函数 算数函数 时间函数 日期函数 字符串函数 比较函数 数据类型函数 逻辑函数 类型转换函数 替换函数 数组函数 随机函数 编码函数 UUID URL IP 函数
  2. 英特尔 SST 技术
  3. Acne Scarring Treatment
  4. “2021天府金融指数”发布 专家热议绿色金融创新支持低碳转型发展
  5. 运维知识体系-V3.0
  6. 堆(Heap)数据结构介绍
  7. JSP电影院在线订票系统JSP电影购票系统JSP电影票预订系统JSP电影院管理jsp电影购票系统
  8. 冒险岛登录服务器未响应是什么意思,冒险岛079单机/小范围联机游戏搭建
  9. 安卓远程连接linux软件,推荐Windows、Linux安卓远程软件
  10. 近期Java高级开发岗面试总结