Ember Parameters
During elaboration, the EmberParams
object is passed down through
the hierarchy and used to control how the hardware is generated.
- class ember.param.RiscvParams
RISC-V ISA parameters.
- reset_vector
The program counter value on reset
- class ember.param.InstructionBusParams
Memory interface parameters.
- class ember.param.L1ICacheTLBParams(num_entries: int, **kwargs)
L1 iTLB parameters.
num_entries
- Number of TLB entries
- class ember.param.L1ICacheParams(rv: RiscvParams, word_width: int, num_sets: int, num_ways: int, line_depth: int)
L1 instruction cache parameters.
- Parameters:
num_sets – Number of sets
num_ways – Number of ways
word_width – Number of bits in a cache word
line_depth – Number of words in a cache line
- class ember.param.FetchParams(rv: RiscvParams, width: int)
Instruction fetch parameters.
- Parameters:
width – Number of instructions fetched per cycle
- class ember.param.DecodeParams(rv: RiscvParams, width: int)
Instruction decode parameters.
- Parameters:
width – Number of instructions decoded per cycle
- class ember.param.EmberParams
Top-level parameters.
For now, users are expected to manually change values in this class. At some point, we ideally want this to be an object that a user can construct and override while elaborating the design.
- superscalar_width
The width of the instruction pipeline (in number of instructions).
- inst
The set of supported RISC-V instructions
- Type:
RvInstGroup
- mops
The set of supported macro-ops
- Type:
EmberMopGroup
- vaddr
The layout for a virtual address.
- Type:
VirtualAddress
- paddr
The layout for a physical address.
- Type:
PhysicalAddress