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
|
@@ -154,6 +154,45 @@ class SourceExcitation:
|
|
|
154
154
|
)
|
|
155
155
|
return True
|
|
156
156
|
|
|
157
|
+
def create_port(self, terminal, ref_terminal=None, is_circuit_port=False, name=None):
|
|
158
|
+
"""Create a port.
|
|
159
|
+
|
|
160
|
+
Parameters
|
|
161
|
+
----------
|
|
162
|
+
terminal : class:`pyedb.dotnet.database.edb_data.terminals.EdgeTerminal`,
|
|
163
|
+
class:`pyedb.grpc.database.terminals.PadstackInstanceTerminal`,
|
|
164
|
+
class:`pyedb.grpc.database.terminals.PointTerminal`,
|
|
165
|
+
class:`pyedb.grpc.database.terminals.PinGroupTerminal`,
|
|
166
|
+
Positive terminal of the port.
|
|
167
|
+
ref_terminal : class:`pyedb.grpc.database.terminals.EdgeTerminal`,
|
|
168
|
+
class:`pyedb.grpc.database.terminals.PadstackInstanceTerminal`,
|
|
169
|
+
class:`pyedb.grpc.database.terminals.PointTerminal`,
|
|
170
|
+
class:`pyedb.grpc.database.terminals.PinGroupTerminal`,
|
|
171
|
+
optional
|
|
172
|
+
Negative terminal of the port.
|
|
173
|
+
is_circuit_port : bool, optional
|
|
174
|
+
Whether it is a circuit port. The default is ``False``.
|
|
175
|
+
name: str, optional
|
|
176
|
+
Name of the created port. The default is None, a random name is generated.
|
|
177
|
+
Returns
|
|
178
|
+
-------
|
|
179
|
+
list: [:class:`GapPort <pyedb.grpc.database.ports.ports.GapPort`>,
|
|
180
|
+
:class:`WavePort <pyedb.grpc.database.ports.ports.WavePort>`].
|
|
181
|
+
"""
|
|
182
|
+
|
|
183
|
+
from ansys.edb.core.terminal.terminal import BoundaryType as GrpcBoundaryType
|
|
184
|
+
|
|
185
|
+
if terminal.boundary_type == "port":
|
|
186
|
+
terminal.boundary_type = GrpcBoundaryType.PORT
|
|
187
|
+
terminal.is_circuit_port = is_circuit_port
|
|
188
|
+
if ref_terminal:
|
|
189
|
+
if ref_terminal.boundary_type == "port":
|
|
190
|
+
ref_terminal.boundary_type = GrpcBoundaryType.PORT
|
|
191
|
+
terminal.reference_terminal = ref_terminal
|
|
192
|
+
if name:
|
|
193
|
+
terminal.name = name
|
|
194
|
+
return self._pedb.ports[terminal.name]
|
|
195
|
+
|
|
157
196
|
def create_port_on_pins(
|
|
158
197
|
self,
|
|
159
198
|
refdes,
|
|
@@ -2098,6 +2137,30 @@ class SourceExcitation:
|
|
|
2098
2137
|
terms = [term for term in self._pedb.layout.terminals]
|
|
2099
2138
|
return len([i for i in terms if not i.is_reference_terminal])
|
|
2100
2139
|
|
|
2140
|
+
def get_point_terminal(self, name, net_name, location, layer) -> PointTerminal:
|
|
2141
|
+
"""Place terminal between two points.
|
|
2142
|
+
|
|
2143
|
+
Parameters
|
|
2144
|
+
----------
|
|
2145
|
+
name : str,
|
|
2146
|
+
Name of the terminal.
|
|
2147
|
+
net_name : str
|
|
2148
|
+
Name of the net.
|
|
2149
|
+
location : list
|
|
2150
|
+
Location of the terminal.
|
|
2151
|
+
layer : str,
|
|
2152
|
+
Layer of the terminal.
|
|
2153
|
+
|
|
2154
|
+
Returns
|
|
2155
|
+
-------
|
|
2156
|
+
:class:`PointTerminal <pyedb.grpc.database.terminal.point_terminal.PointTerminal>`
|
|
2157
|
+
"""
|
|
2158
|
+
from pyedb.grpc.database.terminal.point_terminal import PointTerminal
|
|
2159
|
+
|
|
2160
|
+
return PointTerminal.create(
|
|
2161
|
+
layout=self._pedb.active_layout, name=name, net=net_name, layer=layer, point=location
|
|
2162
|
+
)
|
|
2163
|
+
|
|
2101
2164
|
def create_rlc_boundary_on_pins(self, positive_pin=None, negative_pin=None, rvalue=0.0, lvalue=0.0, cvalue=0.0):
|
|
2102
2165
|
"""Create hfss rlc boundary on pins.
|
|
2103
2166
|
|
|
@@ -2328,6 +2391,37 @@ class SourceExcitation:
|
|
|
2328
2391
|
return terms
|
|
2329
2392
|
return False
|
|
2330
2393
|
|
|
2394
|
+
def create_current_source(self, terminal, ref_terminal):
|
|
2395
|
+
"""Create a current source.
|
|
2396
|
+
|
|
2397
|
+
Parameters
|
|
2398
|
+
----------
|
|
2399
|
+
terminal : :class:`EdgeTerminal <pyedb.grpc.database.terminals.EdgeTerminal>`,
|
|
2400
|
+
:class:`PadstackInstanceTerminal <pyedb.grpc.database.terminals.PadstackInstanceTerminal>`,
|
|
2401
|
+
:class:`PointTerminal <pyedb.grpc.database.terminals.PointTerminal>`,
|
|
2402
|
+
:class:`PinGroupTerminal <pyedb.grpc.database.terminals.PinGroupTerminal>`,
|
|
2403
|
+
Positive terminal of the source.
|
|
2404
|
+
ref_terminal : :class:`EdgeTerminal <pyedb.grpc.database.terminals.EdgeTerminal>`,
|
|
2405
|
+
:class:`pyedb.grpc.database.terminals.PadstackInstanceTerminal`,
|
|
2406
|
+
:class:`PadstackInstanceTerminal <pyedb.grpc.database.terminals.PointTerminal>`,
|
|
2407
|
+
:class:`PinGroupTerminal <pyedb.grpc.database.terminals.PinGroupTerminal>`,
|
|
2408
|
+
Negative terminal of the source.
|
|
2409
|
+
|
|
2410
|
+
Returns
|
|
2411
|
+
-------
|
|
2412
|
+
:class:`ExcitationSources <legacy.database.edb_data.ports.ExcitationSources>`
|
|
2413
|
+
"""
|
|
2414
|
+
from pyedb.grpc.database.terminal.terminal import Terminal
|
|
2415
|
+
|
|
2416
|
+
term = Terminal(self._pedb, terminal)
|
|
2417
|
+
term.boundary_type = "current_source"
|
|
2418
|
+
|
|
2419
|
+
ref_term = Terminal(self._pedb, ref_terminal)
|
|
2420
|
+
ref_term.boundary_type = "current_source"
|
|
2421
|
+
|
|
2422
|
+
term.ref_terminal = ref_terminal
|
|
2423
|
+
return term
|
|
2424
|
+
|
|
2331
2425
|
def create_current_source_on_pin_group(
|
|
2332
2426
|
self, pos_pin_group_name, neg_pin_group_name, magnitude=1, phase=0, name=None
|
|
2333
2427
|
):
|
|
@@ -2368,6 +2462,37 @@ class SourceExcitation:
|
|
|
2368
2462
|
pos_terminal.reference_terminal = neg_terminal
|
|
2369
2463
|
return True
|
|
2370
2464
|
|
|
2465
|
+
def create_voltage_source(self, terminal, ref_terminal):
|
|
2466
|
+
"""Create a voltage source.
|
|
2467
|
+
|
|
2468
|
+
Parameters
|
|
2469
|
+
----------
|
|
2470
|
+
terminal : :class:`EdgeTerminal <pyedb.grpc.database.terminals.EdgeTerminal>`,
|
|
2471
|
+
:class:`PadstackInstanceTerminal <pyedb.grpc.database.terminals.PadstackInstanceTerminal>`,
|
|
2472
|
+
:class:`PointTerminal <pyedb.grpc.database.terminals.PointTerminal>`,
|
|
2473
|
+
:class:`PinGroupTerminal <pyedb.grpc.database.terminals.PinGroupTerminal>`,
|
|
2474
|
+
Positive terminal of the source.
|
|
2475
|
+
ref_terminal : :class:`EdgeTerminal <pyedb.grpc.database.terminals.EdgeTerminal>`,
|
|
2476
|
+
:class:`pyedb.grpc.database.terminals.PadstackInstanceTerminal`,
|
|
2477
|
+
:class:`PadstackInstanceTerminal <pyedb.grpc.database.terminals.PointTerminal>`,
|
|
2478
|
+
:class:`PinGroupTerminal <pyedb.grpc.database.terminals.PinGroupTerminal>`,
|
|
2479
|
+
Negative terminal of the source.
|
|
2480
|
+
|
|
2481
|
+
Returns
|
|
2482
|
+
-------
|
|
2483
|
+
class:`ExcitationSources <legacy.database.edb_data.ports.ExcitationSources>`
|
|
2484
|
+
"""
|
|
2485
|
+
from pyedb.grpc.database.terminal.terminal import Terminal
|
|
2486
|
+
|
|
2487
|
+
term = Terminal(self._pedb, terminal)
|
|
2488
|
+
term.boundary_type = "voltage_source"
|
|
2489
|
+
|
|
2490
|
+
ref_term = Terminal(self._pedb, ref_terminal)
|
|
2491
|
+
ref_term.boundary_type = "voltage_source"
|
|
2492
|
+
|
|
2493
|
+
term.ref_terminal = ref_terminal
|
|
2494
|
+
return term
|
|
2495
|
+
|
|
2371
2496
|
def create_voltage_source_on_pin_group(
|
|
2372
2497
|
self, pos_pin_group_name, neg_pin_group_name, magnitude=1, phase=0, name=None, impedance=0.001
|
|
2373
2498
|
):
|
|
@@ -2408,6 +2533,37 @@ class SourceExcitation:
|
|
|
2408
2533
|
pos_terminal.reference_terminal = neg_terminal
|
|
2409
2534
|
return True
|
|
2410
2535
|
|
|
2536
|
+
def create_voltage_probe(self, terminal, ref_terminal):
|
|
2537
|
+
"""Create a voltage probe.
|
|
2538
|
+
|
|
2539
|
+
Parameters
|
|
2540
|
+
----------
|
|
2541
|
+
terminal : :class:`EdgeTerminal <pyedb.grpc.database.terminals.EdgeTerminal>`,
|
|
2542
|
+
:class:`PadstackInstanceTerminal <pyedb.grpc.database.terminals.PadstackInstanceTerminal>`,
|
|
2543
|
+
:class:`PointTerminal <pyedb.grpc.database.terminals.PointTerminal>`,
|
|
2544
|
+
:class:`PinGroupTerminal <pyedb.grpc.database.terminals.PinGroupTerminal>`,
|
|
2545
|
+
Positive terminal of the port.
|
|
2546
|
+
ref_terminal : :class:`EdgeTerminal <pyedb.grpc.database.terminals.EdgeTerminal>`,
|
|
2547
|
+
:class:`pyedb.grpc.database.terminals.PadstackInstanceTerminal`,
|
|
2548
|
+
:class:`PadstackInstanceTerminal <pyedb.grpc.database.terminals.PointTerminal>`,
|
|
2549
|
+
:class:`PinGroupTerminal <pyedb.grpc.database.terminals.PinGroupTerminal>`,
|
|
2550
|
+
Negative terminal of the probe.
|
|
2551
|
+
|
|
2552
|
+
Returns
|
|
2553
|
+
-------
|
|
2554
|
+
:class:`Terminal <pyedb.dotnet.database.edb_data.terminals.Terminal>`
|
|
2555
|
+
"""
|
|
2556
|
+
from pyedb.grpc.database.terminal.terminal import Terminal
|
|
2557
|
+
|
|
2558
|
+
term = Terminal(self._pedb, terminal)
|
|
2559
|
+
term.boundary_type = "voltage_probe"
|
|
2560
|
+
|
|
2561
|
+
ref_term = Terminal(self._pedb, ref_terminal)
|
|
2562
|
+
ref_term.boundary_type = "voltage_probe"
|
|
2563
|
+
|
|
2564
|
+
term.ref_terminal = ref_terminal
|
|
2565
|
+
return term
|
|
2566
|
+
|
|
2411
2567
|
def create_voltage_probe_on_pin_group(self, probe_name, pos_pin_group_name, neg_pin_group_name, impedance=1000000):
|
|
2412
2568
|
"""Create voltage probe between two pin groups.
|
|
2413
2569
|
|