Syntax Summary

constraint_file            ::= constraint_statements

constraint_statements   ::= {constraint_statement}

constraint_statement    ::=       critical_port_statement

                                       | dont_fix_statement

                                       | dont_optimize_statement

                                       | dont_touch_statement

                                       | empty_io_statement

                                       | empty_location_statement

                                       | initial_location_statement

                                       | io_statement

                                       | jtag_statement

                                       | location_statement

                                       | macro_define_statement

                                       | max_fanout_statement

                                       | net_criticality_statement

                                       | net_critical_ports_statement

                                       | net_delay_statement

                                       | optimize_statement

                                       | path_delay_statement

                                       | read_statement

                                       | timing_fanout_statement

create_clock_statement   :: CREATE_CLOCK -PERIOD POSFLOAT {net_name|port_name}

critical_port_statement    ::= SET_CRITICAL_PORT criticality_number hier_inst_names;

dont_fix_statement   ::= DONT_FIX_GLOBALS;

dont_optimize_statement   :=DONT_OPTIMIZE [{buffer inverter clocktree resettree const dangling}];

dont_touch_statement   ::= DONT_TOUCH hier_net_names;

empty_io_statement   ::= SET_EMPTY_IO pad_location_defs;

empty_location_statement   ::= SET_EMPTY_LOCATION location_def;

   SET_EMPTY_LOCATION location_region;

generate_paths_statement   ::= GENERATE_PATHS [-COVER_DESIGN] [-TOP POSNUMBER] [-MAX_PATHS POSNUMBER];

global_net_statement   ::= {SET_GLOBAL | SET_NOGLOBAL} hier_net_names;

initial_io_statement   ::= SET_INITIAL_IO io_location_def io_port_names;

initial_location_statement   ::= SET_INITIAL_LOCATION location_def hier_inst_names;

   | SET_INITIAL_LOCATION location_def hier_subdesign_inst_name macro_name [transformations];

io_statement   ::= SET_IO io_location_def io_port_names;

location_statement   ::= SET_LOCATION location_def hier_inst_name;

   | SET_LOCATION location_region hier_name_wildcard;   

   | SET_LOCATION location_def hier_subdesign_inst_name macro_name [transformations];

macro_define_statement   ::= MACRO macro_name macro_location_def {macro_statements}

macro_statements   ::= {macro_statement}

macro_statement   ::= SET_LOCATION location_def hier_inst_name;

   | SET_INITIAL_LOCATION location_def hier_inst_name;

   | SET_EMPTY_LOCATION location_def;

max_fanout_statement   ::= SET_MAX_FANOUT POSNUMBER;

net_criticality_statement   ::= SET_CRITICAL criticality_number hier_net_names;

net_critical_ports_statement   ::= NET_CRITICAL_PORTS hier_net_name critical_ports;

optimize_statement   ::=OPTIMIZE [{buffer inverter resettree clocktree const dangling}];

path_delay_statement   ::= SET_MAX_PATH_DELAY delay_value delay_path;

read_statement   ::= READ [-FORMAT format] [-ECO] file;

set_false_path_statement   ::= SET_FALSE_PATH [-FROM portname]

   [-THROUGH portname] [-TO portname]

set_input_to_register_delay_statement ::= SET_INPUT_TO_REGISTER_DELAY delay_value [-FROM port_name];

set_multicycle_path_statement ::= SET_MULTICYCLE_PATH num_cycles [-FROM port_name] [-TO port_name] [-THROUGH port_name];

set_register_to_output_delay_statement ::= SET_REGISTER_TO_OUTPUT_DELAY delay_value [-TO port_name]

set_default_swtich_threshold_statement ::= SET_DEFAULT_SWITCH_THRESHOLD POSNUMBER;

 

set_swtich_threshold_statement ::= SET_SWITCH_THRESHOLD POSNUMBER hier_net_name;

use_global_statement     ::= USE_GLOBAL global_region hier_net_name;

criticality_number   ::= POSNUMBER

critical_ports   ::= instance_port_name [ , instance_port_name]

delay_path   ::= instance_port_name [, instance_port_name]

delay_value   ::= POSFLOAT

file   ::= FILEIDENTIFIER

global_region   ::= T1 to T<n> | B1 to B<n>

format   ::= SDF | GF

hier_inst_name   ::= QPATH

hier_inst_names   ::= hier_inst_name [, hier_inst_name]

hier_net_name   ::= QPATH

hier_net_names   ::= hier_net_name [, hier_net_name]

hier_subdesign_inst_name   ::= QPATH

instance_port_name   ::= hier_inst_name.port_name

io_location_def   ::= side  |  pad_location | package_pin

io_port_names   ::= io_port_name [, io_port_name]

io_port_name   ::= IDENTIFIER

location_def   ::= (x, y )   

location_region   ::= (x1, y1 x2, y2)

transformation   ::= flip lr      

   | flip ud

   | rotate 90 cw

   | rotate 180 cw

   | rotate 270 cw

   | rotate 90 ccw

   | rotate 180 ccw

   | rotate 270 ccw

macro_location_def      ::= (x1, y1 x2, y2)

macro_name   ::= IDENTIFIER

offset   ::= POSNUMBER

package_pin   ::= IDENTIFIER

pad_location_defs   ::= pad_location_def [ , pad_location_def ]

pad_location_def   ::= package_pin | pad_location

pad_location   ::= ( side , offset )

port_name   ::= IDENTIFIER

side   ::= N | S | E | W

transformations   ::= transformation

           | transformation transformations

xgrid   ::= POSNUMBER

ygrid   ::= POSNUMBER