Header menu logo issie

Ram Type

A read/write memory as the simulator holds it.

Record fields

Record Field Description

AddressWidth

Full Usage: AddressWidth

Field type: int
Field type: int

Addressing

Full Usage: Addressing

Field type: Addressing
Field type: Addressing

BigVals

Full Usage: BigVals

Field type: bool

`WordWidth > 32`, so values live in the bigint arrays rather than the uint32 ones. The same split `IOArray` makes between `UInt32Step` and `BigIntStep`, and for the same reason.

Field type: bool

BigWords

Full Usage: BigWords

Field type: bigint array
Field type: bigint array

Comments

Full Usage: Comments

Field type: Map<bigint, string> option
Field type: Map<bigint, string> option

CurBig

Full Usage: CurBig

Field type: bigint array
Modifiers: mutable
Field type: bigint array

CurVal

Full Usage: CurVal

Field type: uint32 array
Modifiers: mutable

slot -> current contents, for the cases with no `Words`.

Field type: uint32 array

IBig

Full Usage: IBig

Field type: bigint array
Modifiers: mutable
Field type: bigint array

ILen

Full Usage: ILen

Field type: int
Modifiers: mutable
Field type: int

IStep

Full Usage: IStep

Field type: int array
Modifiers: mutable
Field type: int array

IVal

Full Usage: IVal

Field type: uint32 array
Modifiers: mutable
Field type: uint32 array

Init

Full Usage: Init

Field type: InitMemData
Field type: InitMemData

InitialData

Full Usage: InitialData

Field type: Map<bigint, bigint>

What the memory starts with, kept so that a restart can put it back.

Field type: Map<bigint, bigint>

LastStep

Full Usage: LastStep

Field type: int
Modifiers: mutable

The most recent step written, which is what pruning measures the window back from.

Field type: int

SlotAddr

Full Usage: SlotAddr

Field type: uint32 array
Modifiers: mutable

slot -> address. `uint32` because a slot only exists once an address has been written, and the wide case keeps its own reverse list.

Field type: uint32 array

SlotAddrBig

Full Usage: SlotAddrBig

Field type: ResizeArray<bigint>
Modifiers: mutable
Field type: ResizeArray<bigint>

SlotCount

Full Usage: SlotCount

Field type: int
Modifiers: mutable
Field type: int

Start

Full Usage: Start

Field type: int array
Modifiers: mutable
Field type: int array

TBig

Full Usage: TBig

Field type: bigint array
Modifiers: mutable
Field type: bigint array

TLen

Full Usage: TLen

Field type: int
Modifiers: mutable
Field type: int

TSlot

Full Usage: TSlot

Field type: int array
Modifiers: mutable
Field type: int array

TStep

Full Usage: TStep

Field type: int array
Modifiers: mutable
Field type: int array

TVal

Full Usage: TVal

Field type: uint32 array
Modifiers: mutable
Field type: uint32 array

Window

Full Usage: Window

Field type: int

How many steps of history are reachable. The step simulator's arrays wrap, so anything older than this can never be asked for and is dropped at the next compaction; the waveform simulator's arrays are sized for the whole run, so nothing is ever out of window there.

Field type: int

WordWidth

Full Usage: WordWidth

Field type: int
Field type: int

Words

Full Usage: Words

Field type: uint32 array

Current contents by *address*, for the dense case, so that a read during simulation is one indexed load. Empty otherwise, when the read goes via the slot number instead.

Field type: uint32 array

Writes

Full Usage: Writes

Field type: int
Modifiers: mutable

Writes actually recorded. A write of the value already there is not one of them.

Field type: int

Type something to start searching.