
verilog实现MIPS处理器
基于verilog实现MIPS五级流水。所有的博客主要参考雷思磊老师的《自己动手写CPU》。同时结合本身所学的verilog以及计算机组成原理,对于书中的内容根据笔者的理解进行总结
ty_xiumud
有些时候,不是因为看到了希望才去坚持,而是坚持了,才看到希望。
展开
-
verilog实现多周期处理器之——目录及总述
本系列博文将使用verilog语言,实现兼容MIPS32指令集架构的处理器——OpenMIPS,MIPS是典型的RSIC处理器。主要依据雷思磊老师的《自己动手写CPU》,袁春风老师主编的《计算机组成与系统结构》。本博文在书中已有的内容不给出介绍,除非一些笔者认为特别有必要的理论知识,建议结合书记一起学习。本博文记录博主的过程所学,记录供方便查阅及反思。会沿着博主学习的思路,做希望能完整个系列。若...原创 2019-12-21 14:06:32 · 602 阅读 · 0 评论 -
数字系统设计实践
数字系统设计实践MIPS的三种指令格式R-型指令格式I-型指令格式J-型指令格式MIPS指令介绍ori指令MIPS的三种指令格式MIPS是典型的RISC处理器,采用32位定长指令字,操作码字段也是固定长度,没有专门的寻址方式字段,由指令格式确定各操作数的寻址方式。MIPS指令格式一般有三种格式:R-型指令格式I-型指令格式J-型指令格式R-型指令格式OP: 操作码rs:...原创 2020-03-16 00:57:18 · 588 阅读 · 0 评论 -
verilog实现多周期处理器之——(六)简单算数操作指令的实现
实现的指令说明R-型指令加减比较指令add、addu、sub、sub、slt、sltu 这6条指令的格式指令码都是6’b000000,即SPECIAL类,另外第6-10bit都为0,需要依据指令中0-5bit功能码的值进一步判断是哪一种指令。当功能码是6’b100000时,表示是add指令,加法运算指令用法为:add rd, rs, rt指令作用为:rd <- rs + rt,将...转载 2019-12-21 21:58:09 · 3811 阅读 · 1 评论 -
verilog实现多周期处理器之——(五)移动操作(通用数据传送)指令的实现
本文参考作者自己动手写CPU之第六阶段(1)——移动操作指令说明自己动手写CPU之第六阶段(2)——移动操作指令实现思路本文会添加笔者自己的思路以及理解在其中。指令说明这6条指令都是R类型指令,并且指令码都是6’b000000,即均为SPECIAL类指令,同时,指令第6-10bit都为0,可以依据指令中0-5bit功能码的值判断是哪一种指令。各指令的用法及作用说明如下。当功能码为...转载 2019-12-20 20:00:34 · 884 阅读 · 0 评论 -
verilog实现多周期处理器之——(四)逻辑,移位操作与空指令的添加
综述文章引于自己动手写CPU之第五阶段(3)——MIPS指令集中的逻辑、移位与空指令由于那个指令具有不同的指令格式,但一共就只有三种,因此这里将其进行区分,进行译码以及执行相关代码需要进行修改。这里笔者直接加入的指令,具体的指令作用在书中或者博文中都很明确,有需要可以自行翻阅查看。照例笔者会将自己对于代码的理解以及相关的必要知识记录总结在对应的目录下ID模块的修改首先是要确定指令的类型...原创 2019-12-19 22:56:07 · 2285 阅读 · 0 评论 -
verilog实现多周期处理器之——(三)数据相关问题及其解决
本文于自己动手写CPU之第五阶段——流水线数据相关问题“相关”问题流水线中常常有一些被称为“相关”的情况发生,它使得指令序列中下一条指令无法依照设计的时钟周期运行,这些“相关”会减少流水线的性能。流水线中的相关分为三种类型。相关类型描述结构相关指的是在指令运行的过程中,因为硬件资源满足不了指令运行的要求,发生硬件资源冲突而产生的相关。比方:指令和数据都共享一个存储器。...原创 2019-12-18 23:01:06 · 749 阅读 · 0 评论 -
verilog实现多周期处理器之——(二)第一条指令ori的实现
本博文希望对于OpenMIPS第一条指令ori加以实现并总结。会加入一些基本的理论以及博主的学习记录。流水与五级流水什么是流水:拆分,并行。将多条指令的执行相互重叠起来。就构成了流水,这样充分利用了执行部件的并行性,提高了CPU的效率。如下图由于各个指令需要的时钟周期可能是不一样的,因此这里使用五级流水,解决相关流水线停滞的问题。下面是书中对于每一级的功能解释这里博主理解的是。...原创 2019-12-18 12:56:10 · 1698 阅读 · 0 评论 -
verilog实现多周期处理器之——(零)GUN工具链的安装
参考雷思磊老师得《自己动手写CPU》这里不需要下载书中说的虚拟机,这里笔者用的是VMware。不需要破解,直接安装点击选择仅用于非商业即可使用!!安装Ubuntu这里笔者不给出步骤。打开光盘资料(需要光盘资料留言),找到GUN工具链压缩包。拖动至opt目录下。然后解压。在桌面即进入终端“Ctrl+Alt+T”输入sudo tar vfxj m然后解压即可。笔者这里是解压过的...原创 2019-11-28 21:52:35 · 475 阅读 · 5 评论 -
verilog实现多周期处理器之——(一)基本概念以及总体框架
本系列博文将使用verilog语言,实现兼容MIPS32指令集架构的处理器——OPENMIPS,MIPS是典型的RSIC处理器。本系列博文参考雷思磊老师的《自己动手写CPU》,袁春风老师主编的《计算机组成与系统结构》。如有错误,是笔者自身理解有误,欢迎=指出!!计算机的发展历程第一代计算机为电子管计算机。是1946年诞生于美国的ENIAC,是美国军方定制,专门为了计算弹道和射击特性表面而研...原创 2019-11-28 09:53:52 · 830 阅读 · 0 评论