pyedb 0.50.0__py3-none-any.whl → 0.50.1__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 pyedb might be problematic. Click here for more details.
- pyedb/__init__.py +1 -1
- pyedb/dotnet/database/cell/hierarchy/component.py +3 -3
- pyedb/dotnet/database/edb_data/padstacks_data.py +13 -0
- pyedb/grpc/database/components.py +494 -652
- pyedb/grpc/database/control_file.py +458 -149
- pyedb/grpc/database/definition/component_def.py +17 -14
- pyedb/grpc/database/definition/materials.py +27 -27
- pyedb/grpc/database/definition/package_def.py +8 -8
- pyedb/grpc/database/definition/padstack_def.py +31 -33
- pyedb/grpc/database/geometry/arc_data.py +5 -5
- pyedb/grpc/database/geometry/point_3d_data.py +3 -3
- pyedb/grpc/database/geometry/polygon_data.py +5 -5
- pyedb/grpc/database/hfss.py +397 -395
- pyedb/grpc/database/hierarchy/component.py +58 -57
- pyedb/grpc/database/hierarchy/pin_pair_model.py +6 -6
- pyedb/grpc/database/hierarchy/pingroup.py +13 -11
- pyedb/grpc/database/hierarchy/s_parameter_model.py +1 -1
- pyedb/grpc/database/hierarchy/spice_model.py +1 -1
- pyedb/grpc/database/layers/layer.py +2 -2
- pyedb/grpc/database/layers/stackup_layer.py +26 -23
- pyedb/grpc/database/layout/layout.py +12 -12
- pyedb/grpc/database/layout/voltage_regulator.py +8 -8
- pyedb/grpc/database/modeler.py +248 -245
- pyedb/grpc/database/net/differential_pair.py +4 -4
- pyedb/grpc/database/net/extended_net.py +7 -8
- pyedb/grpc/database/net/net.py +57 -46
- pyedb/grpc/database/nets.py +139 -122
- pyedb/grpc/database/padstacks.py +174 -190
- pyedb/grpc/database/ports/ports.py +23 -17
- pyedb/grpc/database/primitive/padstack_instance.py +45 -30
- pyedb/grpc/database/primitive/path.py +6 -6
- pyedb/grpc/database/primitive/polygon.py +9 -9
- pyedb/grpc/database/primitive/primitive.py +21 -21
- pyedb/grpc/database/primitive/rectangle.py +1 -1
- pyedb/grpc/database/simulation_setup/hfss_advanced_settings.py +1 -1
- pyedb/grpc/database/simulation_setup/hfss_general_settings.py +1 -1
- pyedb/grpc/database/simulation_setup/hfss_settings_options.py +1 -1
- pyedb/grpc/database/simulation_setup/hfss_simulation_settings.py +6 -6
- pyedb/grpc/database/simulation_setup/hfss_simulation_setup.py +2 -2
- pyedb/grpc/database/simulation_setup/raptor_x_simulation_settings.py +2 -2
- pyedb/grpc/database/simulation_setup/raptor_x_simulation_setup.py +1 -1
- pyedb/grpc/database/simulation_setup/siwave_simulation_setup.py +3 -3
- pyedb/grpc/database/siwave.py +166 -214
- pyedb/grpc/database/stackup.py +365 -292
- pyedb/grpc/database/terminal/bundle_terminal.py +12 -12
- pyedb/grpc/database/terminal/edge_terminal.py +6 -5
- pyedb/grpc/database/terminal/padstack_instance_terminal.py +13 -13
- pyedb/grpc/database/terminal/pingroup_terminal.py +12 -12
- pyedb/grpc/database/terminal/point_terminal.py +6 -6
- pyedb/grpc/database/terminal/terminal.py +26 -26
- pyedb/grpc/database/utility/heat_sink.py +5 -5
- pyedb/grpc/database/utility/hfss_extent_info.py +21 -21
- pyedb/grpc/database/utility/layout_statistics.py +13 -13
- pyedb/grpc/database/utility/rlc.py +3 -3
- pyedb/grpc/database/utility/sources.py +1 -1
- pyedb/grpc/database/utility/sweep_data_distribution.py +1 -1
- pyedb/grpc/edb.py +422 -672
- {pyedb-0.50.0.dist-info → pyedb-0.50.1.dist-info}/METADATA +1 -1
- {pyedb-0.50.0.dist-info → pyedb-0.50.1.dist-info}/RECORD +61 -62
- pyedb/grpc/database/utility/simulation_configuration.py +0 -3305
- {pyedb-0.50.0.dist-info → pyedb-0.50.1.dist-info}/LICENSE +0 -0
- {pyedb-0.50.0.dist-info → pyedb-0.50.1.dist-info}/WHEEL +0 -0
pyedb/grpc/database/hfss.py
CHANGED
|
@@ -37,66 +37,136 @@ from pyedb.modeler.geometry_operators import GeometryOperators
|
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
class Hfss(object):
|
|
40
|
-
"""Manages EDB
|
|
40
|
+
"""Manages EDB methods for HFSS setup configuration.
|
|
41
|
+
|
|
42
|
+
Provides access to HFSS-specific operations including:
|
|
43
|
+
- Excitation and port creation
|
|
44
|
+
- Source and probe management
|
|
45
|
+
- Simulation setup configuration
|
|
46
|
+
- Boundary condition creation
|
|
47
|
+
- Layout manipulation for simulation
|
|
48
|
+
|
|
49
|
+
Accessed via `Edb.hfss` property.
|
|
50
|
+
"""
|
|
41
51
|
|
|
42
52
|
def __init__(self, p_edb):
|
|
43
53
|
self._pedb = p_edb
|
|
44
54
|
|
|
45
55
|
@property
|
|
46
56
|
def hfss_extent_info(self) -> HfssExtentInfo:
|
|
47
|
-
"""HFSS extent information.
|
|
57
|
+
"""HFSS extent information.
|
|
58
|
+
|
|
59
|
+
Returns
|
|
60
|
+
-------
|
|
61
|
+
HfssExtentInfo
|
|
62
|
+
Object containing HFSS extent configuration data.
|
|
63
|
+
"""
|
|
48
64
|
return HfssExtentInfo(self._pedb)
|
|
49
65
|
|
|
50
66
|
@property
|
|
51
67
|
def _logger(self):
|
|
68
|
+
"""Logger instance for message handling.
|
|
69
|
+
|
|
70
|
+
Returns
|
|
71
|
+
-------
|
|
72
|
+
logging.Logger
|
|
73
|
+
Current logger instance.
|
|
74
|
+
"""
|
|
52
75
|
return self._pedb.logger
|
|
53
76
|
|
|
54
77
|
@property
|
|
55
78
|
def _edb(self):
|
|
56
|
-
"""EDB object.
|
|
79
|
+
"""EDB API object.
|
|
57
80
|
|
|
58
81
|
Returns
|
|
59
82
|
-------
|
|
60
83
|
Ansys.Ansoft.Edb
|
|
84
|
+
EDB API instance.
|
|
61
85
|
"""
|
|
62
86
|
return self._pedb
|
|
63
87
|
|
|
64
88
|
@property
|
|
65
89
|
def _active_layout(self):
|
|
90
|
+
"""Active layout object.
|
|
91
|
+
|
|
92
|
+
Returns
|
|
93
|
+
-------
|
|
94
|
+
Edb.Cell.Layout
|
|
95
|
+
Current active layout.
|
|
96
|
+
"""
|
|
66
97
|
return self._pedb.active_layout
|
|
67
98
|
|
|
68
99
|
@property
|
|
69
100
|
def _layout(self):
|
|
101
|
+
"""Current layout object.
|
|
102
|
+
|
|
103
|
+
Returns
|
|
104
|
+
-------
|
|
105
|
+
Edb.Cell.Layout
|
|
106
|
+
Current layout.
|
|
107
|
+
"""
|
|
70
108
|
return self._pedb.layout
|
|
71
109
|
|
|
72
110
|
@property
|
|
73
111
|
def _cell(self):
|
|
112
|
+
"""Current cell object.
|
|
113
|
+
|
|
114
|
+
Returns
|
|
115
|
+
-------
|
|
116
|
+
Edb.Cell
|
|
117
|
+
Current cell.
|
|
118
|
+
"""
|
|
74
119
|
return self._pedb.cell
|
|
75
120
|
|
|
76
121
|
@property
|
|
77
122
|
def _db(self):
|
|
123
|
+
"""Active database object.
|
|
124
|
+
|
|
125
|
+
Returns
|
|
126
|
+
-------
|
|
127
|
+
Edb.Database
|
|
128
|
+
Active database.
|
|
129
|
+
"""
|
|
78
130
|
return self._pedb.active_db
|
|
79
131
|
|
|
80
132
|
@property
|
|
81
133
|
def excitations(self):
|
|
82
|
-
"""
|
|
134
|
+
"""All excitation definitions in the layout.
|
|
135
|
+
|
|
136
|
+
Returns
|
|
137
|
+
-------
|
|
138
|
+
list
|
|
139
|
+
List of excitation objects.
|
|
140
|
+
"""
|
|
83
141
|
return self._pedb.excitations
|
|
84
142
|
|
|
85
143
|
@property
|
|
86
144
|
def sources(self):
|
|
87
|
-
"""
|
|
145
|
+
"""All source definitions in the layout.
|
|
146
|
+
|
|
147
|
+
Returns
|
|
148
|
+
-------
|
|
149
|
+
list
|
|
150
|
+
List of source objects.
|
|
151
|
+
"""
|
|
88
152
|
return self._pedb.sources
|
|
89
153
|
|
|
90
154
|
@property
|
|
91
155
|
def probes(self):
|
|
92
|
-
"""
|
|
156
|
+
"""All probe definitions in the layout.
|
|
157
|
+
|
|
158
|
+
Returns
|
|
159
|
+
-------
|
|
160
|
+
list
|
|
161
|
+
List of probe objects.
|
|
162
|
+
"""
|
|
93
163
|
return self._pedb.probes
|
|
94
164
|
|
|
95
165
|
def _create_edge_terminal(self, prim_id, point_on_edge, terminal_name=None, is_ref=False):
|
|
96
|
-
"""Create an edge terminal.
|
|
166
|
+
"""Create an edge terminal (deprecated).
|
|
97
167
|
|
|
98
|
-
|
|
99
|
-
|
|
168
|
+
.. deprecated:: 0.28.0
|
|
169
|
+
Use :func:`pyedb.grpc.core.excitations._create_edge_terminal` instead.
|
|
100
170
|
|
|
101
171
|
Parameters
|
|
102
172
|
----------
|
|
@@ -104,17 +174,15 @@ class Hfss(object):
|
|
|
104
174
|
Primitive ID.
|
|
105
175
|
point_on_edge : list
|
|
106
176
|
Coordinate of the point to define the edge terminal.
|
|
107
|
-
The point must be on the target edge but not on the two
|
|
108
|
-
ends of the edge.
|
|
109
177
|
terminal_name : str, optional
|
|
110
|
-
Name of the terminal.
|
|
111
|
-
default name is assigned.
|
|
178
|
+
Name of the terminal.
|
|
112
179
|
is_ref : bool, optional
|
|
113
|
-
Whether it is a reference terminal.
|
|
180
|
+
Whether it is a reference terminal.
|
|
114
181
|
|
|
115
182
|
Returns
|
|
116
183
|
-------
|
|
117
184
|
Edb.Cell.Terminal.EdgeTerminal
|
|
185
|
+
Created edge terminal.
|
|
118
186
|
"""
|
|
119
187
|
warnings.warn(
|
|
120
188
|
"`_create_edge_terminal` is deprecated and is now located here "
|
|
@@ -126,12 +194,12 @@ class Hfss(object):
|
|
|
126
194
|
)
|
|
127
195
|
|
|
128
196
|
def get_trace_width_for_traces_with_ports(self):
|
|
129
|
-
"""Retrieve
|
|
197
|
+
"""Retrieve trace widths for traces with ports.
|
|
130
198
|
|
|
131
199
|
Returns
|
|
132
|
-
|
|
200
|
+
-------
|
|
133
201
|
dict
|
|
134
|
-
Dictionary
|
|
202
|
+
Dictionary mapping net names to smallest trace widths.
|
|
135
203
|
"""
|
|
136
204
|
nets = {}
|
|
137
205
|
for net in self._pedb.excitations_nets:
|
|
@@ -139,27 +207,26 @@ class Hfss(object):
|
|
|
139
207
|
return nets
|
|
140
208
|
|
|
141
209
|
def create_circuit_port_on_pin(self, pos_pin, neg_pin, impedance=50, port_name=None):
|
|
142
|
-
"""Create
|
|
210
|
+
"""Create circuit port between two pins (deprecated).
|
|
143
211
|
|
|
144
|
-
|
|
145
|
-
|
|
212
|
+
.. deprecated:: 0.28.0
|
|
213
|
+
Use :func:`pyedb.grpc.core.excitations.create_circuit_port_on_pin` instead.
|
|
146
214
|
|
|
147
215
|
Parameters
|
|
148
216
|
----------
|
|
149
|
-
pos_pin :
|
|
150
|
-
|
|
151
|
-
neg_pin :
|
|
152
|
-
|
|
153
|
-
impedance : float
|
|
154
|
-
Port
|
|
217
|
+
pos_pin : Edb.Cell.Primitive.PadstackInstance
|
|
218
|
+
Positive pin.
|
|
219
|
+
neg_pin : Edb.Cell.Primitive.PadstackInstance
|
|
220
|
+
Negative pin.
|
|
221
|
+
impedance : float, optional
|
|
222
|
+
Port impedance.
|
|
155
223
|
port_name : str, optional
|
|
156
|
-
Port
|
|
224
|
+
Port name.
|
|
157
225
|
|
|
158
226
|
Returns
|
|
159
227
|
-------
|
|
160
228
|
str
|
|
161
|
-
Port
|
|
162
|
-
|
|
229
|
+
Port name.
|
|
163
230
|
"""
|
|
164
231
|
warnings.warn(
|
|
165
232
|
"`create_circuit_port_on_pin` is deprecated and is now located here "
|
|
@@ -169,36 +236,28 @@ class Hfss(object):
|
|
|
169
236
|
return self._pedb.excitations.create_circuit_port_on_pin(pos_pin, neg_pin, impedance, port_name)
|
|
170
237
|
|
|
171
238
|
def create_voltage_source_on_pin(self, pos_pin, neg_pin, voltage_value=3.3, phase_value=0, source_name=""):
|
|
172
|
-
"""Create
|
|
239
|
+
"""Create voltage source between two pins (deprecated).
|
|
173
240
|
|
|
174
|
-
|
|
175
|
-
|
|
241
|
+
.. deprecated:: 0.28.0
|
|
242
|
+
Use :func:`pyedb.grpc.core.excitations.create_voltage_source_on_pin` instead.
|
|
176
243
|
|
|
177
244
|
Parameters
|
|
178
245
|
----------
|
|
179
|
-
pos_pin :
|
|
180
|
-
Positive
|
|
181
|
-
neg_pin :
|
|
182
|
-
Negative
|
|
246
|
+
pos_pin : Edb.Cell.Primitive.PadstackInstance
|
|
247
|
+
Positive pin.
|
|
248
|
+
neg_pin : Edb.Cell.Primitive.PadstackInstance
|
|
249
|
+
Negative pin.
|
|
183
250
|
voltage_value : float, optional
|
|
184
|
-
|
|
185
|
-
phase_value : optional
|
|
186
|
-
|
|
251
|
+
Voltage value.
|
|
252
|
+
phase_value : float, optional
|
|
253
|
+
Phase value.
|
|
187
254
|
source_name : str, optional
|
|
188
|
-
|
|
255
|
+
Source name.
|
|
189
256
|
|
|
190
257
|
Returns
|
|
191
258
|
-------
|
|
192
259
|
str
|
|
193
|
-
Source
|
|
194
|
-
|
|
195
|
-
Examples
|
|
196
|
-
--------
|
|
197
|
-
|
|
198
|
-
>>> from pyedb import Edb
|
|
199
|
-
>>> edbapp = Edb("myaedbfolder", "project name", "release version")
|
|
200
|
-
>>> pins =edbapp.components.get_pin_from_component("U2A5")
|
|
201
|
-
>>> edbapp.hfss.create_voltage_source_on_pin(pins[0], pins[1],50,"source_name")
|
|
260
|
+
Source name.
|
|
202
261
|
"""
|
|
203
262
|
warnings.warn(
|
|
204
263
|
"`create_voltage_source_on_pin` is deprecated and is now located here "
|
|
@@ -210,36 +269,28 @@ class Hfss(object):
|
|
|
210
269
|
)
|
|
211
270
|
|
|
212
271
|
def create_current_source_on_pin(self, pos_pin, neg_pin, current_value=0.1, phase_value=0, source_name=""):
|
|
213
|
-
"""Create
|
|
272
|
+
"""Create current source between two pins (deprecated).
|
|
214
273
|
|
|
215
|
-
|
|
216
|
-
|
|
274
|
+
.. deprecated:: 0.28.0
|
|
275
|
+
Use :func:`pyedb.grpc.core.excitations.create_current_source_on_pin` instead.
|
|
217
276
|
|
|
218
277
|
Parameters
|
|
219
278
|
----------
|
|
220
|
-
pos_pin :
|
|
221
|
-
Positive
|
|
222
|
-
neg_pin :
|
|
223
|
-
Negative
|
|
279
|
+
pos_pin : Edb.Cell.Primitive.PadstackInstance
|
|
280
|
+
Positive pin.
|
|
281
|
+
neg_pin : Edb.Cell.Primitive.PadstackInstance
|
|
282
|
+
Negative pin.
|
|
224
283
|
current_value : float, optional
|
|
225
|
-
|
|
226
|
-
phase_value : optional
|
|
227
|
-
|
|
284
|
+
Current value.
|
|
285
|
+
phase_value : float, optional
|
|
286
|
+
Phase value.
|
|
228
287
|
source_name : str, optional
|
|
229
|
-
|
|
288
|
+
Source name.
|
|
230
289
|
|
|
231
290
|
Returns
|
|
232
291
|
-------
|
|
233
292
|
str
|
|
234
|
-
Source
|
|
235
|
-
|
|
236
|
-
Examples
|
|
237
|
-
--------
|
|
238
|
-
|
|
239
|
-
>>> from pyedb import Edb
|
|
240
|
-
>>> edbapp = Edb("myaedbfolder", "project name", "release version")
|
|
241
|
-
>>> pins =edbapp.components.get_pin_from_component("U2A5")
|
|
242
|
-
>>> edbapp.hfss.create_current_source_on_pin(pins[0], pins[1],50,"source_name")
|
|
293
|
+
Source name.
|
|
243
294
|
"""
|
|
244
295
|
warnings.warn(
|
|
245
296
|
"`create_current_source_on_pin` is deprecated and is now located here "
|
|
@@ -251,34 +302,26 @@ class Hfss(object):
|
|
|
251
302
|
)
|
|
252
303
|
|
|
253
304
|
def create_resistor_on_pin(self, pos_pin, neg_pin, rvalue=1, resistor_name=""):
|
|
254
|
-
"""Create
|
|
305
|
+
"""Create resistor between two pins (deprecated).
|
|
255
306
|
|
|
256
|
-
|
|
257
|
-
|
|
307
|
+
.. deprecated:: 0.28.0
|
|
308
|
+
Use :func:`pyedb.grpc.core.excitations.create_resistor_on_pin` instead.
|
|
258
309
|
|
|
259
310
|
Parameters
|
|
260
311
|
----------
|
|
261
|
-
pos_pin :
|
|
262
|
-
Positive
|
|
263
|
-
neg_pin :
|
|
264
|
-
Negative
|
|
312
|
+
pos_pin : Edb.Cell.Primitive.PadstackInstance
|
|
313
|
+
Positive pin.
|
|
314
|
+
neg_pin : Edb.Cell.Primitive.PadstackInstance
|
|
315
|
+
Negative pin.
|
|
265
316
|
rvalue : float, optional
|
|
266
|
-
Resistance value.
|
|
317
|
+
Resistance value.
|
|
267
318
|
resistor_name : str, optional
|
|
268
|
-
|
|
319
|
+
Resistor name.
|
|
269
320
|
|
|
270
321
|
Returns
|
|
271
322
|
-------
|
|
272
323
|
str
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
Examples
|
|
276
|
-
--------
|
|
277
|
-
|
|
278
|
-
>>> from pyedb import Edb
|
|
279
|
-
>>> edbapp = Edb("myaedbfolder", "project name", "release version")
|
|
280
|
-
>>> pins =edbapp.components.get_pin_from_component("U2A5")
|
|
281
|
-
>>> edbapp.hfss.create_resistor_on_pin(pins[0], pins[1],50,"res_name")
|
|
324
|
+
Resistor name.
|
|
282
325
|
"""
|
|
283
326
|
warnings.warn(
|
|
284
327
|
"`create_resistor_on_pin` is deprecated and is now located here "
|
|
@@ -296,35 +339,31 @@ class Hfss(object):
|
|
|
296
339
|
impedance_value=50,
|
|
297
340
|
port_name="",
|
|
298
341
|
):
|
|
299
|
-
"""Create
|
|
300
|
-
|
|
301
|
-
. deprecated:: pyedb 0.28.0
|
|
302
|
-
Use :func:`pyedb.grpc.core.excitations.create_circuit_port_on_net` instead.
|
|
342
|
+
"""Create circuit port on net (deprecated).
|
|
303
343
|
|
|
304
|
-
|
|
344
|
+
.. deprecated:: 0.28.0
|
|
345
|
+
Use :func:`pyedb.grpc.core.excitations.create_circuit_port_on_net` instead.
|
|
305
346
|
|
|
306
347
|
Parameters
|
|
307
348
|
----------
|
|
308
349
|
positive_component_name : str
|
|
309
|
-
|
|
350
|
+
Positive component name.
|
|
310
351
|
positive_net_name : str
|
|
311
|
-
|
|
352
|
+
Positive net name.
|
|
312
353
|
negative_component_name : str, optional
|
|
313
|
-
|
|
314
|
-
the positive net is assigned.
|
|
354
|
+
Negative component name.
|
|
315
355
|
negative_net_name : str, optional
|
|
316
|
-
|
|
356
|
+
Negative net name.
|
|
317
357
|
impedance_value : float, optional
|
|
318
|
-
Port impedance
|
|
358
|
+
Port impedance.
|
|
319
359
|
port_name : str, optional
|
|
320
|
-
|
|
360
|
+
Port name.
|
|
321
361
|
|
|
322
362
|
Returns
|
|
323
363
|
-------
|
|
324
364
|
str
|
|
325
|
-
|
|
365
|
+
Port name.
|
|
326
366
|
"""
|
|
327
|
-
|
|
328
367
|
warnings.warn(
|
|
329
368
|
"`create_circuit_port_on_net` is deprecated and is now located here "
|
|
330
369
|
"`pyedb.grpc.core.excitations.create_circuit_port_on_net` instead.",
|
|
@@ -349,35 +388,33 @@ class Hfss(object):
|
|
|
349
388
|
phase_value=0,
|
|
350
389
|
source_name="",
|
|
351
390
|
):
|
|
352
|
-
"""Create
|
|
391
|
+
"""Create voltage source on net (deprecated).
|
|
353
392
|
|
|
354
|
-
|
|
355
|
-
|
|
393
|
+
.. deprecated:: 0.28.0
|
|
394
|
+
Use :func:`pyedb.grpc.core.excitations.create_voltage_source_on_net` instead.
|
|
356
395
|
|
|
357
396
|
Parameters
|
|
358
397
|
----------
|
|
359
398
|
positive_component_name : str
|
|
360
|
-
|
|
399
|
+
Positive component name.
|
|
361
400
|
positive_net_name : str
|
|
362
|
-
|
|
401
|
+
Positive net name.
|
|
363
402
|
negative_component_name : str, optional
|
|
364
|
-
|
|
365
|
-
the positive net is assigned.
|
|
403
|
+
Negative component name.
|
|
366
404
|
negative_net_name : str, optional
|
|
367
|
-
|
|
405
|
+
Negative net name.
|
|
368
406
|
voltage_value : float, optional
|
|
369
|
-
|
|
370
|
-
phase_value : optional
|
|
371
|
-
|
|
407
|
+
Voltage value.
|
|
408
|
+
phase_value : float, optional
|
|
409
|
+
Phase value.
|
|
372
410
|
source_name : str, optional
|
|
373
|
-
|
|
411
|
+
Source name.
|
|
374
412
|
|
|
375
413
|
Returns
|
|
376
414
|
-------
|
|
377
415
|
str
|
|
378
|
-
Source
|
|
416
|
+
Source name.
|
|
379
417
|
"""
|
|
380
|
-
|
|
381
418
|
warnings.warn(
|
|
382
419
|
"`create_voltage_source_on_net` is deprecated and is now located here "
|
|
383
420
|
"`pyedb.grpc.core.excitations.create_voltage_source_on_net` instead.",
|
|
@@ -403,35 +440,33 @@ class Hfss(object):
|
|
|
403
440
|
phase_value=0,
|
|
404
441
|
source_name="",
|
|
405
442
|
):
|
|
406
|
-
"""Create
|
|
443
|
+
"""Create current source on net (deprecated).
|
|
407
444
|
|
|
408
|
-
|
|
409
|
-
|
|
445
|
+
.. deprecated:: 0.28.0
|
|
446
|
+
Use :func:`pyedb.grpc.core.excitations.create_current_source_on_net` instead.
|
|
410
447
|
|
|
411
448
|
Parameters
|
|
412
449
|
----------
|
|
413
450
|
positive_component_name : str
|
|
414
|
-
|
|
451
|
+
Positive component name.
|
|
415
452
|
positive_net_name : str
|
|
416
|
-
|
|
453
|
+
Positive net name.
|
|
417
454
|
negative_component_name : str, optional
|
|
418
|
-
|
|
419
|
-
the positive net is assigned.
|
|
455
|
+
Negative component name.
|
|
420
456
|
negative_net_name : str, optional
|
|
421
|
-
|
|
457
|
+
Negative net name.
|
|
422
458
|
current_value : float, optional
|
|
423
|
-
|
|
424
|
-
phase_value : optional
|
|
425
|
-
|
|
459
|
+
Current value.
|
|
460
|
+
phase_value : float, optional
|
|
461
|
+
Phase value.
|
|
426
462
|
source_name : str, optional
|
|
427
|
-
|
|
463
|
+
Source name.
|
|
428
464
|
|
|
429
465
|
Returns
|
|
430
466
|
-------
|
|
431
467
|
str
|
|
432
|
-
Source
|
|
468
|
+
Source name.
|
|
433
469
|
"""
|
|
434
|
-
|
|
435
470
|
warnings.warn(
|
|
436
471
|
"`create_current_source_on_net` is deprecated and is now located here "
|
|
437
472
|
"`pyedb.grpc.core.excitations.create_current_source_on_net` instead.",
|
|
@@ -448,25 +483,24 @@ class Hfss(object):
|
|
|
448
483
|
)
|
|
449
484
|
|
|
450
485
|
def create_coax_port_on_component(self, ref_des_list, net_list, delete_existing_terminal=False):
|
|
451
|
-
"""Create
|
|
452
|
-
The name of the new coaxial port is automatically assigned.
|
|
486
|
+
"""Create coaxial port on component (deprecated).
|
|
453
487
|
|
|
454
|
-
|
|
455
|
-
|
|
488
|
+
.. deprecated:: 0.28.0
|
|
489
|
+
Use :func:`pyedb.grpc.core.excitations.create_coax_port_on_component` instead.
|
|
456
490
|
|
|
457
491
|
Parameters
|
|
458
492
|
----------
|
|
459
493
|
ref_des_list : list, str
|
|
460
|
-
|
|
461
|
-
|
|
494
|
+
Reference designator(s).
|
|
462
495
|
net_list : list, str
|
|
463
|
-
|
|
496
|
+
Net name(s).
|
|
497
|
+
delete_existing_terminal : bool, optional
|
|
498
|
+
Delete existing terminals.
|
|
464
499
|
|
|
465
500
|
Returns
|
|
466
501
|
-------
|
|
467
502
|
bool
|
|
468
|
-
|
|
469
|
-
|
|
503
|
+
True if successful, False otherwise.
|
|
470
504
|
"""
|
|
471
505
|
warnings.warn(
|
|
472
506
|
"`create_coax_port_on_component` is deprecated and is now located here "
|
|
@@ -488,39 +522,34 @@ class Hfss(object):
|
|
|
488
522
|
vertical_extent_factor=3,
|
|
489
523
|
pec_launch_width="0.01mm",
|
|
490
524
|
):
|
|
491
|
-
"""Create
|
|
525
|
+
"""Create differential wave port (deprecated).
|
|
492
526
|
|
|
493
|
-
|
|
494
|
-
|
|
527
|
+
.. deprecated:: 0.28.0
|
|
528
|
+
Use :func:`pyedb.grpc.core.excitations.create_differential_wave_port` instead.
|
|
495
529
|
|
|
496
530
|
Parameters
|
|
497
531
|
----------
|
|
498
532
|
positive_primitive_id : int, EDBPrimitives
|
|
499
|
-
|
|
533
|
+
Positive primitive ID.
|
|
500
534
|
positive_points_on_edge : list
|
|
501
|
-
|
|
502
|
-
The point must be close to the target edge but not on the two
|
|
503
|
-
ends of the edge.
|
|
535
|
+
Point coordinates on positive edge.
|
|
504
536
|
negative_primitive_id : int, EDBPrimitives
|
|
505
|
-
|
|
537
|
+
Negative primitive ID.
|
|
506
538
|
negative_points_on_edge : list
|
|
507
|
-
|
|
508
|
-
The point must be close to the target edge but not on the two
|
|
509
|
-
ends of the edge.
|
|
539
|
+
Point coordinates on negative edge.
|
|
510
540
|
port_name : str, optional
|
|
511
|
-
|
|
541
|
+
Port name.
|
|
512
542
|
horizontal_extent_factor : int, float, optional
|
|
513
|
-
Horizontal extent factor.
|
|
543
|
+
Horizontal extent factor.
|
|
514
544
|
vertical_extent_factor : int, float, optional
|
|
515
|
-
Vertical extent factor.
|
|
545
|
+
Vertical extent factor.
|
|
516
546
|
pec_launch_width : str, optional
|
|
517
|
-
|
|
547
|
+
PEC launch width.
|
|
518
548
|
|
|
519
549
|
Returns
|
|
520
550
|
-------
|
|
521
551
|
tuple
|
|
522
|
-
|
|
523
|
-
|
|
552
|
+
(Port name, ExcitationDifferential) tuple.
|
|
524
553
|
"""
|
|
525
554
|
warnings.warn(
|
|
526
555
|
"`create_differential_wave_port` is deprecated and is now located here "
|
|
@@ -547,32 +576,30 @@ class Hfss(object):
|
|
|
547
576
|
vertical_extent_factor=3,
|
|
548
577
|
pec_launch_width="0.01mm",
|
|
549
578
|
):
|
|
550
|
-
"""Create
|
|
579
|
+
"""Create bundle wave port (deprecated).
|
|
551
580
|
|
|
552
|
-
|
|
553
|
-
|
|
581
|
+
.. deprecated:: 0.28.0
|
|
582
|
+
Use :func:`pyedb.grpc.core.excitations.create_bundle_wave_port` instead.
|
|
554
583
|
|
|
555
584
|
Parameters
|
|
556
585
|
----------
|
|
557
586
|
primitives_id : list
|
|
558
|
-
Primitive
|
|
587
|
+
Primitive IDs.
|
|
559
588
|
points_on_edge : list
|
|
560
|
-
|
|
561
|
-
The point must be close to the target edge but not on the two
|
|
562
|
-
ends of the edge.
|
|
589
|
+
Point coordinates on edges.
|
|
563
590
|
port_name : str, optional
|
|
564
|
-
|
|
591
|
+
Port name.
|
|
565
592
|
horizontal_extent_factor : int, float, optional
|
|
566
|
-
Horizontal extent factor.
|
|
593
|
+
Horizontal extent factor.
|
|
567
594
|
vertical_extent_factor : int, float, optional
|
|
568
|
-
Vertical extent factor.
|
|
595
|
+
Vertical extent factor.
|
|
569
596
|
pec_launch_width : str, optional
|
|
570
|
-
|
|
597
|
+
PEC launch width.
|
|
571
598
|
|
|
572
599
|
Returns
|
|
573
600
|
-------
|
|
574
601
|
tuple
|
|
575
|
-
|
|
602
|
+
(Port name, ExcitationDifferential) tuple.
|
|
576
603
|
"""
|
|
577
604
|
warnings.warn(
|
|
578
605
|
"`create_bundle_wave_port` is deprecated and is now located here "
|
|
@@ -584,23 +611,22 @@ class Hfss(object):
|
|
|
584
611
|
)
|
|
585
612
|
|
|
586
613
|
def create_hfss_ports_on_padstack(self, pinpos, portname=None):
|
|
587
|
-
"""Create
|
|
614
|
+
"""Create HFSS port on padstack (deprecated).
|
|
588
615
|
|
|
589
|
-
|
|
590
|
-
|
|
616
|
+
.. deprecated:: 0.28.0
|
|
617
|
+
Use :func:`pyedb.grpc.core.excitations.create_hfss_ports_on_padstack` instead.
|
|
591
618
|
|
|
592
619
|
Parameters
|
|
593
620
|
----------
|
|
594
621
|
pinpos :
|
|
595
|
-
|
|
596
|
-
|
|
622
|
+
Pin position.
|
|
597
623
|
portname : str, optional
|
|
598
|
-
|
|
624
|
+
Port name.
|
|
599
625
|
|
|
600
626
|
Returns
|
|
601
627
|
-------
|
|
602
628
|
bool
|
|
603
|
-
|
|
629
|
+
True if successful, False otherwise.
|
|
604
630
|
"""
|
|
605
631
|
warnings.warn(
|
|
606
632
|
"`create_hfss_ports_on_padstack` is deprecated and is now located here "
|
|
@@ -620,45 +646,35 @@ class Hfss(object):
|
|
|
620
646
|
port_impedance=50.0,
|
|
621
647
|
force_circuit_port=False,
|
|
622
648
|
):
|
|
623
|
-
"""Create
|
|
624
|
-
the reference layer name is only provided. When a port is created between two edge from two polygons which don't
|
|
625
|
-
belong to the same layer, a circuit port will be automatically created instead of lumped. To enforce the circuit
|
|
626
|
-
port instead of lumped,use the boolean force_circuit_port.
|
|
627
|
-
|
|
628
|
-
. deprecated:: pyedb 0.28.0
|
|
629
|
-
Use :func:`pyedb.grpc.core.excitations.create_edge_port_on_polygon` instead.
|
|
649
|
+
"""Create edge port on polygon (deprecated).
|
|
630
650
|
|
|
651
|
+
.. deprecated:: 0.28.0
|
|
652
|
+
Use :func:`pyedb.grpc.core.excitations.create_edge_port_on_polygon` instead.
|
|
631
653
|
|
|
632
654
|
Parameters
|
|
633
655
|
----------
|
|
634
|
-
polygon :
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
str the layer name.
|
|
651
|
-
|
|
652
|
-
port_name : Name of the port.
|
|
653
|
-
str.
|
|
654
|
-
|
|
655
|
-
port_impedance : port impedance value. Default value is 50 Ohms.
|
|
656
|
-
float, impedance value.
|
|
656
|
+
polygon : Edb.Cell.Primitive.Polygon, optional
|
|
657
|
+
Port polygon.
|
|
658
|
+
reference_polygon : Edb.Cell.Primitive.Polygon, optional
|
|
659
|
+
Reference polygon.
|
|
660
|
+
terminal_point : list, optional
|
|
661
|
+
Terminal point coordinates.
|
|
662
|
+
reference_point : list, optional
|
|
663
|
+
Reference point coordinates.
|
|
664
|
+
reference_layer : str, optional
|
|
665
|
+
Reference layer name.
|
|
666
|
+
port_name : str, optional
|
|
667
|
+
Port name.
|
|
668
|
+
port_impedance : float, optional
|
|
669
|
+
Port impedance.
|
|
670
|
+
force_circuit_port : bool, optional
|
|
671
|
+
Force circuit port creation.
|
|
657
672
|
|
|
658
|
-
|
|
659
|
-
|
|
673
|
+
Returns
|
|
674
|
+
-------
|
|
675
|
+
bool
|
|
676
|
+
True if successful, False otherwise.
|
|
660
677
|
"""
|
|
661
|
-
|
|
662
678
|
warnings.warn(
|
|
663
679
|
"`create_edge_port_on_polygon` is deprecated and is now located here "
|
|
664
680
|
"`pyedb.grpc.core.excitations.create_edge_port_on_polygon` instead.",
|
|
@@ -685,39 +701,36 @@ class Hfss(object):
|
|
|
685
701
|
vertical_extent_factor=3,
|
|
686
702
|
pec_launch_width="0.01mm",
|
|
687
703
|
):
|
|
688
|
-
"""Create
|
|
704
|
+
"""Create wave port (deprecated).
|
|
689
705
|
|
|
690
|
-
|
|
691
|
-
|
|
706
|
+
.. deprecated:: 0.28.0
|
|
707
|
+
Use :func:`pyedb.grpc.core.excitations.create_wave_port` instead.
|
|
692
708
|
|
|
693
709
|
Parameters
|
|
694
710
|
----------
|
|
695
711
|
prim_id : int, Primitive
|
|
696
712
|
Primitive ID.
|
|
697
713
|
point_on_edge : list
|
|
698
|
-
|
|
699
|
-
The point must be on the target edge but not on the two
|
|
700
|
-
ends of the edge.
|
|
714
|
+
Point coordinates on edge.
|
|
701
715
|
port_name : str, optional
|
|
702
|
-
|
|
716
|
+
Port name.
|
|
703
717
|
impedance : int, float, optional
|
|
704
|
-
|
|
718
|
+
Port impedance.
|
|
705
719
|
horizontal_extent_factor : int, float, optional
|
|
706
|
-
Horizontal extent factor.
|
|
720
|
+
Horizontal extent factor.
|
|
707
721
|
vertical_extent_factor : int, float, optional
|
|
708
|
-
Vertical extent factor.
|
|
722
|
+
Vertical extent factor.
|
|
709
723
|
pec_launch_width : str, optional
|
|
710
|
-
|
|
724
|
+
PEC launch width.
|
|
711
725
|
|
|
712
726
|
Returns
|
|
713
727
|
-------
|
|
714
728
|
tuple
|
|
715
|
-
|
|
716
|
-
|
|
729
|
+
(Port name, Excitation) tuple.
|
|
717
730
|
"""
|
|
718
731
|
warnings.warn(
|
|
719
|
-
"`
|
|
720
|
-
"`pyedb.grpc.core.excitations.
|
|
732
|
+
"`create_wave_port` is deprecated and is now located here "
|
|
733
|
+
"`pyedb.grpc.core.excitations.create_wave_port` instead.",
|
|
721
734
|
DeprecationWarning,
|
|
722
735
|
)
|
|
723
736
|
return self._pedb.source_excitation.create_wave_port(
|
|
@@ -742,35 +755,31 @@ class Hfss(object):
|
|
|
742
755
|
vertical_extent_factor=3,
|
|
743
756
|
pec_launch_width="0.01mm",
|
|
744
757
|
):
|
|
745
|
-
"""Create
|
|
758
|
+
"""Create vertical edge port (deprecated).
|
|
746
759
|
|
|
747
|
-
|
|
748
|
-
|
|
760
|
+
.. deprecated:: 0.28.0
|
|
761
|
+
Use :func:`pyedb.grpc.core.excitations.create_edge_port_vertical` instead.
|
|
749
762
|
|
|
750
763
|
Parameters
|
|
751
764
|
----------
|
|
752
765
|
prim_id : int
|
|
753
766
|
Primitive ID.
|
|
754
767
|
point_on_edge : list
|
|
755
|
-
|
|
756
|
-
The point must be on the target edge but not on the two
|
|
757
|
-
ends of the edge.
|
|
768
|
+
Point coordinates on edge.
|
|
758
769
|
port_name : str, optional
|
|
759
|
-
|
|
770
|
+
Port name.
|
|
760
771
|
impedance : int, float, optional
|
|
761
|
-
|
|
772
|
+
Port impedance.
|
|
762
773
|
reference_layer : str, optional
|
|
763
|
-
Reference layer
|
|
774
|
+
Reference layer name.
|
|
764
775
|
hfss_type : str, optional
|
|
765
|
-
|
|
776
|
+
Port type ("Gap" or "Wave").
|
|
766
777
|
horizontal_extent_factor : int, float, optional
|
|
767
|
-
Horizontal extent factor.
|
|
778
|
+
Horizontal extent factor.
|
|
768
779
|
vertical_extent_factor : int, float, optional
|
|
769
|
-
Vertical extent factor.
|
|
770
|
-
radial_extent_factor : int, float, optional
|
|
771
|
-
Radial extent factor. The default value is ``0``.
|
|
780
|
+
Vertical extent factor.
|
|
772
781
|
pec_launch_width : str, optional
|
|
773
|
-
|
|
782
|
+
PEC launch width.
|
|
774
783
|
|
|
775
784
|
Returns
|
|
776
785
|
-------
|
|
@@ -804,36 +813,32 @@ class Hfss(object):
|
|
|
804
813
|
impedance=50,
|
|
805
814
|
layer_alignment="Upper",
|
|
806
815
|
):
|
|
807
|
-
"""Create
|
|
816
|
+
"""Create horizontal edge port (deprecated).
|
|
808
817
|
|
|
809
|
-
|
|
810
|
-
|
|
818
|
+
.. deprecated:: 0.28.0
|
|
819
|
+
Use :func:`pyedb.grpc.core.excitations.create_edge_port_horizontal` instead.
|
|
811
820
|
|
|
812
821
|
Parameters
|
|
813
822
|
----------
|
|
814
823
|
prim_id : int
|
|
815
824
|
Primitive ID.
|
|
816
825
|
point_on_edge : list
|
|
817
|
-
|
|
818
|
-
The point must be on the target edge but not on the two
|
|
819
|
-
ends of the edge.
|
|
826
|
+
Point coordinates on edge.
|
|
820
827
|
ref_prim_id : int, optional
|
|
821
|
-
Reference primitive ID.
|
|
828
|
+
Reference primitive ID.
|
|
822
829
|
point_on_ref_edge : list, optional
|
|
823
|
-
|
|
824
|
-
terminal. The point must be on the target edge but not
|
|
825
|
-
on the two ends of the edge. The default is ``None``.
|
|
830
|
+
Point coordinates on reference edge.
|
|
826
831
|
port_name : str, optional
|
|
827
|
-
|
|
832
|
+
Port name.
|
|
828
833
|
impedance : int, float, optional
|
|
829
|
-
|
|
834
|
+
Port impedance.
|
|
830
835
|
layer_alignment : str, optional
|
|
831
|
-
Layer alignment
|
|
836
|
+
Layer alignment ("Upper" or "Lower").
|
|
832
837
|
|
|
833
838
|
Returns
|
|
834
839
|
-------
|
|
835
840
|
str
|
|
836
|
-
|
|
841
|
+
Port name.
|
|
837
842
|
"""
|
|
838
843
|
warnings.warn(
|
|
839
844
|
"`create_edge_port_horizontal` is deprecated and is now located here "
|
|
@@ -845,36 +850,28 @@ class Hfss(object):
|
|
|
845
850
|
)
|
|
846
851
|
|
|
847
852
|
def create_lumped_port_on_net(self, nets, reference_layer, return_points_only, digit_resolution, at_bounding_box):
|
|
848
|
-
"""Create
|
|
849
|
-
nets and tries to assign vertical lumped port.
|
|
853
|
+
"""Create lumped port on net (deprecated).
|
|
850
854
|
|
|
851
|
-
|
|
852
|
-
|
|
855
|
+
.. deprecated:: 0.28.0
|
|
856
|
+
Use :func:`pyedb.grpc.core.excitations.create_lumped_port_on_net` instead.
|
|
853
857
|
|
|
854
858
|
Parameters
|
|
855
859
|
----------
|
|
856
|
-
nets : list
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
value is ``False``.
|
|
865
|
-
|
|
866
|
-
digit_resolution : int, optional
|
|
867
|
-
The number of digits carried for the edge location accuracy. The default value is ``6``.
|
|
868
|
-
|
|
860
|
+
nets : list
|
|
861
|
+
Net names or objects.
|
|
862
|
+
reference_layer : str, Edb.Layer
|
|
863
|
+
Reference layer name or object.
|
|
864
|
+
return_points_only : bool
|
|
865
|
+
Return points only without creating ports.
|
|
866
|
+
digit_resolution : int
|
|
867
|
+
Coordinate digit resolution.
|
|
869
868
|
at_bounding_box : bool
|
|
870
|
-
|
|
871
|
-
a cutout has been performed before and lumped ports have to be created on ending traces. Default value is
|
|
872
|
-
``True``.
|
|
869
|
+
Use layout bounding box.
|
|
873
870
|
|
|
874
871
|
Returns
|
|
875
872
|
-------
|
|
876
873
|
bool
|
|
877
|
-
|
|
874
|
+
True if successful, False otherwise.
|
|
878
875
|
"""
|
|
879
876
|
warnings.warn(
|
|
880
877
|
"`create_lumped_port_on_net` is deprecated and is now located here "
|
|
@@ -886,31 +883,28 @@ class Hfss(object):
|
|
|
886
883
|
)
|
|
887
884
|
|
|
888
885
|
def create_vertical_circuit_port_on_clipped_traces(self, nets=None, reference_net=None, user_defined_extent=None):
|
|
889
|
-
"""Create
|
|
886
|
+
"""Create vertical circuit port on clipped traces (deprecated).
|
|
890
887
|
|
|
891
|
-
|
|
892
|
-
|
|
888
|
+
.. deprecated:: 0.28.0
|
|
889
|
+
Use :func:`pyedb.grpc.core.excitations.create_vertical_circuit_port_on_clipped_traces` instead.
|
|
893
890
|
|
|
894
891
|
Parameters
|
|
895
892
|
----------
|
|
896
893
|
nets : list, optional
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
user_defined_extent : [x, y], EDB PolygonData
|
|
903
|
-
Use this point list or PolygonData object to check if ports are at this polygon border.
|
|
894
|
+
Net names or objects.
|
|
895
|
+
reference_net : str, Edb.Net, optional
|
|
896
|
+
Reference net name or object.
|
|
897
|
+
user_defined_extent : list, PolygonData, optional
|
|
898
|
+
User-defined extent polygon.
|
|
904
899
|
|
|
905
900
|
Returns
|
|
906
901
|
-------
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
and terminal name.
|
|
902
|
+
list
|
|
903
|
+
List of port data [net_name, x, y, terminal_name].
|
|
910
904
|
"""
|
|
911
905
|
warnings.warn(
|
|
912
|
-
"`
|
|
913
|
-
"`pyedb.grpc.core.excitations.
|
|
906
|
+
"`create_vertical_circuit_port_on_clipped_traces` is deprecated and is now located here "
|
|
907
|
+
"`pyedb.grpc.core.excitations.create_vertical_circuit_port_on_clipped_traces` instead.",
|
|
914
908
|
DeprecationWarning,
|
|
915
909
|
)
|
|
916
910
|
return self._pedb.source_excitation.create_vertical_circuit_port_on_clipped_traces(
|
|
@@ -918,20 +912,19 @@ class Hfss(object):
|
|
|
918
912
|
)
|
|
919
913
|
|
|
920
914
|
def get_layout_bounding_box(self, layout=None, digit_resolution=6):
|
|
921
|
-
"""
|
|
915
|
+
"""Calculate layout bounding box.
|
|
922
916
|
|
|
923
917
|
Parameters
|
|
924
918
|
----------
|
|
925
|
-
layout :
|
|
926
|
-
|
|
927
|
-
|
|
919
|
+
layout : Edb.Cell.Layout, optional
|
|
920
|
+
Layout object (uses active layout if None).
|
|
928
921
|
digit_resolution : int, optional
|
|
929
|
-
|
|
922
|
+
Coordinate rounding precision.
|
|
930
923
|
|
|
931
924
|
Returns
|
|
932
925
|
-------
|
|
933
926
|
list
|
|
934
|
-
[
|
|
927
|
+
[min_x, min_y, max_x, max_y] coordinates.
|
|
935
928
|
"""
|
|
936
929
|
if not layout:
|
|
937
930
|
layout = self._active_layout
|
|
@@ -950,21 +943,22 @@ class Hfss(object):
|
|
|
950
943
|
return layout_bbox
|
|
951
944
|
|
|
952
945
|
def configure_hfss_extents(self, simulation_setup=None):
|
|
953
|
-
"""Configure
|
|
946
|
+
"""Configure HFSS extent box (deprecated).
|
|
954
947
|
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
948
|
+
.. deprecated:: 0.28.0
|
|
949
|
+
Use :func:
|
|
950
|
+
`pyedb.grpc.core.utility.simulation_configuration.ProcessSimulationConfiguration.configure_hfss_extents`
|
|
951
|
+
instead.
|
|
958
952
|
|
|
959
953
|
Parameters
|
|
960
954
|
----------
|
|
961
|
-
simulation_setup :
|
|
962
|
-
|
|
955
|
+
simulation_setup : HfssSimulationSetup, optional
|
|
956
|
+
Simulation setup object.
|
|
963
957
|
|
|
964
958
|
Returns
|
|
965
959
|
-------
|
|
966
960
|
bool
|
|
967
|
-
True
|
|
961
|
+
True if successful, False otherwise.
|
|
968
962
|
"""
|
|
969
963
|
warnings.warn(
|
|
970
964
|
"`configure_hfss_extents` is deprecated and is now located here "
|
|
@@ -977,24 +971,22 @@ class Hfss(object):
|
|
|
977
971
|
)
|
|
978
972
|
|
|
979
973
|
def configure_hfss_analysis_setup(self, simulation_setup=None):
|
|
980
|
-
"""
|
|
981
|
-
Configure HFSS analysis setup.
|
|
982
|
-
|
|
983
|
-
. deprecated:: pyedb 0.28.0
|
|
984
|
-
Use :func:
|
|
985
|
-
`pyedb.grpc.core.utility.simulation_configuration.ProcessSimulationConfiguration.configure_hfss_analysis_setup`
|
|
986
|
-
instead.
|
|
974
|
+
"""Configure HFSS analysis setup (deprecated).
|
|
987
975
|
|
|
976
|
+
.. deprecated:: 0.28.0
|
|
977
|
+
Use :func:
|
|
978
|
+
`pyedb.grpc.core.utility.simulation_configuration.ProcessSimulationConfiguration.configure_hfss_analysis_setup`
|
|
979
|
+
instead.
|
|
988
980
|
|
|
989
981
|
Parameters
|
|
990
982
|
----------
|
|
991
|
-
simulation_setup :
|
|
992
|
-
|
|
983
|
+
simulation_setup : HfssSimulationSetup, optional
|
|
984
|
+
Simulation setup object.
|
|
993
985
|
|
|
994
986
|
Returns
|
|
995
987
|
-------
|
|
996
988
|
bool
|
|
997
|
-
True
|
|
989
|
+
True if successful, False otherwise.
|
|
998
990
|
"""
|
|
999
991
|
warnings.warn(
|
|
1000
992
|
"`configure_hfss_analysis_setup` is deprecated and is now located here "
|
|
@@ -1007,6 +999,19 @@ class Hfss(object):
|
|
|
1007
999
|
)
|
|
1008
1000
|
|
|
1009
1001
|
def _setup_decade_count_sweep(self, sweep, start_freq="1", stop_freq="1MHz", decade_count="10"):
|
|
1002
|
+
"""Configure decade count sweep (internal).
|
|
1003
|
+
|
|
1004
|
+
Parameters
|
|
1005
|
+
----------
|
|
1006
|
+
sweep : SweepData
|
|
1007
|
+
Sweep data object.
|
|
1008
|
+
start_freq : str, float, optional
|
|
1009
|
+
Start frequency.
|
|
1010
|
+
stop_freq : str, float, optional
|
|
1011
|
+
Stop frequency.
|
|
1012
|
+
decade_count : str, float, optional
|
|
1013
|
+
Points per decade.
|
|
1014
|
+
"""
|
|
1010
1015
|
start_f = GeometryOperators.parse_dim_arg(start_freq)
|
|
1011
1016
|
if start_f == 0.0:
|
|
1012
1017
|
start_f = 10
|
|
@@ -1022,30 +1027,20 @@ class Hfss(object):
|
|
|
1022
1027
|
sweep.Frequencies.Add(str(freq))
|
|
1023
1028
|
|
|
1024
1029
|
def trim_component_reference_size(self, simulation_setup=None, trim_to_terminals=False):
|
|
1025
|
-
"""Trim
|
|
1030
|
+
"""Trim component reference size (deprecated).
|
|
1026
1031
|
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1032
|
+
.. deprecated:: 0.28.0
|
|
1033
|
+
Use :func:
|
|
1034
|
+
`pyedb.grpc.core.utility.simulation_configuration.ProcessSimulationConfiguration.trim_component_reference_size`
|
|
1035
|
+
instead.
|
|
1031
1036
|
|
|
1032
1037
|
Parameters
|
|
1033
1038
|
----------
|
|
1034
|
-
simulation_setup :
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
bool.
|
|
1039
|
-
True, reduce the reference to a box covering only the active terminals (i.e. those with
|
|
1040
|
-
ports).
|
|
1041
|
-
False, reduce the reference to the minimal size needed to cover all pins
|
|
1042
|
-
|
|
1043
|
-
Returns
|
|
1044
|
-
-------
|
|
1045
|
-
bool
|
|
1046
|
-
True when succeeded, False when failed.
|
|
1039
|
+
simulation_setup : HfssSimulationSetup, optional
|
|
1040
|
+
Simulation setup object.
|
|
1041
|
+
trim_to_terminals : bool, optional
|
|
1042
|
+
Trim to active terminals only.
|
|
1047
1043
|
"""
|
|
1048
|
-
|
|
1049
1044
|
warnings.warn(
|
|
1050
1045
|
"`trim_component_reference_size` is deprecated and is now located here "
|
|
1051
1046
|
"`pyedb.grpc.core.utility.simulation_configuration.ProcessSimulationConfiguration."
|
|
@@ -1057,22 +1052,17 @@ class Hfss(object):
|
|
|
1057
1052
|
)
|
|
1058
1053
|
|
|
1059
1054
|
def set_coax_port_attributes(self, simulation_setup=None):
|
|
1060
|
-
"""Set coaxial port
|
|
1055
|
+
"""Set coaxial port attributes (deprecated).
|
|
1061
1056
|
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1057
|
+
.. deprecated:: 0.28.0
|
|
1058
|
+
Use :func:
|
|
1059
|
+
`pyedb.grpc.core.utility.simulation_configuration.ProcessSimulationConfiguration.set_coax_port_attributes`
|
|
1060
|
+
instead.
|
|
1066
1061
|
|
|
1067
1062
|
Parameters
|
|
1068
1063
|
----------
|
|
1069
|
-
simulation_setup :
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
Returns
|
|
1073
|
-
-------
|
|
1074
|
-
bool
|
|
1075
|
-
True when succeeded, False when failed.
|
|
1064
|
+
simulation_setup : HfssSimulationSetup, optional
|
|
1065
|
+
Simulation setup object.
|
|
1076
1066
|
"""
|
|
1077
1067
|
warnings.warn(
|
|
1078
1068
|
"`set_coax_port_attributes` is deprecated and is now located here "
|
|
@@ -1085,6 +1075,22 @@ class Hfss(object):
|
|
|
1085
1075
|
)
|
|
1086
1076
|
|
|
1087
1077
|
def _get_terminals_bbox(self, comp, l_inst, terminals_only):
|
|
1078
|
+
"""Get component terminals bounding box (internal).
|
|
1079
|
+
|
|
1080
|
+
Parameters
|
|
1081
|
+
----------
|
|
1082
|
+
comp : Component
|
|
1083
|
+
Component object.
|
|
1084
|
+
l_inst : LayoutObjInstance
|
|
1085
|
+
Layout object instance.
|
|
1086
|
+
terminals_only : bool
|
|
1087
|
+
Consider only terminals.
|
|
1088
|
+
|
|
1089
|
+
Returns
|
|
1090
|
+
-------
|
|
1091
|
+
PolygonData
|
|
1092
|
+
Bounding box polygon.
|
|
1093
|
+
"""
|
|
1088
1094
|
terms_loi = []
|
|
1089
1095
|
if terminals_only:
|
|
1090
1096
|
term_list = []
|
|
@@ -1108,28 +1114,23 @@ class Hfss(object):
|
|
|
1108
1114
|
|
|
1109
1115
|
terms_bbox = []
|
|
1110
1116
|
for loi in terms_loi:
|
|
1111
|
-
# Need to account for the coax port dimension
|
|
1112
1117
|
bb = loi.GetBBox()
|
|
1113
1118
|
ll = [bb[0].x.value, bb[0].y.value]
|
|
1114
1119
|
ur = [bb[1].x.value, bb[1].y.value]
|
|
1115
|
-
|
|
1116
|
-
# Radial Extent Factor, so set slightly larger to avoid validation errors
|
|
1117
|
-
dim = 0.30 * max(abs(ur[0] - ll[0]), abs(ur[1] - ll[1])) # 0.25 corresponds to the default 0.5
|
|
1120
|
+
dim = 0.30 * max(abs(ur[0] - ll[0]), abs(ur[1] - ll[1]))
|
|
1118
1121
|
terms_bbox.append(GrpcPolygonData([ll[0] - dim, ll[1] - dim, ur[0] + dim, ur[1] + dim]))
|
|
1119
1122
|
return GrpcPolygonData.bbox_of_polygons(terms_bbox)
|
|
1120
1123
|
|
|
1121
1124
|
def get_ports_number(self):
|
|
1122
|
-
"""
|
|
1125
|
+
"""Get number of excitation ports.
|
|
1123
1126
|
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
None
|
|
1127
|
+
.. deprecated:: 0.28.0
|
|
1128
|
+
Use :func:`pyedb.grpc.core.excitation.get_ports_number` instead.
|
|
1127
1129
|
|
|
1128
1130
|
Returns
|
|
1129
1131
|
-------
|
|
1130
1132
|
int
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
+
Number of ports.
|
|
1133
1134
|
"""
|
|
1134
1135
|
warnings.warn(
|
|
1135
1136
|
"`get_ports_number` is deprecated and is now located here "
|
|
@@ -1139,22 +1140,22 @@ class Hfss(object):
|
|
|
1139
1140
|
self._pedb.excitations.get_ports_number()
|
|
1140
1141
|
|
|
1141
1142
|
def layout_defeaturing(self, simulation_setup=None):
|
|
1142
|
-
"""Defeature
|
|
1143
|
+
"""Defeature layout polygons (deprecated).
|
|
1143
1144
|
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1145
|
+
.. deprecated:: 0.28.0
|
|
1146
|
+
Use :func:
|
|
1147
|
+
`pyedb.grpc.core.utility.simulation_configuration.ProcessSimulationConfiguration.layout_defeaturing`
|
|
1148
|
+
instead.
|
|
1148
1149
|
|
|
1149
1150
|
Parameters
|
|
1150
1151
|
----------
|
|
1151
|
-
simulation_setup :
|
|
1152
|
+
simulation_setup : HfssSimulationSetup, optional
|
|
1153
|
+
Simulation setup object.
|
|
1152
1154
|
|
|
1153
1155
|
Returns
|
|
1154
1156
|
-------
|
|
1155
1157
|
bool
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
+
True if successful, False otherwise.
|
|
1158
1159
|
"""
|
|
1159
1160
|
warnings.warn(
|
|
1160
1161
|
"`layout_defeaturing` is deprecated and is now located here "
|
|
@@ -1165,34 +1166,32 @@ class Hfss(object):
|
|
|
1165
1166
|
self._pedb.utility.simulation_configuration.ProcessSimulationConfiguration.layout_defeaturing(simulation_setup)
|
|
1166
1167
|
|
|
1167
1168
|
def create_rlc_boundary_on_pins(self, positive_pin=None, negative_pin=None, rvalue=0.0, lvalue=0.0, cvalue=0.0):
|
|
1168
|
-
"""Create
|
|
1169
|
+
"""Create RLC boundary on pins (deprecated).
|
|
1169
1170
|
|
|
1170
|
-
|
|
1171
|
-
|
|
1171
|
+
.. deprecated:: 0.28.0
|
|
1172
|
+
Use :func:`pyedb.grpc.core.excitations.create_rlc_boundary_on_pins` instead.
|
|
1172
1173
|
|
|
1173
1174
|
Parameters
|
|
1174
1175
|
----------
|
|
1175
|
-
positive_pin :
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
cvalue . Capacitance value.
|
|
1176
|
+
positive_pin : Edb.Cell.Primitive.PadstackInstance, optional
|
|
1177
|
+
Positive pin.
|
|
1178
|
+
negative_pin : Edb.Cell.Primitive.PadstackInstance, optional
|
|
1179
|
+
Negative pin.
|
|
1180
|
+
rvalue : float, optional
|
|
1181
|
+
Resistance value.
|
|
1182
|
+
lvalue : float, optional
|
|
1183
|
+
Inductance value.
|
|
1184
|
+
cvalue : float, optional
|
|
1185
|
+
Capacitance value.
|
|
1186
1186
|
|
|
1187
1187
|
Returns
|
|
1188
1188
|
-------
|
|
1189
1189
|
bool
|
|
1190
|
-
|
|
1191
|
-
|
|
1190
|
+
True if successful, False otherwise.
|
|
1192
1191
|
"""
|
|
1193
1192
|
warnings.warn(
|
|
1194
1193
|
"`create_rlc_boundary_on_pins` is deprecated and is now located here "
|
|
1195
|
-
"`pyedb.grpc.core.create_rlc_boundary_on_pins
|
|
1194
|
+
"`pyedb.grpc.core.excitations.create_rlc_boundary_on_pins` instead.",
|
|
1196
1195
|
DeprecationWarning,
|
|
1197
1196
|
)
|
|
1198
1197
|
return self._pedb.source_excitation.create_rlc_boundary_on_pins(
|
|
@@ -1208,34 +1207,37 @@ class Hfss(object):
|
|
|
1208
1207
|
step_freq=1e6,
|
|
1209
1208
|
discrete_sweep=False,
|
|
1210
1209
|
) -> HfssSimulationSetup:
|
|
1211
|
-
"""Add
|
|
1210
|
+
"""Add HFSS analysis setup.
|
|
1212
1211
|
|
|
1213
1212
|
Parameters
|
|
1214
1213
|
----------
|
|
1215
1214
|
name : str, optional
|
|
1216
|
-
Setup name.
|
|
1217
|
-
Sweep type. `"interpolating"` or `"discrete"`.
|
|
1215
|
+
Setup name (auto-generated if None).
|
|
1218
1216
|
distribution : str, optional
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
Starting frequency. The default is ``0``.
|
|
1227
|
-
stop_freq : str, float, optional
|
|
1228
|
-
Stopping frequency. The default is ``20e9``.
|
|
1229
|
-
step_freq : str, float, int, optional
|
|
1230
|
-
Frequency step. The default is ``1e6``. or used for `"decade_count"`, "linear_count"`, "octave_count"`
|
|
1231
|
-
distribution. Must be integer in that case.
|
|
1217
|
+
Sweep distribution type ("linear", "linear_count", "decade_count", "octave_count", "exponential").
|
|
1218
|
+
start_freq : float, str, optional
|
|
1219
|
+
Starting frequency (Hz).
|
|
1220
|
+
stop_freq : float, str, optional
|
|
1221
|
+
Stopping frequency (Hz).
|
|
1222
|
+
step_freq : float, str, int, optional
|
|
1223
|
+
Frequency step (Hz) or count depending on distribution.
|
|
1232
1224
|
discrete_sweep : bool, optional
|
|
1233
|
-
|
|
1225
|
+
Use discrete sweep.
|
|
1234
1226
|
|
|
1235
1227
|
Returns
|
|
1236
1228
|
-------
|
|
1237
|
-
|
|
1238
|
-
|
|
1229
|
+
HfssSimulationSetup
|
|
1230
|
+
Created setup object.
|
|
1231
|
+
|
|
1232
|
+
Examples
|
|
1233
|
+
--------
|
|
1234
|
+
>>> hfss_setup = edb.hfss.add_setup(
|
|
1235
|
+
... name="MySetup",
|
|
1236
|
+
... distribution="linear_count",
|
|
1237
|
+
... start_freq=1e9,
|
|
1238
|
+
... stop_freq=10e9,
|
|
1239
|
+
... step_freq=100,
|
|
1240
|
+
... )
|
|
1239
1241
|
"""
|
|
1240
1242
|
from ansys.edb.core.simulation_setup.hfss_simulation_setup import (
|
|
1241
1243
|
HfssSimulationSetup as GrpcHfssSimulationSetup,
|