Livt packages
Eccelerators.RiscV
Version 0.3.0
Composable RV32I and Zmmul processors, machine-mode support, and reusable FPGA system components written in Livt.
Published files (120)
src/Machine/Rv32MachineCsrMap.lvt
namespace Eccelerators.RiscV.Machine
/**
* Supported CSR addresses and fixed machine-only field encodings.
*/
public class Rv32MachineCsrMap
{
// Individually decoded machine CSR addresses.
public const MSTATUS: uint = 0x300
public const MISA: uint = 0x301
public const MIE: uint = 0x304
public const MTVEC: uint = 0x305
public const MCOUNTEREN: uint = 0x306
public const MSTATUSH: uint = 0x310
public const MCOUNTINHIBIT: uint = 0x320
public const MSCRATCH: uint = 0x340
public const MEPC: uint = 0x341
public const MCAUSE: uint = 0x342
public const MTVAL: uint = 0x343
public const MIP: uint = 0x344
public const MCYCLE: uint = 0xb00
public const MINSTRET: uint = 0xb02
public const MCYCLEH: uint = 0xb80
public const MINSTRETH: uint = 0xb82
public const MVENDORID: uint = 0xf11
public const MARCHID: uint = 0xf12
public const MIMPID: uint = 0xf13
public const MHARTID: uint = 0xf14
public const MCONFIGPTR: uint = 0xf15
// Unimplemented hardware performance counters/selectors read zero and ignore writes.
public const HPM_FIRST: uint = 0xb03
public const HPM_LAST: uint = 0xb1f
public const HPM_HIGH_FIRST: uint = 0xb83
public const HPM_HIGH_LAST: uint = 0xb9f
public const EVENT_FIRST: uint = 0x323
public const EVENT_LAST: uint = 0x33f
// M-only, little-endian RV32I. Zmmul does not set the full-M extension bit.
public const ISA: uint = 0x40000100
public const MPP_MACHINE: uint = 0x1800
public const STATUS_WRITABLE: uint = 0x88
public const WORD_ALIGNED: uint = 0xfffffffc
public const COUNTER_MASK: uint = 5
public const INHIBIT_CYCLE: uint = 1
public const INHIBIT_RETIRE: uint = 4
public const READ_ONLY_ADDRESS: uint = 0xc00
}