Struct rsim::processor::models::Rv64imvProcessor[][src]

pub struct Rv64imvProcessor {
    pub running: bool,
    pub memory: AggregateMemory,
    pc: u64,
    sreg: RvRegisterFile<u64>,
    csrs: Rv64imvProcessorCSRs,
}

RISC-V Processor Model where XLEN=64-bit. No CHERI support. Holds scalar registers and configuration, all other configuration stored in Rv64imvProcessorModules

Fields

running: boolmemory: AggregateMemorypc: u64sreg: RvRegisterFile<u64>csrs: Rv64imvProcessorCSRs

Implementations

impl Rv64imvProcessor[src]

pub fn new(mem: AggregateMemory) -> (Rv64imvProcessor, Rv64imvProcessorModules)[src]

Create a new processor and vector unit which operates on given memory.

Arguments

  • mem - The memory the processor should hold. Currently a value, not a reference.

fn zicsr_conn<'a, 'b>(
    &'a mut self,
    rvv: &'a mut Option<Rv64v>
) -> Zicsr64Conn<'b> where
    'a: 'b, 
[src]

fn rv64im_conn<'a, 'b>(&'a mut self) -> Rv64imConn<'b> where
    'a: 'b, 
[src]

fn process_inst(
    &mut self,
    mods: &mut Rv64imvProcessorModules,
    inst_bits: u32,
    opcode: Opcode,
    inst: InstructionBits
) -> Result<u64>
[src]

Process an instruction, returning the new PC value or any execution error

Arguments

  • v_unit - The associated vector unit, which will execute vector instructions if they are found.
  • inst_bits - The raw instruction bits
  • opcode - The major opcode of the decoded instruction
  • inst - The fields of the decoded instruction

Trait Implementations

impl Processor<Rv64imvProcessorModules> for Rv64imvProcessor[src]

fn reset(&mut self, mods: &mut Rv64imvProcessorModules)[src]

Reset the processor and associated vector unit

fn exec_step(&mut self, mods: &mut Rv64imvProcessorModules) -> Result<()>[src]

Run a fetch-decode-execute step on the processor, executing a single instruction

Arguments

  • v_unit - The associated vector unit, which will execute vector instructions if they are found.

fn dump(&self, mods: &Rv64imvProcessorModules)[src]

Dump processor and vector unit state to standard output.

Auto Trait Implementations

impl !RefUnwindSafe for Rv64imvProcessor

impl !Send for Rv64imvProcessor

impl !Sync for Rv64imvProcessor

impl Unpin for Rv64imvProcessor

impl !UnwindSafe for Rv64imvProcessor

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.