Logic Optimization - 2023.1 English

Vivado Design Suite User Guide: Implementation (UG904)

Document ID
UG904
Release Date
2023-05-16
Version
2023.1 English

Logic optimization ensures the most efficient logic design before attempting placement. It performs a netlist connectivity check to warn of potential design problems such as nets with multiple drivers and un-driven inputs. Logic optimization also performs block RAM power optimization.

Often design connectivity errors are propagated to the logic optimization step where the flow fails. It is important to ensure valid connectivity using DRC Reports before running implementation.

Logic optimization skips optimization of cells and nets that have DONT_TOUCH properties set to a value of TRUE. Logic optimization also skips optimization of design objects that have directly applied timing constraints and exceptions. This prevents constraints from being lost when their target objects are optimized away from the design. Logic optimization also skips optimization of design objects that have physical constraints such as LOC, Bel, RLOC, LUTNM HLUTNM ASYNC_REG, and LOCK_PINS. An Info message at the end of each optimization stage provides a summary of the number of optimizations prevented due to constraints. Specific messages about which constraint prevented which optimizations can be generated with the -debug_log switch.

The Tcl command used to run Logic Optimization is opt_design.