|
| 1 | +# Check RC update by incremental global routing after remove_buffer |
| 2 | +source "helpers.tcl" |
| 3 | +if { ![info exists repair_args] } { |
| 4 | + set repair_args {} |
| 5 | +} |
| 6 | + |
| 7 | +read_liberty Nangate45/Nangate45_typ.lib |
| 8 | +read_lef Nangate45/Nangate45.lef |
| 9 | +read_def remove_buffers6.def |
| 10 | +initialize_floorplan -die_area "0 0 40 1200" \ |
| 11 | + -core_area "0 0 40 1200" \ |
| 12 | + -site FreePDK45_38x28_10R_NP_162NW_34O |
| 13 | + |
| 14 | +source Nangate45/Nangate45.vars |
| 15 | +source Nangate45/Nangate45.rc |
| 16 | +source $tracks_file |
| 17 | + |
| 18 | +create_clock -period 0.3 clk |
| 19 | +set_propagated_clock clk |
| 20 | + |
| 21 | +detailed_placement |
| 22 | + |
| 23 | +source Nangate45/Nangate45.rc |
| 24 | +# Intentionaly reduce RC so there is a large discrepancy between |
| 25 | +# placement and global route parasitics. |
| 26 | +set_wire_rc -resistance 0.0001 -capacitance 0.00001 |
| 27 | +set_routing_layers -signal $global_routing_layers |
| 28 | +global_route |
| 29 | +estimate_parasitics -global_routing |
| 30 | + |
| 31 | +# 0. WNS - pre |
| 32 | +report_worst_slack -max |
| 33 | + |
| 34 | +#set_debug_level RSZ repair_setup 10 |
| 35 | +#set_debug_level RSZ opt_moves 10 |
| 36 | +#set_debug_level RSZ remove_buffer 10 |
| 37 | +#set_debug_level EST est_rc 10 |
| 38 | +#set_debug_level GRT incr 10 |
| 39 | + |
| 40 | +remove_buffers u5 |
| 41 | + |
| 42 | +# 1. WNS - after remove_buffer |
| 43 | +report_worst_slack -max |
| 44 | +estimate_parasitics -global_routing |
| 45 | + |
| 46 | +# 2. WNS - after RC update |
| 47 | +report_worst_slack -max |
| 48 | + |
| 49 | +global_route |
| 50 | +estimate_parasitics -global_routing |
| 51 | + |
| 52 | +# 3. WNS - after redundant global routing |
| 53 | +report_worst_slack -max |
| 54 | + |
| 55 | +# WNS 1~3 should be the same |
0 commit comments