
CPU自制入门
zysns
这个作者很懒,什么都没留下…
展开
-
《CPU自制入门》笔记——第二章 电路板的设计与制作
在下个学期,本人有一门计算机组成原理的课程设计,需要用Verilog设计一个可用的CPU。为了这门课设,我选择在这个暑假先进行研究一下。在经过多方查找之后,我在学校的图书馆中找到了《CPU自制入门》这本书。这本书使用Verilog实现了一个简单的CPU,同时注重了动手能力,让读者可以真正利用FPGA技术实现一个CPU。为了能在暑假中更联系的学习,我选择在这段放假前不太连续的时间先把电路板进行...原创 2019-07-18 17:04:57 · 3752 阅读 · 2 评论 -
《CPU自制入门》笔记 —— ID段理论基础、数据解码器(1)
在完成IF阶段后,流水线的下一个阶段为ID阶段。在ID阶段中,会实现对指令的解码并生成必要的信号。数据的直通、Load冒险的检测、分支的判断都会在这一阶段进行。1. 理论基础1. 数据冒险所谓的数据冒险是指在流水线运行过程中,由于指令执行所需要的数据还未准备好所造成的冒险。在这种情况下,下一条指令所需要的数据并没有准备好,就会导致下一条指令无法执行,从而导致流水线的堵塞。因此,为了避免这...原创 2019-07-23 17:50:24 · 1490 阅读 · 0 评论 -
《CPU自制入门》笔记——通用寄存器、SPM、总线接口
1. 通用寄存器首先,我们为我们的CPU编写通用寄存器部分。本CPU采用的指令集为典型的RISC指令集,最大允许同时对三个寄存器进行操作,两个寄存器进行输出,一个寄存器进行写入。因此,我们的寄存器堆需要两个输出端口,一个输入端口。代码如下`include "cpu.h"`include "isa.h"`include "stddef.h"`include "nettype.h"`i...原创 2019-07-21 11:06:42 · 2484 阅读 · 0 评论 -
《CPU自制入门》笔记 —— 流水线寄存器、IF阶段顶层模块
1. 流水线寄存器此处所谓的流水线寄存器即我们常说的IR寄存器和PC寄存器,用于存放指令以及保存下一条指令的地址。在本模块中,存在异步复位,如果复位信号有效,则进行复位操作。如果刷新信号有效且流水线不存在延迟,则将流水线寄存器进行刷新操作。如果分支条件成立,则将流水线寄存器中的值修改为分支条件的值。否则,将寄存器中的内容按既定规则进行更新。代码如下`include "cpu.h"`in...原创 2019-07-22 10:33:19 · 4111 阅读 · 0 评论