add sync pref as nop
This commit is contained in:
parent
eea7b6bbda
commit
0b872c9b7c
@ -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
|
||||
|
@ -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:]]
|
||||
|
@ -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)
|
||||
|
@ -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
|
@ -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)
|
@ -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)
|
@ -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)
|
@ -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)
|
@ -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)
|
@ -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)
|
Loading…
Reference in New Issue
Block a user