Assignment 4
Assignment 4
Assignment-4 (23MVD0024)
Objective:
To perform floor planning, placement and clock tree synthesis on given design
Aim:
Perform floor planning on synthesised netlist using icc2 tool
Perform placement
Perform clock tree synthesis
Server:
Synopsys server (10.10.5.29)
Tool:
ICC2
Steps:
Here for floor planning “ndm” (new data model) libraries are used
Write script file for data preparation
Source data preparation script to icc2 using GUI mode console window or by
command prompt
Save the block
Write script file for floor planning and run command to put macros into the design
Define the boundaries and shape of die and place macros inside block
Write macros file and close icc2 editor
Source created TCL file, now we will have only macros inside die
Run commands for placement of I/O pins
Run commands for placement of power rails
Then place standard cells inside die
Write script for legalized placement and source it
Write script for clock tree synthesis and source it
1) Data preparation:
Script:
#read netlist
read_verilog ../rtl1/report1/ChipTop1_netlist.v
#for horizontal
set_attribute -objects [get_layers {M1 M3 M5 M7 M9}] -name routing_direction -value
horizontal
#for vertical
set_attribute -objects [get_layers {M2 M4 M6 M8 MRDL}] -name routing_direction -value
vertical
#min file
#read_parasitic_tech -tlup
/home/synopsys/SAED14nm_EDK/tech/star_rc/min/saed14nm_1p9m_Cmin.tluplus -
layermap /home/synopsys/#SAED14nm_EDK/tech/star_rc/saed14nm_tf_itf_tluplus.map -
name best_para
source -e -v ./3_mcmm.tcl
save_block -as import_done
save_lib
ASIC design LAB
GUI mode snapshot:
2) Floor plan:
Script:
# SANITY CHECK
#
check_netlist
check_timing
report_design_mismatch -verbose
#########################
# PLACE PINS
set_block_pin_constraints -self -allowed_layers {M3 M4} -sides 2
place_pins -ports [get_ports -filter direction==out]
set_block_pin_constraints -self -allowed_layers {M3 M4} -sides 4
place_pins -ports [get_ports -filter direction==in]
#placing macros
create_placement -floorplan
3) Placement:
Script:
check_design -checks pre_placement_stage
#Specify a maximum utilization that controls how densely the tool can place cells in less
congested areas that surround highly congested areas, so
#that the cells in the congested areas can be spread out to reduce the congestion
set_app_options -name place.coarse.congestion_driven_max_util -value 0.6
#set RC delay for timings which were set during "DATA PREPARATION"
set_parasitic_parameters -early_spec best_para
set_parasitic_parameters -late_spec worst_para
check_legality -verbose
legalize_placement
#TIMING REPORT
report_qor -summary
analyze_design_violations
#for OPTIMIZATION
place_opt -to final_opto
save_block -as placement_done
#TIMING REPORT
report_qor -summary > ./qor.rpt
report_timing > ./timing.rpt
Legalized placement:
#check_clock_tree
clock_opt
# Make the logical connection of PG nets for all the standard cells
report_constraints -all_violators
report_clock_tree_options
report_clock_qor
report_qor -summary
report_timing -delay_type min
report_timing -delay_type max
Timing report:
ASIC design LAB
qor report:
Inference:
In this assignment whole backend flow is carried out on given Chiptop design using icc2 tool.
This flow includes data preparation, floor planning, placement and clock tree synthesis
processes. In this report output of running the script at individual steps are included. After
performing clock tree synthesis there are some violations present in the design which will be
removed later.