Professional Documents
Culture Documents
Rptoptop Gopi
Rptoptop Gopi
Synthesis Flow:
Logical Synthesis:
Synthesis is a process of converting RTL code into Optimized Gate Level Netlist for
the targeted Technology to meet Timing, Power and Area.
In this stage, The Technology Independent RTL code is converted into Technology Dependent
Gate Level Netlist. Using Synthesis Tool.
In logical synthesis we consider ZERO WIRE LOAD model. Because, we are not routing
any connections physically between cells.
In Logical Synthesis have Ideal Clock. [Ideal clock = No skew] Because, the real clock is
not build physically.
We are considering ZERO WIRE LOAD model. There is no net delays, so we did not get accurate
values for Hold Analysis in Logical Synthesis.
EDA Tools for Logical Synthesis:
Cadence – Innovus
Library File.
.lib is Timing Library. CCS and NLDM techniques are used to generate Library Files.
In CCS [composite current source] Current source is used for driver modeling. Propagation
delay is calculated by Input Transition, Output Load and Time. In CCS additional index is time,
it also in calculation of cell delay. CCS is more accurate at lower technology nodes. CCS file is
larger than NLDM file. Run time of CCS is more.
NLDM [non linear delay model] uses the Voltage for driver modeling. Propagation delay is
calculated by Input Transition and Output Load. NLDM is very fast in Delay calculations but
it loses the accuracy below 130nm.
Library File contains Cell delays, transitions, setup and hold time requirements.
The design needs to be tested for certain PVT corners. So there is a Lib file for every
PVT corner.
RTL file have Functionality of circuit in the form of verilog code. The RTL code is
developed using Micro-architecture of Design which is derived from chip design
requirements.
SDC File.
SDC have Timing Constraints, Clock frequency, Input and Output delay requirements,
maximum power consumption, path groups.
Outputs of Logical Synthesis:
Netlist contains Standard cells and macros: its name, instances, drive strength, ports and
inter connection details.
Reports.
Command:
dc_shell
Log file:
In dc_shell, Designers use Log files to keep track the progress of their synthesis process.
These log files contain detailed information about the synthesis process that we have done on dc_shell.
Command:
(or)
read_verilog < rtl file full path >
Than it read next line. In case, any error found in the line it stops reading at that line
only and gives error.
compile
compile
Tool can also read rtl code with directory path without providing rtl file name.
Command:
analyze {rtl file directory path} -autoread -recursive -top < top module
name >
PROJECT – 5
Whenever the tool needs file, It searches required file from the directory paths. Which
are mentioned in search path.
Search path is not mandatory. We can proceed without search path also, but we need to give
full paths for the file every time.
Command:
link library is a pre-defined variable. Link Library is mainly for resolving references. We
provide star * in Link Library it extracts the Macros and some tool default files.
GTECH Library
Symbol Library
Command:
Unresolved References:
In RTL file have function of a cell or module, but that is not found in the Library Files in
the link_library variable. It is called Unresolved References.
To Fix this Error change the library file which contains all reffered cells or modules.
STEP 3: Target library:
From the Target library Design Compiler (tool) will select the cells for Optimization and
Remapping.
In Target Library we use worst PVT corner DB File to met setup slack. We use max path for setup
because, if the worst corner met every PVT corner’s setup slack will met with the same
optimization technique.
Command:
Command:
get_libs
STEP 5: Analyze:
Analyze command translates the source code (RTL) into Machine code (binary format)
and reads the File Line by Line.
If any errors found it will displays after completion of file reading, than we need to report
RTL team.
Command:
analyze {RTL File directory path} –autoread –recursive –top < top module
name >
STEP 6: Elaborate:
RTL code will convert into GTECH and Design Ware components.
If any cells are called from RTL File are not available in GTECH or DW components that referred
cells are linked from the Library Files are loaded in link_library.
Command:
Command:
Get_design
Checks all the modules are called from the RTL File are loaded or
not.
Command:
Check_design
STEP 8: Command:
start_gui
stop_gui
STEP 9: Compile:
In compile stage Mapping is done with the cells which are in target_library
Files.
Here performs:
Boolean Optimization.
Maps all the cells to Technology Libraries.
Logic and Design Optimization.
Logic Optimization:
Constant Folding
Design Optimization:
Power Optimization
Area Optimization
Incremental Clock
Gating.
Command:
Compile
STEP10: Command:
start_gui
stop_gui
Creating a clock
with name,
period and
waveform. From
the source
(clock port).
Command:
create_clock -
name gopi -
period 2.25
[get_ports clk]
Command:
Command:
Input delay is the Delay of Signal from other Block Output to my Block Input.
Command:
Output delay is the Delay of signal from my Block Output to the next Block
Input.
Command:
Driving cell is the source to our Block. If we don’t set Driving cell for Input Ports, there is
No limit in driving by the Input Ports.
Which cause the delay in cells due to High transition time and load. It leads to Violation in
Setup Slack.
Command:
Command:
Input to Register
Register to Register
Register to Output
Input to Output
Command:
Command:
report_timing
Here I have Created a Virtual Clock to met the Violation in (i2o) path group. Virtual clock is
not getting from any Source.
To met the Slacks (violations) we should have Clock. So we are creating Virtual Clock.
Command:
Command:
Command:
We are taking 20% from the Virtual clock period. It is Setup Uncertainity.
Command:
We are taking 15% from the Virtual clock period. It is Hold Uncertainity.
Command:
Command:
report_timing
compile
compile_ultra
Command:
report_area
Command:
report_power
Command:
report_qor
Sanity Checks.
Command:
check_timing
Unclocked registers
unconstrained end
points
combination loops
/timing loops
multiple clocks
reaching a clock pin
unconstrained I/O’s
Command:
Check_design
Empty modules
Unmaped cells
Command:
Command:
write_sdc rptoptop.sdc
Command:
read_ddc rptoptop.ddc
rptoptop.ddc Here we can get reports and continue the remaining process.