set_dont_touch

NAME
         set_dont_touch
                    Sets   the   dont_touch   attribute   on   cells,   nets, designs, and
                    library cells to prevent synthesis from replacing   or   modifying
                    them during optimization.

SYNTAX
         string set_dont_touch
                    object_list [value]

         list object_list
         Boolean    value

ARGUMENTS
         object_list
                    Specifies   a   list   of cells, nets, designs, or library cells on
                    which to place the dont_touch attribute.

         value   Specifies the value with which to set the dont_touch   attribute.
                    Allowed values are true (the default) or false.

DESCRIPTION
         Sets   the dont_touch attribute on cells and nets in the current design,
         or on designs and library cells, to prevent these   objects   from   being
         modified or replaced by Design Compiler during optimization.

         This   attribute   is   characterized by the characterize_context and cre-
         ate_timing_context   commands, and is exported to   synthesis   using   the
         write_context command.

         When the dont_touch attribute on a design or library cell is written to
         scripts, the target objects vary based on the script format.   A   design
         dont_touch   is applied to a design for PrimeTime and to a reference for
         Design Compiler.   Similarly, a library cell dont_touch is applied to   a
         lib_cell   for PrimeTime, and to a reference for Design Compiler. For an
         example, see the EXAMPLES section.

         If a dont_touch attribute is on a design that is removed, the attribute
         continues   to   apply   to   any cells that were instances of that design,
         until the next time the current design is linked.

         The dont_touch attribute on cells, nets, and designs is   imported   from
         db files.

         For   a complete description of the dont_touch attribute and its effect,
         see the man page of the set_dont_touch command in Design Compiler.

   Inheritance
         The dont_touch attribute is inherited   by   cells   if   the   cell   is   an
         instance of a design or library cell that has the dont_touch attribute.
         In these cases, get_attribute returns true for the dont_touch attribute
         for   that   cell.   This affects the result of get_attribute but does not
         actually transfer the dont_touch attribute to the cell, so   the   output
         of   write_script does not contain extra set_dont_touch commands applied
         to cells.   For examples, see the EXAMPLES section.

   Limitations
         Currently, if your database   contains   a   dont_touch   attribute   on   an
         object,   and   you explicitly use set_dont_touch to remove the attribute
         by   setting   the   value   to   false   for   that   object,   the   output   of
         write_script   is   inaccurate   because   this information is not written.
         This limitation will be addressed in an upcoming release.

EXAMPLES
         The following commands specify not to modify the "block1" and "analog1"
         cells during synthesis, but allow the net "N1" to be modified.

                 pt_shell> set_dont_touch [get_cells {block1 analog1}]
                 1
                 pt_shell> set_dont_touch   [get_nets N1] false
                 1

         In   the following example, applying a dont_touch attribute to design d1
         affects   its   instances   in   that   get_attribute    returns    true    for
         dont_touch.    Note   the difference in write_script output for PrimeTime
         and Design Compiler.   Note that write_script output is excerpted.

                 pt_shell> get_attribute [get_cells u1] ref_name
                 d1
                 pt_shell> get_attribute [get_cells u1] dont_touch
                 false
                 pt_shell> set_dont_touch [get_designs d1]
                 1
                 pt_shell> get_attribute [get_cells u1] dont_touch
                 true
                 pt_shell> write_script
                 set_dont_touch [get_designs "design1.db:d1"]
                 pt_shell> write_script -format dcsh
                 set_dont_touch find(reference, "d1")
                 pt_shell>

SEE ALSO
         characterize_context (2), create_timing_context (2), get_attribute (2),
         set_dont_touch_network (2), write_context (2), write_script (2).