ACE Example - 5.0 English

System Cache LogiCORE IP Product Guide (PG118)

Document ID
PG118
Release Date
2021-11-05
Version
5.0 English

Another example use case, shown in the following figure, is a set of accelerators connected through the System Cache core to the ACE port on a Zynq UltraScale+ MPSoC. To fully take advantage of the System Cache, AXI transactions from the accelerators should be set up as Write-Back memory type (ARCACHE and AWCACHE), preferably Write-back Read and Write-allocate. If it is not possible to directly control this from an accelerator, it is possible to override some of the AxCACHE function through parameters such as C_Sx_AXI_GEN_FORCE_WRITE_ALLOCATE on a per port basis. This override functionality is available on all ports including the optimized ports.

Figure 1. Example of a System with Two or More Accelerators

It is possible to connect one or more MicroBlaze processor caches to the optimized ports, but they will not be cache coherent with the Zynq UltraScale+ MPSoC Processing System (PS) so manual cache maintenance with WIC and WDC type instructions is needed to observe data.

Example parameters for the System Cache core in this kind of configuration can be found in the following table. Sx_AXI_GEN_* should be configured for all active ports.

Table 1. Example System Cache Parameters for Accelerator Configuration
Parameter Value
C_NUM_OPTIMIZED_PORTS 0
C_NUM_GENERIC_PORTS 2 or more
C_NUM_WAYS 4
C_CACHE_SIZE 131072
C_M_AXI_DATA_WIDTH 128
C_ENABLE_COHERENCY 2
C_ENABLE_NON_SECURE 1
C_ENABLE_ERROR_HANDLING 1
C_Sx_AXI_GEN_DATA_WIDTH 128
C_Sx_AXI_GEN_FORCE_READ_ALLOCATE 1
C_Sx_AXI_GEN_PROHIBIT_READ_ALLOCATE 0
C_Sx_AXI_GEN_FORCE_WRITE_ALLOCATE 1
C_Sx_AXI_GEN_PROHIBIT_WRITE_ALLOCATE 0
C_Sx_AXI_GEN_FORCE_READ_BUFFER 1
C_Sx_AXI_GEN_PROHIBIT_READ_BUFFER 0
C_Sx_AXI_GEN_FORCE_WRITE_BUFFER 1
C_Sx_AXI_GEN_PROHIBIT_WRITE_BUFFER 0

All the C_Sx_AXI_PROHIBIT_WRITE_ALLOCATE/ C_Sx_AXI_GEN_PROHIBIT_WRITE_ALLOCATE parameters are cleared by default and need to be set to disable allocation on Write Miss. This is not backwards compatible with earlier System Cache versions.