MIPS rev.1 指令参数

由于MIPS各个版本之间的操作数会变,如果出现无法识别的情况

需要根据官方的MIPS instruction手册逐条核对,此处的版本为Rev.1

    //******MIPS-55*********//
    parameter   //SPECIAL OP LIST   5-0
                ADDU    =   6‘b100001,
                SUBU    =   6‘b100011,
                ADD     =   6‘b100000,
                SUB     =   6‘b100010,
                AND     =   6‘b100100,
                OR      =   6‘b100101,
                XOR     =   6‘b100110,
                NOR     =   6‘b100111,
                SLT     =   6‘b101010,
                SLTU    =   6‘b101011,
                SRL     =   6‘b000010,
                SRA     =   6‘b000011,
                SLL     =   6‘b000000,
                SLLV    =   6‘b000100,
                SRLV    =   6‘b000110,
                SRAV    =   6‘b000111,
                JR      =   6‘b001000,
                JALR    =   6‘b001001,
                MULT    =    6‘b011000,
                MULTU   =   6‘b011001,
                DIV     =   6‘b011010,
                DIVU    =   6‘b011011,
                MFHI    =   6‘b010000,
                MFLO    =   6‘b010010,
                MTHI    =   6‘b010001,
                MTLO    =   6‘b010011,
                BREAK   =   6‘b001101,
                SYSCALL =   6‘b001100,
                TEQ     =   6‘b110100,
                //SPECIAL 2 func
                CLZ        =   6‘b100000,
                MUL        =   6‘b000010,
                //REGIMM OP LIST 20-16
                BLTZ    =   5‘b00000,
                BGEZ    =   5‘b00001,
                //COP0 OP LIST
                ERET    =   6‘b011000,  //5-0&&25TH=1
                MFC0    =   5‘b00000,   //20-16
                MTC0    =   5‘b00100,
                //OPCODE FIELD  31-26
                ADDI    =   6‘b001000,
                ADDIU   =   6‘b001001,
                ANDI    =   6‘b001100,
                ORI     =   6‘b001101,
                XORI    =   6‘b001110,
                LW      =   6‘b100011,
                SW      =   6‘b101011,
                BEQ     =   6‘b000100,
                BNE     =   6‘b000101,
                BLEZ    =   6‘b000110,
                BGTZ    =   6‘b000111,
                SLTI    =   6‘b001010,
                SLTIU   =   6‘b001011,
                LUI     =   6‘b001111,
                J       =   6‘b000010,
                JAL     =   6‘b000011,
                LB      =   6‘b100000,//    Load Byte Function=6‘h24
                LBU     =   6‘b100100,//    1Load Byte Unsigned
                LH      =   6‘b100001,//    Load high
                LHU     =   6‘b100101,//    Load High Unsigned
                SB      =   6‘b101000,//    Send Byte
                SH      =   6‘b101001,//    Send High

                SPECIAL =   6‘b000000,
                SPECIAL2=    6‘b011100,
                REGIMM  =   6‘b000001,
                COP0    =   6‘b010000;  

    //ALU OPCODE
    parameter   _ADDU   =   4‘b0000;    //r=a+b unsigned
    parameter   _ADD    =   4‘b0010;    //r=a+b signed
    parameter   _SUBU   =   4‘b0001;    //r=a-b unsigned
    parameter   _SUB    =   4‘b0011;    //r=a-b signed
    parameter   _AND    =   4‘b0100;    //r=a&b
    parameter   _OR     =   4‘b0101;    //r=a|b
    parameter   _XOR    =   4‘b0110;    //r=a^b
    parameter   _NOR    =   4‘b0111;    //r=~(a|b)

    parameter   _LUI    =   4‘b1000;    //r={b[15:0],16‘b0}
    parameter   _SLT    =   4‘b1011;    //r=(a-b<0)?1:0 signed
    parameter   _SLTU   =   4‘b1010;    //r=(a-b<0)?1:0 unsigned
    parameter   _SRA    =   4‘b1100;    //r=b>>>a
    parameter   _SLL    =   4‘b1110;    //r=b<<a
    parameter   _SRL    =   4‘b1101;    //r=b>>a

    parameter    _SYSCALL =   4‘b1000,
                _BREAK    =   4‘b1001,
                _TEQ      =   4‘b1101;

    wire [5:0]  op        =  instr[31:26];
    assign      rs        =  instr[25:21];
    assign      rt        =  instr[20:16];
    assign      rd        =  instr[15:11];
    wire [5:0]  func      =  instr[5:0];

    wire [4:0]  shamt     =  instr[10:6];
    wire [15:0] imm       =  instr[15:0];
    wire [25:0] addr      =  instr[25:0];

    parameter   SIGN      =   1‘b1;
    parameter   UNSIGN    =   1‘b0;
    wire     imm_sign     =   (op==ANDI||op==ORI||op==XORI)?UNSIGN:SIGN;

    wire [31:0] shamt_ext =   {27‘b0,shamt};
    wire [31:0] imm_ext   =   imm_sign?{{(16){imm[15]}},imm}:{16‘b0,imm};

    reg  [31:0] load_data,clz_data;

    assign    waddr    =    (op==SPECIAL||op==SPECIAL2)?    rd:    (op==JAL)    ?5‘b11111:rt;
    
时间: 2024-11-06 17:06:04

MIPS rev.1 指令参数的相关文章

AngularJS指令参数详解

指令,很重要 AngularJS与jQuery最大的区别在哪里?我认为,表现在数据双向绑定,实质就是DOM的操作形式不一样. jquery通过选择器找到DOM元素,再赋予元素的行为: 而angularjs则是,将指令与DOM绑定在一起,再扩展指令的行为. 所以AngularJS开发最理想的结果就是,在页面HTML与CSS的设计时,设计工程师只需要关注指令的使用:而在背后的逻辑开发上,架构工程师则是不需要知道如何操作DOM,只需要关注指令背后的行为要如何实现就行:测试工程师也可以开发针对指令的单元

angular 自定义指令参数详解

restrict:指令在dom中的声明形式 E(元素)A(属性)C(类名)M(注释) priority优先级:一个元素上存在两个指令,来决定那个指令被优先执行 terminal:true或false,告诉angular是否停止执行比高优先级指令低的指令 template:两种形式,一种HTML文本:一个可以接受两个参数的函数,tElemetn和tAttrs,并返回一个代表模板的字符串.模板字符串必须存在一个根DOM元素 templateUrl:两种形式,一种代表外部HTML文件路径的字符串:一个

angular 中指令参数 required 说明

先看代码 可以看到  required 中有值, (1)"?" 表示 找当前scope中的 form controller如果存在   则 link函数中的第四个参数就是 form controller 否则返回 null (2)"^" 表示从当前scope 中寻找form controller 如果存在 则link 函数的第四个参数就是form controller 否则 就往上一级的 scope 中寻找  如果找到根scope都不存在的话 就抛出一个错误 (3&

linux shell if 指令参数【备忘】

转载:http://zhidao.baidu.com/link?url=th2hdLX2aijSiiOJJStShdBmfoxNQSTzKM12rFW6IqlL93uijQ7jMkK8V9fEFuuOp5Ni1VxKRapzFvCgCWozKa 文件比较运算符-e filename 如果 filename存在,则为真 [ -e /var/log/syslog ]-d filename 如果 filename为目录,则为真 [ -d /tmp/mydir ]-f filename 如果 filen

mysql内建指令下常用选项参数

在使用mysql的过程中常常应为种种原因,平时要对mysql的备份.优化等等操作写脚本以方便管理.如果要写脚本,那就必须使用到mysql的内建指令的选项参数,这里就简要的说几个比较常用的选项参数: -h, --host=name        设置连接的主机 -u, --user=name        指定使用的用户名 -p, --password[=name]    输入密码 -P, --port=#          指定使用的端口 -A,  --no-auto-rehash      不

3.6 MIPS指令简介

计算机组成 3 指令系统体系结构 3.6 MIPS指令简介 MIPS秉承着指令数量少,指令功能简单的设计理念.那这样的设计理念是如何实现的呢?在这一节,我们就将来分析MIPS指令的特点. 相比于X86指令所提供的动辄上千页的指令说明,MIPS指令只用这两页纸就可以说清楚了. MIPS指令的基本格式就分为这三种:R型,I型和J型. R型指的是寄存器型: I型指的是立即数型: J型指的是转移型. 我们用这张表对MIPS的指令进行不同纬度的分类,横轴是按照指令的格式分为R型.I型和J型,纵轴则是根据指

mipsel汇编指令学习

MIPS汇编语言基础 MIPS的系统结构及设计理念比较先进,其指令系统经过通用处理器指令体系MIPS I.MIPS II.MIPS III.MIPS IV.MIPS V,以及嵌入式指令体系MIPS16.MIPS32到MIPS64的发展. MIPS32的架构是一种基于固定长度的定期编码指令集,并采用导入/存储(load/store)数据模型.经改进,这种架构可支持高级语言的优化执行.在路由器中,经常使用的一种MIPS架构就是MIPS32. MIPS寄存器 RISC的一个显著特点就是大量使用寄存器.

modsecurity配置指令学习

事务(transactions) Console(控制台) 1 Introduction Modsecurity是保护网络应用安全的工作.不,从零开始.我常称modsecurity为WAF(网络应用防火墙),这是种被广泛接受的叫法,它指的是为保护网络应用而专门设计的产品族.也有些时候我称它为HTTP入侵检测工具,我认为这个称呼更好的描述了modsecurity做了什么. Understanding ModSecurity 像Apache为其他模块所做的一样,Apache为modsecurity处

处理器架构——从RISC与CISC到x86、ARM、MIPS

1.CISC(Complex Instruction SetComputer,复杂指令集计算机) 复杂指令集(CISC,Complex Instruction Set Computer)是一种微处理器指令集架构(ISA),每个指令可执行若干低阶操作,诸如从内存读取.储存.和计算操作,全部集于单一指令之中. CISC特点: 1.指令系统庞大,指令功能复杂,指令格式.寻址方式多: 2.绝大多数指令需多个机器周期完成: 3.各种指令都可访问存储器: 4.采用微程序控制: 5.有专用寄存器,少量: 6.