Update README.md

master
Donald Sebastian Leung 2020-08-28 12:30:39 +08:00
parent e117fad73d
commit b3acff2bf3
19 changed files with 25 additions and 1 deletions

View File

@ -31,7 +31,7 @@ This should run in the order of a few minutes.
## Scope ## Scope
Support for the RV32I base ISA and RV32M extension are planned and well underway. Support for other ISAs in the original riscv-formal such as RV32C and their 64-bit counterparts may also be added in the future as time permits. The RV32I, RV32M, RV64I and RV64M ISAs are currently implemented but yet to be fully tested. Support for compressed instructions may be added in the future as time permits.
## Known Issues ## Known Issues

View File

@ -109,12 +109,19 @@ Below is a list of instructions currently supported by this port of the riscv-fo
- `InsnSrlw`: SRLW instruction - `InsnSrlw`: SRLW instruction
- `InsnSraw`: SRAW instruction - `InsnSraw`: SRAW instruction
- `InsnSd`: SD instruction - `InsnSd`: SD instruction
- `InsnRV64MRType`: RV64M R-Type Instruction
- `InsnMulw`: MULW instruction
- `InsnDivw`: DIVW instruction
- `InsnDivuw`: DIVUW instruction
- `InsnRemw`: REMW instruction
- `InsnRemuw`: REMUW instruction
### ISAs ### ISAs
- `IsaRV32I`: RV32I Base ISA - `IsaRV32I`: RV32I Base ISA
- `IsaRV32M`: RV32M Standard Extension - `IsaRV32M`: RV32M Standard Extension
- `IsaRV64I`: RV64I Base ISA - `IsaRV64I`: RV64I Base ISA
- `IsaRV64M`: RV64M Standard Extension
## Core-specific parameters ## Core-specific parameters

View File

@ -7,6 +7,7 @@ ADDW instruction
class InsnAddw(InsnRV64IRType): class InsnAddw(InsnRV64IRType):
def __init__(self, params): def __init__(self, params):
super().__init__(params, 0b0000000, 0b000) super().__init__(params, 0b0000000, 0b000)
def elaborate(self, platform): def elaborate(self, platform):
m = super().elaborate(platform) m = super().elaborate(platform)

View File

@ -7,6 +7,7 @@ DIVUW instruction
class InsnDivuw(InsnRV64MRType): class InsnDivuw(InsnRV64MRType):
def __init__(self, params): def __init__(self, params):
super().__init__(params, 0b101) super().__init__(params, 0b101)
def elaborate(self, platform): def elaborate(self, platform):
m = super().elaborate(platform) m = super().elaborate(platform)

View File

@ -7,6 +7,7 @@ DIVW instruction
class InsnDivw(InsnRV64MRType): class InsnDivw(InsnRV64MRType):
def __init__(self, params): def __init__(self, params):
super().__init__(params, 0b100) super().__init__(params, 0b100)
def elaborate(self, platform): def elaborate(self, platform):
m = super().elaborate(platform) m = super().elaborate(platform)

View File

@ -7,6 +7,7 @@ MULW instruction
class InsnMulw(InsnRV64MRType): class InsnMulw(InsnRV64MRType):
def __init__(self, params): def __init__(self, params):
super().__init__(params, 0b000) super().__init__(params, 0b000)
def elaborate(self, platform): def elaborate(self, platform):
m = super().elaborate(platform) m = super().elaborate(platform)

View File

@ -7,6 +7,7 @@ REMUW instruction
class InsnRemuw(InsnRV64MRType): class InsnRemuw(InsnRV64MRType):
def __init__(self, params): def __init__(self, params):
super().__init__(params, 0b111) super().__init__(params, 0b111)
def elaborate(self, platform): def elaborate(self, platform):
m = super().elaborate(platform) m = super().elaborate(platform)

View File

@ -7,6 +7,7 @@ REMW instruction
class InsnRemw(InsnRV64MRType): class InsnRemw(InsnRV64MRType):
def __init__(self, params): def __init__(self, params):
super().__init__(params, 0b110) super().__init__(params, 0b110)
def elaborate(self, platform): def elaborate(self, platform):
m = super().elaborate(platform) m = super().elaborate(platform)

View File

@ -10,6 +10,7 @@ class InsnRV64IITypeLoad(InsnRV64IIType):
self.mask_shift = mask_shift self.mask_shift = mask_shift
self.funct3 = funct3 self.funct3 = funct3
self.is_signed = is_signed self.is_signed = is_signed
def elaborate(self, platform): def elaborate(self, platform):
m = super().elaborate(platform) m = super().elaborate(platform)

View File

@ -9,6 +9,7 @@ class InsnRV64IITypeShift(InsnRV64IIType):
super().__init__(params) super().__init__(params)
self.funct6 = funct6 self.funct6 = funct6
self.funct3 = funct3 self.funct3 = funct3
def elaborate(self, platform): def elaborate(self, platform):
m = super().elaborate(platform) m = super().elaborate(platform)

View File

@ -9,6 +9,7 @@ class InsnRV64IRType(Insn):
super().__init__(params) super().__init__(params)
self.funct7 = funct7 self.funct7 = funct7
self.funct3 = funct3 self.funct3 = funct3
def elaborate(self, platform): def elaborate(self, platform):
m = super().elaborate(platform) m = super().elaborate(platform)

View File

@ -8,6 +8,7 @@ class InsnRV64MRType(Insn):
def __init__(self, params, funct3): def __init__(self, params, funct3):
super().__init__(params) super().__init__(params)
self.funct3 = funct3 self.funct3 = funct3
def elaborate(self, platform): def elaborate(self, platform):
m = super().elaborate(platform) m = super().elaborate(platform)

View File

@ -7,6 +7,7 @@ SLLIW instruction
class InsnSlliw(InsnRV64IITypeShift): class InsnSlliw(InsnRV64IITypeShift):
def __init__(self, params): def __init__(self, params):
super().__init__(params, 0b000000, 0b001) super().__init__(params, 0b000000, 0b001)
def elaborate(self, platform): def elaborate(self, platform):
m = super().elaborate(platform) m = super().elaborate(platform)

View File

@ -7,6 +7,7 @@ SLLW instruction
class InsnSllw(InsnRV64IRType): class InsnSllw(InsnRV64IRType):
def __init__(self, params): def __init__(self, params):
super().__init__(params, 0b0000000, 0b001) super().__init__(params, 0b0000000, 0b001)
def elaborate(self, platform): def elaborate(self, platform):
m = super().elaborate(platform) m = super().elaborate(platform)

View File

@ -7,6 +7,7 @@ SRAIW instruction
class InsnSraiw(InsnRV64IITypeShift): class InsnSraiw(InsnRV64IITypeShift):
def __init__(self, params): def __init__(self, params):
super().__init__(params, 0b010000, 0b101) super().__init__(params, 0b010000, 0b101)
def elaborate(self, platform): def elaborate(self, platform):
m = super().elaborate(platform) m = super().elaborate(platform)

View File

@ -7,6 +7,7 @@ SRAW instruction
class InsnSraw(InsnRV64IRType): class InsnSraw(InsnRV64IRType):
def __init__(self, params): def __init__(self, params):
super().__init__(params, 0b0100000, 0b101) super().__init__(params, 0b0100000, 0b101)
def elaborate(self, platform): def elaborate(self, platform):
m = super().elaborate(platform) m = super().elaborate(platform)

View File

@ -7,6 +7,7 @@ SRLIW instruction
class InsnSrliw(InsnRV64IITypeShift): class InsnSrliw(InsnRV64IITypeShift):
def __init__(self, params): def __init__(self, params):
super().__init__(params, 0b000000, 0b101) super().__init__(params, 0b000000, 0b101)
def elaborate(self, platform): def elaborate(self, platform):
m = super().elaborate(platform) m = super().elaborate(platform)

View File

@ -7,6 +7,7 @@ SRLW instruction
class InsnSrlw(InsnRV64IRType): class InsnSrlw(InsnRV64IRType):
def __init__(self, params): def __init__(self, params):
super().__init__(params, 0b0000000, 0b101) super().__init__(params, 0b0000000, 0b101)
def elaborate(self, platform): def elaborate(self, platform):
m = super().elaborate(platform) m = super().elaborate(platform)

View File

@ -7,6 +7,7 @@ SUBW instruction
class InsnSubw(InsnRV64IRType): class InsnSubw(InsnRV64IRType):
def __init__(self, params): def __init__(self, params):
super().__init__(params, 0b0100000, 0b000) super().__init__(params, 0b0100000, 0b000)
def elaborate(self, platform): def elaborate(self, platform):
m = super().elaborate(platform) m = super().elaborate(platform)