User manual
Table Of Contents
- Zynq-7000 All Programmable SoC
- Table of Contents
- Ch. 1: Introduction
- Ch. 2: Signals, Interfaces, and Pins
- Ch. 3: Application Processing Unit
- Ch. 4: System Addresses
- Ch. 5: Interconnect
- Ch. 6: Boot and Configuration
- Ch. 7: Interrupts
- Ch. 8: Timers
- Ch. 9: DMA Controller
- Introduction
- Functional Description
- DMA Transfers on the AXI Interconnect
- AXI Transaction Considerations
- DMA Manager
- Multi-channel Data FIFO (MFIFO)
- Memory-to-Memory Transfers
- PL Peripheral AXI Transactions
- PL Peripheral Request Interface
- PL Peripheral - Length Managed by PL Peripheral
- PL Peripheral - Length Managed by DMAC
- Events and Interrupts
- Aborts
- Security
- IP Configuration Options
- Programming Guide for DMA Controller
- Programming Guide for DMA Engine
- Programming Restrictions
- System Functions
- I/O Interface
- Ch. 10: DDR Memory Controller
- Introduction
- AXI Memory Port Interface (DDRI)
- DDR Core and Transaction Scheduler (DDRC)
- DDRC Arbitration
- Controller PHY (DDRP)
- Initialization and Calibration
- DDR Clock Initialization
- DDR IOB Impedance Calibration
- DDR IOB Configuration
- DDR Controller Register Programming
- DRAM Reset and Initialization
- DRAM Input Impedance (ODT) Calibration
- DRAM Output Impedance (RON) Calibration
- DRAM Training
- Write Data Eye Adjustment
- Alternatives to Automatic DRAM Training
- DRAM Write Latency Restriction
- Register Overview
- Error Correction Code (ECC)
- Programming Model
- Ch. 11: Static Memory Controller
- Ch. 12: Quad-SPI Flash Controller
- Ch. 13: SD/SDIO Controller
- Ch. 14: General Purpose I/O (GPIO)
- Ch. 15: USB Host, Device, and OTG Controller
- Introduction
- Functional Description
- Programming Overview and Reference
- Device Mode Control
- Device Endpoint Data Structures
- Device Endpoint Packet Operational Model
- Device Endpoint Descriptor Reference
- Programming Guide for Device Controller
- Programming Guide for Device Endpoint Data Structures
- Host Mode Data Structures
- EHCI Implementation
- Host Data Structures Reference
- Programming Guide for Host Controller
- OTG Description and Reference
- System Functions
- I/O Interfaces
- Ch. 16: Gigabit Ethernet Controller
- Ch. 17: SPI Controller
- Ch. 18: CAN Controller
- Ch. 19: UART Controller
- Ch. 20: I2C Controller
- Ch. 21: Programmable Logic Description
- Ch. 22: Programmable Logic Design Guide
- Ch. 23: Programmable Logic Test and Debug
- Ch. 24: Power Management
- Ch. 25: Clocks
- Ch. 26: Reset System
- Ch. 27: JTAG and DAP Subsystem
- Ch. 28: System Test and Debug
- Ch. 29: On-Chip Memory (OCM)
- Ch. 30: XADC Interface
- Ch. 31: PCI Express
- Ch. 32: Device Secure Boot
- Appx. A: Additional Resources
- Appx. B: Register Details
- Overview
- Acronyms
- Module Summary
- AXI_HP Interface (AFI) (axi_hp)
- CAN Controller (can)
- DDR Memory Controller (ddrc)
- CoreSight Cross Trigger Interface (cti)
- Performance Monitor Unit (cortexa9_pmu)
- CoreSight Program Trace Macrocell (ptm)
- Debug Access Port (dap)
- CoreSight Embedded Trace Buffer (etb)
- PL Fabric Trace Monitor (ftm)
- CoreSight Trace Funnel (funnel)
- CoreSight Intstrumentation Trace Macrocell (itm)
- CoreSight Trace Packet Output (tpiu)
- Device Configuration Interface (devcfg)
- DMA Controller (dmac)
- Gigabit Ethernet Controller (GEM)
- General Purpose I/O (gpio)
- Interconnect QoS (qos301)
- NIC301 Address Region Control (nic301_addr_region_ctrl_registers)
- I2C Controller (IIC)
- L2 Cache (L2Cpl310)
- Application Processing Unit (mpcore)
- On-Chip Memory (ocm)
- Quad-SPI Flash Controller (qspi)
- SD Controller (sdio)
- System Level Control Registers (slcr)
- Static Memory Controller (pl353)
- SPI Controller (SPI)
- System Watchdog Timer (swdt)
- Triple Timer Counter (ttc)
- UART Controller (UART)
- USB Controller (usb)

Zynq-7000 AP SoC Technical Reference Manual www.xilinx.com 101
UG585 (v1.11) September 27, 2016
Chapter 3: Application Processing Unit
By default, the pre-fetch offset is 5'b00000. For example, if S0 receives a cacheable read at address
0x100, the cache line at address 0x120 is pre-fetched. Pre-fetching the next cache line might not
necessarily result in optimal performance. In some systems, it might be better to pre-fetch more in
advance to achieve better performance. The pre-fetch offset enables this by setting the address of
the pre-fetched cache line to Cache Line + 1 + Offset. The optimal value of the pre-fetch offset
depends on the external memory read latency and on the L1 read issuing capability. The pre-fetch
mechanism is not launched for a 4 KB boundary crossing.
Pre-fetch accesses can use a large number of the address slots in the controller master ports. This
prevents non-prefetch accesses being serviced and affects performance. To counter this effect, the
controller can drop pre-fetch accesses. This can be controlled using bit 24 of the Pre-fetch Control
register. When enabled, if a resource conflict exists between pre-fetch and non-pre-fetch accesses in
the controller master ports, pre-fetch accesses are dropped. When data corresponding to these
dropped pre-fetch accesses returns from the external memory, it is discarded and is not allocated
into the L2 cache.
3.4.10 Programming Model
The following applies to the registers used in the L2 cache controller:
• The cache controller is controlled through a set of memory-mapped registers. The memory
region for these registers must be defined with strongly ordered or device memory attributes in
the L1 page tables.
• The reserved bits in all registers must be preserved; otherwise, unpredictable behavior of the
device might occur.
• All registers support read and write accesses unless otherwise stated in the relevant text. A write
updates the contents of a register and a read returns the contents of the register.
• All writes to registers automatically perform an initial cache sync operation before proceeding.
Initialization Sequence
As an example, a typical cache controller start-up programming sequence consists of the following
register operations:
•Write 0x020202 to the register at 0xF8000A1C. This is a mandatory step.
• Write to the auxiliary, tag RAM latency, data RAM latency, pre-fetch, and Power Control registers
using a read-modify-write to set up global configurations:
°
Associativity and way size
°
Latencies for RAM accesses
°
Allocation policy
°
Pre-fetch and power capabilities
• Secure write to invalidate by way, offset 0x77C, to invalidate all entries in cache:
°
Write 0xFFFF to 0x77C
°
Poll the cache maintenance register until invalidate operation is complete.
• If required, write to register 9 to lock down D and lock down I.










