Answers Database


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


Record #6431

Product Family: Software

Product Line: Synopsys

Product Part: FPGA Express

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


Problem Description:
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.



Solution 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.



Solution 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




End of Record #6431 - Last Modified: 12/14/99 13:53

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