Revert to old AUIPC definition
This commit is contained in:
		@@ -23,8 +23,7 @@ trait ScalarOpConstants {
 | 
			
		||||
  val A1_X    = Bits("b??", 2)
 | 
			
		||||
  val A1_ZERO = UInt(0, 2)
 | 
			
		||||
  val A1_RS1  = UInt(1, 2)
 | 
			
		||||
  val A1_PCHI = UInt(2, 2)
 | 
			
		||||
  val A1_PC   = UInt(3, 2)
 | 
			
		||||
  val A1_PC   = UInt(2, 2)
 | 
			
		||||
 | 
			
		||||
  val IMM_X  = Bits("b???", 3)
 | 
			
		||||
  val IMM_S  = UInt(0, 3)
 | 
			
		||||
 
 | 
			
		||||
@@ -99,7 +99,7 @@ object XDecode extends DecodeConstants
 | 
			
		||||
                                        
 | 
			
		||||
    JAL->       List(Y,    N,N,BR_J,  N,N,N,A2_FOUR,A1_PC,  IMM_UJ,DW_X,  FN_ADD,   N,M_X,      MT_X, N,N,Y,CSR.N,N,N,N,N,N,N),
 | 
			
		||||
    JALR->      List(Y,    N,N,BR_N,  Y,N,Y,A2_FOUR,A1_PC,  IMM_I, DW_XPR,FN_ADD,   N,M_X,      MT_X, N,N,Y,CSR.N,N,N,N,N,N,N),
 | 
			
		||||
    AUIPC->     List(Y,    N,N,BR_N,  N,N,N,A2_IMM, A1_PCHI,IMM_U, DW_XPR,FN_ADD,   N,M_X,      MT_X, N,N,Y,CSR.N,N,N,N,N,N,N),
 | 
			
		||||
    AUIPC->     List(Y,    N,N,BR_N,  N,N,N,A2_IMM, A1_PC,  IMM_U, DW_XPR,FN_ADD,   N,M_X,      MT_X, N,N,Y,CSR.N,N,N,N,N,N,N),
 | 
			
		||||
                                        
 | 
			
		||||
    LB->        List(Y,    N,N,BR_N,  N,N,Y,A2_IMM, A1_RS1, IMM_I, DW_XPR,FN_ADD,   Y,M_XRD,    MT_B, N,N,Y,CSR.N,N,N,N,N,N,N),
 | 
			
		||||
    LH->        List(Y,    N,N,BR_N,  N,N,Y,A2_IMM, A1_RS1, IMM_I, DW_XPR,FN_ADD,   Y,M_XRD,    MT_H, N,N,Y,CSR.N,N,N,N,N,N,N),
 | 
			
		||||
 
 | 
			
		||||
@@ -132,13 +132,9 @@ class Datapath(implicit conf: RocketConfiguration) extends Module
 | 
			
		||||
  val ex_rs = for (i <- 0 until id_rs.size)
 | 
			
		||||
    yield Mux(ex_reg_rs_bypass(i), bypass(ex_reg_rs_lsb(i)), Cat(ex_reg_rs_msb(i), ex_reg_rs_lsb(i)))
 | 
			
		||||
  val ex_imm = imm(ex_reg_sel_imm, ex_reg_inst)
 | 
			
		||||
  val ex_op1_hi = MuxLookup(ex_reg_sel_alu1, ex_reg_pc.toSInt >> 12, Seq(
 | 
			
		||||
    A1_RS1 -> (ex_rs(0).toSInt >> 12),
 | 
			
		||||
    A1_ZERO -> SInt(0)))
 | 
			
		||||
  val ex_op1_lo = MuxLookup(ex_reg_sel_alu1, UInt(0), Seq(
 | 
			
		||||
    A1_RS1 -> ex_rs(0)(11,0),
 | 
			
		||||
    A1_PC -> ex_reg_pc(11,0)))
 | 
			
		||||
  val ex_op1 = Cat(ex_op1_hi, ex_op1_lo)
 | 
			
		||||
  val ex_op1 = MuxLookup(ex_reg_sel_alu1, SInt(0), Seq(
 | 
			
		||||
    A1_RS1 -> ex_rs(0).toSInt,
 | 
			
		||||
    A1_PC -> ex_reg_pc.toSInt))
 | 
			
		||||
  val ex_op2 = MuxLookup(ex_reg_sel_alu2, SInt(0), Seq(
 | 
			
		||||
    A2_RS2 -> ex_rs(1).toSInt,
 | 
			
		||||
    A2_IMM -> ex_imm,
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user