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 |