自己动手写CPU
文章平均质量分 86
自己动手写CPU
prician
你做三四月的事,到八九月自有答案
展开
-
自己动手写CPU(8)转移指令+延迟槽解决流水线控制相关
流水线中存在的三种相关:数据相关、结构相关、控制相关。其中控制相关是指流水线中的转移指令或者其他需要改写PC的指令造成的相关。这些指令改写了PC的值,所以导致后面已经进入流水线的几条指令无效。......原创 2022-06-27 12:17:56 · 2173 阅读 · 2 评论 -
自己动手写CPU(7)流水线暂停机制+乘累加累减+除法指令
流水线暂停机制因为OpenMIPS设计乘累加、乘累减、除法指令在流水线执行阶段占用多个时钟周期,因此需要暂停流水线,以等待这些多周期指令执行完毕。OpenMIPS采用的是一种改进的方法:假如位于流水线第n阶段的指令需要多个时钟周期,进而请求流水线暂停,那么需保持取指令地址PC的值不变,同时保持流水线第n阶段、第n阶段之前的各个阶段的寄存器不变,而第n阶段后面的指令继续运行。为此设计添加了CTRL模块,其作用是接收各阶段传递过来的流水线暂停请求信号,从而控制流水线各阶段的运行。 ...原创 2022-05-09 17:19:30 · 1401 阅读 · 0 评论 -
自己动手写CPU(6)简单算术操作指令
本博客先记录简单算术操作指令简单算术操作指令一共有15条指令分别是:add、addi、addiu、addu、sub、subu、clo、clz、slt、slti、sltiu、sltu、mul、mult、multu原创 2022-05-07 11:34:05 · 11747 阅读 · 0 评论 -
自己动手写CPU(5) 移动操作指令的实现
MIPS32指令集架构中定义的移动操作指令共有6条: movn、movz、mfhi、mthi、mflo、mtlo,后4条指令涉及对特殊寄存器HI、LO的读/写操作。原创 2022-05-06 19:45:56 · 728 阅读 · 0 评论 -
自己动手写CPU(4)解决流水线数据相关+逻辑、移位操作和空指令的实现
流水线数据相关指的是在流水线中执行的几条指令中,一条指令依赖于前面指令的执行结果原创 2022-05-06 17:36:13 · 5014 阅读 · 1 评论 -
自己动手写CPU(3)虚拟机和GNU工具链的安装不坑版+如何利用GNU交叉编译
上一篇博客介绍了实现一条ori指令,但用到的寄存器初始化文件是已经写好了的,下面我们学习如何利用CNU工具链交叉编译。绝对不坑版!!原创 2022-05-04 11:02:01 · 520 阅读 · 0 评论 -
自己动手写CPU(2)第一条ori指令
上一篇文章介绍了一下流水线思想、设计流程等,下面我们可以实操一下实现第一条ori指令。其实实现一条ori指令不难,我目前对这一条指令的理解简单来说就是,先看图对应每一个接口连线。原创 2022-05-03 10:18:57 · 2343 阅读 · 6 评论 -
自己动手写CPU(1)—理论基础
本博客内容基于《自己动手写CPU》这本书,是设计cpu的理论基础原创 2022-04-06 17:22:56 · 1001 阅读 · 0 评论 -
Verilog语言基础1
访问量破8k啦!好开心,会持续更新的😊1、Verilog中的模块结构Verilog模块完全定义在module与endmodule关键字之间每个模块包括四个主要部分:模块声明、端口定义、数据类型说明和逻辑功能描述原创 2022-03-25 16:28:24 · 2472 阅读 · 0 评论 -
处理器与MIPS简单介绍&Verilog硬件描述语言
看了CSAPP之后不得不感慨能设计出计算机的人真的很伟大,最近刚刚把链接部分看完,想多了解了解就搜了点资料。原创 2022-03-24 18:02:25 · 1040 阅读 · 1 评论