librelane 3.0.0.dev24__py3-none-any.whl → 3.0.0.dev25__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of librelane might be problematic. Click here for more details.

@@ -7,16 +7,16 @@ PNR_SDC_FILE: dir::src/impl.sdc
7
7
  SIGNOFF_SDC_FILE: dir::src/signoff.sdc
8
8
 
9
9
  # PDN
10
- FP_PDN_VOFFSET: 5
11
- FP_PDN_HOFFSET: 5
12
- FP_PDN_VWIDTH: 2
13
- FP_PDN_HWIDTH: 2
14
- FP_PDN_VPITCH: 30
15
- FP_PDN_HPITCH: 30
16
- FP_PDN_SKIPTRIM: true
10
+ PDN_VOFFSET: 5
11
+ PDN_HOFFSET: 5
12
+ PDN_VWIDTH: 2
13
+ PDN_HWIDTH: 2
14
+ PDN_VPITCH: 30
15
+ PDN_HPITCH: 30
16
+ PDN_SKIPTRIM: true
17
17
 
18
18
  # Pin Order
19
- FP_PIN_ORDER_CFG: dir::pin_order.cfg
19
+ IO_PIN_ORDER_CFG: dir::pin_order.cfg
20
20
 
21
21
  # Technology-Specific Configs
22
22
  pdk::sky130*:
@@ -1,13 +1,25 @@
1
1
  {
2
2
  "DESIGN_NAME": "SPM_example",
3
- "VERILOG_FILES": ["dir::./defines.v", "dir::./SPM_example.v"],
3
+ "VERILOG_FILES": [
4
+ "dir::./defines.v",
5
+ "dir::./SPM_example.v"
6
+ ],
4
7
  "CLOCK_PERIOD": 25,
5
8
  "CLOCK_PORT": "wb_clk_i",
6
9
  "CLOCK_NET": "SPM.clk",
7
10
  "RT_MAX_LAYER": "met4",
8
11
  "FP_SIZING": "absolute",
9
- "VDD_NETS": ["vccd1"],
10
- "GND_NETS": ["vssd1"],
11
- "FP_PDN_MULTILAYER": false,
12
- "DIE_AREA": [0, 0, 600, 600]
12
+ "VDD_NETS": [
13
+ "vccd1"
14
+ ],
15
+ "GND_NETS": [
16
+ "vssd1"
17
+ ],
18
+ "PDN_MULTILAYER": false,
19
+ "DIE_AREA": [
20
+ 0,
21
+ 0,
22
+ 600,
23
+ 600
24
+ ]
13
25
  }
@@ -99,23 +99,35 @@ proc read_pdn_cfg {} {
99
99
 
100
100
  # Compatibility Layer for Deprecated Variables That May Still Be Used By
101
101
  # User Files
102
- set ::env(DESIGN_IS_CORE) $::env(FP_PDN_MULTILAYER)
103
- set ::env(FP_PDN_ENABLE_MACROS_GRID) $::env(PDN_CONNECT_MACROS_TO_GRID)
104
- set ::env(FP_PDN_RAILS_LAYER) $::env(FP_PDN_RAIL_LAYER)
105
- set ::env(FP_PDN_UPPER_LAYER) $::env(FP_PDN_HORIZONTAL_LAYER)
106
- set ::env(FP_PDN_LOWER_LAYER) $::env(FP_PDN_VERTICAL_LAYER)
102
+ set unset_list {
103
+ DESIGN_IS_CORE
104
+ PDN_ENABLE_MACROS_GRID
105
+ PDN_RAILS_LAYER
106
+ PDN_UPPER_LAYER
107
+ PDN_LOWER_LAYER
108
+ }
109
+ set ::env(DESIGN_IS_CORE) $::env(PDN_MULTILAYER)
110
+ set ::env(PDN_ENABLE_MACROS_GRID) $::env(PDN_CONNECT_MACROS_TO_GRID)
111
+ set ::env(PDN_RAILS_LAYER) $::env(PDN_RAIL_LAYER)
112
+ set ::env(PDN_UPPER_LAYER) $::env(PDN_HORIZONTAL_LAYER)
113
+ set ::env(PDN_LOWER_LAYER) $::env(PDN_VERTICAL_LAYER)
114
+ foreach key [array names ::env] {
115
+ if { [string match PDN_* $key] } {
116
+ set fp_name FP_$key
117
+ lappend unset_list $fp_name
118
+ set ::env($fp_name) $::env($key)
119
+ }
120
+ }
107
121
 
108
- if {[catch {source $::env(FP_PDN_CFG)} errmsg]} {
122
+ if {[catch {source $::env(PDN_CFG)} errmsg]} {
109
123
  puts stderr $errmsg
110
124
  exit 1
111
125
  }
112
126
 
113
127
  # Restore Environment
114
- unset ::env(DESIGN_IS_CORE)
115
- unset ::env(FP_PDN_ENABLE_MACROS_GRID)
116
- unset ::env(FP_PDN_RAILS_LAYER)
117
- unset ::env(FP_PDN_UPPER_LAYER)
118
- unset ::env(FP_PDN_LOWER_LAYER)
128
+ foreach unsettable $unset_list {
129
+ unset ::env($unsettable)
130
+ }
119
131
  }
120
132
 
121
133
 
@@ -43,83 +43,83 @@ foreach vdd $::env(VDD_NETS) gnd $::env(GND_NETS) {
43
43
  set_voltage_domain -name CORE -power $::env(VDD_NET) -ground $::env(GND_NET) \
44
44
  -secondary_power $secondary
45
45
 
46
- if { $::env(FP_PDN_MULTILAYER) == 1 } {
46
+ if { $::env(PDN_MULTILAYER) == 1 } {
47
47
  define_pdn_grid \
48
48
  -name stdcell_grid \
49
49
  -starts_with POWER \
50
50
  -voltage_domain CORE \
51
- -pins "$::env(FP_PDN_VERTICAL_LAYER) $::env(FP_PDN_HORIZONTAL_LAYER)"
51
+ -pins "$::env(PDN_VERTICAL_LAYER) $::env(PDN_HORIZONTAL_LAYER)"
52
52
 
53
53
  add_pdn_stripe \
54
54
  -grid stdcell_grid \
55
- -layer $::env(FP_PDN_VERTICAL_LAYER) \
56
- -width $::env(FP_PDN_VWIDTH) \
57
- -pitch $::env(FP_PDN_VPITCH) \
58
- -offset $::env(FP_PDN_VOFFSET) \
59
- -spacing $::env(FP_PDN_VSPACING) \
55
+ -layer $::env(PDN_VERTICAL_LAYER) \
56
+ -width $::env(PDN_VWIDTH) \
57
+ -pitch $::env(PDN_VPITCH) \
58
+ -offset $::env(PDN_VOFFSET) \
59
+ -spacing $::env(PDN_VSPACING) \
60
60
  -starts_with POWER -extend_to_core_ring
61
61
 
62
62
  add_pdn_stripe \
63
63
  -grid stdcell_grid \
64
- -layer $::env(FP_PDN_HORIZONTAL_LAYER) \
65
- -width $::env(FP_PDN_HWIDTH) \
66
- -pitch $::env(FP_PDN_HPITCH) \
67
- -offset $::env(FP_PDN_HOFFSET) \
68
- -spacing $::env(FP_PDN_HSPACING) \
64
+ -layer $::env(PDN_HORIZONTAL_LAYER) \
65
+ -width $::env(PDN_HWIDTH) \
66
+ -pitch $::env(PDN_HPITCH) \
67
+ -offset $::env(PDN_HOFFSET) \
68
+ -spacing $::env(PDN_HSPACING) \
69
69
  -starts_with POWER -extend_to_core_ring
70
70
 
71
71
  add_pdn_connect \
72
72
  -grid stdcell_grid \
73
- -layers "$::env(FP_PDN_VERTICAL_LAYER) $::env(FP_PDN_HORIZONTAL_LAYER)"
73
+ -layers "$::env(PDN_VERTICAL_LAYER) $::env(PDN_HORIZONTAL_LAYER)"
74
74
  } else {
75
75
  define_pdn_grid \
76
76
  -name stdcell_grid \
77
77
  -starts_with POWER \
78
78
  -voltage_domain CORE \
79
- -pins $::env(FP_PDN_VERTICAL_LAYER)
79
+ -pins $::env(PDN_VERTICAL_LAYER)
80
80
 
81
81
  add_pdn_stripe \
82
82
  -grid stdcell_grid \
83
- -layer $::env(FP_PDN_VERTICAL_LAYER) \
84
- -width $::env(FP_PDN_VWIDTH) \
85
- -pitch $::env(FP_PDN_VPITCH) \
86
- -offset $::env(FP_PDN_VOFFSET) \
87
- -spacing $::env(FP_PDN_VSPACING) \
83
+ -layer $::env(PDN_VERTICAL_LAYER) \
84
+ -width $::env(PDN_VWIDTH) \
85
+ -pitch $::env(PDN_VPITCH) \
86
+ -offset $::env(PDN_VOFFSET) \
87
+ -spacing $::env(PDN_VSPACING) \
88
88
  -starts_with POWER -extend_to_core_ring
89
89
  }
90
90
 
91
91
  # Adds the standard cell rails if enabled.
92
- if { $::env(FP_PDN_ENABLE_RAILS) == 1 } {
92
+ if { $::env(PDN_ENABLE_RAILS) == 1 } {
93
93
  add_pdn_stripe \
94
94
  -grid stdcell_grid \
95
- -layer $::env(FP_PDN_RAIL_LAYER) \
96
- -width $::env(FP_PDN_RAIL_WIDTH) \
95
+ -layer $::env(PDN_RAIL_LAYER) \
96
+ -width $::env(PDN_RAIL_WIDTH) \
97
97
  -followpins
98
98
 
99
99
  add_pdn_connect \
100
100
  -grid stdcell_grid \
101
- -layers "$::env(FP_PDN_RAIL_LAYER) $::env(FP_PDN_VERTICAL_LAYER)"
101
+ -layers "$::env(PDN_RAIL_LAYER) $::env(PDN_VERTICAL_LAYER)"
102
102
  }
103
103
 
104
104
 
105
105
  # Adds the core ring if enabled.
106
- if { $::env(FP_PDN_CORE_RING) == 1 } {
107
- if { $::env(FP_PDN_MULTILAYER) == 1 } {
106
+ if { $::env(PDN_CORE_RING) == 1 } {
107
+ if { $::env(PDN_MULTILAYER) == 1 } {
108
108
  add_pdn_ring \
109
109
  -allow_out_of_die \
110
110
  -grid stdcell_grid \
111
- -layers "$::env(FP_PDN_VERTICAL_LAYER) $::env(FP_PDN_HORIZONTAL_LAYER)" \
112
- -widths "$::env(FP_PDN_CORE_RING_VWIDTH) $::env(FP_PDN_CORE_RING_HWIDTH)" \
113
- -spacings "$::env(FP_PDN_CORE_RING_VSPACING) $::env(FP_PDN_CORE_RING_HSPACING)" \
114
- -core_offset "$::env(FP_PDN_CORE_RING_VOFFSET) $::env(FP_PDN_CORE_RING_HOFFSET)"
111
+ -layers "$::env(PDN_VERTICAL_LAYER) $::env(PDN_HORIZONTAL_LAYER)" \
112
+ -widths "$::env(PDN_CORE_RING_VWIDTH) $::env(PDN_CORE_RING_HWIDTH)" \
113
+ -spacings "$::env(PDN_CORE_RING_VSPACING) $::env(PDN_CORE_RING_HSPACING)" \
114
+ -core_offset "$::env(PDN_CORE_RING_VOFFSET) $::env(PDN_CORE_RING_HOFFSET)"
115
115
  } else {
116
- throw APPLICATION "FP_PDN_CORE_RING cannot be used when FP_PDN_MULTILAYER is set to false."
116
+ throw APPLICATION "PDN_CORE_RING cannot be used when PDN_MULTILAYER is set to false."
117
117
  # add_pdn_ring \
118
118
  # -grid stdcell_grid \
119
- # -layers "$::env(FP_PDN_VERTICAL_LAYER)" \
120
- # -widths "$::env(FP_PDN_CORE_RING_VWIDTH)" \
121
- # -spacings "$::env(FP_PDN_CORE_RING_VSPACING)" \
122
- # -core_offset "$::env(FP_PDN_CORE_RING_VOFFSET)"
119
+ # -layers "$::env(PDN_VERTICAL_LAYER)" \
120
+ # -widths "$::env(PDN_CORE_RING_VWIDTH)" \
121
+ # -spacings "$::env(PDN_CORE_RING_VSPACING)" \
122
+ # -core_offset "$::env(PDN_CORE_RING_VOFFSET)"
123
123
  }
124
124
  }
125
125
 
@@ -128,8 +128,8 @@ define_pdn_grid \
128
128
  -default \
129
129
  -name macro \
130
130
  -starts_with POWER \
131
- -halo "$::env(FP_PDN_HORIZONTAL_HALO) $::env(FP_PDN_VERTICAL_HALO)"
131
+ -halo "$::env(PDN_HORIZONTAL_HALO) $::env(PDN_VERTICAL_HALO)"
132
132
 
133
133
  add_pdn_connect \
134
134
  -grid macro \
135
- -layers "$::env(FP_PDN_VERTICAL_LAYER) $::env(FP_PDN_HORIZONTAL_LAYER)"
135
+ -layers "$::env(PDN_VERTICAL_LAYER) $::env(PDN_HORIZONTAL_LAYER)"
@@ -15,50 +15,51 @@ source $::env(SCRIPTS_DIR)/openroad/common/io.tcl
15
15
  read_current_odb
16
16
 
17
17
  if { [info exists ::env(CONTEXTUAL_IO_FLAG)] } {
18
- read_lef $::env(placement_tmpfiles)/top_level.lef
18
+ read_lef $::env(placement_tmpfiles)/top_level.lef
19
19
  }
20
20
 
21
- if { [info exists ::env(FP_IO_HLENGTH)] } {
22
- set_pin_length -hor_length $::env(FP_IO_HLENGTH)
21
+ if { [info exists ::env(IO_PIN_H_LENGTH)] } {
22
+ set_pin_length -hor_length $::env(IO_PIN_H_LENGTH)
23
23
  }
24
24
 
25
- if { [info exists ::env(FP_IO_VLENGTH)] } {
26
- set_pin_length -ver_length $::env(FP_IO_VLENGTH)
25
+ if { [info exists ::env(IO_PIN_V_LENGTH)] } {
26
+ set_pin_length -ver_length $::env(IO_PIN_V_LENGTH)
27
27
  }
28
28
 
29
- if { $::env(FP_IO_HEXTEND) != "0"} {
30
- set_pin_length_extension -hor_extension $::env(FP_IO_HEXTEND)
29
+ if { $::env(IO_PIN_H_EXTENSION) != "0"} {
30
+ set_pin_length_extension -hor_extension $::env(IO_PIN_H_EXTENSION)
31
31
  }
32
32
 
33
- if { $::env(FP_IO_VEXTEND) != "0"} {
34
- set_pin_length_extension -ver_extension $::env(FP_IO_VEXTEND)
33
+ if { $::env(IO_PIN_V_EXTENSION) != "0"} {
34
+ set_pin_length_extension -ver_extension $::env(IO_PIN_V_EXTENSION)
35
35
  }
36
36
 
37
- if {$::env(FP_IO_VTHICKNESS_MULT) != "" && $::env(FP_IO_HTHICKNESS_MULT) != ""} {
38
- set_pin_thick_multiplier -hor_multiplier $::env(FP_IO_HTHICKNESS_MULT) \
39
- -ver_multiplier $::env(FP_IO_VTHICKNESS_MULT)
37
+ if {$::env(IO_PIN_V_THICKNESS_MULT) != "" && $::env(IO_PIN_H_THICKNESS_MULT) != ""} {
38
+ set_pin_thick_multiplier\
39
+ -hor_multiplier $::env(IO_PIN_H_THICKNESS_MULT) \
40
+ -ver_multiplier $::env(IO_PIN_V_THICKNESS_MULT)
40
41
  }
41
42
 
42
43
  set arg_list [list]
43
- if { $::env(FP_PPL_MODE) == "random_equidistant" } {
44
- lappend arg_list -random
44
+ if { $::env(IO_PIN_PLACEMENT_MODE) == "random_equidistant" } {
45
+ lappend arg_list -random
45
46
  }
46
47
 
47
- if { [info exists ::env(FP_IO_MIN_DISTANCE)] } {
48
- lappend arg_list -min_distance $::env(FP_IO_MIN_DISTANCE)
48
+ if { [info exists ::env(IO_PIN_MIN_DISTANCE)] } {
49
+ lappend arg_list -min_distance $::env(IO_PIN_MIN_DISTANCE)
49
50
  }
50
51
 
51
- if { $::env(FP_PPL_MODE) == "annealing" } {
52
- lappend arg_list -annealing
52
+ if { $::env(IO_PIN_PLACEMENT_MODE) == "annealing" } {
53
+ lappend arg_list -annealing
53
54
  }
54
55
 
55
56
  set HMETAL $::env(FP_IO_HLAYER)
56
57
  set VMETAL $::env(FP_IO_VLAYER)
57
58
 
58
59
  log_cmd place_pins {*}$arg_list \
59
- -random_seed 42 \
60
- -hor_layers $HMETAL \
61
- -ver_layers $VMETAL
60
+ -random_seed 42 \
61
+ -hor_layers $HMETAL \
62
+ -ver_layers $VMETAL
62
63
 
63
64
  write_views
64
65
 
@@ -21,7 +21,7 @@ source $::env(SCRIPTS_DIR)/openroad/common/set_power_nets.tcl
21
21
  read_pdn_cfg
22
22
 
23
23
  set arg_list [list]
24
- if { $::env(FP_PDN_SKIPTRIM) } {
24
+ if { $::env(PDN_SKIPTRIM) } {
25
25
  lappend arg_list -skip_trim
26
26
  }
27
27
  # run PDNGEN
@@ -18,204 +18,253 @@ from ..config import Variable
18
18
 
19
19
  io_layer_variables = [
20
20
  Variable(
21
- "FP_IO_VEXTEND",
21
+ "IO_PIN_V_EXTENSION",
22
22
  Decimal,
23
23
  "Extends the vertical io pins outside of the die by the specified units.",
24
24
  default=0,
25
25
  units="µm",
26
+ deprecated_names=["FP_IO_VEXTEND"],
26
27
  ),
27
28
  Variable(
28
- "FP_IO_HEXTEND",
29
+ "IO_PIN_H_EXTENSION",
29
30
  Decimal,
30
31
  "Extends the horizontal io pins outside of the die by the specified units.",
31
32
  default=0,
32
33
  units="µm",
34
+ deprecated_names=["FP_IO_HEXTEND"],
33
35
  ),
34
36
  Variable(
35
- "FP_IO_VTHICKNESS_MULT",
37
+ "IO_PIN_V_THICKNESS_MULT",
36
38
  Decimal,
37
39
  "A multiplier for vertical pin thickness. Base thickness is the pins layer min width.",
38
40
  default=2,
41
+ deprecated_names=["FP_IO_VTHICKNESS_MULT"],
39
42
  ),
40
43
  Variable(
41
- "FP_IO_HTHICKNESS_MULT",
44
+ "IO_PIN_H_THICKNESS_MULT",
42
45
  Decimal,
43
46
  "A multiplier for horizontal pin thickness. Base thickness is the pins layer min width.",
44
47
  default=2,
48
+ deprecated_names=["FP_IO_HTHICKNESS_MULT"],
49
+ ),
50
+ Variable(
51
+ "IO_PIN_V_LENGTH",
52
+ Optional[Decimal],
53
+ """
54
+ The length of the pins with a north or south orientation. If unspecified by a PDK, OpenROAD will use whichever is higher of the following two values:
55
+ * The pin width
56
+ * The minimum value satisfying the minimum area constraint given the pin width
57
+ """,
58
+ units="µm",
59
+ pdk=True,
60
+ deprecated_names=["FP_IO_VLENGTH"],
61
+ ),
62
+ Variable(
63
+ "IO_PIN_H_LENGTH",
64
+ Optional[Decimal],
65
+ """
66
+ The length of the pins with an east or west orientation. If unspecified by a PDK, OpenROAD will use whichever is higher of the following two values:
67
+ * The pin width
68
+ * The minimum value satisfying the minimum area constraint given the pin width
69
+ """,
70
+ units="µm",
71
+ pdk=True,
72
+ deprecated_names=["FP_IO_HLENGTH"],
45
73
  ),
46
74
  ]
47
75
 
48
76
  pdn_variables = [
49
77
  Variable(
50
- "FP_PDN_SKIPTRIM",
78
+ "PDN_SKIPTRIM",
51
79
  bool,
52
80
  "Enables `-skip_trim` option during pdngen which skips the metal trim step, which attempts to remove metal stubs.",
53
81
  default=False,
82
+ deprecated_names=["FP_PDN_SKIPTRIM"],
54
83
  ),
55
84
  Variable(
56
- "FP_PDN_CORE_RING",
85
+ "PDN_CORE_RING",
57
86
  bool,
58
87
  "Enables adding a core ring around the design. More details on the control variables in the PDK config documentation.",
59
88
  default=False,
89
+ deprecated_names=["FP_PDN_CORE_RING"],
60
90
  ),
61
91
  Variable(
62
- "FP_PDN_ENABLE_RAILS",
92
+ "PDN_ENABLE_RAILS",
63
93
  bool,
64
94
  "Enables the creation of rails in the power grid.",
65
95
  default=True,
96
+ deprecated_names=["FP_PDN_ENABLE_RAILS"],
66
97
  ),
67
98
  Variable(
68
- "FP_PDN_HORIZONTAL_HALO",
99
+ "PDN_HORIZONTAL_HALO",
69
100
  Decimal,
70
101
  "Sets the horizontal halo around the macros during power grid insertion.",
71
102
  default=10,
72
103
  units="µm",
104
+ deprecated_names=["FP_PDN_HORIZONTAL_HALO"],
73
105
  ),
74
106
  Variable(
75
- "FP_PDN_VERTICAL_HALO",
107
+ "PDN_VERTICAL_HALO",
76
108
  Decimal,
77
109
  "Sets the vertical halo around the macros during power grid insertion.",
78
110
  default=10,
79
111
  units="µm",
112
+ deprecated_names=["FP_PDN_VERTICAL_HALO"],
80
113
  ),
81
114
  Variable(
82
- "FP_PDN_MULTILAYER",
115
+ "PDN_MULTILAYER",
83
116
  bool,
84
117
  "Controls the layers used in the power grid. If set to false, only the lower layer will be used, which is useful when hardening a macro for integrating into a larger top-level design.",
85
118
  default=True,
86
- deprecated_names=["DESIGN_IS_CORE"],
119
+ deprecated_names=["FP_PDN_MULTILAYER", "DESIGN_IS_CORE"],
87
120
  ),
88
121
  Variable(
89
- "FP_PDN_RAIL_OFFSET",
122
+ "PDN_RAIL_OFFSET",
90
123
  Decimal,
91
124
  "The offset for the power distribution network rails for first metal layer.",
92
125
  units="µm",
93
126
  pdk=True,
127
+ deprecated_names=["FP_PDN_RAIL_OFFSET"],
94
128
  ),
95
129
  Variable(
96
- "FP_PDN_VWIDTH",
130
+ "PDN_VWIDTH",
97
131
  Decimal,
98
132
  "The strap width for the vertical layer in generated power distribution networks.",
99
133
  units="µm",
100
134
  pdk=True,
135
+ deprecated_names=["FP_PDN_VWIDTH"],
101
136
  ),
102
137
  Variable(
103
- "FP_PDN_HWIDTH",
138
+ "PDN_HWIDTH",
104
139
  Decimal,
105
140
  "The strap width for the horizontal layer in generated power distribution networks.",
106
141
  units="µm",
107
142
  pdk=True,
143
+ deprecated_names=["FP_PDN_HWIDTH"],
108
144
  ),
109
145
  Variable(
110
- "FP_PDN_VSPACING",
146
+ "PDN_VSPACING",
111
147
  Decimal,
112
148
  "Intra-spacing (within a set) of vertical straps in generated power distribution networks.",
113
149
  units="µm",
114
150
  pdk=True,
151
+ deprecated_names=["FP_PDN_VSPACING"],
115
152
  ),
116
153
  Variable(
117
- "FP_PDN_HSPACING",
154
+ "PDN_HSPACING",
118
155
  Decimal,
119
156
  "Intra-spacing (within a set) of horizontal straps in generated power distribution networks.",
120
157
  units="µm",
121
158
  pdk=True,
159
+ deprecated_names=["FP_PDN_HSPACING"],
122
160
  ),
123
161
  Variable(
124
- "FP_PDN_VPITCH",
162
+ "PDN_VPITCH",
125
163
  Decimal,
126
164
  "Inter-distance (between sets) of vertical power straps in generated power distribution networks.",
127
165
  units="µm",
128
166
  pdk=True,
167
+ deprecated_names=["FP_PDN_VPITCH"],
129
168
  ),
130
169
  Variable(
131
- "FP_PDN_HPITCH",
170
+ "PDN_HPITCH",
132
171
  Decimal,
133
172
  "Inter-distance (between sets) of horizontal power straps in generated power distribution networks.",
134
173
  units="µm",
135
174
  pdk=True,
175
+ deprecated_names=["FP_PDN_HPITCH"],
136
176
  ),
137
177
  Variable(
138
- "FP_PDN_VOFFSET",
178
+ "PDN_VOFFSET",
139
179
  Decimal,
140
180
  "Initial offset for sets of vertical power straps.",
141
181
  units="µm",
142
182
  pdk=True,
183
+ deprecated_names=["FP_PDN_VOFFSET"],
143
184
  ),
144
185
  Variable(
145
- "FP_PDN_HOFFSET",
186
+ "PDN_HOFFSET",
146
187
  Decimal,
147
188
  "Initial offset for sets of horizontal power straps.",
148
189
  units="µm",
149
190
  pdk=True,
191
+ deprecated_names=["FP_PDN_HOFFSET"],
150
192
  ),
151
193
  Variable(
152
- "FP_PDN_CORE_RING_VWIDTH",
194
+ "PDN_CORE_RING_VWIDTH",
153
195
  Decimal,
154
196
  "The width for the vertical layer in the core ring of generated power distribution networks.",
155
197
  units="µm",
156
198
  pdk=True,
199
+ deprecated_names=["FP_PDN_CORE_RING_VWIDTH"],
157
200
  ),
158
201
  Variable(
159
- "FP_PDN_CORE_RING_HWIDTH",
202
+ "PDN_CORE_RING_HWIDTH",
160
203
  Decimal,
161
204
  "The width for the horizontal layer in the core ring of generated power distribution networks.",
162
205
  units="µm",
163
206
  pdk=True,
207
+ deprecated_names=["FP_PDN_CORE_RING_HWIDTH"],
164
208
  ),
165
209
  Variable(
166
- "FP_PDN_CORE_RING_VSPACING",
210
+ "PDN_CORE_RING_VSPACING",
167
211
  Decimal,
168
212
  "The spacing for the vertical layer in the core ring of generated power distribution networks.",
169
213
  units="µm",
170
214
  pdk=True,
215
+ deprecated_names=["FP_PDN_CORE_RING_VSPACING"],
171
216
  ),
172
217
  Variable(
173
- "FP_PDN_CORE_RING_HSPACING",
218
+ "PDN_CORE_RING_HSPACING",
174
219
  Decimal,
175
220
  "The spacing for the horizontal layer in the core ring of generated power distribution networks.",
176
221
  units="µm",
177
222
  pdk=True,
223
+ deprecated_names=["FP_PDN_CORE_RING_HSPACING"],
178
224
  ),
179
225
  Variable(
180
- "FP_PDN_CORE_RING_VOFFSET",
226
+ "PDN_CORE_RING_VOFFSET",
181
227
  Decimal,
182
228
  "The offset for the vertical layer in the core ring of generated power distribution networks.",
183
229
  units="µm",
184
230
  pdk=True,
231
+ deprecated_names=["FP_PDN_CORE_RING_VOFFSET"],
185
232
  ),
186
233
  Variable(
187
- "FP_PDN_CORE_RING_HOFFSET",
234
+ "PDN_CORE_RING_HOFFSET",
188
235
  Decimal,
189
236
  "The offset for the horizontal layer in the core ring of generated power distribution networks.",
190
237
  units="µm",
191
238
  pdk=True,
239
+ deprecated_names=["FP_PDN_CORE_RING_HOFFSET"],
192
240
  ),
193
241
  Variable(
194
- "FP_PDN_RAIL_LAYER",
242
+ "PDN_RAIL_LAYER",
195
243
  str,
196
244
  "Defines the metal layer used for PDN rails.",
197
- deprecated_names=["FP_PDN_RAILS_LAYER"],
245
+ deprecated_names=["FP_PDN_RAIL_LAYER", "FP_PDN_RAILS_LAYER"],
198
246
  pdk=True,
199
247
  ),
200
248
  Variable(
201
- "FP_PDN_RAIL_WIDTH",
249
+ "PDN_RAIL_WIDTH",
202
250
  Decimal,
203
251
  "Defines the width of PDN rails on the `FP_PDN_RAILS_LAYER` layer.",
204
252
  units="µm",
205
253
  pdk=True,
254
+ deprecated_names=["FP_PDN_RAIL_WIDTH"],
206
255
  ),
207
256
  Variable(
208
- "FP_PDN_HORIZONTAL_LAYER",
257
+ "PDN_HORIZONTAL_LAYER",
209
258
  str,
210
259
  "Defines the horizontal PDN layer.",
211
- deprecated_names=["FP_PDN_UPPER_LAYER"],
260
+ deprecated_names=["FP_PDN_HORIZONTAL_LAYER", "FP_PDN_UPPER_LAYER"],
212
261
  pdk=True,
213
262
  ),
214
263
  Variable(
215
- "FP_PDN_VERTICAL_LAYER",
264
+ "PDN_VERTICAL_LAYER",
216
265
  str,
217
266
  "Defines the vertical PDN layer.",
218
- deprecated_names=["FP_PDN_LOWER_LAYER"],
267
+ deprecated_names=["FP_PDN_VERTICAL_LAYER", "FP_PDN_LOWER_LAYER"],
219
268
  pdk=True,
220
269
  ),
221
270
  ]
librelane/steps/odb.py CHANGED
@@ -618,31 +618,10 @@ class CustomIOPlacement(OdbpyStep):
618
618
 
619
619
  config_vars = io_layer_variables + [
620
620
  Variable(
621
- "FP_IO_VLENGTH",
622
- Optional[Decimal],
623
- """
624
- The length of the pins with a north or south orientation. If unspecified by a PDK, the script will use whichever is higher of the following two values:
625
- * The pin width
626
- * The minimum value satisfying the minimum area constraint given the pin width
627
- """,
628
- units="µm",
629
- pdk=True,
630
- ),
631
- Variable(
632
- "FP_IO_HLENGTH",
633
- Optional[Decimal],
634
- """
635
- The length of the pins with an east or west orientation. If unspecified by a PDK, the script will use whichever is higher of the following two values:
636
- * The pin width
637
- * The minimum value satisfying the minimum area constraint given the pin width
638
- """,
639
- units="µm",
640
- pdk=True,
641
- ),
642
- Variable(
643
- "FP_PIN_ORDER_CFG",
621
+ "IO_PIN_ORDER_CFG",
644
622
  Optional[Path],
645
- "Path to the configuration file. If set to `None`, this step is skipped.",
623
+ "Path to a custom pin configuration file.",
624
+ deprecated_names=["FP_PIN_ORDER_CFG"],
646
625
  ),
647
626
  Variable(
648
627
  "ERRORS_ON_UNMATCHED_IO",
@@ -660,28 +639,28 @@ class CustomIOPlacement(OdbpyStep):
660
639
 
661
640
  def get_command(self) -> List[str]:
662
641
  length_args = []
663
- if self.config["FP_IO_VLENGTH"] is not None:
664
- length_args += ["--ver-length", self.config["FP_IO_VLENGTH"]]
665
- if self.config["FP_IO_HLENGTH"] is not None:
666
- length_args += ["--hor-length", self.config["FP_IO_HLENGTH"]]
642
+ if self.config["IO_PIN_V_LENGTH"] is not None:
643
+ length_args += ["--ver-length", self.config["IO_PIN_V_LENGTH"]]
644
+ if self.config["IO_PIN_H_LENGTH"] is not None:
645
+ length_args += ["--hor-length", self.config["IO_PIN_H_LENGTH"]]
667
646
 
668
647
  return (
669
648
  super().get_command()
670
649
  + [
671
650
  "--config",
672
- self.config["FP_PIN_ORDER_CFG"],
651
+ self.config["IO_PIN_ORDER_CFG"],
673
652
  "--hor-layer",
674
653
  self.config["FP_IO_HLAYER"],
675
654
  "--ver-layer",
676
655
  self.config["FP_IO_VLAYER"],
677
656
  "--hor-width-mult",
678
- str(self.config["FP_IO_VTHICKNESS_MULT"]),
657
+ str(self.config["IO_PIN_V_THICKNESS_MULT"]),
679
658
  "--ver-width-mult",
680
- str(self.config["FP_IO_HTHICKNESS_MULT"]),
659
+ str(self.config["IO_PIN_H_THICKNESS_MULT"]),
681
660
  "--hor-extension",
682
- str(self.config["FP_IO_HEXTEND"]),
661
+ str(self.config["IO_PIN_H_EXTENSION"]),
683
662
  "--ver-extension",
684
- str(self.config["FP_IO_VEXTEND"]),
663
+ str(self.config["IO_PIN_V_EXTENSION"]),
685
664
  "--unmatched-error",
686
665
  self.config["ERRORS_ON_UNMATCHED_IO"],
687
666
  ]
@@ -689,8 +668,8 @@ class CustomIOPlacement(OdbpyStep):
689
668
  )
690
669
 
691
670
  def run(self, state_in: State, **kwargs) -> Tuple[ViewsUpdate, MetricsUpdate]:
692
- if self.config["FP_PIN_ORDER_CFG"] is None:
693
- info(f"No custom floorplan file configured, skipping '{self.id}'…")
671
+ if self.config["IO_PIN_ORDER_CFG"] is None:
672
+ info(f"No custom I/O placement file configured, skipping '{self.id}'…")
694
673
  return {}, {}
695
674
  return super().run(state_in, **kwargs)
696
675
 
@@ -1177,8 +1177,8 @@ class IOPlacement(OpenROADStep):
1177
1177
  """
1178
1178
  Places I/O pins on a floor-planned ODB file using OpenROAD's built-in placer.
1179
1179
 
1180
- If ``FP_PIN_ORDER_CFG`` is not ``None``, this step is skipped (for
1181
- compatibility with LibreLane 1.)
1180
+ If ``IO_PIN_ORDER_CFG`` is not ``None``, this step is skipped (for
1181
+ compatibility with OpenLane.)
1182
1182
  """
1183
1183
 
1184
1184
  id = "OpenROAD.IOPlacement"
@@ -1189,51 +1189,31 @@ class IOPlacement(OpenROADStep):
1189
1189
  + io_layer_variables
1190
1190
  + [
1191
1191
  Variable(
1192
- "FP_PPL_MODE",
1192
+ "IO_PIN_PLACEMENT_MODE",
1193
1193
  Literal["matching", "random_equidistant", "annealing"],
1194
1194
  "Decides the mode of the random IO placement option.",
1195
1195
  default="matching",
1196
- deprecated_names=[("FP_IO_MODE", _migrate_ppl_mode)],
1196
+ deprecated_names=[("FP_IO_MODE", _migrate_ppl_mode), "FP_PPL_MODE"],
1197
1197
  ),
1198
1198
  Variable(
1199
- "FP_IO_MIN_DISTANCE",
1199
+ "IO_PIN_MIN_DISTANCE",
1200
1200
  Optional[Decimal],
1201
1201
  "The minimum distance between two pins. If unspecified by a PDK, OpenROAD will use the length of two routing tracks.",
1202
1202
  units="µm",
1203
1203
  pdk=True,
1204
+ deprecated_names=["FP_IO_MIN_DISTANCE"],
1204
1205
  ),
1205
1206
  Variable(
1206
- "FP_PIN_ORDER_CFG",
1207
+ "IO_PIN_ORDER_CFG",
1207
1208
  Optional[Path],
1208
1209
  "Path to a custom pin configuration file.",
1210
+ deprecated_names=["FP_PIN_ORDER_CFG"],
1209
1211
  ),
1210
1212
  Variable(
1211
1213
  "FP_DEF_TEMPLATE",
1212
1214
  Optional[Path],
1213
1215
  "Points to the DEF file to be used as a template.",
1214
1216
  ),
1215
- Variable(
1216
- "FP_IO_VLENGTH",
1217
- Optional[Decimal],
1218
- """
1219
- The length of the pins with a north or south orientation. If unspecified by a PDK, OpenROAD will use whichever is higher of the following two values:
1220
- * The pin width
1221
- * The minimum value satisfying the minimum area constraint given the pin width
1222
- """,
1223
- units="µm",
1224
- pdk=True,
1225
- ),
1226
- Variable(
1227
- "FP_IO_HLENGTH",
1228
- Optional[Decimal],
1229
- """
1230
- The length of the pins with an east or west orientation. If unspecified by a PDK, OpenROAD will use whichever is higher of the following two values:
1231
- * The pin width
1232
- * The minimum value satisfying the minimum area constraint given the pin width
1233
- """,
1234
- units="µm",
1235
- pdk=True,
1236
- ),
1237
1217
  ]
1238
1218
  )
1239
1219
 
@@ -1241,8 +1221,8 @@ class IOPlacement(OpenROADStep):
1241
1221
  return os.path.join(get_script_dir(), "openroad", "ioplacer.tcl")
1242
1222
 
1243
1223
  def run(self, state_in: State, **kwargs) -> Tuple[ViewsUpdate, MetricsUpdate]:
1244
- if self.config["FP_PIN_ORDER_CFG"] is not None:
1245
- info(f"FP_PIN_ORDER_CFG is set. Skipping '{self.id}'…")
1224
+ if self.config["IO_PIN_ORDER_CFG"] is not None:
1225
+ info(f"IO_PIN_ORDER_CFG is set. Skipping '{self.id}'…")
1246
1226
  return {}, {}
1247
1227
  if self.config["FP_DEF_TEMPLATE"] is not None:
1248
1228
  info(
@@ -1353,10 +1333,10 @@ class GeneratePDN(OpenROADStep):
1353
1333
  + pdn_variables
1354
1334
  + [
1355
1335
  Variable(
1356
- "FP_PDN_CFG",
1336
+ "PDN_CFG",
1357
1337
  Optional[Path],
1358
1338
  "A custom PDN configuration file. If not provided, the default PDN config will be used.",
1359
- deprecated_names=["PDN_CFG"],
1339
+ deprecated_names=["FP_PDN_CFG"],
1360
1340
  )
1361
1341
  ]
1362
1342
  )
@@ -1366,11 +1346,11 @@ class GeneratePDN(OpenROADStep):
1366
1346
 
1367
1347
  def run(self, state_in: State, **kwargs) -> Tuple[ViewsUpdate, MetricsUpdate]:
1368
1348
  kwargs, env = self.extract_env(kwargs)
1369
- if self.config["FP_PDN_CFG"] is None:
1370
- env["FP_PDN_CFG"] = os.path.join(
1349
+ if self.config["PDN_CFG"] is None:
1350
+ env["PDN_CFG"] = os.path.join(
1371
1351
  get_script_dir(), "openroad", "common", "pdn_cfg.tcl"
1372
1352
  )
1373
- info(f"'FP_PDN_CFG' not explicitly set, setting it to {env['FP_PDN_CFG']}…")
1353
+ info(f"'PDN_CFG' not explicitly set, setting it to {env['PDN_CFG']}…")
1374
1354
  views_updates, metrics_updates = super().run(state_in, env=env, **kwargs)
1375
1355
 
1376
1356
  alerts = self.alerts or []
@@ -1523,16 +1503,17 @@ class GlobalPlacementSkipIO(_GlobalPlacement):
1523
1503
 
1524
1504
  config_vars = _GlobalPlacement.config_vars + [
1525
1505
  Variable(
1526
- "FP_PPL_MODE",
1506
+ "IO_PIN_PLACEMENT_MODE",
1527
1507
  Literal["matching", "random_equidistant", "annealing"],
1528
1508
  "Decides the mode of the random IO placement option.",
1529
1509
  default="matching",
1530
- deprecated_names=[("FP_IO_MODE", _migrate_ppl_mode)],
1510
+ deprecated_names=[("FP_IO_MODE", _migrate_ppl_mode), "FP_PPL_MODE"],
1531
1511
  ),
1532
1512
  Variable(
1533
- "FP_PIN_ORDER_CFG",
1513
+ "IO_PIN_ORDER_CFG",
1534
1514
  Optional[Path],
1535
1515
  "Path to a custom pin configuration file.",
1516
+ deprecated_names=["FP_PIN_ORDER_CFG"],
1536
1517
  ),
1537
1518
  Variable(
1538
1519
  "FP_DEF_TEMPLATE",
@@ -1548,9 +1529,9 @@ class GlobalPlacementSkipIO(_GlobalPlacement):
1548
1529
  f"I/O pins were loaded from {self.config['FP_DEF_TEMPLATE']}. Returning state unaltered…"
1549
1530
  )
1550
1531
  return {}, {}
1551
- if self.config["FP_PIN_ORDER_CFG"] is not None:
1532
+ if self.config["IO_PIN_ORDER_CFG"] is not None:
1552
1533
  info(
1553
- f"I/O pins to be placed from {self.config['FP_PIN_ORDER_CFG']}. Returning state unaltered…"
1534
+ f"I/O pins to be placed from {self.config['IO_PIN_ORDER_CFG']}. Returning state unaltered…"
1554
1535
  )
1555
1536
  return {}, {}
1556
1537
  env["__PL_SKIP_IO"] = "1"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: librelane
3
- Version: 3.0.0.dev24
3
+ Version: 3.0.0.dev25
4
4
  Summary: An infrastructure for implementing chip design flows
5
5
  Home-page: https://github.com/librelane/librelane
6
6
  License: Apache-2.0
@@ -26,7 +26,7 @@ librelane/config/removals.py,sha256=vxqTuRTJ0jt2TX4KmFZCZPTwghDFkCVjIhF2iReHwJA,
26
26
  librelane/config/variable.py,sha256=v92bVwy11LgS53gYhU9DBwOUABc2XMGqEglqTORpPfc,26269
27
27
  librelane/container.py,sha256=3KHxs3dUSVUZVYsS6fsA7dD3Q4QEQEzRxgXZZh9dzi0,7554
28
28
  librelane/env_info.py,sha256=vAE9AZ_vDFLt7Srtg4ZywPzE6vgVhCrIvg8PP25-BJ8,10460
29
- librelane/examples/spm/config.yaml,sha256=YKBm0lsY3AJZNcxAh1sQ1QMmJeVCpOpil6dw_RgQh4c,633
29
+ librelane/examples/spm/config.yaml,sha256=H2ERY4xoIeXN7kM3N9yGWiFBbtByyaN2Ni1kFqYPtO4,612
30
30
  librelane/examples/spm/pin_order.cfg,sha256=-8mTGFKnES0vhQATfaE2TXN_mdCZ3SZIN90Src1l6fY,52
31
31
  librelane/examples/spm/src/impl.sdc,sha256=wP18UoVlOJ9q4lmUoa3XpgcpPdyzEqHBNxCgOOU7QH0,2961
32
32
  librelane/examples/spm/src/signoff.sdc,sha256=uiW143QNFig2vw3tXdC0LEtd59_pzsuaBDdgtMGB48Q,2694
@@ -35,7 +35,7 @@ librelane/examples/spm/verify/spm_tb.v,sha256=FJfUnnI7u4SDcrnKXK0QWd9KSpM-fjH2ni
35
35
  librelane/examples/spm-user_project_wrapper/SPM_example.v,sha256=pSpVqH0LSzWHDcNCqehPik1GRQbw57fXqWZctITnWmY,8430
36
36
  librelane/examples/spm-user_project_wrapper/base_sdc_file.sdc,sha256=O6dbdMWNR1AKi3bdHcYRqMs89angq2eWSBxzSR3R_Pg,7247
37
37
  librelane/examples/spm-user_project_wrapper/config-tut.json,sha256=g6NBPVNZifToYeT5yU9Em8yv6TsUUD8JMsIvsGGN0bI,254
38
- librelane/examples/spm-user_project_wrapper/config.json,sha256=Whifv8K2ydE6UGbVfaHyZXbMtfuGX88mhGhsTheXMVU,363
38
+ librelane/examples/spm-user_project_wrapper/config.json,sha256=BBfnaAQ1VFabzurQDGcHGTgLkFudKL2-RdB3pIZrZ5Q,448
39
39
  librelane/examples/spm-user_project_wrapper/defines.v,sha256=TUfuwmRFiUCjY6MdWJLGr0LWiuyoPpH1UeBbacDqFDI,2236
40
40
  librelane/examples/spm-user_project_wrapper/template.def,sha256=7kl9l-oh4BDKuFHhp2yzk-ObUcrvvUVwPkqsMG0ZTds,438993
41
41
  librelane/examples/spm-user_project_wrapper/user_project_wrapper.v,sha256=zc6GC583muuWtzw3p6v_B1k8j-Oo9WypuQf_8doA4uo,3364
@@ -107,8 +107,8 @@ librelane/scripts/openroad/buffer_list.tcl,sha256=sXygy1KRSUS4dZi1UOpBkGGOuXRVLM
107
107
  librelane/scripts/openroad/common/dpl.tcl,sha256=T_rzoZy8i7S9C92TOmiN79w0MCfudafEhkXcHmB1BAM,920
108
108
  librelane/scripts/openroad/common/dpl_cell_pad.tcl,sha256=KWVuj8u1-y3ZUiQr48TAsFv1GSzOCVnAjdqfBjtoQxQ,1066
109
109
  librelane/scripts/openroad/common/grt.tcl,sha256=2qDLSj8lKKEJHH9V9npiSMXQdsIsIHE0DVmbVRStbk4,1132
110
- librelane/scripts/openroad/common/io.tcl,sha256=1DHtdskRn1yc-jywvUFClHbrPFypKUXdZqOXXJsfouQ,22523
111
- librelane/scripts/openroad/common/pdn_cfg.tcl,sha256=6Uodl1pO6fckiQnMFbTo3fghrflqXp-MQnQ9ZT5gR64,4555
110
+ librelane/scripts/openroad/common/io.tcl,sha256=fAoRoz6E9iwanFsWvaO50T1xGF6CSuxw38O6MtgrZ1w,22756
111
+ librelane/scripts/openroad/common/pdn_cfg.tcl,sha256=8xTK4_her0hcaxySKpXKlQIIe0goetTcJlSEBl88qL0,4417
112
112
  librelane/scripts/openroad/common/resizer.tcl,sha256=OhjpVxw_8IOx5Bmh2_gh_EIHxKaX84NS37Of9Rlchpw,2255
113
113
  librelane/scripts/openroad/common/set_global_connections.tcl,sha256=jxafLD-2SLciJYeueobrlJYetnfAfK0P5uMLwhaTQco,2927
114
114
  librelane/scripts/openroad/common/set_layer_adjustments.tcl,sha256=xqAIDXsTa1_JsGmKXf6eG2Rni2EZSilSsHfJAhCl1xY,1037
@@ -126,9 +126,9 @@ librelane/scripts/openroad/gpl.tcl,sha256=WzxlyikUf70Q1FgaE6sIVvquYPZ8RU02_te1VB
126
126
  librelane/scripts/openroad/grt.tcl,sha256=r_73hbvc4wMi2EFoPbGTh29Lh5ATT4vVwKjxyPIOFcM,1022
127
127
  librelane/scripts/openroad/gui.tcl,sha256=BhKTcYEo-SajnYtdzXqpzjYbczy0qZ-OvEFlHMjPtlU,1255
128
128
  librelane/scripts/openroad/insert_buffer.tcl,sha256=ST0tbr1LoutjjaouqgngiQZudlzzHMd5APB6DTE2TGw,4412
129
- librelane/scripts/openroad/ioplacer.tcl,sha256=u7PQ8vaPKHAXeb2HNc5RZmOMc52j2LrccO0irnxDNLM,1861
129
+ librelane/scripts/openroad/ioplacer.tcl,sha256=tV-GF4ExJAKXqw-PQTf1Xlcc87xDJDLi1jksmnS1Smk,1970
130
130
  librelane/scripts/openroad/irdrop.tcl,sha256=bXhNY_87xPV-ocF9v8wOWqjlnFPaVO_6K_DWbBHAAPs,1974
131
- librelane/scripts/openroad/pdn.tcl,sha256=YlZp5T9A4ZEC5_05QXMyQuOfYtJhQ3uR2Gu3-xud9vM,1569
131
+ librelane/scripts/openroad/pdn.tcl,sha256=WiKVmLw3g_ZN1Hs4iiAzc6Qah7ZwCn6o-OA5iNmlTtY,1566
132
132
  librelane/scripts/openroad/rcx.tcl,sha256=kyEhli4sGFMEj-He9UXZDGb0Tmxlw7d6iZD7t6adUx8,1057
133
133
  librelane/scripts/openroad/repair_design.tcl,sha256=mSQKIT-uac2gJFia_xMNQtHJKD--aTI2T0gmM5mrWZA,2314
134
134
  librelane/scripts/openroad/repair_design_postgrt.tcl,sha256=sEXdFfH2le-q0ggcsWGgCR-GCFyzPdxk4P3RZyWCnpI,1902
@@ -151,21 +151,21 @@ librelane/state/state.py,sha256=3CdihPR6lryQMt8ihSef0O2F8-qaqy1w7V0wiwie3nk,1171
151
151
  librelane/steps/__init__.py,sha256=j3JYrdnWM74dYuEvE931oSrQI7FUz-hKWr8Mts8C0wg,1668
152
152
  librelane/steps/__main__.py,sha256=GviXtDLISKJCufKxK3oFPOSMF1GyShZbG5RXpVCYFkk,13376
153
153
  librelane/steps/checker.py,sha256=HD5YFPAbHQKsFmBDrIAbo_0clZcCszNhIXb4lHaNIeQ,21629
154
- librelane/steps/common_variables.py,sha256=XPNEvrojD-6oIvxgo55mi2lKmARWyYq-PtY1_c_0ZUs,10318
154
+ librelane/steps/common_variables.py,sha256=eih2eA1m0FpL8ydF5WWattwh_SxtzI55eb8gggJtBuY,12494
155
155
  librelane/steps/cvc_rv.py,sha256=TNnEQDJI5tEUq8OQelVmBWmNbLzygrvKsZ36utKDvp4,5543
156
156
  librelane/steps/klayout.py,sha256=EFtzu53bWm-Bg_xEovdR7fc1GbWTwqkcivtr1rivHWU,16615
157
157
  librelane/steps/magic.py,sha256=Xtsy1KWu8dcNq3pRlqM9WRRxtwbCQJq24IyxC0W8D2o,20254
158
158
  librelane/steps/misc.py,sha256=8ubCvFeFEspXrgnzNWINY5-TXTyalNtlvcX8TSw0qdg,5685
159
159
  librelane/steps/netgen.py,sha256=R9sDWv-9wKMdi2rkuLQdOc4uLlbYhXcKKd6WsZsnLt0,8953
160
- librelane/steps/odb.py,sha256=9ilEnb8w--T84Eh51cB_sz5fwa-UWa7d7p0Di5rv3BA,39371
161
- librelane/steps/openroad.py,sha256=YQ_vMfPrTgz843Rhq9MR38sZ5C_-YuFO4Z73QOkTAfA,100144
160
+ librelane/steps/odb.py,sha256=SD5m1ulI2f1LB0_0oKanY9Yql9YpKGolMqtfXun2xTY,38498
161
+ librelane/steps/openroad.py,sha256=quPV082y__la4YgRKfB4wFslcn9E9nEDUSgSIlE3yRo,99340
162
162
  librelane/steps/openroad_alerts.py,sha256=IJyB4piBDCKXhkJswHGMYCRDwbdQsR0GZlrGGDhmW6Q,3364
163
163
  librelane/steps/pyosys.py,sha256=LY7qqxkhjfoyBBR7vdkm7ylabbxMJDwIoYm7mAUbLVY,23348
164
164
  librelane/steps/step.py,sha256=T5z0Nm5z-fq_qj3BIwchnfUobmxX67cEmZ-5dUYT76s,55163
165
165
  librelane/steps/tclstep.py,sha256=YwyiSXAjRIflH2vzYvTzYfN4FyAI8Td9B_CKLkBj08o,10084
166
166
  librelane/steps/verilator.py,sha256=MWx2TpLqYyea9_jSeLG9c2S5ujvYERQZRFNaMhfHxZE,7916
167
167
  librelane/steps/yosys.py,sha256=uC72fb1yFXyIxrtcRu5DxxR3hadG19SlGh668yjhWHc,12694
168
- librelane-3.0.0.dev24.dist-info/METADATA,sha256=maVhK_OcJ7zHWMQsUUmlwqT4bID895Jv6Sx3FpZnzm8,6561
169
- librelane-3.0.0.dev24.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
170
- librelane-3.0.0.dev24.dist-info/entry_points.txt,sha256=GTBvXykNMMFsNKiJFgtEw7P1wb_VZIqVM35EFSpyZQE,263
171
- librelane-3.0.0.dev24.dist-info/RECORD,,
168
+ librelane-3.0.0.dev25.dist-info/METADATA,sha256=jBuGDi3vE2DO6eXdV0UE5_PDXxN5SErWVZePiZEfmmA,6561
169
+ librelane-3.0.0.dev25.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
170
+ librelane-3.0.0.dev25.dist-info/entry_points.txt,sha256=GTBvXykNMMFsNKiJFgtEw7P1wb_VZIqVM35EFSpyZQE,263
171
+ librelane-3.0.0.dev25.dist-info/RECORD,,