060216 icworkshop synthesis
TRANSCRIPT
-
8/3/2019 060216 ICworkshop Synthesis
1/61
ACCESS ICLAB
Graduate Institute of Electronics Engineering, NTU
SynopsysSynopsys Synthesis OverviewSynthesis Overview
Ben
2006.02.16
-
8/3/2019 060216 ICworkshop Synthesis
2/61
Graduate Institute of Electronics Engineering, NTU
pp. 2
OutlineOutlineIntroduction
Setting Design EnvironmentSetting Design Constraints
Synthesis Report and Analysis
-
8/3/2019 060216 ICworkshop Synthesis
3/61
Graduate Institute of Electronics Engineering, NTU
pp. 3
What is SynthesisWhat is SynthesisSynthesis = translation + optimization
-
8/3/2019 060216 ICworkshop Synthesis
4/61
Graduate Institute of Electronics Engineering, NTU
pp. 4
Logic Synthesis OverviewLogic Synthesis Overview
no timing info.
timing info.
-
8/3/2019 060216 ICworkshop Synthesis
5/61
Graduate Institute of Electronics Engineering, NTU
pp. 5
SynopsysSynopsys Related FilesRelated Files
Note
These 3 files are always read in the same order.
Any repeated command can overridethe previous one.
Set path and environment variables and license check.cshrc
Three distinct files are read and executed when DC is
invoked1. system-wide (do not modify):
(e.g. $SYNOPSYS/admin/setup/)
2. Users home directory (e.g. ~think/)
3. Users current working directory (e.g. ~think/dv/)
.synopsys_dc.setup
Set X terminal display variables.Xdefault
PurposeFiles
-
8/3/2019 060216 ICworkshop Synthesis
6/61
Graduate Institute of Electronics Engineering, NTU
pp. 6
Synthesis Design FlowSynthesis Design Flow
Specification
RTL Coding Prepare
Setting Design Environment
Setting Design Constraint
Compile Design
Analysis
CellLibrary
Gate-level Netlist
Develop the HDL design descriptionand simulate the design description to
verify that it is correct. Set up the .synopsys_dc.setup file.
Set the appropriate technology,synthetic, and symbol libraries, targetlibraries, and link libraries.
Set the necessary compilation options,
including options to read in the inputfiles and specify the output formats.
Read the HDL design description.
Define the design. Set design attributes
Define environmental conditions
Set design rules
Set realistic constraints (timing andarea goals)
Determine a compile methodology
-
8/3/2019 060216 ICworkshop Synthesis
7/61
ACCESS ICLAB
Graduate Institute of Electronics Engineering, NTU
Setting Design EnvironmentSetting Design Environment
-
8/3/2019 060216 ICworkshop Synthesis
8/61
Graduate Institute of Electronics Engineering, NTU
pp. 8
Setting Design EnvironmentSetting Design Environment Setting Operating Environment
Setting Input Driving Strength
Setting Output Loading
Setting Input/Output Delay
Setting Wire Load Model
-
8/3/2019 060216 ICworkshop Synthesis
9/61
Graduate Institute of Electronics Engineering, NTU
pp. 9
Setting Operating EnvironmentSetting Operating Environment Attributes/Operating Environment
-
8/3/2019 060216 ICworkshop Synthesis
10/61
Graduate Institute of Electronics Engineering, NTU
pp. 10
Setting Operating ConditionSetting Operating Condition Attributes/Operating Environment/Operating Condition
dc_shell> set_operating_conditions slow
-
8/3/2019 060216 ICworkshop Synthesis
11/61
Graduate Institute of Electronics Engineering, NTU
pp. 11
Setting Input Drive ImpedanceSetting Input Drive Impedance Attribute/Operating Environment/Drive Strength
-
8/3/2019 060216 ICworkshop Synthesis
12/61
Graduate Institute of Electronics Engineering, NTU
pp. 12
Setting Input Drive ImpedanceSetting Input Drive Impedance Also can be set using
drive_of command
Example: (P2A cell output)
-
8/3/2019 060216 ICworkshop Synthesis
13/61
Graduate Institute of Electronics Engineering, NTU
pp. 13
Setting Output LoadingSetting Output Loading Attribute/Operating Environment/Load
-
8/3/2019 060216 ICworkshop Synthesis
14/61
Graduate Institute of Electronics Engineering, NTU
pp. 14
Setting Output LoadingSetting Output Loading Also can be set using load_of:
Example: (bufferd1 cell input)
-
8/3/2019 060216 ICworkshop Synthesis
15/61
Graduate Institute of Electronics Engineering, NTU
pp. 15
Setting Input DelaySetting Input Delay Select input ports
Attributes/Operating Environment/Input Delay
-
8/3/2019 060216 ICworkshop Synthesis
16/61
Graduate Institute of Electronics Engineering, NTU
pp. 16
Setting Output DelaySetting Output Delay Select output ports
Attributes/Operating Environment/Output Delay
-
8/3/2019 060216 ICworkshop Synthesis
17/61
Graduate Institute of Electronics Engineering, NTU
pp. 17
Setting Wire Load ModelSetting Wire Load Model Wire load model estimates wire capacitance based on chip area & cell
fanout
Setting this information during compile in order to model the designmore accurately
Attributes/Operating Environment/Wire Load
-
8/3/2019 060216 ICworkshop Synthesis
18/61
ACCESS ICLAB
Graduate Institute of Electronics Engineering, NTU
Setting Design ConstraintsSetting Design Constraints
-
8/3/2019 060216 ICworkshop Synthesis
19/61
-
8/3/2019 060216 ICworkshop Synthesis
20/61
Graduate Institute of Electronics Engineering, NTU
pp. 20
Setting Design ConstraintsSetting Design ConstraintsOptimization Constraints
Basic clock constraints concept
Constraints & STA for Special Circuit
Constraints for Area
Design Rule Constraints
Final check constraints before compile
-
8/3/2019 060216 ICworkshop Synthesis
21/61
Graduate Institute of Electronics Engineering, NTU
pp. 21
Define Clock SpecificationDefine Clock SpecificationWhat should be defined?
Period
Waveform
Uncertainty
Skew
Latency
Source latency (option)
Network latency
Transition Input transition
Clock transition
-
8/3/2019 060216 ICworkshop Synthesis
22/61
Graduate Institute of Electronics Engineering, NTU
pp. 22
Specify Clock ConstrainsSpecify Clock Constrains Select clock port
Attributes/Clocks/Specify creat_clock: define your clocks
waveform & respect the set-up timerequirements of all clocked flip-flops
creat_clock clk-period 50 -waveform {0 25}
set_fix_hold: respect the hold timerequirement of all clocked flip-flops
set_fix_hold clk
set_dont_touch_network: do not re-
buffer the clock network set_dont_touch_network clk
-
8/3/2019 060216 ICworkshop Synthesis
23/61
Graduate Institute of Electronics Engineering, NTU
pp. 23
Constraints & STA for Special CircuitConstraints & STA for Special CircuitWhat should be noticed?
Multicycle Path
Clock Gating Technique
Latch-Based & Timing Borrow Analysis
False Path
set_case_analysis
Multiple Clocks Overlapping
-
8/3/2019 060216 ICworkshop Synthesis
24/61
Graduate Institute of Electronics Engineering, NTU
pp. 24
MulticycleMulticycle PathPath
To define setup multiplier 2 for the path from FF1 to
FF2 but maintain a hold multiplier 0, use command:
set_multicycle_path 2 -from FF1 -to FF2
-
8/3/2019 060216 ICworkshop Synthesis
25/61
Graduate Institute of Electronics Engineering, NTU
pp. 25
False PathFalse Path A false path is a timing path that cannot propagate a signal, or a path
we wish to ignore timing constraints.
The set_false_pathcan be used to disable timing-based synthesis on a
path-by-path basis It is useful for:
Constraining asynchronous paths
Constraining logically false paths
-
8/3/2019 060216 ICworkshop Synthesis
26/61
Graduate Institute of Electronics Engineering, NTU
pp. 26
Setting Area ConstraintSetting Area Constraint Attributes/OptimizationConstraints/Design Constraints
Area Unit : gates
-
8/3/2019 060216 ICworkshop Synthesis
27/61
Graduate Institute of Electronics Engineering, NTU
pp. 27
Setting Design ConstraintsSetting Design ConstraintsOptimization Constraints
Basic clock constraints concept
Constraints & STA for Special Circuit
Constraints for Area
Design Rule Constraints
Final check constraints before compile
-
8/3/2019 060216 ICworkshop Synthesis
28/61
Graduate Institute of Electronics Engineering, NTU
pp. 28
Design Rule ConstraintsDesign Rule ConstraintsDesign rules cant be violated at any cost,
even if it will violate the timing and area goal.
Three kinds of design rule constraint are set:
set_max_transition
set_max_fanoutset_max_capacitance
-
8/3/2019 060216 ICworkshop Synthesis
29/61
Graduate Institute of Electronics Engineering, NTU
pp. 29
Setting Design ConstraintsSetting Design ConstraintsOptimization Constraints
Basic clock constraints concept
Constraints & STA for Special Circuit
Constraints for Area
Design Rule Constraints
Final check constraints before compile
-
8/3/2019 060216 ICworkshop Synthesis
30/61
Graduate Institute of Electronics Engineering, NTU
pp. 30
Check DesignCheck Design After you set up the deign attributes & design
constraints, we recommend the next step is to check
design Analysis/Check Design
The warning message is called multiple design
instance, it results from that you use the same HDLdescription to represent more that one designinstance
How to handle ?
dont_touch
ungroup
uniquify
-
8/3/2019 060216 ICworkshop Synthesis
31/61
Graduate Institute of Electronics Engineering, NTU
pp. 31
Method 1:Method 1: dont_touchdont_touch Procedures
Constrain the block
Compile the block Select the multiple
design instances block
Attributes/Optimization
Directives/Design& setthe Dont Touch button
Compile the wholedesign using hierarchy
compile
-
8/3/2019 060216 ICworkshop Synthesis
32/61
Graduate Institute of Electronics Engineering, NTU
pp. 32
Method 2: UngroupMethod 2: Ungroup Procedures
Select the multiple designinstances block
Attributes/OptimizationDirectives/Design& set theUngroup button
Compile whole design usinghierarchy compile
Remove a single level ofhierarchy
Does not preserve thehierarchy
Take more memory Take more compile time
G d I i f El i E i i NTU
-
8/3/2019 060216 ICworkshop Synthesis
33/61
Graduate Institute of Electronics Engineering, NTU
pp. 33
Method 3:Method 3: UniquifyUniquify
Create a unique design file for
each instance May select one cell or entire
design hierarchy to be uniquify
Allow design to be customized to
its interface If the environment varies
significantly, use uniquifyratherthan compile+dont_touch
Uniquifyuses more memory andcause longer compile time thancompile+dont_touch
Select the most top design
of the hierarchy Edit/Uniquify/Hierarchy
G d t I tit t f El t i E i i NTU
-
8/3/2019 060216 ICworkshop Synthesis
34/61
Graduate Institute of Electronics Engineering, NTU
pp. 34
Multiple Design Instance (summary)Multiple Design Instance (summary) Use dont_touch, ungroup, uniquify to fix it
The easiest way is uniquify, but needs much memory
& compile time
If you want to preserve the hierarchy & sourcesharing, use dont_touch
If you want your design to have the BESTresult,recommend to use ungroup, but it needs the mostmemory and compile time
Graduate Institute of Electronics Engineering NTU
-
8/3/2019 060216 ICworkshop Synthesis
35/61
Graduate Institute of Electronics Engineering, NTU
pp. 35
Setting Design ConstraintsSetting Design ConstraintsOptimization Constraints
Basic clock constraints concept
Constraints & STA for Special Circuit
Constraints for Area
Design Rule Constraints
Final check constraints before compile
Graduate Institute of Electronics Engineering NTU
-
8/3/2019 060216 ICworkshop Synthesis
36/61
Graduate Institute of Electronics Engineering, NTU
pp. 36
Check Constraints & AttributesCheck Constraints & Attributes Use the following reports to check constraints & attributes
before compiling
Analysis/Report
Graduate Institute of Electronics Engineering NTU
-
8/3/2019 060216 ICworkshop Synthesis
37/61
Graduate Institute of Electronics Engineering, NTU
pp. 37
Save Constraints & AttributesSave Constraints & AttributesSave attributes & constraints setting as the
design setup file in dc_shell command format,use File/Save Info/Design Setup
Graduate Institute of Electronics Engineering, NTU
-
8/3/2019 060216 ICworkshop Synthesis
38/61
Graduate Institute of Electronics Engineering, NTU
pp. 38
Execute Script FileExecute Script FileExecute dc_shell command script file, use
Setup/Execute Script
-
8/3/2019 060216 ICworkshop Synthesis
39/61
ACCESS ICLAB
Graduate Institute of Electronics Engineering, NTU
Synthesis Report and AnalysisSynthesis Report and Analysis
Graduate Institute of Electronics Engineering, NTU
-
8/3/2019 060216 ICworkshop Synthesis
40/61
g g
pp. 40
ReportReport Analysis/Report
From report and analysis, you can find the set attributes and
the results after optimization
Attribute reports
All attributes, clock, port,
design, net
Analysis reports
Area, hierarchy, constraints,
timing, point timing
Graduate Institute of Electronics Engineering, NTU
-
8/3/2019 060216 ICworkshop Synthesis
41/61
pp. 41
Timing ReportTiming Report
Graduate Institute of Electronics Engineering, NTU
-
8/3/2019 060216 ICworkshop Synthesis
42/61
pp. 42
Analyze Circuit with SchematicAnalyze Circuit with Schematic To determine the time the signal arrived at pin which is selected
in the schematic
Analysis/Show Timing
Graduate Institute of Electronics Engineering, NTU
-
8/3/2019 060216 ICworkshop Synthesis
43/61
pp. 43
Analyze Circuit with SchematicAnalyze Circuit with Schematic To determine the net load which selected in the schematic
Analysis/Show Net Load
Graduate Institute of Electronics Engineering, NTU
-
8/3/2019 060216 ICworkshop Synthesis
44/61
pp. 44
Save DesignSave Design Save your design in verilog format, run Verilog gate-level simulation,
and we will use Verilog In interface to translate it into OPUS databasefor place & route
If you cant Verilog In, please check assign problem
if there is any assignment problem, choose the block & use thedc_shell command as follow to fix it
set_fix_multiple_port_nets -all -buffer_constants
compile -map_effort medium
Graduate Institute of Electronics Engineering, NTU
-
8/3/2019 060216 ICworkshop Synthesis
45/61
pp. 45
GateGate--Level Simulation (Verilog)Level Simulation (Verilog) Write out gate-level netlist
File/Save AsVerilog (for File format)
dc_shell> write -format verilog hierarchy -output chip.vg Get SDF
File/Save InfoDesign timingSelect chip.sdf
dc_shell> write_sdf version 1.0 -context verilog chip.sdf
Modify your testbench file$sdf_annotate (the_SDF_file_name, top_module_instance_name);
Simulation using Verilog-XL
>> Verilog chip.vg testbench.v v cell_model.v
Grad ate Instit te of Electronics Engineering NTU
-
8/3/2019 060216 ICworkshop Synthesis
46/61
ACCESS ICLAB
Graduate Institute of Electronics Engineering, NTU
Design ExampleDesign Example
Ben
2006.02.16
Graduate Institute of Electronics Engineering, NTU
-
8/3/2019 060216 ICworkshop Synthesis
47/61
pp. 47
SynopsysSynopsys Design Vision (GUI) /Design Vision (GUI) /
Design Compiler (text mode)Design Compiler (text mode)
Unix% dv dcsh_mode &
Unix% dc_shell
Graduate Institute of Electronics Engineering, NTU
-
8/3/2019 060216 ICworkshop Synthesis
48/61
pp. 48
ReadRead VerilogVerilog FileFile
read -format verilog {"Lab1_alu.v"}
Graduate Institute of Electronics Engineering, NTU
-
8/3/2019 060216 ICworkshop Synthesis
49/61
pp. 49
Schematic viewSchematic view Synopsys Design analyzer will translate verilog code into G-tech
model. Double click the icon ALU, and click the right buttonthen choose Schematic view. We can get the G-tech MAP
Graduate Institute of Electronics Engineering, NTU
-
8/3/2019 060216 ICworkshop Synthesis
50/61
pp. 50
Symbol viewSymbol view Or you can create a symbol view by click on the following symbol
view button. The symbol view is as the right window
Graduate Institute of Electronics Engineering, NTU
-
8/3/2019 060216 ICworkshop Synthesis
51/61
pp. 51
Set Clock (1/2)Set Clock (1/2) Attributes-Specify Clock
Graduate Institute of Electronics Engineering, NTU
-
8/3/2019 060216 ICworkshop Synthesis
52/61
pp. 52
Set Clock (2/2)Set Clock (2/2) Specify the clock as period 10ns. (100 MHz). Dont forget to
select dont touch network and fix hold
create_clock -name "clk" -period 10 -waveform {"0" "5"} {"clk"}set_dont_touch_network find( clock, "clk")set_fix_hold clk
Graduate Institute of Electronics Engineering, NTU
-
8/3/2019 060216 ICworkshop Synthesis
53/61
pp. 53
Operating ConditionOperating Condition set_operating_conditions "typical" -library "typical"
Graduate Institute of Electronics Engineering, NTU
-
8/3/2019 060216 ICworkshop Synthesis
54/61
pp. 54
WireloadWireload ModelModel set_wire_load_model -name "ForQA" -library
"typical"
set_wire_load_mode "segmented"
Graduate Institute of Electronics Engineering, NTU
-
8/3/2019 060216 ICworkshop Synthesis
55/61
pp. 55
Operating EnvironmentOperating Environment Select inputA in the Symbol View and click Attribute-
operating environment-input delay. Set 2.5ns input delay.
set_input_delay -clock clk 2.5 inputA[*]set_input_delay -clock clk 3.8 inputB[*]
set_input_delay -clock clk 4.5 instruction[*]set_input_delay -clock clk 5.2 reset
set_output_delay -clock clk 8 alu_out[*]
Graduate Institute of Electronics Engineering, NTU
-
8/3/2019 060216 ICworkshop Synthesis
56/61
pp. 56
Area &Area & FanoutFanout & Transition& Transition Click Attribute-
optimization Constraints-Design constraints. Set
max area is 0. Max fan-out is8. max transition is 1.
set_max_area 0set_max_fanout 8 find (design, ALU)set_max_transition 1 find (design, ALU)
Graduate Institute of Electronics Engineering, NTU
-
8/3/2019 060216 ICworkshop Synthesis
57/61
pp. 57
Compile DesignCompile Design Click Design-Compile Design. Click OK, start to optimize
ALU
compile -map_effort medium
Graduate Institute of Electronics Engineering, NTU
-
8/3/2019 060216 ICworkshop Synthesis
58/61
pp. 58
ReportReport
report_timing -path full -delay max -max_paths 1 -nworst 1report_power
report_area -nosplit
Graduate Institute of Electronics Engineering, NTU
-
8/3/2019 060216 ICworkshop Synthesis
59/61
pp. 59
Save FilesSave Files Save gate-level netlist. Select File->Save As Save your design. Select File-Save
Save the timing information. Select File-Save Info-Design
Timing, choose sdf format.
Save script file with the constraints you have made. Usewrite_script > script_file command or File-Save Info-Design Setup button.
Re-run all steps automatically. Use include script_filecommand or File-Execute Script button.
write -format verilog -hierarchy -output "ALU_s.v" find (design, ALU)write -format db -hierarchy -output "ALU_s.db" find (design, ALU)write_sdf ALU_s.sdf
Graduate Institute of Electronics Engineering, NTU
-
8/3/2019 060216 ICworkshop Synthesis
60/61
pp. 60
gate level simulationgate level simulation Before gate level simulation,
$sdf_annotate(top_design.sdf, top_design)
must be added after initial in testbench `timescale 1ns/10psmust be added in the 1st line of
testbench
//RTL simulation
Unix% verilog testfixture.v
//gate level simulation
Unix% verilog testfixture_vg.v v umc18.v
-
8/3/2019 060216 ICworkshop Synthesis
61/61