TMC-20027: Collection Filter Matching Multiple Types

Description

Violations of this rule identify collections created from a bare string filter and that match multiple possible object types. Such collections have their types automatically deduced, but the type may be unexpected. This can occur if different entities share the same name, or if a wildcard can be broadly matched with multiple objects.

For example, a design that has a port named clk, and a clock has its name inherited from the port also named clk. set_false_path -from clk can either match the port clk or the clock clk. The software automatically picks one, but might not be intended. If you want to set a false path from the port clk, use the command set_false_path -from [get_ports {clk}] instead.

Note that this violation does not apply to using a raw * as the argument of a -from/to search filter. Doing so is permissible, as it is equivalent to specifying no -from/to argument at all, and thus does not suffer from any ambiguity of which targets to match.

Recommendation

For any bare string filter (other than a raw *) that matches multiple object types, specify the type of objects to match by wrapping the filter in a get_ command.

Severity

High

Tags

Tag Description
sdc Design rule checks related to SDC validity checking.

Device Family

  • Intel®Cyclone® 10 GX
  • Intel®Arria® 10
  • Intel®Stratix® 10
  • Intel®Agilex™