set_data_check - 2023.1 English

Vivado Design Suite Tcl Command Reference Guide (UG835)

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

Create data to data checks

Syntax

set_data_check [‑from <args>] [‑to <args>] [‑rise_from <args>]
    [‑fall_from <args>] [‑rise_to <args>] [‑fall_to <args>] [‑setup]
    [‑hold] [‑clock <args>] [‑quiet] [‑verbose] <value>

Usage

Name Description
[-from] From pin/port of data to data check
[-to] To pin/port of the data to data check
[-rise_from] Rise from pin/port of data to data check
[-fall_from] Fall from pin/port of data to data check
[-rise_to] Rise to pin/port of data to data check
[-fall_to] Fall to pin/port of data to data check
[-setup] Specify data check setup time
[-hold] Specify data check hold time
[-clock] Specify the clock domain at related pin/port of the checks
[-quiet] Ignore command errors
[-verbose] Suspend message limits during command execution
<value> Setup or hold time of the defined checks

Categories

SDC, XDC

Description

Performs a setup and hold check for a data pin with respect to another data pin. This is different from a conventional setup and hold check that is done with respect to a clock pin.

This command defines min and max requirements between two endpoints, similar to setup (max) and hold (min) timing checks. Setup and hold checks are referenced from the related pin, specified by -from, to the constrained pin, specified by -to. The related pin is similar to the clock pin in a conventional setup and hold check. The timing analysis compares arrival times between the two specified endpoints. The difference must be less than the set_data_check <value> requirement in order to meet timing.

Limitations of the set_data_check command include:

  • Variations in the destination clock delay are ignored.
  • This command is used for timing purposes only, and is not considered by the Vivado® placer or router.
Note: This command returns nothing if successful, or returns an error if it fails.

Arguments

-from <value> - (Optional) Data-to-data check for the specified pin or port. The -from argument specifies the related pin.

-to <value> - (Optional) Data-to-data check for the specified pin or port. The -to argument specifies the constrained pin

-rise_from <value> - (Optional) Data-to-data check from the rising edge of the specified data pin or port. The -rise_from argument specifies the related pin.

-fall_from <value> - (Optional) Data-to-data check from the falling edge of the specified data pin or port. The -fall_from argument specifies the related pin.

-rise_to <value> - (Optional) Data-to-data check to the rising edge of the specified data pin or port. The -rise_to argument specifies the constrained pin.

-fall_to <value> - (Optional) Data-to-data check to the falling edge of the specified data pin or port. The -fall_to argument specifies the constrained pin.

-setup <value> - (Optional) Perform only the setup data check. The default is to perform both setup and hold checks.

-hold <value> - (Optional) Perform the hold data check. The default is to perform both setup and hold checks.

-clock <value> - (Optional) Specify the clock domain at the related pin or port of the checks.

-quiet - (Optional) Execute the command quietly, returning no messages from the command. The command also returns TCL_OK regardless of any errors encountered during execution.
Note: Any errors encountered on the command-line, while launching the command, will be returned. Only errors occurring inside the command will be trapped.
-verbose - (Optional) Temporarily override any message limits and return all messages from this command.
Note: Message limits can be defined with the set_msg_config command.

<value> - (Required) The setup or hold time specified in nanoseconds (ns) for the defined data checks.

Examples

The following example defines a data check for a setup violation from pin A_IN to pin C_IN:

set_data_check -from A_IN -to C_IN -setup 2.0
In the above example, A_IN is the related pin and C_IN is the constrained pin. The above constraint would do a setup check of C_IN with respect to A_IN. The data at C_IN should arrive 2.0 ns prior to the edge of A_IN.