User manual

Table Of Contents
Zynq-7000 AP SoC Technical Reference Manual www.xilinx.com 738
UG585 (v1.11) September 27, 2016
Chapter 29: On-Chip Memory (OCM)
Arbitration is implemented as shown in Figure 29-3.
There is an additional round-robin pre-arbitration process that selects between a read or write
transaction on a per data-beat basis for the OCM-switch port traffic.
Note: Arbitration is performed on a transfer (data beat or clock cycle) basis, not on an AXI command
basis. The in-coming AXI read and write commands are split into individual addresses (or 128-bit
address pairs for aligned bursts) before arbitration.
Note: Each individual write address beat will not request access to the memory array until the write
data associated with it is available inside the OCM module — this prevents the scenario of a write
request being stalled due to write data not being available.
Starvation Scenarios
System constraints on the OCM are:
The RAM array and OCM Switch port are clocked with CPU_2x which runs at one third or one
half the CPU clock.
The SCU (CPU/ACP) port is clocked at full the CPU clock rate.
Each of the four incoming AXI data channels are 64-bits wide.
X-Ref Target - Figure 29-3
Figure 29-3: Default (ScuWrPriorityLo=0) OCM Arbitration
UG585_c29_03_042512
Break Burst
Into Individual
Addresses Or
Address Pairs
(128-bit aligned)
256 KB
RAM
SCU
AXI64 RdCmd
Addr/Cmd
Req
Addr/Cmd/Data
Req
Addr/Cmd
Req
Req
Addr/Cmd/Data
Gnt[1:0]
Break Burst
Into Individual
Addresses Or
Address Pairs
(128-bit aligned)
SCU
AXI64 WrCmd
SCU
AXI64 WrData
Break Burst
Into Individual
Addresses Or
Address Pairs
(128-bit aligned)
OCM Switch
AXI64 RdCmd
Gnt[2:0]
Req
Hi
Priority
Med
Priority
Low
Priority
OCM
Switch
RoundRobin
Arbiter
Fixed
Priority
Arbiter
Break Burst
Into Individual
Addresses Or
Address Pairs
(128-bit aligned)
OCM Switch
AXI64 WrCmd
OCM Switch
AXI64 WrData
128