Skip to content

Commit eddaf27

Browse files
committed
pad: add check for empty call to place_io_terminals
Signed-off-by: Peter Gadfort <peter.gadfort@gmail.com>
1 parent 99be8f1 commit eddaf27

5 files changed

Lines changed: 148 additions & 0 deletions

File tree

src/pad/src/pad.tcl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -349,6 +349,10 @@ proc place_io_terminals { args } {
349349
keys {} \
350350
flags {-allow_non_top_layer}
351351

352+
if { [llength $args] == 0 } {
353+
utl::error PAD 8 "place_io_terminals requires atleast one terminal"
354+
}
355+
352356
set iterms []
353357
foreach pin [get_pins {*}$args] {
354358
lappend iterms [sta::sta_to_db_pin $pin]

src/pad/test/BUILD

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ COMPULSORY_TESTS = [
2020
"non_top_layer",
2121
"place_bondpad",
2222
"place_bondpad_stagger",
23+
"place_io_terminals_empty_call",
2324
"place_pad",
2425
"place_pad_hv",
2526
"place_pad_no_master",

src/pad/test/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ or_integration_tests(
1717
non_top_layer
1818
place_bondpad
1919
place_bondpad_stagger
20+
place_io_terminals_empty_call
2021
place_pad
2122
place_pad_hv
2223
place_pad_no_master
Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
[INFO ODB-0227] LEF file: sky130hd/sky130hd.tlef, created 13 layers, 25 vias
2+
[INFO ODB-0227] LEF file: sky130hd/sky130_fd_sc_hd_merged.lef, created 437 library cells
3+
[WARNING ODB-0220] WARNING (LEFPARS-2008): NOWIREEXTENSIONATPIN statement is obsolete in version 5.6 or later.
4+
The NOWIREEXTENSIONATPIN statement will be ignored. See file skywater130_io_ef/lef/sky130_ef_io__com_bus_slice_10um.lef at line 2.
5+
6+
[INFO ODB-0227] LEF file: skywater130_io_ef/lef/sky130_ef_io__com_bus_slice_10um.lef, created 1 library cells
7+
[WARNING ODB-0220] WARNING (LEFPARS-2008): NOWIREEXTENSIONATPIN statement is obsolete in version 5.6 or later.
8+
The NOWIREEXTENSIONATPIN statement will be ignored. See file skywater130_io_ef/lef/sky130_ef_io__com_bus_slice_1um.lef at line 2.
9+
10+
[INFO ODB-0227] LEF file: skywater130_io_ef/lef/sky130_ef_io__com_bus_slice_1um.lef, created 1 library cells
11+
[WARNING ODB-0220] WARNING (LEFPARS-2008): NOWIREEXTENSIONATPIN statement is obsolete in version 5.6 or later.
12+
The NOWIREEXTENSIONATPIN statement will be ignored. See file skywater130_io_ef/lef/sky130_ef_io__com_bus_slice_20um.lef at line 2.
13+
14+
[INFO ODB-0227] LEF file: skywater130_io_ef/lef/sky130_ef_io__com_bus_slice_20um.lef, created 1 library cells
15+
[WARNING ODB-0220] WARNING (LEFPARS-2008): NOWIREEXTENSIONATPIN statement is obsolete in version 5.6 or later.
16+
The NOWIREEXTENSIONATPIN statement will be ignored. See file skywater130_io_ef/lef/sky130_ef_io__com_bus_slice_5um.lef at line 2.
17+
18+
[INFO ODB-0227] LEF file: skywater130_io_ef/lef/sky130_ef_io__com_bus_slice_5um.lef, created 1 library cells
19+
[WARNING ODB-0220] WARNING (LEFPARS-2008): NOWIREEXTENSIONATPIN statement is obsolete in version 5.6 or later.
20+
The NOWIREEXTENSIONATPIN statement will be ignored. See file skywater130_io_ef/lef/sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um.lef at line 2.
21+
22+
[INFO ODB-0227] LEF file: skywater130_io_ef/lef/sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um.lef, created 1 library cells
23+
[WARNING ODB-0220] WARNING (LEFPARS-2008): NOWIREEXTENSIONATPIN statement is obsolete in version 5.6 or later.
24+
The NOWIREEXTENSIONATPIN statement will be ignored. See file skywater130_io_ef/lef/sky130_ef_io__corner_pad.lef at line 2.
25+
26+
[INFO ODB-0227] LEF file: skywater130_io_ef/lef/sky130_ef_io__corner_pad.lef, created 1 library cells
27+
[WARNING ODB-0220] WARNING (LEFPARS-2008): NOWIREEXTENSIONATPIN statement is obsolete in version 5.6 or later.
28+
The NOWIREEXTENSIONATPIN statement will be ignored. See file skywater130_io_ef/lef/sky130_ef_io__disconnect_vccd_slice_5um.lef at line 2.
29+
30+
[INFO ODB-0227] LEF file: skywater130_io_ef/lef/sky130_ef_io__disconnect_vccd_slice_5um.lef, created 1 library cells
31+
[WARNING ODB-0220] WARNING (LEFPARS-2008): NOWIREEXTENSIONATPIN statement is obsolete in version 5.6 or later.
32+
The NOWIREEXTENSIONATPIN statement will be ignored. See file skywater130_io_ef/lef/sky130_ef_io__disconnect_vdda_slice_5um.lef at line 2.
33+
34+
[INFO ODB-0227] LEF file: skywater130_io_ef/lef/sky130_ef_io__disconnect_vdda_slice_5um.lef, created 1 library cells
35+
[WARNING ODB-0220] WARNING (LEFPARS-2008): NOWIREEXTENSIONATPIN statement is obsolete in version 5.6 or later.
36+
The NOWIREEXTENSIONATPIN statement will be ignored. See file skywater130_io_ef/lef/sky130_ef_io__gpiov2_pad_wrapped.lef at line 2.
37+
38+
[INFO ODB-0227] LEF file: skywater130_io_ef/lef/sky130_ef_io__gpiov2_pad_wrapped.lef, created 1 library cells
39+
[WARNING ODB-0220] WARNING (LEFPARS-2008): NOWIREEXTENSIONATPIN statement is obsolete in version 5.6 or later.
40+
The NOWIREEXTENSIONATPIN statement will be ignored. See file skywater130_io_ef/lef/sky130_ef_io__vccd_hvc_pad.lef at line 2.
41+
42+
[INFO ODB-0227] LEF file: skywater130_io_ef/lef/sky130_ef_io__vccd_hvc_pad.lef, created 1 library cells
43+
[WARNING ODB-0220] WARNING (LEFPARS-2008): NOWIREEXTENSIONATPIN statement is obsolete in version 5.6 or later.
44+
The NOWIREEXTENSIONATPIN statement will be ignored. See file skywater130_io_ef/lef/sky130_ef_io__vccd_lvc_pad.lef at line 2.
45+
46+
[INFO ODB-0227] LEF file: skywater130_io_ef/lef/sky130_ef_io__vccd_lvc_pad.lef, created 1 library cells
47+
[WARNING ODB-0220] WARNING (LEFPARS-2008): NOWIREEXTENSIONATPIN statement is obsolete in version 5.6 or later.
48+
The NOWIREEXTENSIONATPIN statement will be ignored. See file skywater130_io_ef/lef/sky130_ef_io__vdda_hvc_pad.lef at line 2.
49+
50+
[INFO ODB-0227] LEF file: skywater130_io_ef/lef/sky130_ef_io__vdda_hvc_pad.lef, created 1 library cells
51+
[WARNING ODB-0220] WARNING (LEFPARS-2008): NOWIREEXTENSIONATPIN statement is obsolete in version 5.6 or later.
52+
The NOWIREEXTENSIONATPIN statement will be ignored. See file skywater130_io_ef/lef/sky130_ef_io__vdda_lvc_pad.lef at line 2.
53+
54+
[INFO ODB-0227] LEF file: skywater130_io_ef/lef/sky130_ef_io__vdda_lvc_pad.lef, created 1 library cells
55+
[WARNING ODB-0220] WARNING (LEFPARS-2008): NOWIREEXTENSIONATPIN statement is obsolete in version 5.6 or later.
56+
The NOWIREEXTENSIONATPIN statement will be ignored. See file skywater130_io_ef/lef/sky130_ef_io__vddio_hvc_pad.lef at line 2.
57+
58+
[INFO ODB-0227] LEF file: skywater130_io_ef/lef/sky130_ef_io__vddio_hvc_pad.lef, created 1 library cells
59+
[WARNING ODB-0220] WARNING (LEFPARS-2008): NOWIREEXTENSIONATPIN statement is obsolete in version 5.6 or later.
60+
The NOWIREEXTENSIONATPIN statement will be ignored. See file skywater130_io_ef/lef/sky130_ef_io__vddio_lvc_pad.lef at line 2.
61+
62+
[INFO ODB-0227] LEF file: skywater130_io_ef/lef/sky130_ef_io__vddio_lvc_pad.lef, created 1 library cells
63+
[WARNING ODB-0220] WARNING (LEFPARS-2008): NOWIREEXTENSIONATPIN statement is obsolete in version 5.6 or later.
64+
The NOWIREEXTENSIONATPIN statement will be ignored. See file skywater130_io_ef/lef/sky130_ef_io__vssa_hvc_pad.lef at line 2.
65+
66+
[INFO ODB-0227] LEF file: skywater130_io_ef/lef/sky130_ef_io__vssa_hvc_pad.lef, created 1 library cells
67+
[WARNING ODB-0220] WARNING (LEFPARS-2008): NOWIREEXTENSIONATPIN statement is obsolete in version 5.6 or later.
68+
The NOWIREEXTENSIONATPIN statement will be ignored. See file skywater130_io_ef/lef/sky130_ef_io__vssa_lvc_pad.lef at line 2.
69+
70+
[INFO ODB-0227] LEF file: skywater130_io_ef/lef/sky130_ef_io__vssa_lvc_pad.lef, created 1 library cells
71+
[WARNING ODB-0220] WARNING (LEFPARS-2008): NOWIREEXTENSIONATPIN statement is obsolete in version 5.6 or later.
72+
The NOWIREEXTENSIONATPIN statement will be ignored. See file skywater130_io_ef/lef/sky130_ef_io__vssd_hvc_pad.lef at line 2.
73+
74+
[INFO ODB-0227] LEF file: skywater130_io_ef/lef/sky130_ef_io__vssd_hvc_pad.lef, created 1 library cells
75+
[WARNING ODB-0220] WARNING (LEFPARS-2008): NOWIREEXTENSIONATPIN statement is obsolete in version 5.6 or later.
76+
The NOWIREEXTENSIONATPIN statement will be ignored. See file skywater130_io_ef/lef/sky130_ef_io__vssd_lvc_pad.lef at line 2.
77+
78+
[INFO ODB-0227] LEF file: skywater130_io_ef/lef/sky130_ef_io__vssd_lvc_pad.lef, created 1 library cells
79+
[WARNING ODB-0220] WARNING (LEFPARS-2008): NOWIREEXTENSIONATPIN statement is obsolete in version 5.6 or later.
80+
The NOWIREEXTENSIONATPIN statement will be ignored. See file skywater130_io_ef/lef/sky130_ef_io__vssio_hvc_pad.lef at line 2.
81+
82+
[INFO ODB-0227] LEF file: skywater130_io_ef/lef/sky130_ef_io__vssio_hvc_pad.lef, created 1 library cells
83+
[WARNING ODB-0220] WARNING (LEFPARS-2008): NOWIREEXTENSIONATPIN statement is obsolete in version 5.6 or later.
84+
The NOWIREEXTENSIONATPIN statement will be ignored. See file skywater130_io_ef/lef/sky130_ef_io__vssio_lvc_pad.lef at line 2.
85+
86+
[INFO ODB-0227] LEF file: skywater130_io_ef/lef/sky130_ef_io__vssio_lvc_pad.lef, created 1 library cells
87+
[INFO ODB-0227] LEF file: skywater130_io_ef/lef/sky130_fd_io__top_xres4v2.lef, created 1 library cells
88+
[WARNING ORD-2011] LEF master sky130_ef_io__gpiov2_pad_wrapped has no liberty cell.
89+
[WARNING ORD-2011] LEF master sky130_ef_io__corner_pad has no liberty cell.
90+
[WARNING ORD-2011] LEF master sky130_ef_io__vccd_lvc_pad has no liberty cell.
91+
[WARNING ORD-2011] LEF master sky130_ef_io__vdda_hvc_pad has no liberty cell.
92+
[WARNING ORD-2011] LEF master sky130_ef_io__vddio_hvc_pad has no liberty cell.
93+
[WARNING ORD-2011] LEF master sky130_ef_io__vssa_hvc_pad has no liberty cell.
94+
[WARNING ORD-2011] LEF master sky130_ef_io__vssd_lvc_pad has no liberty cell.
95+
[WARNING ORD-2011] LEF master sky130_ef_io__vssio_hvc_pad has no liberty cell.
96+
[WARNING ORD-2011] LEF master sky130_fd_io__top_xres4v2 has no liberty cell.
97+
[WARNING IFP-0028] Core area lower left (250.000, 250.000) snapped to (250.240, 250.240).
98+
[INFO IFP-0001] Added 1723 rows of 6712 site unithd.
99+
[ERROR PAD-0008] place_io_terminals requires atleast one terminal
100+
PAD-0008
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
source "helpers.tcl"
2+
3+
read_lef sky130hd/sky130hd.tlef
4+
read_lef sky130hd/sky130_fd_sc_hd_merged.lef
5+
read_lef skywater130_io_ef/lef/sky130_ef_io__com_bus_slice_10um.lef
6+
read_lef skywater130_io_ef/lef/sky130_ef_io__com_bus_slice_1um.lef
7+
read_lef skywater130_io_ef/lef/sky130_ef_io__com_bus_slice_20um.lef
8+
read_lef skywater130_io_ef/lef/sky130_ef_io__com_bus_slice_5um.lef
9+
read_lef skywater130_io_ef/lef/sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um.lef
10+
read_lef skywater130_io_ef/lef/sky130_ef_io__corner_pad.lef
11+
read_lef skywater130_io_ef/lef/sky130_ef_io__disconnect_vccd_slice_5um.lef
12+
read_lef skywater130_io_ef/lef/sky130_ef_io__disconnect_vdda_slice_5um.lef
13+
read_lef skywater130_io_ef/lef/sky130_ef_io__gpiov2_pad_wrapped.lef
14+
read_lef skywater130_io_ef/lef/sky130_ef_io__vccd_hvc_pad.lef
15+
read_lef skywater130_io_ef/lef/sky130_ef_io__vccd_lvc_pad.lef
16+
read_lef skywater130_io_ef/lef/sky130_ef_io__vdda_hvc_pad.lef
17+
read_lef skywater130_io_ef/lef/sky130_ef_io__vdda_lvc_pad.lef
18+
read_lef skywater130_io_ef/lef/sky130_ef_io__vddio_hvc_pad.lef
19+
read_lef skywater130_io_ef/lef/sky130_ef_io__vddio_lvc_pad.lef
20+
read_lef skywater130_io_ef/lef/sky130_ef_io__vssa_hvc_pad.lef
21+
read_lef skywater130_io_ef/lef/sky130_ef_io__vssa_lvc_pad.lef
22+
read_lef skywater130_io_ef/lef/sky130_ef_io__vssd_hvc_pad.lef
23+
read_lef skywater130_io_ef/lef/sky130_ef_io__vssd_lvc_pad.lef
24+
read_lef skywater130_io_ef/lef/sky130_ef_io__vssio_hvc_pad.lef
25+
read_lef skywater130_io_ef/lef/sky130_ef_io__vssio_lvc_pad.lef
26+
read_lef skywater130_io_ef/lef/sky130_fd_io__top_xres4v2.lef
27+
28+
read_liberty skywater130_io_ef/lib/sky130_dummy_io.lib
29+
read_liberty sky130hd/sky130_fd_sc_hd__tt_025C_1v80.lib
30+
31+
read_verilog skywater130_caravel/chip.v
32+
link_design chip_io
33+
34+
initialize_floorplan \
35+
-die_area "0 0 3588 5188" \
36+
-core_area "250 250 3338 4938" \
37+
-site unithd
38+
39+
make_tracks
40+
41+
catch { place_io_terminals } err
42+
puts $err

0 commit comments

Comments
 (0)