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

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

    //******MIPS-55*********//
parameter //SPECIAL OP LIST 5-0
ADDU = 'b100001,
SUBU = 'b100011,
ADD = 'b100000,
SUB = 'b100010,
AND = 'b100100,
OR = 'b100101,
XOR = 'b100110,
NOR = 'b100111,
SLT = 'b101010,
SLTU = 'b101011,
SRL = 'b000010,
SRA = 'b000011,
SLL = 'b000000,
SLLV = 'b000100,
SRLV = 'b000110,
SRAV = 'b000111,
JR = 'b001000,
JALR = 'b001001,
MULT = 'b011000,
MULTU = 'b011001,
DIV = 'b011010,
DIVU = 'b011011,
MFHI = 'b010000,
MFLO = 'b010010,
MTHI = 'b010001,
MTLO = 'b010011,
BREAK = 'b001101,
SYSCALL = 'b001100,
TEQ = 'b110100,
//SPECIAL 2 func
CLZ = 'b100000,
MUL = 'b000010,
//REGIMM OP LIST 20-16
BLTZ = 'b00000,
BGEZ = 'b00001,
//COP0 OP LIST
ERET = 'b011000, //5-0&&25TH=1
MFC0 = 'b00000, //20-16
MTC0 = 'b00100,
//OPCODE FIELD 31-26
ADDI = 'b001000,
ADDIU = 'b001001,
ANDI = 'b001100,
ORI = 'b001101,
XORI = 'b001110,
LW = 'b100011,
SW = 'b101011,
BEQ = 'b000100,
BNE = 'b000101,
BLEZ = 'b000110,
BGTZ = 'b000111,
SLTI = 'b001010,
SLTIU = 'b001011,
LUI = 'b001111,
J = 'b000010,
JAL = 'b000011,
LB = 'b100000,// Load Byte Function=6'h24
LBU = 'b100100,// 1Load Byte Unsigned
LH = 'b100001,// Load high
LHU = 'b100101,// Load High Unsigned
SB = 'b101000,// Send Byte
SH = 'b101001,// Send High SPECIAL = 'b000000,
SPECIAL2= 'b011100,
REGIMM = 'b000001,
COP0 = 'b010000; //ALU OPCODE
parameter _ADDU = 'b0000; //r=a+b unsigned
parameter _ADD = 'b0010; //r=a+b signed
parameter _SUBU = 'b0001; //r=a-b unsigned
parameter _SUB = 'b0011; //r=a-b signed
parameter _AND = 'b0100; //r=a&b
parameter _OR = 'b0101; //r=a|b
parameter _XOR = 'b0110; //r=a^b
parameter _NOR = 'b0111; //r=~(a|b) parameter _LUI = 'b1000; //r={b[15:0],16'b0}
parameter _SLT = 'b1011; //r=(a-b<0)?1:0 signed
parameter _SLTU = 'b1010; //r=(a-b<0)?1:0 unsigned
parameter _SRA = 'b1100; //r=b>>>a
parameter _SLL = 'b1110; //r=b<<a
parameter _SRL = 'b1101; //r=b>>a parameter _SYSCALL = 'b1000,
_BREAK = 'b1001,
_TEQ = 'b1101; wire [:] op = instr[:];
assign rs = instr[:];
assign rt = instr[:];
assign rd = instr[:];
wire [:] func = instr[:]; wire [:] shamt = instr[:];
wire [:] imm = instr[:];
wire [:] addr = instr[:]; parameter SIGN = 'b1;
parameter UNSIGN = 'b0;
wire imm_sign = (op==ANDI||op==ORI||op==XORI)?UNSIGN:SIGN; wire [:] shamt_ext = {'b0,shamt};
wire [:] imm_ext = imm_sign?{{(){imm[]}},imm}:{'b0,imm}; reg [:] load_data,clz_data; assign waddr = (op==SPECIAL||op==SPECIAL2)? rd: (op==JAL) ?'b11111:rt;

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

  1. angularjs指令参数transclude

    angularjs指令参数transclude transclude翻译为嵌入,和之前看到的vue中的slots作用差不多,目的是将指令元素的子内容嵌入到指令的模板中 定义指令 <div sid ...

  2. ASP.NET 中 OutputCache 指令参数详解

    使用@ OutputCache指令使用@ OutputCache指令,能够实现对页面输出缓存的一般性需要.@ OutputCache指令在ASP.NET页或者页中包含的用户控件的头部声明.这种方式非常 ...

  3. MIPS 跳转指令BAL vs JAL

    今天调试程序,发现在windows和Linux下,diab编译的结果不一样,一个能跑一个不能跑.最后定位到了函数跳转上. 程序代码里的函数跳转写的是BAL,在windows下编译结果正常,在Linux ...

  4. angular 自定义指令参数详解【转】【个人收藏用】

    restrict:指令在dom中的声明形式 E(元素)A(属性)C(类名)M(注释) priority优先级:一个元素上存在两个指令,来决定那个指令被优先执行 terminal:true或false, ...

  5. angular 自定义指令参数详解

    restrict:指令在dom中的声明形式 E(元素)A(属性)C(类名)M(注释) priority优先级:一个元素上存在两个指令,来决定那个指令被优先执行 terminal:true或false, ...

  6. 第六篇:vue.js模板语法(,属性,指令,参数)

    Vue.js 的核心是一个允许你采用简洁的模板语法来声明式的将数据渲染进 DOM 的系统. 结合响应系统,在应用状态改变时, Vue 能够智能地计算出重新渲染组件的最小代价并应用到 DOM 操作上.( ...

  7. linux基础指令参数

    eth0,eth1,eth2--代表网卡一,网卡二,网卡三-- lo代表127.0.0.1,即localhost 参考: Linux命令:ifconfig 功能说明:显示或设置网络设备 语 法:ifc ...

  8. find指令参数

    1.name ~ 根目录 . 当前和子目录 name之后跟的是文件名 find . -name "[a-z]*[4-9].log" -print 2.perm perm后面跟的是权 ...

  9. MIPS指令 MIPS架构

    华中科技大学 - 计算机组成原理 华中科技大学 - 计算机硬件系统设计 Microprocessor without Interlocked Pipleline Stages 无内部互锁流水级的微处理 ...

随机推荐

  1. mysql导出数据库数据及表结构

    1,导出远程数据库数据到本地 mysql -A wj_sms -h192.168.1.105 -uroot -p4321 -ss -e "set NAMES 'utf8';SELECT * ...

  2. 使用Dottrace跟踪.net代码执行时间

    当程序遇到性能问题,如IIs请求反应缓慢,.net客户端程序执行缓慢,如何分析是哪里出了问题?dottrace可以帮助.net程序跟踪出代码里每个方法的执行时间,清晰的看出是哪里执行时间过长,然后再分 ...

  3. NodeJs中require use get typescript及其他知识点集合

    NodeJs的Express使用 nodejs事件的监听与事件的触发 TypeScript学习笔记 深入浅出Node.js Nodejs开发Office插件 类百度文库文档上传.转换和展示功能项目开源 ...

  4. C++虚函数表理解

    一,思维模式图 二,代码验证 class A { public: A(int x) { fProtected = x; } float GetFProtected() { return fProtec ...

  5. MySQL 中随机获取数据

    由于需要大概研究了一下MYSQL的随机抽取实现方法. 目前采用的方法: SELECT * FROM tablename ORDER BY RAND() LIMIT 实现原理: 通过ORDER BY R ...

  6. 认识Echarts(网址:http://echarts.baidu.com/tutorial.html#ECharts%20%E7%89%B9%E6%80%A7%E4%BB%8B%E7%BB%8D)

    first.html: <!DOCTYPE html><html lang="en"><head> <meta charset=" ...

  7. 【2018沈阳赛区网络预选赛J题】Fantastic Graph 【有上下界的网络流】

    要补的题太多了导致最近没写博客(好吧是我懒) 题目链接https://nanti.jisuanke.com/t/31447 题意 给出一个二分图,问能否挑选出一些边,使得每个点的度数都在[L,R]这个 ...

  8. 游戏动作师使用Unity3D遇到过的所有问题

    http://blog.csdn.net/onafioo/article/details/50865169 http://www.gameres.com/thread_480489.html 文/拉撒 ...

  9. Struts2常量详解

    -----------------siwuxie095 Struts2 常量详解 Struts2 的常量大多在默认的配置文件中已经配置好,但根据 用户需求和开发要求的不同,可能需要修改这些常量值,修改 ...

  10. [C++] inline function

    trap #define GET3(N)  N*N*N GET3(1+2) :  1+2*1+2*1+2 = 7