SYNTHESIS-sparc by Rajesh
SYNTHESIS-sparc by Rajesh
SYNTHESIS-sparc by Rajesh
Synthesis is the process in which synthesis tools like design compiler or simplify
take RTL in Verilog or VHDL, target technology (.lib), and design constrains
(sdc) as input and maps the RTL to target technology primitives and produces a
gate- level netlist as output.
Synthesis tool, after mapping the RTL to gates, also do the minimal amount of
timing analysis to see if the mapped design is meeting the timing requirements.
Synthesis = translation + optimization + mapping
1
• RTL Description
In order to adopt high-level design principles, it is necessary to try and
describe a design at a higher level of abstraction. This means thinking about the
functionality of the design rather than its implementation. This allows the
synthesis tool to optimize the functionality you have specified, leaving you to
describe what the design does, whilst the synthesis tool's job is to implement the
design how it sees fit in order to create the optimal implementation. The style of
coding required for synthesis tools is known as RTL coding.
RTL is an acronym for register transfer level. This implies that your VHDL
code describes how data is transformed as it is passed from register to register.
The transforming of the data is performed by the combinational logic that exists
between the registers.
Verilog HDL is one of the two most common Hardware Description
Languages (HDL) used by integrated circuit (IC) designers. ... More recently
Verilog is used as an input for synthesis programs which will generate a gate-
level description (a netlist) for the circuit. HDL like VHDL, Verilog and System
Verilog have synthesizable and non-synthesizable statements.Some Verilog
constructs are not synthesizable.
• Library
Design Compiler uses these libraries:
a) Technology libraries
b) Symbol libraries
2
c) Design Ware libraries
They are units used in the design, graphical characteristics like colours, stipple
patterns, line styles, physical parameters of metal layers, coupling capacitances,
capacitance models, dielectric values, device characteristics, design rules.
All the cells in the library have same standard height and have varied width.
These standard cell libraries are known as reference libraries in Astro.
target_library (.db):
The target library is the technology library you want to map to during
synthesis. It is also known as the destination library.
Target library is used for technology mapping. All the combo (AND, NAND,
NOT, etc) and the sequential (SDFF, DFF, etc) are mapped to equivalent gates
from the target library. standard cell database (binary), cell area/pins/timing data
(for synthesis decisions).
Note: .db — Synopsys internal database format.
link_library (.db):
The link library is a technology library that is used to describe the
function of mapped cells prior to optimization. Typically, the link and target
library are set to the same technology library.
The link_library variable specifies every library that has cells referenced by the
netlist. The tool uses the libraries specified in the link_library variable for
resolving references (linking). The link_library can include memory (RAM,
ROM or any macro) libraries, in addition to the standard cell library.
b) symbol_library (.sdb)
3
Symbol libraries contain definitions of the graphic symbols that represent
library cells in the design schematics. Semiconductor vendors maintain and
distribute the symbol libraries.
Design Compiler uses symbol libraries to generate the design schematic.
You must have Design Analyzer to view the design schematic.
When you generate the design schematic, Design Compiler performs a
one-to-one mapping of cells in the netlist to cells in the symbol library.
Design constraints are ASIC design specifications that are applied during logic
and physical synthesis.
1) Timing constraints
2)Design rule constraints
1) Timing constraints
Timing constraints are user-specified and are related to speed, area, and the
power consumption of the ASIC design.
4
System clocks are typically supplied externally but can be generated inside an
ASIC. All delays, especially in a synchronous ASIC design, dependent upon the
system clocks.
Multiple cycle paths are for ASIC designs that have a non-single cycle clock
timing requirement. This directs the physical design tools to avoid optimization
of data paths that have non-single clock behaviour.
False paths are used to specify point-to-point non-critical timing either internal
or external to an ASIC design. Properly identifying these noncritical timing paths
has a great impact on physical design tools’ performance.
The physical design tools use the system clock definition to perform what is
known as Clock Tree Synthesis (CTS) and try to meet the clock networks’ delay
constraints.
Design Environment
5
SDC is a format used to specify the design intent, including the timing, power
and area constraints for a design. SDC contains mainly following constraints that
are very essential for design.
The constraints are the following types according the commands types:
✓ Basic commands
✓ Object Access Commands
✓ Timing Commands
✓ Environment Commands
✓ Multi-Voltage Commands
6
Generated clock : create_generated_clock
Clock transition : set_clock_transition
Clock Uncertainty : set_clock_uncertainty
Clock Latency : set_clock_latency
Propagated clock : set_propagated_clock
Disable timing : set_disable_timing
False path : set_false_path
Input/output delay : set_input_delay & set_output_delay
Min/Max delay : set_min_delay / set_max_delay
Multicycle path : set_multicycle_path
❖ Environmental constraints
These commands are used to setup the environment of the design under analysis
commands are:
set_driving_cell
set_input_transition
set_load
set_max_fanout
set_max_area
set_operating_conditions
set_wire_load_model
set_case_analysis.......etc
❖ Multi-Voltage Commands
7
Setup and Synthesis Flow
8
Start a terminal (the shell prompt).
9
and physical technology data, using variables from common_setup.tcl.
10
A setup file contains commands that are automatically executed when you start a
software tool. The Synopsys synthesis tools use a setup file called
.synopsys_dc.setup. Use the setup file to define the libraries and parameters for
synthesis.
When you invoke Design Compiler, it reads the .synopsys_dc.setup file from
three directories, in the following order:
1. The Synopsys root directory
This system-wide file resides in the $SYNOPSYS/admin/setup directory for
UNIX users, or %SYNOPSYS%/admin for Windows NT users, and contains
general Design Compiler setup information. Only the system administrator can
modify this file.
2. Your home directory
This file contains your preferences for your Design Compiler working
environment.
3. The current working directory (the directory from which you invoke
Design Compiler)
If the setup files share commands or variables, values in the last setup file read
override values in previously read files. The working directory’s settings override
any default settings in your home or Synopsys directory.
11
To enter the data use button “i”. After editing save the file using command=>
“ESC :wq”.
12
HDL Compiler (TM)
VHDL Compiler (TM)
DFT Compiler
Design Compiler(R)
Version L-2016.03-SP1 for linux64 - Apr 18, 2016
Copyright (c) 1988 - 2016 Synopsys, Inc.
This software and the associated documentation are proprietary to Synopsys,
Inc. This software may only be used in accordance with the terms and
conditions of a written license agreement with Synopsys, Inc. All other use,
reproduction, or distribution of this software is strictly prohibited.
Initializing...
Initializing gui preferences from file /home/pduser02/.synopsys_dv_prefs.tcl
dc_shell>
after entering the dc_shell run a command, now
13
After running this command, there might be some warning, but no error presented
in the terminal. Otherwise you need to check your code or tcl file and correct
them according to the related messages.
Note: The oldest messages might be lost due to too many lines printed on the
terminal. In this situation you could redirect the output to a file:
dc_shell> source scripts/dc_setup.tcl > sparc.log
Then you can open sparc.log using gedit and search in it. The “>” here is the sign
for Output Redirection in Linux shell.
When a script completes processing, dc_shell returns a value of 1 if the script ran
successfully or a value of 0 if the script failed.
Now we can create the reports of area, power, timing etc by using the command:
a) dc_shell>reporting_timing > sparctiming.rpt
b) dc_shell>reporting_area > sparcarea.rpt
c) dc_shell>reporting_power > sparcpower.rpt
You can exit Design Compiler at any time and return to the operating system.
However, dc_shell does not automatically save designs when you exit. Use the
write command to save your design before exiting dc_shell.
dc_shell> write -hierarchy -output my_design.db
14
Now we check all the reports which was created like area, power, timing and
every step by step process done by the design compiler which was stored in
sparc.log file, which we can open by using command “gvim”.
b) Schematic
A schematic, or schematic diagram, is a representation of the elements of a
system using abstract, graphic symbols rather than realistic pictures. A schematic
usually omits all details that are not relevant to the information the schematic is
intended to convey, and may add unrealistic elements that aid comprehension.
c) Reports (Timing, Area, Power, …, etc)
Area: With shrinking system size ASIC should be able to accommodate
maximum functionality in minimum area. Designer can specify area constraint
and synthesis tool will optimize for minimum area. Area can be optimized by
15
having lesser number of cells and by replacing multiple cells with single cell that
includes both functionality.
Area report:
Timing: Designer specifies maximum delay between primary input and primary
output. This is taken as maximum delay across any critical path. There are three
types of critical paths:
1 Path between a primary input and primary output.
2 Path from any primary input to a register.
3 Path from a register to a primary output.
4 Path from a register to another register.
Timing report:
Make sure the timing report requirements are MET. You can observe which
module in the design is giving the maximum delay and optimize accordingly.
16
17
Power: Development of hand-held devices has led to reduction of battery size
and hence low power consuming systems. Low power consumption has become
a big requirement for lot of designers.
18
Power report:
Design Compiler gives the detailed information about the static and dynamic
power.
19
Synthesis Verification
The first step is to verify a set of reports, which have information about
timing, area, fanout and shows the violations to the defined constraints.
These reports must be interpreted to check if there are violations (setup
time, hold times, area, max transition, etc.).
In case of violations DC can try to fix them by running optimization
algorithms. If DC cannot fix the violations, one must go back to RTL coding.
With these reports it is possible to check if the design is synthesizable and,
therefore, if it is possible to proceed.
20