add control signals

This commit is contained in:
Paul Pan 2021-09-02 19:05:23 +08:00
parent ed49e734d8
commit f256abd248
9 changed files with 164 additions and 149 deletions

View File

@ -1,4 +1,4 @@
with open('mctrl0.txt') as f:
with open('mctrl1.txt') as f:
lines = f.readlines()
title = lines[0].split()
items = [x.split() for x in lines[1:]]

View File

@ -1,76 +1,77 @@
table = [
# ('000000000000000000000?????001111', 'SYNC'),
# ('00000000000???????????????000000', 'SLL'),
# ('00000000000???????????????000010', 'SRL'),
# ('00000000000???????????????000011', 'SRA'),
# ('000000???????????????00000000100', 'SLLV'),
# ('000000???????????????00000000110', 'SRLV'),
# ('000000???????????????00000000111', 'SRAV'),
# ('000000?????000000000000000001000', 'JR'),
# ('000000?????00000?????00000001001', 'JALR'),
# ('000000????????????????????001100', 'SYSCALL'),
# ('000000????????????????????001101', 'BREAK'),
# ('0000000000000000?????00000010000', 'MFHI'),
# ('000000?????000000000000000010001', 'MTHI'),
# ('0000000000000000?????00000010010', 'MFLO'),
# ('000000?????000000000000000010011', 'MTLO'),
('000000000000000000000?????001111', 'SYNC'),
('00000000000???????????????000000', 'SLL'),
('00000000000???????????????000010', 'SRL'),
('00000000000???????????????000011', 'SRA'),
('000000???????????????00000000100', 'SLLV'),
('000000???????????????00000000110', 'SRLV'),
('000000???????????????00000000111', 'SRAV'),
('000000?????000000000000000001000', 'JR'),
('000000?????00000?????00000001001', 'JALR'),
('000000????????????????????001100', 'SYSCALL'),
('000000????????????????????001101', 'BREAK'),
('0000000000000000?????00000010000', 'MFHI'),
('000000?????000000000000000010001', 'MTHI'),
('0000000000000000?????00000010010', 'MFLO'),
('000000?????000000000000000010011', 'MTLO'),
('000000??????????0000000000011000', 'MULT'),
('000000??????????0000000000011001', 'MULTU'),
# ('000000??????????0000000000011010', 'DIV'),
# ('000000??????????0000000000011011', 'DIVU'),
# ('000000???????????????00000100000', 'ADD'),
# ('000000???????????????00000100001', 'ADDU'),
# ('000000???????????????00000100010', 'SUB'),
# ('000000???????????????00000100011', 'SUBU'),
# ('000000???????????????00000100100', 'AND'),
# ('000000???????????????00000100101', 'OR'),
# ('000000???????????????00000100110', 'XOR'),
# ('000000???????????????00000100111', 'NOR'),
# ('000000???????????????00000101010', 'SLT'),
# ('000000???????????????00000101011', 'SLTU'),
# ('000001?????00000????????????????', 'BLTZ'),
# ('000001?????10000????????????????', 'BLTZAL'),
# ('000001?????00001????????????????', 'BGEZ'),
# ('000001?????10001????????????????', 'BGEZAL'),
# ('000010??????????????????????????', 'J'),
# ('000011??????????????????????????', 'JAL'),
# ('000100??????????????????????????', 'BEQ'),
# ('000101??????????????????????????', 'BNE'),
# ('000110?????00000????????????????', 'BLEZ'),
# ('000111?????00000????????????????', 'BGTZ'),
# ('001000??????????????????????????', 'ADDI'),
# ('001001??????????????????????????', 'ADDIU'),
# ('001010??????????????????????????', 'SLTI'),
# ('001011??????????????????????????', 'SLTIU'),
# ('001100??????????????????????????', 'ANDI'),
# ('001101??????????????????????????', 'ORI'),
# ('001110??????????????????????????', 'XORI'),
# ('00111100000?????????????????????', 'LUI'),
# ('01000000000??????????00000000???', 'MFC0'),
# ('01000000100??????????00000000???', 'MTC0'),
# ('01000010000000000000000000000001', 'TLBR'),
# ('01000010000000000000000000000010', 'TLBWI'),
# ('01000010000000000000000000000110', 'TLBWR'),
# ('01000010000000000000000000001000', 'TLBP'),
# ('01000010000000000000000000011000', 'ERET'),
('000000??????????0000000000011010', 'DIV'),
('000000??????????0000000000011011', 'DIVU'),
('000000???????????????00000100000', 'ADD'),
('000000???????????????00000100001', 'ADDU'),
('000000???????????????00000100010', 'SUB'),
('000000???????????????00000100011', 'SUBU'),
('000000???????????????00000100100', 'AND'),
('000000???????????????00000100101', 'OR'),
('000000???????????????00000100110', 'XOR'),
('000000???????????????00000100111', 'NOR'),
('000000???????????????00000101010', 'SLT'),
('000000???????????????00000101011', 'SLTU'),
('000001?????00000????????????????', 'BLTZ'),
('000001?????10000????????????????', 'BLTZAL'),
('000001?????00001????????????????', 'BGEZ'),
('000001?????10001????????????????', 'BGEZAL'),
('000010??????????????????????????', 'J'),
('000011??????????????????????????', 'JAL'),
('000100??????????????????????????', 'BEQ'),
('000101??????????????????????????', 'BNE'),
('000110?????00000????????????????', 'BLEZ'),
('000111?????00000????????????????', 'BGTZ'),
('001000??????????????????????????', 'ADDI'),
('001001??????????????????????????', 'ADDIU'),
('001010??????????????????????????', 'SLTI'),
('001011??????????????????????????', 'SLTIU'),
('001100??????????????????????????', 'ANDI'),
('001101??????????????????????????', 'ORI'),
('001110??????????????????????????', 'XORI'),
('00111100000?????????????????????', 'LUI'),
('01000000000??????????00000000???', 'MFC0'),
('01000000100??????????00000000???', 'MTC0'),
('01000010000000000000000000000001', 'TLBR'),
('01000010000000000000000000000010', 'TLBWI'),
('01000010000000000000000000000110', 'TLBWR'),
('01000010000000000000000000001000', 'TLBP'),
('01000010000000000000000000011000', 'ERET'),
('011100??????????0000000000000000', 'MADD'),
('011100??????????0000000000000001', 'MADDU'),
('011100??????????0000000000000100', 'MSUB'),
('011100??????????0000000000000101', 'MSUBU'),
# ('011100???????????????00000000010', 'MUL'),
# ('100000??????????????????????????', 'LB'),
# ('100001??????????????????????????', 'LH'),
# ('100010??????????????????????????', 'LWL'),
# ('100011??????????????????????????', 'LW'),
# ('100100??????????????????????????', 'LBU'),
# ('100101??????????????????????????', 'LHU'),
# ('100110??????????????????????????', 'LWR'),
# ('101000??????????????????????????', 'SB'),
# ('101001??????????????????????????', 'SH'),
# ('101010??????????????????????????', 'SWL'),
# ('101011??????????????????????????', 'SW'),
# ('101110??????????????????????????', 'SWR'),
# ('110011??????????????????????????', 'PREF'),
('011100???????????????00000000010', 'MUL'),
('100000??????????????????????????', 'LB'),
('100001??????????????????????????', 'LH'),
('100010??????????????????????????', 'LWL'),
('100011??????????????????????????', 'LW'),
('100100??????????????????????????', 'LBU'),
('100101??????????????????????????', 'LHU'),
('100110??????????????????????????', 'LWR'),
('101000??????????????????????????', 'SB'),
('101001??????????????????????????', 'SH'),
('101010??????????????????????????', 'SWL'),
('101011??????????????????????????', 'SW'),
('101110??????????????????????????', 'SWR'),
('101111??????????????????????????', 'CACHE'),
('110011??????????????????????????', 'PREF'),
]
class Boolean:
@ -126,7 +127,7 @@ for inst, name in table:
ctrl['ECtrl_SA'] = (inst[31] | inst[29] | ~inst[26] & (inst[5] | inst[2]), inst[31] | (~inst[28] & (inst[29] | inst[26] | inst[5] | inst[3] | inst[2]) | inst[28] & (~inst[27] | ~inst[26])))
ctrl['ECtrl_SB'] = (inst[31] | inst[29], inst[26] | ~inst[5] & inst[3])
ctrl['imm'] = (inst[28] & inst[27] & inst[26], inst[31] | ~inst[28])
ctrl['imm'] = (~inst[31] & inst[28] & inst[27] & inst[26], inst[31] | ~inst[28])
ctrl['MCtrl0_HW'] = ~inst[30] & ~inst[29] & ~inst[28] & ~inst[27] & ~inst[26] & inst[4] & (~inst[1] & inst[0] | inst[3]) | inst[30] & inst[29] & ~inst[1]
ctrl['MCtrl0_LW'] = ~inst[30] & ~inst[29] & ~inst[28] & ~inst[27] & ~inst[26] & inst[4] & (inst[1] & inst[0] | inst[3]) | inst[30] & inst[29] & ~inst[1]
@ -135,14 +136,15 @@ for inst, name in table:
ctrl['MCtrl0_C0W'] = ~inst[31] & inst[30] & ~inst[29] & inst[23] & ~inst[3]
ctrl['MCtrl0_RS0'] = (ctrl['DP1'], inst[30], ~inst[29] & (inst[30] | ~inst[1]))
ctrl['MCtrl1_MR'] = inst[31] & ~inst[30]
ctrl['MCtrl1_MWR'] = inst[29]
ctrl['MCtrl1_MX'] = ~inst[28]
ctrl['MCtrl1_ALR'] = (inst[28] & inst[27], ~inst[28] & inst[27] & ~inst[26])
ctrl['MCtrl1_TLBR'] = ~inst[31] & inst[30] & ~inst[29] & inst[25] & ~inst[3] & ~inst[1]
ctrl['MCtrl1_TLBWI'] = ~inst[31] & inst[30] & ~inst[29] & inst[25] & ~inst[3] & inst[1]
ctrl['MCtrl1_TLBWR'] = ~inst[31] & inst[30] & ~inst[29] & inst[25] & ~inst[3] & (inst[2] | ~inst[1])
ctrl['MCtrl1_TLBP'] = ~inst[31] & inst[30] & ~inst[4] & inst[3]
ctrl['MCtrl1_MR'] = inst[31] & ~inst[30]
ctrl['MCtrl1_MWR'] = inst[29]
ctrl['MCtrl1_MX'] = ~inst[28]
ctrl['MCtrl1_ALR'] = (inst[28] & inst[27] & ~inst[26], inst[27] & ~inst[26])
ctrl['MCtrl1_TLBR'] = ~inst[31] & inst[30] & ~inst[29] & inst[25] & ~inst[3] & ~inst[1]
ctrl['MCtrl1_TLBWI'] = ~inst[31] & inst[30] & ~inst[29] & inst[25] & ~inst[3] & inst[1]
ctrl['MCtrl1_TLBWR'] = ~inst[31] & inst[30] & ~inst[29] & inst[25] & ~inst[3] & (inst[2] | ~inst[1])
ctrl['MCtrl1_TLBP'] = ~inst[31] & inst[30] & ~inst[4] & inst[3]
ctrl['MCtrl1_CACHE_OP'] = (inst[29] & inst[28] & inst[26] & inst[16], inst[29] & inst[28] & inst[26] & ~inst[20], inst[29] & inst[28] & inst[26] & ~inst[18] & (inst[20] | inst[19] | ~inst[16]))
ctrl['WCtrl_RW'] = ~inst[30] & (~inst[27] & (~inst[26] & (~inst[31] & (~inst[28] & (~inst[3] & (~inst[4] | ~inst[0]) | inst[3] & (~inst[4] & ~inst[2] & inst[0] | inst[5])) | inst[29]) | inst[31] & ~inst[29]) | inst[26] & (~inst[31] & (~inst[28] & inst[20] | inst[29]) | inst[31] & ~inst[29])) | inst[27] & (~inst[26] & (~inst[31] & inst[29] | inst[31] & ~inst[29]) | inst[26] & (~inst[31] & (~inst[28] | inst[29]) | inst[31] & ~inst[29]))) | inst[30] & ~inst[31] & ~inst[3] & (~inst[29] & ~inst[25] & ~inst[23] | inst[29] & inst[1])
ctrl['RD'] = (~inst[29] & inst[30] | inst[29] & ~inst[30] | inst[31], inst[26])

View File

@ -70,4 +70,5 @@
32'b101010?????????????????????????? ADD 0 RS 1 1 IMM 1 ? IX 0 1 // SWL
32'b101011?????????????????????????? ADD 0 RS 1 1 IMM 1 ? IX 0 1 // SW
32'b101110?????????????????????????? ADD 0 RS 1 1 IMM 1 ? IX 0 1 // SWR
32'b101111?????????????????????????? ADD 0 RS 1 1 IMM 1 ? IX 0 1 // CACHE
32'b110011?????????????????????????? ? ? ? ? ? ? ? ? ? ? ? // PREF

View File

@ -70,4 +70,5 @@
32'b101010?????????????????????????? 0 0 0 0 1 0 0 0 0 1 // SWL
32'b101011?????????????????????????? 0 0 0 0 1 0 0 0 0 1 // SW
32'b101110?????????????????????????? 0 0 0 0 1 0 0 0 0 1 // SWR
32'b101111?????????????????????????? 0 0 0 0 1 0 0 0 0 1 // CACHE
32'b110011?????????????????????????? 0 0 0 0 0 0 0 0 1 1 // PREF (NOP)

View File

@ -70,4 +70,5 @@
32'b101010?????????????????????????? ? ? ? 0 ? ? ? ? ? 0 ? ? ? ? // SWL
32'b101011?????????????????????????? ? ? ? 0 ? ? ? ? ? 0 ? ? ? ? // SW
32'b101110?????????????????????????? ? ? ? 0 ? ? ? ? ? 0 ? ? ? ? // SWR
32'b101111?????????????????????????? ? ? ? 0 ? ? ? ? ? 0 ? ? ? ? // CACHE
32'b110011?????????????????????????? 0 0 ? 0 ? ? ? ? ? 0 ? ? ? ? // PREF (NOP)

View File

@ -1,73 +1,80 @@
////-------------------------------- TLBR TLBWI TLBWR TLBP MR MWR MX ALR ALR1 ALR0
32'b000000000000000000000?????001111 0 0 0 0 0 ? ? ? ? ? // SYNC (NOP)
32'b00000000000???????????????000000 0 0 0 0 0 ? ? ? ? ? // SLL
32'b00000000000???????????????000010 0 0 0 0 0 ? ? ? ? ? // SRL
32'b00000000000???????????????000011 0 0 0 0 0 ? ? ? ? ? // SRA
32'b000000???????????????00000000100 0 0 0 0 0 ? ? ? ? ? // SLLV
32'b000000???????????????00000000110 0 0 0 0 0 ? ? ? ? ? // SRLV
32'b000000???????????????00000000111 0 0 0 0 0 ? ? ? ? ? // SRAV
32'b000000?????000000000000000001000 0 0 0 0 0 ? ? ? ? ? // JR
32'b000000?????00000?????00000001001 0 0 0 0 0 ? ? ? ? ? // JALR
32'b000000????????????????????001100 0 0 0 0 0 ? ? ? ? ? // SYSCALL
32'b000000????????????????????001101 0 0 0 0 0 ? ? ? ? ? // BREAK
32'b0000000000000000?????00000010000 0 0 0 0 ? ? ? ? ? ? // MFHI
32'b000000?????000000000000000010001 0 0 0 0 ? ? ? ? ? ? // MTHI
32'b0000000000000000?????00000010010 0 0 0 0 ? ? ? ? ? ? // MFLO
32'b000000?????000000000000000010011 0 0 0 0 ? ? ? ? ? ? // MTLO
32'b000000??????????0000000000011000 0 0 0 0 ? ? ? ? ? ? // MULT
32'b000000??????????0000000000011001 0 0 0 0 ? ? ? ? ? ? // MULTU
32'b000000??????????0000000000011010 0 0 0 0 ? ? ? ? ? ? // DIV
32'b000000??????????0000000000011011 0 0 0 0 ? ? ? ? ? ? // DIVU
32'b000000???????????????00000100000 0 0 0 0 0 ? ? ? ? ? // ADD
32'b000000???????????????00000100001 0 0 0 0 0 ? ? ? ? ? // ADDU
32'b000000???????????????00000100010 0 0 0 0 0 ? ? ? ? ? // SUB
32'b000000???????????????00000100011 0 0 0 0 0 ? ? ? ? ? // SUBU
32'b000000???????????????00000100100 0 0 0 0 0 ? ? ? ? ? // AND
32'b000000???????????????00000100101 0 0 0 0 0 ? ? ? ? ? // OR
32'b000000???????????????00000100110 0 0 0 0 0 ? ? ? ? ? // XOR
32'b000000???????????????00000100111 0 0 0 0 0 ? ? ? ? ? // NOR
32'b000000???????????????00000101010 0 0 0 0 0 ? ? ? ? ? // SLT
32'b000000???????????????00000101011 0 0 0 0 0 ? ? ? ? ? // SLTU
32'b000001?????00000???????????????? 0 0 0 0 0 ? ? ? ? ? // BLTZ
32'b000001?????10000???????????????? 0 0 0 0 0 ? ? ? ? ? // BLTZAL
32'b000001?????00001???????????????? 0 0 0 0 0 ? ? ? ? ? // BGEZ
32'b000001?????10001???????????????? 0 0 0 0 0 ? ? ? ? ? // BGEZAL
32'b000010?????????????????????????? 0 0 0 0 0 ? ? ? ? ? // J
32'b000011?????????????????????????? 0 0 0 0 0 ? ? ? ? ? // JAL
32'b000100?????????????????????????? 0 0 0 0 0 ? ? ? ? ? // BEQ
32'b000101?????????????????????????? 0 0 0 0 0 ? ? ? ? ? // BNE
32'b000110?????00000???????????????? 0 0 0 0 0 ? ? ? ? ? // BLEZ
32'b000111?????00000???????????????? 0 0 0 0 0 ? ? ? ? ? // BGTZ
32'b001000?????????????????????????? 0 0 0 0 0 ? ? ? ? ? // ADDI
32'b001001?????????????????????????? 0 0 0 0 0 ? ? ? ? ? // ADDIU
32'b001010?????????????????????????? 0 0 0 0 0 ? ? ? ? ? // SLTI
32'b001011?????????????????????????? 0 0 0 0 0 ? ? ? ? ? // SLTIU
32'b001100?????????????????????????? 0 0 0 0 0 ? ? ? ? ? // ANDI
32'b001101?????????????????????????? 0 0 0 0 0 ? ? ? ? ? // ORI
32'b001110?????????????????????????? 0 0 0 0 0 ? ? ? ? ? // XORI
32'b00111100000????????????????????? 0 0 0 0 0 ? ? ? ? ? // LUI
32'b01000000000??????????00000000??? 0 0 0 0 ? ? ? ? ? ? // MFC0
32'b01000000100??????????00000000??? 0 0 0 0 ? ? ? ? ? ? // MTC0
32'b01000010000000000000000000000001 1 0 1 0 0 ? ? ? ? ? // TLBR
32'b01000010000000000000000000000010 0 1 0 0 0 ? ? ? ? ? // TLBWI
32'b01000010000000000000000000000110 0 1 1 0 0 ? ? ? ? ? // TLBWR
32'b01000010000000000000000000001000 0 0 0 1 0 ? ? ? ? ? // TLBP
32'b01000010000000000000000000011000 0 0 0 0 0 ? ? ? ? ? // ERET
32'b011100??????????0000000000000000 0 0 0 0 ? ? ? ? ? ? // MADD
32'b011100??????????0000000000000001 0 0 0 0 ? ? ? ? ? ? // MADDU
32'b011100??????????0000000000000100 0 0 0 0 ? ? ? ? ? ? // MSUB
32'b011100??????????0000000000000101 0 0 0 0 ? ? ? ? ? ? // MSUBU
32'b011100???????????????00000000010 0 0 0 0 ? ? ? ? ? ? // MUL
32'b100000?????????????????????????? 0 0 0 0 1 0 1 ALIGN 0 0 // LB
32'b100001?????????????????????????? 0 0 0 0 1 0 1 ALIGN 0 0 // LH
32'h100010?????????????????????????? 0 0 0 0 1 0 ? ULEFT 0 1 // LWL
32'b100011?????????????????????????? 0 0 0 0 1 0 ? ALIGN 0 0 // LW
32'b100100?????????????????????????? 0 0 0 0 1 0 0 ALIGN 0 0 // LBU
32'b100101?????????????????????????? 0 0 0 0 1 0 0 ALIGN 0 0 // LHU
32'h100110?????????????????????????? 0 0 0 0 1 0 ? URIGHT 1 ? // LWR
32'b101000?????????????????????????? 0 0 0 0 1 1 ? ALIGN 0 0 // SB
32'b101001?????????????????????????? 0 0 0 0 1 1 ? ALIGN 0 0 // SH
32'b101010?????????????????????????? 0 0 0 0 1 1 ? ULEFT 0 1 // SWL
32'b101011?????????????????????????? 0 0 0 0 1 1 ? ALIGN 0 0 // SW
32'b101110?????????????????????????? 0 0 0 0 1 1 ? URIGHT 1 ? // SWR
32'b110011?????????????????????????? 0 0 0 0 0 ? ? ? ? ? // PREF (NOP)
////-------------------------------- TLBR TLBWI TLBWR TLBP MR MWR MX ALR ALR1 ALR0 CACHEOP CO2 CO1 CO0
32'b000000000000000000000?????001111 0 0 0 0 0 ? ? ? ? ? ? ? ? ? // SYNC (NOP)
32'b00000000000???????????????000000 0 0 0 0 0 ? ? ? ? ? ? ? ? ? // SLL
32'b00000000000???????????????000010 0 0 0 0 0 ? ? ? ? ? ? ? ? ? // SRL
32'b00000000000???????????????000011 0 0 0 0 0 ? ? ? ? ? ? ? ? ? // SRA
32'b000000???????????????00000000100 0 0 0 0 0 ? ? ? ? ? ? ? ? ? // SLLV
32'b000000???????????????00000000110 0 0 0 0 0 ? ? ? ? ? ? ? ? ? // SRLV
32'b000000???????????????00000000111 0 0 0 0 0 ? ? ? ? ? ? ? ? ? // SRAV
32'b000000?????000000000000000001000 0 0 0 0 0 ? ? ? ? ? ? ? ? ? // JR
32'b000000?????00000?????00000001001 0 0 0 0 0 ? ? ? ? ? ? ? ? ? // JALR
32'b000000????????????????????001100 0 0 0 0 0 ? ? ? ? ? ? ? ? ? // SYSCALL
32'b000000????????????????????001101 0 0 0 0 0 ? ? ? ? ? ? ? ? ? // BREAK
32'b0000000000000000?????00000010000 0 0 0 0 ? ? ? ? ? ? ? ? ? ? // MFHI
32'b000000?????000000000000000010001 0 0 0 0 ? ? ? ? ? ? ? ? ? ? // MTHI
32'b0000000000000000?????00000010010 0 0 0 0 ? ? ? ? ? ? ? ? ? ? // MFLO
32'b000000?????000000000000000010011 0 0 0 0 ? ? ? ? ? ? ? ? ? ? // MTLO
32'b000000??????????0000000000011000 0 0 0 0 ? ? ? ? ? ? ? ? ? ? // MULT
32'b000000??????????0000000000011001 0 0 0 0 ? ? ? ? ? ? ? ? ? ? // MULTU
32'b000000??????????0000000000011010 0 0 0 0 ? ? ? ? ? ? ? ? ? ? // DIV
32'b000000??????????0000000000011011 0 0 0 0 ? ? ? ? ? ? ? ? ? ? // DIVU
32'b000000???????????????00000100000 0 0 0 0 0 ? ? ? ? ? ? ? ? ? // ADD
32'b000000???????????????00000100001 0 0 0 0 0 ? ? ? ? ? ? ? ? ? // ADDU
32'b000000???????????????00000100010 0 0 0 0 0 ? ? ? ? ? ? ? ? ? // SUB
32'b000000???????????????00000100011 0 0 0 0 0 ? ? ? ? ? ? ? ? ? // SUBU
32'b000000???????????????00000100100 0 0 0 0 0 ? ? ? ? ? ? ? ? ? // AND
32'b000000???????????????00000100101 0 0 0 0 0 ? ? ? ? ? ? ? ? ? // OR
32'b000000???????????????00000100110 0 0 0 0 0 ? ? ? ? ? ? ? ? ? // XOR
32'b000000???????????????00000100111 0 0 0 0 0 ? ? ? ? ? ? ? ? ? // NOR
32'b000000???????????????00000101010 0 0 0 0 0 ? ? ? ? ? ? ? ? ? // SLT
32'b000000???????????????00000101011 0 0 0 0 0 ? ? ? ? ? ? ? ? ? // SLTU
32'b000001?????00000???????????????? 0 0 0 0 0 ? ? ? ? ? ? ? ? ? // BLTZ
32'b000001?????10000???????????????? 0 0 0 0 0 ? ? ? ? ? ? ? ? ? // BLTZAL
32'b000001?????00001???????????????? 0 0 0 0 0 ? ? ? ? ? ? ? ? ? // BGEZ
32'b000001?????10001???????????????? 0 0 0 0 0 ? ? ? ? ? ? ? ? ? // BGEZAL
32'b000010?????????????????????????? 0 0 0 0 0 ? ? ? ? ? ? ? ? ? // J
32'b000011?????????????????????????? 0 0 0 0 0 ? ? ? ? ? ? ? ? ? // JAL
32'b000100?????????????????????????? 0 0 0 0 0 ? ? ? ? ? ? ? ? ? // BEQ
32'b000101?????????????????????????? 0 0 0 0 0 ? ? ? ? ? ? ? ? ? // BNE
32'b000110?????00000???????????????? 0 0 0 0 0 ? ? ? ? ? ? ? ? ? // BLEZ
32'b000111?????00000???????????????? 0 0 0 0 0 ? ? ? ? ? ? ? ? ? // BGTZ
32'b001000?????????????????????????? 0 0 0 0 0 ? ? ? ? ? ? ? ? ? // ADDI
32'b001001?????????????????????????? 0 0 0 0 0 ? ? ? ? ? ? ? ? ? // ADDIU
32'b001010?????????????????????????? 0 0 0 0 0 ? ? ? ? ? ? ? ? ? // SLTI
32'b001011?????????????????????????? 0 0 0 0 0 ? ? ? ? ? ? ? ? ? // SLTIU
32'b001100?????????????????????????? 0 0 0 0 0 ? ? ? ? ? ? ? ? ? // ANDI
32'b001101?????????????????????????? 0 0 0 0 0 ? ? ? ? ? ? ? ? ? // ORI
32'b001110?????????????????????????? 0 0 0 0 0 ? ? ? ? ? ? ? ? ? // XORI
32'b00111100000????????????????????? 0 0 0 0 0 ? ? ? ? ? ? ? ? ? // LUI
32'b01000000000??????????00000000??? 0 0 0 0 ? ? ? ? ? ? ? ? ? ? // MFC0
32'b01000000100??????????00000000??? 0 0 0 0 ? ? ? ? ? ? ? ? ? ? // MTC0
32'b01000010000000000000000000000001 1 0 1 0 0 ? ? ? ? ? ? ? ? ? // TLBR
32'b01000010000000000000000000000010 0 1 0 0 0 ? ? ? ? ? ? ? ? ? // TLBWI
32'b01000010000000000000000000000110 0 1 1 0 0 ? ? ? ? ? ? ? ? ? // TLBWR
32'b01000010000000000000000000001000 0 0 0 1 0 ? ? ? ? ? ? ? ? ? // TLBP
32'b01000010000000000000000000011000 0 0 0 0 0 ? ? ? ? ? ? ? ? ? // ERET
32'b011100??????????0000000000000000 0 0 0 0 ? ? ? ? ? ? ? ? ? ? // MADD
32'b011100??????????0000000000000001 0 0 0 0 ? ? ? ? ? ? ? ? ? ? // MADDU
32'b011100??????????0000000000000100 0 0 0 0 ? ? ? ? ? ? ? ? ? ? // MSUB
32'b011100??????????0000000000000101 0 0 0 0 ? ? ? ? ? ? ? ? ? ? // MSUBU
32'b011100???????????????00000000010 0 0 0 0 ? ? ? ? ? ? ? ? ? ? // MUL
32'b100000?????????????????????????? 0 0 0 0 1 0 1 ALIGN 0 0 CNOP 0 0 0 // LB
32'b100001?????????????????????????? 0 0 0 0 1 0 1 ALIGN 0 0 CNOP 0 0 0 // LH
32'h100010?????????????????????????? 0 0 0 0 1 0 ? ULEFT 0 1 CNOP 0 0 0 // LWL
32'b100011?????????????????????????? 0 0 0 0 1 0 ? ALIGN 0 0 CNOP 0 0 0 // LW
32'b100100?????????????????????????? 0 0 0 0 1 0 0 ALIGN 0 0 CNOP 0 0 0 // LBU
32'b100101?????????????????????????? 0 0 0 0 1 0 0 ALIGN 0 0 CNOP 0 0 0 // LHU
32'h100110?????????????????????????? 0 0 0 0 1 0 ? URIGHT 1 ? CNOP 0 0 0 // LWR
32'b101000?????????????????????????? 0 0 0 0 1 1 ? ALIGN 0 0 CNOP 0 0 0 // SB
32'b101001?????????????????????????? 0 0 0 0 1 1 ? ALIGN 0 0 CNOP 0 0 0 // SH
32'b101010?????????????????????????? 0 0 0 0 1 1 ? ULEFT 0 1 CNOP 0 0 0 // SWL
32'b101011?????????????????????????? 0 0 0 0 1 1 ? ALIGN 0 0 CNOP 0 0 0 // SW
32'b101110?????????????????????????? 0 0 0 0 1 1 ? URIGHT 1 ? CNOP 0 0 0 // SWR
32'b101111?????00000???????????????? 0 0 0 0 1 1 ? ALIGN 0 0 IC_I 0 1 1 // I-Cache Index Invalid
32'b101111?????01000???????????????? 0 0 0 0 1 1 ? ALIGN 0 0 IC_I 0 1 1 // I-Cache Index Store Tag
32'b101111?????10000???????????????? 0 0 0 0 1 1 ? ALIGN 0 0 IC_L 0 0 1 // I-Cache Hit Invalid
32'b101111?????00001???????????????? 0 0 0 0 1 1 ? ALIGN 0 0 DC_IB 1 1 0 // D-Cache Index Writeback Invalid
32'b101111?????01001???????????????? 0 0 0 0 1 1 ? ALIGN 0 0 DC_IO 1 1 1 // D-Cache Index Store Tag
32'b101111?????10001???????????????? 0 0 0 0 1 1 ? ALIGN 0 0 DC_LO 1 0 1 // D-Cache Hit Invalid
32'b101111?????10101???????????????? 0 0 0 0 1 1 ? ALIGN 0 0 DC_LB 1 0 0 // D-Cache Hit Writeback Invalid
32'b110011?????????????????????????? 0 0 0 0 0 ? ? ? ? ? ? ? ? ? // PREF (NOP)

View File

@ -70,4 +70,5 @@
32'b101010?????????????????????????? 0 0 0 0 // SWL
32'b101011?????????????????????????? 0 0 0 0 // SW
32'b101110?????????????????????????? 0 0 0 0 // SWR
32'b101111?????????????????????????? 0 0 0 0 // CACHE
32'b110011?????????????????????????? 0 0 0 0 // PREF (NOP)

View File

@ -70,4 +70,5 @@
32'b101010?????????????????????????? 0 // SWL
32'b101011?????????????????????????? 0 // SW
32'b101110?????????????????????????? 0 // SWR
32'b101111?????????????????????????? 0 // CACHE
32'b110011?????????????????????????? 0 // PREF (NOP)

View File

@ -70,4 +70,5 @@
32'b101010?????????????????????????? 0 ? ? ? // SWL
32'b101011?????????????????????????? 0 ? ? ? // SW
32'b101110?????????????????????????? 0 ? ? ? // SWR
32'b101111?????????????????????????? 0 ? ? ? // CACHE
32'b110011?????????????????????????? 0 ? ? ? // PREF (NOP)