@@ -30,8 +30,9 @@ source scripts/startup.tcl
3030load_checkpoint 01_${proj_name} .floorplan
3131
3232# Set layers used for estimate_parasitics
33- set_wire_rc -clock -layer Metal4
34- set_wire_rc -signal -layer Metal4
33+ setDefaultParasitics
34+ set_dont_use $dont_use_cells
35+
3536
3637utl::report " ###############################################################################"
3738utl::report " # Stage 02: PLACEMENT"
@@ -45,11 +46,10 @@ utl::report "###################################################################
4546# which then prevents CTS from running
4647set clock_nets [get_nets -of_objects [get_pins -of_objects " *_reg" -filter " name == CLK" ]]
4748set_dont_touch $clock_nets
48- set_dont_use $dont_use_cells
4949
5050utl::report " Repair tie fanout"
51- repair_tie_fanout sg13g2_tielo/L_LO
52- repair_tie_fanout sg13g2_tiehi/L_HI
51+ repair_tie_fanout $tieHiPin
52+ repair_tie_fanout $tieLoPin
5353
5454utl::report " Remove buffers"
5555remove_buffers
@@ -61,18 +61,12 @@ save_checkpoint 02-01_${proj_name}.pre_place
6161
6262
6363utl::report " ###############################################################################"
64- utl::report " # 02-02: GLOBAL PLACEMENT "
64+ utl::report " # 02-02: Global Placement "
6565utl::report " ###############################################################################"
6666
6767set_thread_count 8
6868
69- # Placement density: 60% of area occupied by standard cells
70- set GPL_ARGS { -density 0.60 }
71-
72- set GPL2_ARGS { -density 0.60
73- -routability_driven
74- -routability_check_overflow 0.30
75- -timing_driven }
69+ # global_placement parameters:
7670# density: In every part of the chip, about N% of the area is occupied by standard cells
7771# routability_driven: Reduce density target when there are a lot of wires in an area
7872# check_overflow: Higher means routability starts being considered earlier in placement
@@ -81,7 +75,7 @@ set GPL2_ARGS { -density 0.60
8175
8276# Rough placement to get parasitics from steiner-tree estimate so we can run repair_timing
8377utl::report " Global Placement (1)"
84- global_placement {*} $GPL_ARGS
78+ global_placement -density 0.60
8579report_metrics " 02-02_${proj_name} .gpl1"
8680report_image " 02-02_${proj_name} .gpl1" true true
8781save_checkpoint 02-02_${proj_name} .gpl1
@@ -98,21 +92,22 @@ save_checkpoint 02-02_${proj_name}.gpl1_repaired
9892
9993# Actual global placement with routability and timing driven
10094utl::report " Global Placement (2)"
101- global_placement {*}$GPL2_ARGS
95+ global_placement -density 0.60 \
96+ -routability_driven \
97+ -routability_check_overflow 0.30 \
98+ -timing_driven
10299report_metrics " 02-02_${proj_name} .gpl2"
103100report_image " 02-02_${proj_name} .gpl2" true true
104101save_checkpoint 02-02_${proj_name} .gpl2
105102
106103
107104utl::report " ###############################################################################"
108- utl::report " # 02-03: DETAILED PLACEMENT "
105+ utl::report " # 02-03: Detailed Placement "
109106utl::report " ###############################################################################"
110107
111- set DPL_ARGS {}
112-
113108# Legalize overlapping cells
114109utl::report " Detailed placement"
115- detailed_placement {*} $DPL_ARGS
110+ detailed_placement
116111
117112utl::report " Optimize mirroring"
118113optimize_mirroring
0 commit comments