Skip to content

Latest commit

 

History

History
401 lines (166 loc) · 9.79 KB

tcl_script_of_synthesis_and_PD.md

File metadata and controls

401 lines (166 loc) · 9.79 KB

Synthesis

Inputs

1 Technology Files (.tf): The technology library contains detailed information about all the metal layers, vias and their design rules.

2 Reference libraries (ref.lib) (. DB'S)

3 RTL (Verilog code) files

4 Design constraints(.sdc): Standard design constraints or Synopsys design constraints contains the timing and power related constraints which control design

5 TLU-plus files (parasitic files): TLU+ file is a binary file which is a kind model contains advanced process effect that can be used to extract RC value from interconnects.


Synthesis Step-1 (Creating the Milky Way Libraries):

set tech_file {../ref/tech/saed32nm_1p9m.tf}

set synthetic_library dw_foundation.sldb

#set mw_path "./libs/mw_libs"

set mw_ref_libs "./libs/mw_libs/saed32_io_fc ./libs/mw_libs/saed32nm_lvt_1p9m"

set my_mw_lib riscv_mw_lib.mw

create_mw_lib $my_mw_lib
-technology $tech_file
-mw_reference_library $mw_ref_libs
-open


Synthesis Step-2 (Setting the Libraries):

set target_library {
../ref/DBs/saed32lvt_ss0p95v125c.db
../ref/DBs/saed32lvt_ss0p95v125c.db
../ref/DBs/saed32rvt_ss0p95v125c.db
../ref/DBs/saed32hvt_ss0p75v125c.db
../ref/DBs/saed32sramlp_ss0p95v125c_i0p95v.db}

set link_library {
../ref/DBs/saed32lvt_ss0p95v125c.db
../ref/DBs/saed32lvt_ss0p95v125c.db
../ref/DBs/saed32rvt_ss0p95v125c.db
../ref/DBs/saed32hvt_ss0p75v125c.db
../ref/DBs/saed32sramlp_ss0p95v125c_i0p95v.db} set ref_libs {
../ref/DBs/saed32lvt_ss0p95v125c.db
../ref/DBs/saed32lvt_ss0p95v125c.db
../ref/DBs/saed32rvt_ss0p95v125c.db
../ref/DBs/saed32hvt_ss0p75v125c.db
../ref/DBs/saed32sramlp_ss0p95v125c_i0p95v.db}

set_tlu_plus_files
-max_tluplus ../ref/tech/saed32nm_1p9m_Cmax.lv.tluplus
-min_tluplus ../ref/tech/saed32nm_1p9m_Cmin.lv.tluplus \


Synthesis Step-3 (Reading SDC and RTL):

source ./scripts/riscv_rtl.tcl

current_design riscv_cpu

read_sdc ./constraints/riscv.sdc

Hierarchical view:

image image image


Synthesis Step-4 (Compile Ultra):

compile_ultra -no_autoungroup -no_boundary_optimization


Synthesis Step-5 (Generating Reports)

write_icc2_files -output ./results/riscv -force

write -hierarchy -format ddc -output ./results/riscv.ddc

report_area > ./reports/riscv.rpt

report_hierarchy > ./reports/riscv.rpt

report_design > ./reports/riscv.rpt

report_timing -path full > ./reports/riscv.rpt

report_power > ./reports/riscv.rpt

write -hierarchy -format verilog -output ./results/riscv.v

write_sdf ./reports/riscv.sdf

write_parasitics -output ./results/riscv_v_parastics_8_6

write_sdc ./results/riscv.sdc

write -format ddc -h -o ./results/riscv.ddc


Output:

Gate-level Netlist

SDC

Power, timing, and area reports


PNR flow

Inputs

Technology files(.tf): Detailed information about all the metal layers, vias and their design rules.

NDM libraries: A reference library format used by Synopsys IC compiler II tool

TLU-plus files (parasitic files): TLU+ file is a binary file which is a kind model contains advanced process effect that can be used to extract RC value from interconnects.

Design constraints file and Gate-level Netlist from DC

Step-1 (Creating Library)

#library creation create_lib -technology ../ref/tech/saed32nm_1p9m.tf -ref_libs
{../ref/CLIBs/saed32_1p9m_tech.ndm ../ref/CLIBs/saed32_hvt.ndm
../ref/CLIBs/saed32_lvt.ndm ../ref/CLIBs/saed32_rvt.ndm
../ref/CLIBs/saed32_sram_lp.ndm} riscv_block


Step-2 (Reading Netlist and SDC)

#reading netlist and SDC read_verilog ../synthysis_DC/results/riscv.v read_sdc ../synthysis_DC/results/riscv.sdc image


Step-3 (Reading TLU+ Files and MCMM)

#parasitic reading read_parasitic_tech -name {new_model} -tlup {../ref/tech/saed32nm_1p9m_Cmin.lv.tluplus} -layermap
{../ref/tech/saed32nm_tf_itf_tluplus.map} read_parasitic_tech -layermap ../ref/tech/saed32nm_tf_itf_tluplus.map -tlup ../ref/tech/saed32nm_1p9m_Cmax.lv.nxtgrd -name maxTLU read_parasitic_tech -layermap ../ref/tech/saed32nm_tf_itf_tluplus.map -tlup ../ref/tech/saed32nm_1p9m_Cmin.lv.nxtgrd -name minTLU

#mcmm source -echo ../design_data/mcmm_risc_core.tcl


Step-4 (Floorplanning)

#floor plan
initialize_floorplan -shape U -orientation E -side_ratio {15 5 3 3 3 3} -core_offset {5}

set_block_pin_constraints -self -allowed_layers {M3 M4} -sides 1

place_pins -ports [get_ports -filter direction==in]

set_block_pin_constraints -self -allowed_layers {M3 M4} -sides {2 3 5 7}

place_pins -ports [get_ports -filter direction==out]

set_attribute [get_ports *] physical_status fixed

image


Step-5 (Powerplanning)

source ./scripts/powerplan.tcl

check_pg_drc

image

image


Step-6 (Placement)

check_design -checks pre_placement_stage

create_placement -floorplan

image

legalize_placement

image

place_pins -self

place_opt

report_placement

report_timing


Step-7 (CTS)

check_design -checks pre_clock_tree_stage

set_app_options -name time.remove_clock_reconvergence_pessimism -value true

report_clock_settings

report_qor -summary

report_timing

clock_opt

report_timing

image


Step-8 (Routing)

#routing

#set_routing_rule all -clear -default_rule -min_routing_layer 1 -max_routing_layer 9

check_design -checks pre_route_stage

route_auto -max_detail_route_iterations 30

route_eco

route_opt

report_timing

report_routing_corridors

image

image

image


Reports

Slack -0.01ns met

WNS for Setup is 0.01

WNS for Hold is 0.06

Cell area is 24782.09

Total Type of cells used is 159

Total no of std cells is 7304

DRC Violation of pg is 0


Output

GDS II file

SDC file

SDF file

Specification file