7 Series FPGAs
Memory Resources
User Guide
UG473 (v1.7) October 2, 2012
7 Series FPGAs Memory Resources www.xilinx.com UG473 (v1.7) October 2, 2012
The information disclosed to you hereunder (the "Materials") is provided solely for the selection and use of Xilinx products. To the maximum
extent permitted by applicable law: (1) Materials are made available "AS IS" and with all faults, Xilinx hereby DISCLAIMS ALL
WARRANTIES AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF
MERCHANTABILITY, NON-INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and (2) Xilinx shall not be liable (whether
in contract or tort, including negligence, or under any other theory of liability) for any loss or damage of any kind or nature related to, arising
under, or in connection with, the Materials (including your use of the Materials), including for any direct, indirect, special, incidental, or
consequential loss or damage (including loss of data, profits, goodwill, or any type of loss or damage suffered as a result of any action
brought by a third party) even if such damage or loss was reasonably foreseeable or Xilinx had been advised of the possibility of the same.
Xilinx assumes no obligation to correct any errors contained in the Materials, or to advise you of any corrections or update. You may not
reproduce, modify, distribute, or publicly display the Materials without prior written consent. Certain products are subject to the terms and
conditions of the Limited Warranties which can be viewed at http://www.xilinx.com/warranty.htm
; IP cores may be subject to warranty and
support terms contained in a license issued to you by Xilinx. Xilinx products are not designed or intended to be fail-safe or for use in any
application requiring fail-safe performance; you assume sole risk and liability for use of Xilinx products in Critical Applications:
http://www.xilinx.com/warranty.htm#critapps
.
AUTOMOTIVE APPLICATIONS DISCLAIMER
XILINX PRODUCTS ARE NOT DESIGNED OR INTENDED TO BE FAIL-SAFE, OR FOR USE IN ANY APPLICATION REQUIRING FAIL-
SAFE PERFORMANCE, SUCH AS APPLICATIONS RELATED TO: (I) THE DEPLOYMENT OF AIRBAGS, (II) CONTROL OF A VEHICLE,
UNLESS THERE IS A FAIL-SAFE OR REDUNDANCY FEATURE (WHICH DOES NOT INCLUDE USE OF SOFTWARE IN THE XILINX
DEVICE TO IMPLEMENT THE REDUNDANCY) AND A WARNING SIGNAL UPON FAILURE TO THE OPERATOR, OR (III) USES THAT
COULD LEAD TO DEATH OR PERSONAL INJURY. CUSTOMER ASSUMES THE SOLE RISK AND LIABILITY OF ANY USE OF XILINX
PRODUCTS IN SUCH APPLICATIONS.
© Copyright 2011–2012 Xilinx, Inc. XILINX, the Xilinx logo, Virtex, Kintex, Zynq, Artix, Spartan, ISE, and other designated brands included
herein are trademarks of Xilinx in the United States and other countries. All other trademarks are the property of their respective owners.
Revision History
The following table shows the revision history for this document.
Date Version Revision
03/01/11 1.0 Initial Xilinx release.
03/28/11 1.1 Updated disclaimer and copyright on page 2.
Updated values in Table 2-1, descriptions in Table 2-3, and values in Table 2-4. Modified
discussions in Almost Empty Flag, Full Flag, and Almost Full Flag sections. Updated
values in Table 2-7 and Table 2-8. Revised Figure 2-6. Revised discussion of clock event
2 and clock event 4 on page 57. Updated Case 3: Reading from a Full FIFO including
Figure 2-8.
04/14/11 1.2 Added 7 Series FPGAs Block RAM and FIFO Differences from Previous FPGA
Generations. Added Table 1-2: Block RAM Resources in 7 Series Devices. Clarified valid
values for Read Width - READ_WIDTH_[A|B] and Write Width -
WRITE_WIDTH_[A|B] Updated the example in Block RAM Location Constraints.
Updated parameter names in Table 1-18.
Clarified the flag behavior in the Synchronous FIFO introduction. Revised the FIFO
Almost Full/Empty Flag Offset Range section including adding Note 1 to Table 2-8,
removing Equation 2-1 and revising Equation 2-2 to be the new Equation 2-1.
Updated port connection instructions for WEBWE[7:0].
10/18/11 1.3 Added Stacked Silicon Interconnect. Added Artix-7 and Virtex-7 families to Table 1-2
and updated table notes.
11/18/11 1.4 Updated second bullet in Changes from Virtex-6 FPGAs.
UG473 (v1.7) October 2, 2012 www.xilinx.com 7 Series FPGAs Memory Resources
01/30/12 1.5 In Table 1-2, removed XC7A8, XC7A15, XC7A30T, and XC7A50T; updated number of
36 Kb block RAM blocks per column for XC7K420T and XC7VX550T; updated note 1 to
say “GTP/GTX Quad.”
Updated Simple Dual-Port Block RAM.
07/04/12 1.6 Updated fifth and sixth bullets in Changes from Virtex-6 FPGAs.
Added Virtex-7 devices to Table 1-2. Updated descriptions of RAMB36E1, RAMB18E1,
and FIFO18E1 in Table 1-6.
Updated description of WREN in Table 2-3. In Table 2-9, replaced T
RCCK_RST
/T
RCKC_RST
with T
RREC_RST
/T
RREM_RST
.
10/02/12 1.7 Removed XC7A350T, XC7V1500T, and XC7VH290T from Table 1-2.
Date Version Revision
7 Series FPGAs Memory Resources www.xilinx.com 5
UG473 (v1.7) October 2, 2012
Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Preface: About This Guide
Guide Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
7 Series FPGAs Block RAM and FIFO Differences from Previous FPGA Generations 9
Changes from Virtex-6 FPGAs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Changes from Spartan-6 FPGAs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Additional Support Resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Chapter 1: Block RAM Resources
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Block RAM Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Synchronous Dual-Port and Single-Port RAMs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Data Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Read Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Write Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Write Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
WRITE_FIRST or Transparent Mode (Default). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
READ_FIRST or Read-Before-Write Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
NO_CHANGE Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Conflict Avoidance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Asynchronous Clocking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Synchronous Clocking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Additional Block RAM Features in 7 Series Devices . . . . . . . . . . . . . . . . . . . . . . . . . 19
Optional Output Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Independent Read and Write Port Width Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Simple Dual-Port Block RAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Cascadable Block RAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Byte-Wide Write Enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Block RAM Error Correction Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Power Gating of Unused Block RAMs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Block RAM Library Primitives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Block RAM Port Signals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Clock - CLKARDCLK and CLKBWRCLK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Enable - ENARDEN and ENBWREN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Byte-Wide Write Enable - WEA and WEBWE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Register Enable - REGCEA, REGCE, and REGCEB . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Set/Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
RSTREGARSTREG, RSTREGB, RSTRAMARSTRAM, and RSTRAMB. . . . . . . . . . . . . . 27
Address Bus - ADDRARDADDR and ADDRBWRADDR . . . . . . . . . . . . . . . . . . . . . . 27
Data-In Buses - DIADI, DIPADIP, DIBDI, and DIPBDIP. . . . . . . . . . . . . . . . . . . . . . . . 29
Data-Out Buses - DOADO, DOPADOP, DOBDO, and DOPBDOP . . . . . . . . . . . . . . . 29
Cascade In . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
CASCADEINA, CASCADEINB, CASCADEOUTA, and CASCADEOUTB . . . . . . . . . . 29
Inverting Control Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Table of Contents