package decode
- Alphabetic
- By Inheritance
- decode
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
- case class AccessKeys(rfa: RfAccess, physWidth: Int, rfMapping: Seq[RegfileSpec]) extends Area with Product with Serializable
-
class
AlignerPlugin extends FiberPlugin with AlignerService with InjectorService
This plugin will deserialize the aligned fetched words into instructions.
This plugin will deserialize the aligned fetched words into instructions. - withBuffer => A Fetch.WORD sized buffer will be added to allow unaligned instruction to be read - !withBuffer => Fetch lanes directly feed Decode lanes without muxes. This doesn't support RVC - Warning, if the plugin start to hold stats => you need to notify TrapService when flush a is pending
Here are the challenges : - When RVC is enabled, 32 bits instruction can be unaligned, so one instruction my need 2 fetch word - Branch prediction (ex: from a BTB) may produce a broken stream of fetched word on 32 bits unaligned instruction aswell producing predictions which aren't aligned with the real instruction layout (ex prediction from fetched word slice 2, while slice 2 isn't the last slice of a instruction) - Handeling all the corner cases while keeping the combinatorial path low
-
trait
AlignerService extends AnyRef
Provide an API which allows other plugin to carry pipeline payload from Fetch to Decode.
Provide an API which allows other plugin to carry pipeline payload from Fetch to Decode. The payload carried can be specified to come from the first or the last fetch-word of a given instruction. This is used by plugins like branch prediction to carry data through the different pipelines
- type DecodeListType = Seq[(Payload[_ <: BaseType], Any)]
-
class
DecodePipelinePlugin extends FiberPlugin with PipelineService
Provide a decode pipeline skeleton, used by other plugins to compose the decode pipeline.
- class DecoderPlugin extends FiberPlugin with DecoderService with CompletionService with ForgetSource
-
trait
DecoderService extends AnyRef
Provide an API which allows other plugins to ask additional instruction decoding in the decode pipeline, providing decoded values in the DecodePipeline payloads
- class DecodingCtx extends AnyRef
-
trait
InjectorService extends AnyRef
Provide an API which allows to inject an instruction in the CPU pipeline.
Provide an API which allows to inject an instruction in the CPU pipeline. This is used by the PrivilegedPlugin to implement the RISC-V External Debug Support spec.