Quartus® Prime Pro Edition User Guide: Timing Analyzer

ID 683243
Date 9/30/2024
Public
Document Table of Contents

2.3.5.1. Using Entity-Based SDC-on-RTL Constraints

A typical design includes a combination of third-party IPs and actively evolving RTL components. You can use entity-based SDC-on-RTL constraints to define precise timing constraints at module boundaries, helping to ensure the seamless integration of IP and constraints. Entity-based SDC-on-RTL constraints allow IP authors to encapsulate the SDC constraints for their IP.

Conventional SDC timing constraints generally apply globally throughout a design, rather than to specific entities. However, proper encapsulation of IP SDCs allows you to use the IP without encountering unexpected SDC leaks. Entity binding prefixes filters with the full path name of each IP, effectively limiting the scope of the SDC constraints. This entity binding effectively prevents any SDC leaks and any potential impact on design paths with a matching name.

IP authors can optimize these constraints for post-synthesis Early Timing Analysis within the context IP instantiation in the design hierarchy. Even if an IP author does not know where the IPs are instantiated yet, the constraints remain effective. This approach allows IP authors to implement SDC constraints without requiring detailed information about the eventual placement of the IP within the design hierarchy.

The Compiler reads entity-based SDC-on-RTL constraints in designs and IP cores during Analysis & Elaboration. The Compiler preserves the constraints in a low-level entity database. The Compiler processes these constraints in the SDC read-in order and applies the constraints to the hierarchical netlist objects during compilation.

QSF Assignment Syntax

set_instance_assignment -name RTL_SDC_FILE <sdc_file_name> \
   -entity <entity_name> [-no_sdc_promotion]

Where:

Argument Description
RTL_SDC_FILE Specifies the SDC-on-RTL file name.
-entity Specifies an entity-based assignment. The SDC file applies to each instance of the design entity. The instance hierarchy path implicitly applies to the pattern argument search for dni::get_* (get_cells, get_pins, get_ports, and get_nets) commands.
[-no_sdc_promotion] An optional argument that requires the -entity flag. For entity-based constraints, the [-no_sdc_promotion] argument removes the default behavior of the instance hierarchy path being the default implicit with the netlist search commands. This argument specifies which individual command to apply the instance hierarchy path in the netlist object search. Use the get_entity_current_instance Tcl command to obtain the current instance hierarchy path of the entity. For example:
set_false_path -from [get_pins [get_entity_current_instance]|ff_src|clk] \
-to [get_pins [get_entity_current_instance]|ff_dst|d]]