MIPS/tools/wctrl.txt
Paul Pan 9ce588757d feat: MU rewrite 1
1. ALU format
2. FIX hazard (MOVN / MOVZ)
3. verilator support
2022-07-27 15:07:16 +08:00

88 lines
4.8 KiB
Plaintext

////-------------------------------- MOV RW RD RD1 RD0
32'b000000000000000000000?????001111 0 0 ? ? ? // SYNC (NOP)
32'b00000000000???????????????000000 0 1 RD 0 0 // SLL
32'b00000000000???????????????000010 0 1 RD 0 0 // SRL
32'b00000000000???????????????000011 0 1 RD 0 0 // SRA
32'b000000???????????????00000000100 0 1 RD 0 0 // SLLV
32'b000000???????????????00000000110 0 1 RD 0 0 // SRLV
32'b000000???????????????00000000111 0 1 RD 0 0 // SRAV
32'b000000???????????????00000001010 1 1 RD 0 0 // MOVZ
32'b000000???????????????00000001011 1 1 RD 0 0 // MOVN
32'b000000?????000000000000000001000 0 0 ? ? ? // JR
32'b000000?????00000?????00000001001 0 1 RD 0 0 // JALR
32'b000000????????????????????001100 0 0 ? ? ? // SYSCALL
32'b000000????????????????????001101 0 0 ? ? ? // BREAK
32'b0000000000000000?????00000010000 0 1 RD 0 0 // MFHI
32'b000000?????000000000000000010001 0 0 ? ? ? // MTHI
32'b0000000000000000?????00000010010 0 1 RD 0 0 // MFLO
32'b000000?????000000000000000010011 0 0 ? ? ? // MTLO
32'b000000??????????0000000000011000 0 0 ? ? ? // MULT
32'b000000??????????0000000000011001 0 0 ? ? ? // MULTU
32'b000000??????????0000000000011010 0 0 ? ? ? // DIV
32'b000000??????????0000000000011011 0 0 ? ? ? // DIVU
32'b000000???????????????00000100000 0 1 RD 0 0 // ADD
32'b000000???????????????00000100001 0 1 RD 0 0 // ADDU
32'b000000???????????????00000100010 0 1 RD 0 0 // SUB
32'b000000???????????????00000100011 0 1 RD 0 0 // SUBU
32'b000000???????????????00000100100 0 1 RD 0 0 // AND
32'b000000???????????????00000100101 0 1 RD 0 0 // OR
32'b000000???????????????00000100110 0 1 RD 0 0 // XOR
32'b000000???????????????00000100111 0 1 RD 0 0 // NOR
32'b000000???????????????00000101010 0 1 RD 0 0 // SLT
32'b000000???????????????00000101011 0 1 RD 0 0 // SLTU
32'b000000????????????????????110000 0 0 ? ? ? // TGE
32'b000000????????????????????110001 0 0 ? ? ? // TGEU
32'b000000????????????????????110010 0 0 ? ? ? // TLT
32'b000000????????????????????110011 0 0 ? ? ? // TLTU
32'b000000????????????????????110100 0 0 ? ? ? // TEQ
32'b000000????????????????????110110 0 0 ? ? ? // TNE
32'b000001?????00000???????????????? 0 0 ? ? ? // BLTZ
32'b000001?????00001???????????????? 0 0 ? ? ? // BGEZ
32'b000001?????01000???????????????? 0 0 ? ? ? // TGEI
32'b000001?????01001???????????????? 0 0 ? ? ? // TGEIU
32'b000001?????01010???????????????? 0 0 ? ? ? // TLTI
32'b000001?????01011???????????????? 0 0 ? ? ? // TLTIU
32'b000001?????01110???????????????? 0 0 ? ? ? // TNEI
32'b000001?????01100???????????????? 0 0 ? ? ? // TEQI
32'b000001?????10000???????????????? 0 1 31 0 1 // BLTZAL
32'b000001?????10001???????????????? 0 1 31 0 1 // BGEZAL
32'b000010?????????????????????????? 0 0 ? ? ? // J
32'b000011?????????????????????????? 0 1 31 0 1 // JAL
32'b000100?????????????????????????? 0 0 ? ? ? // BEQ
32'b000101?????????????????????????? 0 0 ? ? ? // BNE
32'b000110?????00000???????????????? 0 0 ? ? ? // BLEZ
32'b000111?????00000???????????????? 0 0 ? ? ? // BGTZ
32'b001000?????????????????????????? 0 1 RT 1 ? // ADDI
32'b001001?????????????????????????? 0 1 RT 1 ? // ADDIU
32'b001010?????????????????????????? 0 1 RT 1 ? // SLTI
32'b001011?????????????????????????? 0 1 RT 1 ? // SLTIU
32'b001100?????????????????????????? 0 1 RT 1 ? // ANDI
32'b001101?????????????????????????? 0 1 RT 1 ? // ORI
32'b001110?????????????????????????? 0 1 RT 1 ? // XORI
32'b00111100000????????????????????? 0 1 RT 1 ? // LUI
32'b01000000000??????????00000000??? 0 1 RT 1 ? // MFC0
32'b01000000100??????????00000000??? 0 0 ? ? ? // MTC0
32'b01000010000000000000000000000001 0 0 ? ? ? // TLBR
32'b01000010000000000000000000000010 0 0 ? ? ? // TLBWI
32'b01000010000000000000000000000110 0 0 ? ? ? // TLBWR
32'b01000010000000000000000000001000 0 0 ? ? ? // TLBP
32'b01000010000000000000000000011000 0 0 ? ? ? // ERET
32'b011100??????????0000000000000000 0 0 ? ? ? // MADD
32'b011100??????????0000000000000001 0 0 ? ? ? // MADDU
32'b011100??????????0000000000000100 0 0 ? ? ? // MSUB
32'b011100??????????0000000000000101 0 0 ? ? ? // MSUBU
32'b011100???????????????00000000010 0 1 RD 0 0 // MUL
32'b100000?????????????????????????? 0 1 RT 1 ? // LB
32'b100001?????????????????????????? 0 1 RT 1 ? // LH
32'b100010?????????????????????????? 0 1 RT 1 ? // LWL
32'b100011?????????????????????????? 0 1 RT 1 ? // LW
32'b100100?????????????????????????? 0 1 RT 1 ? // LBU
32'b100101?????????????????????????? 0 1 RT 1 ? // LHU
32'b100110?????????????????????????? 0 1 RT 1 ? // LWR
32'b101000?????????????????????????? 0 0 ? ? ? // SB
32'b101001?????????????????????????? 0 0 ? ? ? // SH
32'b101010?????????????????????????? 0 0 ? ? ? // SWL
32'b101011?????????????????????????? 0 0 ? ? ? // SW
32'b101110?????????????????????????? 0 0 ? ? ? // SWR
32'b101111?????????????????????????? 0 0 ? ? ? // CACHE
32'b110011?????????????????????????? 0 0 ? ? ? // PREF (NOP)