EasyManuals Logo

Xilinx virtex-5 fpga User Manual

Xilinx virtex-5 fpga
385 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Page #131 background imageLoading...
Page #131 background image
Virtex-5 FPGA User Guide www.xilinx.com 131
UG190 (v5.0) June 19, 2009
Block RAM Initialization in VHDL or Verilog Code
Block RAM Location Constraints
Block RAM instances can have LOC properties attached to them to constrain placement.
Block RAM placement locations differ from the convention used for naming CLB locations,
allowing LOC properties to transfer easily from array to array.
The LOC properties use the following form:
LOC = RAMB36_X#Y#
The RAMB36_X0Y0 is the bottom-left block RAM location on the device. If RAMB36 is
constrained to RAMB36_X#Y#, the FIFO cannot be constrained to FIFO36_X#Y# since they
share a location.
Two RAMB18s can be placed in the same RAMB36 location by using the BEL
UPPER/LOWER constraint:
inst ”my_ramb18” LOC = RAMB36_X0Y0 | BEL = UPPER
inst ”my_ramb18” LOC = RAMB36_X0Y0 | BEL = LOWER
In addition, one FIFO18 and one RAMB16 can be placed in the same RAMB36 location, no
BEL constraint is required:
inst ”my_fifo18” LOC = RAMB36_X0Y0
inst ”my_ramb18” LOC = RAMB36_X0Y0
Block RAM Initialization in VHDL or Verilog Code
Block RAM memory attributes and content can be initialized in VHDL or Verilog code for
both synthesis and simulation by using generic maps (VHDL) or defparams (Verilog)
within the instantiated component. Modifying the values of the generic map or defparam
will effect both the simulation behavior and the implemented synthesis results. The
Virtex-5 FPGA Libraries Guide includes the code to instantiate the RAMB36 primitive.
Additional RAMB18 and RAMB36 Primitive Design Considerations
The RAMB18 and RAMB36 primitives are integral in the Virtex-5 FPGA block RAM
solution.
Optional Output Registers
Optional output registers can be used at either or both A|B output ports of RAMB18 and
RAMB36. The choice is made using the DO[A|B]_REG attribute. The two independent
clock enable pins are REGCE[A|B]. When using the optional output registers at port
[A|B], assertion of the synchronous set/reset (SSR) pin of ports [A|B] causes the value
specified by the attribute SRVAL to be registered at the output. Figure 4-5 shows an
optional output register.
Independent Read and Write Port Width
To specify the port widths using the dual-port mode of the block RAM, designers must use
the READ_WIDTH_[A|B] and WRITE_WIDTH_[A|B] attributes. The following rules
should be considered:
Designing a single port block RAM requires the port pair widths of one write and one
read to be set (e.g., READ_WIDTH_A and WRITE_WIDTH_A).
Designing a dual-port block RAM requires all port widths to be set.

Table of Contents

Questions and Answers:

Question and Answer IconNeed help?

Do you have a question about the Xilinx virtex-5 fpga and is the answer not in the manual?

Xilinx virtex-5 fpga Specifications

General IconGeneral
BrandXilinx
Modelvirtex-5 fpga
CategoryComputer Hardware
LanguageEnglish

Related product manuals