Setting Design Constraints
Download
Report
Transcript Setting Design Constraints
Graduate Institute of Electronics Engineering, NTU
101-1 Under-Graduate Project
Synopsys Synthesis Overview
Speaker: 李懿玹
Adviser: Prof. An-Yeu Wu
Date: 2012/11/20
ACCESS IC LAB
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Outline
Introduction
Synopsys Graphical Environment
Setting Design Environment
Setting Design Constraints
Synthesis Report and Analysis
Save Design and Other Issues
Example
P. 2
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
What is Synthesis
Synthesis = translation + optimization
We will get a gate level circuit with timing information after
Synthesis
P. 3
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Tools We will Use
Tool
Purpose
Design Vision
User Graphical Interface of synopsys
synthesis tool
HDL Compiler
Translate Verilog descriptions into Design
Compiler
Design
Compiler
Constraint driven logic optimizer
Design Time
Static Timing Analysis (STA) engine
Design Ware
Enable synthesis using DesignWare library
P. 4
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Logic Synthesis Overview
no timing info.
timing info.
P. 5
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Design Vision
P. 6
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
HDL Compiler
In schematic view, we can see the Verilog file is translated with
a GTECH library (the synopsys default)
GTECH
Library
no timing info
P. 7
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Design Compiler
Design Compiler maps Synopsys design block to gate level
design with a user specified library
Technology
Library
timing info
P. 8
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Synopsys Related Files
Files
Purpose
.cshrc
Set path and environment variables and license check
.synopsys_dc.setup
Three distinct files are read and executed when DC is
invoked
1. system-wide (do not modify):
(e.g. $SYNOPSYS/admin/setup/)
2. User’s home directory (e.g. ~think/)
3. User’s current working directory (e.g. ~think/dv/)
Note
These 3 files are always read in the same order.
Any repeated command can override the previous one.
P. 9
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Synthesis Design Flow
Develop the HDL design description
and 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, target
libraries, and link libraries.
Set the necessary compilation options,
including options to read in the input
files and specify the output formats.
Read the HDL design description.
Define the design.
Cell
Set design attributes
Library
Define environmental conditions
Set design rules
Set realistic constraints (timing and
area goals)
Determine a compile methodology
Specification
RTL Coding Prepare
Setting Design Environment
Setting Design Constraint
Compile Design
Analysis
Gate-level Netlist
P. 10
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Synopsys On-Line Documentation (SOLD)
Invoke Synopsys On-Line Document using the command
unix%> acroread /usr/synopsys/sold/cur/top.pdf
Note: whenever you find a question, check SOLD first
P. 11
Graduate Institute of Electronics Engineering, NTU
Synopsys Graphical Environment
ACCESS IC LAB
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Invoke Design Vision
Unix%> dv &
dc_shell
command
P. 13
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Read File
Read netlists or other design
descriptions into Design
Compiler
File/Read
Support many different formats:
synopsys internal formats
ddc(binary): .ddc
Verilog: .v
equation: .eqn
state table: .st
VHDL: .vhd
PLA(Berkeley Espresso): .pla
EDIF
P. 14
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Describe the Design Environment
You can use Design Vision to constrain your design
P. 15
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Check Design
Design/Check Design
Execute check_design before you optimize your design
Two types of messages are issued
error
Error: In design ‘bcd7segs’, cell ‘decoder’ has more pins than it’s
reference ‘d1’ has ports
warnings
Warning: In design ‘converter’, port ‘A’ is not connected to any nets
P. 16
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Compile the Design
The compile command optimizes and maps the current_design
P. 17
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Report the Design
From report and analysis, you can find the set attributes and the
results after optimization
P. 18
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Save the Design
Write out the design netlist after synthesis
P. 19
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Different View - Design View
Hierarchy
Schematic
Symbol
View
Indicator
Current
Design
Indicator
P. 20
Graduate Institute of Electronics Engineering, NTU
Setting Design Environment
ACCESS IC LAB
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
What is Design Environment
Describes the real world environment
Beware the defaults are not realistic conditions
Input drive is not infinite
Output loading is usually not zero
Consider process, voltage, temperature (PVT) variation
The operating environment affects the components selected
from target library and timing through your design
P. 22
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Setting Design Environment
Setting Operating Environment (a)
Setting Input Driving Strength (b)
Setting Output Loading (c)
Setting Input/Output Delay (d)
Setting Wire Load Model (e)
(a) Set_operating_conditions
(d) set_input_delay
(d) set_output_delay
U1
M1
(b) set_driving_cell
U2
(c) set_load
(e) set_wire_load_model
P. 23
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Setting Design Environment
Setting Operating Environment
Setting Input Driving Strength
Setting Output Loading
Setting Input/Output Delay
Setting Wire Load Model
P. 24
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Setting Operating Condition
Attributes/Operating Environment/Operating Condition (GUI)
Maximum => slow ( setup time )
Minimum => fast (hold time)
set_operation_conditions –min_library lib_name –min condition –max_library lib_name –max condition
Ex: set_operating_conditions -min_library fast -min fast -max_library slow -max slow
Ex: set_operating_conditions -min_library fsd0a_a_generic_core_1d32vbc -min BCCOM -max_library fsd0a_a_generic_core_1d08vwc -max WCCOM
P. 25
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Setting Design Environment
Setting Operating Environment
Setting Input Driving Strength
Setting Output Loading
Setting Input/Output Delay
Setting Wire Load Model
P. 26
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Setting Input Drive Impedance (GUI)
Attribute/Operating Environment/Drive Strength
P. 27
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Setting Input Drive Impedance
Command line or script
Take DFF as example:
set_driving_cell –library max_lib_name –lib_cell DFFX2 –pin{Q} [get_ports your_port]
or
set_drive [drive_of “max_lib_name/DFFX2/Q”] [get_ports your_port]
For Chip design:
set_driving_cell –library IOpad_lib_name –lib_cell PDIDGZ –pin{C} [all_inputs]
or
set_drive [drive_of “IOpad_lib_name / PDIDGZ /C”] [all_inputs]
P. 28
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Setting Design Environment
Setting Operating Environment
Setting Input Driving Strength
Setting Output Loading
Setting Input/Output Delay
Setting Wire Load Model
P. 29
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Setting Output Loading(GUI)
Attribute/Operating Environment/Load
P. 30
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Setting Output Loading
Command line or script
Take DFF as example:
Command line
load_of “max_lib_name/DFFX1/D”
script
set_load [load_of “max_lib_name/DFFX1/D”] [get_ports your_port]
For Chip design:
Command line
load_of “IOpad_lib_name / PDT16DGZ /I”
script
set_load [load_of “IOpad_lib_name / PDT16DGZ /I”] [all_outputs]
P. 31
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Setting Design Environment
Setting Operating Environment
Setting Input Driving Strength
Setting Output Loading
Setting Input/Output Delay
Setting Wire Load Model
P. 32
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Input/Output Delay
clock cycle >= DFFclk-Qdelay + c + DFFsetup
Input delay = DFFclk-Qdelay + a
Output delay = e + DFFsetup
P. 33
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Setting Input Delay
Select input ports
Attributes/Operating Environment/Input Delay
Specify
minimum
input delay
Specify
maximum
input delay
P. 34
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Setting Output Delay
Select output ports
Attributes/Operating Environment/Output Delay
Specify
minimum
output delay
Specify
maximum
output delay
P. 35
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Setting Design Environment
Setting Operating Environment
Setting Input Driving Strength
Setting Output Loading
Setting Input/Output Delay
Setting Wire Load Model
P. 36
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Setting 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 design
more accurately
Attributes/Operating Environment/Wire Load
P. 37
Graduate Institute of Electronics Engineering, NTU
Setting Design Constraints
ACCESS IC LAB
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Constraints
Constraints are goals that the Design Compiler uses
for optimizing a design into target technology library.
Design Rule Constraints : technology-specific
restriction; ex. maximum transition, maximum fanout,
maximum capacitance.
Optimization Constraints : design goals and
requirements; ex. maximum delay, minimum delay,
maximum area, maximum power.
During compile, Design Compiler attempts to meet all
constraints.
P. 39
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Setting Design Constraints
Optimization Constraints
Basic clock constraints concept
Constraint for Special Circuit
Constraints for Power & Area
Design Rule Constraints
Final check constraints before compile
P. 40
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Define Clock Specification
What should be defined?
Period
Waveform
Uncertainty
Skew
Latency
Source latency (option)
Network latency
Transition
Input transition
Clock transition
All register-to-register path are constrained now
Combinational delay is constraint by
set_max_delay 10 -from all_input -to all_output
P. 41
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Specify Clock Constrains (1/2)
Select clock port
Attributes/Clocks/Specify
P. 42
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Specify Clock Constrains (2/2)
creat_clock : define your clock’s waveform & respect the set-up time
requirements of all clocked flip-flops
create_clock -name "CLK" -period 10 -waveform {0 5} [get_ports CLK ]
set_fix_hold : respect the hold time requirement of all clocked flip-flops
set_fix_hold [get_clocks CLK]
set_dont_touch_network : do not re-buffer the clock network
set_dont_touch_network [get_clocks CLK]
P. 43
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Setting Area&Power Constraint
Attributes/OptimizationConstraints/Design Constraints
Area Unit :
Equivalent gate count
um x um
Transistors
set_max_area
0
set_max_total_power
0.0uw
set_max_dynamic_power
0.0uw
set_max_leakage_power
0.0uw
P. 44
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Setting Design Constraints
Optimization Constraints
Basic clock constraints concept
Constraints for Special Circuit
Constraints for Area
Design Rule Constraints
Final check constraints before compile
P. 45
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Design Rule Constraints
Vendors impose design rules that restrict how many cells are
connected to one another based on capacitance, transition ,and
fanout
You may apply more conservative design rules to:
Anticipate the interface environment your block will see
Prevent the design from operating cells close to their limits, where
performance degrades rapidly
DC respects design rules as highest priority of all in the
following order:
set_max_transition
set_max_fanout
set_max_capacitance
P. 46
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Setting Design Constraints
Optimization Constraints
Basic Clock Constraints Concept
Constraints & STA for Special Circuit
Constraints for Area
Design Rule Constraints
Final Check Constraints Before Compile
Check Design
Check Timing
Check Constraints
Save Constraints & Attributes
P. 47
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Check Design
After you set up the deign attributes & design
constraints, we recommend the next step is to check
design
Analysis/Check Design
P. 48
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Setting Design Constraints
Optimization Constraints
Basic Clock Constraints Concept
Constraints & STA for Special Circuit
Constraints for Area
Design Rule Constraints
Final Check Constraints Before Compile
Check Design
Check Timing
Check Constraints
Save Constraints & Attributes
P. 49
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Verify Constraints are Complete in DC
After setting constraints, verify that there are no
remaining unconstrained paths:
Check_timing
Issues warning if unconstrained paths are found
Ex: The following end-points are not constrained for maximum delay.
End point
-------------------------------------uARM7/uA920/cp1_inst/cp1_rf_inst/reg3_reg0_
.....
P. 50
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Setting Design Constraints
Optimization Constraints
Basic Clock Constraints Concept
Constraints & STA for Special Circuit
Constraints for Area
Design Rule Constraints
Final Check Constraints Before Compile
Check Design
Check Timing
Check Constraints
Save Constraints & Attributes
P. 51
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Check Constraints
Use the following reports to check constraints before compiling
Design/Report XXXX
Report Design
In this report you can check the operating condition and wire load
model
Report Clocks
Notice that all the information about timing is at Timing/Report
XXX
P. 52
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Setting Design Constraints
Optimization Constraints
Basic Clock Constraints Concept
Constraints & STA for Special Circuit
Constraints for Area
Design Rule Constraints
Final Check Constraints Before Compile
Check Design
Check Timing
Check Constraints
Save Constraints & Attributes
P. 53
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Save Constraints & Attributes
Save attributes & constraints setting as the design setup file in
dc_shell command format, use File/Save Info/Design Setup
write_script –output top_setup.tcl
uniquify have to be added by yourself after extract the script
file
P. 54
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Execute Script File
Execute dc_shell command script file, use File/Execute Script
P. 55
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Compile the Design
The compile command optimizes and maps the current_design
Design/Compile design
compile -boundary_optimization -map_effort medium
P. 56
Graduate Institute of Electronics Engineering, NTU
Synthesis Report and Analysis
ACCESS IC LAB
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Report
Design / Report
Timing / Report
P. 58
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Report Design (1/2)
Report Design Hierarchy
Hierarchy report shows the component used in your block & hierarchy
Design / Report Design Hierarchy
Report Reference
Reference report shows statistical result about reference in the design
Design / Report Reference
Report Net
Net report shows the statistical results of each net
Design / Report Nets
Report Area
Area report shows the um2 of the design
Design / Report Area
Report Power
Design / Report Power
Report Constraints
Constraints report shows whether compiled design meets your constraints
Design / Report Constraint
P. 59
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Report Design (2/2)
Extract report data by script file
At the end of script
redirect xxx_area.rpt { report_area }
redirect xxx_power.rpt { report_power }
redirect xxx_hierarchy.rpt { report_hierarchy }
redirect xxx_nets.rpt { report_nets }
redirect xxx_constraints.rpt { report_constraints }
redirect xxx_reference.rpt { report_reference }
P. 60
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Report Timing
Timing report shows maximum or minimum delay path of design,
the default is to display one maximum delay path
redirect xxx_timing.rpt { report_timing }
P. 61
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
What is Slack
Slack is the resulting margin between required & actual arrival
time
Positive slack or zero means meet constraints
Negative slack means violate constraints
Setup Time Check (max delay check)
Slack_setup = Data Required Time – Data Arrival Time
Hold Time Check (min delay check)
Slack_hold = Data Arrival Time - Data Required Time
P. 62
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Report Timing Options
Timing / Report Timing Path
Fractional part length
P. 63
Graduate Institute of Electronics Engineering, NTU
Save Design and Other Issues
ACCESS IC LAB
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Save Design
Save your design to file before you quit Design Compiler
File/Save saves your design in the ddc format
File/Save As can save your design in other Write formats
Verilog: .v
VHDL: .vhd
EDIF
Synopsys formats
PLA (Berkeley Espresso): .pla
write -hierarchy -format ddc -output xxx.ddc
write -hierarchy -format verilog -output xxx.v
P. 65
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Assign Problem
Save your design in verilog format, run Verilog gate-level
simulation, and we will use Verilog In interface to translate it into
OPUS database for place & route
If you can’t Verilog In, please check assign problem
if there is any assignment problem, choose the block & use the
dc_shell command as follow to fix it
set verilogout_no_tri "true"
set_fix_multiple_port_nets -all -buffer_constants
P. 66
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Change Naming Rule script
Write in .synopys_dc.setup
set bus_inference_style {%s[%d]}
set bus_naming_style {%s[%d]}
set hdlout_internal_busses true
change_names –hierarchy –rule verilog
define_name_rules name_rule -allowed "A-Z a-z 0-9_“ –max_length 255 –type cell
define_name_rules name_rule -allowed "A-Z a-z 0-9_[]“ –max_length 255 –type net
define_name_rules name_rule –map {{“\\*cell\\*” “cell”}}
define_name_rules name_rule –case_insensitive
change_names –hierarchy –rules name_rule
P. 67
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Gate-Level Simulation (Verilog)
Write out gate-level netlist
File/Save As Verilog (for File format)
dc_shell> write -format verilog –hierarchy -output chip.vg
Get SDF
File/Save Info Design timing Select chip.sdf
dc_shell> write_sdf –version 2.1 -context verilog chip.sdf
Modify your testbench file
$sdf_annotate (“the_SDF_file_name”, top_module_instance_name);
Simulation using Verilog-XL
>> ncverilog testbench.v chip.vg –v cell_model.v +access+r
P. 68
Graduate Institute of Electronics Engineering, NTU
Design Example
ACCESS IC LAB
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Synopsys Design Vision (GUI) /
Design Compiler (text mode)
Unix% dv&
Unix% dc_shell
P. 70
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Read Verilog File
read -format verilog {"Lab1_alu.v"}
P. 71
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Schematic View
Synopsys Design analyzer will translate verilog code into G-tech
model. Double click the icon “ALU”, and click the right button
then choose Schematic view. We can get the G-tech MAP
P. 72
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Symbol View
Or you can create a symbol view by click on the following symbol
view button. The symbol view is as the right window
P. 73
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Set Clock (1/2)
“Attributes”-“Specify Clock”
P. 74
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Set Clock (2/2)
Specify the clock as period 10ns. (100 MHz). Don’t forget to
select “don’t 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
P. 75
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Operating Condition
set_operating_conditions "typical" -library "typical"
P. 76
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Operating 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[*]
P. 77
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Area & Fanout & Transition
Click “Attribute””optimization Constraints”“Design constraints”. Set
max area is 0. Max fan-out is
8. max transition is 1.
set_max_area 0
set_max_fanout 8 find (design, ALU)
set_max_transition 1 find (design, ALU)
P. 78
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Compile Design
Click “Design”-”Compile Design”. Click “OK”, start to optimize
ALU
compile -map_effort medium
P. 79
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Report
report_timing -path full -delay max -max_paths 1 -nworst 1
report_power
report_area -nosplit
P. 80
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Save 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.
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
Save script file with the constraints you have made. Use
“write_script > script_file” command or “File”-”Save Info””Design Setup“ button.
Re-run all steps automatically. Use “include script_file”
command or “File”-“Execute Script” button.
P. 81
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
Gate Level Simulation
Before gate level simulation,
$sdf_annotate(“top_design.sdf”, top_design)
must be added after initial in testbench
`timescale 1ns/10ps must be added in the 1st line of
testbench
//RTL simulation
Unix% ncverilog testfixture.v your_file.v +access+r
//gate level simulation
Unix% ncverilog testfixture_vg.v your_file.vg –v
tumc18.v +access+r
P. 82
ACCESS IC LAB
Graduate Institute of Electronics Engineering, NTU
View Waveform
Unix% nWave&
Open verilog.fsdb file to see the waveform
P. 83