Professional Documents
Culture Documents
Li-Yang Huang
Jul. 18, 2019
NTU GIEE EECS
Reference
VLSI Crash Course Synthesis 2018 Yi-Long
Liou
2
NTU GIEE EECS
Outline
Introduction
Synopsys Graphical Environment
DC-TCL: Introduction
Setting Design Environment
Setting Design Constraints
Synthesis Report and Analysis
Gate-Level Simulation
3
NTU GIEE EECS
Outline
Introduction
Synopsys Graphical Environment
DC-TCL: Introduction
Setting Design Environment
Setting Design Constraints
Synthesis Report and Analysis
Gate-Level Simulation
4
NTU GIEE EECS
Formal
Post layout Gate level Simulation
Place&Route
Gate-Level netlist Static Timing Analysis
Power Analysis
transistor netlist
LVS
GDS layout
Extraction
5
NTU GIEE EECS
6
NTU GIEE EECS
What is Synthesis
source /usr/cad/synopsys/CIC/synthesis.cshrc
7
NTU GIEE EECS
What is Synthesis
Synthesis = translation + optimization + mapping
8
NTU GIEE EECS
9
NTU GIEE EECS
HDL Compiler
In schematic view, we can see the Verilog file is translated
into Design Compiler as Synopsys design block with a
GTECH library (the Synopsys default)
10
NTU GIEE EECS
Design Compiler
Design Compiler maps Synopsys design block to gate level
design with a user specified library
Technolog
y
Library
11
NTU GIEE EECS
Design Vision
(GUI)
dc_shell
(Legacy Interface)
GUI
Design
Compiler
(DC)
dc_shell –t
(TCL Interface)
Command line
12
NTU GIEE EECS
14
NTU GIEE EECS
15
NTU GIEE EECS
Other variables
16
NTU GIEE EECS
17
NTU GIEE EECS
Outline
Introduction
Synopsys Graphical Environment
DC-TCL:Introduction
Setting Design Environment
Setting Design Constraints
Synthesis Report and Analysis
Gate-Level Simulation
18
NTU GIEE EECS
19
NTU GIEE EECS
20
NTU GIEE EECS
Read File
Read netlists or other design
descriptions into Design Compiler
File/Read
Support many different formats:
Verilog: .v
VHDL: .vhd
System Verilog: .sv
EDIF
PLA(Berkeley Espresso): .pla
Synopsys internal formats
DB(binary): .db
equation: .eqn
state table: .st
21
NTU GIEE EECS
22
NTU GIEE EECS
Analyze
File/Analyze
Check VHDL & Verilog for syntax
and synthesizability
Create intermediate .syn .mr .pvl
files and places them in library
specified – design library
23
NTU GIEE EECS
Elaborate
24
NTU GIEE EECS
25
NTU GIEE EECS
Link Design
Analysis/Link Design
Execute link -all before you optimize your design
To ensure all sub-elements of your hierarchical
design are available
26
NTU GIEE EECS
Check Design
Analysis/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
27
NTU GIEE EECS
28
NTU GIEE EECS
29
NTU GIEE EECS
Outline
Introduction
Synopsys Graphical Environment
DC-TCL: Introduction
Setting Design Environment
Setting Design Constraints
Synthesis Report and Analysis
Gate-Level Simulation
30
NTU GIEE EECS
31
NTU GIEE EECS
Design Objects
Design: A circuit that performs one or more logical
functions
Cell: An instance of a design or library primitive within
A design
Reference: The name of the original design that a cell
instance “points to”
Port: The input or output of a cell
Pin: input or output of a design
Net: The wire that connects ports to pins and/or pins
to each other
Clock: Waveform applied to a port or pin identified as a clock
source
32
NTU GIEE EECS
Design Objects
Module TOP(A, B, C, D, CLK, OUT1);
input A, B,C, D, CLK; clock
output [1:0] OUT1; port
wire
wire INV0, INV1, BUS0, BUS1;
ENCODER U1 (.AIN(A), .BIN(B), .CIN(C), .DIN(D), .Q0(BUS0), .Q1(BUS1));
INV U2 (.A(BUS0, .Z(INV0))),
U3 (.A(BUS1, .Z(INV1))); pin
REGFILE U4(.D0(INV0), .D1(INV1), .CLK(CLK), .Q[0](OUT[0]), .Q[1](OUT[1]));
endmodule cell
reference and design
pin cannot
appear by itself,
must accompany
with cell
33
NTU GIEE EECS
34
NTU GIEE EECS
Outline
Introduction
Synopsys Graphical Environment
DC-TCL: Introduction
Setting Design Environment
Setting Design Constraints
Synthesis Report and Analysis
Gate-Level Simulation
35
NTU GIEE EECS
Why Describes
the Real World Environment
Beware that the defaults are not realistic conditions
Input drive is not infinite
Capacitive loading is usually not zero
Consider process, temperature, and voltage (PVT) variation
The operating environment affects the components
selected from target library and timing through your
design.
The real world environment you define describes the
conditions that the circuit will operate within.
36
NTU GIEE EECS
1 set_operating_conditions
4 set_load
3 set_driving_cell
5 set_input_delay
set_wire_load_model 6 set_output_delay
create_clock
2
37
NTU GIEE EECS
38
NTU GIEE EECS
Step 1
Step 2
39
NTU GIEE EECS
Step 1
Step 2
40
NTU GIEE EECS
41
NTU GIEE EECS
TSMC18: PDIDGZ
Consider for IO Pads (Synthesis w IO) R
dc_shell command :
dc_shell> set_load [load_of “tpz973gvwc/PDT16DGZ/I” ] [all_outputs]
42
NTU GIEE EECS
Port Report
Design/Report ports Step 1 Step 2
dc_shell command :
dc_shell> report_port -verbose {port_list }
43
NTU GIEE EECS
44
NTU GIEE EECS
Input/Output Delay
Clock cycle >= DFFclk-Qdelay + c + DFFsetup
45
NTU GIEE EECS
Attention!
The step should execute
5. Setting Input Delay after clock specify
Step 1 Step 2
46
NTU GIEE EECS
Attention!
The step should execute
6. Setting Output Delay after clock specify
Step 2
Step 1
# Constraint setting
# Clock
constraints
set_fix_hold
create_clock -name [get_clocks clk]
set_dont_touch_network
clk -period $cycle [get_clocks
set_ideal_network
[get_ports clk] clk] [get_ports
set_clock_uncertainty clk]
set_clock_latency 0.1 [get_clocks clk]
0.5 [get_clocks clk]
# Other constraints
set_max_fanout 6 [all_inputs]
# Environment setting
1 set_operating_conditions -min_library fast -min fast -max_library slow -max slow
2 set_wire_load_model -name tsmc13_wl10 -library slow
3 set_drive 1 [all_inputs]
4 set_load 1 [all_outputs]
5 set_input_delay $t_in -clock clk [remove_from_collection [all_inputs] [get_ports clk]]
6 set_output_delay $t_out -clock clk [all_outputs]
48
NTU GIEE EECS
Outline
Introduction
Synopsys Graphical Environment
DC-TCL: Introduction
Setting Design Environment
Setting Design Constraints
Optimization Constraints
Basic clock constraints concept
Constraints & STA for Special Circuits
Constraint for Power & Area
Design Rule Constraint
Synthesis Report and Analysis
Gate-Level Simulation
49
NTU GIEE EECS
set_dont_touch_network : do
Step 2 not re-buffer the clock network
dc_shell> set_dont_touch_network [ get_clocks clk ]
set_ideal_network
dc_shell> set_ideal_network [ get_ports clk ]
51
NTU GIEE EECS
52
NTU GIEE EECS
Arrival(FF1) = 0.5ns
Arrival(FF2) = 1.2ns
Arrival(FF1) = 1.2ns
Arrival(FF2) = 0.5ns
53
NTU GIEE EECS
Timing report
54
NTU GIEE EECS
Source latency
Network latency
55
Combinational Circuit – NTU GIEE EECS
Max Delay Constraints
For combinational circuits only
Select the start & end points of the timing path
Attributes/Optimization Constraints/Timing Constraints
Equivalent dc_shell command :
dc_shell> set_max_delay 1 from
[all_inputs] –to [all_outputs]
56
NTU GIEE EECS
57
NTU GIEE EECS
58
NTU GIEE EECS
Constraints Priority
During the optimization, there exists a constraint priority
relationship.
Design Rule Constraint
(max_transition, max_fanout, max_capacitance)
Timing constraint (max_delay, min_delay)
Power constraint
Area constraint
Use set_cost_priority command to modify the order
59
NTU GIEE EECS
# Constraint setting
# Clock
constraints
set_fix_hold
create_clock -name [get_clocks clk]
set_dont_touch_network
clk -period $cycle [get_clocks
set_ideal_network
[get_ports clk] clk] [get_ports
set_clock_uncertainty clk]
set_clock_latency 0.1 [get_clocks clk]
0.5 [get_clocks clk]
# Other constraints
set_max_fanout 6 [all_inputs]
# Environment setting
set_operating_conditions -min_library fast -min fast -max_library slow -max slow
set_wire_load_model -name tsmc13_wl10 -library slow
set_drive 1 [all_inputs]
set_load 1 [all_outputs]
set_input_delay $t_in -clock clk [remove_from_collection [all_inputs] [get_ports clk]]
set_output_delay $t_out -clock clk [all_outputs] 60
NTU GIEE EECS
Check Design
After you set up the deign attributes & design
constraints, we recommend the next step is to
check design
Analysis/Check Design
Example: multiple instance
How to handle ?
uniquify
61
NTU GIEE EECS
Uniquify
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
Step 2
62
NTU GIEE EECS
63
NTU GIEE EECS
64
NTU GIEE EECS
Step 2
Step 1
Another method
65
NTU GIEE EECS
Compile
Step 2
Step 1
Assign Problem
The syntax of “assign” may cause problems in the LVS
67
NTU GIEE EECS
68
NTU GIEE EECS
Bus[5] → Bus_5_
69
NTU GIEE EECS
1. set hign_fanout_net_threshold 0
P 70
NTU GIEE EECS
Outline
Introduction
Synopsys Graphical Environment
DC-TCL: Introduction
Setting Design Environment
Setting Design Constraints
Synthesis Report and Analysis
Gate-Level Simulation
71
NTU GIEE EECS
Timing Report
Timing/Report Timing Path Step 2
Step 1
72
NTU GIEE EECS
Start
End
73
NTU GIEE EECS
Area Report
External IP
74
NTU GIEE EECS
Outline
Introduction
Synopsys Graphical Environment
DC-TCL: Introduction
Setting Design Environment
Setting Design Constraints
Synthesis Report and Analysis
Gate-Level Simulation
75
NTU GIEE EECS
76
NTU GIEE EECS