Skip to content

Commit 07f41a4

Browse files
committed
Added a new regression to check RC change after remove_buffer
Signed-off-by: Jaehyun Kim <jhkim@precisioninno.com>
1 parent ec86bc7 commit 07f41a4

5 files changed

Lines changed: 132 additions & 1 deletion

File tree

src/rsz/test/BUILD

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,11 @@ TESTS = [
4242
"remove_buffers_hier1",
4343
"remove_buffers1",
4444
"remove_buffers2",
45-
"remove_buffers3",
45+
"remove_buffers4",
46+
"remove_buffers4_hier",
47+
"remove_buffers5",
48+
"remove_buffers5_hier",
49+
"remove_buffers6",
4650
"repair_cap1",
4751
"repair_cap2",
4852
"repair_cap3",

src/rsz/test/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ or_integration_tests(
4343
remove_buffers4_hier
4444
remove_buffers5
4545
remove_buffers5_hier
46+
remove_buffers6
4647
repair_cap1
4748
repair_cap2
4849
repair_cap3

src/rsz/test/remove_buffers6.def

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
#
2+
VERSION 5.8 ;
3+
DIVIDERCHAR "/" ;
4+
BUSBITCHARS "[]" ;
5+
DESIGN reg1 ;
6+
UNITS DISTANCE MICRONS 1000 ;
7+
DIEAREA ( 0 0 ) ( 40000 1200000 ) ;
8+
9+
COMPONENTS 5 ;
10+
- r1 DFF_X1 + PLACED ( 10000 200000 ) N ;
11+
- u1 BUF_X1 + PLACED ( 10000 300000 ) N ;
12+
- u2 BUF_X1 + PLACED ( 10000 400000 ) N ;
13+
- u3 BUF_X1 + PLACED ( 10000 500000 ) N ;
14+
- u4 BUF_X1 + PLACED ( 10000 600000 ) N ;
15+
- u5 BUF_X1 + PLACED ( 10000 700000 ) N ;
16+
- r2 DFF_X1 + PLACED ( 20000 100000 ) N ;
17+
- r3 DFF_X1 + PLACED ( 20000 200000 ) N ;
18+
- r4 DFF_X1 + PLACED ( 20000 300000 ) N ;
19+
- r5 DFF_X1 + PLACED ( 20000 400000 ) N ;
20+
- r6 DFF_X1 + PLACED ( 20000 500000 ) N ;
21+
- r7 DFF_X1 + PLACED ( 20000 600000 ) N ;
22+
- r8 DFF_X1 + PLACED ( 20000 700000 ) N ;
23+
- r9 DFF_X1 + PLACED ( 20000 800000 ) N ;
24+
- r10 DFF_X1 + PLACED ( 20000 900000 ) N ;
25+
- r11 DFF_X1 + PLACED ( 20000 1000000 ) N ;
26+
- r12 DFF_X1 + PLACED ( 10000 1100000 ) N ;
27+
END COMPONENTS
28+
29+
PINS 1 ;
30+
- clk + NET clk + DIRECTION INPUT + USE SIGNAL + FIXED ( 10000 3333 ) N + LAYER metal2 ( 0 0 ) ( 0 0 ) ;
31+
END PINS
32+
33+
SPECIALNETS 2 ;
34+
- VSS ( * VSS )
35+
+ USE GROUND ;
36+
- VDD ( * VDD )
37+
+ USE POWER ;
38+
END SPECIALNETS
39+
40+
NETS 10 ;
41+
- clk ( PIN clk ) ( r1 CK ) ( r2 CK ) ( r3 CK ) ( r4 CK ) ( r5 CK ) ( r6 CK ) ( r7 CK ) + USE SIGNAL ;
42+
- r1q ( r1 Q ) ( u1 A ) ( r3 D ) ( r3 D ) ( r4 D ) ( r5 D ) ( r6 D ) ( r7 D ) ( r8 D ) ( r9 D ) ( r10 D ) ( r11 D ) ( r12 D ) + USE SIGNAL ;
43+
- u1z ( u1 Z ) ( u2 A ) + USE SIGNAL ;
44+
- u2z ( u2 Z ) ( u3 A ) + USE SIGNAL ;
45+
- u3z ( u3 Z ) ( u4 A ) + USE SIGNAL ;
46+
- u4z ( u4 Z ) ( u5 A ) + USE SIGNAL ;
47+
- u5z ( u5 Z ) ( r2 D ) + USE SIGNAL ;
48+
END NETS
49+
50+
END DESIGN

src/rsz/test/remove_buffers6.ok

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
[INFO ODB-0227] LEF file: Nangate45/Nangate45.lef, created 22 layers, 27 vias, 135 library cells
2+
[INFO ODB-0128] Design: reg1
3+
[INFO ODB-0130] Created 1 pins.
4+
[INFO ODB-0131] Created 17 components and 92 component-terminals.
5+
[INFO ODB-0132] Created 2 special nets and 34 connections.
6+
[INFO ODB-0133] Created 7 nets and 30 connections.
7+
[INFO IFP-0001] Added 857 rows of 210 site FreePDK45_38x28_10R_NP_162NW_34O.
8+
Placement Analysis
9+
---------------------------------
10+
total displacement 6.8 u
11+
average displacement 0.4 u
12+
max displacement 0.7 u
13+
original HPWL 2531.1 u
14+
legalized HPWL 2533.0 u
15+
delta HPWL 0 %
16+
17+
worst slack max -0.39
18+
[INFO RSZ-0026] Removed 1 buffers.
19+
worst slack max -0.31
20+
worst slack max -0.31
21+
worst slack max -0.31

src/rsz/test/remove_buffers6.tcl

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
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

Comments
 (0)