improve id/ex datapath
move operand selection into decode stage; simplify bypassing
This commit is contained in:
@ -15,14 +15,13 @@ object Constants
|
||||
val BR_J = UFix(7, 4);
|
||||
val BR_JR = UFix(8, 4);
|
||||
|
||||
val PC_4 = UFix(0, 4);
|
||||
val PC_BTB = UFix(1, 4);
|
||||
val PC_EX4 = UFix(2, 4);
|
||||
val PC_BR = UFix(3, 4);
|
||||
val PC_JR = UFix(4, 4);
|
||||
val PC_PCR = UFix(5, 4);
|
||||
val PC_WB = UFix(6, 4);
|
||||
val PC_EVEC = UFix(7, 4);
|
||||
val PC_4 = UFix(0, 3);
|
||||
val PC_BTB = UFix(1, 3);
|
||||
val PC_EX4 = UFix(2, 3);
|
||||
val PC_BR = UFix(3, 3);
|
||||
val PC_PCR = UFix(4, 3);
|
||||
val PC_WB = UFix(5, 3);
|
||||
val PC_EVEC = UFix(6, 3);
|
||||
|
||||
val KF_Y = UFix(1, 1);
|
||||
val KF_N = UFix(0, 1);
|
||||
@ -30,19 +29,13 @@ object Constants
|
||||
val REN_Y = UFix(1, 1);
|
||||
val REN_N = UFix(0, 1);
|
||||
|
||||
val AS_X = UFix(0, 1);
|
||||
val AS_IMM = UFix(0, 1);
|
||||
val AS_RS2 = UFix(1, 1);
|
||||
|
||||
val A2_X = UFix(0, 2);
|
||||
val A2_0 = UFix(0, 2);
|
||||
val A2_SEXT = UFix(1, 2);
|
||||
val A2_RS2 = UFix(2, 2);
|
||||
val A2_SPLIT = UFix(3, 2);
|
||||
|
||||
val A1_X = UFix(0, 1);
|
||||
val A1_RS1 = UFix(0, 1);
|
||||
val A1_LUI = UFix(1, 1);
|
||||
val A2_X = UFix(0, 3);
|
||||
val A2_BTYPE = UFix(0, 3);
|
||||
val A2_LTYPE = UFix(1, 3);
|
||||
val A2_ITYPE = UFix(2, 3);
|
||||
val A2_ZERO = UFix(4, 3);
|
||||
val A2_JTYPE = UFix(5, 3);
|
||||
val A2_RTYPE = UFix(6, 3);
|
||||
|
||||
val MUL_X = UFix(0, 2);
|
||||
val MUL_LO = UFix(0, 2);
|
||||
@ -94,6 +87,7 @@ object Constants
|
||||
val FN_SL = UFix(7, 4);
|
||||
val FN_SR = UFix(8, 4);
|
||||
val FN_SRA = UFix(9, 4);
|
||||
val FN_OP2 = UFix(10, 4);
|
||||
|
||||
val DW_X = UFix(0, 1);
|
||||
val DW_32 = UFix(0, 1);
|
||||
|
Reference in New Issue
Block a user