Академический Документы
Профессиональный Документы
Культура Документы
Beginning with the G-2012.09 release, the Synopsys Synplify family of FPGA synthesis tools
uses a new consolidated scheme for handling constraints. This document reviews the different
formats used in the past, as well as the new approach to defining constraints with a single
consolidated file.
2
FDC and SDC Timing Constraints
3
FDC and SDC Timing Constraints
Sharing of the same ASIC-style timing constraints across FPGA and ASIC tools.
Easier prototyping of ASIC designs as FPGAs.
Vendor support, starting with Altera TimeQuest in Quartus and Xilinx Vivado for Virtex-7
devices.
After running the sdc2fdc command to generate an fdc file, use the SCOPE editor or a text file
editor to check the translated constraints and edit as needed. See Migrating Existing
Constraints to FDC, on page 5 for details.
4
FDC and SDC Timing Constraints
FDC constraints include timing and non-timing design constraints. The timing constraints are
a subset of the Synopsys standard timing constraints, along with some FPGA-specific extensions. The FDC non-timing design constraints are the same as the legacy Synplify-style design
constraints. This table summarizes the syntax formats used in the fdc file:
Timing Constraints
set_false_path...
The fdc file has a Tcl section and other sections that match the tabs in the SCOPE editor (see
FDC SCOPE Tabs, on page 11). The SCOPE sections are enclosed in Begin and End statements
that you can see if you open the file in a text editor. Translated constraints in the SCOPE
sections can be viewed and worked with in the corresponding tabs of the SCOPE editor. You
can also work with them in a text editor.
Anything that is not enclosed in Begin and End statements is part of the Tcl section and can be
viewed and worked with in the Tcl View tab of the SCOPE editor. This section includes
constraints that could not be translated or ones that need advanced constraining. This section
also includes -disabled constraints from the original sdc files.
5
FDC and SDC Timing Constraints
6
FDC and SDC Timing Constraints
The command translates all valid enabled sdc files for the specified project and puts the
results into an fdc file called <design>_translated.fdc, located in the newly-created
<project_dir>/FDC_constraints/<impl_name> directory.
If your design has compile points, the command creates a separate fdc file for each compile
point. All constraints might not be translated. It is up to you to review and set new
constraints as needed, using the methods described in the next few steps.
2. Review the untranslated constraints by double-clicking the *_translated.fdc file and going to
the Tcl View tab of the SCOPE editor when it opens. Manually edit the constraints as
needed.
This tab contains the untranslated constraints and other constraints that need manual
intervention. Alternatively, open the translated fdc file in a text editor, review the Tcl section
of the file and edit the constraints there. The other sections of the file match the SCOPE
tabs, and are enclosed in Begin and End statements.
3. Check the Tcl window or the _translate.log file in the FDC_constraints/<impl_name> directory
for conversion errors. Fix any errors.
This is an example from the _translate.log file:
ERROR: BAD -from list for define_false_path (my_inst)
Missing qualifier(s) (i: p: n: ...)
define_false_path -from (my_inst) -to i:abc.def.g_reg -through (n:bar)
Synplicity SDC source file: D:/timing_88/clk_prior/top.sdc. Line number: 79
If you run the design as is with the translated fdc file, the srr log file includes a similar error
message, but the file it points to is the pre-translation sdc file, not the converted fdc file.
4. Check the validity of the constraints with Run->Constraint Check or the Check Constraints
button in the SCOPE editor.
This command generates a report that checks the syntax and applicability of the timing
constraints. It lists constraints that are not applied, valid constraints that cannot be
applied, constraints on objects that do not exist, and wildcard expansions of constraint
specifications.
7
FDC and SDC Timing Constraints
define_clock
define_clock_delay
set_false_path, set_max_delay
define_false_path
set_false_path
define_multicycle_path
set_multicycle_path
define_path_delay
set_max_delay
define_input_delay
set_input_delay
define_output_delay
set_output_delay
define_reg_input_delay
define_reg_output_delay
set_datapathonly_delay
8
FDC and SDC Timing Constraints
Clock Groups
FDC clock groups are the same as Synopsys standard clock groups, but the FDC treatment of
clock groups is different from the legacy Synplify timing scheme. This means that while clock
groups specified with the Synopsys standard syntax are not affected, automatically translated
legacy Synplify constraints must be reviewed to ensure the constraints you want are correctly
defined.
Legacy Clock Group
Asynchronous clocks
Synchronous clocks
User-specified clock
groups
Based on lineage.
If clkb and clkc are synchronous to
clka, they are synchronous to each
other.
Associative.
If clkb and clkc are synchronous to clka,
they need not be synchronous to each
other; they can be asynchronous.
With the FDC syntax you can represent more clock relationships than you could with the
Synplify legacy clock group definitions, as shown by the preceding table.
The following example shows legacy clock group definitions and their translated FDC equivalents:
Legacy
Definition
FDC
Definition
9
FDC and SDC Timing Constraints
Generated Clocks
Most legacy Synplify-style clock constraints are translated to FDC constraints: define_clock
constraints become FDC create_clock constraints. However, generated clocks defined with
create_generated_clock constraints are preserved as is in the fdc file.
Specify clock groups correctly, making sure to properly define the clocks that are synchronous to each other. Unlike the previous ISE scheme, the default assumes that a clock is
synchronous with all other clocks.
Apply clock constraints to the output port of the clock object or to the top-level design
ports. Prior practice allowed clock constraints to be applied to nets and to BUFG instances
directly. If you do place a clock constraint on a BUFG instance, as was the previous
practice with the ISE flow, the FPGA synthesis tools convert the constraint so that it is
applied to the output port of the BUFG, and it is forward-annotated as such to Vivado
place-and-route.
The FPGA synthesis tools write out the requisite xdc constraints file for Vivado. Like the fdc file,
this file includes timing constraints in the Synopsys standard format, as well as physical,
location, and IP constraints.
10
FDC and SDC Timing Constraints
Select File->New-> FPGA Design Constraints, and then select FPGA Constraint File (SCOPE).
Define timing and non-timing constraints as needed.
Click the SCOPE icon in the toolbar, and select FPGA Constraint File (SCOPE). Define
timing and non-timing constraints as needed.
When you enter constraints in the tabs, the tool saves them into an fdc file. It is recommended that you use the new SCOPE editor and the fdc file for all new designs. For
descriptions of the SCOPE tabs, see FDC SCOPE Tabs, on page 11.
Double-click the fdc constraints file in the Project view, or use File->Open, specifying the
file type as FPGA Design Constraints File (*.fdc).
Check the translated constraints and edit them as needed. Check the Tcl View tab in
particular, which contains the untranslated constraints. You can also use this tab to
manually add constraints that do not fit on the other tabs.
11
FDC and SDC Timing Constraints
4. Check the validity of the constraints with Run->Constraint Check or the Check Constraints
button in the SCOPE editor.
You get a report on the syntax and applicability of the timing constraints. The report lists
unapplied constraints, valid constraints that cannot be applied, constraints on objects
that do not exist, and wildcard expansions of constraint specifications.
Clocks Tab
This tab defines the clocks, clock groups, uncertainty and latency. The options you specify here
are written out as constraints in the fdc file. If your translated design contained uncertainty and
latency constraints, they are included on Tcl View tab.
12
FDC and SDC Timing Constraints
Translated constraints on
this tab
The options defined on this tab are written out as create_generated_clock constraints in the fdc file.
You must check valid parameter combinations on this tab yourself, as the tool does not
currently do this automatically.
Translated constraints on
this tab
create_generated_clock
Collections Tab
The Collections tab lists commands that designate groups or collections of objects. This functionality has been enhanced so that the tool now generates some default collections automatically.
The table summarizes the translated constraints on this tab and the fdc constraints that are
written out.
13
FDC and SDC Timing Constraints
define_scope_collection
Embedded find and expand definitions
Automatically generated
collections from legacy
constraints
Untranslated Synplify
legacy constraints
-disabled constraints
define_scope_collection
The following excerpt shows the relevant portion of an fdc file, with define_scope_collection
commands:
###==== BEGIN Collections - (Populated from SCOPE tab, do not edit)
define_scope_collection {all_inputs_fdc} {find -port *
-filter @direction==input}
define_scope_collection {all_outputs_fdc} {find -port *
-filter @direction==output}
define_scope_collection {all_clocks_fdc} {find -hier -clock *}
define_scope_collection {all_registers_fdc} {find -hier -seq *}
define_scope_collection {fdc_cmd0} {find -seq -hier {q?[*]} }
define_scope_collection {fdc_cmd1} {find -seq {*y*.q?[*]} }
###==== END Collections
Inputs/Outputs Tab
This tab lists the input and output delays, but includes some new I/O options. For example, the
Add Delay (-add_delay) option indicates that you do not want to overwrite existing delays on the
ports but add to them.
FDC file constraints
written out from this tab
set_input_delay
set_output_delay
define_input_delay
define_output_delay
This is an example of how legacy definitions are translated to the fdc format on this tab:
14
FDC and SDC Timing Constraints
Legacy
Definition
FDC
Definition
This tab lists the timing exceptions. You can now specify timing exceptions for reset paths and
datapaths.
Translated Synplify legacy
constraints on this tab
define_multicycle_path
define_false_path
define_path_delay
set_multicycle_path
set_false_path
set_max_delay
reset_path
set_datapathonly_delay
15
FDC and SDC Timing Constraints
This tab opens an editor window where you can manually edit the Tcl constraints that were not
translated or which need other manual intervention. Some constraints that often need manual
editing are set_clock_latency, set_clock_uncertainty, set_datapathonly_delay, define_reg_input_delay (legacy)
or set_reg_input_delay (fdc), and define_reg_output_delay (legacy) or set_reg_output_delay (fdc).
Check and edit the translated constraints on this tab as needed. If necessary, enter or edit
other constraints manually on this tab. When you are done, save the constraints and rerun
your design using the saved fdc file.
16
FDC and SDC Timing Constraints
The tool ignores the file order listed in the project file, and first reads in all Synopsys
standard sdc files and applies those constraints. If you have multiple standard sdc files,
the files are read in the order listed in the project file.
After all the standard sdc files are read, the tool reads in all fdc files. If you have multiple fdc
files, the tool honors project file order.
The implication is that a conflicting constraint in an fdc file overwrites a preceding sdc
constraint. If a period of 10 ns was defined for a clock port in the sdc file, and the fdc defines a
clock on the same port with a period of 12 ns (without using the -add argument), then the
second constraint from the fdc file applies.
Precedence does not affect legacy timing constraints, because they cannot be used in the same
design as fdc or Synopsys standard timing constraints without conversion. It is strongly recommended that you convert legacy constraints to the fdc format, but even if you retain the old
format for an existing design, there is no conflict because they are not used with the other
constraints.
Synopsys, Inc.
700 East Middlefield Road
Mountain View, CA 94043 USA
solvnet.synopsys.com
Copyright 2012 Synopsys, Inc. All rights reserved. Specifications subject to change without notice. Synopsys, DesignWare, SCOPE, SolvNet, Synplicity, the Synplicity logo, Synplify,
Synplify Pro, and VCS are registered trademarks of Synopsys, Inc.,All other names mentioned herein are trademarks or registered trademarks of their respective companies.