Professional Documents
Culture Documents
For
SYNTHESIS IN BACK-END VLSI DESIGN
By
Mirafra Technologies, Bangalore
1 Introduction 02
2 Input files required 04
3 Synthesis Flow in Various tools 05
4 Steps in Synthesis 07
4.1 Analyze 07
4.2 Elaborate 07
4.3 Import constraints and UPF 08
4.3.1 SDC Contents: 08
4.4 Clock gating 14
4.5 Compile 16
4.6 Optimization 16
4.7 DFT (Design for Testing) insertion 17
4.8 Compile incremental 18
4.9 Outputs of Synthesis 18
4.10 4.10 Checklist 18
5 Synthesis Command 20
1. INTRODUCTION
Page | 1
Synthesis is process of converting RTL (Synthesizable Verilog code) to technology
specific gate level netlist (includes nets, sequential and combinational cells and their
connectivity).
1. Translate
2. Map
3. Optimize
specifications
Page | 2
To get a gate level netlist
Logic optimization
2. INPUT FILES REQUIRED
Page | 3
1. Technology related:
Target Library
library.
target_library.
Link Library
the function of mapped cells Fig 1. Inputs and outputs in Synthesis Flow
prior to optimization.
Typically, the link and target library are set to the same technology library.
The first entry in the list should be "*" to use designs currently in memory.
2. Design related:
Scan config- Scan related info like scan chain length, scan IO, which flops are to be
Page | 4
3. SYNTHESIS FLOW IN VARIOUS TOOLS
Page | 5
Fig. 3: Synthesis Flow in DC
Page | 6
3. STEPS IN SYNTHESIS
4.2 Elaborate
All the codes and arithmetic operators are converted into Gtech and DW (Design
Page | 7
Removes empty switches and dead branches.
FSM pass
Detects FSM logic and extracts the no of input, output bits and state bits.
Memory pass
If the design consists of multiple power domains, then using the UPF power domains,
isolation cells, level shifters, power switches, retention flops are placed.
Once the design is extracted in the form of technology independent cells, timing
Timing Constraints:
Timing Exceptions:
Non-Timing Constraints:
Page | 8
Operating conditions(PVT)
System Interface
Area Constraints
1. SDC Version:
• This statement specifies the version of the SDC file. it could be 2.1, 2.0, 1.9 or
more older.
Example:
• set sdc_version 2.1
2. Units:
i)clock source
ii)Period
iii)Duty cycle
iv)Edge Times
Syntax:
create_clock [-name clock_name] [clock_sources] [-period value] [-waveform
edge_list] [-add] [-comment]
Page | 9
Example:
A Generated clock is a clock derived from a master clock. A master clock is a clock
defined using the create_clock specification. A pin or port could be specified for the
generated clock object. Generated clock follow the master clock, so whenever the
master clock changes generated clock will change automatically. A generated clock can
Syntax:
Group path:
Syntax:
group_path [-weight weight_value] [-critical_range range_value] -default |
-name group_name [-from from_list | -rise_from rise_from_list | -fall_from
fall_from_list] [-through trough_list | -rise_through rise_through_list -
fall_through fall_through_list] [-to to_list | -rise_to rise_to_list | -
fall_to fall_to_list] [-comment comment_string] [-priority priority_level]
Example: group_path -name "group1" -weight 2.0 -to {CLK1A CLK1B}
Page | 10
Clock uncertainty:
Syntax:
Page | 11
4.3.1.4 Clock latency:
Syntax:
Input delay:
Syntax:
Example:
Output delay:
Syntax:
Example:
Page | 12
set_output_delay 1.7 -clock [get_clocks CLK1] [all_outputs]
a. False path:
• It is possible that certain timing paths are not real (or not possible) in the
actual functional operation of the design. Such paths can be turned off during
STA by setting these as false paths. A false path is ignored by the STA for
analysis.
For example, When a false path is specified through a pin of a cell, all paths that go
through that pin are ignored for timing analysis. The advantage of identifying the false
paths is that the analysis space is reduced, thereby allowing the analysis to focus only
• In some cases, the combinational data path between two flip-flops can take
more than one clock cycle to propagate through the logic. In such cases, the
• Even though the data is being captured by the capture flip-flop on every clock
edge, we direct STA that the relevant capture edge occurs after the specified
Page | 13
• The path groups are of four types: input-to-reg, reg-to-output, reg-to-reg and
input-to-output.
delays.
Due to high switching activity of clock a lot of dynamic power is consumed. One of the
techniques to lower the dynamic power is clock gating. In load enabled flops, the output
of the flops switches only when the enable is on. But clock switches continuously,
By converting load enable circuits to clock gating circuit dynamic power can be reduced.
Normal clock gating circuit consists of an AND gate in the clock path with one input as
enable. But when enable becomes one in between positive level of the clock a glitch is
obtained.
Page | 14
Fig. 6: Clock gated register bank
To remove the glitches due to AND gate, integrated clock gate is used. It has a
Page | 15
Fig. 9: Waveform for ICG
Clock gating makes design more complex. Timing and CG timing closure becomes
complex. Clock gating adds more gates to the design. Hence min bit width (minimum
register bit width to be clock gated) should be wisely chosen, because the overall
4.5 Compile
4.6 Optimization
Logic optimization
Constant folding
Design optimization
Power Optimization
Page | 16
Area Optimization
DFT circuits are used for testing each and every node in the design.
More the numbers of nodes that can be tested with some targeted pattern, more is the
coverage.
To get more coverage the design needs to be more controllable and observable.
For the design to be more controllable we need more control points (mux through which
For the design to be more observable we need more observe point (A scan-able flop
Scan mode is used to test stuck at faults and manufactured devices for delay.
Scan chains are part of scan based designs to propagate the test data.
By having scan chains, the design can be more controlable and observable.
Each scan chain inputs the pattern through scan input and outputs the pattern through
scan output.
Scan chain consists of scan flops where the output of scanflops is directly connected
Scan shift- Scan enable is set to 1. Then inputs the pattern through the scan input,
shifts the pattern through the scan flops and load all the flops with test pattern.
Scan capture- Scan enable is set to 0. In one clock cycle the loaded value in the flops
propagates through combinational circuit and reaches the D pin of the next flop.
Scan enable is set to 1 and outputs the pattern through scan output port.
Page | 17
The scan chain length and number of scan chains has to be properly chosen, as having
more scan chain length increases the pattern propagation time and having more scan
netlist
SDC
UPF
4.13 Checklist
Check if SDC and UPF are generated after synthesis and also check their
completeness.
Combinational loops
Un-clocked registers
unconstrained IO’s
IO delay missing
Un-expandable clocks
Page | 18
Master slave separation
multiple clocks
Floating pins
un-driven inputs
un-driven outputs
Page | 19
4. SYNTHESIS COMMAND
Genus:-
Page | 20
5. SYNTHESIS SCRIPT - PHYSICAL AWARE
Genus Physical:-
Page | 21
6. Reports & outputs
Genus
Reports:-
o report_area
o report_gates
o report_power
o report_timing
o report_qor
Outputs:-
o write_hdl
o write_sdc
o write_sdf
Design Compiler
Reports:-
o report_area
o report_power
o report_timing
Outputs:-
o write –format ddc –output topName.ddc contains both netlist and
constraints
o write –f Verilog –output tModuleName.v
o write_sdf topModuleName.sdf
o write_sdc topModuleName.sdc
Page | 22
7. BASIC TRAINING VIDEOS
For Beginners
8) Synthesis_DClab_20210308_by tarak
https://web.microsoftstream.com/video/78fef134-52c0-4070-9e19-
1915c2bbfd24
Page | 23
Moderate training videos:
Page | 24