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# 6431

FPGA Express 3.3: The "dont_touch" attribute is now available

Description

Keywords: FPGA, Express, Foundation, keep, signal, preserve, attribute, dont_touch

Urgency: Standard

General Description:
FPGA Express 3.3 now includes support for the Synopsys compiler directive "dont_touch".
This attribute can be set on a module/entity or instantiated cells and will prevent that portion
of the design from being changed during synthesis and optimization. The attribute cannot
be applied to signals.

NOTE: This attribute only applies to optimization done during synthesis. This attribute is
not passed on to the place and route tools.

There are three ways to set the attribute:

Solution

1

Set the dont_touch via the FPGA Express Constraints Editor

Right click on the pre-optimized structure and select Edit Constraints. Under the Modules tab,
you will see a column titled "Dont Touch" There are few settings to select from:

TRUE = don't optimize this instance
FALSE = optimize this instance (default)
INHERIT = this instance takes the setting of the module/entity above it

"all instances" is used when applying an attribute to a module/entity. All instances below that
module/entity will receive that particular attribute.

2

Set the dont_touch attribute directly in the HDL code.

Add this Verilog comment immediately following a module declaration or cell instantiation:


/* synopsys attribute fpga_dont_touch "true" */



-or-

Add this VHDL attribute declaration in the architecture before the "begin" keyword:


attribute fpga_dont_touch : string;
attribute fpga_dont_touch of <instance> : label is "true";


where <instance> represents a cell instantiation.

See (Xilinx Solution 4392) for more information about attribute passing in FPGA Express.

3

Set the dont_touch attribute in the fe_shell TCL script.

set_module_fpga_dont_touch <option> [-all] <module_list>

<option> can be TRUE, FALSE, or INHERIT

[-all] implies that the option is set to all instances of the "module" in <module_list>

For example:

set_module_fpga_dont_touch true -all top/U1
AR# 6431
Date Created 05/10/1999
Last Updated 08/11/2003
Status Archive
Type General Article