3.9.7 CCN502

CCN502 Interconnect Fast Model. This model is written in C++.

CCN502 contains the following CADI targets:

  • CCN5XX
  • CCNCache

CCN502 contains the following MTI components:

About CCN502

CCN502 can be used for connecting components using the ACE and ACE-Lite interfaces. It has an L3 cache that can provide coherency between up to four fully coherent ACE clusters and nine I/O coherent masters. It can connect up to two memory elements to drive transaction requests. This interconnect can be configured to support six or eight crosspoints, both of which are implemented in the model.

CCN502 has three or five downstream ports, depending on the number of crosspoints:

  • Two or four SNF ports for the memory controller

  • One Acelite port (HNI)

Some useful parameters are:

  • cache_state_modelled
  • cache_size_in_kbytes
  • systemaddrmap

The model has the following limitations:

  • No support for 3 SN striping.
  • If there are multiple SN-Fs, the distribution of addresses to each SN-F is not guaranteed to match the hardware.

Table 3-300 Ports

Name Protocol Type Description
pvbus_m_hni[1] PVBus Master HNI downstream port.
pvbus_m_snf[4] PVBus Master SNF downstream ports.
pvbus_s_rnf[4] PVBus Slave RNF upstream ports.
pvbus_s_rni[9] PVBus Slave RNI upstream ports
reset_in Signal Slave Reset signal.

Table 3-301 Parameters for CCNCache

Name Type Default value Description
ccn_cache.acchannelen_rnf int 0xf For each upstream port, determine if it is enabled or not w.r.t. snoop requests.
ccn_cache.acchannelen_rni int 0xfff For each upstream port, determine if it is enabled or not w.r.t. dvm requests.
ccn_cache.cache_size_kb int 0x2000 Number of kilo bytes in cache
ccn_cache.cache_state_modelled bool 0x1 Model the cache state.
ccn_cache.force_on_from_start bool 0x0 The CCI will normally start up with snooping disabled, however, using this then we allow the model to start up as enabled without having to program it. This is only setup at simulation reset and not at signal reset. If the upstreams can ever be held in reset then you *must* connect the reset_state_of_upstream_port_3 and reset_state_of_upstream_port_4 so that it knows when to disable snoops to the upstream systems. Otherwise, the upstream system will receive snoop messages whilst in reset and it will complain that it 'received a snoop request whilst it was in reset'.
ccn_cache.number_of_phantom_entries int 0x20 Number of phantom entries in the cache. Phantom entries are used by certain cache operations to hold temporary data. Usually this should be left at the default value which is safe for all systems containing up to 32 masters.
ccn_cache.periphbase int 0x2c000000 Value for PERIPHBASE. Only bits [43:24] are used
ccn_cache.reentrancy_support string "env" Must be one of: on/off/cacheglobal/env: 'on': hazard checking per cache line (normal mode), 'off': no hazard checking (use only for single master systems), 'cacheglobal': hazard checking globally for cache (not per cache line, testing feature, provokes more hazards than necessary), 'env' (or empty string): take value from FM_REENTRANCY_SUPPORT env var, if this is not set use 'on', default is 'env'
ccn_cache.sbas_bridge_present bool 0x1 For each upstream port, determine if it is enabled or not w.r.t. dvm requests.
ccn_cache.sbsx_bridge_present bool 0x1 For each upstream port, determine if it is enabled or not w.r.t. dvm requests.
Non-ConfidentialPDF file icon PDF version100964_1110_00_en
Copyright © 2014–2020 Arm Limited or its affiliates. All rights reserved.