Skip to content

Commit 9b0caf1

Browse files
authored
Merge pull request The-OpenROAD-Project#9761 from The-OpenROAD-Project-staging/secure-fix-net-name-collision
odb: consolidate unique net name APIs into unified makeNewNetName
2 parents a64ad10 + 0acbc69 commit 9b0caf1

23 files changed

+872
-471
lines changed

src/cts/test/gated_clock4.vok

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
module multi_sink (clk);
22
input clk;
33

4-
wire clknet_1_1__leaf_clk_1;
4+
wire clknet_1_1__leaf_clk_2;
55
wire clknet_1_0__leaf_clk_1;
66
wire gclk1;
77
wire gclk3;
@@ -64,7 +64,7 @@ module multi_sink (clk);
6464
CLKBUF_X3 clkbuf_1_0__f_gclk4 (.A(clknet_0_gclk4),
6565
.Z(clknet_1_0__leaf_gclk4));
6666
CLKBUF_X3 clkbuf_1_1__f_clk (.A(delaynet_6_core),
67-
.Z(clknet_1_1__leaf_clk_1));
67+
.Z(clknet_1_1__leaf_clk_2));
6868
CLKBUF_X3 clkbuf_2_0__f_gclk1 (.A(clknet_0_gclk1),
6969
.Z(clknet_2_0__leaf_gclk1));
7070
CLKBUF_X3 clkbuf_2_0__f_gclk3 (.A(clknet_0_gclk3),
@@ -235,13 +235,13 @@ module multi_sink (clk);
235235
DFF_X1 ff285 (.CK(clknet_2_0__leaf_gclk3));
236236
DFF_X1 ff286 (.CK(clknet_2_2__leaf_gclk3));
237237
DFF_X1 ff287 (.CK(clknet_2_1__leaf_gclk3));
238-
CLKGATE_X1 gclk1 (.CK(clknet_1_1__leaf_clk_1),
238+
CLKGATE_X1 gclk1 (.CK(clknet_1_1__leaf_clk_2),
239239
.GCK(gclk1));
240240
CLKGATE_X1 gclk3 (.CK(clknet_1_0__leaf_gclk4),
241241
.GCK(gclk3));
242242
CLKGATE_X1 gclk4 (.CK(clknet_1_0__leaf_clk_1),
243243
.GCK(gclk4));
244-
hier_block h1 (.clknet_1_1__leaf_clk_i(clknet_1_1__leaf_clk_1),
244+
hier_block h1 (.clknet_1_1__leaf_clk_i(clknet_1_1__leaf_clk_2),
245245
.clknet_1_0__leaf_clk_i(clknet_1_0__leaf_clk_1));
246246
endmodule
247247
module hier_block (clknet_1_1__leaf_clk_i,

src/cts/test/hier_insertion_delay.vok

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
module multi_sink (clk);
22
input clk;
33

4-
wire clknet_leaf_15_clk_regs_1;
5-
wire clknet_leaf_13_clk_regs_1;
6-
wire clknet_leaf_12_clk_regs_1;
4+
wire clknet_leaf_15_clk_regs_4;
5+
wire clknet_leaf_13_clk_regs_3;
6+
wire clknet_leaf_12_clk_regs_2;
77
wire clknet_leaf_11_clk_regs_1;
88
wire clk_regs;
99
wire clknet_0_clk;
@@ -55,13 +55,13 @@ module multi_sink (clk);
5555
CLKBUF_X3 clkbuf_leaf_11_clk_regs (.A(clknet_1_1__leaf_clk_regs),
5656
.Z(clknet_leaf_11_clk_regs_1));
5757
CLKBUF_X3 clkbuf_leaf_12_clk_regs (.A(clknet_1_1__leaf_clk_regs),
58-
.Z(clknet_leaf_12_clk_regs_1));
58+
.Z(clknet_leaf_12_clk_regs_2));
5959
CLKBUF_X3 clkbuf_leaf_13_clk_regs (.A(clknet_1_1__leaf_clk_regs),
60-
.Z(clknet_leaf_13_clk_regs_1));
60+
.Z(clknet_leaf_13_clk_regs_3));
6161
CLKBUF_X3 clkbuf_leaf_14_clk_regs (.A(clknet_1_0__leaf_clk_regs),
6262
.Z(clknet_leaf_14_clk_regs));
6363
CLKBUF_X3 clkbuf_leaf_15_clk_regs (.A(clknet_1_0__leaf_clk_regs),
64-
.Z(clknet_leaf_15_clk_regs_1));
64+
.Z(clknet_leaf_15_clk_regs_4));
6565
CLKBUF_X3 clkbuf_leaf_16_clk_regs (.A(clknet_1_0__leaf_clk_regs),
6666
.Z(clknet_leaf_16_clk_regs));
6767
CLKBUF_X3 clkbuf_leaf_17_clk_regs (.A(clknet_1_0__leaf_clk_regs),
@@ -298,7 +298,7 @@ module multi_sink (clk);
298298
DFF_X1 ff271 (.CK(clknet_leaf_21_clk_regs));
299299
DFF_X1 ff272 (.CK(clknet_leaf_5_clk_regs));
300300
DFF_X1 ff273 (.CK(clknet_leaf_7_clk_regs));
301-
DFF_X1 ff274 (.CK(clknet_leaf_15_clk_regs_1));
301+
DFF_X1 ff274 (.CK(clknet_leaf_15_clk_regs_4));
302302
DFF_X1 ff275 (.CK(clknet_leaf_22_clk_regs));
303303
DFF_X1 ff276 (.CK(clknet_leaf_6_clk_regs));
304304
DFF_X1 ff277 (.CK(clknet_leaf_10_clk_regs));
@@ -322,73 +322,73 @@ module multi_sink (clk);
322322
DFF_X1 ff35 (.CK(clknet_leaf_14_clk_regs));
323323
DFF_X1 ff36 (.CK(clknet_leaf_5_clk_regs));
324324
DFF_X1 ff37 (.CK(clknet_leaf_9_clk_regs));
325-
DFF_X1 ff38 (.CK(clknet_leaf_15_clk_regs_1));
326-
DFF_X1 ff39 (.CK(clknet_leaf_13_clk_regs_1));
325+
DFF_X1 ff38 (.CK(clknet_leaf_15_clk_regs_4));
326+
DFF_X1 ff39 (.CK(clknet_leaf_13_clk_regs_3));
327327
DFF_X1 ff4 (.CK(clknet_leaf_6_clk_regs));
328328
DFF_X1 ff40 (.CK(clknet_leaf_10_clk_regs));
329329
DFF_X1 ff41 (.CK(clknet_leaf_16_clk_regs));
330-
DFF_X1 ff42 (.CK(clknet_leaf_13_clk_regs_1));
330+
DFF_X1 ff42 (.CK(clknet_leaf_13_clk_regs_3));
331331
DFF_X1 ff43 (.CK(clknet_leaf_5_clk_regs));
332332
DFF_X1 ff44 (.CK(clknet_leaf_10_clk_regs));
333333
DFF_X1 ff45 (.CK(clknet_leaf_16_clk_regs));
334334
DFF_X1 ff46 (.CK(clknet_leaf_14_clk_regs));
335335
DFF_X1 ff47 (.CK(clknet_leaf_5_clk_regs));
336336
DFF_X1 ff48 (.CK(clknet_leaf_9_clk_regs));
337-
DFF_X1 ff49 (.CK(clknet_leaf_15_clk_regs_1));
338-
DFF_X1 ff5 (.CK(clknet_leaf_13_clk_regs_1));
337+
DFF_X1 ff49 (.CK(clknet_leaf_15_clk_regs_4));
338+
DFF_X1 ff5 (.CK(clknet_leaf_13_clk_regs_3));
339339
DFF_X1 ff50 (.CK(clknet_leaf_6_clk_regs));
340340
DFF_X1 ff51 (.CK(clknet_leaf_10_clk_regs));
341341
DFF_X1 ff52 (.CK(clknet_leaf_16_clk_regs));
342-
DFF_X1 ff53 (.CK(clknet_leaf_13_clk_regs_1));
342+
DFF_X1 ff53 (.CK(clknet_leaf_13_clk_regs_3));
343343
DFF_X1 ff54 (.CK(clknet_leaf_6_clk_regs));
344344
DFF_X1 ff55 (.CK(clknet_leaf_9_clk_regs));
345345
DFF_X1 ff56 (.CK(clknet_leaf_16_clk_regs));
346346
DFF_X1 ff57 (.CK(clknet_leaf_14_clk_regs));
347-
DFF_X1 ff58 (.CK(clknet_leaf_12_clk_regs_1));
347+
DFF_X1 ff58 (.CK(clknet_leaf_12_clk_regs_2));
348348
DFF_X1 ff59 (.CK(clknet_leaf_9_clk_regs));
349-
DFF_X1 ff6 (.CK(clknet_leaf_15_clk_regs_1));
350-
DFF_X1 ff60 (.CK(clknet_leaf_13_clk_regs_1));
349+
DFF_X1 ff6 (.CK(clknet_leaf_15_clk_regs_4));
350+
DFF_X1 ff60 (.CK(clknet_leaf_13_clk_regs_3));
351351
DFF_X1 ff61 (.CK(clknet_leaf_6_clk_regs));
352352
DFF_X1 ff62 (.CK(clknet_leaf_10_clk_regs));
353-
DFF_X1 ff63 (.CK(clknet_leaf_15_clk_regs_1));
354-
DFF_X1 ff64 (.CK(clknet_leaf_13_clk_regs_1));
355-
DFF_X1 ff65 (.CK(clknet_leaf_12_clk_regs_1));
353+
DFF_X1 ff63 (.CK(clknet_leaf_15_clk_regs_4));
354+
DFF_X1 ff64 (.CK(clknet_leaf_13_clk_regs_3));
355+
DFF_X1 ff65 (.CK(clknet_leaf_12_clk_regs_2));
356356
DFF_X1 ff66 (.CK(clknet_leaf_10_clk_regs));
357357
DFF_X1 ff67 (.CK(clknet_leaf_16_clk_regs));
358358
DFF_X1 ff68 (.CK(clknet_leaf_14_clk_regs));
359-
DFF_X1 ff69 (.CK(clknet_leaf_12_clk_regs_1));
359+
DFF_X1 ff69 (.CK(clknet_leaf_12_clk_regs_2));
360360
DFF_X1 ff7 (.CK(clknet_leaf_9_clk_regs));
361361
DFF_X1 ff70 (.CK(clknet_leaf_14_clk_regs));
362-
DFF_X1 ff71 (.CK(clknet_leaf_13_clk_regs_1));
362+
DFF_X1 ff71 (.CK(clknet_leaf_13_clk_regs_3));
363363
DFF_X1 ff74 (.CK(clknet_leaf_11_clk_regs_1));
364364
DFF_X1 ff75 (.CK(clknet_leaf_11_clk_regs_1));
365-
DFF_X1 ff76 (.CK(clknet_leaf_15_clk_regs_1));
366-
DFF_X1 ff77 (.CK(clknet_leaf_13_clk_regs_1));
367-
DFF_X1 ff78 (.CK(clknet_leaf_12_clk_regs_1));
365+
DFF_X1 ff76 (.CK(clknet_leaf_15_clk_regs_4));
366+
DFF_X1 ff77 (.CK(clknet_leaf_13_clk_regs_3));
367+
DFF_X1 ff78 (.CK(clknet_leaf_12_clk_regs_2));
368368
DFF_X1 ff79 (.CK(clknet_leaf_10_clk_regs));
369369
DFF_X1 ff8 (.CK(clknet_leaf_16_clk_regs));
370370
DFF_X1 ff80 (.CK(clknet_leaf_14_clk_regs));
371-
DFF_X1 ff81 (.CK(clknet_leaf_12_clk_regs_1));
371+
DFF_X1 ff81 (.CK(clknet_leaf_12_clk_regs_2));
372372
DFF_X1 ff82 (.CK(clknet_leaf_11_clk_regs_1));
373373
DFF_X1 ff83 (.CK(clknet_leaf_14_clk_regs));
374-
DFF_X1 ff84 (.CK(clknet_leaf_12_clk_regs_1));
374+
DFF_X1 ff84 (.CK(clknet_leaf_12_clk_regs_2));
375375
DFF_X1 ff85 (.CK(clknet_leaf_11_clk_regs_1));
376376
DFF_X1 ff86 (.CK(clknet_leaf_11_clk_regs_1));
377-
DFF_X1 ff87 (.CK(clknet_leaf_15_clk_regs_1));
378-
DFF_X1 ff88 (.CK(clknet_leaf_13_clk_regs_1));
379-
DFF_X1 ff89 (.CK(clknet_leaf_12_clk_regs_1));
377+
DFF_X1 ff87 (.CK(clknet_leaf_15_clk_regs_4));
378+
DFF_X1 ff88 (.CK(clknet_leaf_13_clk_regs_3));
379+
DFF_X1 ff89 (.CK(clknet_leaf_12_clk_regs_2));
380380
DFF_X1 ff9 (.CK(clknet_leaf_11_clk_regs_1));
381-
DFF_X1 ff92 (.CK(clknet_leaf_15_clk_regs_1));
381+
DFF_X1 ff92 (.CK(clknet_leaf_15_clk_regs_4));
382382
DFF_X1 ff93 (.CK(clknet_leaf_14_clk_regs));
383-
DFF_X1 ff94 (.CK(clknet_leaf_12_clk_regs_1));
383+
DFF_X1 ff94 (.CK(clknet_leaf_12_clk_regs_2));
384384
DFF_X1 ff95 (.CK(clknet_leaf_11_clk_regs_1));
385-
DFF_X1 ff96 (.CK(clknet_leaf_15_clk_regs_1));
386-
DFF_X1 ff97 (.CK(clknet_leaf_12_clk_regs_1));
385+
DFF_X1 ff96 (.CK(clknet_leaf_15_clk_regs_4));
386+
DFF_X1 ff97 (.CK(clknet_leaf_12_clk_regs_2));
387387
DFF_X1 ff98 (.CK(clknet_leaf_11_clk_regs_1));
388388
DFF_X1 ff99 (.CK(clknet_leaf_11_clk_regs_1));
389-
hier_block h1 (.clknet_leaf_15_clk_regs_i(clknet_leaf_15_clk_regs_1),
390-
.clknet_leaf_13_clk_regs_i(clknet_leaf_13_clk_regs_1),
391-
.clknet_leaf_12_clk_regs_i(clknet_leaf_12_clk_regs_1),
389+
hier_block h1 (.clknet_leaf_15_clk_regs_i(clknet_leaf_15_clk_regs_4),
390+
.clknet_leaf_13_clk_regs_i(clknet_leaf_13_clk_regs_3),
391+
.clknet_leaf_12_clk_regs_i(clknet_leaf_12_clk_regs_2),
392392
.clknet_leaf_11_clk_regs_i(clknet_leaf_11_clk_regs_1));
393393
array_tile inst_0 (.clk(clknet_1_0__leaf_clk));
394394
endmodule

src/cts/test/simple_test_hier_out.vok

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,93 +1,93 @@
11
module test_16_sinks (clk);
22
input clk;
33

4-
wire clknet_1_1__leaf_clk_1;
4+
wire clknet_1_1__leaf_clk_2;
55
wire clknet_1_0__leaf_clk_1;
66
wire clknet_0_clk;
77

8-
flop_pair U1 (.clknet_1_1__leaf_clk_1_i(clknet_1_1__leaf_clk_1),
8+
flop_pair U1 (.clknet_1_1__leaf_clk_2_i(clknet_1_1__leaf_clk_2),
99
.clknet_1_0__leaf_clk_1_i(clknet_1_0__leaf_clk_1));
10-
flop_pair_U2 U2 (.clknet_1_1__leaf_clk_1_i(clknet_1_1__leaf_clk_1),
10+
flop_pair_U2 U2 (.clknet_1_1__leaf_clk_2_i(clknet_1_1__leaf_clk_2),
1111
.clknet_1_0__leaf_clk_1_i(clknet_1_0__leaf_clk_1));
12-
flop_pair_U3 U3 (.clknet_1_1__leaf_clk_1_i(clknet_1_1__leaf_clk_1));
13-
flop_pair_U4 U4 (.clknet_1_1__leaf_clk_1_i(clknet_1_1__leaf_clk_1),
12+
flop_pair_U3 U3 (.clknet_1_1__leaf_clk_2_i(clknet_1_1__leaf_clk_2));
13+
flop_pair_U4 U4 (.clknet_1_1__leaf_clk_2_i(clknet_1_1__leaf_clk_2),
1414
.clknet_1_0__leaf_clk_1_i(clknet_1_0__leaf_clk_1));
15-
flop_pair_U5 U5 (.clknet_1_1__leaf_clk_1_i(clknet_1_1__leaf_clk_1),
15+
flop_pair_U5 U5 (.clknet_1_1__leaf_clk_2_i(clknet_1_1__leaf_clk_2),
1616
.clknet_1_0__leaf_clk_1_i(clknet_1_0__leaf_clk_1));
17-
flop_pair_U6 U6 (.clknet_1_1__leaf_clk_1_i(clknet_1_1__leaf_clk_1),
17+
flop_pair_U6 U6 (.clknet_1_1__leaf_clk_2_i(clknet_1_1__leaf_clk_2),
1818
.clknet_1_0__leaf_clk_1_i(clknet_1_0__leaf_clk_1));
19-
flop_pair_U7 U7 (.clknet_1_1__leaf_clk_1_i(clknet_1_1__leaf_clk_1),
19+
flop_pair_U7 U7 (.clknet_1_1__leaf_clk_2_i(clknet_1_1__leaf_clk_2),
2020
.clknet_1_0__leaf_clk_1_i(clknet_1_0__leaf_clk_1));
21-
flop_pair_U8 U8 (.clknet_1_1__leaf_clk_i(clknet_1_1__leaf_clk_1),
21+
flop_pair_U8 U8 (.clknet_1_1__leaf_clk_i(clknet_1_1__leaf_clk_2),
2222
.clknet_1_0__leaf_clk_i(clknet_1_0__leaf_clk_1));
2323
CLKBUF_X3 clkbuf_0_clk (.A(clk),
2424
.Z(clknet_0_clk));
2525
CLKBUF_X3 clkbuf_1_0__f_clk (.A(clknet_0_clk),
2626
.Z(clknet_1_0__leaf_clk_1));
2727
CLKBUF_X3 clkbuf_1_1__f_clk (.A(clknet_0_clk),
28-
.Z(clknet_1_1__leaf_clk_1));
28+
.Z(clknet_1_1__leaf_clk_2));
2929
INV_X1 clkload0 (.A(clknet_1_0__leaf_clk_1));
3030
endmodule
31-
module flop_pair (clknet_1_1__leaf_clk_1_i,
31+
module flop_pair (clknet_1_1__leaf_clk_2_i,
3232
clknet_1_0__leaf_clk_1_i);
33-
input clknet_1_1__leaf_clk_1_i;
33+
input clknet_1_1__leaf_clk_2_i;
3434
input clknet_1_0__leaf_clk_1_i;
3535

3636

3737
DFF_X1 ff1 (.CK(clknet_1_0__leaf_clk_1_i));
38-
DFF_X1 ff2 (.CK(clknet_1_1__leaf_clk_1_i));
38+
DFF_X1 ff2 (.CK(clknet_1_1__leaf_clk_2_i));
3939
endmodule
40-
module flop_pair_U2 (clknet_1_1__leaf_clk_1_i,
40+
module flop_pair_U2 (clknet_1_1__leaf_clk_2_i,
4141
clknet_1_0__leaf_clk_1_i);
42-
input clknet_1_1__leaf_clk_1_i;
42+
input clknet_1_1__leaf_clk_2_i;
4343
input clknet_1_0__leaf_clk_1_i;
4444

4545

46-
DFF_X1 ff1 (.CK(clknet_1_1__leaf_clk_1_i));
46+
DFF_X1 ff1 (.CK(clknet_1_1__leaf_clk_2_i));
4747
DFF_X1 ff2 (.CK(clknet_1_0__leaf_clk_1_i));
4848
endmodule
49-
module flop_pair_U3 (clknet_1_1__leaf_clk_1_i);
50-
input clknet_1_1__leaf_clk_1_i;
49+
module flop_pair_U3 (clknet_1_1__leaf_clk_2_i);
50+
input clknet_1_1__leaf_clk_2_i;
5151

5252

53-
DFF_X1 ff1 (.CK(clknet_1_1__leaf_clk_1_i));
54-
DFF_X1 ff2 (.CK(clknet_1_1__leaf_clk_1_i));
53+
DFF_X1 ff1 (.CK(clknet_1_1__leaf_clk_2_i));
54+
DFF_X1 ff2 (.CK(clknet_1_1__leaf_clk_2_i));
5555
endmodule
56-
module flop_pair_U4 (clknet_1_1__leaf_clk_1_i,
56+
module flop_pair_U4 (clknet_1_1__leaf_clk_2_i,
5757
clknet_1_0__leaf_clk_1_i);
58-
input clknet_1_1__leaf_clk_1_i;
58+
input clknet_1_1__leaf_clk_2_i;
5959
input clknet_1_0__leaf_clk_1_i;
6060

6161

6262
DFF_X1 ff1 (.CK(clknet_1_0__leaf_clk_1_i));
63-
DFF_X1 ff2 (.CK(clknet_1_1__leaf_clk_1_i));
63+
DFF_X1 ff2 (.CK(clknet_1_1__leaf_clk_2_i));
6464
endmodule
65-
module flop_pair_U5 (clknet_1_1__leaf_clk_1_i,
65+
module flop_pair_U5 (clknet_1_1__leaf_clk_2_i,
6666
clknet_1_0__leaf_clk_1_i);
67-
input clknet_1_1__leaf_clk_1_i;
67+
input clknet_1_1__leaf_clk_2_i;
6868
input clknet_1_0__leaf_clk_1_i;
6969

7070

7171
DFF_X1 ff1 (.CK(clknet_1_0__leaf_clk_1_i));
72-
DFF_X1 ff2 (.CK(clknet_1_1__leaf_clk_1_i));
72+
DFF_X1 ff2 (.CK(clknet_1_1__leaf_clk_2_i));
7373
endmodule
74-
module flop_pair_U6 (clknet_1_1__leaf_clk_1_i,
74+
module flop_pair_U6 (clknet_1_1__leaf_clk_2_i,
7575
clknet_1_0__leaf_clk_1_i);
76-
input clknet_1_1__leaf_clk_1_i;
76+
input clknet_1_1__leaf_clk_2_i;
7777
input clknet_1_0__leaf_clk_1_i;
7878

7979

8080
DFF_X1 ff1 (.CK(clknet_1_0__leaf_clk_1_i));
81-
DFF_X1 ff2 (.CK(clknet_1_1__leaf_clk_1_i));
81+
DFF_X1 ff2 (.CK(clknet_1_1__leaf_clk_2_i));
8282
endmodule
83-
module flop_pair_U7 (clknet_1_1__leaf_clk_1_i,
83+
module flop_pair_U7 (clknet_1_1__leaf_clk_2_i,
8484
clknet_1_0__leaf_clk_1_i);
85-
input clknet_1_1__leaf_clk_1_i;
85+
input clknet_1_1__leaf_clk_2_i;
8686
input clknet_1_0__leaf_clk_1_i;
8787

8888

8989
DFF_X1 ff1 (.CK(clknet_1_0__leaf_clk_1_i));
90-
DFF_X1 ff2 (.CK(clknet_1_1__leaf_clk_1_i));
90+
DFF_X1 ff2 (.CK(clknet_1_1__leaf_clk_2_i));
9191
endmodule
9292
module flop_pair_U8 (clknet_1_1__leaf_clk_i,
9393
clknet_1_0__leaf_clk_i);

src/dbSta/src/dbEditHierarchy.cc

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -619,21 +619,12 @@ std::string dbEditHierarchy::makeUniqueName(odb::dbModule* module,
619619
base_name = name;
620620
}
621621

622-
std::string unique_name = base_name;
623-
int id = 0;
624-
625-
Instance* inst = db_network_->dbToSta(module->getModInst());
626-
if (inst == nullptr) {
627-
inst = db_network_->topInstance();
628-
}
629-
630-
// Check collision with both hierarchical ports and flat & hier nets
631-
while (module->findModBTerm(unique_name.c_str())
632-
|| db_network_->findNet(inst, unique_name.c_str())) {
633-
id++;
634-
unique_name = fmt::format("{}_{}", base_name, id);
635-
}
636-
return unique_name;
622+
odb::dbBlock* block = db_network_->block();
623+
std::string full = block->makeNewNetName(
624+
module,
625+
base_name.c_str(),
626+
odb::dbNameUniquifyType::IF_NEEDED_WITH_UNDERSCORE);
627+
return std::string(block->getBaseName(full.c_str()));
637628
}
638629

639630
const char* dbEditHierarchy::getBaseName(const char* connection_name) const

src/dbSta/src/dbNetwork.cc

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2903,8 +2903,10 @@ Net* dbNetwork::makeNet(const char* base_name,
29032903
const odb::dbNameUniquifyType& uniquify)
29042904
{
29052905
// Create a unique full name for a new net
2906+
odb::dbModInst* mod_inst = getModInst(parent);
2907+
odb::dbModule* parent_module = mod_inst ? mod_inst->getMaster() : nullptr;
29062908
std::string full_name
2907-
= block_->makeNewNetName(getModInst(parent), base_name, uniquify);
2909+
= block_->makeNewNetName(parent_module, base_name, uniquify);
29082910

29092911
// Create a new net
29102912
dbNet* dnet = dbNet::create(block_, full_name.c_str(), false);

src/dbSta/test/escape_slash_hier.spefok

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -243,34 +243,34 @@ clk I
243243
19 clknet_1_0__leaf_clk_1:3 clknet_1_0__leaf_clk_1:1 0.00201118
244244
*END
245245

246-
*D_NET clknet_1_1__leaf_clk_1 0.451199
246+
*D_NET clknet_1_1__leaf_clk_2 0.451199
247247
*CONN
248248
*I gclk1:CK I *D CLKGATE_X1
249249
*I h1/gclk2:CK I *D CLKGATE_X1
250250
*I clkbuf_1_1__f_clk:Z O *D CLKBUF_X3
251251
*CAP
252-
1 clknet_1_1__leaf_clk_1:0 0.130543
253-
2 clknet_1_1__leaf_clk_1:1 0.0950564
254-
3 clknet_1_1__leaf_clk_1:2 0.225599
252+
1 clknet_1_1__leaf_clk_2:0 0.130543
253+
2 clknet_1_1__leaf_clk_2:1 0.0950564
254+
3 clknet_1_1__leaf_clk_2:2 0.225599
255255
*RES
256-
1 clknet_1_1__leaf_clk_1:0 clknet_1_1__leaf_clk_1:0 1e-06
257-
2 clkbuf_1_1__f_clk:Z clknet_1_1__leaf_clk_1:3 1e-06
258-
3 clknet_1_1__leaf_clk_1:3 clknet_1_1__leaf_clk_1:4 1e-06
259-
4 clknet_1_1__leaf_clk_1:4 clknet_1_1__leaf_clk_1:5 1e-06
260-
5 clknet_1_1__leaf_clk_1:5 clknet_1_1__leaf_clk_1:6 1e-06
261-
6 clknet_1_1__leaf_clk_1:6 clknet_1_1__leaf_clk_1:0 1e-06
262-
7 clknet_1_1__leaf_clk_1:1 clknet_1_1__leaf_clk_1:2 0.00391271
263-
8 h1/gclk2:CK clknet_1_1__leaf_clk_1:8 1e-06
264-
9 clknet_1_1__leaf_clk_1:8 clknet_1_1__leaf_clk_1:9 1e-06
265-
10 clknet_1_1__leaf_clk_1:9 clknet_1_1__leaf_clk_1:10 1e-06
266-
11 clknet_1_1__leaf_clk_1:10 clknet_1_1__leaf_clk_1:11 1e-06
267-
12 clknet_1_1__leaf_clk_1:11 clknet_1_1__leaf_clk_1:1 1e-06
268-
13 gclk1:CK clknet_1_1__leaf_clk_1:13 1e-06
269-
14 clknet_1_1__leaf_clk_1:13 clknet_1_1__leaf_clk_1:14 1e-06
270-
15 clknet_1_1__leaf_clk_1:14 clknet_1_1__leaf_clk_1:15 1e-06
271-
16 clknet_1_1__leaf_clk_1:15 clknet_1_1__leaf_clk_1:16 1e-06
272-
17 clknet_1_1__leaf_clk_1:16 clknet_1_1__leaf_clk_1:2 1e-06
273-
18 clknet_1_1__leaf_clk_1:2 clknet_1_1__leaf_clk_1:0 0.0053734
256+
1 clknet_1_1__leaf_clk_2:0 clknet_1_1__leaf_clk_2:0 1e-06
257+
2 clkbuf_1_1__f_clk:Z clknet_1_1__leaf_clk_2:3 1e-06
258+
3 clknet_1_1__leaf_clk_2:3 clknet_1_1__leaf_clk_2:4 1e-06
259+
4 clknet_1_1__leaf_clk_2:4 clknet_1_1__leaf_clk_2:5 1e-06
260+
5 clknet_1_1__leaf_clk_2:5 clknet_1_1__leaf_clk_2:6 1e-06
261+
6 clknet_1_1__leaf_clk_2:6 clknet_1_1__leaf_clk_2:0 1e-06
262+
7 clknet_1_1__leaf_clk_2:1 clknet_1_1__leaf_clk_2:2 0.00391271
263+
8 h1/gclk2:CK clknet_1_1__leaf_clk_2:8 1e-06
264+
9 clknet_1_1__leaf_clk_2:8 clknet_1_1__leaf_clk_2:9 1e-06
265+
10 clknet_1_1__leaf_clk_2:9 clknet_1_1__leaf_clk_2:10 1e-06
266+
11 clknet_1_1__leaf_clk_2:10 clknet_1_1__leaf_clk_2:11 1e-06
267+
12 clknet_1_1__leaf_clk_2:11 clknet_1_1__leaf_clk_2:1 1e-06
268+
13 gclk1:CK clknet_1_1__leaf_clk_2:13 1e-06
269+
14 clknet_1_1__leaf_clk_2:13 clknet_1_1__leaf_clk_2:14 1e-06
270+
15 clknet_1_1__leaf_clk_2:14 clknet_1_1__leaf_clk_2:15 1e-06
271+
16 clknet_1_1__leaf_clk_2:15 clknet_1_1__leaf_clk_2:16 1e-06
272+
17 clknet_1_1__leaf_clk_2:16 clknet_1_1__leaf_clk_2:2 1e-06
273+
18 clknet_1_1__leaf_clk_2:2 clknet_1_1__leaf_clk_2:0 0.0053734
274274
*END
275275

276276
*D_NET clknet_0_h1\/gclk5 7.11161

0 commit comments

Comments
 (0)