Hands on Synthesis tool
In terminal :
create the dir/folder by name workshop_june
mkdir workshop_june
cd workshop_june/
mkdir PD SYNTHESIS
cd SYNTHESIS/
mkdir inputs outputs
cd inputs/
files required for the synthesis:
cp -rf /home/abhi/workshop/chiptop_gprs/syn2/inputs/rtl/ ./
cp -rf /home/abhi/workshop/chiptop_gprs/syn2/inputs/chiptop.sdc ./
cp -rf /home/vlsiguru/ORCA_TOP/ref/DBs/saed32ss0p95125c ./
cd ../
be into SYNTHESIS
1.csh
2.source /home/tools/synopsys/cshrc_synopsys
3.dc_shell
set search_path ./inputs
set link_library “saed32hvt_ss0p95v125c.db saed32rvt_ss0p95v125c.db saed32lvt_ss0p95v125c.db saed32sramlp_ss0p95v125c_i0p95v.db”
set target_library “saed32hvt_ss0p95v125c.db saed32rvt_ss0p95v125c.db saed32lvt_ss0p95v125c.db saed32sramlp_ss0p95v125c_i0p95v.db”
set a {./inputs/rtl/addpp32.v
./inputs/rtl/address_gen.v
./inputs/rtl/genpp32.v
./inputs/rtl/mult3232.v
./inputs/rtl/top_odyssey.v
./inputs/rtl/InstDecode.v
./inputs/rtl/cla.v
./inputs/rtl/csa.v
./inputs/rtl/gpr.v
./inputs/rtl/srff.v
./inputs/rtl/power_controller.v
./inputs/rtl/MemYHier.v
./inputs/rtl/MemXHier.v}
analyze -format verilog -top Chiptop -autoread $a
elaborate ChipTop
source ./inputs/chiptop.sdc
compile_ultra
write_file -format verilog -hierarchy -output ./outputs/gprs_netlist.v
report_power
report_area
report_timimg
Hands on Physical design
Hands on Physical design:
open the teriminal
cd workshop_june
cd PD
mkdir inputs outputs logs
cd inputs
cp -rf /home/vlsiguru/ORCA_TOP/ref/CLIBs/* ./
cp -rf /home/abhi/workshop/chiptop_gprs/pd/inputs/ChipTop_netlist.v ./
cp -rf /home/abhi/workshop/chiptop_gprs/pd/inputs/chiptop.sdc ./
cp -rf /home/tools/libraries/tech/star_rcxt/saed32nm_1p9m_nominal.tluplus ./
be in PD dir
1.csh
2.source /home/tools/synopsys/cshrc_synopsys
3.icc2_shell
set search_path ./inputs
create_lib -ref_libs {saed32_hvt.ndm saed32_rvt.ndm saed32_lvt.ndm saed32_sram_lp.ndm saed32_1p9m_tech.ndm} ./inputs/mydesign.nlib
save_lib
read_verilog ./inputs/ChipTop_netlist.v
save_block
set search_path ./inputs
read_parasitic_tech -tlup saed32nm_1p9m_nominal.tluplus -name cnom
set_parasitic_parameters -early_spec cnom -late_spec cnom
source ./inputs/chiptop.sdc
report_clocks
Parametes
initialize_floorplan -core_utilization 0.7 -side_ratio {1 1} -core_offset 5 -use_site_row
start_gui
save_block -as core_die_area
list_blocks
report_design
report_clocks
sizeof_collection [get_flat_cells]
sizeof_collection [get_flat_cells -filter “is_hard_macro==true”]
icc2_shell> sizeof_collection [get_flat_cells -filter “is_hard_macro == false”]
sizeof_collection [get_flat_cells -filter “is_hard_macro”]
ports should placed be on the tracks
set_block_pin_constraints -allowed_layers {M5 M6} -self
place_pins -ports [get_ports]
check_pin_placement -ports [get_ports] -wire_track true
save_block -as port_placement_done
create_keepout_margin -outer {2 2 2 2} [get_flat_cells -filter “is_hard_macro”]
set_fixed_objects [get_flat_cells -filter “is_hard_macro”]
set_fixed_objects [get_flat_cells -filter “is_hard_macro”] -unfix
derive_placement_blockages
save_block -as macro_placement_done
open_lib ./inputs/mydesign.nlib
list_blocks
open_block
ex: open_block macro_placement_done
cp -rf /home/abhi/feb_workshop/PD/inputs/powerplan.tcl ./
source ./inputs/powerplan.tcl
save_block -as power_plan_done
check_pg_connectivity -check_std_cell_pins none
set_app_options -name place.coarse.continue_on_missing_scandef -value true
set_attribute [get_lib_cells TIE] dont_touch false
set_attribute [get_lib_cells TIE] dont_use false
create_plavement
legalize_placement
## Improve the placement to have less timimg violations
# 1) reduce the congestion
# 2) reduce timimg voilation
# 3) reduce the power consumption
place_opt
report_golbal_timimg
check_pg_connectivity -check_std_cell_pins none
save_block -as place_opt_done
set_clock_tree_options -target_skew 0.05 -target_latency 0.4
set_max_transition 0.1 -clock_path [get_clocks]
set_lib_cell_purpose -include cts “NBUFFRVT INVRVT “
clock_opt
save_block -as clock_opt_done
report_clock_qor > ./outputs/clock_qor.txt
report_global_timing
set_ignored_layers -max_routing_layer M6
route_auto
route_opt
save_block -as route_opt_done
gui_show_man_page
check_lvs -max_errors 0
set_ignored_layers -max_routing_layer M6
set_app_options -name route.common.net_max_layer_mode -value soft
source ./inputs/powerplan.tcl
optimize_routes
check_lvs -max_errors 0
save_block -as route_opt_done
check_routes
route_eco
write_strem file_name.gds