Answers Database


Foundation Express: Attribute passing is available beginning with version 3.0


Record #4392

Product Family: Software

Product Line: Synopsys

Product Part: FPGA Express

Product Version: 3.0

Problem Title:
Foundation Express: Attribute passing is available beginning with version 3.0


Problem Description:
Urgency: Standard

General Description:
As of FPGA Express 3.0, attributes may be inserted in the HDL code to be passed on to the resulting netlist. These attributes can have any name or value, but they can only be applied to instantiated components or nets (but not inferred logic or ports). Earlier versions of Express do not support any attribute passing.

The version of Foundation Express that is included with F1.5i Service Pack 1 (FPGA Express 3.1) supports attribute passing.

Use the following syntax to place an attribute in your HDL:


Solution 1:

Verilog:

//synopsys attribute <name> <value>

This comment is placed immediately after the instantiated component

example:

BUFG CLOCKB (.I(oscout), .O(clkint)); //synopsys attribute LOC "BR"


If multiple attributes need to be applied to the same component, use
multi-line comments, like so:


RAMB4_S4 U1 (.WE(w), .EN(en), .RST(r), .CLK(ck), .ADDR(ad), .DI(di), .DO(do));
/* synopsys attribute INIT_00 "AAAAAAAAAAAAAAAABBBBBBBBBBBBBBBB"
INIT_09 "99999988888888887777777776666666" */




Solution 2:

VHDL:

place the following in the architecture before the "begin" keyword:

attribute <name> : string;
attribute <name> of <instance> : label is <value>;

The second attribute is applied to the instance name of an instantiation.
If applying an attribute to a signal instead of a component, replace "label" with "signal".

example:

attribute LOC: string;
attribute LOC of CLOCKBUF: label is "BR";
...
CLOCKBUF:BUFG port map(I=>oscout,O=>clkint);


If multiple attributes need to be applied to the same component, simply
create two lines for each attribute:


attribute INIT_00: string;
attribute INIT_00 of MY_BLKRAM: label is "AAAAAAAAAAAAAAAA";
attribute INIT_09: string;
attribute INIT_09 of MY_BLKRAM: label is "9999998888888888";
...

MY_BLKRAM : RAMB4_S4 port map (
      addr => ADDRTWO,
      di => DINTWO,
      clk => CLK,
      we => WETWO,
      en => ENTWO,
      rst => RST,
      do => DOUTTWO);





End of Record #4392 - Last Modified: 10/29/99 09:22

For the latest news, design tips, and patch information on the Xilinx design environment, check out the Technical Tips!