UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 10454

XST - Using the image attribute to define RPMs

Description

Keywords: VHDL, RLOC, image, synthesis, macro

Urgency: Standard

General Description:
The predefined image attribute is supported in XST. This attribute converts an integer value to a string, and it can be used to compute the value of the RLOC attribute.

Solution

The following example illustrates the creation of a register bank with RLOC constraints:

In the first entity, the generic placement of a single flip-flop is defined by an RLOC attribute. The RLOC value calculation is based on the generic values.

In the second entity, using a LOOP constraint, a number of flip-flops are instantiated. The placement of each instance is defined via generics.

Example

First Entity:

entity single_reg is
generic (row, col: integer:= 1;
slice: integer:= 0);
...
ATTRIBUTE RLOC OF u1: LABEL IS
"R" & integer'image (row_fun(row)) & "C" & integer'image(col) & ".S" & integer'image(slice);

-- Note that functions may be used to calculate values.
...
u1: FD port map (D=>D, C=>CLK, Q=>Q);

Second Entity:

entity reg_bank is
...
my_for: for i in 1 to 8 generate
u11: single_reg generic map (row=>i, col=>1, slice=>0)
port map (D=>D(i-1), CLK=>CLK, Q=>Q(i-1));
end generate;


XST Log File

Analyzing generic Entity <single_reg> (Architecture <struct>).
row = 1
col = 1
slice = 0
Set property "user_defined = RLOC R1C1.S0" for instance <u1> in unit <single_reg>.
...
Analyzing generic Entity <single_reg> (Architecture <struct>).
row = 2
col = 1
slice = 0
Set property "user_defined = RLOC R2C1.S0" for instance <u1> in unit <single_reg0>.
...

Resulting EDIF Netlist

(instance u111_u1 ... (cellref FD ... (property RLOC (string "R1C1.S0")))
(instance u112_u1 ... (cellref FD ... (property RLOC (string "R2C1.S0")))
(instance u113_u1 ... (cellref FD ... (property RLOC (string "R3C1.S0")))
...
(instance u118_u1 ... (cellref FD ... (property RLOC (string "R8C1.S0")))
AR# 10454
Date Created 08/29/2007
Last Updated 10/21/2008
Status Archive
Type General Article