riscv-plic riscv-rv32ema
RISC-V CPU Reference Manual  /  4 Classes  / 

riscv-rv32

Description
generic RISC-V RV32 core
Interfaces Implemented
callback_info, concurrency_group, concurrency_mode, conf_object, context_handler, cpu_cached_instruction, cpu_cached_instruction_once, cpu_cached_stream, cpu_exception_query, cpu_instruction_decoder, cpu_instruction_query, cpu_instrumentation_stream, cpu_instrumentation_subscribe, cpu_memory_query, cycle, decoder, describe_registers, direct_memory_update, event_delta, exception, exec_trace, execute, execute_control, freerun, frequency, frequency_listener, icode, instruction_fetch, instrumentation_order, int_register, internal_cached_instruction, jit_control, log_object, opcode_info, processor_cli, processor_gui, processor_info, processor_info_v2, processor_internal, register_breakpoint, save_state, simulator_cache, stall, stc, step, step_cycle_ratio, step_event_instrumentation, step_info, virtual_data_breakpoint, virtual_instruction_breakpoint
Port Objects
extensions : RISC-V extension
port.CLOCK_DISABLE (signal) : Disable clock signal, when high core will not execute instructions or react to other incoming signals
port.HRESET (signal) : Reset signal
port.IRQ <index-map> : internal - provides object arrays
port.IRQ[0..15] (signal) : interrupt request input signal
port.MEIP (signal) : External machine mode interrupt request.
port.MSIP (signal) : Software interrupt request.
port.MTIP (signal) : Timer interrupt request.
port.SEIP (signal) : External supervisor mode interrupt request.
port.reset_vector (uint64_state) : Used to set reset vector.
vtime.cycles <cycle-counter> : cycle queue
vtime.ps <ps-clock> : event queue (ps)
vtime <vtime> : event handler
Port Interfaces
cpu_frequency (simple_dispatcher) : Broadcasts changes in CPU frequency.
cpu_internal_counters (probe_index) : Port for internal counters
cpu_internal_intensity_counters (probe_index) : Port for internal intensity counters
step_event_probes (probe_index, probe_subscribe) : Port for event probes.
Notifiers
freerunning-mode-change, frequency-change
Provided By
riscv-rv32

Attributes

ASIDLEN

Optional attribute; read/write access; type: integer. Number of implemented ASID bits.Maximum value for ASIDLEN is 9 for Sv32 and 16 for Sv39, Sv48 and Sv57

FLEN

Pseudo attribute; read-only access; type: integer. Size in bits of the F-registers.

IALIGN

Pseudo attribute; read-only access; type: integer. Minimal instruction alignment in bits.

XLEN

Pseudo attribute; read-only access; type: integer. Size in bits of the X-registers.

aprof_views

Pseudo attribute; read/write access; type: [[o,i]*]. ((address profiler, view)*) Address profiler views selected for this processor. Affects only the display of profiling information, and has nothing to do with collecting it.

This attribute should contain a list of lists: one list for each address profiler view you want to select (in the order they are to appear), each containing first the address profiler object, then the index of the desired view.

auto_hyper_enabled

Pseudo attribute; read/write access; type: boolean. Enables automatic detection of loops which can be hypersimulated.

auto_hyper_loops

Pseudo attribute; read-only access; type: [[iis]*]. {ffwd_steps, addr, precond} Information on automatically found hypersim loops.

cell

Optional attribute; read/write access; type: object or nil. Cell

clint

Optional attribute; read/write access; type: [os], object, or nil. CLINT target. Access to the CLINT are done via the io_memory interface.

core_disabled_state

Optional attribute; read/write access; type: [b*]. Core disabled state

core_interrupt_pending_state

Optional attribute; read/write access; type: [iiiii]. Core internal clic interrupt state

cpu_mode

Optional attribute; read/write access; type: integer. Current mode of the cpu [0-3]

current_context

Pseudo attribute; read/write access; type: object or nil. Current context object

cycle

Pseudo attribute; read-only access; type: integer. Cycle counter for RDCYCLE instruction

cycleh

Pseudo attribute; read-only access; type: integer. Upper 32 bits of cycle

cycles

Pseudo attribute; read/write access; type: integer. Time measured in cycles from machine start.

do_not_schedule

Optional attribute; read/write access; type: boolean. Set to TRUE to prevent this object from being scheduled by the cell.

enabled_flag

Optional attribute; read/write access; type: boolean. TRUE if the processor is enabled. If FALSE, it will see time (cycles) pass but not execute steps.

event_desc

Pseudo attribute; read-only access; integer indexed; indexed type: [[o|n,s,i]*]. ((object, description, time)*). All events in queue with a human-readable description. The attribute is indexed by queue (Sim_Queue_Step/Time).

exception_for_page_access_flags_update

Optional attribute; read/write access; type: boolean. If set to False, the core handles MMU page access flags update in hardware, if set to True page fault exceptions are raised when flags needs to be updated by software.

exception_for_unaligned_data_access

Optional attribute; read/write access; type: boolean. If set to False, the core handles unaligned data accesses internally without exception. If set to True unaligned data accesses will cause exceptions.

exclusive_local

Optional attribute; read/write access; type: [iii]. Exclusive lock for atomic instructions LR and SC

extensions.A

Pseudo attribute; read/write access; type: boolean. Standard Extension for Atomic Instructions

extensions.C

Pseudo attribute; read/write access; type: boolean. Standard Extension for Atomic Instructions

extensions.D

Pseudo attribute; read/write access; type: boolean. Standard Extension for Double-Precision Floating-Point

extensions.F

Pseudo attribute; read/write access; type: boolean. Standard Extension for Single-Precision Floating-Point

extensions.I

Pseudo attribute; read/write access; type: boolean. RV32I or RV32E Base Instruction Set.

extensions.M

Pseudo attribute; read/write access; type: boolean. Standard Extension for Integer Multiplication and Division

extensions.S

Pseudo attribute; read/write access; type: boolean. Support for supervisor mode

extensions.U

Pseudo attribute; read/write access; type: boolean. Support for user mode

extensions.Zba

Pseudo attribute; read/write access; type: boolean. Bit-Manipulation ISA-extension, Address generation instructions

extensions.Zbb

Pseudo attribute; read/write access; type: boolean. Bit-Manipulation ISA-extension, Basic bit-manipulation

extensions.Zbc

Pseudo attribute; read/write access; type: boolean. Bit-Manipulation ISA-extension, Carry-less multiplication

extensions.Zbs

Pseudo attribute; read/write access; type: boolean. Bit-Manipulation ISA-extension, Single-bit instructions

external_signals_state

Optional attribute; read/write access; type: [b*]. State of the external signals

fcsr

Pseudo attribute; read/write access; type: integer. Floating-Point Control and Status Register (frm + fflags)

fflags

Optional attribute; read/write access; type: integer. Floating-Point Accrued Exceptions

fprs

Optional attribute; read/write access; type: [i{32}]. (f0, f1, ..., f31) Floating-point registers

freerun_enabled

Optional attribute; read/write access; type: boolean. Freerun mode enabled

freerun_max_ips

Optional attribute; read/write access; type: float. Maximum allowed value for the number of instructions executed per virtual second, expressed as a fraction of the current CPU frequency.

freerun_min_ips

Optional attribute; read/write access; type: float. Minimum allowed value for the number of instructions executed per virtual second, expressed as a fraction of the current CPU frequency.

freerun_speed

Optional attribute; read/write access; type: float. Freerun speed. A value of 1.0 means realtime.

freq_mhz

Pseudo attribute; read/write access; type: float or integer. Processor clock frequency in MHz.

frequency

Optional attribute; read/write access; type: [ii], [os], or object. Processor clock frequency in Hz, as a rational number [numerator, denominator], or as a frequency provider implementing the frequency. The legacy simple_dispatcher is also supported.

frm

Optional attribute; read/write access; type: integer. Floating-Point Dynamic Rounding Mode

gprs

Optional attribute; read/write access; type: [i{32}]. (r0, i1, ..., r31) General purpose registers

hpmcounter10

Pseudo attribute; read-only access; type: integer. Performance-monitoring counter 10

hpmcounter10h

Pseudo attribute; read-only access; type: integer. Upper 32 bits of hpmcounter10

hpmcounter11

Pseudo attribute; read-only access; type: integer. Performance-monitoring counter 11

hpmcounter11h

Pseudo attribute; read-only access; type: integer. Upper 32 bits of hpmcounter11

hpmcounter12

Pseudo attribute; read-only access; type: integer. Performance-monitoring counter 12

hpmcounter12h

Pseudo attribute; read-only access; type: integer. Upper 32 bits of hpmcounter12

hpmcounter13

Pseudo attribute; read-only access; type: integer. Performance-monitoring counter 13

hpmcounter13h

Pseudo attribute; read-only access; type: integer. Upper 32 bits of hpmcounter13

hpmcounter14

Pseudo attribute; read-only access; type: integer. Performance-monitoring counter 14

hpmcounter14h

Pseudo attribute; read-only access; type: integer. Upper 32 bits of hpmcounter14

hpmcounter15

Pseudo attribute; read-only access; type: integer. Performance-monitoring counter 15

hpmcounter15h

Pseudo attribute; read-only access; type: integer. Upper 32 bits of hpmcounter15

hpmcounter16

Pseudo attribute; read-only access; type: integer. Performance-monitoring counter 16

hpmcounter16h

Pseudo attribute; read-only access; type: integer. Upper 32 bits of hpmcounter16

hpmcounter17

Pseudo attribute; read-only access; type: integer. Performance-monitoring counter 17

hpmcounter17h

Pseudo attribute; read-only access; type: integer. Upper 32 bits of hpmcounter17

hpmcounter18

Pseudo attribute; read-only access; type: integer. Performance-monitoring counter 18

hpmcounter18h

Pseudo attribute; read-only access; type: integer. Upper 32 bits of hpmcounter18

hpmcounter19

Pseudo attribute; read-only access; type: integer. Performance-monitoring counter 19

hpmcounter19h

Pseudo attribute; read-only access; type: integer. Upper 32 bits of hpmcounter19

hpmcounter20

Pseudo attribute; read-only access; type: integer. Performance-monitoring counter 20

hpmcounter20h

Pseudo attribute; read-only access; type: integer. Upper 32 bits of hpmcounter20

hpmcounter21

Pseudo attribute; read-only access; type: integer. Performance-monitoring counter 21

hpmcounter21h

Pseudo attribute; read-only access; type: integer. Upper 32 bits of hpmcounter21

hpmcounter22

Pseudo attribute; read-only access; type: integer. Performance-monitoring counter 22

hpmcounter22h

Pseudo attribute; read-only access; type: integer. Upper 32 bits of hpmcounter22

hpmcounter23

Pseudo attribute; read-only access; type: integer. Performance-monitoring counter 23

hpmcounter23h

Pseudo attribute; read-only access; type: integer. Upper 32 bits of hpmcounter23

hpmcounter24

Pseudo attribute; read-only access; type: integer. Performance-monitoring counter 24

hpmcounter24h

Pseudo attribute; read-only access; type: integer. Upper 32 bits of hpmcounter24

hpmcounter25

Pseudo attribute; read-only access; type: integer. Performance-monitoring counter 25

hpmcounter25h

Pseudo attribute; read-only access; type: integer. Upper 32 bits of hpmcounter25

hpmcounter26

Pseudo attribute; read-only access; type: integer. Performance-monitoring counter 26

hpmcounter26h

Pseudo attribute; read-only access; type: integer. Upper 32 bits of hpmcounter26

hpmcounter27

Pseudo attribute; read-only access; type: integer. Performance-monitoring counter 27

hpmcounter27h

Pseudo attribute; read-only access; type: integer. Upper 32 bits of hpmcounter27

hpmcounter28

Pseudo attribute; read-only access; type: integer. Performance-monitoring counter 28

hpmcounter28h

Pseudo attribute; read-only access; type: integer. Upper 32 bits of hpmcounter28

hpmcounter29

Pseudo attribute; read-only access; type: integer. Performance-monitoring counter 29

hpmcounter29h

Pseudo attribute; read-only access; type: integer. Upper 32 bits of hpmcounter29

hpmcounter3

Pseudo attribute; read-only access; type: integer. Performance-monitoring counter 3

hpmcounter30

Pseudo attribute; read-only access; type: integer. Performance-monitoring counter 30

hpmcounter30h

Pseudo attribute; read-only access; type: integer. Upper 32 bits of hpmcounter30

hpmcounter31

Pseudo attribute; read-only access; type: integer. Performance-monitoring counter 31

hpmcounter31h

Pseudo attribute; read-only access; type: integer. Upper 32 bits of hpmcounter31

hpmcounter3h

Pseudo attribute; read-only access; type: integer. Upper 32 bits of hpmcounter3

hpmcounter4

Pseudo attribute; read-only access; type: integer. Performance-monitoring counter 4

hpmcounter4h

Pseudo attribute; read-only access; type: integer. Upper 32 bits of hpmcounter4

hpmcounter5

Pseudo attribute; read-only access; type: integer. Performance-monitoring counter 5

hpmcounter5h

Pseudo attribute; read-only access; type: integer. Upper 32 bits of hpmcounter5

hpmcounter6

Pseudo attribute; read-only access; type: integer. Performance-monitoring counter 6

hpmcounter6h

Pseudo attribute; read-only access; type: integer. Upper 32 bits of hpmcounter6

hpmcounter7

Pseudo attribute; read-only access; type: integer. Performance-monitoring counter 7

hpmcounter7h

Pseudo attribute; read-only access; type: integer. Upper 32 bits of hpmcounter7

hpmcounter8

Pseudo attribute; read-only access; type: integer. Performance-monitoring counter 8

hpmcounter8h

Pseudo attribute; read-only access; type: integer. Upper 32 bits of hpmcounter8

hpmcounter9

Pseudo attribute; read-only access; type: integer. Performance-monitoring counter 9

hpmcounter9h

Pseudo attribute; read-only access; type: integer. Upper 32 bits of hpmcounter9

hypervisor_mode_supported

Pseudo attribute; read-only access; type: integer. Hypervisor mode supported in the cpu

ignore_page_failed_before

Pseudo attribute; read/write access; type: boolean. If TRUE, the model will keep trying to cache memory through direct memory even if it fails.

instret

Pseudo attribute; read-only access; type: integer. Instructions-retired counter for RDINSTRET instruction

instreth

Pseudo attribute; read-only access; type: integer. Upper 32 bits of instret

internal_interrupt_status

Optional attribute; read/write access; type: integer. Status of the core's internal interrupts.

interrupt_pending

Pseudo attribute; read-only access; type: integer. Current interrupt pending or -1 if no interrupt is pending.

is_stalling

Optional attribute; read/write access; type: boolean. TRUE if the processor is currently stalling by request of a timing-model.

isa_variants

Optional attribute; read/write access; type: [[sb]*]. List of available ISA-variants coupled with if they are enabled or not. To be able to use a variant the corresponding extension also needs to be supported and enabled. Note, isa_variants are not affected by reset.

ma_prot

Optional attribute; read/write access; type: string. MP protocol. One of {'msi', 'ww', 'wwp'}

marchid

Optional attribute; read/write access; type: integer. Architecture ID

mca_concurrency_mode

Optional attribute; read/write access; type: integer. Multicore Accelerator mode used by processor. One of Sim_Concurrency_Mode_Serialized (1), Sim_Concurrency_Mode_Serialized_Memory (2), or Sim_Concurrency_Mode_Full (4)

mcause

Optional attribute; read/write access; type: integer. Machine trap cause

mconfigptr

Optional attribute; read/write access; type: integer. Machine Configuration Pointer Register

mcounteren

Optional attribute; read/write access; type: integer. Machine counter enable

mcountinhibit

Optional attribute; read/write access; type: integer. Machine Counter-Inhibit

mcycle

Optional attribute; read/write access; type: integer. Machine cycle counter

mcycleh

Pseudo attribute; read/write access; type: integer. Upper 32 bits of mcycle

medeleg

Optional attribute; read/write access; type: integer. Machine exception delegation

menvcfg

Optional attribute; read/write access; type: integer. Machine environment configuration register

menvcfgh

Pseudo attribute; read/write access; type: integer. Additional machine env. conf. register

mepc

Optional attribute; read/write access; type: integer. Machine exception program counter

mhartid

Optional attribute; read/write access; type: integer. Hardware thread ID

mhpmcounter10

Optional attribute; read/write access; type: integer. Machine performance-monitoring counter 10

mhpmcounter10h

Pseudo attribute; read/write access; type: integer. Upper 32 bits of mhpmcounter10

mhpmcounter11

Optional attribute; read/write access; type: integer. Machine performance-monitoring counter 11

mhpmcounter11h

Pseudo attribute; read/write access; type: integer. Upper 32 bits of mhpmcounter11

mhpmcounter12

Optional attribute; read/write access; type: integer. Machine performance-monitoring counter 12

mhpmcounter12h

Pseudo attribute; read/write access; type: integer. Upper 32 bits of mhpmcounter12

mhpmcounter13

Optional attribute; read/write access; type: integer. Machine performance-monitoring counter 13

mhpmcounter13h

Pseudo attribute; read/write access; type: integer. Upper 32 bits of mhpmcounter13

mhpmcounter14

Optional attribute; read/write access; type: integer. Machine performance-monitoring counter 14

mhpmcounter14h

Pseudo attribute; read/write access; type: integer. Upper 32 bits of mhpmcounter14

mhpmcounter15

Optional attribute; read/write access; type: integer. Machine performance-monitoring counter 15

mhpmcounter15h

Pseudo attribute; read/write access; type: integer. Upper 32 bits of mhpmcounter15

mhpmcounter16

Optional attribute; read/write access; type: integer. Machine performance-monitoring counter 16

mhpmcounter16h

Pseudo attribute; read/write access; type: integer. Upper 32 bits of mhpmcounter16

mhpmcounter17

Optional attribute; read/write access; type: integer. Machine performance-monitoring counter 17

mhpmcounter17h

Pseudo attribute; read/write access; type: integer. Upper 32 bits of mhpmcounter17

mhpmcounter18

Optional attribute; read/write access; type: integer. Machine performance-monitoring counter 18

mhpmcounter18h

Pseudo attribute; read/write access; type: integer. Upper 32 bits of mhpmcounter18

mhpmcounter19

Optional attribute; read/write access; type: integer. Machine performance-monitoring counter 19

mhpmcounter19h

Pseudo attribute; read/write access; type: integer. Upper 32 bits of mhpmcounter19

mhpmcounter20

Optional attribute; read/write access; type: integer. Machine performance-monitoring counter 20

mhpmcounter20h

Pseudo attribute; read/write access; type: integer. Upper 32 bits of mhpmcounter20

mhpmcounter21

Optional attribute; read/write access; type: integer. Machine performance-monitoring counter 21

mhpmcounter21h

Pseudo attribute; read/write access; type: integer. Upper 32 bits of mhpmcounter21

mhpmcounter22

Optional attribute; read/write access; type: integer. Machine performance-monitoring counter 22

mhpmcounter22h

Pseudo attribute; read/write access; type: integer. Upper 32 bits of mhpmcounter22

mhpmcounter23

Optional attribute; read/write access; type: integer. Machine performance-monitoring counter 23

mhpmcounter23h

Pseudo attribute; read/write access; type: integer. Upper 32 bits of mhpmcounter23

mhpmcounter24

Optional attribute; read/write access; type: integer. Machine performance-monitoring counter 24

mhpmcounter24h

Pseudo attribute; read/write access; type: integer. Upper 32 bits of mhpmcounter24

mhpmcounter25

Optional attribute; read/write access; type: integer. Machine performance-monitoring counter 25

mhpmcounter25h

Pseudo attribute; read/write access; type: integer. Upper 32 bits of mhpmcounter25

mhpmcounter26

Optional attribute; read/write access; type: integer. Machine performance-monitoring counter 26

mhpmcounter26h

Pseudo attribute; read/write access; type: integer. Upper 32 bits of mhpmcounter26

mhpmcounter27

Optional attribute; read/write access; type: integer. Machine performance-monitoring counter 27

mhpmcounter27h

Pseudo attribute; read/write access; type: integer. Upper 32 bits of mhpmcounter27

mhpmcounter28

Optional attribute; read/write access; type: integer. Machine performance-monitoring counter 28

mhpmcounter28h

Pseudo attribute; read/write access; type: integer. Upper 32 bits of mhpmcounter28

mhpmcounter29

Optional attribute; read/write access; type: integer. Machine performance-monitoring counter 29

mhpmcounter29h

Pseudo attribute; read/write access; type: integer. Upper 32 bits of mhpmcounter29

mhpmcounter3

Optional attribute; read/write access; type: integer. Machine performance-monitoring counter 3

mhpmcounter30

Optional attribute; read/write access; type: integer. Machine performance-monitoring counter 30

mhpmcounter30h

Pseudo attribute; read/write access; type: integer. Upper 32 bits of mhpmcounter30

mhpmcounter31

Optional attribute; read/write access; type: integer. Machine performance-monitoring counter 31

mhpmcounter31h

Pseudo attribute; read/write access; type: integer. Upper 32 bits of mhpmcounter31

mhpmcounter3h

Pseudo attribute; read/write access; type: integer. Upper 32 bits of mhpmcounter3

mhpmcounter4

Optional attribute; read/write access; type: integer. Machine performance-monitoring counter 4

mhpmcounter4h

Pseudo attribute; read/write access; type: integer. Upper 32 bits of mhpmcounter4

mhpmcounter5

Optional attribute; read/write access; type: integer. Machine performance-monitoring counter 5

mhpmcounter5h

Pseudo attribute; read/write access; type: integer. Upper 32 bits of mhpmcounter5

mhpmcounter6

Optional attribute; read/write access; type: integer. Machine performance-monitoring counter 6

mhpmcounter6h

Pseudo attribute; read/write access; type: integer. Upper 32 bits of mhpmcounter6

mhpmcounter7

Optional attribute; read/write access; type: integer. Machine performance-monitoring counter 7

mhpmcounter7h

Pseudo attribute; read/write access; type: integer. Upper 32 bits of mhpmcounter7

mhpmcounter8

Optional attribute; read/write access; type: integer. Machine performance-monitoring counter 8

mhpmcounter8h

Pseudo attribute; read/write access; type: integer. Upper 32 bits of mhpmcounter8

mhpmcounter9

Optional attribute; read/write access; type: integer. Machine performance-monitoring counter 9

mhpmcounter9h

Pseudo attribute; read/write access; type: integer. Upper 32 bits of mhpmcounter9

mhpmevent10

Optional attribute; read/write access; type: integer. Machine performance-monitoring event selector 10

mhpmevent11

Optional attribute; read/write access; type: integer. Machine performance-monitoring event selector 11

mhpmevent12

Optional attribute; read/write access; type: integer. Machine performance-monitoring event selector 12

mhpmevent13

Optional attribute; read/write access; type: integer. Machine performance-monitoring event selector 13

mhpmevent14

Optional attribute; read/write access; type: integer. Machine performance-monitoring event selector 14

mhpmevent15

Optional attribute; read/write access; type: integer. Machine performance-monitoring event selector 15

mhpmevent16

Optional attribute; read/write access; type: integer. Machine performance-monitoring event selector 16

mhpmevent17

Optional attribute; read/write access; type: integer. Machine performance-monitoring event selector 17

mhpmevent18

Optional attribute; read/write access; type: integer. Machine performance-monitoring event selector 18

mhpmevent19

Optional attribute; read/write access; type: integer. Machine performance-monitoring event selector 19

mhpmevent20

Optional attribute; read/write access; type: integer. Machine performance-monitoring event selector 20

mhpmevent21

Optional attribute; read/write access; type: integer. Machine performance-monitoring event selector 21

mhpmevent22

Optional attribute; read/write access; type: integer. Machine performance-monitoring event selector 22

mhpmevent23

Optional attribute; read/write access; type: integer. Machine performance-monitoring event selector 23

mhpmevent24

Optional attribute; read/write access; type: integer. Machine performance-monitoring event selector 24

mhpmevent25

Optional attribute; read/write access; type: integer. Machine performance-monitoring event selector 25

mhpmevent26

Optional attribute; read/write access; type: integer. Machine performance-monitoring event selector 26

mhpmevent27

Optional attribute; read/write access; type: integer. Machine performance-monitoring event selector 27

mhpmevent28

Optional attribute; read/write access; type: integer. Machine performance-monitoring event selector 28

mhpmevent29

Optional attribute; read/write access; type: integer. Machine performance-monitoring event selector 29

mhpmevent3

Optional attribute; read/write access; type: integer. Machine performance-monitoring event selector 3

mhpmevent30

Optional attribute; read/write access; type: integer. Machine performance-monitoring event selector 30

mhpmevent31

Optional attribute; read/write access; type: integer. Machine performance-monitoring event selector 31

mhpmevent4

Optional attribute; read/write access; type: integer. Machine performance-monitoring event selector 4

mhpmevent5

Optional attribute; read/write access; type: integer. Machine performance-monitoring event selector 5

mhpmevent6

Optional attribute; read/write access; type: integer. Machine performance-monitoring event selector 6

mhpmevent7

Optional attribute; read/write access; type: integer. Machine performance-monitoring event selector 7

mhpmevent8

Optional attribute; read/write access; type: integer. Machine performance-monitoring event selector 8

mhpmevent9

Optional attribute; read/write access; type: integer. Machine performance-monitoring event selector 9

mideleg

Optional attribute; read/write access; type: integer. Machine interrupt delegation

mie

Optional attribute; read/write access; type: integer. Machine interrupt-enable

mimpid

Optional attribute; read/write access; type: integer. Implementation ID

min_cacheline_size

Pseudo attribute; read-only access; type: integer. The minimum size (in bytes) of a cache line that can be represented by Simics (when connecting a cache memhier).

minstret

Optional attribute; read/write access; type: integer. Machine instructions-retired counter

minstreth

Pseudo attribute; read/write access; type: integer. Upper 32 bits of mcycle

mip

Pseudo attribute; read/write access; type: integer. Machine interrupt pending

misa

Pseudo attribute; read/write access; type: integer. ISA and extensions

mmu_mode_support

Optional attribute; read/write access; type: integer. Supported MMU mode.Valid modes are: 0 (Bare), 1 (Sv32)

mscratch

Optional attribute; read/write access; type: integer. Scratch register for machine trap handlers

mseccfg

Optional attribute; read/write access; type: integer. Machine security configuration register

mseccfgh

Pseudo attribute; read/write access; type: integer. Additional machine security conf. register

mstatus

Optional attribute; read/write access; type: integer. Machine Status

mtval

Optional attribute; read/write access; type: integer. Machine bad address or instruction

mtvec

Optional attribute; read/write access; type: integer. Machine trap-handler base address

multicore_accelerator_enabled

Pseudo attribute; read/write access; type: boolean. Multicore Accelerator enabled for processor.

mvendorid

Optional attribute; read/write access; type: integer. Vendor ID

non_architecturally_disabled

Optional attribute; read/write access; type: boolean. If true, the processor is disabled by explicit user action and will not execute instructions until re-enabled by user. No architectural transitions, such as resets, will re-enable it on their own.

number_of_pmp_address_registers

Optional attribute; read/write access; type: integer. Number of PMP address registers in this core

outside_memory_whitelist

Optional attribute; read/write access; type: [i|[ii]|[iii]*]. ((address, length, hits)*).

List of physical address ranges that do not map to anything. length is the length of each interval in bytes. An interval with both address and length being 0 denotes the entire address space. hits is the number of times that particular interval has been accessed, and can be omitted when set.

Accesses to physical addresses with no targets will trigger a specific hap whose default action is to break the simulation. However, if the address falls into one of the ranges specified in this whitelist, the hap will not be triggered (but still being counted). The behavior in this scenario is architecture dependent. It may or may not trigger an architecture specific exception, and the simulation may or may not be interrupted.

See also the Core_Address_Not_Mapped hap.

pc

Optional attribute; read/write access; type: integer. Program counter

physical_memory

Required attribute; read/write access; type: object. Physical memory space. Must implement memory-space, breakpoint and breakpoint_query interfaces.

pmpaddr0

Optional attribute; read/write access; type: integer. Physical memory protection address register 0

pmpaddr1

Optional attribute; read/write access; type: integer. Physical memory protection address register 1

pmpaddr10

Optional attribute; read/write access; type: integer. Physical memory protection address register 10

pmpaddr11

Optional attribute; read/write access; type: integer. Physical memory protection address register 11

pmpaddr12

Optional attribute; read/write access; type: integer. Physical memory protection address register 12

pmpaddr13

Optional attribute; read/write access; type: integer. Physical memory protection address register 13

pmpaddr14

Optional attribute; read/write access; type: integer. Physical memory protection address register 14

pmpaddr15

Optional attribute; read/write access; type: integer. Physical memory protection address register 15

pmpaddr2

Optional attribute; read/write access; type: integer. Physical memory protection address register 2

pmpaddr3

Optional attribute; read/write access; type: integer. Physical memory protection address register 3

pmpaddr4

Optional attribute; read/write access; type: integer. Physical memory protection address register 4

pmpaddr5

Optional attribute; read/write access; type: integer. Physical memory protection address register 5

pmpaddr6

Optional attribute; read/write access; type: integer. Physical memory protection address register 6

pmpaddr7

Optional attribute; read/write access; type: integer. Physical memory protection address register 7

pmpaddr8

Optional attribute; read/write access; type: integer. Physical memory protection address register 8

pmpaddr9

Optional attribute; read/write access; type: integer. Physical memory protection address register 9

pmpcfg0

Optional attribute; read/write access; type: integer. Physical memory protection configuration 0

pmpcfg1

Optional attribute; read/write access; type: integer. Physical memory protection configuration 1

pmpcfg11

Optional attribute; read/write access; type: integer. Physical memory protection configuration 11

pmpcfg13

Optional attribute; read/write access; type: integer. Physical memory protection configuration 13

pmpcfg15

Optional attribute; read/write access; type: integer. Physical memory protection configuration 15

pmpcfg2

Optional attribute; read/write access; type: integer. Physical memory protection configuration 2

pmpcfg3

Optional attribute; read/write access; type: integer. Physical memory protection configuration 3

pmpcfg5

Optional attribute; read/write access; type: integer. Physical memory protection configuration 5

pmpcfg7

Optional attribute; read/write access; type: integer. Physical memory protection configuration 7

pmpcfg9

Optional attribute; read/write access; type: integer. Physical memory protection configuration 9

processor_number

Optional attribute; read/write access; type: integer. Simics internal number for an instance of the 'processor_info' interface. Each instance must have a unique number. This attribute can only be set as part of an initial configuration.

reset_config_clear_fprs

Optional attribute; read/write access; type: boolean. Controls if fprs will be cleared at reset

reset_config_clear_gprs

Optional attribute; read/write access; type: boolean. Controls if gprs will be cleared at reset

reset_config_reset_all_csrs

Optional attribute; read/write access; type: boolean. Controls if all csrs will be reset to startup value at reset

reset_misa

Optional attribute; read/write access; type: integer. Value used for misa after reset

reset_vector

Optional attribute; read/write access; type: integer. Address core starts executing from after reset

satp

Optional attribute; read/write access; type: integer. Supervisor address translation and protection

scause

Optional attribute; read/write access; type: integer. Supervisor trap cause

scounteren

Optional attribute; read/write access; type: integer. Supervisor counter enable

sepc

Optional attribute; read/write access; type: integer. Supervisor exception program counter

shared_physical_memory

Optional attribute; read/write access; type: object or nil. This is the main program memory-space shared with other processors. In the chain of memory-spaces starting from the physical_memory attribute, this is the first memory-space that also is accessible by other processors. A value of Nil means the physical_memory attribute is used as main program memory-space.

sie

Pseudo attribute; read/write access; type: integer. Supervisor interrupt-enable

signal_status

Optional attribute; read/write access; type: integer. Status of the core's external signals.

simulation_mode

Pseudo attribute; read-only access; type: integer. The simulation mechanism used for the processor. One of the values of the simulation_mode_t enum.

sip

Pseudo attribute; read/write access; type: integer. Supervisor interrupt pending

sscratch

Optional attribute; read/write access; type: integer. Scratch register for supervisor trap handlers

sstatus

Pseudo attribute; read/write access; type: integer. Supervisor status

stall_time

Optional attribute; read/write access; type: integer. The number of cycles the processor will stall

stalling_info

Optional attribute; read/write access; type: [iii]. If is_stalling is set, this contains information about the current memory operation.

step_per_cycle_mode

Optional attribute; read/write access; type: string. "constant" indicates a constant finite step/cycle factor; "infinite" means that steps are run without advancing time.

step_queue

Optional attribute; read/write access; type: [[o|n,s,a,s,i]*]. ((object, evclass, value, slot, step)*). Pending step queue events.

steps

Optional attribute; read/write access; type: integer. Number steps executed since machine start.

stval

Optional attribute; read/write access; type: integer. Supervisor bad address or instruction

stvec

Optional attribute; read/write access; type: integer. Supervisor trap handler base address

supervisor_mode_supported

Pseudo attribute; read-only access; type: integer. Supervisor mode supported in the cpu

tdata1

Pseudo attribute; read/write access; type: integer. First Debug/Trace trigger data register

tdata2

Pseudo attribute; read/write access; type: integer. Second Debug/Trace trigger data register

tdata3

Pseudo attribute; read/write access; type: integer. Third Debug/Trace trigger data register

time

Pseudo attribute; read-only access; type: integer. Timer for RDTIME instruction

time_queue

Pseudo attribute; read/write access; type: [[o|n,s,a,s|n,i]*]. ((object, evclass, value, slot, cycle)*). Pending time queue events.

timeh

Pseudo attribute; read-only access; type: integer. Upper 32 bits of time

tlb

Optional attribute; read/write access; type: [i[[iiiii]*]]. TLB state

trap_on_rdtime

Optional attribute; read/write access; type: boolean. If set to False, the core handles the RDTIME and RDTIMEH in hardware, if set to True an illegal instruction is raised.

tselect

Pseudo attribute; read/write access; type: integer. Debug/Trace trigger register select

user_mode_supported

Pseudo attribute; read-only access; type: integer. User mode supported in the cpu

wait_for_interrupt

Pseudo attribute; read/write access; type: boolean. Processor in WFI-state.

wfi_signal_target

Optional attribute; read/write access; type: [os], object, or nil. Target to raise or lower a signal to when core goes into wait for interrupt state. Object must implement the signal interface. A signal will be raised when wfi instruction is executed and not interrupt is active. The signal will be lowered when the CPU resumes execution. The signal will be lowered when the CPU is reset

writable_misa

Optional attribute; read/write access; type: integer. Controls which bits in the misa csr that can be written by instructions. Default is 0.

Class Attributes

architecture

Pseudo class attribute; read-only access; type: string. Implemented architecture (risc-v)

Command List

Commands
aprof-viewsmanipulate list of selected address profiling views
infoprint information about the object
print-page-tableprint page table entries
statusprint status of the object

riscv-plic riscv-rv32ema