自己动手写CPU_5_5.4 逻辑、位移操作与空指令的说明

5.4 逻辑、位移操作与空指令说明

5.4.1 and、or、xor、nor

指令格式

指令用法

5.4.2 andi、xori指令

指令格式

指令用法

5.4.3 lui

指令格式

指令用法

5.4.4 sll、slv、sra、srav、srl、srlv

指令格式

指令用法

指令命名方式

5.4.5 nop、ssnop、sync、pref

原文地址:https://www.cnblogs.com/ycc1997/p/12207452.html

时间: 2024-10-15 01:57:42

自己动手写CPU_5_5.4 逻辑、位移操作与空指令的说明的相关文章

自己动手写CPU_5_5.5 修改OpenMIPS以实现逻辑、位移操作和空指令

5.5 修改OpenMIPS以实现逻辑.位移操作和空指令 为了实现逻辑.位移操作与空指令,需要修改ID和EX模块. 5.5.1 修改译码阶段的ID模块 修改宏定义defines.v defines.v += /** EXE_* 功能码 或 指令码 **/ `define EXE_AND 6'b100100 `define EXE_OR 6'b100101 `define EXE_XOR 6'b100110 `define EXE_NOR 6'b100111 `define EXE_ANDI 6'

自己动手写CPU之第五阶段(4)——逻辑、移位与空指令的实现

将陆续上传本人写的新书<自己动手写CPU>(尚未出版),今天是第18篇,我尽量每周四篇 5.5 修改OpenMIPS以实现逻辑.移位操作与空指令 为了实现逻辑.移位操作与空指令(其中nop.ssnop不用特意实现,可以认为是特殊的逻辑左移指令sll),只需要修改OpenMIPS的如下两个模块. 修改译码阶段的ID模块,用以实现对上述指令的译码. 修改执行阶段的EX模块,使其按照译码结果进行运算. 5.5.1 修改译码阶段的ID模块 首先给出如下宏定义,都在文件defines.v中定义,读者可以

自己动手写CPU之第五阶段(3)——MIPS指令集中的逻辑、移位与空指令

将陆续上传本人写的新书<自己动手写CPU>(尚未出版),今天是第17篇,我尽量每周四篇 5.4 逻辑.移位操作与空指令说明 MIPS32指令集架构中定义的逻辑操作指令有8条:and.andi.or.ori.xor.xori.nor.lui,其中ori指令已经实现了,本章要实现其余7条指令. MIPS32指令集架构中定义的移位操作指令有6条:sll.sllv.sra.srav.srl.srlv. MIPS32指令集架构中定义的空指令有2条:nop.ssnop.其中ssnop是一种特殊类型的空操作

自己动手写CPU之第五阶段(5)——测试逻辑、移位与空指令的实现

将陆续上传本人写的新书<自己动手写CPU>(尚未出版),今天是第19篇,我尽量每周四篇 5.6 测试程序1--测试逻辑操作实现效果 编写如下测试程序用于检验逻辑操作指令是否实现正确,文件名命名为inst_rom.S,在本附带光盘Code\Chapter5_2\AsmTest\LogicInstTest目录下有测试程序源文件. .org 0x0 .global _start .set noat _start: lui $1,0x0101 # $1 = 0x01010000 ori $1,$1,0

自己动手写CPU_5_5.2 OpenMIPS对数据相关问题的解决措施

5.2 OpenMIPS对数据相关问题的解决措施 OpenMIPS采用数据前推的方式来解决流水线数据相关问题.如图所示(虚线),将执行阶段的结果.访存阶段的结果推到译码阶段,参与译码阶段选择运算源操作数的过程. 下图给出了实现数据前推对OpenMIPS系统结构的修改,具体为以下两方面: 1. 处于EX阶段的指令运算结果送到ID阶段. 2. 将MEM阶段的指令送到ID阶段. 为此需要修改ID模块的接口: 译码阶段的ID模块会根据送入的信息进行判断,解决数据相关,给出最后要参与运算的操作数.ID模块

自己动手写CPU之第五阶段(1)——流水线数据相关问题

将陆续上传本人写的新书<自己动手写CPU>(尚未出版),今天是第15篇,我尽量每周四篇 上一章建立了原始的OpenMIPS五级流水线结构,但是只实现了一条ori指令,从本章开始,将逐步完善.本章首先讨论了流水线数据相关问题,然后修改OpenMIPS以解决该问题,并在5.3节验证了解决效果.接着对逻辑.移位操作与空指令的指令格式.用法.作用进行了一一说明,在5.5节通过扩展OpenMIPS实现了这些指令,最后编写测试程序,对实现效果进行了检验. 5.1 流水线数据相关问题 我们在第4章实现的五级

自己动手写处理器开篇介绍

将陆续上传本人写的新书<自己动手写处理器>(尚未出版),今天是开篇,我尽量每周四篇 内容简介 本书使用Verilog HDL设计实现了一款兼容MIPS32指令集架构的处理器--OpenMIPS.OpenMIPS处理器具有两个版本,分别是教学版和实践版.教学版的主要设想是尽量简单,处理器的运行情况比较理想化,与教科书相似,便于使用其进行教学.学术研究和讨论,也有助于学生理解课堂上讲授的知识.实践版的设计目标是能完成特定功能,发挥实际作用. 全书分为三部分.第一部分是理论篇,介绍了指令集架构.Ve

自己动手写CPU之第五阶段(2)——OpenMIPS对数据相关问题的解决措施

将陆续上传本人写的新书<自己动手写CPU>(尚未出版),今天是第16篇,我尽量每周四篇 5.2 OpenMIPS对数据相关问题的解决措施 OpenMIPS处理器采用数据前推的方法来解决流水线数据相关问题.通过补充完善图4-4原始的数据流图,添加部分信号使得可以完成数据前推的工作,如图5-7所示.主要是将执行阶段的结果.访存阶段的结果前推到译码阶段,参与译码阶段选择运算源操作数的过程. 图5-8给出了为实现数据前推而对OpenMIPS系统结构所做的修改.有两个方面. (1)将处于流水线执行阶段的

javascript动手写日历组件(1)——构建日历逻辑 (by vczero)

一.分析日历的组成部分和交互要素 (1)组成部分:选择年月部分.星期显示.包含本月(或者有前月和下一个月部分日子) (2)根据选择的年和月份,动态绘制日历面板. (3)一个日历 7(天) * 5(周) = 35格表格. (4)一个月份是统一的一个面板:一个月的头一天一定在日历面板的第一行,根据该天的“星期几”确定位置. (5)第一格子是星期一,最后一个格子是星期日,为5周的日历面板. 二.确定逻辑设计 日历上面的日历,8月1号建军节为什么会出现在这一格?因为一个月的天数是小于5周(35天)的,因