195 lines
11 KiB
Scala
195 lines
11 KiB
Scala
package rocket
|
|
|
|
import Chisel._
|
|
import Node._
|
|
|
|
object Instructions
|
|
{
|
|
/* Automatically generated by parse-opcodes */
|
|
def JAL = Bits("b?????????????????????????1100111")
|
|
def JALR = Bits("b??????????????????????0001101111")
|
|
def BEQ = Bits("b??????????????????????0001100011")
|
|
def BNE = Bits("b??????????????????????0011100011")
|
|
def BLT = Bits("b??????????????????????1001100011")
|
|
def BGE = Bits("b??????????????????????1011100011")
|
|
def BLTU = Bits("b??????????????????????1101100011")
|
|
def BGEU = Bits("b??????????????????????1111100011")
|
|
def LUI = Bits("b?????????????????????????0110111")
|
|
def AUIPC = Bits("b?????????????????????????0010111")
|
|
def ADDI = Bits("b??????????????????????0000010011")
|
|
def SLLI = Bits("b??????????00000??????00010010011")
|
|
def SLTI = Bits("b??????????????????????0100010011")
|
|
def SLTIU = Bits("b??????????????????????0110010011")
|
|
def XORI = Bits("b??????????????????????1000010011")
|
|
def SRLI = Bits("b??????????00000??????01010010011")
|
|
def SRAI = Bits("b??????????00000??????11010010011")
|
|
def ORI = Bits("b??????????????????????1100010011")
|
|
def ANDI = Bits("b??????????????????????1110010011")
|
|
def ADD = Bits("b???????????????00000000000110011")
|
|
def SUB = Bits("b???????????????10000000000110011")
|
|
def SLL = Bits("b???????????????00000000010110011")
|
|
def SLT = Bits("b???????????????00000000100110011")
|
|
def SLTU = Bits("b???????????????00000000110110011")
|
|
def XOR = Bits("b???????????????00000001000110011")
|
|
def SRL = Bits("b???????????????00000001010110011")
|
|
def SRA = Bits("b???????????????10000001010110011")
|
|
def OR = Bits("b???????????????00000001100110011")
|
|
def AND = Bits("b???????????????00000001110110011")
|
|
def MUL = Bits("b???????????????00000010000110011")
|
|
def MULH = Bits("b???????????????00000010010110011")
|
|
def MULHSU = Bits("b???????????????00000010100110011")
|
|
def MULHU = Bits("b???????????????00000010110110011")
|
|
def DIV = Bits("b???????????????00000011000110011")
|
|
def DIVU = Bits("b???????????????00000011010110011")
|
|
def REM = Bits("b???????????????00000011100110011")
|
|
def REMU = Bits("b???????????????00000011110110011")
|
|
def ADDIW = Bits("b??????????????????????0000011011")
|
|
def SLLIW = Bits("b??????????000000?????00010011011")
|
|
def SRLIW = Bits("b??????????000000?????01010011011")
|
|
def SRAIW = Bits("b??????????000000?????11010011011")
|
|
def ADDW = Bits("b???????????????00000000000111011")
|
|
def SUBW = Bits("b???????????????10000000000111011")
|
|
def SLLW = Bits("b???????????????00000000010111011")
|
|
def SRLW = Bits("b???????????????00000001010111011")
|
|
def SRAW = Bits("b???????????????10000001010111011")
|
|
def MULW = Bits("b???????????????00000010000111011")
|
|
def DIVW = Bits("b???????????????00000011000111011")
|
|
def DIVUW = Bits("b???????????????00000011010111011")
|
|
def REMW = Bits("b???????????????00000011100111011")
|
|
def REMUW = Bits("b???????????????00000011110111011")
|
|
def LB = Bits("b??????????????????????0000000011")
|
|
def LH = Bits("b??????????????????????0010000011")
|
|
def LW = Bits("b??????????????????????0100000011")
|
|
def LD = Bits("b??????????????????????0110000011")
|
|
def LBU = Bits("b??????????????????????1000000011")
|
|
def LHU = Bits("b??????????????????????1010000011")
|
|
def LWU = Bits("b??????????????????????1100000011")
|
|
def SB = Bits("b??????????????????????0000100011")
|
|
def SH = Bits("b??????????????????????0010100011")
|
|
def SW = Bits("b??????????????????????0100100011")
|
|
def SD = Bits("b??????????????????????0110100011")
|
|
def AMOADD_W = Bits("b?????????????????000000100101011")
|
|
def AMOXOR_W = Bits("b?????????????????001000100101011")
|
|
def AMOOR_W = Bits("b?????????????????010000100101011")
|
|
def AMOAND_W = Bits("b?????????????????011000100101011")
|
|
def AMOMIN_W = Bits("b?????????????????100000100101011")
|
|
def AMOMAX_W = Bits("b?????????????????101000100101011")
|
|
def AMOMINU_W = Bits("b?????????????????110000100101011")
|
|
def AMOMAXU_W = Bits("b?????????????????111000100101011")
|
|
def AMOSWAP_W = Bits("b?????????????????000010100101011")
|
|
def LR_W = Bits("b??????????00000??000100100101011")
|
|
def SC_W = Bits("b?????????????????000110100101011")
|
|
def AMOADD_D = Bits("b?????????????????000000110101011")
|
|
def AMOXOR_D = Bits("b?????????????????001000110101011")
|
|
def AMOOR_D = Bits("b?????????????????010000110101011")
|
|
def AMOAND_D = Bits("b?????????????????011000110101011")
|
|
def AMOMIN_D = Bits("b?????????????????100000110101011")
|
|
def AMOMAX_D = Bits("b?????????????????101000110101011")
|
|
def AMOMINU_D = Bits("b?????????????????110000110101011")
|
|
def AMOMAXU_D = Bits("b?????????????????111000110101011")
|
|
def AMOSWAP_D = Bits("b?????????????????000010110101011")
|
|
def LR_D = Bits("b??????????00000??000100110101011")
|
|
def SC_D = Bits("b?????????????????000110110101011")
|
|
def FENCE = Bits("b???????????????????????000101111")
|
|
def FENCE_I = Bits("b???????????????????????010101111")
|
|
def FENCE_V_L = Bits("b???????????????????????100101111")
|
|
def FENCE_V_G = Bits("b???????????????????????110101111")
|
|
def SYSCALL = Bits("b00000000000000000000000001110111")
|
|
def BREAK = Bits("b00000000000000000000000011110111")
|
|
def RDCYCLE = Bits("b?????000000000000000001001110111")
|
|
def RDTIME = Bits("b?????000000000000000011001110111")
|
|
def RDINSTRET = Bits("b?????000000000000000101001110111")
|
|
def MTPCR = Bits("b???????????????00000000001110011")
|
|
def MFPCR = Bits("b??????????0000000000000011110011")
|
|
def SETPCR = Bits("b??????????????????????0101110011")
|
|
def CLEARPCR = Bits("b??????????????????????0111110011")
|
|
def ERET = Bits("b00000000000000000000001001110011")
|
|
def FADD_S = Bits("b???????????????00000???001010011")
|
|
def FSUB_S = Bits("b???????????????00001???001010011")
|
|
def FMUL_S = Bits("b???????????????00010???001010011")
|
|
def FDIV_S = Bits("b???????????????00011???001010011")
|
|
def FSQRT_S = Bits("b??????????0000000100???001010011")
|
|
def FSGNJ_S = Bits("b???????????????00101000001010011")
|
|
def FSGNJN_S = Bits("b???????????????00110000001010011")
|
|
def FSGNJX_S = Bits("b???????????????00111000001010011")
|
|
def FADD_D = Bits("b???????????????00000???011010011")
|
|
def FSUB_D = Bits("b???????????????00001???011010011")
|
|
def FMUL_D = Bits("b???????????????00010???011010011")
|
|
def FDIV_D = Bits("b???????????????00011???011010011")
|
|
def FSQRT_D = Bits("b??????????0000000100???011010011")
|
|
def FSGNJ_D = Bits("b???????????????00101000011010011")
|
|
def FSGNJN_D = Bits("b???????????????00110000011010011")
|
|
def FSGNJX_D = Bits("b???????????????00111000011010011")
|
|
def FCVT_L_S = Bits("b??????????0000001000???001010011")
|
|
def FCVT_LU_S = Bits("b??????????0000001001???001010011")
|
|
def FCVT_W_S = Bits("b??????????0000001010???001010011")
|
|
def FCVT_WU_S = Bits("b??????????0000001011???001010011")
|
|
def FCVT_L_D = Bits("b??????????0000001000???011010011")
|
|
def FCVT_LU_D = Bits("b??????????0000001001???011010011")
|
|
def FCVT_W_D = Bits("b??????????0000001010???011010011")
|
|
def FCVT_WU_D = Bits("b??????????0000001011???011010011")
|
|
def FCVT_S_L = Bits("b??????????0000001100???001010011")
|
|
def FCVT_S_LU = Bits("b??????????0000001101???001010011")
|
|
def FCVT_S_W = Bits("b??????????0000001110???001010011")
|
|
def FCVT_S_WU = Bits("b??????????0000001111???001010011")
|
|
def FCVT_D_L = Bits("b??????????0000001100???011010011")
|
|
def FCVT_D_LU = Bits("b??????????0000001101???011010011")
|
|
def FCVT_D_W = Bits("b??????????0000001110???011010011")
|
|
def FCVT_D_WU = Bits("b??????????0000001111???011010011")
|
|
def FCVT_S_D = Bits("b??????????0000010001???001010011")
|
|
def FCVT_D_S = Bits("b??????????0000010000???011010011")
|
|
def FEQ_S = Bits("b???????????????10101000001010011")
|
|
def FLT_S = Bits("b???????????????10110000001010011")
|
|
def FLE_S = Bits("b???????????????10111000001010011")
|
|
def FEQ_D = Bits("b???????????????10101000011010011")
|
|
def FLT_D = Bits("b???????????????10110000011010011")
|
|
def FLE_D = Bits("b???????????????10111000011010011")
|
|
def FMIN_S = Bits("b???????????????11000000001010011")
|
|
def FMAX_S = Bits("b???????????????11001000001010011")
|
|
def FMIN_D = Bits("b???????????????11000000011010011")
|
|
def FMAX_D = Bits("b???????????????11001000011010011")
|
|
def FMV_X_S = Bits("b??????????0000011100000001010011")
|
|
def FMV_X_D = Bits("b??????????0000011100000011010011")
|
|
def FRSR = Bits("b?????000000000011101000001010011")
|
|
def FMV_S_X = Bits("b??????????0000011110000001010011")
|
|
def FMV_D_X = Bits("b??????????0000011110000011010011")
|
|
def FSSR = Bits("b??????????0000011111000001010011")
|
|
def FLW = Bits("b??????????????????????0100000111")
|
|
def FLD = Bits("b??????????????????????0110000111")
|
|
def FSW = Bits("b??????????????????????0100100111")
|
|
def FSD = Bits("b??????????????????????0110100111")
|
|
def FMADD_S = Bits("b???????????????????????001000011")
|
|
def FMSUB_S = Bits("b???????????????????????001000111")
|
|
def FNMSUB_S = Bits("b???????????????????????001001011")
|
|
def FNMADD_S = Bits("b???????????????????????001001111")
|
|
def FMADD_D = Bits("b???????????????????????011000011")
|
|
def FMSUB_D = Bits("b???????????????????????011000111")
|
|
def FNMSUB_D = Bits("b???????????????????????011001011")
|
|
def FNMADD_D = Bits("b???????????????????????011001111")
|
|
/* Automatically generated by parse-opcodes */
|
|
def CUSTOM0 = Bits("b??????????????????????0000001011")
|
|
def CUSTOM0_RS1 = Bits("b??????????????????????0100001011")
|
|
def CUSTOM0_RS1_RS2 = Bits("b??????????????????????0110001011")
|
|
def CUSTOM0_RD = Bits("b??????????????????????1000001011")
|
|
def CUSTOM0_RD_RS1 = Bits("b??????????????????????1100001011")
|
|
def CUSTOM0_RD_RS1_RS2 = Bits("b??????????????????????1110001011")
|
|
def CUSTOM1 = Bits("b??????????????????????0000001111")
|
|
def CUSTOM1_RS1 = Bits("b??????????????????????0100001111")
|
|
def CUSTOM1_RS1_RS2 = Bits("b??????????????????????0110001111")
|
|
def CUSTOM1_RD = Bits("b??????????????????????1000001111")
|
|
def CUSTOM1_RD_RS1 = Bits("b??????????????????????1100001111")
|
|
def CUSTOM1_RD_RS1_RS2 = Bits("b??????????????????????1110001111")
|
|
def CUSTOM2 = Bits("b??????????????????????0001010111")
|
|
def CUSTOM2_RS1 = Bits("b??????????????????????0101010111")
|
|
def CUSTOM2_RS1_RS2 = Bits("b??????????????????????0111010111")
|
|
def CUSTOM2_RD = Bits("b??????????????????????1001010111")
|
|
def CUSTOM2_RD_RS1 = Bits("b??????????????????????1101010111")
|
|
def CUSTOM2_RD_RS1_RS2 = Bits("b??????????????????????1111010111")
|
|
def CUSTOM3 = Bits("b??????????????????????0001111011")
|
|
def CUSTOM3_RS1 = Bits("b??????????????????????0101111011")
|
|
def CUSTOM3_RS1_RS2 = Bits("b??????????????????????0111111011")
|
|
def CUSTOM3_RD = Bits("b??????????????????????1001111011")
|
|
def CUSTOM3_RD_RS1 = Bits("b??????????????????????1101111011")
|
|
def CUSTOM3_RD_RS1_RS2 = Bits("b??????????????????????1111111011")
|
|
}
|