Upload
johnsideris1984
View
891
Download
31
Embed Size (px)
DESCRIPTION
SDC vs. FDC
Citation preview
7/17/2019 SDC vs. FDC
http://slidepdf.com/reader/full/sdc-vs-fdc 1/16
FDC and SDC Timing ConstraintsSynopsys Application Note, November 2012
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.
•Old Constraint Formats, on page 2
• New FDC Constraint File, on page 3
• Migrating Existing Constraints to FDC, on page 5
• Details of Constraint Conversion, on page 7
• Specifying Constraints in the SCOPE Editor, on page 10
• FDC SCOPE Tabs, on page 11
• Mixed Timing Constraints and Precedence, on page 16
7/17/2019 SDC vs. FDC
http://slidepdf.com/reader/full/sdc-vs-fdc 2/16
2 FDC and SDC Timing Constraints
Copyright © 2012 Synopsys, Inc. All rights reserved.
Old Constraint Formats
In releases before G-2012.09, there were two parallel, mutually exclusive formats for specifying
timing constraints, both of which used the sdc abbreviation and file extension:
• Synopsys standard timing constraints (sdc)Public domain Design Compiler® constraints, as defined in the Synopsys SDC Standard .
Typical constraints: create_clock, set_input_delay, set_false_path
• Synplify legacy timing constraints (sdc)Constraint format native to the Synplify tools. Typical constraints: define_clock,define_input_delay, define_false_path.
In addition, the FPGA synthesis tools honor design constraints. Design constraints are non-
timing constraints for FPGA synthesis; they include attributes (design_attribute constraints) and
physical constraints. These non-timing design constraints are always specified with the same
syntax, regardless of the selected timing constraint format.
In releases prior to G-2012.09, this meant that there were two mutually exclusive schemes for
specifying constraints, based on the timing constraint format used. You had a choice between
using the legacy Synplify-style format for both timing and design constraints, or using a combi-
nation of Synopsys standard timing constraints along with Synplify-style design constraints.
The following figure shows the two constraint scheme choices in previous releases, and the
formats of the resulting constraints:
7/17/2019 SDC vs. FDC
http://slidepdf.com/reader/full/sdc-vs-fdc 3/16
3
FDC and SDC Timing Constraints
Copyright © 2012 Synopsys, Inc. All rights reserved.
New FDC Constraint File
The G-2012.09 release eliminates the confusion of multiple timing constraint formats. It intro-
duces a single file that consolidates both timing and non-timing constraints, called the FPGA
Design Constraints (fdc) file. Use this file in place of both the Synopsys standard and theSynplify-style legacy sdc constraint files.
The FDC file offers the following advantages:
• 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.
Generating an FDC File
To generate the new fdc file, you can translate existing constraints or enter new constraints in
the SCOPE editor. The following figure summarizes the methods.
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 ExistingConstraints to FDC , on page 5 for details.
7/17/2019 SDC vs. FDC
http://slidepdf.com/reader/full/sdc-vs-fdc 4/16
4
FDC and SDC Timing Constraints
Copyright © 2012 Synopsys, Inc. All rights reserved.
FDC File Description
FDC constraints include timing and non-timing design constraints. The timing constraints area subset of the Synopsys standard timing constraints, along with some FPGA-specific exten-
sions. 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:
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.
Timing Constraints Non-Timing Design Constraints
Synopsys standard format: create_clock, set_input_delay,set_false_path...
Synplify-style format: define_attribute...
7/17/2019 SDC vs. FDC
http://slidepdf.com/reader/full/sdc-vs-fdc 5/16
5 FDC and SDC Timing Constraints
Copyright © 2012 Synopsys, Inc. All rights reserved.
Migrating Existing Constraints to FDC
For existing designs, you must do a one-time conversion of your existing constraint files to use
the new FDC format. If you are targeting a Xilinx 7 series device, migration is mandatory.
Synopsys provides the sdc2fdc translator utility to automate the conversion process as much aspossible.
Use this procedure:
1. Open an existing design and run the sdc2fdc translator from the tool Tcl window or in batch
mode.
– Type sdc2fdc in the Tcl window.
– Use the following command in batch mode. The batch command disables error
checking for qualifiers like p: and i:.
synplify -batch <prj_file> -tclcmd “sdc2fdc -batch”
7/17/2019 SDC vs. FDC
http://slidepdf.com/reader/full/sdc-vs-fdc 6/16
6 FDC and SDC Timing Constraints
Copyright © 2012 Synopsys, Inc. All rights reserved.
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 newconstraints 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/17/2019 SDC vs. FDC
http://slidepdf.com/reader/full/sdc-vs-fdc 7/16
7 FDC and SDC Timing Constraints
Copyright © 2012 Synopsys, Inc. All rights reserved.
Details of Constraint Conversion
This section describes some aspects of constraint conversion in more detail:
• Legacy Synplify Timing Constraints, on page 7
• Synopsys Standard Timing Constraints, on page 7
• Clocks and Clock Groups, on page 8
• Groups and Collections, on page 9
• Non-Timing Design Constraints, on page 9
Legacy Synplify Timing Constraints
The fdc file uses the Synopsys standard syntax for its timing constraints. The sdc2fdc utility
translates legacy Synplify-style timing constraints into the Synopsys standard syntax. You can
view any constraints that were not translated in the Tcl View tab of the SCOPE editor.
The following table shows some of the common legacy constraints and their equivalents in the
new timing constraint scheme:
Synopsys Standard Timing Constraints
Constraints specified in the Synopsys standard format are preserved and written to the fdc fileas is, because the fdc constraint syntax is the same as the Synopsys standard constraint
syntax.
Legacy Synplify Constraint FDC Constraint/Synopsys Standard Constraint
define_clock set_clock, create_generated_clock, set_clock_groups, set_clock_route_delay
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 set_reg_input_delay (FDC constraint only)
define_reg_output_delay set_reg_output_delay (FDC constraint only)
set_datapathonly_delay set_datapathonly_delay (FDC constraint only)
7/17/2019 SDC vs. FDC
http://slidepdf.com/reader/full/sdc-vs-fdc 8/16
8 FDC and SDC Timing Constraints
Copyright © 2012 Synopsys, Inc. All rights reserved.
Clocks and Clock Groups
Clock constraints are more complicated to translate because of fundamental differences
between the clock scheme assumptions. Some of these problems and their resolution by the
conversion process are described below.
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.
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 equiva-
lents:
Clock Constraint Application
With Synopsys standard and FDC timing formats, clock constraints are applied to the output
port of the clock object. By contrast, the Synplify legacy timing constraints let you attach clock
constraints to instances. For backwards compatibility, you can still place constraints on BUFG
instances in the Xilinx Vivado flow for example, but going forward, it is recommended that you
apply clock constraints to top-level design ports or output ports of clock objects.
Legacy Clock Group FDC/Synopsys Standard Clock Group
Default (no clockgroup specified)
Asynchronous clocks Synchronous clocks
User-specified clockgroups
Based on lineage.
If clkb and clkc are synchronous toclka, they are synchronous to eachother.
Associative.
If clkb and clkc are synchronous to clka,they need not be synchronous to eachother; they can be asynchronous.
Legacy
Definition
define_clock -name {clka} {p:clka} -period 10 -clockgroup default_clkgroup_0
define_clock -name {clkb} {p:clkb} -freq 150 -clockgroup default_clkgroup_1define_clock -name {clkc} {p:clkc} -freq 200 -clockgroup default_clkgroup_1
FDCDefinition
###==== BEGIN Clocks - (Populated from SCOPE tab, do not edit)create_clock -name {clka} {p:clka} -period 10 -waveform {0 5.0}create_clock -name {clkb} {p:clkb} -period 6.667 -waveform {0 3.3335}create_clock -name {clkc} {p:clkc} -period 5.0 -waveform {0 2.5}set_clock_groups -derive -name default_clkgroup_0 -asynchronous -group {c:clka}set_clock_groups -derive -name default_clkgroup_1 -asynchronous -group {c:clkb c:clkc}###==== END Clocks
7/17/2019 SDC vs. FDC
http://slidepdf.com/reader/full/sdc-vs-fdc 9/16
9
FDC and SDC Timing Constraints
Copyright © 2012 Synopsys, Inc. All rights reserved.
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 withcreate_generated_clock constraints are preserved as is in the fdc file.
Groups and Collections
The Tcl find. expand, and define_scope_collection commands are unchanged, and you can use them
to create groups or collections of objects, as before. During the conversion process, the
synthesis tools automatically create some SCOPE collections: for -default options, and for find or
expand commands that are embedded in constraints.
Embedded get query commands, like get_cells, get_clocks, and so on, appear as constraints with
equivalent object qualifiers (i:, p:, n:, t:, c:).
Non-Timing Design Constraints
Legacy non-timing design constraints are preserved in the fdc file. For more detail about how
different constraints are handled, see Attributes, I/O Standards, and Compile Point Tabs , onpage 14. The define_scope_collection, find, and expand commands are preserved, but query
commands like the get* commands are not. See Collections Tab , on page 12 for details.
Constraint Conversion for Vivado Designs
If you are going to use the Xilinx Vivado place-and-route tool, you cannot use legacy-style
timing constraints, and must convert them to the FDC format. You can also enter constraints in
the correct format in the SCOPE editor.
Use the following guidelines when creating constraints for Vivado designs:
• Specify clock groups correctly, making sure to properly define the clocks that are synchro-
nous 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.
7/17/2019 SDC vs. FDC
http://slidepdf.com/reader/full/sdc-vs-fdc 10/16
10 FDC and SDC Timing Constraints
Copyright © 2012 Synopsys, Inc. All rights reserved.
Specifying Constraints in the SCOPE Editor
You can use the SCOPE editor to specify new constraints or edit existing constraints. If you
define new constraints directly in the SCOPE editor, the tool automatically saves them in an fdc
file.
1. To specify new constraints directly in the SCOPE editor, first compile the design and then
do one of the following:
– 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 recom-
mended 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.
2. For newly-translated fdc files, do the following:
– 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.
– Enter any other constraints you might need.
3. To open the SCOPE editor for existing constraints, double-click the fdc constraints file in
the Project view, or use File->Open, specifying the file type as FPGA Design Constraints File
(*.fdc).
For legacy designs with Synplify-style sdc constraint files, it is recommended that you
convert your design as soon as possible to the fdc format, as described in MigratingExisting Constraints to FDC , on page 5. You can then use the new SCOPE editor. If you
must open an old sdc file, double-click on it in the Project view.
7/17/2019 SDC vs. FDC
http://slidepdf.com/reader/full/sdc-vs-fdc 11/16
11
FDC and SDC Timing Constraints
Copyright © 2012 Synopsys, Inc. All rights reserved.
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.
FDC SCOPE Tabs
The following sections briefly describe the new FDC SCOPE tabs and point out any differences
from the legacy SCOPE editor.
• Clocks Tab, on page 11
• Generated Clocks Tab, on page 12
•
Collections Tab, on page 12• Inputs/Outputs Tab, on page 13
• Delay Paths Tab, on page 14
• Attributes, I/O Standards, and Compile Point Tabs, on page 14
• Tcl View Tab, on page 15
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 andlatency constraints, they are included on Tcl View tab.
7/17/2019 SDC vs. FDC
http://slidepdf.com/reader/full/sdc-vs-fdc 12/16
12 FDC and SDC Timing Constraints
Copyright © 2012 Synopsys, Inc. All rights reserved.
Generated Clocks 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.
Collections Tab
The Collections tab lists commands that designate groups or collections of objects. This function-
ality 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 arewritten out.
Translated constraints onthis tab
Synplify-style legacy constraints: define_clock
Synopsys standard constraints: create_clock, set_clock_groups,set_clock_uncertainty, set_clock_latency
FDC file constraints
written out from this tab
create_clock, set_clock_groups, set_clock_uncertainty, set_clock_latency
Translated constraints onthis tab
Synplify-style legacy constraints: define_clock
Synopsys standard constraints: create_clock
FDC file constraintswritten out from this tab
create_generated_clock
7/17/2019 SDC vs. FDC
http://slidepdf.com/reader/full/sdc-vs-fdc 13/16
13
FDC and SDC Timing Constraints
Copyright © 2012 Synopsys, Inc. All rights reserved.
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.
This is an example of how legacy definitions are translated to the fdc format on this tab:
Translated Synplify legacyconstraints on this tab
define_scope_collection
Embedded find and expand definitions
Automatically generatedcollections from legacyconstraints
define_scope_collection for all -default options like clocks, registers,inputs, outputs, etc.
Embedded find and expand definitions
Untranslated Synplifylegacy constraints
-disabled constraints
FDC file constraintswritten out from this tab
define_scope_collection
FDC file constraintswritten out from this tab
set_input_delayset_output_delay
Translated Synplify legacyconstraints on this tab
define_input_delaydefine_output_delay
7/17/2019 SDC vs. FDC
http://slidepdf.com/reader/full/sdc-vs-fdc 14/16
14
FDC and SDC Timing Constraints
Copyright © 2012 Synopsys, Inc. All rights reserved.
Delay Paths Tab
This tab lists the timing exceptions. You can now specify timing exceptions for reset paths and
datapaths.
Attributes, I/O Standards, and Compile Point Tabs
These SCOPE tabs are unchanged from previous releases, and the non-timing design
constraints specified on them are preserved as is. When the constraints are written out to the
fdc file, their syntax is unchanged:
###==== BEGIN Attributes - (Populated from SCOPE tab, do not edit)
define_global_attribute {syn_global_buffers} {0}
define_attribute {i:modulex_inst.q[7:0]} {syn_pipeline} {1}
define_attribute {b:x[1]} {syn_loc} {AR20}
###==== END Attributes
###==== BEGIN ”I/O Standards” - (Populated from SCOPE tab, do not edit)
LegacyDefinition
define_input_delay -default 0.000 -improve 0.00 -route 0.00 -ref c:clka:f
define_output_delay -default 0.000 -improve 0.00 -route 0.00 -ref c:clka:r define_input_delay {a[7:0]} 2.00 -ref {clka:r}
FDC
Definition
###==== BEGIN inputs/Outputs - (Populated from SCOPE tab, do not edit)
set_input_delay {$all_inputs_fdc} -clock {c:clka} -clock_fall -add_delay {0.000) set_output_delay {$all_outputs_fdc} -clock {c:clka} -add_delay {0.000)
set_input_delay {p:a [7:0]} -clock {c:clka} -add_delay {2.00)
set_input_delay {p:rst} -clock {c:clka} -add_delay {0)###==== END Inputs/Outputs
Translated Synplify legacyconstraints on this tab
define_multicycle_pathdefine_false_pathdefine_path_delay
FDC file constraints
written out from this tab
set_multicycle_path
set_false_pathset_max_delayreset_pathset_datapathonly_delay
7/17/2019 SDC vs. FDC
http://slidepdf.com/reader/full/sdc-vs-fdc 15/16
15 FDC and SDC Timing Constraints
Copyright © 2012 Synopsys, Inc. All rights reserved.
define_io_standard -default_input syn_pad_type {LVCMOS18} -delay_type {input}
###==== END ”I/O Standards”
###==== BEGIN ”Compile Points” - (Populated from SCOPE tab, do not edit)
define_compile_point {-v:work.cp3} -type {locked, partition} -cpfile {} define_compile_point {-v:work.cp1} -type {locked} -cpfile {}
###==== END ”Compile Points”
Tcl View Tab
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.
7/17/2019 SDC vs. FDC
http://slidepdf.com/reader/full/sdc-vs-fdc 16/16
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.
Synopsys, Inc.700 East Middlefield RoadMountain View, CA 94043 USA solvnet.synopsys.com
16 FDC and SDC Timing Constraints
Mixed Timing Constraints and Precedence
Your design can contain Synopsys standard sdc constraints as well as an fdc file with timing
constraints. With timing constraints in different files, this order of precedence applies:
• The tool ignores the file order listed in the project file, and first reads in all Synopsysstandard 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 recom-
mended 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.