Replacing all_registers Queries - Replacing all_registers Queries - 2026.1 English - UG903

Vivado Design Suite User Guide: Using Constraints (UG903)

Document ID
UG903
Release Date
2026-07-01
Version
2026.1 English

The following are additional query recommendations:

  • Avoid using all_registers whenever possible. This command often returns large collections of objects, which can impact performance. Replace it with get_cells or get_pins using specific name patterns to limit the scope of the query.
  • Use clock objects instead of all_registers -clock when gathering all sequential elements in a clock domain. This provides equivalent coverage and is far more efficient. For example, use the first optimal command instead of the one that follows:
    set_multicycle_path –from [all_inputs] –to [get_clocks clk1]
    set_multicycle_path –from [all_inputs] –to [all_registers –clock clk1]

    Referencing a single clock object avoids listing potentially hundreds of thousands of sequential elements.

Important: Starting with Vivado Design Suite 2018.3, all_registers returns only primitives with at least one enabled Setup/Hold/Recovery/Removal timing arc and a CLK→Q timing arc. Buffer elements such as BUFGCE and BUFGCE_DIV are no longer returned by all_registers.