UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 29904

9.2 System Generator for DSP - What types of timing constraints are automatically created by System Generator for DSP when generating the HDL Netlist?

Description

Keywords: SysGen, constraints, From/To, CE, group-to-group

What types of constraints are automatically created by System Generator for DSP when generating the HDL Netlist? Is it possible that constrains my be created that are not used or are empty?

Solution

When System Generator for DSP generates the HDL Netlist for a model it creates a file called modelname_cw.xcf. This is the synthesis constraints file used by XST. These constraints are then passed on to the implementation tools via the netlist.

System Generator will write out several different timing constraints automatically depending on your design.

First System Generator for DSP will always write out a single Global period constraint. For models that contain additional clock domains, a multi-cycle FROM/TO constraint will be written out for each additional sample rate domain, FROM all elements a given CE drives TO all elements that same CE drives.

In addition to the multi-cycle FROM/TO timing constraints, cross-clock domain, group-to-group constraints will also be written. System Generator for DSP writes out constraints for all possible combinations between each CE time group. It is possible that there may be many more FROM/TO or Group-to-group constraints listed than are actually used in the design. The constraints that are not being used will be empty during timing analysis in PAR.

Here is an Example:
# Global period constraint
NET "clk" TNM_NET = "clk_b97b17b0";
TIMESPEC "TS_clk_b97b17b0" = PERIOD "clk_b97b17b0" 50.0 ns HIGH 50 %;

# ce_2_b97b17b0_group and inner group constraint
Net "ce_2_sg_x0*" TNM_NET = "ce_2_b97b17b0_group";
TIMESPEC "TS_ce_2_b97b17b0_group_to_ce_2_b97b17b0_group" = FROM "ce_2_b97b17b0_group" TO "ce_2_b97b17b0_group" 100.0 ns;

# ce_40_b97b17b0_group and inner group constraint
Net "ce_40_sg_x0*" TNM_NET = "ce_40_b97b17b0_group";
TIMESPEC "TS_ce_40_b97b17b0_group_to_ce_40_b97b17b0_group" = FROM "ce_40_b97b17b0_group" TO "ce_40_b97b17b0_group" 2.0 us;

# Group-to-group constraints
TIMESPEC "TS_ce_2_b97b17b0_group_to_ce_40_b97b17b0_group" = FROM "ce_2_b97b17b0_group" TO "ce_40_b97b17b0_group" 100.0 ns;
TIMESPEC "TS_ce_40_b97b17b0_group_to_ce_2_b97b17b0_group" = FROM "ce_40_b97b17b0_group" TO "ce_2_b97b17b0_group" 100.0 ns;

For further assistance regarding the constraints syntax, refer to the Development System Reference Guide and Constraints Guide in the Software Manuals.


AR# 29904
Date Created 12/05/2007
Last Updated 12/04/2007
Status Active
Type General Article