![Xilinx Virtex-5 FPGA ML561 User Manual Download Page 114](http://html.mh-extra.com/html/xilinx/virtex-5-fpga-ml561/virtex-5-fpga-ml561_user-manual_887106114.webp)
114
Virtex-5 FPGA User Guide
UG190 (v5.0) June 19, 2009
Chapter 4:
Block RAM
•
All inputs are registered with the port clock and have a setup-to-clock timing
specification.
•
All outputs have a read function or a read-during-write function, depending on the
state of the write enable (WE) pin. The outputs are available after the clock-to-out
timing interval. The read-during-write outputs have one of three operating modes:
WRITE_FIRST, READ_FIRST, and NO_CHANGE.
•
A write operation requires one clock edge.
•
A read operation requires one clock edge.
•
All output ports are latched. The state of the output port does not change until the
port executes another read or write operation. The default block RAM output is latch
mode.
•
The output data path has an optional internal pipeline register. Using the register
mode is strongly recommended. This allows a higher clock rate, however, it adds a
clock cycle latency of one.
Virtex-5 FPGA block RAM usage rules:
•
The Synchronous Set/Reset (SSR) port cannot be used when the ECC decoder is
enabled (EN_ECC_READ = TRUE).
•
The setup time of the block RAM address and write enable pins must not be violated.
Violating the address setup time (even if write enable is Low) will corrupt the data
contents of the block RAM.
•
The block RAM register mode SSR requires REGCE = 1 to reset the output DO register
value. The block RAM array data output latch does not get reset in this mode. The
block RAM latch mode SSR requires the block RAM enable, EN = 1, to reset the
output DO latch value.
•
Although RAMB18SDP (x36 18k block RAM) and RAMB36SDP (x72 36k block RAM)
are simple dual-port primitives, the true dual-port primitives (RAMB18 and
RAMB36) can be used with one read-only port and one write-only port. For example:
a RAMB18s READ_WIDTH_A = 18, WRITE_WIDTH_B = 9, with WEA = 0 and
WEB = 1 is effectively a simple dual-port block RAM with a smaller port width
having been derived from the true dual-port primitive. Similarly, a ROM function can
be built out of either the true dual-port (RAMB18 or RAMB36) or the simple dual-port
block RAM primitives (RAMB18SDP or RAMB36SDP).
•
Different read and write port width choices are available when using specific block
RAM primitives. The parity bits are only available for the x9, x18, and x36 port
widths. The parity bits should not be used when the read width is x1, x2, or x4. If the
read width is x1, x2 or x4, the effective write width is x1, x2, x4, x8, x16, or x32.
Similarly, when a write width is x1, x2, or x4, the actual available read width is x1, x2,
x4, x8, x16, or x32 even though the primitive attribute is set to 1, 2, 4, 9, 18, or 36
respectively.
shows some possible scenarios.
Table 4-1:
Parity Use Sceneries
Primitive
Settings
Effective Read Width Effective Write Width
Read Width
Write Width
RAMB18
1, 2, or 4
9 or 18
Same as setting
8 or 16
RAMB18
9 or 18
1, 2, or 4
8 or 16
Same as setting
RAMB18
1, 2, or 4
1, 2, or 4
Same as setting
Same as setting
RAMB18
9 or 18
9 or 18
Same as setting
Same as setting
Summary of Contents for Virtex-5 FPGA ML561
Page 1: ...Virtex 5 FPGA User Guide UG190 v5 0 June 19 2009 ...
Page 8: ...Virtex 5 FPGA User Guide www xilinx com UG190 v5 0 June 19 2009 ...
Page 20: ...20 www xilinx com Virtex 5 FPGA User Guide UG190 v5 0 June 19 2009 ...
Page 24: ...24 www xilinx com Virtex 5 FPGA User Guide UG190 v5 0 June 19 2009 Preface About This Guide ...
Page 172: ...172 www xilinx com Virtex 5 FPGA User Guide UG190 v5 0 June 19 2009 Chapter 4 Block RAM ...