Constraints

In this article we shall discuss about the different constraints we give for a block.

1) Creating clocks and defining clock groups if necessary.

func clocks, test clocks, any generated clocks. create_clock -name <> -period <> -waveform {} [get_pins ] set_clock_groups -name “ “ -async -group

2) Timing exceptions like false paths or multi cycle paths.

set false paths for cross clocks and multi cycle paths

3) group_path to give cost func

4) Port delays. Timing constraints applied on input and output ports.
set_input_delay -clock [] -add_delay -max_delay [get_ports ] we give both max delay and min delay set output delay we give both max delay and min delay

set_driving_cell -lib_cell <> -library <> -pin ZN [get_ports ] set_load <> [get_ports ]

both set_driving_cell and set_load if not given the input and output ports assume infinite drive strength.

5) max cap, max fanout , set case analysis, max leakage power

6) set_ideal_network and ideal nets, set_dont_touch, set_dont_use true [get_lib_cells ]

7) set_clock_uncertainty -setup <> [get_clocks ], set_max_time_borrow <> [get_clocks ], set_clock_latency -clock_gate <> [get_pins ]

Written on January 17, 2021