pyedb 0.49.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/configuration/cfg_modeler.py +42 -11
- pyedb/configuration/cfg_ports_sources.py +9 -1
- pyedb/dotnet/database/cell/hierarchy/component.py +6 -6
- pyedb/dotnet/database/components.py +3 -3
- pyedb/dotnet/database/edb_data/padstacks_data.py +13 -0
- pyedb/dotnet/database/edb_data/primitives_data.py +3 -3
- pyedb/dotnet/database/edb_data/variables.py +3 -3
- pyedb/dotnet/database/materials.py +16 -16
- pyedb/dotnet/database/modeler.py +38 -4
- pyedb/dotnet/database/sim_setup_data/data/settings.py +28 -0
- pyedb/dotnet/database/stackup.py +1 -0
- pyedb/dotnet/database/utilities/hfss_simulation_setup.py +5 -6
- pyedb/dotnet/edb.py +22 -20
- pyedb/extensions/__init__.py +0 -0
- pyedb/extensions/via_design_backend.py +681 -0
- pyedb/grpc/database/components.py +537 -686
- pyedb/grpc/database/control_file.py +458 -149
- pyedb/grpc/database/definition/component_def.py +17 -14
- pyedb/grpc/database/definition/materials.py +60 -60
- pyedb/grpc/database/definition/package_def.py +8 -8
- pyedb/grpc/database/definition/padstack_def.py +31 -33
- pyedb/grpc/database/definitions.py +6 -4
- 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 +399 -397
- pyedb/grpc/database/hierarchy/component.py +60 -58
- 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 +144 -44
- pyedb/grpc/database/layout/layout.py +12 -12
- pyedb/grpc/database/layout/voltage_regulator.py +8 -8
- pyedb/grpc/database/layout_validation.py +5 -5
- 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 +7 -7
- 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/source_excitations.py +156 -0
- pyedb/grpc/database/stackup.py +415 -316
- 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 +524 -764
- {pyedb-0.49.0.dist-info → pyedb-0.50.1.dist-info}/METADATA +1 -1
- {pyedb-0.49.0.dist-info → pyedb-0.50.1.dist-info}/RECORD +77 -77
- pyedb/extensions/pre_layout_design_toolkit/via_design.py +0 -1151
- pyedb/grpc/database/utility/simulation_configuration.py +0 -3305
- {pyedb-0.49.0.dist-info → pyedb-0.50.1.dist-info}/LICENSE +0 -0
- {pyedb-0.49.0.dist-info → pyedb-0.50.1.dist-info}/WHEEL +0 -0
pyedb/grpc/database/siwave.py
CHANGED
|
@@ -59,12 +59,12 @@ class Siwave(object):
|
|
|
59
59
|
|
|
60
60
|
@property
|
|
61
61
|
def _edb(self):
|
|
62
|
-
"""EDB."""
|
|
62
|
+
"""EDB object."""
|
|
63
63
|
return self._pedb
|
|
64
64
|
|
|
65
65
|
@property
|
|
66
66
|
def _logger(self):
|
|
67
|
-
"""
|
|
67
|
+
"""Logger object."""
|
|
68
68
|
return self._pedb.logger
|
|
69
69
|
|
|
70
70
|
@property
|
|
@@ -79,37 +79,37 @@ class Siwave(object):
|
|
|
79
79
|
|
|
80
80
|
@property
|
|
81
81
|
def _cell(self):
|
|
82
|
-
"""
|
|
82
|
+
"""Active cell."""
|
|
83
83
|
return self._pedb.active_cell
|
|
84
84
|
|
|
85
85
|
@property
|
|
86
86
|
def _db(self):
|
|
87
|
-
""" """
|
|
87
|
+
"""Active database."""
|
|
88
88
|
return self._pedb.active_db
|
|
89
89
|
|
|
90
90
|
@property
|
|
91
91
|
def excitations(self):
|
|
92
|
-
"""
|
|
92
|
+
"""Excitation sources in the layout."""
|
|
93
93
|
return self._pedb.excitations
|
|
94
94
|
|
|
95
95
|
@property
|
|
96
96
|
def sources(self):
|
|
97
|
-
"""
|
|
97
|
+
"""All sources in the layout."""
|
|
98
98
|
return self._pedb.sources
|
|
99
99
|
|
|
100
100
|
@property
|
|
101
101
|
def probes(self):
|
|
102
|
-
"""
|
|
102
|
+
"""All probes in the layout."""
|
|
103
103
|
return self._pedb.probes
|
|
104
104
|
|
|
105
105
|
@property
|
|
106
106
|
def pin_groups(self):
|
|
107
|
-
"""All
|
|
107
|
+
"""All layout pin groups.
|
|
108
108
|
|
|
109
109
|
Returns
|
|
110
110
|
-------
|
|
111
|
-
|
|
112
|
-
|
|
111
|
+
dict
|
|
112
|
+
Dictionary of pin groups with names as keys and pin group objects as values.
|
|
113
113
|
"""
|
|
114
114
|
_pingroups = {}
|
|
115
115
|
for el in self._pedb.layout.pin_groups:
|
|
@@ -118,8 +118,9 @@ class Siwave(object):
|
|
|
118
118
|
|
|
119
119
|
def _create_terminal_on_pins(self, source):
|
|
120
120
|
"""Create a terminal on pins.
|
|
121
|
-
|
|
122
|
-
|
|
121
|
+
|
|
122
|
+
.. deprecated:: pyedb 0.28.0
|
|
123
|
+
Use :func:`pyedb.grpc.core.excitations._create_terminal_on_pins` instead.
|
|
123
124
|
|
|
124
125
|
Parameters
|
|
125
126
|
----------
|
|
@@ -137,8 +138,8 @@ class Siwave(object):
|
|
|
137
138
|
def create_circuit_port_on_pin(self, pos_pin, neg_pin, impedance=50, port_name=None):
|
|
138
139
|
"""Create a circuit port on a pin.
|
|
139
140
|
|
|
140
|
-
|
|
141
|
-
|
|
141
|
+
.. deprecated:: pyedb 0.28.0
|
|
142
|
+
Use :func:`pyedb.grpc.core.excitations.create_circuit_port_on_pin` instead.
|
|
142
143
|
|
|
143
144
|
Parameters
|
|
144
145
|
----------
|
|
@@ -146,8 +147,8 @@ class Siwave(object):
|
|
|
146
147
|
Edb Pin
|
|
147
148
|
neg_pin : Object
|
|
148
149
|
Edb Pin
|
|
149
|
-
impedance : float
|
|
150
|
-
Port Impedance
|
|
150
|
+
impedance : float, optional
|
|
151
|
+
Port Impedance. Default is ``50``.
|
|
151
152
|
port_name : str, optional
|
|
152
153
|
Port Name
|
|
153
154
|
|
|
@@ -168,21 +169,21 @@ class Siwave(object):
|
|
|
168
169
|
):
|
|
169
170
|
"""Create circuit port between pin and a reference layer.
|
|
170
171
|
|
|
171
|
-
|
|
172
|
-
|
|
172
|
+
.. deprecated:: pyedb 0.28.0
|
|
173
|
+
Use :func:`pyedb.grpc.core.excitations.create_port_between_pin_and_layer` instead.
|
|
173
174
|
|
|
174
175
|
Parameters
|
|
175
176
|
----------
|
|
176
177
|
component_name : str
|
|
177
|
-
Component name.
|
|
178
|
+
Component name.
|
|
178
179
|
pins_name : str
|
|
179
|
-
Pin name or list of pin names.
|
|
180
|
+
Pin name or list of pin names.
|
|
180
181
|
layer_name : str
|
|
181
|
-
Layer name.
|
|
182
|
+
Layer name.
|
|
182
183
|
reference_net : str
|
|
183
|
-
Reference net name.
|
|
184
|
+
Reference net name.
|
|
184
185
|
impedance : float, optional
|
|
185
|
-
Port impedance.
|
|
186
|
+
Port impedance. Default is ``50.0`` ohms.
|
|
186
187
|
|
|
187
188
|
Returns
|
|
188
189
|
-------
|
|
@@ -200,8 +201,9 @@ class Siwave(object):
|
|
|
200
201
|
|
|
201
202
|
def create_voltage_source_on_pin(self, pos_pin, neg_pin, voltage_value=3.3, phase_value=0, source_name=""):
|
|
202
203
|
"""Create a voltage source.
|
|
203
|
-
|
|
204
|
-
|
|
204
|
+
|
|
205
|
+
.. deprecated:: pyedb 0.28.0
|
|
206
|
+
Use :func:`pyedb.grpc.core.excitations.create_voltage_source_on_pin` instead.
|
|
205
207
|
|
|
206
208
|
Parameters
|
|
207
209
|
----------
|
|
@@ -210,11 +212,11 @@ class Siwave(object):
|
|
|
210
212
|
neg_pin : Object
|
|
211
213
|
Negative Pin.
|
|
212
214
|
voltage_value : float, optional
|
|
213
|
-
Value for the voltage.
|
|
215
|
+
Value for the voltage. Default is ``3.3``.
|
|
214
216
|
phase_value : optional
|
|
215
|
-
Value for the phase.
|
|
217
|
+
Value for the phase. Default is ``0``.
|
|
216
218
|
source_name : str, optional
|
|
217
|
-
Name of the source.
|
|
219
|
+
Name of the source. Default is ``""``.
|
|
218
220
|
|
|
219
221
|
Returns
|
|
220
222
|
-------
|
|
@@ -234,8 +236,8 @@ class Siwave(object):
|
|
|
234
236
|
def create_current_source_on_pin(self, pos_pin, neg_pin, current_value=0.1, phase_value=0, source_name=""):
|
|
235
237
|
"""Create a current source.
|
|
236
238
|
|
|
237
|
-
|
|
238
|
-
|
|
239
|
+
.. deprecated:: pyedb 0.28.0
|
|
240
|
+
Use :func:`pyedb.grpc.core.excitations.create_current_source_on_pin` instead.
|
|
239
241
|
|
|
240
242
|
Parameters
|
|
241
243
|
----------
|
|
@@ -244,11 +246,11 @@ class Siwave(object):
|
|
|
244
246
|
neg_pin : Object
|
|
245
247
|
Negative pin.
|
|
246
248
|
current_value : float, optional
|
|
247
|
-
Value for the current.
|
|
249
|
+
Value for the current. Default is ``0.1``.
|
|
248
250
|
phase_value : optional
|
|
249
|
-
Value for the phase.
|
|
251
|
+
Value for the phase. Default is ``0``.
|
|
250
252
|
source_name : str, optional
|
|
251
|
-
Name of the source.
|
|
253
|
+
Name of the source. Default is ``""``.
|
|
252
254
|
|
|
253
255
|
Returns
|
|
254
256
|
-------
|
|
@@ -265,10 +267,10 @@ class Siwave(object):
|
|
|
265
267
|
)
|
|
266
268
|
|
|
267
269
|
def create_resistor_on_pin(self, pos_pin, neg_pin, rvalue=1, resistor_name=""):
|
|
268
|
-
"""Create a
|
|
270
|
+
"""Create a resistor boundary between two given pins.
|
|
269
271
|
|
|
270
|
-
|
|
271
|
-
|
|
272
|
+
.. deprecated:: pyedb 0.28.0
|
|
273
|
+
Use :func:`pyedb.grpc.core.excitations.create_resistor_on_pin` instead.
|
|
272
274
|
|
|
273
275
|
Parameters
|
|
274
276
|
----------
|
|
@@ -277,9 +279,9 @@ class Siwave(object):
|
|
|
277
279
|
neg_pin : Object
|
|
278
280
|
Negative Pin.
|
|
279
281
|
rvalue : float, optional
|
|
280
|
-
Resistance value.
|
|
282
|
+
Resistance value. Default is ``1``.
|
|
281
283
|
resistor_name : str, optional
|
|
282
|
-
Name of the resistor.
|
|
284
|
+
Name of the resistor. Default is ``""``.
|
|
283
285
|
|
|
284
286
|
Returns
|
|
285
287
|
-------
|
|
@@ -294,10 +296,10 @@ class Siwave(object):
|
|
|
294
296
|
return self._pedb.source_excitation.create_resistor_on_pin(pos_pin, neg_pin, rvalue, resistor_name)
|
|
295
297
|
|
|
296
298
|
def _check_gnd(self, component_name):
|
|
297
|
-
"""
|
|
298
|
-
. deprecated:: pyedb 0.28.0
|
|
299
|
-
Use :func:`pyedb.grpc.core.excitations._check_gnd` instead.
|
|
299
|
+
"""Check ground reference.
|
|
300
300
|
|
|
301
|
+
.. deprecated:: pyedb 0.28.0
|
|
302
|
+
Use :func:`pyedb.grpc.core.excitations._check_gnd` instead.
|
|
301
303
|
"""
|
|
302
304
|
warnings.warn(
|
|
303
305
|
"`_check_gnd` is deprecated and is now located here " "`pyedb.grpc.core.excitations._check_gnd` instead.",
|
|
@@ -314,12 +316,12 @@ class Siwave(object):
|
|
|
314
316
|
impedance_value=50,
|
|
315
317
|
port_name="",
|
|
316
318
|
):
|
|
317
|
-
"""Create a circuit port on a
|
|
319
|
+
"""Create a circuit port on a net.
|
|
318
320
|
|
|
319
|
-
|
|
320
|
-
|
|
321
|
+
.. deprecated:: pyedb 0.28.0
|
|
322
|
+
Use :func:`pyedb.grpc.core.excitations.create_circuit_port_on_net` instead.
|
|
321
323
|
|
|
322
|
-
|
|
324
|
+
Groups all pins belonging to the specified net and applies the port on PinGroups.
|
|
323
325
|
|
|
324
326
|
Parameters
|
|
325
327
|
----------
|
|
@@ -328,20 +330,18 @@ class Siwave(object):
|
|
|
328
330
|
positive_net_name : str
|
|
329
331
|
Name of the positive net.
|
|
330
332
|
negative_component_name : str, optional
|
|
331
|
-
Name of the negative component.
|
|
332
|
-
the positive net is assigned.
|
|
333
|
+
Name of the negative component. Default is ``None``.
|
|
333
334
|
negative_net_name : str, optional
|
|
334
|
-
Name of the negative net name.
|
|
335
|
+
Name of the negative net name. Default is ``None`` (searches for GND nets).
|
|
335
336
|
impedance_value : float, optional
|
|
336
|
-
Port impedance value.
|
|
337
|
+
Port impedance value. Default is ``50``.
|
|
337
338
|
port_name : str, optional
|
|
338
|
-
Name of the port.
|
|
339
|
+
Name of the port. Default is ``""``.
|
|
339
340
|
|
|
340
341
|
Returns
|
|
341
342
|
-------
|
|
342
343
|
str
|
|
343
344
|
The name of the port.
|
|
344
|
-
|
|
345
345
|
"""
|
|
346
346
|
warnings.warn(
|
|
347
347
|
"`create_circuit_port_on_net` is deprecated and is now located here "
|
|
@@ -367,10 +367,10 @@ class Siwave(object):
|
|
|
367
367
|
phase_value=0,
|
|
368
368
|
source_name="",
|
|
369
369
|
):
|
|
370
|
-
"""Create a voltage source.
|
|
370
|
+
"""Create a voltage source on a net.
|
|
371
371
|
|
|
372
|
-
|
|
373
|
-
|
|
372
|
+
.. deprecated:: pyedb 0.28.0
|
|
373
|
+
Use :func:`pyedb.grpc.core.excitations.create_voltage_source_on_net` instead.
|
|
374
374
|
|
|
375
375
|
Parameters
|
|
376
376
|
----------
|
|
@@ -379,22 +379,20 @@ class Siwave(object):
|
|
|
379
379
|
positive_net_name : str
|
|
380
380
|
Name of the positive net.
|
|
381
381
|
negative_component_name : str, optional
|
|
382
|
-
Name of the negative component.
|
|
383
|
-
the positive net is assigned.
|
|
382
|
+
Name of the negative component. Default is ``None``.
|
|
384
383
|
negative_net_name : str, optional
|
|
385
|
-
Name of the negative net name.
|
|
384
|
+
Name of the negative net name. Default is ``None`` (searches for GND nets).
|
|
386
385
|
voltage_value : float, optional
|
|
387
|
-
Value for the voltage.
|
|
386
|
+
Value for the voltage. Default is ``3.3``.
|
|
388
387
|
phase_value : optional
|
|
389
|
-
Value for the phase.
|
|
388
|
+
Value for the phase. Default is ``0``.
|
|
390
389
|
source_name : str, optional
|
|
391
|
-
Name of the source.
|
|
390
|
+
Name of the source. Default is ``""``.
|
|
392
391
|
|
|
393
392
|
Returns
|
|
394
393
|
-------
|
|
395
394
|
str
|
|
396
395
|
The name of the source.
|
|
397
|
-
|
|
398
396
|
"""
|
|
399
397
|
warnings.warn(
|
|
400
398
|
"`create_voltage_source_on_net` is deprecated and is now located here "
|
|
@@ -421,10 +419,10 @@ class Siwave(object):
|
|
|
421
419
|
phase_value=0,
|
|
422
420
|
source_name="",
|
|
423
421
|
):
|
|
424
|
-
"""Create a current source.
|
|
422
|
+
"""Create a current source on a net.
|
|
425
423
|
|
|
426
|
-
|
|
427
|
-
|
|
424
|
+
.. deprecated:: pyedb 0.28.0
|
|
425
|
+
Use :func:`pyedb.grpc.core.excitations.create_current_source_on_net` instead.
|
|
428
426
|
|
|
429
427
|
Parameters
|
|
430
428
|
----------
|
|
@@ -433,16 +431,15 @@ class Siwave(object):
|
|
|
433
431
|
positive_net_name : str
|
|
434
432
|
Name of the positive net.
|
|
435
433
|
negative_component_name : str, optional
|
|
436
|
-
Name of the negative component.
|
|
437
|
-
the positive net is assigned.
|
|
434
|
+
Name of the negative component. Default is ``None``.
|
|
438
435
|
negative_net_name : str, optional
|
|
439
|
-
Name of the negative net name.
|
|
436
|
+
Name of the negative net name. Default is ``None`` (searches for GND nets).
|
|
440
437
|
current_value : float, optional
|
|
441
|
-
Value for the current.
|
|
438
|
+
Value for the current. Default is ``0.1``.
|
|
442
439
|
phase_value : optional
|
|
443
|
-
Value for the phase.
|
|
440
|
+
Value for the phase. Default is ``0``.
|
|
444
441
|
source_name : str, optional
|
|
445
|
-
Name of the source.
|
|
442
|
+
Name of the source. Default is ``""``.
|
|
446
443
|
|
|
447
444
|
Returns
|
|
448
445
|
-------
|
|
@@ -470,10 +467,10 @@ class Siwave(object):
|
|
|
470
467
|
net_name,
|
|
471
468
|
source_name="",
|
|
472
469
|
):
|
|
473
|
-
"""Create a
|
|
470
|
+
"""Create a DC terminal.
|
|
474
471
|
|
|
475
|
-
|
|
476
|
-
|
|
472
|
+
.. deprecated:: pyedb 0.28.0
|
|
473
|
+
Use :func:`pyedb.grpc.core.excitations.create_dc_terminal` instead.
|
|
477
474
|
|
|
478
475
|
Parameters
|
|
479
476
|
----------
|
|
@@ -481,9 +478,8 @@ class Siwave(object):
|
|
|
481
478
|
Name of the positive component.
|
|
482
479
|
net_name : str
|
|
483
480
|
Name of the positive net.
|
|
484
|
-
|
|
485
481
|
source_name : str, optional
|
|
486
|
-
Name of the source.
|
|
482
|
+
Name of the source. Default is ``""``.
|
|
487
483
|
|
|
488
484
|
Returns
|
|
489
485
|
-------
|
|
@@ -505,19 +501,21 @@ class Siwave(object):
|
|
|
505
501
|
Parameters
|
|
506
502
|
----------
|
|
507
503
|
add_dc : bool, optional
|
|
508
|
-
Whether to add the DC option in the EXE file.
|
|
504
|
+
Whether to add the DC option in the EXE file. Default is ``False``.
|
|
509
505
|
add_ac : bool, optional
|
|
510
|
-
Whether to add the AC option in the EXE file.
|
|
511
|
-
``False``.
|
|
506
|
+
Whether to add the AC option in the EXE file. Default is ``False``.
|
|
512
507
|
add_syz : bool, optional
|
|
513
|
-
Whether to add the SYZ option in the EXE file
|
|
508
|
+
Whether to add the SYZ option in the EXE file. Default is ``False``.
|
|
514
509
|
export_touchstone : bool, optional
|
|
515
|
-
Add the Touchstone file export option in the EXE file.
|
|
516
|
-
The default is ``False``.
|
|
510
|
+
Add the Touchstone file export option in the EXE file. Default is ``False``.
|
|
517
511
|
touchstone_file_path : str, optional
|
|
518
|
-
File path for the Touchstone file.
|
|
519
|
-
specified and ``export_touchstone=True``, the path
|
|
520
|
-
|
|
512
|
+
File path for the Touchstone file. Default is ``""``. When no path is
|
|
513
|
+
specified and ``export_touchstone=True``, the project path is used.
|
|
514
|
+
|
|
515
|
+
Returns
|
|
516
|
+
-------
|
|
517
|
+
bool
|
|
518
|
+
``True`` if file was created, ``False`` otherwise.
|
|
521
519
|
"""
|
|
522
520
|
workdir = os.path.dirname(self._pedb.edbpath)
|
|
523
521
|
file_name = os.path.join(workdir, os.path.splitext(os.path.basename(self._pedb.edbpath))[0] + ".exec")
|
|
@@ -556,23 +554,23 @@ class Siwave(object):
|
|
|
556
554
|
Parameters
|
|
557
555
|
----------
|
|
558
556
|
accuracy_level : int, optional
|
|
559
|
-
Level of accuracy of SI slider.
|
|
557
|
+
Level of accuracy of SI slider. Default is ``1``.
|
|
560
558
|
distribution : str, optional
|
|
561
|
-
Type of the sweep.
|
|
562
|
-
-
|
|
563
|
-
-
|
|
564
|
-
-
|
|
565
|
-
-
|
|
566
|
-
-
|
|
559
|
+
Type of the sweep. Default is ``"linear"``. Options are:
|
|
560
|
+
- ``"linear"``
|
|
561
|
+
- ``"linear_count"``
|
|
562
|
+
- ``"decade_count"``
|
|
563
|
+
- ``"octave_count"``
|
|
564
|
+
- ``"exponential"``
|
|
567
565
|
start_freq : str, float, optional
|
|
568
|
-
Starting frequency.
|
|
566
|
+
Starting frequency. Default is ``1``.
|
|
569
567
|
stop_freq : str, float, optional
|
|
570
|
-
Stopping frequency.
|
|
568
|
+
Stopping frequency. Default is ``1e9``.
|
|
571
569
|
step_freq : str, float, int, optional
|
|
572
|
-
Frequency step.
|
|
570
|
+
Frequency step. Default is ``1e6``. Used for ``"decade_count"``, ``"linear_count"``, ``"octave_count"``
|
|
573
571
|
distribution. Must be integer in that case.
|
|
574
572
|
discrete_sweep : bool, optional
|
|
575
|
-
Whether the sweep is discrete.
|
|
573
|
+
Whether the sweep is discrete. Default is ``False``.
|
|
576
574
|
|
|
577
575
|
Returns
|
|
578
576
|
-------
|
|
@@ -615,9 +613,6 @@ class Siwave(object):
|
|
|
615
613
|
def add_siwave_dc_analysis(self, name=None):
|
|
616
614
|
"""Add a Siwave DC analysis in EDB.
|
|
617
615
|
|
|
618
|
-
If a setup is present, it is deleted and replaced with
|
|
619
|
-
actual settings.
|
|
620
|
-
|
|
621
616
|
.. note::
|
|
622
617
|
Source Reference to Ground settings works only from 2021.2
|
|
623
618
|
|
|
@@ -637,7 +632,6 @@ class Siwave(object):
|
|
|
637
632
|
>>> edb = Edb("pathtoaedb", edbversion="2021.2")
|
|
638
633
|
>>> edb.siwave.add_siwave_ac_analysis()
|
|
639
634
|
>>> edb.siwave.add_siwave_dc_analysis2("my_setup")
|
|
640
|
-
|
|
641
635
|
"""
|
|
642
636
|
setup = self._pedb.create_siwave_dc_setup(name)
|
|
643
637
|
self.create_exec_file(add_dc=True)
|
|
@@ -646,8 +640,8 @@ class Siwave(object):
|
|
|
646
640
|
def create_pin_group_terminal(self, source):
|
|
647
641
|
"""Create a pin group terminal.
|
|
648
642
|
|
|
649
|
-
|
|
650
|
-
|
|
643
|
+
.. deprecated:: pyedb 0.28.0
|
|
644
|
+
Use :func:`pyedb.grpc.core.excitations.create_pin_group_terminal` instead.
|
|
651
645
|
|
|
652
646
|
Parameters
|
|
653
647
|
----------
|
|
@@ -671,36 +665,30 @@ class Siwave(object):
|
|
|
671
665
|
l_value=1e-9,
|
|
672
666
|
is_parallel=False,
|
|
673
667
|
):
|
|
674
|
-
"""Create physical
|
|
668
|
+
"""Create physical RLC component.
|
|
675
669
|
|
|
676
|
-
|
|
677
|
-
|
|
670
|
+
.. deprecated:: pyedb 0.28.0
|
|
671
|
+
Use :func:`pyedb.grpc.core.components.create_rlc_component` instead.
|
|
678
672
|
|
|
679
673
|
Parameters
|
|
680
674
|
----------
|
|
681
675
|
pins : list[Edb.Cell.Primitive.PadstackInstance]
|
|
682
676
|
List of EDB pins.
|
|
683
|
-
|
|
684
677
|
component_name : str
|
|
685
678
|
Component name.
|
|
686
|
-
|
|
687
679
|
r_value : float
|
|
688
680
|
Resistor value.
|
|
689
|
-
|
|
690
681
|
c_value : float
|
|
691
682
|
Capacitance value.
|
|
692
|
-
|
|
693
683
|
l_value : float
|
|
694
684
|
Inductor value.
|
|
695
|
-
|
|
696
685
|
is_parallel : bool
|
|
697
|
-
|
|
686
|
+
Use parallel model when ``True``, series when ``False``.
|
|
698
687
|
|
|
699
688
|
Returns
|
|
700
689
|
-------
|
|
701
|
-
class:`pyedb.dotnet.database.components.Components`
|
|
690
|
+
:class:`pyedb.dotnet.database.components.Components`
|
|
702
691
|
Created EDB component.
|
|
703
|
-
|
|
704
692
|
"""
|
|
705
693
|
warnings.warn(
|
|
706
694
|
"`create_rlc_component` is deprecated and is now located here "
|
|
@@ -720,8 +708,8 @@ class Siwave(object):
|
|
|
720
708
|
def create_pin_group(self, reference_designator, pin_numbers, group_name=None):
|
|
721
709
|
"""Create pin group on the component.
|
|
722
710
|
|
|
723
|
-
|
|
724
|
-
|
|
711
|
+
.. deprecated:: pyedb 0.28.0
|
|
712
|
+
Use :func:`pyedb.grpc.core.components.create_pin_group` instead.
|
|
725
713
|
|
|
726
714
|
Parameters
|
|
727
715
|
----------
|
|
@@ -735,6 +723,7 @@ class Siwave(object):
|
|
|
735
723
|
Returns
|
|
736
724
|
-------
|
|
737
725
|
PinGroup
|
|
726
|
+
Pin group object.
|
|
738
727
|
"""
|
|
739
728
|
warnings.warn(
|
|
740
729
|
"`create_pin_group` is deprecated and is now located here "
|
|
@@ -746,8 +735,8 @@ class Siwave(object):
|
|
|
746
735
|
def create_pin_group_on_net(self, reference_designator, net_name, group_name=None):
|
|
747
736
|
"""Create pin group on component by net name.
|
|
748
737
|
|
|
749
|
-
|
|
750
|
-
|
|
738
|
+
.. deprecated:: pyedb 0.28.0
|
|
739
|
+
Use :func:`pyedb.grpc.core.components.create_pin_group_on_net` instead.
|
|
751
740
|
|
|
752
741
|
Parameters
|
|
753
742
|
----------
|
|
@@ -756,11 +745,12 @@ class Siwave(object):
|
|
|
756
745
|
net_name : str
|
|
757
746
|
Name of the net.
|
|
758
747
|
group_name : str, optional
|
|
759
|
-
Name of the pin group.
|
|
748
|
+
Name of the pin group.
|
|
760
749
|
|
|
761
750
|
Returns
|
|
762
751
|
-------
|
|
763
752
|
PinGroup
|
|
753
|
+
Pin group object.
|
|
764
754
|
"""
|
|
765
755
|
warnings.warn(
|
|
766
756
|
"`create_pin_group_on_net` is deprecated and is now located here "
|
|
@@ -774,9 +764,8 @@ class Siwave(object):
|
|
|
774
764
|
):
|
|
775
765
|
"""Create current source between two pin groups.
|
|
776
766
|
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
instead.
|
|
767
|
+
.. deprecated:: pyedb 0.28.0
|
|
768
|
+
Use :func:`pyedb.grpc.core.excitations.create_current_source_on_pin_group` instead.
|
|
780
769
|
|
|
781
770
|
Parameters
|
|
782
771
|
----------
|
|
@@ -785,16 +774,16 @@ class Siwave(object):
|
|
|
785
774
|
neg_pin_group_name : str
|
|
786
775
|
Name of the negative pin group.
|
|
787
776
|
magnitude : int, float, optional
|
|
788
|
-
Magnitude of the source.
|
|
777
|
+
Magnitude of the source. Default is ``1``.
|
|
789
778
|
phase : int, float, optional
|
|
790
|
-
Phase of the source
|
|
779
|
+
Phase of the source. Default is ``0``.
|
|
791
780
|
name : str, optional
|
|
792
|
-
|
|
781
|
+
Source name.
|
|
793
782
|
|
|
794
783
|
Returns
|
|
795
784
|
-------
|
|
796
785
|
bool
|
|
797
|
-
|
|
786
|
+
``True`` when successful, ``False`` otherwise.
|
|
798
787
|
"""
|
|
799
788
|
warnings.warn(
|
|
800
789
|
"`create_current_source_on_pin_group` is deprecated and is now located here "
|
|
@@ -810,25 +799,28 @@ class Siwave(object):
|
|
|
810
799
|
):
|
|
811
800
|
"""Create voltage source between two pin groups.
|
|
812
801
|
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
bool
|
|
802
|
+
.. deprecated:: pyedb 0.28.0
|
|
803
|
+
Use :func:`pyedb.grpc.core.excitations.create_voltage_source_on_pin_group` instead.
|
|
804
|
+
|
|
805
|
+
Parameters
|
|
806
|
+
----------
|
|
807
|
+
pos_pin_group_name : str
|
|
808
|
+
Name of the positive pin group.
|
|
809
|
+
neg_pin_group_name : str
|
|
810
|
+
Name of the negative pin group.
|
|
811
|
+
magnitude : int, float, optional
|
|
812
|
+
Magnitude of the source. Default is ``1``.
|
|
813
|
+
phase : int, float, optional
|
|
814
|
+
Phase of the source. Default is ``0``.
|
|
815
|
+
name : str, optional
|
|
816
|
+
Source name.
|
|
817
|
+
impedance : float, optional
|
|
818
|
+
Source impedance. Default is ``0.001``.
|
|
831
819
|
|
|
820
|
+
Returns
|
|
821
|
+
-------
|
|
822
|
+
bool
|
|
823
|
+
``True`` when successful, ``False`` otherwise.
|
|
832
824
|
"""
|
|
833
825
|
warnings.warn(
|
|
834
826
|
"`create_voltage_source_on_pin_group` is deprecated and is now located here "
|
|
@@ -842,9 +834,8 @@ class Siwave(object):
|
|
|
842
834
|
def create_voltage_probe_on_pin_group(self, probe_name, pos_pin_group_name, neg_pin_group_name, impedance=1e6):
|
|
843
835
|
"""Create voltage probe between two pin groups.
|
|
844
836
|
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
instead.
|
|
837
|
+
.. deprecated:: pyedb 0.28.0
|
|
838
|
+
Use :func:`pyedb.grpc.core.excitations.create_voltage_probe_on_pin_group` instead.
|
|
848
839
|
|
|
849
840
|
Parameters
|
|
850
841
|
----------
|
|
@@ -855,12 +846,12 @@ class Siwave(object):
|
|
|
855
846
|
neg_pin_group_name : str
|
|
856
847
|
Name of the negative pin group.
|
|
857
848
|
impedance : int, float, optional
|
|
858
|
-
|
|
849
|
+
Probe impedance. Default is ``1e6``.
|
|
859
850
|
|
|
860
851
|
Returns
|
|
861
852
|
-------
|
|
862
853
|
bool
|
|
863
|
-
|
|
854
|
+
``True`` when successful, ``False`` otherwise.
|
|
864
855
|
"""
|
|
865
856
|
|
|
866
857
|
warnings.warn(
|
|
@@ -875,9 +866,8 @@ class Siwave(object):
|
|
|
875
866
|
def create_circuit_port_on_pin_group(self, pos_pin_group_name, neg_pin_group_name, impedance=50, name=None):
|
|
876
867
|
"""Create a port between two pin groups.
|
|
877
868
|
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
instead.
|
|
869
|
+
.. deprecated:: pyedb 0.28.0
|
|
870
|
+
Use :func:`pyedb.grpc.core.excitations.create_circuit_port_on_pin_group` instead.
|
|
881
871
|
|
|
882
872
|
Parameters
|
|
883
873
|
----------
|
|
@@ -893,7 +883,7 @@ class Siwave(object):
|
|
|
893
883
|
Returns
|
|
894
884
|
-------
|
|
895
885
|
bool
|
|
896
|
-
|
|
886
|
+
``True`` when successful, ``False`` otherwise.
|
|
897
887
|
"""
|
|
898
888
|
warnings.warn(
|
|
899
889
|
"`create_circuit_port_on_pin_group` is deprecated and is now located here "
|
|
@@ -916,21 +906,20 @@ class Siwave(object):
|
|
|
916
906
|
):
|
|
917
907
|
"""Place a voltage probe between two points.
|
|
918
908
|
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
instead.
|
|
909
|
+
.. deprecated:: pyedb 0.28.0
|
|
910
|
+
Use :func:`pyedb.grpc.core.excitations.place_voltage_probe` instead.
|
|
922
911
|
|
|
923
912
|
Parameters
|
|
924
913
|
----------
|
|
925
|
-
name : str
|
|
914
|
+
name : str
|
|
926
915
|
Name of the probe.
|
|
927
916
|
positive_net_name : str
|
|
928
917
|
Name of the positive net.
|
|
929
918
|
positive_location : list
|
|
930
919
|
Location of the positive terminal.
|
|
931
|
-
positive_layer : str
|
|
920
|
+
positive_layer : str
|
|
932
921
|
Layer of the positive terminal.
|
|
933
|
-
negative_net_name : str
|
|
922
|
+
negative_net_name : str
|
|
934
923
|
Name of the negative net.
|
|
935
924
|
negative_location : list
|
|
936
925
|
Location of the negative terminal.
|
|
@@ -952,70 +941,34 @@ class Siwave(object):
|
|
|
952
941
|
negative_layer,
|
|
953
942
|
)
|
|
954
943
|
|
|
955
|
-
# def create_vrm_module(
|
|
956
|
-
# self,
|
|
957
|
-
# name=None,
|
|
958
|
-
# is_active=True,
|
|
959
|
-
# voltage="3V",
|
|
960
|
-
# positive_sensor_pin=None,
|
|
961
|
-
# negative_sensor_pin=None,
|
|
962
|
-
# load_regulation_current="1A",
|
|
963
|
-
# load_regulation_percent=0.1,
|
|
964
|
-
# ):
|
|
965
|
-
# """Create a voltage regulator module.
|
|
966
|
-
#
|
|
967
|
-
# Parameters
|
|
968
|
-
# ----------
|
|
969
|
-
# name : str
|
|
970
|
-
# Name of the voltage regulator.
|
|
971
|
-
# is_active : bool optional
|
|
972
|
-
# Set the voltage regulator active or not. Default value is ``True``.
|
|
973
|
-
# voltage ; str, float
|
|
974
|
-
# Set the voltage value.
|
|
975
|
-
# positive_sensor_pin : int, .class pyedb.dotnet.database.edb_data.padstacks_data.EDBPadstackInstance
|
|
976
|
-
# defining the positive sensor pin.
|
|
977
|
-
# negative_sensor_pin : int, .class pyedb.dotnet.database.edb_data.padstacks_data.EDBPadstackInstance
|
|
978
|
-
# defining the negative sensor pin.
|
|
979
|
-
# load_regulation_current : str or float
|
|
980
|
-
# definition the load regulation current value.
|
|
981
|
-
# load_regulation_percent : float
|
|
982
|
-
# definition the load regulation percent value.
|
|
983
|
-
# """
|
|
984
|
-
# from pyedb.grpc.database.voltage_regulator import VoltageRegulator
|
|
985
|
-
#
|
|
986
|
-
# voltage = self._pedb.edb_value(voltage)
|
|
987
|
-
# load_regulation_current = self._pedb.edb_value(load_regulation_current)
|
|
988
|
-
# load_regulation_percent = self._pedb.edb_value(load_regulation_percent)
|
|
989
|
-
# edb_vrm = self._edb_object = self._pedb._edb.Cell.VoltageRegulator.Create(
|
|
990
|
-
# self._pedb.active_layout, name, is_active, voltage, load_regulation_current, load_regulation_percent
|
|
991
|
-
# )
|
|
992
|
-
# vrm = VoltageRegulator(self._pedb, edb_vrm)
|
|
993
|
-
# if positive_sensor_pin:
|
|
994
|
-
# vrm.positive_remote_sense_pin = positive_sensor_pin
|
|
995
|
-
# if negative_sensor_pin:
|
|
996
|
-
# vrm.negative_remote_sense_pin = negative_sensor_pin
|
|
997
|
-
# return vrm
|
|
998
|
-
|
|
999
|
-
@property
|
|
1000
|
-
def icepak_use_minimal_comp_defaults(self):
|
|
1001
|
-
"""Icepak default setting. If "True", only resistor are active in Icepak simulation.
|
|
1002
|
-
The power dissipation of the resistors are calculated from DC results.
|
|
1003
|
-
"""
|
|
1004
|
-
return self._pedb.active_cell.get_product_property(GrpcProductIdType.SIWAVE, 422).value
|
|
1005
|
-
|
|
1006
944
|
def create_impedance_crosstalk_scan(self, scan_type="impedance"):
|
|
1007
|
-
"""Create Siwave crosstalk scan object
|
|
945
|
+
"""Create Siwave crosstalk scan object.
|
|
1008
946
|
|
|
1009
947
|
Parameters
|
|
1010
948
|
----------
|
|
1011
|
-
scan_type : str
|
|
1012
|
-
Scan type to be analyzed.
|
|
1013
|
-
``
|
|
1014
|
-
|
|
949
|
+
scan_type : str, optional
|
|
950
|
+
Scan type to be analyzed. Options are:
|
|
951
|
+
- ``"impedance"`` for frequency impedance scan
|
|
952
|
+
- ``"frequency_xtalk"`` for frequency domain crosstalk
|
|
953
|
+
- ``"time_xtalk"`` for time domain crosstalk
|
|
954
|
+
Default is ``"impedance"``.
|
|
1015
955
|
|
|
956
|
+
Returns
|
|
957
|
+
-------
|
|
958
|
+
SiwaveScanConfig
|
|
959
|
+
Scan configuration object.
|
|
1016
960
|
"""
|
|
1017
961
|
return SiwaveScanConfig(self._pedb, scan_type)
|
|
1018
962
|
|
|
963
|
+
@property
|
|
964
|
+
def icepak_use_minimal_comp_defaults(self):
|
|
965
|
+
"""Icepak default setting.
|
|
966
|
+
|
|
967
|
+
If ``True``, only resistors are active in Icepak simulation and power dissipation
|
|
968
|
+
is calculated from DC results.
|
|
969
|
+
"""
|
|
970
|
+
return self._pedb.active_cell.get_product_property(GrpcProductIdType.SIWAVE, 422).value
|
|
971
|
+
|
|
1019
972
|
@icepak_use_minimal_comp_defaults.setter
|
|
1020
973
|
def icepak_use_minimal_comp_defaults(self, value):
|
|
1021
974
|
value = "True" if bool(value) else ""
|
|
@@ -1025,7 +978,6 @@ class Siwave(object):
|
|
|
1025
978
|
def icepak_component_file(self):
|
|
1026
979
|
"""Icepak component file path."""
|
|
1027
980
|
return self._pedb.active_cell.get_product_property(GrpcProductIdType.SIWAVE, 420).value
|
|
1028
|
-
return value
|
|
1029
981
|
|
|
1030
982
|
@icepak_component_file.setter
|
|
1031
983
|
def icepak_component_file(self, value):
|