RW & RS0 fix
tools update
This commit is contained in:
parent
4fa6391bcb
commit
67ccb57eda
@ -15,7 +15,7 @@ module Controller (
|
||||
inst[15:11],
|
||||
5'b11111,
|
||||
ctrl.RT,
|
||||
{(~inst[29] & (inst[31] | inst[30]) | inst[29] & ~inst[30]), inst[26]},
|
||||
{~inst[29] & (inst[31] | inst[30]) | inst[29] & ~inst[30], inst[26]},
|
||||
ctrl.RD
|
||||
);
|
||||
|
||||
@ -62,13 +62,11 @@ module Controller (
|
||||
|
||||
assign ctrl.MCtrl0.HW = ~inst[30] & ~inst[29] & ~inst[28] & ~inst[27] & ~inst[26] & inst[4] & (inst[3] | ~inst[1] & inst[0]);
|
||||
assign ctrl.MCtrl0.LW = ~inst[30] & ~inst[29] & ~inst[28] & ~inst[27] & ~inst[26] & inst[4] & (inst[3] | inst[1] & inst[0]);
|
||||
// assign ctrl.MCtrl0.HLS = HLS_t'({~inst[27] & ~inst[26] & (~inst[29] & ~inst[30] & ~inst[28] & inst[4] & inst[3] | inst[29] & inst[30]), ~inst[30] & inst[1], inst[0]});
|
||||
assign ctrl.MCtrl0.HLS = HLS_t'({~inst[27] & ~inst[26] & (~inst[30] & ~inst[31] & ~inst[29] & ~inst[28] & inst[4] & inst[3] | inst[30] & inst[29]), ~inst[30] & inst[1], inst[0]});
|
||||
assign ctrl.MCtrl0.C0D = inst[15:11];
|
||||
// assign ctrl.MCtrl0.C0W = inst[30] & inst[23];
|
||||
assign ctrl.MCtrl0.C0W = inst[30] & ~inst[29] & inst[23] & ~inst[3];
|
||||
assign ctrl.MCtrl0.SEL = inst[2:0];
|
||||
assign ctrl.MCtrl0.RS0 = RS0_t'({ctrl.DP1, inst[30], ~inst[29] & (inst[30] | ~inst[1])});
|
||||
assign ctrl.MCtrl0.RS0 = RS0_t'({~inst[30] & (inst[29] | inst[26] | ~inst[4]), inst[30], ~inst[29] & (inst[30] | ~inst[1])});
|
||||
|
||||
assign ctrl.MCtrl1.MR = inst[31];
|
||||
assign ctrl.MCtrl1.MWR = inst[29];
|
||||
@ -78,6 +76,7 @@ module Controller (
|
||||
assign ctrl.MCtrl1.TLBWI = inst[30] & ~inst[29] & inst[25] & ~inst[3] & inst[1];
|
||||
assign ctrl.MCtrl1.TLBP = inst[30] & ~inst[4] & inst[3];
|
||||
|
||||
assign ctrl.WCtrl.RW = ctrl.RD != 5'b00000 & (~inst[30] & (~inst[29] & (inst[31] | ~inst[28] & (~inst[27] & (~inst[26] & (~inst[3] & (~inst[4] | ~inst[0]) | inst[3] & (inst[5] | ~inst[4] & ~inst[2] & inst[0])) | inst[26] & inst[20]) | inst[27] & inst[26])) | inst[29] & ~inst[31]) | inst[30] & ~inst[25] & ~inst[23]);
|
||||
assign ctrl.WCtrl.RW = ctrl.RD != 5'b00000 & (~inst[30] & (~inst[29] & (inst[31] | ~inst[28] & (~inst[27] & (~inst[26] & (~inst[3] & (~inst[4] | ~inst[0]) | inst[3] & (inst[5] | ~inst[4] & ~inst[2] & inst[0])) | inst[26] & inst[20]) | inst[27] & inst[26])) | inst[29] & ~inst[31]) | inst[30] & (inst[29] | ~inst[25] & ~inst[23]));
|
||||
// assign ctrl.WCtrl.RW = ctrl.RD != 5'b00000 & (~inst[30] & (~inst[29] & (inst[31] | ~inst[28] & (~inst[27] & (~inst[26] & (~inst[3] & (~inst[4] | ~inst[0]) | inst[3] & (inst[5] | ~inst[4] & ~inst[2] & inst[0])) | inst[26] & inst[20]) | inst[27] & inst[26])) | inst[29] & ~inst[31]) | inst[30] & ~inst[25] & ~inst[23]);
|
||||
|
||||
endmodule
|
||||
|
@ -482,28 +482,28 @@ module Datapath (
|
||||
// Load -> C0
|
||||
| D.IA.WCtrl.RW & D.IB.RT == D.IA.RD & D.IB.MCtrl0.C0W & ~D.IA.DP0
|
||||
// Not Arith -> Store
|
||||
| D.IA.WCtrl.RW & D.IB.RT == D.IA.RD & D.IB.MCtrl1.MWR & ~D.IA.MCtrl0.RS0[2]
|
||||
| D.IA.WCtrl.RW & D.IB.RT == D.IA.RD & D.IB.MCtrl1.MWR & ~D.IA.DP1
|
||||
// CP0 Execution Hazards
|
||||
// Hazards Related to the TLB
|
||||
| D.IA.MCtrl0.C0W & D.IB.MCtrl1.TLBR & D.IA.MCtrl0.C0D == C0_INDEX
|
||||
| D.IA.MCtrl0.C0W & D.IB.MCtrl1.TLBWI & D.IA.MCtrl0.C0D == C0_ENTRYHI
|
||||
| D.IA.MCtrl0.C0W & D.IB.MCtrl1.TLBWI & D.IA.MCtrl0.C0D == C0_ENTRYLO0
|
||||
| D.IA.MCtrl0.C0W & D.IB.MCtrl1.TLBWI & D.IA.MCtrl0.C0D == C0_ENTRYLO1
|
||||
| D.IA.MCtrl0.C0W & D.IB.MCtrl1.TLBWI & D.IA.MCtrl0.C0D == C0_INDEX
|
||||
| D.IA.MCtrl0.C0W & D.IB.MCtrl1.TLBWI & D.IA.MCtrl0.C0D == C0_PAGEMASK
|
||||
| E.I0.MCtrl.C0W & D.IB.MCtrl1.TLBP & E.I0.MCtrl.C0D == C0_ENTRYHI
|
||||
| D.IA.MCtrl0.C0W & D.IB.MCtrl1.TLBP & D.IA.MCtrl0.C0D == C0_ENTRYHI
|
||||
| D.IA.MCtrl0.C0W & D.IB.MCtrl1.MR & D.IA.MCtrl0.C0D == C0_ENTRYHI
|
||||
| D.IA.MCtrl0.C0W & D.IB.MCtrl1.TLBR & D.IA.MCtrl0.C0D == C0_INDEX
|
||||
| D.IA.MCtrl0.C0W & D.IB.MCtrl1.TLBWI & D.IA.MCtrl0.C0D == C0_ENTRYHI
|
||||
| D.IA.MCtrl0.C0W & D.IB.MCtrl1.TLBWI & D.IA.MCtrl0.C0D == C0_ENTRYLO0
|
||||
| D.IA.MCtrl0.C0W & D.IB.MCtrl1.TLBWI & D.IA.MCtrl0.C0D == C0_ENTRYLO1
|
||||
| D.IA.MCtrl0.C0W & D.IB.MCtrl1.TLBWI & D.IA.MCtrl0.C0D == C0_INDEX
|
||||
| D.IA.MCtrl0.C0W & D.IB.MCtrl1.TLBWI & D.IA.MCtrl0.C0D == C0_PAGEMASK
|
||||
| E.I0.MCtrl.C0W & D.IB.MCtrl1.TLBP & E.I0.MCtrl.C0D == C0_ENTRYHI
|
||||
| D.IA.MCtrl0.C0W & D.IB.MCtrl1.TLBP & D.IA.MCtrl0.C0D == C0_ENTRYHI
|
||||
| D.IA.MCtrl0.C0W & D.IB.MCtrl1.MR & D.IA.MCtrl0.C0D == C0_ENTRYHI
|
||||
// TODO: CACHE
|
||||
| D.IA.MCtrl1.TLBR & D.IB.MCtrl0.C0W
|
||||
| D.IA.MCtrl1.TLBP & D.IB.MCtrl0.C0W
|
||||
| D.IA.MCtrl1.TLBR & D.IB.MCtrl0.RS0 == C0 & D.IB.MCtrl0.C0D == C0_ENTRYHI
|
||||
| D.IA.MCtrl1.TLBR & D.IB.MCtrl0.RS0 == C0 & D.IB.MCtrl0.C0D == C0_ENTRYLO0
|
||||
| D.IA.MCtrl1.TLBR & D.IB.MCtrl0.RS0 == C0 & D.IB.MCtrl0.C0D == C0_ENTRYLO1
|
||||
| D.IA.MCtrl1.TLBR & D.IB.MCtrl0.RS0 == C0 & D.IB.MCtrl0.C0D == C0_PAGEMASK
|
||||
| D.IA.MCtrl1.TLBP & D.IB.MCtrl0.RS0 == C0 & D.IB.MCtrl0.C0D == C0_INDEX
|
||||
| D.IA.MCtrl1.TLBR & D.IB.MCtrl0.RW & D.IB.MCtrl0.C0D == C0_ENTRYHI & D.IB.MCtrl0.RS0 == C0
|
||||
| D.IA.MCtrl1.TLBR & D.IB.MCtrl0.RW & D.IB.MCtrl0.C0D == C0_ENTRYLO0 & D.IB.MCtrl0.RS0 == C0
|
||||
| D.IA.MCtrl1.TLBR & D.IB.MCtrl0.RW & D.IB.MCtrl0.C0D == C0_ENTRYLO1 & D.IB.MCtrl0.RS0 == C0
|
||||
| D.IA.MCtrl1.TLBR & D.IB.MCtrl0.RW & D.IB.MCtrl0.C0D == C0_PAGEMASK & D.IB.MCtrl0.RS0 == C0
|
||||
| D.IA.MCtrl1.TLBP & D.IB.MCtrl0.RW & D.IB.MCtrl0.C0D == C0_INDEX & D.IB.MCtrl0.RS0 == C0
|
||||
// Hazards Related to Exceptions or Interrupts
|
||||
| D.IA.MCtrl0.C0W & D.IB.ERET & D.IA.MCtrl0.C0D == C0_EPC
|
||||
| D.IA.MCtrl0.C0W & D.IB.ERET & D.IA.MCtrl0.C0D == C0_EPC
|
||||
;
|
||||
|
||||
assign D.A = (D.IA.DP0 & D.IA.DP1 | D.IA_ExcValid) ? D.IB.DP0 : D.IA.DP1;
|
||||
|
69
tools/c0.txt
69
tools/c0.txt
@ -1,69 +0,0 @@
|
||||
////-------------------------------- RS02 C0W TLBR TLBWI TLBP
|
||||
32'b00000000000???????????????000000 1 0 0 0 0 // SLL
|
||||
32'b00000000000???????????????000010 1 0 0 0 0 // SRL
|
||||
32'b00000000000???????????????000011 1 0 0 0 0 // SRA
|
||||
32'b000000???????????????00000000100 1 0 0 0 0 // SLLV
|
||||
32'b000000???????????????00000000110 1 0 0 0 0 // SRLV
|
||||
32'b000000???????????????00000000111 1 0 0 0 0 // SRAV
|
||||
32'b000000?????000000000000000001000 1 0 0 0 0 // JR
|
||||
32'b000000?????00000?????00000001001 1 0 0 0 0 // JALR
|
||||
32'b000000????????????????????001100 1 0 0 0 0 // SYSCALL
|
||||
32'b000000????????????????????001101 1 0 0 0 0 // BREAK
|
||||
32'b0000000000000000?????00000010000 0 0 0 0 0 // MFHI
|
||||
32'b000000?????000000000000000010001 0 0 0 0 0 // MTHI
|
||||
32'b0000000000000000?????00000010010 0 0 0 0 0 // MFLO
|
||||
32'b000000?????000000000000000010011 0 0 0 0 0 // MTLO
|
||||
32'b000000??????????0000000000011000 0 0 0 0 0 // MULT
|
||||
32'b000000??????????0000000000011001 0 0 0 0 0 // MULTU
|
||||
32'b000000??????????0000000000011010 0 0 0 0 0 // DIV
|
||||
32'b000000??????????0000000000011011 0 0 0 0 0 // DIVU
|
||||
32'b000000???????????????00000100000 1 0 0 0 0 // ADD
|
||||
32'b000000???????????????00000100001 1 0 0 0 0 // ADDU
|
||||
32'b000000???????????????00000100010 1 0 0 0 0 // SUB
|
||||
32'b000000???????????????00000100011 1 0 0 0 0 // SUBU
|
||||
32'b000000???????????????00000100100 1 0 0 0 0 // AND
|
||||
32'b000000???????????????00000100101 1 0 0 0 0 // OR
|
||||
32'b000000???????????????00000100110 1 0 0 0 0 // XOR
|
||||
32'b000000???????????????00000100111 1 0 0 0 0 // NOR
|
||||
32'b000000???????????????00000101010 1 0 0 0 0 // SLT
|
||||
32'b000000???????????????00000101011 1 0 0 0 0 // SLTU
|
||||
32'b000001?????00000???????????????? 1 0 0 0 0 // BLTZ
|
||||
32'b000001?????10000???????????????? 1 0 0 0 0 // BLTZAL
|
||||
32'b000001?????00001???????????????? 1 0 0 0 0 // BGEZ
|
||||
32'b000001?????10001???????????????? 1 0 0 0 0 // BGEZAL
|
||||
32'b000010?????????????????????????? 1 0 0 0 0 // J
|
||||
32'b000011?????????????????????????? 1 0 0 0 0 // JAL
|
||||
32'b000100?????????????????????????? 1 0 0 0 0 // BEQ
|
||||
32'b000101?????????????????????????? 1 0 0 0 0 // BNE
|
||||
32'b000110?????00000???????????????? 1 0 0 0 0 // BLEZ
|
||||
32'b000111?????00000???????????????? 1 0 0 0 0 // BGTZ
|
||||
32'b001000?????????????????????????? 1 0 0 0 0 // ADDI
|
||||
32'b001001?????????????????????????? 1 0 0 0 0 // ADDIU
|
||||
32'b001010?????????????????????????? 1 0 0 0 0 // SLTI
|
||||
32'b001011?????????????????????????? 1 0 0 0 0 // SLTIU
|
||||
32'b001100?????????????????????????? 1 0 0 0 0 // ANDI
|
||||
32'b001101?????????????????????????? 1 0 0 0 0 // ORI
|
||||
32'b001110?????????????????????????? 1 0 0 0 0 // XORI
|
||||
32'b00111100000????????????????????? 1 0 0 0 0 // LUI
|
||||
32'b01000000000??????????00000000??? 0 0 0 0 0 // MFC0
|
||||
32'b01000000100??????????00000000??? 0 1 0 0 0 // MTC0
|
||||
32'b01000010000000000000000000000001 1 0 1 0 0 // TLBR
|
||||
32'b01000010000000000000000000000010 1 0 0 1 0 // TLBWI
|
||||
32'b01000010000000000000000000001000 1 0 0 0 1 // TLBP
|
||||
32'b01000010000000000000000000011000 1 0 0 0 0 // ERET
|
||||
32'b011100???????????????00000000010 0 0 0 0 0 // MUL
|
||||
32'b100000?????????????????????????? 1 0 0 0 0 // LB
|
||||
32'b100001?????????????????????????? 1 0 0 0 0 // LH
|
||||
32'b100011?????????????????????????? 1 0 0 0 0 // LW
|
||||
32'b100100?????????????????????????? 1 0 0 0 0 // LBU
|
||||
32'b100101?????????????????????????? 1 0 0 0 0 // LHU
|
||||
32'b101000?????????????????????????? 1 0 0 0 0 // SB
|
||||
32'b101001?????????????????????????? 1 0 0 0 0 // SH
|
||||
32'b101011?????????????????????????? 1 0 0 0 0 // SW
|
||||
32'b101111?????00000???????????????? 1 0 0 0 0 // I-Cache Index Invalid
|
||||
32'b101111?????01000???????????????? 1 0 0 0 0 // I-Cache Index Store Tag
|
||||
32'b101111?????10000???????????????? 1 0 0 0 0 // I-Cache Hit Invalid
|
||||
32'b101111?????00001???????????????? 1 0 0 0 0 // D-Cache Index Writeback Invalid
|
||||
32'b101111?????01001???????????????? 1 0 0 0 0 // D-Cache Index Store Tag
|
||||
32'b101111?????10001???????????????? 1 0 0 0 0 // D-Cache Hit Invalid
|
||||
32'b101111?????10101???????????????? 1 0 0 0 0 // D-Cache Hit Writeback Invalid
|
@ -1,4 +1,4 @@
|
||||
with open('global.txt') as f:
|
||||
with open('mctrl0.txt') as f:
|
||||
lines = f.readlines()
|
||||
title = lines[0].split()
|
||||
items = [x.split() for x in lines[1:]]
|
||||
|
@ -1,6 +1,6 @@
|
||||
table = [
|
||||
('00000000000???????????????000010', 'SRL'),
|
||||
('00000000000???????????????000000', 'SLL'),
|
||||
('00000000000???????????????000010', 'SRL'),
|
||||
('00000000000???????????????000011', 'SRA'),
|
||||
('000000???????????????00000000100', 'SLLV'),
|
||||
('000000???????????????00000000110', 'SRLV'),
|
||||
@ -60,13 +60,6 @@ table = [
|
||||
('101000??????????????????????????', 'SB'),
|
||||
('101001??????????????????????????', 'SH'),
|
||||
('101011??????????????????????????', 'SW'),
|
||||
('101111?????00000????????????????', 'I-Cache Index Invalid'),
|
||||
('101111?????01000????????????????', 'I-Cache Index Store Tag'),
|
||||
('101111?????10000????????????????', 'I-Cache Hit Invalid'),
|
||||
('101111?????00001????????????????', 'D-Cache Index Writeback Invalid'),
|
||||
('101111?????01001????????????????', 'D-Cache Index Store Tag'),
|
||||
('101111?????10001????????????????', 'D-Cache Hit Invalid'),
|
||||
('101111?????10101????????????????', 'D-Cache Hit Writeback Invalid'),
|
||||
]
|
||||
|
||||
class Boolean:
|
||||
@ -87,10 +80,54 @@ class Boolean:
|
||||
|
||||
for inst, name in table:
|
||||
inst = list(Boolean(x) for x in inst[::-1])
|
||||
print('=====', name, '=====')
|
||||
# print('C0W =', inst[30] & inst[23])
|
||||
# print('HLS[2] =', ~inst[27] & ~inst[26] & (~inst[29] & ~inst[30] & ~inst[28] & inst[4] & inst[3] | inst[29] & inst[30]))
|
||||
# print('RS0[2] =', ~inst[30] & (inst[29] | inst[26] | ~inst[4]))
|
||||
print('DP0 =', ~inst[31] & (~inst[30] | inst[29] | ~inst[25] | inst[4]))
|
||||
print('DP1 =', inst[26] | (~inst[30] & (inst[31] | inst[29] | inst[28] | inst[27] | ~inst[4]) | inst[30] & (~inst[29] & inst[25] | inst[3])))
|
||||
print()
|
||||
# print('=====', name, '=====')
|
||||
ctrl = {}
|
||||
|
||||
ctrl['BJRJ'] = ~inst[29] & (~inst[31] & (~inst[30] & ~inst[5] & ~inst[4] & inst[3] & ~inst[2] | inst[28] | inst[26]) | inst[27] & ~inst[26])
|
||||
ctrl['B'] = ~inst[31] & ~inst[29] & (inst[28] | ~inst[27] & inst[26])
|
||||
ctrl['JR'] = ~inst[31] & ~inst[30] & ~inst[29] & ~inst[28] & ~inst[27] & ~inst[26] & ~inst[5] & ~inst[4] & inst[3] & ~inst[2]
|
||||
ctrl['J'] = ~inst[31] & ~inst[29] & ~inst[28] & inst[27]
|
||||
|
||||
ctrl['SYSCALL'] = ~inst[31] & ~inst[30] & ~inst[29] & ~inst[28] & ~inst[27] & ~inst[26] & inst[3] & inst[2] & ~inst[0]
|
||||
ctrl['BREAK'] = ~inst[31] & ~inst[30] & ~inst[29] & ~inst[28] & ~inst[27] & ~inst[26] & inst[3] & inst[2] & inst[0]
|
||||
ctrl['ERET'] = inst[30] & inst[4]
|
||||
ctrl['OFA'] = ~inst[31] & ~inst[28] & ~inst[27] & ~inst[26] & (~inst[30] & inst[5] & ~inst[3] & ~inst[2] & ~inst[0] | inst[29])
|
||||
|
||||
ctrl['ES'] = inst[31] | ~inst[30] & ~inst[28] & ~inst[27] & ~inst[26] & (inst[5] | inst[4] & inst[3] & ~inst[2] | ~inst[3] & inst[2]) | inst[29]
|
||||
ctrl['ET'] = ~inst[31] & ~inst[27] & ~inst[26] & (~inst[30] & ~inst[29] & ~inst[28] & (inst[5] | (~inst[1] & (~inst[4] & ~inst[3] & ~inst[0] | inst[4] & inst[3]) | inst[1] & (~inst[4] | inst[3]))) | inst[30] & inst[29])
|
||||
ctrl['DS'] = ~inst[31] & ~inst[29] & (inst[28] | ~inst[27] & (~inst[30] & ~inst[5] & ~inst[4] & inst[3] & ~inst[2] | inst[26]))
|
||||
ctrl['DT'] = ~inst[31] & ~inst[29] & inst[28] & ~inst[27]
|
||||
|
||||
ctrl['DP0'] = ~inst[31] & (~inst[30] | inst[29] | ~inst[25] | inst[4])
|
||||
ctrl['DP1'] = inst[26] | (~inst[30] & (inst[31] | inst[29] | inst[28] | inst[27] | ~inst[4]) | inst[30] & (~inst[29] & inst[25] | inst[3]))
|
||||
|
||||
ctrl['ECtrl_OP_f_sl'] = ~inst[31] & ~inst[29] & ~inst[28] & ~inst[27] & ~inst[26] & ~inst[5] & ~inst[3] & ~inst[1]
|
||||
ctrl['ECtrl_OP_f_sr'] = ~inst[31] & ~inst[29] & ~inst[28] & ~inst[27] & ~inst[26] & ~inst[5] & inst[1]
|
||||
ctrl['ECtrl_OP_f_add'] = inst[31] | ~inst[28] & (~inst[26] & ~inst[27] & (inst[29] | ~inst[5] & inst[3] & ~inst[1] | inst[5] & ~inst[3] & ~inst[2]) | inst[26] & (~inst[29] | ~inst[27]))
|
||||
ctrl['ECtrl_OP_f_and'] = ~inst[31] & (~inst[28] & ~inst[29] & ~inst[27] & ~inst[26] & inst[5] & inst[2] & ~inst[0] & ~inst[1] | inst[28] & ~inst[27] & ~inst[26])
|
||||
ctrl['ECtrl_OP_f_or'] = ~inst[31] & (~inst[28] & ~inst[29] & ~inst[27] & ~inst[26] & inst[5] & inst[2] & inst[0] | inst[28] & ~inst[27] & inst[26])
|
||||
ctrl['ECtrl_OP_f_xor'] = ~inst[31] & (~inst[28] & ~inst[29] & ~inst[27] & ~inst[26] & inst[5] & inst[2] & ~inst[0] & inst[1] | inst[28] & inst[27])
|
||||
ctrl['ECtrl_OP_f_slt'] = ~inst[31] & ~inst[28] & ~inst[26] & (~inst[29] & inst[5] & inst[3] & ~inst[2] & ~inst[0] | inst[27])
|
||||
ctrl['ECtrl_OP_f_sltu'] = ~inst[31] & ~inst[28] & (~inst[26] & ~inst[29] & ~inst[27] & inst[5] & inst[3] & ~inst[2] & inst[0] | inst[26] & inst[29] & inst[27])
|
||||
ctrl['ECtrl_OP_alt'] = ~inst[31] & (~inst[26] & (~inst[29] & inst[1] & (inst[5] | inst[0]) | inst[27]) | inst[26] & inst[29] & inst[27])
|
||||
|
||||
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['MCtrl0_HW'] = ~inst[30] & ~inst[29] & ~inst[28] & ~inst[27] & ~inst[26] & inst[4] & (inst[3] | ~inst[1] & inst[0])
|
||||
ctrl['MCtrl0_LW'] = ~inst[30] & ~inst[29] & ~inst[28] & ~inst[27] & ~inst[26] & inst[4] & (inst[3] | inst[1] & inst[0])
|
||||
ctrl['MCtrl0_HLS'] = (~inst[27] & ~inst[26] & (~inst[30] & ~inst[31] & ~inst[29] & ~inst[28] & inst[4] & inst[3] | inst[30] & inst[29]), ~inst[30] & inst[1], inst[0])
|
||||
ctrl['MCtrl0_C0W'] = 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]
|
||||
ctrl['MCtrl1_MWR'] = inst[29]
|
||||
ctrl['MCtrl1_MX'] = ~inst[28]
|
||||
ctrl['MCtrl1_TLBR'] = inst[30] & ~inst[29] & inst[25] & ~inst[3] & ~inst[1]
|
||||
ctrl['MCtrl1_TLBWI'] = inst[30] & ~inst[29] & inst[25] & ~inst[3] & inst[1]
|
||||
ctrl['MCtrl1_TLBP'] = inst[30] & ~inst[4] & inst[3]
|
||||
|
||||
ctrl['WCtrl_RW'] = (~inst[30] & (~inst[29] & (inst[31] | ~inst[28] & (~inst[27] & (~inst[26] & (~inst[3] & (~inst[4] | ~inst[0]) | inst[3] & (inst[5] | ~inst[4] & ~inst[2] & inst[0])) | inst[26] & inst[20]) | inst[27] & inst[26])) | inst[29] & ~inst[31]) | inst[30] & ~inst[25] & ~inst[23])
|
||||
ctrl['RD'] = (~inst[29] & (inst[31] | inst[30]) | inst[29] & ~inst[30], inst[26])
|
||||
print(ctrl)
|
||||
|
62
tools/ectrl.txt
Normal file
62
tools/ectrl.txt
Normal file
@ -0,0 +1,62 @@
|
||||
////-------------------------------- OP ALT SA SA1 SA0 SB SB1 SB0 IMM IMM1 IMM0
|
||||
32'b00000000000???????????????000000 SL ? SA 0 0 RT 0 0 ? ? ? // SLL
|
||||
32'b00000000000???????????????000010 SR 0 SA 0 0 RT 0 0 ? ? ? // SRL
|
||||
32'b00000000000???????????????000011 SR 1 SA 0 0 RT 0 0 ? ? ? // SRA
|
||||
32'b000000???????????????00000000100 SL ? RS 1 1 RT 0 0 ? ? ? // SLLV
|
||||
32'b000000???????????????00000000110 SR 0 RS 1 1 RT 0 0 ? ? ? // SRLV
|
||||
32'b000000???????????????00000000111 SR 1 RS 1 1 RT 0 0 ? ? ? // SRAV
|
||||
32'b000000?????000000000000000001000 ? ? ? ? ? ? ? ? ? ? ? // JR
|
||||
32'b000000?????00000?????00000001001 ADD 0 PC 0 1 EIGHT 0 1 ? ? ? // JALR
|
||||
32'b000000????????????????????001100 ? ? ? ? ? ? ? ? ? ? ? // SYSCALL
|
||||
32'b000000????????????????????001101 ? ? ? ? ? ? ? ? ? ? ? // BREAK
|
||||
32'b0000000000000000?????00000010000 ? ? ? ? ? ? ? ? ? ? ? // MFHI
|
||||
32'b000000?????000000000000000010001 ? ? ? ? ? ? ? ? ? ? ? // MTHI
|
||||
32'b0000000000000000?????00000010010 ? ? ? ? ? ? ? ? ? ? ? // MFLO
|
||||
32'b000000?????000000000000000010011 ? ? ? ? ? ? ? ? ? ? ? // MTLO
|
||||
32'b000000??????????0000000000011000 ? ? ? ? ? ? ? ? ? ? ? // MULT
|
||||
32'b000000??????????0000000000011001 ? ? ? ? ? ? ? ? ? ? ? // MULTU
|
||||
32'b000000??????????0000000000011010 ? ? ? ? ? ? ? ? ? ? ? // DIV
|
||||
32'b000000??????????0000000000011011 ? ? ? ? ? ? ? ? ? ? ? // DIVU
|
||||
32'b000000???????????????00000100000 ADD 0 RS 1 1 RT 0 0 ? ? ? // ADD
|
||||
32'b000000???????????????00000100001 ADD 0 RS 1 1 RT 0 0 ? ? ? // ADDU
|
||||
32'b000000???????????????00000100010 ADD 1 RS 1 1 RT 0 0 ? ? ? // SUB
|
||||
32'b000000???????????????00000100011 ADD 1 RS 1 1 RT 0 0 ? ? ? // SUBU
|
||||
32'b000000???????????????00000100100 AND ? RS 1 1 RT 0 0 ? ? ? // AND
|
||||
32'b000000???????????????00000100101 OR 0 RS 1 1 RT 0 0 ? ? ? // OR
|
||||
32'b000000???????????????00000100110 XOR ? RS 1 1 RT 0 0 ? ? ? // XOR
|
||||
32'b000000???????????????00000100111 OR 1 RS 1 1 RT 0 0 ? ? ? // NOR
|
||||
32'b000000???????????????00000101010 SLT 1 RS 1 1 RT 0 0 ? ? ? // SLT
|
||||
32'b000000???????????????00000101011 SLTU 1 RS 1 1 RT 0 0 ? ? ? // SLTU
|
||||
32'b000001?????00000???????????????? ? ? ? ? ? ? ? ? ? ? ? // BLTZ
|
||||
32'b000001?????10000???????????????? ADD 0 PC 0 1 EIGHT 0 1 ? ? ? // BLTZAL
|
||||
32'b000001?????00001???????????????? ? ? ? ? ? ? ? ? ? ? ? // BGEZ
|
||||
32'b000001?????10001???????????????? ADD 0 PC 0 1 EIGHT 0 1 ? ? ? // BGEZAL
|
||||
32'b000010?????????????????????????? ? ? ? ? ? ? ? ? ? ? ? // J
|
||||
32'b000011?????????????????????????? ADD 0 PC 0 1 EIGHT 0 1 ? ? ? // JAL
|
||||
32'b000100?????????????????????????? ? ? ? ? ? ? ? ? ? ? ? // BEQ
|
||||
32'b000101?????????????????????????? ? ? ? ? ? ? ? ? ? ? ? // BNE
|
||||
32'b000110?????00000???????????????? ? ? ? ? ? ? ? ? ? ? ? // BLEZ
|
||||
32'b000111?????00000???????????????? ? ? ? ? ? ? ? ? ? ? ? // BGTZ
|
||||
32'b001000?????????????????????????? ADD 0 RS 1 1 IMM 1 ? IX 0 1 // ADDI
|
||||
32'b001001?????????????????????????? ADD 0 RS 1 1 IMM 1 ? IX 0 1 // ADDIU
|
||||
32'b001010?????????????????????????? SLT 1 RS 1 1 IMM 1 ? IX 0 1 // SLTI
|
||||
32'b001011?????????????????????????? SLTU 1 RS 1 1 IMM 1 ? IX 0 1 // SLTIU
|
||||
32'b001100?????????????????????????? AND ? RS 1 1 IMM 1 ? IU 0 0 // ANDI
|
||||
32'b001101?????????????????????????? OR 0 RS 1 1 IMM 1 ? IU 0 0 // ORI
|
||||
32'b001110?????????????????????????? XOR ? RS 1 1 IMM 1 ? IU 0 0 // XORI
|
||||
32'b00111100000????????????????????? XOR ? ZERO 1 0 IMM 1 ? UI 1 0 // LUI
|
||||
32'b01000000000??????????00000000??? ? ? ? ? ? ? ? ? ? ? ? // MFC0
|
||||
32'b01000000100??????????00000000??? ? ? ? ? ? ? ? ? ? ? ? // MTC0
|
||||
32'b01000010000000000000000000000001 ? ? ? ? ? ? ? ? ? ? ? // TLBR
|
||||
32'b01000010000000000000000000000010 ? ? ? ? ? ? ? ? ? ? ? // TLBWI
|
||||
32'b01000010000000000000000000001000 ? ? ? ? ? ? ? ? ? ? ? // TLBP
|
||||
32'b01000010000000000000000000011000 ? ? ? ? ? ? ? ? ? ? ? // ERET
|
||||
32'b011100???????????????00000000010 ? ? ? ? ? ? ? ? ? ? ? // MUL
|
||||
32'b100000?????????????????????????? ADD 0 RS 1 1 IMM 1 ? IX 0 1 // LB
|
||||
32'b100001?????????????????????????? ADD 0 RS 1 1 IMM 1 ? IX 0 1 // LH
|
||||
32'b100011?????????????????????????? ADD 0 RS 1 1 IMM 1 ? IX 0 1 // LW
|
||||
32'b100100?????????????????????????? ADD 0 RS 1 1 IMM 1 ? IX 0 1 // LBU
|
||||
32'b100101?????????????????????????? ADD 0 RS 1 1 IMM 1 ? IX 0 1 // LHU
|
||||
32'b101000?????????????????????????? ADD 0 RS 1 1 IMM 1 ? IX 0 1 // SB
|
||||
32'b101001?????????????????????????? ADD 0 RS 1 1 IMM 1 ? IX 0 1 // SH
|
||||
32'b101011?????????????????????????? ADD 0 RS 1 1 IMM 1 ? IX 0 1 // SW
|
131
tools/global.txt
131
tools/global.txt
@ -1,69 +1,62 @@
|
||||
////-------------------------------- ERET DP0 DP1
|
||||
32'b00000000000???????????????000000 0 1 1 // SLL
|
||||
32'b00000000000???????????????000010 0 1 1 // SRL
|
||||
32'b00000000000???????????????000011 0 1 1 // SRA
|
||||
32'b000000???????????????00000000100 0 1 1 // SLLV
|
||||
32'b000000???????????????00000000110 0 1 1 // SRLV
|
||||
32'b000000???????????????00000000111 0 1 1 // SRAV
|
||||
32'b000000?????000000000000000001000 0 1 1 // JR
|
||||
32'b000000?????00000?????00000001001 0 1 1 // JALR
|
||||
32'b000000????????????????????001100 0 1 1 // SYSCALL
|
||||
32'b000000????????????????????001101 0 1 1 // BREAK
|
||||
32'b0000000000000000?????00000010000 0 1 0 // MFHI
|
||||
32'b000000?????000000000000000010001 0 1 0 // MTHI
|
||||
32'b0000000000000000?????00000010010 0 1 0 // MFLO
|
||||
32'b000000?????000000000000000010011 0 1 0 // MTLO
|
||||
32'b000000??????????0000000000011000 0 1 0 // MULT
|
||||
32'b000000??????????0000000000011001 0 1 0 // MULTU
|
||||
32'b000000??????????0000000000011010 0 1 0 // DIV
|
||||
32'b000000??????????0000000000011011 0 1 0 // DIVU
|
||||
32'b000000???????????????00000100000 0 1 1 // ADD
|
||||
32'b000000???????????????00000100001 0 1 1 // ADDU
|
||||
32'b000000???????????????00000100010 0 1 1 // SUB
|
||||
32'b000000???????????????00000100011 0 1 1 // SUBU
|
||||
32'b000000???????????????00000100100 0 1 1 // AND
|
||||
32'b000000???????????????00000100101 0 1 1 // OR
|
||||
32'b000000???????????????00000100110 0 1 1 // XOR
|
||||
32'b000000???????????????00000100111 0 1 1 // NOR
|
||||
32'b000000???????????????00000101010 0 1 1 // SLT
|
||||
32'b000000???????????????00000101011 0 1 1 // SLTU
|
||||
32'b000001?????00000???????????????? 0 1 1 // BLTZ
|
||||
32'b000001?????10000???????????????? 0 1 1 // BLTZAL
|
||||
32'b000001?????00001???????????????? 0 1 1 // BGEZ
|
||||
32'b000001?????10001???????????????? 0 1 1 // BGEZAL
|
||||
32'b000010?????????????????????????? 0 1 1 // J
|
||||
32'b000011?????????????????????????? 0 1 1 // JAL
|
||||
32'b000100?????????????????????????? 0 1 1 // BEQ
|
||||
32'b000101?????????????????????????? 0 1 1 // BNE
|
||||
32'b000110?????00000???????????????? 0 1 1 // BLEZ
|
||||
32'b000111?????00000???????????????? 0 1 1 // BGTZ
|
||||
32'b001000?????????????????????????? 0 1 1 // ADDI
|
||||
32'b001001?????????????????????????? 0 1 1 // ADDIU
|
||||
32'b001010?????????????????????????? 0 1 1 // SLTI
|
||||
32'b001011?????????????????????????? 0 1 1 // SLTIU
|
||||
32'b001100?????????????????????????? 0 1 1 // ANDI
|
||||
32'b001101?????????????????????????? 0 1 1 // ORI
|
||||
32'b001110?????????????????????????? 0 1 1 // XORI
|
||||
32'b00111100000????????????????????? 0 1 1 // LUI
|
||||
32'b01000000000??????????00000000??? 0 1 0 // MFC0
|
||||
32'b01000000100??????????00000000??? 0 1 0 // MTC0
|
||||
32'b01000010000000000000000000000001 0 0 1 // TLBR
|
||||
32'b01000010000000000000000000000010 0 0 1 // TLBWI
|
||||
32'b01000010000000000000000000001000 0 0 1 // TLBP
|
||||
32'b01000010000000000000000000011000 1 1 1 // ERET
|
||||
32'b011100???????????????00000000010 0 1 0 // MUL
|
||||
32'b100000?????????????????????????? 0 0 1 // LB
|
||||
32'b100001?????????????????????????? 0 0 1 // LH
|
||||
32'b100011?????????????????????????? 0 0 1 // LW
|
||||
32'b100100?????????????????????????? 0 0 1 // LBU
|
||||
32'b100101?????????????????????????? 0 0 1 // LHU
|
||||
32'b101000?????????????????????????? 0 0 1 // SB
|
||||
32'b101001?????????????????????????? 0 0 1 // SH
|
||||
32'b101011?????????????????????????? 0 0 1 // SW
|
||||
32'b101111?????00000???????????????? 0 0 1 // I-Cache Index Invalid
|
||||
32'b101111?????01000???????????????? 0 0 1 // I-Cache Index Store Tag
|
||||
32'b101111?????10000???????????????? 0 0 1 // I-Cache Hit Invalid
|
||||
32'b101111?????00001???????????????? 0 0 1 // D-Cache Index Writeback Invalid
|
||||
32'b101111?????01001???????????????? 0 0 1 // D-Cache Index Store Tag
|
||||
32'b101111?????10001???????????????? 0 0 1 // D-Cache Hit Invalid
|
||||
32'b101111?????10101???????????????? 0 0 1 // D-Cache Hit Writeback Invalid
|
||||
////-------------------------------- SYSCALL BREAK ERET OFA ES ET DS DT DP0 DP1
|
||||
32'b00000000000???????????????000000 0 0 0 0 0 1 0 0 1 1 // SLL
|
||||
32'b00000000000???????????????000010 0 0 0 0 0 1 0 0 1 1 // SRL
|
||||
32'b00000000000???????????????000011 0 0 0 0 0 1 0 0 1 1 // SRA
|
||||
32'b000000???????????????00000000100 0 0 0 0 1 1 0 0 1 1 // SLLV
|
||||
32'b000000???????????????00000000110 0 0 0 0 1 1 0 0 1 1 // SRLV
|
||||
32'b000000???????????????00000000111 0 0 0 0 1 1 0 0 1 1 // SRAV
|
||||
32'b000000?????000000000000000001000 0 0 0 0 0 0 1 0 1 1 // JR
|
||||
32'b000000?????00000?????00000001001 0 0 0 0 0 0 1 0 1 1 // JALR
|
||||
32'b000000????????????????????001100 1 0 0 0 0 0 0 0 1 1 // SYSCALL
|
||||
32'b000000????????????????????001101 0 1 0 0 0 0 0 0 1 1 // BREAK
|
||||
32'b0000000000000000?????00000010000 0 0 0 0 0 0 0 0 1 0 // MFHI
|
||||
32'b000000?????000000000000000010001 0 0 0 0 0 0 0 0 1 0 // MTHI
|
||||
32'b0000000000000000?????00000010010 0 0 0 0 0 0 0 0 1 0 // MFLO
|
||||
32'b000000?????000000000000000010011 0 0 0 0 0 0 0 0 1 0 // MTLO
|
||||
32'b000000??????????0000000000011000 0 0 0 0 1 1 0 0 1 0 // MULT
|
||||
32'b000000??????????0000000000011001 0 0 0 0 1 1 0 0 1 0 // MULTU
|
||||
32'b000000??????????0000000000011010 0 0 0 0 1 1 0 0 1 0 // DIV
|
||||
32'b000000??????????0000000000011011 0 0 0 0 1 1 0 0 1 0 // DIVU
|
||||
32'b000000???????????????00000100000 0 0 0 1 1 1 0 0 1 1 // ADD
|
||||
32'b000000???????????????00000100001 0 0 0 0 1 1 0 0 1 1 // ADDU
|
||||
32'b000000???????????????00000100010 0 0 0 1 1 1 0 0 1 1 // SUB
|
||||
32'b000000???????????????00000100011 0 0 0 0 1 1 0 0 1 1 // SUBU
|
||||
32'b000000???????????????00000100100 0 0 0 0 1 1 0 0 1 1 // AND
|
||||
32'b000000???????????????00000100101 0 0 0 0 1 1 0 0 1 1 // OR
|
||||
32'b000000???????????????00000100110 0 0 0 0 1 1 0 0 1 1 // XOR
|
||||
32'b000000???????????????00000100111 0 0 0 0 1 1 0 0 1 1 // NOR
|
||||
32'b000000???????????????00000101010 0 0 0 0 1 1 0 0 1 1 // SLT
|
||||
32'b000000???????????????00000101011 0 0 0 0 1 1 0 0 1 1 // SLTU
|
||||
32'b000001?????00000???????????????? 0 0 0 0 0 0 1 0 1 1 // BLTZ
|
||||
32'b000001?????10000???????????????? 0 0 0 0 0 0 1 0 1 1 // BLTZAL
|
||||
32'b000001?????00001???????????????? 0 0 0 0 0 0 1 0 1 1 // BGEZ
|
||||
32'b000001?????10001???????????????? 0 0 0 0 0 0 1 0 1 1 // BGEZAL
|
||||
32'b000010?????????????????????????? 0 0 0 0 0 0 0 0 1 1 // J
|
||||
32'b000011?????????????????????????? 0 0 0 0 0 0 0 0 1 1 // JAL
|
||||
32'b000100?????????????????????????? 0 0 0 0 0 0 1 1 1 1 // BEQ
|
||||
32'b000101?????????????????????????? 0 0 0 0 0 0 1 1 1 1 // BNE
|
||||
32'b000110?????00000???????????????? 0 0 0 0 0 0 1 0 1 1 // BLEZ
|
||||
32'b000111?????00000???????????????? 0 0 0 0 0 0 1 0 1 1 // BGTZ
|
||||
32'b001000?????????????????????????? 0 0 0 1 1 0 0 0 1 1 // ADDI
|
||||
32'b001001?????????????????????????? 0 0 0 0 1 0 0 0 1 1 // ADDIU
|
||||
32'b001010?????????????????????????? 0 0 0 0 1 0 0 0 1 1 // SLTI
|
||||
32'b001011?????????????????????????? 0 0 0 0 1 0 0 0 1 1 // SLTIU
|
||||
32'b001100?????????????????????????? 0 0 0 0 1 0 0 0 1 1 // ANDI
|
||||
32'b001101?????????????????????????? 0 0 0 0 1 0 0 0 1 1 // ORI
|
||||
32'b001110?????????????????????????? 0 0 0 0 1 0 0 0 1 1 // XORI
|
||||
32'b00111100000????????????????????? 0 0 0 0 1 0 0 0 1 1 // LUI
|
||||
32'b01000000000??????????00000000??? 0 0 0 0 0 0 0 0 1 0 // MFC0
|
||||
32'b01000000100??????????00000000??? 0 0 0 0 0 0 0 0 1 0 // MTC0
|
||||
32'b01000010000000000000000000000001 0 0 0 0 0 0 0 0 0 1 // TLBR
|
||||
32'b01000010000000000000000000000010 0 0 0 0 0 0 0 0 0 1 // TLBWI
|
||||
32'b01000010000000000000000000001000 0 0 0 0 0 0 0 0 0 1 // TLBP
|
||||
32'b01000010000000000000000000011000 0 0 1 0 0 0 0 0 1 1 // ERET
|
||||
32'b011100???????????????00000000010 0 0 0 0 1 1 0 0 1 0 // MUL
|
||||
32'b100000?????????????????????????? 0 0 0 0 1 0 0 0 0 1 // LB
|
||||
32'b100001?????????????????????????? 0 0 0 0 1 0 0 0 0 1 // LH
|
||||
32'b100011?????????????????????????? 0 0 0 0 1 0 0 0 0 1 // LW
|
||||
32'b100100?????????????????????????? 0 0 0 0 1 0 0 0 0 1 // LBU
|
||||
32'b100101?????????????????????????? 0 0 0 0 1 0 0 0 0 1 // LHU
|
||||
32'b101000?????????????????????????? 0 0 0 0 1 0 0 0 0 1 // SB
|
||||
32'b101001?????????????????????????? 0 0 0 0 1 0 0 0 0 1 // SH
|
||||
32'b101011?????????????????????????? 0 0 0 0 1 0 0 0 0 1 // SW
|
62
tools/mctrl0.txt
Normal file
62
tools/mctrl0.txt
Normal file
@ -0,0 +1,62 @@
|
||||
////-------------------------------- HW LW HLS HLS2 HLS1 HLS0 C0W RS0 RS02 RS01 RS00
|
||||
32'b00000000000???????????????000000 0 0 ? 0 ? ? 0 ALU 1 ? ? // SLL
|
||||
32'b00000000000???????????????000010 0 0 ? 0 ? ? 0 ALU 1 ? ? // SRL
|
||||
32'b00000000000???????????????000011 0 0 ? 0 ? ? 0 ALU 1 ? ? // SRA
|
||||
32'b000000???????????????00000000100 0 0 ? 0 ? ? 0 ALU 1 ? ? // SLLV
|
||||
32'b000000???????????????00000000110 0 0 ? 0 ? ? 0 ALU 1 ? ? // SRLV
|
||||
32'b000000???????????????00000000111 0 0 ? 0 ? ? 0 ALU 1 ? ? // SRAV
|
||||
32'b000000?????000000000000000001000 0 0 ? 0 ? ? 0 ? ? ? ? // JR
|
||||
32'b000000?????00000?????00000001001 0 0 ? 0 ? ? 0 ALU 1 ? ? // JALR
|
||||
32'b000000????????????????????001100 0 0 ? 0 ? ? 0 ? ? ? ? // SYSCALL
|
||||
32'b000000????????????????????001101 0 0 ? 0 ? ? 0 ? ? ? ? // BREAK
|
||||
32'b0000000000000000?????00000010000 0 0 ? 0 ? ? 0 HI 0 0 1 // MFHI
|
||||
32'b000000?????000000000000000010001 1 0 RS 0 ? ? 0 ? ? ? ? // MTHI
|
||||
32'b0000000000000000?????00000010010 0 0 ? 0 ? ? 0 LO 0 0 0 // MFLO
|
||||
32'b000000?????000000000000000010011 0 1 RS 0 ? ? 0 ? ? ? ? // MTLO
|
||||
32'b000000??????????0000000000011000 1 1 MULT 1 0 0 0 ? ? ? ? // MULT
|
||||
32'b000000??????????0000000000011001 1 1 MULTU 1 0 1 0 ? ? ? ? // MULTU
|
||||
32'b000000??????????0000000000011010 1 1 DIV 1 1 0 0 ? ? ? ? // DIV
|
||||
32'b000000??????????0000000000011011 1 1 DIVU 1 1 1 0 ? ? ? ? // DIVU
|
||||
32'b000000???????????????00000100000 0 0 ? 0 ? ? 0 ALU 1 ? ? // ADD
|
||||
32'b000000???????????????00000100001 0 0 ? 0 ? ? 0 ALU 1 ? ? // ADDU
|
||||
32'b000000???????????????00000100010 0 0 ? 0 ? ? 0 ALU 1 ? ? // SUB
|
||||
32'b000000???????????????00000100011 0 0 ? 0 ? ? 0 ALU 1 ? ? // SUBU
|
||||
32'b000000???????????????00000100100 0 0 ? 0 ? ? 0 ALU 1 ? ? // AND
|
||||
32'b000000???????????????00000100101 0 0 ? 0 ? ? 0 ALU 1 ? ? // OR
|
||||
32'b000000???????????????00000100110 0 0 ? 0 ? ? 0 ALU 1 ? ? // XOR
|
||||
32'b000000???????????????00000100111 0 0 ? 0 ? ? 0 ALU 1 ? ? // NOR
|
||||
32'b000000???????????????00000101010 0 0 ? 0 ? ? 0 ALU 1 ? ? // SLT
|
||||
32'b000000???????????????00000101011 0 0 ? 0 ? ? 0 ALU 1 ? ? // SLTU
|
||||
32'b000001?????00000???????????????? 0 0 ? 0 ? ? 0 ? ? ? ? // BLTZ
|
||||
32'b000001?????10000???????????????? 0 0 ? 0 ? ? 0 ALU 1 ? ? // BLTZAL
|
||||
32'b000001?????00001???????????????? 0 0 ? 0 ? ? 0 ? ? ? ? // BGEZ
|
||||
32'b000001?????10001???????????????? 0 0 ? 0 ? ? 0 ALU 1 ? ? // BGEZAL
|
||||
32'b000010?????????????????????????? 0 0 ? 0 ? ? 0 ? ? ? ? // J
|
||||
32'b000011?????????????????????????? 0 0 ? 0 ? ? 0 ALU 1 ? ? // JAL
|
||||
32'b000100?????????????????????????? 0 0 ? 0 ? ? 0 ? ? ? ? // BEQ
|
||||
32'b000101?????????????????????????? 0 0 ? 0 ? ? 0 ? ? ? ? // BNE
|
||||
32'b000110?????00000???????????????? 0 0 ? 0 ? ? 0 ? ? ? ? // BLEZ
|
||||
32'b000111?????00000???????????????? 0 0 ? 0 ? ? 0 ? ? ? ? // BGTZ
|
||||
32'b001000?????????????????????????? 0 0 ? 0 ? ? 0 ALU 1 ? ? // ADDI
|
||||
32'b001001?????????????????????????? 0 0 ? 0 ? ? 0 ALU 1 ? ? // ADDIU
|
||||
32'b001010?????????????????????????? 0 0 ? 0 ? ? 0 ALU 1 ? ? // SLTI
|
||||
32'b001011?????????????????????????? 0 0 ? 0 ? ? 0 ALU 1 ? ? // SLTIU
|
||||
32'b001100?????????????????????????? 0 0 ? 0 ? ? 0 ALU 1 ? ? // ANDI
|
||||
32'b001101?????????????????????????? 0 0 ? 0 ? ? 0 ALU 1 ? ? // ORI
|
||||
32'b001110?????????????????????????? 0 0 ? 0 ? ? 0 ALU 1 ? ? // XORI
|
||||
32'b00111100000????????????????????? 0 0 ? 0 ? ? 0 ALU 1 ? ? // LUI
|
||||
32'b01000000000??????????00000000??? 0 0 ? 0 ? ? 0 C0 0 1 1 // MFC0
|
||||
32'b01000000100??????????00000000??? 0 0 ? 0 ? ? 1 ? ? ? ? // MTC0
|
||||
32'b01000010000000000000000000000001 ? ? ? 0 ? ? 0 ? ? ? ? // TLBR
|
||||
32'b01000010000000000000000000000010 ? ? ? 0 ? ? 0 ? ? ? ? // TLBWI
|
||||
32'b01000010000000000000000000001000 ? ? ? 0 ? ? 0 ? ? ? ? // TLBP
|
||||
32'b01000010000000000000000000011000 0 0 ? 0 ? ? 0 ? ? ? ? // ERET
|
||||
32'b011100???????????????00000000010 0 0 MUL? 1 0 ? 0 MUL 0 1 0 // MUL
|
||||
32'b100000?????????????????????????? ? ? ? 0 ? ? 0 ? ? ? ? // LB
|
||||
32'b100001?????????????????????????? ? ? ? 0 ? ? 0 ? ? ? ? // LH
|
||||
32'b100011?????????????????????????? ? ? ? 0 ? ? 0 ? ? ? ? // LW
|
||||
32'b100100?????????????????????????? ? ? ? 0 ? ? 0 ? ? ? ? // LBU
|
||||
32'b100101?????????????????????????? ? ? ? 0 ? ? 0 ? ? ? ? // LHU
|
||||
32'b101000?????????????????????????? ? ? ? 0 ? ? 0 ? ? ? ? // SB
|
||||
32'b101001?????????????????????????? ? ? ? 0 ? ? 0 ? ? ? ? // SH
|
||||
32'b101011?????????????????????????? ? ? ? 0 ? ? 0 ? ? ? ? // SW
|
62
tools/mctrl1.txt
Normal file
62
tools/mctrl1.txt
Normal file
@ -0,0 +1,62 @@
|
||||
////-------------------------------- TLBR TLBWI TLBP MR MWR MX
|
||||
32'b00000000000???????????????000000 0 0 0 0 ? ? // SLL
|
||||
32'b00000000000???????????????000010 0 0 0 0 ? ? // SRL
|
||||
32'b00000000000???????????????000011 0 0 0 0 ? ? // SRA
|
||||
32'b000000???????????????00000000100 0 0 0 0 ? ? // SLLV
|
||||
32'b000000???????????????00000000110 0 0 0 0 ? ? // SRLV
|
||||
32'b000000???????????????00000000111 0 0 0 0 ? ? // SRAV
|
||||
32'b000000?????000000000000000001000 0 0 0 0 ? ? // JR
|
||||
32'b000000?????00000?????00000001001 0 0 0 0 ? ? // JALR
|
||||
32'b000000????????????????????001100 0 0 0 0 ? ? // SYSCALL
|
||||
32'b000000????????????????????001101 0 0 0 0 ? ? // BREAK
|
||||
32'b0000000000000000?????00000010000 0 0 0 ? ? ? // MFHI
|
||||
32'b000000?????000000000000000010001 0 0 0 ? ? ? // MTHI
|
||||
32'b0000000000000000?????00000010010 0 0 0 ? ? ? // MFLO
|
||||
32'b000000?????000000000000000010011 0 0 0 ? ? ? // MTLO
|
||||
32'b000000??????????0000000000011000 0 0 0 ? ? ? // MULT
|
||||
32'b000000??????????0000000000011001 0 0 0 ? ? ? // MULTU
|
||||
32'b000000??????????0000000000011010 0 0 0 ? ? ? // DIV
|
||||
32'b000000??????????0000000000011011 0 0 0 ? ? ? // DIVU
|
||||
32'b000000???????????????00000100000 0 0 0 0 ? ? // ADD
|
||||
32'b000000???????????????00000100001 0 0 0 0 ? ? // ADDU
|
||||
32'b000000???????????????00000100010 0 0 0 0 ? ? // SUB
|
||||
32'b000000???????????????00000100011 0 0 0 0 ? ? // SUBU
|
||||
32'b000000???????????????00000100100 0 0 0 0 ? ? // AND
|
||||
32'b000000???????????????00000100101 0 0 0 0 ? ? // OR
|
||||
32'b000000???????????????00000100110 0 0 0 0 ? ? // XOR
|
||||
32'b000000???????????????00000100111 0 0 0 0 ? ? // NOR
|
||||
32'b000000???????????????00000101010 0 0 0 0 ? ? // SLT
|
||||
32'b000000???????????????00000101011 0 0 0 0 ? ? // SLTU
|
||||
32'b000001?????00000???????????????? 0 0 0 0 ? ? // BLTZ
|
||||
32'b000001?????10000???????????????? 0 0 0 0 ? ? // BLTZAL
|
||||
32'b000001?????00001???????????????? 0 0 0 0 ? ? // BGEZ
|
||||
32'b000001?????10001???????????????? 0 0 0 0 ? ? // BGEZAL
|
||||
32'b000010?????????????????????????? 0 0 0 0 ? ? // J
|
||||
32'b000011?????????????????????????? 0 0 0 0 ? ? // JAL
|
||||
32'b000100?????????????????????????? 0 0 0 0 ? ? // BEQ
|
||||
32'b000101?????????????????????????? 0 0 0 0 ? ? // BNE
|
||||
32'b000110?????00000???????????????? 0 0 0 0 ? ? // BLEZ
|
||||
32'b000111?????00000???????????????? 0 0 0 0 ? ? // BGTZ
|
||||
32'b001000?????????????????????????? 0 0 0 0 ? ? // ADDI
|
||||
32'b001001?????????????????????????? 0 0 0 0 ? ? // ADDIU
|
||||
32'b001010?????????????????????????? 0 0 0 0 ? ? // SLTI
|
||||
32'b001011?????????????????????????? 0 0 0 0 ? ? // SLTIU
|
||||
32'b001100?????????????????????????? 0 0 0 0 ? ? // ANDI
|
||||
32'b001101?????????????????????????? 0 0 0 0 ? ? // ORI
|
||||
32'b001110?????????????????????????? 0 0 0 0 ? ? // XORI
|
||||
32'b00111100000????????????????????? 0 0 0 0 ? ? // LUI
|
||||
32'b01000000000??????????00000000??? 0 0 0 ? ? ? // MFC0
|
||||
32'b01000000100??????????00000000??? 0 0 0 ? ? ? // MTC0
|
||||
32'b01000010000000000000000000000001 1 0 0 0 ? ? // TLBR
|
||||
32'b01000010000000000000000000000010 0 1 0 0 ? ? // TLBWI
|
||||
32'b01000010000000000000000000001000 0 0 1 0 ? ? // TLBP
|
||||
32'b01000010000000000000000000011000 0 0 0 0 ? ? // ERET
|
||||
32'b011100???????????????00000000010 0 0 0 ? ? ? // MUL
|
||||
32'b100000?????????????????????????? 0 0 0 1 0 1 // LB
|
||||
32'b100001?????????????????????????? 0 0 0 1 0 1 // LH
|
||||
32'b100011?????????????????????????? 0 0 0 1 0 1 // LW
|
||||
32'b100100?????????????????????????? 0 0 0 1 0 0 // LBU
|
||||
32'b100101?????????????????????????? 0 0 0 1 0 0 // LHU
|
||||
32'b101000?????????????????????????? 0 0 0 1 1 ? // SB
|
||||
32'b101001?????????????????????????? 0 0 0 1 1 ? // SH
|
||||
32'b101011?????????????????????????? 0 0 0 1 1 ? // SW
|
@ -1,69 +0,0 @@
|
||||
////-------------------------------- HLS2
|
||||
32'b00000000000???????????????000000 0 // SLL
|
||||
32'b00000000000???????????????000010 0 // SRL
|
||||
32'b00000000000???????????????000011 0 // SRA
|
||||
32'b000000???????????????00000000100 0 // SLLV
|
||||
32'b000000???????????????00000000110 0 // SRLV
|
||||
32'b000000???????????????00000000111 0 // SRAV
|
||||
32'b000000?????000000000000000001000 0 // JR
|
||||
32'b000000?????00000?????00000001001 0 // JALR
|
||||
32'b000000????????????????????001100 0 // SYSCALL
|
||||
32'b000000????????????????????001101 0 // BREAK
|
||||
32'b0000000000000000?????00000010000 0 // MFHI
|
||||
32'b000000?????000000000000000010001 0 // MTHI
|
||||
32'b0000000000000000?????00000010010 0 // MFLO
|
||||
32'b000000?????000000000000000010011 0 // MTLO
|
||||
32'b000000??????????0000000000011000 1 // MULT
|
||||
32'b000000??????????0000000000011001 1 // MULTU
|
||||
32'b000000??????????0000000000011010 1 // DIV
|
||||
32'b000000??????????0000000000011011 1 // DIVU
|
||||
32'b000000???????????????00000100000 0 // ADD
|
||||
32'b000000???????????????00000100001 0 // ADDU
|
||||
32'b000000???????????????00000100010 0 // SUB
|
||||
32'b000000???????????????00000100011 0 // SUBU
|
||||
32'b000000???????????????00000100100 0 // AND
|
||||
32'b000000???????????????00000100101 0 // OR
|
||||
32'b000000???????????????00000100110 0 // XOR
|
||||
32'b000000???????????????00000100111 0 // NOR
|
||||
32'b000000???????????????00000101010 0 // SLT
|
||||
32'b000000???????????????00000101011 0 // SLTU
|
||||
32'b000001?????00000???????????????? 0 // BLTZ
|
||||
32'b000001?????10000???????????????? 0 // BLTZAL
|
||||
32'b000001?????00001???????????????? 0 // BGEZ
|
||||
32'b000001?????10001???????????????? 0 // BGEZAL
|
||||
32'b000010?????????????????????????? 0 // J
|
||||
32'b000011?????????????????????????? 0 // JAL
|
||||
32'b000100?????????????????????????? 0 // BEQ
|
||||
32'b000101?????????????????????????? 0 // BNE
|
||||
32'b000110?????00000???????????????? 0 // BLEZ
|
||||
32'b000111?????00000???????????????? 0 // BGTZ
|
||||
32'b001000?????????????????????????? 0 // ADDI
|
||||
32'b001001?????????????????????????? 0 // ADDIU
|
||||
32'b001010?????????????????????????? 0 // SLTI
|
||||
32'b001011?????????????????????????? 0 // SLTIU
|
||||
32'b001100?????????????????????????? 0 // ANDI
|
||||
32'b001101?????????????????????????? 0 // ORI
|
||||
32'b001110?????????????????????????? 0 // XORI
|
||||
32'b00111100000????????????????????? 0 // LUI
|
||||
32'b01000000000??????????00000000??? 0 // MFC0
|
||||
32'b01000000100??????????00000000??? 0 // MTC0
|
||||
32'b01000010000000000000000000000001 0 // TLBR
|
||||
32'b01000010000000000000000000000010 0 // TLBWI
|
||||
32'b01000010000000000000000000001000 0 // TLBP
|
||||
32'b01000010000000000000000000011000 0 // ERET
|
||||
32'b011100???????????????00000000010 1 // MUL
|
||||
32'b100000?????????????????????????? 0 // LB
|
||||
32'b100001?????????????????????????? 0 // LH
|
||||
32'b100011?????????????????????????? 0 // LW
|
||||
32'b100100?????????????????????????? 0 // LBU
|
||||
32'b100101?????????????????????????? 0 // LHU
|
||||
32'b101000?????????????????????????? 0 // SB
|
||||
32'b101001?????????????????????????? 0 // SH
|
||||
32'b101011?????????????????????????? 0 // SW
|
||||
32'b101111?????00000???????????????? 0 // I-Cache Index Invalid
|
||||
32'b101111?????01000???????????????? 0 // I-Cache Index Store Tag
|
||||
32'b101111?????10000???????????????? 0 // I-Cache Hit Invalid
|
||||
32'b101111?????00001???????????????? 0 // D-Cache Index Writeback Invalid
|
||||
32'b101111?????01001???????????????? 0 // D-Cache Index Store Tag
|
||||
32'b101111?????10001???????????????? 0 // D-Cache Hit Invalid
|
||||
32'b101111?????10101???????????????? 0 // D-Cache Hit Writeback Invalid
|
62
tools/pcs.txt
Normal file
62
tools/pcs.txt
Normal file
@ -0,0 +1,62 @@
|
||||
////-------------------------------- BJRJ B JR J
|
||||
32'b00000000000???????????????000000 0 0 0 0 // SLL
|
||||
32'b00000000000???????????????000010 0 0 0 0 // SRL
|
||||
32'b00000000000???????????????000011 0 0 0 0 // SRA
|
||||
32'b000000???????????????00000000100 0 0 0 0 // SLLV
|
||||
32'b000000???????????????00000000110 0 0 0 0 // SRLV
|
||||
32'b000000???????????????00000000111 0 0 0 0 // SRAV
|
||||
32'b000000?????000000000000000001000 1 0 1 0 // JR
|
||||
32'b000000?????00000?????00000001001 1 0 1 0 // JALR
|
||||
32'b000000????????????????????001100 0 0 0 0 // SYSCALL
|
||||
32'b000000????????????????????001101 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 // ADD
|
||||
32'b000000???????????????00000100001 0 0 0 0 // ADDU
|
||||
32'b000000???????????????00000100010 0 0 0 0 // SUB
|
||||
32'b000000???????????????00000100011 0 0 0 0 // SUBU
|
||||
32'b000000???????????????00000100100 0 0 0 0 // AND
|
||||
32'b000000???????????????00000100101 0 0 0 0 // OR
|
||||
32'b000000???????????????00000100110 0 0 0 0 // XOR
|
||||
32'b000000???????????????00000100111 0 0 0 0 // NOR
|
||||
32'b000000???????????????00000101010 0 0 0 0 // SLT
|
||||
32'b000000???????????????00000101011 0 0 0 0 // SLTU
|
||||
32'b000001?????00000???????????????? 1 1 0 0 // BLTZ
|
||||
32'b000001?????10000???????????????? 1 1 0 0 // BLTZAL
|
||||
32'b000001?????00001???????????????? 1 1 0 0 // BGEZ
|
||||
32'b000001?????10001???????????????? 1 1 0 0 // BGEZAL
|
||||
32'b000010?????????????????????????? 1 0 0 1 // J
|
||||
32'b000011?????????????????????????? 1 0 0 1 // JAL
|
||||
32'b000100?????????????????????????? 1 1 0 0 // BEQ
|
||||
32'b000101?????????????????????????? 1 1 0 0 // BNE
|
||||
32'b000110?????00000???????????????? 1 1 0 0 // BLEZ
|
||||
32'b000111?????00000???????????????? 1 1 0 0 // BGTZ
|
||||
32'b001000?????????????????????????? 0 0 0 0 // ADDI
|
||||
32'b001001?????????????????????????? 0 0 0 0 // ADDIU
|
||||
32'b001010?????????????????????????? 0 0 0 0 // SLTI
|
||||
32'b001011?????????????????????????? 0 0 0 0 // SLTIU
|
||||
32'b001100?????????????????????????? 0 0 0 0 // ANDI
|
||||
32'b001101?????????????????????????? 0 0 0 0 // ORI
|
||||
32'b001110?????????????????????????? 0 0 0 0 // XORI
|
||||
32'b00111100000????????????????????? 0 0 0 0 // LUI
|
||||
32'b01000000000??????????00000000??? 0 0 0 0 // MFC0
|
||||
32'b01000000100??????????00000000??? 0 0 0 0 // MTC0
|
||||
32'b01000010000000000000000000000001 0 0 0 0 // TLBR
|
||||
32'b01000010000000000000000000000010 0 0 0 0 // TLBWI
|
||||
32'b01000010000000000000000000001000 0 0 0 0 // TLBP
|
||||
32'b01000010000000000000000000011000 0 0 0 0 // ERET
|
||||
32'b011100???????????????00000000010 0 0 0 0 // MUL
|
||||
32'b100000?????????????????????????? 0 0 0 0 // LB
|
||||
32'b100001?????????????????????????? 0 0 0 0 // LH
|
||||
32'b100011?????????????????????????? 0 0 0 0 // LW
|
||||
32'b100100?????????????????????????? 0 0 0 0 // LBU
|
||||
32'b100101?????????????????????????? 0 0 0 0 // LHU
|
||||
32'b101000?????????????????????????? 0 0 0 0 // SB
|
||||
32'b101001?????????????????????????? 0 0 0 0 // SH
|
||||
32'b101011?????????????????????????? 0 0 0 0 // SW
|
62
tools/wctrl.txt
Normal file
62
tools/wctrl.txt
Normal file
@ -0,0 +1,62 @@
|
||||
////-------------------------------- RW RD RD1 RD0
|
||||
32'b00000000000???????????????000000 1 RD 0 0 // SLL
|
||||
32'b00000000000???????????????000010 1 RD 0 0 // SRL
|
||||
32'b00000000000???????????????000011 1 RD 0 0 // SRA
|
||||
32'b000000???????????????00000000100 1 RD 0 0 // SLLV
|
||||
32'b000000???????????????00000000110 1 RD 0 0 // SRLV
|
||||
32'b000000???????????????00000000111 1 RD 0 0 // SRAV
|
||||
32'b000000?????000000000000000001000 0 ? ? ? // JR
|
||||
32'b000000?????00000?????00000001001 1 RD 0 0 // JALR
|
||||
32'b000000????????????????????001100 0 ? ? ? // SYSCALL
|
||||
32'b000000????????????????????001101 0 ? ? ? // BREAK
|
||||
32'b0000000000000000?????00000010000 1 RD 0 0 // MFHI
|
||||
32'b000000?????000000000000000010001 0 ? ? ? // MTHI
|
||||
32'b0000000000000000?????00000010010 1 RD 0 0 // MFLO
|
||||
32'b000000?????000000000000000010011 0 ? ? ? // MTLO
|
||||
32'b000000??????????0000000000011000 0 ? ? ? // MULT
|
||||
32'b000000??????????0000000000011001 0 ? ? ? // MULTU
|
||||
32'b000000??????????0000000000011010 0 ? ? ? // DIV
|
||||
32'b000000??????????0000000000011011 0 ? ? ? // DIVU
|
||||
32'b000000???????????????00000100000 1 RD 0 0 // ADD
|
||||
32'b000000???????????????00000100001 1 RD 0 0 // ADDU
|
||||
32'b000000???????????????00000100010 1 RD 0 0 // SUB
|
||||
32'b000000???????????????00000100011 1 RD 0 0 // SUBU
|
||||
32'b000000???????????????00000100100 1 RD 0 0 // AND
|
||||
32'b000000???????????????00000100101 1 RD 0 0 // OR
|
||||
32'b000000???????????????00000100110 1 RD 0 0 // XOR
|
||||
32'b000000???????????????00000100111 1 RD 0 0 // NOR
|
||||
32'b000000???????????????00000101010 1 RD 0 0 // SLT
|
||||
32'b000000???????????????00000101011 1 RD 0 0 // SLTU
|
||||
32'b000001?????00000???????????????? 0 ? ? ? // BLTZ
|
||||
32'b000001?????10000???????????????? 1 31 0 1 // BLTZAL
|
||||
32'b000001?????00001???????????????? 0 ? ? ? // BGEZ
|
||||
32'b000001?????10001???????????????? 1 31 0 1 // BGEZAL
|
||||
32'b000010?????????????????????????? 0 ? ? ? // J
|
||||
32'b000011?????????????????????????? 1 31 0 1 // JAL
|
||||
32'b000100?????????????????????????? 0 ? ? ? // BEQ
|
||||
32'b000101?????????????????????????? 0 ? ? ? // BNE
|
||||
32'b000110?????00000???????????????? 0 ? ? ? // BLEZ
|
||||
32'b000111?????00000???????????????? 0 ? ? ? // BGTZ
|
||||
32'b001000?????????????????????????? 1 RT 1 ? // ADDI
|
||||
32'b001001?????????????????????????? 1 RT 1 ? // ADDIU
|
||||
32'b001010?????????????????????????? 1 RT 1 ? // SLTI
|
||||
32'b001011?????????????????????????? 1 RT 1 ? // SLTIU
|
||||
32'b001100?????????????????????????? 1 RT 1 ? // ANDI
|
||||
32'b001101?????????????????????????? 1 RT 1 ? // ORI
|
||||
32'b001110?????????????????????????? 1 RT 1 ? // XORI
|
||||
32'b00111100000????????????????????? 1 RT 1 ? // LUI
|
||||
32'b01000000000??????????00000000??? 1 RT 1 ? // MFC0
|
||||
32'b01000000100??????????00000000??? 0 ? ? ? // MTC0
|
||||
32'b01000010000000000000000000000001 0 ? ? ? // TLBR
|
||||
32'b01000010000000000000000000000010 0 ? ? ? // TLBWI
|
||||
32'b01000010000000000000000000001000 0 ? ? ? // TLBP
|
||||
32'b01000010000000000000000000011000 0 ? ? ? // ERET
|
||||
32'b011100???????????????00000000010 1 RD 0 0 // MUL
|
||||
32'b100000?????????????????????????? 1 RT 1 ? // LB
|
||||
32'b100001?????????????????????????? 1 RT 1 ? // LH
|
||||
32'b100011?????????????????????????? 1 RT 1 ? // LW
|
||||
32'b100100?????????????????????????? 1 RT 1 ? // LBU
|
||||
32'b100101?????????????????????????? 1 RT 1 ? // LHU
|
||||
32'b101000?????????????????????????? 0 ? ? ? // SB
|
||||
32'b101001?????????????????????????? 0 ? ? ? // SH
|
||||
32'b101011?????????????????????????? 0 ? ? ? // SW
|
Loading…
Reference in New Issue
Block a user