User manual

Table Of Contents
Zynq-7000 AP SoC Technical Reference Manual www.xilinx.com 625
UG585 (v1.11) September 27, 2016
Chapter 21: Programmable Logic Description
Synchronous Operation
Each memory access, read or write, is controlled by the clock. All inputs, data, address, clock enables,
and write enables are registered. The input address is always clocked, retaining data until the next
operation. An optional output data pipeline register allows higher clock rates at the cost of an extra
cycle of latency.
During a write operation, the data output can reflect either the previously stored data, the newly
written data, or can remain unchanged.
Programmable Data Width
Each port can be configured as 32K ×1, 16K ×2, 8K ×4, 4K ×9 (or x8), 2K ×18 (or x16), 1K ×36 (or 32),
or 512 ×72 (or x64). The two ports can have different widths without any constraints.
Each block RAM can be divided into two completely independent 18 Kb block RAMs that can each be
configured to any aspect ratio from 16K × 1 to 512 × 36. Everything described previously for the full
36 Kb block RAM also applies to each of the smaller 18 Kb block RAMs.
Only in simple dual-port (SDP) mode can data widths of greater than 18 bits (18 Kb RAM) or 36 bits
(36 Kb RAM) be accessed. In this mode, one port is dedicated to read operations, the other to write
operations. In SDP mode, one side (read or write) can be variable, while the other is fixed to 32/36 or
64/72.
Both sides of the dual-port 36 Kb RAM can be of variable width.
Two adjacent 36 Kb block RAMs can be configured as one 64K × 1 dual-port RAM without any
additional logic.
Error Detection and Correction
Each 64-bit-wide block RAM can generate, store, and utilize eight additional Hamming code bits and
perform single-bit error correction and double-bit error detection (ECC) during the read process. The
ECC logic can also be used when writing to or reading from external 64- to 72-bit-wide memories.
FIFO Controller
The built-in FIFO controller for single-clock (synchronous) or dual-clock (asynchronous or multirate)
operation increments the internal addresses and provides four handshaking flags: full, empty, almost
full, and almost empty. The almost full and almost empty flags are freely programmable. Similar to
the block RAM, the FIFO width and depth are programmable, but the write and read ports always
have identical width.
First word fall-through mode presents the first-written word on the data output even before the first
read operation. After the first word has been read, there is no difference between this mode and the
standard mode.
For more details on Block RAM, see UG473
, 7 Series FPGAs Memory Resources User Guide.