LIBRARY  |  COMPANIES |   PLATFORMS |   PROCESSORS |   PERIPHERALS
AndesAE350



OVP Virtual Platform: AE350

This page provides detailed information about the OVP Virtual Platform Model of the andes.ovpworld.org AE350 platform.

Licensing

Open Source Apache 2.0

Description

Andes AE350 module (skeleton)

Reference

Andes BSP v5.0 ae350 BSP Definition

Limitations

This is a skeleton platform that contains only those peripherals required to boot FreeRTOS demo.

The following peripherals are register only models that do not provide any behavior:

- BMC

- AHBDEC

- MAC

- LCDC

- SMC

- PLDM

- APBBRG

- SMU

- PIT

- WDT

- RTC

- GPIO

- I2C

- SPI1

- DMAC

- AC97

- SDC

- SPI2

The UART does not support dma mode, so if using the Andes AMSI BSP you should set RTE_UART*_DMA_*X_EN=0 in RTE_Device.h

Location

The AE350 virtual platform is located in an Imperas/OVP installation at the VLNV: andes.ovpworld.org / module / AE350 / 1.0.

Platform Summary

Table : Components in platform

TypeInstanceVendorComponent
Processorcpu0andes.ovpworld.orgriscvNX25
PeripheralBMCovpworld.orgtrap
PeripheralAHBDECovpworld.orgtrap
PeripheralMACovpworld.orgtrap
PeripheralLCDCovpworld.orgtrap
PeripheralSMCovpworld.orgtrap
PeripheralPLICandes.ovpworld.orgNCEPLIC100
PeripheralPLMTandes.ovpworld.orgNCEPLMT100
PeripheralPLIC_SWandes.ovpworld.orgNCEPLIC100
PeripheralPLDMovpworld.orgtrap
PeripheralAPBBRGovpworld.orgtrap
PeripheralSMUovpworld.orgtrap
PeripheralUART1andes.ovpworld.orgATCUART100
PeripheralUART2andes.ovpworld.orgATCUART100
PeripheralPITovpworld.orgtrap
PeripheralWDTovpworld.orgtrap
PeripheralRTCovpworld.orgtrap
PeripheralGPIOovpworld.orgtrap
PeripheralI2Covpworld.orgtrap
PeripheralSPI1ovpworld.orgtrap
PeripheralDMACovpworld.orgtrap
PeripheralAC97ovpworld.orgtrap
PeripheralSDCovpworld.orgtrap
PeripheralSPI2ovpworld.orgtrap
Memoryeilmovpworld.orgram
Memoryedlmovpworld.orgram
Memoryspimemovpworld.orgram
Memorystackovpworld.orgram
Busbus0(builtin)address width:buswidth

Platform Simulation Attributes

Table 1: Platform Simulation Attributes

AttributeValueDescription
stoponctrlcstoponctrlcStop on control-C



Processor [andes.ovpworld.org/processor/riscv/1.0] instance: cpu0

Processor model type: 'riscv' variant 'NX25' definition

Imperas OVP processor models support multiple variants and details of the variants implemented in this model can be found in:
- the Imperas installation located at ImperasLib/source/andes.ovpworld.org/processor/riscv/1.0/doc
- the OVP website: OVP_Model_Specific_Information_andes_riscv_NX25.pdf

Description

RISC-V NX25 64-bit processor model

Licensing

This Model is released under the Open Source Apache 2.0

Extensions Enabled by Default

The model has the following architectural extensions enabled, and the corresponding bits in the misa CSR Extensions field will be set upon reset:
misa bit 0: extension A (atomic instructions)
misa bit 2: extension C (compressed instructions)
misa bit 8: RV32I/RV64I/RV128I base integer instruction set
misa bit 12: extension M (integer multiply/divide instructions)
misa bit 20: extension U (User mode)
misa bit 23: extension X (non-standard extensions present)
To specify features that can be dynamically enabled or disabled by writes to the misa register in addition to those listed above, use parameter "add_Extensions_mask". This is a string parameter containing the feature letters to add; for example, value "DV" indicates that double-precision floating point and the Vector Extension can be enabled or disabled by writes to the misa register, if supported on this variant. Parameter "sub_Extensions_mask" can be used to disable dynamic update of features in the same way.
Legacy parameter "misa_Extensions_mask" can also be used. This Uns32-valued parameter specifies all writable bits in the misa Extensions field, replacing any permitted bits defined in the base variant.
Note that any features that are indicated as present in the misa mask but absent in the misa will be ignored. See the next section.

Enabling Other Extensions

The following extensions are supported by the model, but not enabled by default in this variant:
misa bit 1: extension B (bit manipulation extension)
misa bit 3: extension D (double-precision floating point)
misa bit 4: RV32E base integer instruction set (embedded)
misa bit 5: extension F (single-precision floating point)
misa bit 7: extension H (hypervisor)
misa bit 10: extension K (cryptographic)
misa bit 13: extension N (user-level interrupts)
misa bit 15: extension P (DSP instructions)
misa bit 18: extension S (Supervisor mode)
misa bit 21: extension V (vector extension)
To add features from this list to the visible set in the misa register, use parameter "add_Extensions". This is a string containing identification letters of features to enable; for example, value "DV" indicates that double-precision floating point and the Vector Extension should be enabled, if they are currently absent and are available on this variant.
Legacy parameter "misa_Extensions" can also be used. This Uns32-valued parameter specifies the reset value for the misa CSR Extensions field, replacing any permitted bits defined in the base variant.
To add features from this list to the implicitly-enabled set (not visible in the misa register), use parameter "add_implicit_Extensions". This is a string parameter in the same format as the "add_Extensions" parameter described above.

Disabling Extensions

The following extensions are enabled by default in the model and can be disabled:
misa bit 0: extension A (atomic instructions)
misa bit 2: extension C (compressed instructions)
misa bit 12: extension M (integer multiply/divide instructions)
misa bit 20: extension U (User mode)
misa bit 23: extension X (non-standard extensions present)
To disable features that are enabled by default, use parameter "sub_Extensions". This is a string containing identification letters of features to disable; for example, value "DF" indicates that double-precision and single-precision floating point extensions should be disabled, if they are enabled by default on this variant.
To remove features from this list from the implicitly-enabled set (not visible in the misa register), use parameter "sub_implicit_Extensions". This is a string parameter in the same format as the "sub_Extensions" parameter described above.

mtvec CSR

On this variant, the Machine trap-vector base-address register (mtvec) is writable. It can instead be configured as read-only using parameter "mtvec_is_ro".
Values written to "mtvec" are masked using the value 0xfffffffffffffffc. A different mask of writable bits may be specified using parameter "mtvec_mask" if required. In addition, when Vectored interrupt mode is enabled, parameter "tvec_align" may be used to specify additional hardware-enforced base address alignment. In this variant, "tvec_align" defaults to 0, implying no alignment constraint.
If parameter "mtvec_sext" is True, values written to "mtvec" are sign-extended from the most-significant writable bit. In this variant, "mtvec_sext" is False, indicating that "mtvec" is not sign-extended.
The initial value of "mtvec" is 0x0. A different value may be specified using parameter "mtvec" if required.

Reset

On reset, the model will restart at address 0x0. A different reset address may be specified using parameter "reset_address" or applied using optional input port "reset_addr" if required.

NMI

On an NMI, the model will restart at address 0x0; a different NMI address may be specified using parameter "nmi_address" or applied using optional input port "nmi_addr" if required. The cause reported on an NMI is 0x0 by default; a different cause may be specified using parameter "ecode_nmi" or applied using optional input port "nmi_cause" if required.
If parameter "rnmi_version" is not "none", resumable NMIs are supported, managed by additional CSRs "mnscratch", "mnepc", "mncause" and "mnstatus", following the indicated version of the Resumable NMI extension proposal. In this variant, "rnmi_version" is "none".
The NMI input is level-sensitive. To instead specify that the NMI input is latched on the rising edge of the NMI signal, set parameter "nmi_is_latched" to True.

WFI

WFI will halt the processor until an interrupt occurs. It can instead be configured as a NOP using parameter "wfi_is_nop". WFI timeout wait is implemented with a time limit of 0 (i.e. WFI causes an Illegal Instruction trap in Supervisor mode when mstatus.TW=1).

cycle CSR

The "cycle" CSR is implemented in this variant. Set parameter "cycle_undefined" to True to instead specify that "cycle" is unimplemented and accesses should cause Illegal Instruction traps.

instret CSR

The "instret" CSR is implemented in this variant. Set parameter "instret_undefined" to True to instead specify that "instret" is unimplemented and accesses should cause Illegal Instruction traps.

hpmcounter CSR

The "hpmcounter" CSRs are implemented in this variant. Set parameter "hpmcounter_undefined" to True to instead specify that "hpmcounter" CSRs are unimplemented and accesses should cause Illegal Instruction traps.

time CSR

The "time" CSR is implemented in this variant. Set parameter "time_undefined" to True to instead specify that "time" is unimplemented and reads of it should cause Illegal Instruction traps. Usually, the value of the "time" CSR should be provided by the platform - see notes below about the artifact "CSR" bus for information about how this is done.

mcycle CSR

The "mcycle" CSR is implemented in this variant. Set parameter "mcycle_undefined" to True to instead specify that "mcycle" is unimplemented and accesses should cause Illegal Instruction traps.

minstret CSR

The "minstret" CSR is implemented in this variant. Set parameter "minstret_undefined" to True to instead specify that "minstret" is unimplemented and accesses should cause Illegal Instruction traps.

mhpmcounter CSR

The "mhpmcounter" CSRs are implemented in this variant. Set parameter "mhpmcounter_undefined" to True to instead specify that "mhpmcounter" CSRs are unimplemented and accesses should cause Illegal Instruction traps.

Unaligned Accesses

Unaligned memory accesses are supported by this variant. Set parameter "unaligned" to "F" to disable such accesses.
Unaligned memory accesses are not supported for AMO instructions by this variant. Set parameter "unalignedAMO" to "T" to enable such accesses.
Address misaligned exceptions are higher priority than page fault or access fault exceptions on this variant. Set parameter "unaligned_low_pri" to "T" to specify that they are lower priority instead.

PMP

A PMP unit is not implemented by this variant. Set parameter "PMP_registers" to indicate that the unit should be implemented with that number of PMP entries.
Accesses to unimplemented PMP registers are write-ignored and read as zero on this variant. Set parameter "PMP_undefined" to True to indicate that such accesses should cause Illegal Instruction exceptions instead.

LR/SC Granule

LR/SC instructions are implemented with a 1-byte reservation granule. A different granule size may be specified using parameter "lr_sc_grain".

Compressed Extension

Standard compressed instructions are present in this variant. Legacy compressed extension features may also be configured using parameters described below. Use parameter "commpress_version" to enable more recent compressed extension features if required.
Parameter Zcea_version is used to specify the version of Zcea instructions present. By default, Zcea_version is set to "none" in this variant. Updates to this parameter require a commercial product license.
Parameter Zceb_version is used to specify the version of Zceb instructions present. By default, Zceb_version is set to "none" in this variant. Updates to this parameter require a commercial product license.
Parameter Zcee_version is used to specify the version of Zcee instructions present. By default, Zcee_version is set to "none" in this variant. Updates to this parameter require a commercial product license.

Privileged Architecture

This variant implements the Privileged Architecture with version specified in the References section of this document. Note that parameter "priv_version" can be used to select the required architecture version; see the following sections for detailed information about differences between each supported version.

Legacy Version 1.10

1.10 version of May 7 2017.

Version 20190608

Stable 1.11 version of June 8 2019, with these changes compared to version 1.10:
- mcountinhibit CSR defined;
- pages are never executable in Supervisor mode if page table entry U bit is 1;
- mstatus.TW is writable if any lower-level privilege mode is implemented (previously, it was just if Supervisor mode was implemented);

Version 20211203

1.12 draft version of December 3 2021, with these changes compared to version 20190608:
- mstatush, mseccfg, mseccfgh, menvcfg, menvcfgh, senvcfg, henvcfg, henvcfgh and mconfigptr CSRs defined;
- xret instructions clear mstatus.MPRV when leaving Machine mode if new mode is less privileged than M-mode;
- maximum number of PMP registers increased to 64;
- data endian is now configurable.

Version 1.12

Official 1.12 version, identical to 20211203.

Version master

Unstable master version, currently identical to 1.12.

Unprivileged Architecture

This variant implements the Unprivileged Architecture with version specified in the References section of this document. Note that parameter "user_version" can be used to select the required architecture version; see the following sections for detailed information about differences between each supported version.

Legacy Version 2.2

2.2 version of May 7 2017.

Version 20191213

Stable 20191213-Base-Ratified version of December 13 2019, with these changes compared to version 2.2:
- floating point fmin/fmax instruction behavior modified to comply with IEEE 754-201x.
- numerous other optional behaviors can be separately enabled using Z-prefixed parameters.

Other Extensions

Other extensions that can be configured are described in this section.

Zmmul

Parameter "Zmmul" is 0 on this variant, meaning that all multiply and divide instructions are implemented. if "Zmmul" is set to 1 then multiply instructions are implemented but divide and remainder instructions are not implemented.

Zicsr

Parameter "Zicsr" is 1 on this variant, meaning that standard CSRs and CSR access instructions are implemented. if "Zicsr" is set to 0 then standard CSRs and CSR access instructions are not implemented and an alternative scheme must be provided as a processor extension.

Zifencei

Parameter "Zifencei" is 1 on this variant, meaning that the fence.i instruction is implemented (but treated as a NOP by the model). if "Zifencei" is set to 0 then the fence.i instruction is not implemented.

Zicbom

Parameter "Zicbom" is 0 on this variant, meaning that code block management instructions are undefined. if "Zicbom" is set to 1 then code block management instructions cbo.clean, cbo.flush and cbo.inval are defined.
If Zicbom is present, the cache block size is given by parameter "cmomp_bytes". The instructions may cause traps if used illegally but otherwise are NOPs in this model.

Zicbop

Parameter "Zicbop" is 0 on this variant, meaning that prefetch instructions are undefined. if "Zicbop" is set to 1 then prefetch instructions prefetch.i, prefetch.r and prefetch.w are defined (but behave as NOPs in this model).

Zicboz

Parameter "Zicboz" is 0 on this variant, meaning that the cbo.zero instruction is undefined. if "Zicboz" is set to 1 then the cbo.zero instruction is defined.
If Zicboz is present, the cache block size is given by parameter "cmoz_bytes".

Smstateen

Parameter "Smstateen" is 0 on this variant, meaning that state enable CSRs are undefined. if "Smstateen" is set to 1 then state enable CSRs are defined.
Within the state enable CSRs, only bit 1 (for Zfinx), bit 57 (for xcontext CSR access), bit 62 (for xenvcfg CSR access) and bit 63 (for lower-level state enable CSR access) are currently implemented.

CLIC

The model can be configured to implement a Core Local Interrupt Controller (CLIC) using parameter "CLICLEVELS"; when non-zero, the CLIC is present with the specified number of interrupt levels (2-256), as described in the RISC-V Core-Local Interrupt Controller specification, and further parameters are made available to configure other aspects of the CLIC. "CLICLEVELS" is zero in this variant, indicating that a CLIC is not implemented.

Load-Reserved/Store-Conditional Locking

By default, LR/SC locking is implemented automatically by the model and simulator, with a reservation granule defined by the "lr_sc_grain" parameter. It is also possible to implement locking externally to the model in a platform component, using the "LR_address", "SC_address" and "SC_valid" net ports, as described below.
The "LR_address" output net port is written by the model with the address used by a load-reserved instruction as it executes. This port should be connected as an input to the external lock management component, which should record the address, and also that an LR/SC transaction is active.
The "SC_address" output net port is written by the model with the address used by a store-conditional instruction as it executes. This should be connected as an input to the external lock management component, which should compare the address with the previously-recorded load-reserved address, and determine from this (and other implementation-specific constraints) whether the store should succeed. It should then immediately write the Boolean success/fail code to the "SC_valid" input net port of the model. Finally, it should update state to indicate that an LR/SC transaction is no longer active.
It is also possible to write zero to the "SC_valid" input net port at any time outside the context of a store-conditional instruction, which will mark any active LR/SC transaction as invalid.
Irrespective of whether LR/SC locking is implemented internally or externally, taking any exception or interrupt or executing exception-return instructions (e.g. MRET) will always mark any active LR/SC transaction as invalid.
Parameter "amo_aborts_lr_sc" is used to specify whether AMO operations abort any active LR/SC pair. In this variant, "amo_aborts_lr_sc" is 0.

Active Atomic Operation Indication

The "AMO_active" output net port is written by the model with a code indicating any current atomic memory operation while the instruction is active. The written codes are:
0: no atomic instruction active
1: AMOMIN active
2: AMOMAX active
3: AMOMINU active
4: AMOMAXU active
5: AMOADD active
6: AMOXOR active
7: AMOOR active
8: AMOAND active
9: AMOSWAP active
10: LR active
11: SC active

Interrupts

The "reset" port is an active-high reset input. The processor is halted when "reset" goes high and resumes execution from the reset address specified using the "reset_address" parameter or "reset_addr" port when the signal goes low. The "mcause" register is cleared to zero.
The "nmi" port is an active-high NMI input. The processor resumes execution from the address specified using the "nmi_address" parameter or "nmi_addr" port when the NMI signal goes high. The "mcause" register is cleared to zero.
All other interrupt ports are active high. For each implemented privileged execution level, there are by default input ports for software interrupt, timer interrupt and external interrupt; for example, for Machine mode, these are called "MSWInterrupt", "MTimerInterrupt" and "MExternalInterrupt", respectively. When the N extension is implemented, ports are also present for User mode. Parameter "unimp_int_mask" allows the default behavior to be changed to exclude certain interrupt ports. The parameter value is a mask in the same format as the "mip" CSR; any interrupt corresponding to a non-zero bit in this mask will be removed from the processor and read as zero in "mip", "mie" and "mideleg" CSRs (and Supervisor and User mode equivalents if implemented).
Parameter "external_int_id" can be used to enable extra interrupt ID input ports on each hart. If the parameter is True then when an external interrupt is applied the value on the ID port is sampled and used to fill the Exception Code field in the "mcause" CSR (or the equivalent CSR for other execution levels). For Machine mode, the extra interrupt ID port is called "MExternalInterruptID".
The "deferint" port is an active-high artifact input that, when written to 1, prevents any pending-and-enabled interrupt being taken (normally, such an interrupt would be taken on the next instruction after it becomes pending-and-enabled). The purpose of this signal is to enable alignment with hardware models in step-and-compare usage.

Debug Mode

The model can be configured to implement Debug mode using parameter "debug_mode". This implements features described in Chapter 4 of the RISC-V External Debug Support specification with version specified by parameter "debug_version" (see References). Some aspects of this mode are not defined in the specification because they are implementation-specific; the model provides infrastructure to allow implementation of a Debug Module using a custom harness. Features added are described below.
Parameter "debug_mode" can be used to specify three different behaviors, as follows:
1. If set to value "vector", then operations that would cause entry to Debug mode result in the processor jumping to the address specified by the "debug_address" parameter. It will execute at this address, in Debug mode, until a "dret" instruction causes return to non-Debug mode. Any exception generated during this execution will cause a jump to the address specified by the "dexc_address" parameter.
2. If set to value "interrupt", then operations that would cause entry to Debug mode result in the processor simulation call (e.g. opProcessorSimulate) returning, with a stop reason of OP_SR_INTERRUPT. In this usage scenario, the Debug Module is implemented in the simulation harness.
3. If set to value "halt", then operations that would cause entry to Debug mode result in the processor halting. Depending on the simulation environment, this might cause a return from the simulation call with a stop reason of OP_SR_HALT, or debug mode might be implemented by another platform component which then restarts the debugged processor again.

Debug State Entry

The specification does not define how Debug mode is implemented. In this model, Debug mode is enabled by a Boolean pseudo-register, "DM". When "DM" is True, the processor is in Debug mode. When "DM" is False, mode is defined by "mstatus" in the usual way.
Entry to Debug mode can be performed in any of these ways:
1. By writing True to register "DM" (e.g. using opProcessorRegWrite) followed by simulation of at least one cycle (e.g. using opProcessorSimulate), dcsr cause will be reported as trigger;
2. By writing a 1 then 0 to net "haltreq" (using opNetWrite) followed by simulation of at least one cycle (e.g. using opProcessorSimulate);
3. By writing a 1 to net "resethaltreq" (using opNetWrite) while the "reset" signal undergoes a negedge transition, followed by simulation of at least one cycle (e.g. using opProcessorSimulate);
4. By executing an "ebreak" instruction when Debug mode entry for the current processor mode is enabled by dcsr.ebreakm, dcsr.ebreaks or dcsr.ebreaku.
In all cases, the processor will save required state in "dpc" and "dcsr" and then perform actions described above, depending in the value of the "debug_mode" parameter.

Debug State Exit

Exit from Debug mode can be performed in any of these ways:
1. By writing False to register "DM" (e.g. using opProcessorRegWrite) followed by simulation of at least one cycle (e.g. using opProcessorSimulate);
2. By executing an "dret" instruction when Debug mode.
In both cases, the processor will perform the steps described in section 4.6 (Resume) of the Debug specification.

Debug Registers

When Debug mode is enabled, registers "dcsr", "dpc", "dscratch0" and "dscratch1" are implemented as described in the specification. These may be manipulated externally by a Debug Module using opProcessorRegRead or opProcessorRegWrite; for example, the Debug Module could write "dcsr" to enable "ebreak" instruction behavior as described above, or read and write "dpc" to emulate stepping over an "ebreak" instruction prior to resumption from Debug mode.

Debug Mode Execution

The specification allows execution of code fragments in Debug mode. A Debug Module implementation can cause execution in Debug mode by the following steps:
1. Write the address of a Program Buffer to the program counter using opProcessorPCSet;
2. If "debug_mode" is set to "halt", write 0 to pseudo-register "DMStall" (to leave halted state);
3. If entry to Debug mode was handled by exiting the simulation callback, call opProcessorSimulate or opRootModuleSimulate to resume simulation.
Debug mode will be re-entered in these cases:
1. By execution of an "ebreak" instruction; or:
2. By execution of an instruction that causes an exception.
In both cases, the processor will either jump to the debug exception address, or return control immediately to the harness, with stopReason of OP_SR_INTERRUPT, or perform a halt, depending on the value of the "debug_mode" parameter.

Debug Single Step

When in Debug mode, the processor or harness can cause a single instruction to be executed on return from that mode by setting dcsr.step. After one non-Debug-mode instruction has been executed, control will be returned to the harness. The processor will remain in single-step mode until dcsr.step is cleared.

Debug Event Priorities

The model supports two different models for determining which debug exception occurs when multiple debug events are pending:
1: original mode (when parameter "debug_priority"="original");
2: modified mode, as described in Debug Specification pull request 693 (when parameter "debug_priority"="PR693"). This mode resolves some anomalous behavior of the original specification.

Debug Ports

Port "DM" is an output signal that indicates whether the processor is in Debug mode
Port "haltreq" is a rising-edge-triggered signal that triggers entry to Debug mode (see above).
Port "resethaltreq" is a level-sensitive signal that triggers entry to Debug mode after reset (see above).

Trigger Module

This model is configured with a trigger module, implementing a subset of the behavior described in Chapter 5 of the RISC-V External Debug Support specification with version specified by parameter "debug_version" (see References).

Trigger Module Restrictions

The model currently supports tdata1 of type 0, type 2 (mcontrol), type 3 (icount), type 4 (itrigger), type 5 (etrigger) and type 6 (mcontrol6). icount triggers are implemented for a single instruction only, with count hard-wired to 1 and automatic zeroing of mode bits when the trigger fires.

Trigger Module Parameters

Parameter "trigger_num" is used to specify the number of implemented triggers. In this variant, "trigger_num" is 4.
Parameter "tinfo" is used to specify the value of the read-only "tinfo" register, which indicates the trigger types supported. In this variant, "tinfo" is 0x3d.
Parameter "tinfo_undefined" is used to specify whether the "tinfo" register is undefined, in which case reads of it trap to Machine mode. In this variant, "tinfo_undefined" is 0.
Parameter "tcontrol_undefined" is used to specify whether the "tcontrol" register is undefined, in which case accesses to it trap to Machine mode. In this variant, "tcontrol_undefined" is 0.
Parameter "mcontext_undefined" is used to specify whether the "mcontext" register is undefined, in which case accesses to it trap to Machine mode. In this variant, "mcontext_undefined" is 0.
Parameter "scontext_undefined" is used to specify whether the "scontext" register is undefined, in which case accesses to it trap to Machine mode. In this variant, "scontext_undefined" is 0.
Parameter "amo_trigger" is used to specify whether load/store triggers are activated for AMO instructions. In this variant, "amo_trigger" is 0.
Parameter "no_hit" is used to specify whether the "hit" bit in tdata1 is unimplemented. In this variant, "no_hit" is 0.
Parameter "mcontext_bits" is used to specify the number of writable bits in the "mcontext" register. In this variant, "mcontext_bits" is 13.
Parameter "mvalue_bits" is used to specify the number of writable bits in the "mvalue" field in "textra32"/"textra64" registers; if zero, the "mselect" field is tied to zero. In this variant, "mvalue_bits" is 13.
Parameter "mcontrol_maskmax" is used to specify the value of field "maskmax" in the "mcontrol" register. In this variant, "mcontrol_maskmax" is 63.

Debug Mask

It is possible to enable model debug messages in various categories. This can be done statically using the "debugflags" parameter, or dynamically using the "debugflags" command. Enabled messages are specified using a bitmask value, as follows:
Value 0x002: enable debugging of PMP and virtual memory state;
Value 0x004: enable debugging of interrupt state.
All other bits in the debug bitmask are reserved and must not be set to non-zero values.

Integration Support

This model implements a number of non-architectural pseudo-registers and other features to facilitate integration.

CSR Register External Implementation

If parameter "enable_CSR_bus" is True, an artifact 16-bit bus "CSR" is enabled. Slave callbacks installed on this bus can be used to implement modified CSR behavior (use opBusSlaveNew or icmMapExternalMemory, depending on the client API). A CSR with index 0xABC is mapped on the bus at address 0xABC0; as a concrete example, implementing CSR "time" (number 0xC01) externally requires installation of callbacks at address 0xC010 on the CSR bus.

LR/SC Active Address

Artifact register "LRSCAddress" shows the active LR/SC lock address. The register holds all-ones if there is no LR/SC operation active or if LR/SC locking is implemented externally as described above.

Limitations

Instruction pipelines are not modeled in any way. All instructions are assumed to complete immediately. This means that instruction barrier instructions (e.g. fence.i) are treated as NOPs, with the exception of any Illegal Instruction behavior, which is modeled.
Caches and write buffers are not modeled in any way. All loads, fetches and stores complete immediately and in order, and are fully synchronous. Data barrier instructions (e.g. fence) are treated as NOPs, with the exception of any Illegal Instruction behavior, which is modeled.
Real-world timing effects are not modeled: all instructions are assumed to complete in a single cycle.
Hardware Performance Monitor registers are not implemented and hardwired to zero.
Andes-specific cache, local memory and ECC behavior is not yet implemented, except for CSR state.
Andes Performance and Code Dense instructions and associated CSR state are implemented, but the EXEC.IT instruction supports in-memory table mode using the uitb CSR only (not hardwired mode).
PMP and PMA accesses that any-byte match but do not all-byte match are broken into separate smaller accesses that follow all-byte match rules.

Verification

All instructions have been extensively tested by Imperas, using tests generated specifically for this model and also reference tests from https://github.com/riscv/riscv-tests.
Also reference tests have been used from various sources including:
https://github.com/riscv/riscv-tests
https://github.com/ucb-bar/riscv-torture
The Imperas OVPsim RISC-V models are used in the RISC-V Foundation Compliance Framework as a functional Golden Reference:
https://github.com/riscv/riscv-compliance
where the simulated model is used to provide the reference signatures for compliance testing. The Imperas OVPsim RISC-V models are used as reference in both open source and commercial instruction stream test generators for hardware design verification, for example:
http://valtrix.in/sting from Valtrix
https://github.com/google/riscv-dv from Google
The Imperas OVPsim RISC-V models are also used by commercial and open source RISC-V Core RTL developers as a reference to ensure correct functionality of their IP.

References

The Model details are based upon the following specifications:
RISC-V Instruction Set Manual, Volume I: User-Level ISA (User Architecture Version 2.2)
RISC-V Instruction Set Manual, Volume II: Privileged Architecture (Privileged Architecture Version Ratified-IMFDQC-and-Priv-v1.11)
RISC-V External Debug Support (RISC-V External Debug Support Version 0.13.2-DRAFT)
---- AndesCore_NX25_DS131_V1.0 DS131-10
---- AndeStar V5 Instruction Extension Specification (UMxxx-0.4, 2018-05-30)
---- AndeStar V5 Architecture and CSR Definitions (UM164-152, 2019-07-18)
---- AndeStar V5 Vector INT4 Load Extension (v0.2)
---- AndeStar V5 BFLOAT16 Conversion Extension (v0.4)

Andes-Specific Extensions

Andes processors add various custom extensions to the basic RISC-V architecture. This model implements the following:
1: Hardware Stack Protection (if mmsc_cfg.HSP=1);
2: Physical Memory Attribute Unit (if mmsc_cfg.DPMA=1).
3: Performance Throttling (register interface only, if mmsc_cfg.PFT=1);
4: CSRs for CCTL Operations (register interface only, if mmsc_cfg.CCTLCSR=1);
5: Performance Extension instructions (if mmsc_cfg.EV5MPE=1);
6: CodeDense instructions (if mmsc_cfg.ECD=1);
7: Half-precision load/store instructions (if mmsc_cfg.EFHW=1).
8: BFLOAT16 conversion instructions (if mmsc_cfg.BFLOAT16=1).
9: Half-precision arithmetic instructions (if mmsc_cfg.ZFH=1).
10: Vector INT4 load extension (if mmsc_cfg.VL4=1).
11: Vector packed FP16 extension (if mmsc_cfg.VPFH=1).
Other Andes-specific extensions are not currently modeled. The exact set of supported extensions can be configured using parameter "andesExtensions/mmsc_cfg", which overrides the default value of the mmsc_cfg register (see detailed description below).

Andes-Specific Parameters

In addition to the base model RISC-V parameters, this model implements parameters allowing Andes-specific model features to be controlled. These parameters are documented below.

Parameter andesExtensions/mmsc_cfg

This parameter allows the value of the read-only mmsc_cfg register to be specified. Bits that affect behavior of the model are:
bit 3 (ECD): enables CodeDense instructions and uitb CSR.
bit 4 (PFT): determines presence of mpft_ctl register and affects implemented fields in mxstatus.
bit 5 (HSP): enables HW Stack protection, relevant CSRs and affects implemented fields in mxstatus.
bit 12 (VPLIC): enables Vectored Interrupts support.
bit 13 (EV5PE): enables Performance Extension support.
bit 14 (LMSLVP): enables Local Memory slave ports ILM_port and DLM_port.
bit 15 (PMNDS): enables Andes-enhanced Performance Monitoring.
bit 16 (CCTLCSR): enables CCTL CSRs.
bit 30 (DPMA): enables the Physical Memory Attribute Unit and relevant CSRs.
bit 32 (BF16CVT): enables BFLOAT16 conversion extension.
bit 33 (ZFH): enables FP16 half-precision extension.
bit 34 (VL4): enables vector INT4 load extension.
bit 44 (VPFH): enables vector packed FP16 extension.
bit 45 (L2CMP_CFG): enables cluster configuration fields. CORE_PCLUS field will be set to floor(numharts-1, 1).
bit 46 (L2C): enables ml2c_ctl_base CSR if both L2C and L2CMP_CFG are not zero
Other bits can be set or cleared but do not affect model behavior.
Example: --override iss/cpu0/andesExtensions/mmsc_cfg=0x2028

Parameter andesExtensions/micm_cfg

This parameter allows the value of the read-only micm_cfg register to be specified. Bits that affect behavior of the model are:
bits 8:6 (ISZ): enables mcache_ctl CSR if non-zero.
bits 14:12 (ILMB): enables milmb CSR if non-zero.
bits 19:15 (ILMSZ): specifies size of ILM in KB if non-zero (ILM size = 1024 << (ILMSZ-1)
Other bits can be set or cleared but do not affect model behavior, except that if any bit is non zero then IME/PIME bits in mxstatus are modeled.
Example: --override iss/cpu0/andesExtensions/micm_cfg=0

Parameter andesExtensions/mdcm_cfg

This parameter allows the value of the read-only mdcm_cfg register to be specified. Bits that affect behavior of the model are:
bits 8:6 (DSZ): enables mcache_ctl CSR if non-zero.
bits 14:12 (DLMB): enables mdlmb CSR if non-zero.
bits 19:15 (DLMSZ): specifies size of ILM in KB if non-zero (DLM size = 1024 << (DLMSZ-1)
Other bits can be set or cleared but do not affect model behavior, except that if any bit is non zero then DME/DIME bits in mxstatus are modeled.
Example: --override iss/cpu0/andesExtensions/mdcm_cfg=0

Parameter andesExtensions/uitb

This parameter allows the value of the uitb register to be specified.
Example: --override iss/cpu0/andesExtensions/uitb=0

Parameter andesExtensions/milmb

This parameter allows the value of the milmb register to be specified.
Example: --override iss/cpu0/andesExtensions/milmb=0x200001

Parameter andesExtensions/milmbMask

This parameter allows the mask of writable bits in the milmb register to be specified. The default value for this variant is 0xe (RWECC and ECCEN are writable, all other bits are read-only).
Example: --override iss/cpu0/andesExtensions/milmbMask=0xe

Parameter andesExtensions/mdlmb

This parameter allows the value of the mdlmb register to be specified.
Example: --override iss/cpu0/andesExtensions/mdlmb==0x300001

Parameter andesExtensions/mdlmbMask

This parameter allows the mask of writable bits in the mdlmb register to be specified. The default value for this variant is 0xe (RWECC and ECCEN are writable, all other bits are read-only).
Example: --override iss/cpu0/andesExtensions/mdlmbMask=0xe

Parameter andesExtensions/PMA_grain

This parameter allows the grain size of Physical Memory Attribute regions to be specified. The default value for this variant is 0, meaning that PMA regions as small as 4 bytes are implemented.
Example: --override iss/cpu0/andesExtensions/PMA_grain=16

Hardware Stack Protection

Hardware Stack Protection is present on this variant (mmsc_cfg.HSP=1). Registers mhsp_ctl, msp_bound and msp_base are implemented.

Physical Memory Attribute Unit

The Physical Memory Attribute Unit is not present on this variant (mmsc_cfg.DPMA=0).

Performance Throttling

Performance Throttling registers are present on this variant (mmsc_cfg.PFT=1). Register mpft_ctl is present but has no behavior except for the effects on mxstatus, which are modeled.

Andes-Enhanced Performance Monitoring

Andes-Enhanced Performance Monitoring is present on this variant (mmsc_cfg.PMNDS=1).

CSRs for CCTL Operations

CSRs for CCTL Operation are not present on this variant (mmsc_cfg.CCTLCSR=0).

Andes-Specific Instructions

This section describes Andes-specific instructions implemented by this variant. Refer to Andes reference documentation for more information.

Performance Extension Instructions

ADDIGP
BBC
BBS
BEQC
BNEC
BFOS
BFOZ
LEA.h
LEA.w
LEA.d
LEA.b.ze
LEA.h.ze
LEA.w.ze
LEA.d.ze
LBGP
LBUGP
LHGP
LHUGP
LWGP
LWUGP
LDGP
SBGP
SHGP
SWGP
SDGP
FFB
FFZMISM
FFMISM
FLMISM

CodeDense Instructions

EXEC.IT
EX9.IT

Andes Net Port Names

Net ports in this model use generic base model names and not Andes-specific names. Equivalent port names for Andes nets are listed below:
"reset_n": equivalent to "reset"
"reset_vector": equivalent to "reset_addr"
"meip": equivalent to "MExternalInterrupt"
"meiid": equivalent to "MExternalInterruptID"
"meiack": equivalent to "MExternalInterruptACK"
"mtip": equivalent to "MTimerInterrupt"
"stip": equivalent to "MSWInterrupt"
"nmi": equivalent to "nmi"

Instance Parameters

Several parameters can be specified when a processor is instanced in a platform. For this processor instance 'cpu0' it has been instanced with the following parameters:

Table 2: Processor Instance 'cpu0' Parameters (Configurations)

ParameterValueDescription
endianlittleSelect processor endian (big or little)
simulateexceptionssimulateexceptionsCauses the processor simulate exceptions instead of halting
mips60The nominal MIPS for the processor

Table 3: Processor Instance 'cpu0' Parameters (Attributes)

Parameter NameValueType
variantNX25enum

Memory Map for processor 'cpu0' bus: 'bus0'

Processor instance 'cpu0' is connected to bus 'bus0' using master port 'INSTRUCTION'.

Processor instance 'cpu0' is connected to bus 'bus0' using master port 'DATA'.

Table 4: Memory Map ( 'cpu0' / 'bus0' [width: buswidth] )

Lo AddressHi AddressInstanceComponent
0x00x1FFFFFeilmram
remappableremappableAC97trap
remappableremappableAHBDECtrap
remappableremappableAPBBRGtrap
remappableremappableBMCtrap
remappableremappableDMACtrap
remappableremappableGPIOtrap
remappableremappableI2Ctrap
remappableremappableLCDCtrap
remappableremappableMACtrap
remappableremappablePITtrap
remappableremappablePLDMtrap
remappableremappableRTCtrap
remappableremappableSDCtrap
remappableremappableSMCtrap
remappableremappableSMUtrap
remappableremappableSPI1trap
remappableremappableSPI2trap
remappableremappableWDTtrap
0x2000000x2FFFFFedlmram
0x7FF00000x7FFFFFFstackram
0x800000000x801FFFFFspimemram
0xE40000000xE43FFFFFPLICNCEPLIC100
0xE60000000xE60000FFPLMTNCEPLMT100
0xE64000000xE67FFFFFPLIC_SWNCEPLIC100
0xF02000000xF020003FUART1ATCUART100
0xF03000000xF030003FUART2ATCUART100

Net Connections to processor: 'cpu0'

Table 5: Processor Net Connections ( 'cpu0' )

Net PortNetInstanceComponent
MExternalInterruptMExternalInterruptPLICNCEPLIC100
MExternalInterruptIDMExternalInterruptIDPLICNCEPLIC100
MExternalInterruptACKMExternalInterruptACKPLICNCEPLIC100
MTimerInterruptmtipPLMTNCEPLMT100
MSWInterruptSWInterruptPLIC_SWNCEPLIC100
MSWInterruptSWInterruptPLICNCEPLIC100



Peripheral Instances



Peripheral [ovpworld.org/peripheral/trap/1.0] instance: BMC

Description

Open a port and allocate a region that is defined by parameters.
The region can be configured to act as standard memory or can report read/write accesses.

Licensing

Open Source Apache 2.0

Limitations

This peripheral cannot be used in a hardware description used to generate a TLM platform.

Reference

This is not based upon the operation of a real device but is intended to be used for bring up and development of new virtual platforms.

Table 6: Configuration options (attributes) set for instance 'BMC'

AttributesValue
portAddress0xC0000000
portSize0x1000
cbEnable1



Peripheral [ovpworld.org/peripheral/trap/1.0] instance: AHBDEC

Description

Open a port and allocate a region that is defined by parameters.
The region can be configured to act as standard memory or can report read/write accesses.

Licensing

Open Source Apache 2.0

Limitations

This peripheral cannot be used in a hardware description used to generate a TLM platform.

Reference

This is not based upon the operation of a real device but is intended to be used for bring up and development of new virtual platforms.

Table 7: Configuration options (attributes) set for instance 'AHBDEC'

AttributesValue
portAddress0xE0000000
portSize0x1000
cbEnable1



Peripheral [ovpworld.org/peripheral/trap/1.0] instance: MAC

Description

Open a port and allocate a region that is defined by parameters.
The region can be configured to act as standard memory or can report read/write accesses.

Licensing

Open Source Apache 2.0

Limitations

This peripheral cannot be used in a hardware description used to generate a TLM platform.

Reference

This is not based upon the operation of a real device but is intended to be used for bring up and development of new virtual platforms.

Table 8: Configuration options (attributes) set for instance 'MAC'

AttributesValue
portAddress0xE0100000
portSize0x1000
cbEnable1



Peripheral [ovpworld.org/peripheral/trap/1.0] instance: LCDC

Description

Open a port and allocate a region that is defined by parameters.
The region can be configured to act as standard memory or can report read/write accesses.

Licensing

Open Source Apache 2.0

Limitations

This peripheral cannot be used in a hardware description used to generate a TLM platform.

Reference

This is not based upon the operation of a real device but is intended to be used for bring up and development of new virtual platforms.

Table 9: Configuration options (attributes) set for instance 'LCDC'

AttributesValue
portAddress0xE0200000
portSize0x1000
cbEnable1



Peripheral [ovpworld.org/peripheral/trap/1.0] instance: SMC

Description

Open a port and allocate a region that is defined by parameters.
The region can be configured to act as standard memory or can report read/write accesses.

Licensing

Open Source Apache 2.0

Limitations

This peripheral cannot be used in a hardware description used to generate a TLM platform.

Reference

This is not based upon the operation of a real device but is intended to be used for bring up and development of new virtual platforms.

Table 10: Configuration options (attributes) set for instance 'SMC'

AttributesValue
portAddress0xE0400000
portSize0x1000
cbEnable1



Peripheral [andes.ovpworld.org/peripheral/NCEPLIC100/1.0] instance: PLIC

Licensing

Open Source Apache 2.0

Description

PLIC Interrupt Controller
Base riscv.ovpworld.org PLIC model plus these Andes extension features:
- Software-programmable interrupt generation (writable pending registers)
- Configurable interrupt trigger types
- Preemptive priority interrupts
- Vectored Interrupts
If vectored interrupts are to be used then additional connections between the plic and processor are required. For an interrupt target port t<x>_eip connected to one of the M/S/UExternalInterrupt ports of a processor, the corresponding ports must be connected as follows:
- The PLIC output port t<x>_eiid must be connected to the M/S/UExternalInterruptID processor port
- The PLIC output port t<x>_eiack must be connected to the M/S/UExternalInterruptACK processor port

Limitations

The ASYNC_INT configuration option is not configurable since the difference between asynch/synch behavior is not modeled by the simulator

Reference

Various AndesCore Processor Data Sheets, e.g. AndesCore AX45MP Data Sheet V1.1 (DS185-11)
AndeStar V5 Platform-Level Interrupt Controller Specification - UM166-13

There are no configuration options set for this peripheral instance.



Peripheral [andes.ovpworld.org/peripheral/NCEPLMT100/1.0] instance: PLMT

Licensing

Open Source Apache 2.0

Description

NCEPLMT100 Platform-Level Machine Timer

Limitations

A max of 31 timers, rather then the hardware max of 32 is supported by the model. This has not been changed in order to preserve backward compatability of the model's port size, but may be changed locally if needed.

Reference

AndeStar_V5_Timer_UM167_v1.1.pdf 2018-03-07

Table 11: Configuration options (attributes) set for instance 'PLMT'

AttributesValue
numharts1
clockMHz60



Peripheral [andes.ovpworld.org/peripheral/NCEPLIC100/1.0] instance: PLIC_SW

Licensing

Open Source Apache 2.0

Description

PLIC Interrupt Controller
Base riscv.ovpworld.org PLIC model plus these Andes extension features:
- Software-programmable interrupt generation (writable pending registers)
- Configurable interrupt trigger types
- Preemptive priority interrupts
- Vectored Interrupts
If vectored interrupts are to be used then additional connections between the plic and processor are required. For an interrupt target port t<x>_eip connected to one of the M/S/UExternalInterrupt ports of a processor, the corresponding ports must be connected as follows:
- The PLIC output port t<x>_eiid must be connected to the M/S/UExternalInterruptID processor port
- The PLIC output port t<x>_eiack must be connected to the M/S/UExternalInterruptACK processor port

Limitations

The ASYNC_INT configuration option is not configurable since the difference between asynch/synch behavior is not modeled by the simulator

Reference

Various AndesCore Processor Data Sheets, e.g. AndesCore AX45MP Data Sheet V1.1 (DS185-11)
AndeStar V5 Platform-Level Interrupt Controller Specification - UM166-13

Table 12: Configuration options (attributes) set for instance 'PLIC_SW'

AttributesValue
vector_plic_support0



Peripheral [ovpworld.org/peripheral/trap/1.0] instance: PLDM

Description

Open a port and allocate a region that is defined by parameters.
The region can be configured to act as standard memory or can report read/write accesses.

Licensing

Open Source Apache 2.0

Limitations

This peripheral cannot be used in a hardware description used to generate a TLM platform.

Reference

This is not based upon the operation of a real device but is intended to be used for bring up and development of new virtual platforms.

Table 13: Configuration options (attributes) set for instance 'PLDM'

AttributesValue
portAddress0xE6800000
portSize0x1000
cbEnable1



Peripheral [ovpworld.org/peripheral/trap/1.0] instance: APBBRG

Description

Open a port and allocate a region that is defined by parameters.
The region can be configured to act as standard memory or can report read/write accesses.

Licensing

Open Source Apache 2.0

Limitations

This peripheral cannot be used in a hardware description used to generate a TLM platform.

Reference

This is not based upon the operation of a real device but is intended to be used for bring up and development of new virtual platforms.

Table 14: Configuration options (attributes) set for instance 'APBBRG'

AttributesValue
portAddress0xF0000000
portSize0x1000
cbEnable1



Peripheral [ovpworld.org/peripheral/trap/1.0] instance: SMU

Description

Open a port and allocate a region that is defined by parameters.
The region can be configured to act as standard memory or can report read/write accesses.

Licensing

Open Source Apache 2.0

Limitations

This peripheral cannot be used in a hardware description used to generate a TLM platform.

Reference

This is not based upon the operation of a real device but is intended to be used for bring up and development of new virtual platforms.

Table 15: Configuration options (attributes) set for instance 'SMU'

AttributesValue
portAddress0xF0100000
portSize0x1000
cbEnable1



Peripheral [andes.ovpworld.org/peripheral/ATCUART100/1.0] instance: UART1

Licensing

Open Source Apache 2.0

Description

Andes UART

Limitations

DMA not supported

Reference

Andes AE350 Platform User Manual

Table 16: Configuration options (attributes) set for instance 'UART1'

AttributesValue
console1
finishOnDisconnect1



Peripheral [andes.ovpworld.org/peripheral/ATCUART100/1.0] instance: UART2

Licensing

Open Source Apache 2.0

Description

Andes UART

Limitations

DMA not supported

Reference

Andes AE350 Platform User Manual

Table 17: Configuration options (attributes) set for instance 'UART2'

AttributesValue
console1
finishOnDisconnect1



Peripheral [ovpworld.org/peripheral/trap/1.0] instance: PIT

Description

Open a port and allocate a region that is defined by parameters.
The region can be configured to act as standard memory or can report read/write accesses.

Licensing

Open Source Apache 2.0

Limitations

This peripheral cannot be used in a hardware description used to generate a TLM platform.

Reference

This is not based upon the operation of a real device but is intended to be used for bring up and development of new virtual platforms.

Table 18: Configuration options (attributes) set for instance 'PIT'

AttributesValue
portAddress0xF0400000
portSize0x1000
cbEnable1



Peripheral [ovpworld.org/peripheral/trap/1.0] instance: WDT

Description

Open a port and allocate a region that is defined by parameters.
The region can be configured to act as standard memory or can report read/write accesses.

Licensing

Open Source Apache 2.0

Limitations

This peripheral cannot be used in a hardware description used to generate a TLM platform.

Reference

This is not based upon the operation of a real device but is intended to be used for bring up and development of new virtual platforms.

Table 19: Configuration options (attributes) set for instance 'WDT'

AttributesValue
portAddress0xF0500000
portSize0x1000
cbEnable1



Peripheral [ovpworld.org/peripheral/trap/1.0] instance: RTC

Description

Open a port and allocate a region that is defined by parameters.
The region can be configured to act as standard memory or can report read/write accesses.

Licensing

Open Source Apache 2.0

Limitations

This peripheral cannot be used in a hardware description used to generate a TLM platform.

Reference

This is not based upon the operation of a real device but is intended to be used for bring up and development of new virtual platforms.

Table 20: Configuration options (attributes) set for instance 'RTC'

AttributesValue
portAddress0xF0600000
portSize0x1000
cbEnable1



Peripheral [ovpworld.org/peripheral/trap/1.0] instance: GPIO

Description

Open a port and allocate a region that is defined by parameters.
The region can be configured to act as standard memory or can report read/write accesses.

Licensing

Open Source Apache 2.0

Limitations

This peripheral cannot be used in a hardware description used to generate a TLM platform.

Reference

This is not based upon the operation of a real device but is intended to be used for bring up and development of new virtual platforms.

Table 21: Configuration options (attributes) set for instance 'GPIO'

AttributesValue
portAddress0xF0700000
portSize0x1000
cbEnable1



Peripheral [ovpworld.org/peripheral/trap/1.0] instance: I2C

Description

Open a port and allocate a region that is defined by parameters.
The region can be configured to act as standard memory or can report read/write accesses.

Licensing

Open Source Apache 2.0

Limitations

This peripheral cannot be used in a hardware description used to generate a TLM platform.

Reference

This is not based upon the operation of a real device but is intended to be used for bring up and development of new virtual platforms.

Table 22: Configuration options (attributes) set for instance 'I2C'

AttributesValue
portAddress0xF0A00000
portSize0x1000
cbEnable1



Peripheral [ovpworld.org/peripheral/trap/1.0] instance: SPI1

Description

Open a port and allocate a region that is defined by parameters.
The region can be configured to act as standard memory or can report read/write accesses.

Licensing

Open Source Apache 2.0

Limitations

This peripheral cannot be used in a hardware description used to generate a TLM platform.

Reference

This is not based upon the operation of a real device but is intended to be used for bring up and development of new virtual platforms.

Table 23: Configuration options (attributes) set for instance 'SPI1'

AttributesValue
portAddress0xF0B00000
portSize0x1000
cbEnable1



Peripheral [ovpworld.org/peripheral/trap/1.0] instance: DMAC

Description

Open a port and allocate a region that is defined by parameters.
The region can be configured to act as standard memory or can report read/write accesses.

Licensing

Open Source Apache 2.0

Limitations

This peripheral cannot be used in a hardware description used to generate a TLM platform.

Reference

This is not based upon the operation of a real device but is intended to be used for bring up and development of new virtual platforms.

Table 24: Configuration options (attributes) set for instance 'DMAC'

AttributesValue
portAddress0xF0C00000
portSize0x1000
cbEnable1



Peripheral [ovpworld.org/peripheral/trap/1.0] instance: AC97

Description

Open a port and allocate a region that is defined by parameters.
The region can be configured to act as standard memory or can report read/write accesses.

Licensing

Open Source Apache 2.0

Limitations

This peripheral cannot be used in a hardware description used to generate a TLM platform.

Reference

This is not based upon the operation of a real device but is intended to be used for bring up and development of new virtual platforms.

Table 25: Configuration options (attributes) set for instance 'AC97'

AttributesValue
portAddress0xF0D00000
portSize0x1000
cbEnable1



Peripheral [ovpworld.org/peripheral/trap/1.0] instance: SDC

Description

Open a port and allocate a region that is defined by parameters.
The region can be configured to act as standard memory or can report read/write accesses.

Licensing

Open Source Apache 2.0

Limitations

This peripheral cannot be used in a hardware description used to generate a TLM platform.

Reference

This is not based upon the operation of a real device but is intended to be used for bring up and development of new virtual platforms.

Table 26: Configuration options (attributes) set for instance 'SDC'

AttributesValue
portAddress0xF0E00000
portSize0x1000
cbEnable1



Peripheral [ovpworld.org/peripheral/trap/1.0] instance: SPI2

Description

Open a port and allocate a region that is defined by parameters.
The region can be configured to act as standard memory or can report read/write accesses.

Licensing

Open Source Apache 2.0

Limitations

This peripheral cannot be used in a hardware description used to generate a TLM platform.

Reference

This is not based upon the operation of a real device but is intended to be used for bring up and development of new virtual platforms.

Table 27: Configuration options (attributes) set for instance 'SPI2'

AttributesValue
portAddress0xF0F00000
portSize0x1000
cbEnable1



AndesPlatforms
Page was generated in 0.0755 seconds