add sync pref as nop

This commit is contained in:
Paul Pan 2021-08-30 13:11:40 +08:00
parent eea7b6bbda
commit 0b872c9b7c
10 changed files with 59 additions and 44 deletions

View File

@ -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[30] | inst[29] & ~inst[30] | inst[31], inst[26]},
ctrl.RD
);
@ -34,18 +34,18 @@ module Controller (
assign ctrl.J = ~inst[31] & ~inst[29] & ~inst[28] & inst[27];
assign ctrl.BGO = ~inst[26] & (eq | inst[27] & ltz) | inst[26] & (~inst[27] & (~inst[28] & (inst[16] & ~ltz | ~inst[16] & ltz) | inst[28] & ~eq) | inst[27] & ~eq & ~ltz);
assign ctrl.PRV = inst[30] & ~inst[29];
assign ctrl.PRV = ~inst[31] & inst[30] & ~inst[29];
assign ctrl.SYSCALL = ~inst[31] & ~inst[30] & ~inst[29] & ~inst[28] & ~inst[27] & ~inst[26] & inst[3] & inst[2] & ~inst[0];
assign ctrl.BREAK = ~inst[31] & ~inst[30] & ~inst[29] & ~inst[28] & ~inst[27] & ~inst[26] & inst[3] & inst[2] & inst[0];
assign ctrl.ERET = inst[30] & inst[4];
assign ctrl.BREAK = ~inst[31] & ~inst[30] & ~inst[29] & ~inst[28] & ~inst[27] & ~inst[26] & inst[3] & inst[2] & ~inst[1] & inst[0];
assign ctrl.ERET = ~inst[31] & inst[30] & inst[4];
assign ctrl.OFA = ~inst[31] & ~inst[28] & ~inst[27] & ~inst[26] & (~inst[30] & inst[5] & ~inst[3] & ~inst[2] & ~inst[0] | inst[29]);
assign 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];;
assign 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]);
assign ctrl.DS = ~inst[31] & ~inst[29] & (inst[28] | ~inst[27] & (~inst[30] & ~inst[5] & ~inst[4] & inst[3] & ~inst[2] | inst[26]));
assign ctrl.ES = (~inst[30] & (~inst[28] & ~inst[27] & ~inst[26] & ((inst[4] & inst[3] & ~inst[2] | ~inst[3] & inst[2]) | inst[5]) | inst[31]) | inst[29]);
assign ctrl.ET = ~inst[27] & ~inst[26] & (~inst[31] & ~inst[30] & ~inst[29] & ~inst[28] & (~inst[1] & (~inst[0] & (~inst[3] & ~inst[4] | inst[3] & inst[4]) | inst[4] & inst[3] & inst[0]) | inst[1] & (~inst[4] | inst[3]) | inst[5]) | inst[30] & inst[29]);
assign ctrl.DS = ~inst[26] & (~inst[31] & ~inst[30] & ~inst[29] & ~inst[28] & ~inst[27] & ~inst[5] & ~inst[4] & inst[3] & ~inst[2] | ~inst[31] & ~inst[29] & inst[28]) | ~inst[31] & ~inst[29] & (inst[28] | ~inst[27]) & inst[26];
assign ctrl.DT = ~inst[31] & ~inst[29] & inst[28] & ~inst[27];
assign ctrl.DP0 = ~inst[31] & (~inst[30] | inst[29] | ~inst[25] | inst[4]);
assign ctrl.DP0 = ~inst[31] & (~inst[30] | inst[29] | ~inst[25] | inst[4]) | inst[31] & inst[30];
assign ctrl.DP1 = inst[26] | (~inst[30] & (inst[31] | inst[29] | inst[28] | inst[27] | ~inst[4]) | inst[30] & (~inst[29] & inst[25] | inst[3]));
assign ctrl.ECtrl.OP.f_sl = ~inst[31] & ~inst[29] & ~inst[28] & ~inst[27] & ~inst[26] & ~inst[5] & ~inst[3] & ~inst[1];
@ -65,21 +65,20 @@ module Controller (
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[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[29] & inst[23] & ~inst[3];
assign ctrl.MCtrl0.C0W = ~inst[31] & inst[30] & ~inst[29] & inst[23] & ~inst[3];
assign ctrl.MCtrl0.SEL = inst[2:0];
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.MR = inst[31] & ~inst[30];
assign ctrl.MCtrl1.MWR = inst[29];
assign ctrl.MCtrl1.MX = ~inst[28];
assign ctrl.MCtrl1.ALR = ALR_t'({inst[28] & inst[27], ~inst[28] & inst[27] & ~inst[26]});
assign ctrl.MCtrl1.SZ = inst[27:26];
assign ctrl.MCtrl1.TLBR = inst[30] & ~inst[29] & inst[25] & ~inst[3] & ~inst[1];
assign ctrl.MCtrl1.TLBWI = inst[30] & ~inst[29] & inst[25] & ~inst[3] & inst[1];
assign ctrl.MCtrl1.TLBWR = inst[30] & ~inst[29] & inst[25] & ~inst[3] & (inst[2] | ~inst[1]);
assign ctrl.MCtrl1.TLBP = inst[30] & ~inst[4] & inst[3];
assign ctrl.MCtrl1.TLBR = ~inst[31] & inst[30] & ~inst[29] & inst[25] & ~inst[3] & ~inst[1];
assign ctrl.MCtrl1.TLBWI = ~inst[31] & inst[30] & ~inst[29] & inst[25] & ~inst[3] & inst[1];
assign ctrl.MCtrl1.TLBWR = ~inst[31] & inst[30] & ~inst[29] & inst[25] & ~inst[3] & (inst[2] | ~inst[1]);
assign ctrl.MCtrl1.TLBP = ~inst[31] & 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[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]);
assign ctrl.WCtrl.RW = ctrl.RD != 5'b00000 & (~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[28] & (~inst[31] & (inst[29] | inst[20]) | inst[31] & ~inst[29]) | inst[28] & (~inst[31] & inst[29] | inst[31]))) | 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[25] & ~inst[23] | inst[29]));
endmodule

View File

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

View File

@ -1,4 +1,5 @@
table = [
('000000000000000000000?????001111', 'SYNC'),
('00000000000???????????????000000', 'SLL'),
('00000000000???????????????000010', 'SRL'),
('00000000000???????????????000011', 'SRA'),
@ -65,6 +66,7 @@ table = [
('101010??????????????????????????', 'SWL'),
('101011??????????????????????????', 'SW'),
('101110??????????????????????????', 'SWR'),
('110011??????????????????????????', 'PREF'),
]
class Boolean:
@ -89,23 +91,23 @@ for inst, name in table:
ctrl = {}
ctrl['BJRJ'] = (~inst[27] & (~inst[31] & ~inst[30] & ~inst[29] & ~inst[28] & ~inst[5] & ~inst[4] & inst[3] & ~inst[2] | ~inst[31] & ~inst[29] & inst[28]) | inst[27] & ~inst[31] & ~inst[29]) & ~inst[26] | ~inst[31] & ~inst[29] & 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['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['PRV'] = inst[30] & ~inst[29];
ctrl['PRV'] = ~inst[31] & inst[30] & ~inst[29]
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['BREAK'] = ~inst[31] & ~inst[30] & ~inst[29] & ~inst[28] & ~inst[27] & ~inst[26] & inst[3] & inst[2] & ~inst[1] & inst[0]
ctrl['ERET'] = ~inst[31] & 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['ES'] = (~inst[30] & (~inst[28] & ~inst[27] & ~inst[26] & ((inst[4] & inst[3] & ~inst[2] | ~inst[3] & inst[2]) | inst[5]) | inst[31]) | inst[29])
ctrl['ET'] = ~inst[27] & ~inst[26] & (~inst[31] & ~inst[30] & ~inst[29] & ~inst[28] & (~inst[1] & (~inst[0] & (~inst[3] & ~inst[4] | inst[3] & inst[4]) | inst[4] & inst[3] & inst[0]) | inst[1] & (~inst[4] | inst[3]) | inst[5]) | inst[30] & inst[29])
ctrl['DS'] = ~inst[26] & (~inst[31] & ~inst[30] & ~inst[29] & ~inst[28] & ~inst[27] & ~inst[5] & ~inst[4] & inst[3] & ~inst[2] | ~inst[31] & ~inst[29] & inst[28]) | ~inst[31] & ~inst[29] & (inst[28] | ~inst[27]) & 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['DP0'] = ~inst[31] & (~inst[30] | inst[29] | ~inst[25] | inst[4]) | inst[31] & inst[30]
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]
@ -120,23 +122,23 @@ 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[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_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]
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[30] & ~inst[29] & inst[25] & ~inst[3] & ~inst[1]
ctrl['MCtrl1_TLBWI'] = inst[30] & ~inst[29] & inst[25] & ~inst[3] & inst[1]
ctrl['MCtrl1_TLBWR'] = inst[30] & ~inst[29] & inst[25] & ~inst[3] & (inst[2] | ~inst[1])
ctrl['MCtrl1_TLBP'] = inst[30] & ~inst[4] & inst[3]
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['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])
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[28] & (~inst[31] & (inst[29] | inst[20]) | inst[31] & ~inst[29]) | inst[28] & (~inst[31] & inst[29] | inst[31]))) | 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[25] & ~inst[23] | inst[29]))
ctrl['RD'] = (~inst[29] & inst[30] | inst[29] & ~inst[30] | inst[31], inst[26])
print(ctrl)

View File

@ -1,4 +1,5 @@
////-------------------------------- OP ALT SA SA1 SA0 SB SB1 SB0 IMM IMM1 IMM0
32'b000000000000000000000?????001111 ? ? ? ? ? ? ? ? ? ? ? // SYNC (NOP)
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
@ -64,4 +65,5 @@
32'b101001?????????????????????????? ADD 0 RS 1 1 IMM 1 ? IX 0 1 // SH
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'b101110?????????????????????????? ADD 0 RS 1 1 IMM 1 ? IX 0 1 // SWR
32'b110011?????????????????????????? ? ? ? ? ? ? ? ? ? ? ? // PREF

View File

@ -1,4 +1,5 @@
////-------------------------------- SYSCALL BREAK ERET OFA ES ET DS DT DP0 DP1
32'b000000000000000000000?????001111 0 0 0 0 ? ? ? ? 1 1 // SYNC (NOP)
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
@ -64,4 +65,5 @@
32'b101001?????????????????????????? 0 0 0 0 1 0 0 0 0 1 // SH
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'b101110?????????????????????????? 0 0 0 0 1 0 0 0 0 1 // SWR
32'b110011?????????????????????????? 0 0 0 0 0 0 0 0 1 1 // PREF (NOP)

View File

@ -1,4 +1,5 @@
////-------------------------------- HW LW HLS HLS2 HLS1 HLS0 C0W RS0 RS02 RS01 RS00
32'b000000000000000000000?????001111 0 0 ? 0 ? ? 0 ? ? ? ? // SYNC (NOP)
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
@ -64,4 +65,5 @@
32'b101001?????????????????????????? ? ? ? 0 ? ? 0 ? ? ? ? // SH
32'b101010?????????????????????????? ? ? ? 0 ? ? 0 ? ? ? ? // SWL
32'b101011?????????????????????????? ? ? ? 0 ? ? 0 ? ? ? ? // SW
32'b101110?????????????????????????? ? ? ? 0 ? ? 0 ? ? ? ? // SWR
32'b101110?????????????????????????? ? ? ? 0 ? ? 0 ? ? ? ? // SWR
32'b110011?????????????????????????? 0 0 ? 0 ? ? 0 ? ? ? ? // PREF (NOP)

View File

@ -1,4 +1,5 @@
////-------------------------------- 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
@ -64,4 +65,5 @@
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'b101110?????????????????????????? 0 0 0 0 1 1 ? URIGHT 1 ? // SWR
32'b110011?????????????????????????? 0 0 0 0 0 ? ? ? ? ? // PREF (NOP)

View File

@ -1,4 +1,5 @@
////-------------------------------- BJRJ B JR J
32'b000000000000000000000?????001111 0 0 0 0 // SYNC (NOP)
32'b00000000000???????????????000000 0 0 0 0 // SLL
32'b00000000000???????????????000010 0 0 0 0 // SRL
32'b00000000000???????????????000011 0 0 0 0 // SRA
@ -64,4 +65,5 @@
32'b101001?????????????????????????? 0 0 0 0 // SH
32'b101010?????????????????????????? 0 0 0 0 // SWL
32'b101011?????????????????????????? 0 0 0 0 // SW
32'b101110?????????????????????????? 0 0 0 0 // SWR
32'b101110?????????????????????????? 0 0 0 0 // SWR
32'b110011?????????????????????????? 0 0 0 0 // PREF (NOP)

View File

@ -1,4 +1,5 @@
////-------------------------------- PRV
32'b000000000000000000000?????001111 0 // SYNC (NOP)
32'b00000000000???????????????000000 0 // SLL
32'b00000000000???????????????000010 0 // SRL
32'b00000000000???????????????000011 0 // SRA
@ -64,4 +65,5 @@
32'b101001?????????????????????????? 0 // SH
32'b101010?????????????????????????? 0 // SWL
32'b101011?????????????????????????? 0 // SW
32'b101110?????????????????????????? 0 // SWR
32'b101110?????????????????????????? 0 // SWR
32'b110011?????????????????????????? 0 // PREF (NOP)

View File

@ -1,4 +1,5 @@
////-------------------------------- RW RD RD1 RD0
32'b000000000000000000000?????001111 0 ? ? ? // SYNC (NOP)
32'b00000000000???????????????000000 1 RD 0 0 // SLL
32'b00000000000???????????????000010 1 RD 0 0 // SRL
32'b00000000000???????????????000011 1 RD 0 0 // SRA
@ -64,4 +65,5 @@
32'b101001?????????????????????????? 0 ? ? ? // SH
32'b101010?????????????????????????? 0 ? ? ? // SWL
32'b101011?????????????????????????? 0 ? ? ? // SW
32'b101110?????????????????????????? 0 ? ? ? // SWR
32'b101110?????????????????????????? 0 ? ? ? // SWR
32'b110011?????????????????????????? 0 ? ? ? // PREF (NOP)