3.4.5 ARMCortexA17x1CT

ARMCortexA17x1CT CPU component. This model is written in C++ and models version r0p0 of the RTL.

ARMCortexA17x1CT contains the following CADI targets:

  • ARM_Cortex-A17
  • Cluster_ARM_Cortex-A17
  • PVCache
  • TlbCadi

ARMCortexA17x1CT contains the following MTI components:

Note:

  • The following components also exist:

    • ARMCortexA17x2CT.
    • ARMCortexA17x3CT.
    • ARMCortexA17x4CT.
  • The per-core parameters are preceded by cpun., where n identifies the core (0-3).

Additional port and parameter information

broadcastcachemaint, broadcastinner, broadcastouter
AXI Coherency Extensions (ACE)-defined pins.
ase-present, vfp-present
The ase-present and vfp-present parameters configure the synthesis options:
vfp present and ase present
NEON and VFPv4-D32 supported.
vfp present and ase not present
VFPv4-D16 supported.
vfp not present and ase present
Illegal. Forces vfp-present to true so model has NEON and VFPv4-D32 support.
vfp not present and ase not present
Model has neither NEON nor VFPv4-D32 support.
vfp-enable_at_reset
This is a model-specific behavior with no hardware equivalent.

Table 3-81 Ports

Name Protocol Type Description
CFGADDRFILTENDNS 2.7.5 Value_64 protocol Slave NS end address (only bits 39:20 are used).
CFGADDRFILTENDS 2.7.5 Value_64 protocol Slave S end address (only bits 39:20 are used).
CFGADDRFILTENNS 2.7.2 Signal protocol Slave Enable periph port filtering for NS accesses.
CFGADDRFILTENS 2.7.2 Signal protocol Slave Enable periph port filtering for S accesses.
CFGADDRFILTSTARTNS 2.7.5 Value_64 protocol Slave NS start address (only bits 39:20 are used).
CFGADDRFILTSTARTS 2.7.5 Value_64 protocol Slave S start address (only bits 39:20 are used).
CNTHPIRQ[4] 2.7.2 Signal protocol Master Outputs of the generic timers.
CNTPNSIRQ[4] 2.7.2 Signal protocol Master Outputs of the generic timers.
CNTPSIRQ[4] 2.7.2 Signal protocol Master Outputs of the generic timers.
CNTVIRQ[4] 2.7.2 Signal protocol Master Outputs of the generic timers.
acp_s PVBus Slave AXI ACP slave port.
broadcastcachemaint 2.7.2 Signal protocol Slave Enable broadcasting of cache maintenance operations to downstream caches.
broadcastinner 2.7.2 Signal protocol Slave Enable broadcasting of Inner Shareable transactions.
broadcastouter 2.7.2 Signal protocol Slave Enable broadcasting of Outer Shareable transactions.
cfgend[4] 2.7.2 Signal protocol Slave This signal controls the SCTLR.EE bit.
clk_in ClockSignal Slave The clock signal connected to the clk_in port is used to determine the rate at which the core executes instructions.
clusterid 2.7.4 Value protocol Slave This port sets the value in the CLUSTERID field (bits[11:8]) of the MPIDR.
cntvalueb 2.6.1 CounterInterface protocol Slave Interface to SoC level counter module.
cp15sdisable[4] 2.7.2 Signal protocol Slave This signal disables write access to some secure system control processor registers.
cpuporeset[4] 2.7.2 Signal protocol Slave Signal initializes all processor logic including NEON, VFP, Debug, PTM, breakpoint and watchpoint.
event 2.7.2 Signal protocol Peer This peer port of event input (and output) is for wakeup from WFE.
fiq[4] 2.7.2 Signal protocol Slave This signal drives the CPU's fast-interrupt handling.
irq[4] 2.7.2 Signal protocol Slave This signal drives the CPU's interrupt handling.
l2flushdone 2.7.2 Signal protocol Master Flush of L2 memory system complete.
l2flushreq 2.7.2 Signal protocol Slave Request flush of L2 memory system.
l2reset 2.7.2 Signal protocol Slave This signal resets the shared L2 memory system and timer logic.
peripheral_m PVBus Master The core's peripheral port. Controlled by filter registers.
pmuirq[4] 2.7.2 Signal protocol Master Interrupt signal from performance monitoring unit.
presetdbg 2.7.2 Signal protocol Slave Signal initializes the shared Debug APB, CTI and CTM logic.
pvbus_m0 PVBus Master The core will generate bus requests on this port.
reset[4] 2.7.2 Signal protocol Slave Raising this signal will put the core into reset mode.
standbywfe[4] 2.7.2 Signal protocol Master This signal indicates if a core is in WFE state.
standbywfi[4] 2.7.2 Signal protocol Master This signal indicates if a core is in WFI state.
standbywfil2 2.7.2 Signal protocol Master Indicate that all the individual processors and the L2 memory system are in a WFI state.
teinit[4] 2.7.2 Signal protocol Slave This signal enables Thumb exceptions (controls the SCTLR.TE bit).
ticks[4] 2.6.3 InstructionCount protocol Master This port should be connected to one of the two ticks ports on a 'visualisation' component, in order to display a running instruction count.
vfiq[4] 2.7.2 Signal protocol Slave Virtual FIQ inputs.
vinithi[4] 2.7.2 Signal protocol Slave This signal controls the location of the exception vectors at reset.
virq[4] 2.7.2 Signal protocol Slave Virtual IRQ inputs.
virtio_s PVBus Slave The virtio coherent port, hooks directly into the L2 system and becomes coherent (assuming attributes are set correctly).

Table 3-82 Parameters for Cluster_ARM_Cortex-A17

Name Type Default value Description
CFGADDRFILTENDNS int 0x0 Peripheral port NS end address
CFGADDRFILTENDS int 0x0 Peripheral port S end address
CFGADDRFILTENNS bool 0x0 Peripheral port NS address filtering enabled
CFGADDRFILTENS bool 0x0 Peripheral port S address filtering enabled
CFGADDRFILTSTARTNS int 0x0 Peripheral port NS start address
CFGADDRFILTSTARTS int 0x0 Peripheral port S start address
CLUSTER_ID int 0x0 Processor cluster ID value
IMINLN bool 0x1 Instruction cache minimum line size: false=32 bytes, true=64 bytes
cpi_div int 0x1 Divider for calculating CPI (Cycles Per Instruction)
cpi_mul int 0x1 Multiplier for calculating CPI (Cycles Per Instruction)
l1_dcache-hit_latency int 0x0 L1 D-Cache timing annotation latency for hit. Intended to model the tag-lookup time. This is only used when l1_dcache-state_modelled=true.
l1_dcache-maintenance_latency int 0x0 L1 D-Cache timing annotation latency for cache maintenance operations given in total ticks. This is only used when l1_dcache-state_modelled=true.
l1_dcache-miss_latency int 0x0 L1 D-Cache timing annotation latency for miss. Intended to model the time for failed tag-lookup and allocation of intermediate buffers. This is only used when l1_dcache-state_modelled=true.
l1_dcache-read_access_latency int 0x0 L1 D-Cache timing annotation latency for read accesses given in ticks per access. If this parameter is non-zero, per-access latencies will be used instead of per-byte even if l1_dcache-read_latency is set. This is in addition to the hit or miss latency, and intended to correspond to the time taken to transfer across the cache upstream bus, this is only used when l1_dcache-state_modelled=true.
l1_dcache-read_latency int 0x0 L1 D-Cache timing annotation latency for read accesses given in ticks per byte accessed.l1_dcache-read_access_latency must be set to 0 for per-byte latencies to be applied. This is in addition to the hit or miss latency, and intended to correspond to the time taken to transfer across the cache upstream bus. This is only used when l1_dcache-state_modelled=true.
l1_dcache-snoop_data_transfer_latency int 0x0 L1 D-Cache timing annotation latency for received snoop accesses that perform a data transfer given in ticks per byte accessed. This is only used when l1_dcache-state_modelled=true.
l1_dcache-state_modelled bool 0x0 Set whether L1 D-cache has stateful implementation
l1_dcache-write_access_latency int 0x0 L1 D-Cache timing annotation latency for write accesses given in ticks per access. If this parameter is non-zero, per-access latencies will be used instead of per-byte even if l1_dcache-write_latency is set. This is only used when l1_dcache-state_modelled=true.
l1_dcache-write_latency int 0x0 L1 D-Cache timing annotation latency for write accesses given in ticks per byte accessed. l1_dcache-write_access_latency must be set to 0 for per-byte latencies to be applied. This is only used when l1_dcache-state_modelled=true.
l1_icache-hit_latency int 0x0 L1 I-Cache timing annotation latency for hit. Intended to model the tag-lookup time. This is only used when l1_icache-state_modelled=true.
l1_icache-maintenance_latency int 0x0 L1 I-Cache timing annotation latency for cache maintenance operations given in total ticks. This is only used when l1_icache-state_modelled=true.
l1_icache-miss_latency int 0x0 L1 I-Cache timing annotation latency for miss. Intended to model the time for failed tag-lookup and allocation of intermediate buffers. This is only used when l1_icache-state_modelled=true.
l1_icache-read_access_latency int 0x0 L1 I-Cache timing annotation latency for read accesses given in ticks per access. If this parameter is non-zero, per-access latencies will be used instead of per-byte even if l1_icache-read_latency is set. This is in addition to the hit or miss latency, and intended to correspond to the time taken to transfer across the cache upstream bus, this is only used when l1_icache-state_modelled=true.
l1_icache-read_latency int 0x0 L1 I-Cache timing annotation latency for read accesses given in ticks per byte accessed.l1_icache-read_access_latency must be set to 0 for per-byte latencies to be applied. This is in addition to the hit or miss latency, and intended to correspond to the time taken to transfer across the cache upstream bus. This is only used when l1_icache-state_modelled=true.
l1_icache-state_modelled bool 0x0 Set whether L1 I-cache has stateful implementation
l2-data-slice int 0x0 L2 data RAM slice
l2-tag-slice int 0x0 L2 tag RAM slice
l2_cache-hit_latency int 0x0 L2 Cache timing annotation latency for hit. Intended to model the tag-lookup time. This is only used when l2_cache-state_modelled=true.
l2_cache-maintenance_latency int 0x0 L2 Cache timing annotation latency for cache maintenance operations given in total ticks. This is only used when l2_cache-state_modelled=true.
l2_cache-miss_latency int 0x0 L2 Cache timing annotation latency for miss. Intended to model the time for failed tag-lookup and allocation of intermediate buffers. This is only used when l2_cache-state_modelled=true.
l2_cache-read_access_latency int 0x0 L2 Cache timing annotation latency for read accesses given in ticks per access. If this parameter is non-zero, per-access latencies will be used instead of per-byte even if l2_cache-read_latency is set. This is in addition to the hit or miss latency, and intended to correspond to the time taken to transfer across the cache upstream bus, this is only used when l2_cache-state_modelled=true.
l2_cache-read_latency int 0x0 L2 Cache timing annotation latency for read accesses given in ticks per byte accessed.l2_cache-read_access_latency must be set to 0 for per-byte latencies to be applied. This is in addition to the hit or miss latency, and intended to correspond to the time taken to transfer across the cache upstream bus. This is only used when l2_cache-state_modelled=true.
l2_cache-size int 0x40000 Set L2 cache size in bytes
l2_cache-snoop_data_transfer_latency int 0x0 L2 Cache timing annotation latency for received snoop accesses that perform a data transfer given in ticks per byte accessed. This is only used when l2_cache-state_modelled=true.
l2_cache-snoop_issue_latency int 0x0 L2 Cache timing annotation latency for snoop accesses issued by this cache in total ticks. This is only used when l2_cache-state_modelled=true.
l2_cache-state_modelled bool 0x0 Set whether L2 cache has stateful implementation
l2_cache-write_access_latency int 0x0 L2 Cache timing annotation latency for write accesses given in ticks per access. If this parameter is non-zero, per-access latencies will be used instead of per-byte even if l2_cache-write_latency is set. This is only used when l2_cache-state_modelled=true.
l2_cache-write_latency int 0x0 L2 Cache timing annotation latency for write accesses given in ticks per byte accessed. l2_cache-write_access_latency must be set to 0 for per-byte latencies to be applied. This is only used when l2_cache-state_modelled=true.

Table 3-83 Parameters for ARM_Cortex-A17

Name Type Default value Description
cpu0.BROADCASTCACHEMAINT bool 0x1 Enable broadcasting of cache maintenance operations to downstream caches. The broadcastcachemaint signal will override this value if used.
cpu0.BROADCASTINNER bool 0x1 Enable broadcasting of Inner Shareable transactions. The broadcastinner signal will override this value if used.
cpu0.BROADCASTOUTER bool 0x1 Enable broadcasting of Outer Shareable transactions. The broadcastouter signal will override this value if used.
cpu0.CFGEND bool 0x0 Initialize to BE8 endianness
cpu0.CP15SDISABLE bool 0x0 Initialize to disable access to some CP15 registers
cpu0.DBGROMADDR int 0x12000003 This value is used to initialize the CP15 DBGDRAR register. Bits[39:12] of this register specify the ROM table physical address
cpu0.DBGROMADDRV bool 0x1 If true, this sets bits[1:0] of the CP15 DBGDRAR to indicate that the address is valid
cpu0.DBGSELFADDR int 0x10003 This value is used to initialize the CP15 DBGDSAR register. Bits[39:17] of this register specify the ROM table physical address
cpu0.DBGSELFADDRV bool 0x1 If true, this sets bits[1:0] of the CP15 DBGDSAR to indicate that the address is valid
cpu0.TEINIT bool 0x0 T32 exception enable. The default has exceptions including reset handled in A32 state
cpu0.VINITHI bool 0x0 Initialize with high vectors enabled
cpu0.ase-present bool 0x1 Set whether CT model has been built with NEON support
cpu0.l1_icache-size int 0x8000 Size of L1 I-cache
cpu0.min_sync_level int 0x0 Force minimum syncLevel (0=off=default,1=syncState,2=postInsnIO,3=postInsnAll)
cpu0.semihosting-ARM_HLT int 0xf000 ARM HLT number for semihosting
cpu0.semihosting-ARM_SVC int 0x123456 ARM SVC number for semihosting
cpu0.semihosting-Thumb_HLT int 0x3c Thumb HLT number for semihosting
cpu0.semihosting-Thumb_SVC int 0xab Thumb SVC number for semihosting
cpu0.semihosting-cmd_line string "" Command line available to semihosting SVC calls
cpu0.semihosting-cwd string "" Base directory for semihosting file access.
cpu0.semihosting-enable bool 0x1 Enable semihosting SVC traps. Applications that do not use semihosting must set this parameter to false
cpu0.semihosting-heap_base int 0x0 Virtual address of heap base
cpu0.semihosting-heap_limit int 0xf000000 Virtual address of top of heap
cpu0.semihosting-hlt-enable bool 0x0 Enable semihosting HLT traps. Applications that use HLT semihosting must set this parameter to true and the semihosting-enable parameter to true
cpu0.semihosting-stack_base int 0x10000000 Virtual address of base of descending stack
cpu0.semihosting-stack_limit int 0xf000000 Virtual address of stack limit
cpu0.vfp-enable_at_reset bool 0x0 Enable coprocessor access and VFP at reset
cpu0.vfp-present bool 0x1 Set whether CT model has been built with VFP support
Non-ConfidentialPDF file icon PDF version100964_1161_00_en
Copyright © 2014–2019 Arm Limited or its affiliates. All rights reserved.