LEON3

@Leon3 Reference

Properties

Name Type Description

Class

*void

Class object

Component

*void

Pointer to component object if part of component

LoggingFlags

uint64_t

Flags for logging info

Name

*char

Object name

TimeSource

*void

Time source object

Commands

Name Description

delete

Dispose instance of @Leon3

new

Create new instance of Leon3

Command new Arguments

Name Type Required Description

cpuid

int

no

cpuid in multiprocessor config

freq

double

no

frequency in Hz

name

string

yes

Name of object to create

Leon3 Reference

Properties

Name Type Description

CPUId

uint32_t

CPUType

int32_t

Class

*void

Class object

Component

*void

Pointer to component object if part of component

LoggingFlags

uint64_t

Flags for logging info

Name

*char

Object name

TimeSource

*void

Time source object

asr

[uint32_t; 32]

cwp

*void

cycles

int64_t

dCache

temu_IfaceRef/ <unknown>

L1 data cache (optional)

devices

temu_IfaceRefArray

extraRegs

[uint32_t; 32]

fprs

[uint32_t; 32]

freq

uint64_t

fsr

uint32_t

g

[uint32_t; 8]

gprs

[uint32_t; 128]

iCache

temu_IfaceRef/ <unknown>

L1 instruction cache (optional)

i_npc

uintptr_t

Intermediate code nPC

i_pc

uintptr_t

Intermediate code PC

irq

int8_t

irqClient

temu_IfaceRef/ <unknown>

Interrupt controller (for ACKs)

machine

temu_IfaceRef/ <unknown>

Machine interface

memAccess

temu_IfaceRef/ <unknown>

Level 1 memory access interface (MMU)

memAccessL2

temu_IfaceRef/ <unknown>

Level 2 memory access interface (physical)

memSpace

*void

.

memory

temu_IfaceRef/ <unknown>

Memory interface

mmuCtrl

uint32_t

mmuCtxt

uint32_t

mmuCtxtPtr

uint32_t

mmuFaultAddr

uint32_t

mmuFaultStat

uint32_t

nextEvent

int64_t

npc

uint32_t

Next program counter register (%npc)

pc

uint32_t

Program counter register (%pc)

pdcManager

temu_IfaceRef/ <unknown>

Pre-decode cache manager (normally memory space)

powerState

uint32_t

psr

uint32_t

Processor state register

state

int32_t

steps

int64_t

stickyFlags

uint32_t

Set bit 0 to 1 to not exit CPU on halted mode.

targetExec

temu_IfaceRef/ <unknown>

Target execution interface

tbr

uint32_t

wim

uint32_t

Interfaces

Name Type Description

AhbIface

AhbIface

BTIface

BTIface

ClockIface

ClockIface

CpuIface

temu::CpuIface

DCacheCtrlIface

temu::CacheCtrlIface

EventIface

temu::EventIface

ExecIface

temu::TargetExecutionIface

ICacheCtrlIface

temu::CacheCtrlIface

InvalidMemAccessIface

MemAccessIface

IrqIface

IrqCtrlIface

MemoryIface

MemoryIface

MmuMemAccessIface

MemAccessIface

ObjectIface

ObjectIface

PowerIface

PowerIface

ResetIface

ResetIface

SparcIface

SparcIface

Ports

Prop Iface Description

irqClient

IrqIface

interrupt controller interface

Commands

Name Description

assemble

Assemble instruction

chainBlocks

Manually chain blocks

delete

Dispose instance of Leon3

disableAutoChain

Disable binary translation block chaining.

disableProfiling

Disable profiling mode

disableStats

Disable statistics

disableTranslation

Disable binary translation.

disableTraps

Disable traps.

disassemble

Disassemble code

disassembleBlock

Disassemble binary translated code block.

disassembleBlockIR

Disassemble LLVM IR of translated code block

disassembleBlockOption

Set option for disassembler. Switch between AT&T (default) and Intel (alternate) syntax. Enable / disable insruction latency in output.

enableAutoChain

Enable binary translation block chaining.

enableProfiling

Enable profiling mode

enableStats

Enable statistics

enableTranslation

Enable binary translation.

enableTraps

Enable traps.

flushProfile

Flush profile data

pregs

Print registers for CPU

print-atc

Print ATC for CPU

print-blocks

Show block connectivity

pstat

Print CPU stats

pwin

Print register window.

resetStats

Reset statistics counters

setPC

Set PC (and nPC)

setReg

Set register

translateBlock

Translate block.

translateFunc

Translate function.

Command assemble Arguments

Name Type Required Description

inst

string

yes

Instruction to assemble.

pa

int

no

Physical address

va

int

no

Virtual address

Command chainBlocks Arguments

Name Type Required Description

arm

string

no

Name of arm in source block (nt/not-taken or t/taken). Defaults to fall through arm (not-taken)

source

int

yes

Physical start address of source block.

target

int

yes

Physical start address of target block.

Command disableStats Arguments

Name Type Required Description

stat

string

yes

Name of statistics (executed-translated-instructions, executed-translated-blocks)

Command disassemble Arguments

Name Type Required Description

count

int

no

Number of instructions

pa

int

no

Physical address

va

int

no

Virtual address

Command disassembleBlock Arguments

Name Type Required Description

pa

int

no

Physical address of block

va

int

no

Virtual address of block

Command disassembleBlockIR Arguments

Name Type Required Description

pa

int

no

Physical address of block

va

int

no

Virtual address of block

Command disassembleBlockOption Arguments

Name Type Required Description

option

string

yes

Option to set: 'default-syntax', 'alternate-syntax', 'latency', 'no-latency'.

Command enableStats Arguments

Name Type Required Description

stat

string

yes

Name of statistics (executed-translated-instructions, executed-translated-blocks)

Command pwin Arguments

Name Type Required Description

win

int

no

Window ID (-1 = default == current window).

Command setPC Arguments

Name Type Required Description

npc

int

no

New %npc (note if omitted %npc = %pc + 4)

pc

int

yes

New %pc

Command setReg Arguments

Name Type Required Description

reg

string

yes

Register name

value

int

yes

Value

Command translateBlock Arguments

Name Type Required Description

count

int

no

Number of instructions, omit for automatic.

pa

int

no

Physical address of block

va

int

no

Virtual address of block

Command translateFunc Arguments

Name Type Required Description

pa

int

no

Physical address of block

va

int

no

Virtual address of block