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
|
@@ -50,7 +50,7 @@ class BundleTerminal(GrpcBundleTerminal):
|
|
|
50
50
|
self._pedb = pedb
|
|
51
51
|
self._edb_object = edb_object
|
|
52
52
|
|
|
53
|
-
def decouple(self):
|
|
53
|
+
def decouple(self) -> bool:
|
|
54
54
|
"""Ungroup a bundle of terminals.
|
|
55
55
|
|
|
56
56
|
Returns
|
|
@@ -60,7 +60,7 @@ class BundleTerminal(GrpcBundleTerminal):
|
|
|
60
60
|
return self.ungroup()
|
|
61
61
|
|
|
62
62
|
@property
|
|
63
|
-
def component(self):
|
|
63
|
+
def component(self) -> Component:
|
|
64
64
|
"""Component.
|
|
65
65
|
|
|
66
66
|
Returns
|
|
@@ -70,7 +70,7 @@ class BundleTerminal(GrpcBundleTerminal):
|
|
|
70
70
|
return Component(self._pedb, self.component)
|
|
71
71
|
|
|
72
72
|
@property
|
|
73
|
-
def impedance(self):
|
|
73
|
+
def impedance(self) -> float:
|
|
74
74
|
"""Impedance value.
|
|
75
75
|
|
|
76
76
|
Returns
|
|
@@ -85,7 +85,7 @@ class BundleTerminal(GrpcBundleTerminal):
|
|
|
85
85
|
self.impedance = GrpcValue(value)
|
|
86
86
|
|
|
87
87
|
@property
|
|
88
|
-
def net(self):
|
|
88
|
+
def net(self) -> Net:
|
|
89
89
|
"""Returns Net object.
|
|
90
90
|
|
|
91
91
|
Returns
|
|
@@ -95,7 +95,7 @@ class BundleTerminal(GrpcBundleTerminal):
|
|
|
95
95
|
return Net(self._pedb, self.net)
|
|
96
96
|
|
|
97
97
|
@property
|
|
98
|
-
def hfss_pi_type(self):
|
|
98
|
+
def hfss_pi_type(self) -> str:
|
|
99
99
|
"""Returns HFSS PI type.
|
|
100
100
|
|
|
101
101
|
Returns
|
|
@@ -118,7 +118,7 @@ class BundleTerminal(GrpcBundleTerminal):
|
|
|
118
118
|
self.hfss_pi_type = GrpcHfssPIType.LUMPED
|
|
119
119
|
|
|
120
120
|
@property
|
|
121
|
-
def reference_layer(self):
|
|
121
|
+
def reference_layer(self) -> Layer:
|
|
122
122
|
"""Returns reference layer.
|
|
123
123
|
|
|
124
124
|
Returns
|
|
@@ -135,7 +135,7 @@ class BundleTerminal(GrpcBundleTerminal):
|
|
|
135
135
|
self.reference_layer = self._pedb.stackup.signal_layer[value]._edb_object
|
|
136
136
|
|
|
137
137
|
@property
|
|
138
|
-
def reference_terminal(self):
|
|
138
|
+
def reference_terminal(self) -> Terminal:
|
|
139
139
|
"""Returns reference terminal.
|
|
140
140
|
|
|
141
141
|
Returns
|
|
@@ -150,7 +150,7 @@ class BundleTerminal(GrpcBundleTerminal):
|
|
|
150
150
|
self.reference_terminal = value._edb_object
|
|
151
151
|
|
|
152
152
|
@property
|
|
153
|
-
def rlc_boundary_parameters(self):
|
|
153
|
+
def rlc_boundary_parameters(self) -> Rlc:
|
|
154
154
|
"""Returns Rlc parameters
|
|
155
155
|
|
|
156
156
|
Returns
|
|
@@ -160,7 +160,7 @@ class BundleTerminal(GrpcBundleTerminal):
|
|
|
160
160
|
return Rlc(self._pedb, self.rlc)
|
|
161
161
|
|
|
162
162
|
@property
|
|
163
|
-
def source_amplitude(self):
|
|
163
|
+
def source_amplitude(self) -> float:
|
|
164
164
|
"""Returns source amplitude.
|
|
165
165
|
|
|
166
166
|
Returns
|
|
@@ -174,7 +174,7 @@ class BundleTerminal(GrpcBundleTerminal):
|
|
|
174
174
|
self.source_amplitude = GrpcValue(value)
|
|
175
175
|
|
|
176
176
|
@property
|
|
177
|
-
def source_phase(self):
|
|
177
|
+
def source_phase(self) -> float:
|
|
178
178
|
"""Returns source phase.
|
|
179
179
|
|
|
180
180
|
Returns
|
|
@@ -188,7 +188,7 @@ class BundleTerminal(GrpcBundleTerminal):
|
|
|
188
188
|
self.source_phase = GrpcValue(value)
|
|
189
189
|
|
|
190
190
|
@property
|
|
191
|
-
def term_to_ground(self):
|
|
191
|
+
def term_to_ground(self) -> str:
|
|
192
192
|
"""Returns terminal to ground.
|
|
193
193
|
|
|
194
194
|
Returns
|
|
@@ -208,7 +208,7 @@ class BundleTerminal(GrpcBundleTerminal):
|
|
|
208
208
|
self.term_to_ground = GrpcSourceTermToGroundType.POSITIVE
|
|
209
209
|
|
|
210
210
|
@property
|
|
211
|
-
def terminals(self):
|
|
211
|
+
def terminals(self) -> list[Terminal]:
|
|
212
212
|
"""Returns terminals list.
|
|
213
213
|
|
|
214
214
|
Returns
|
|
@@ -50,7 +50,7 @@ class EdgeTerminal(GrpcEdgeTerminal):
|
|
|
50
50
|
self._edb_object.set_product_property(GrpcProductIdType.DESIGNER, 1, value)
|
|
51
51
|
|
|
52
52
|
@property
|
|
53
|
-
def is_wave_port(self):
|
|
53
|
+
def is_wave_port(self) -> bool:
|
|
54
54
|
if self._hfss_port_property:
|
|
55
55
|
return True
|
|
56
56
|
return False
|
|
@@ -112,11 +112,12 @@ class EdgeTerminal(GrpcEdgeTerminal):
|
|
|
112
112
|
return self._pedb.ports[bundle_terminal.name]
|
|
113
113
|
|
|
114
114
|
@property
|
|
115
|
-
def is_port(self):
|
|
115
|
+
def is_port(self) -> bool:
|
|
116
|
+
"""Added for dotnet compatibility"""
|
|
116
117
|
return True
|
|
117
118
|
|
|
118
119
|
@property
|
|
119
|
-
def ref_terminal(self):
|
|
120
|
+
def ref_terminal(self) -> any:
|
|
120
121
|
"""Return refeference terminal.
|
|
121
122
|
|
|
122
123
|
..deprecated:: 0.44.0
|
|
@@ -132,7 +133,7 @@ class EdgeTerminal(GrpcEdgeTerminal):
|
|
|
132
133
|
self.reference_terminal = value
|
|
133
134
|
|
|
134
135
|
@property
|
|
135
|
-
def hfss_type(self):
|
|
136
|
+
def hfss_type(self) -> str:
|
|
136
137
|
return self._hfss_type
|
|
137
138
|
|
|
138
139
|
@hfss_type.setter
|
|
@@ -140,5 +141,5 @@ class EdgeTerminal(GrpcEdgeTerminal):
|
|
|
140
141
|
self._hfss_type = value
|
|
141
142
|
|
|
142
143
|
@property
|
|
143
|
-
def terminal_type(self):
|
|
144
|
+
def terminal_type(self) -> str:
|
|
144
145
|
return "EdgeTerminal"
|
|
@@ -37,7 +37,7 @@ class PadstackInstanceTerminal(GrpcPadstackInstanceTerminal):
|
|
|
37
37
|
self._pedb = pedb
|
|
38
38
|
|
|
39
39
|
@property
|
|
40
|
-
def position(self):
|
|
40
|
+
def position(self) -> list[float]:
|
|
41
41
|
"""Terminal position.
|
|
42
42
|
|
|
43
43
|
Returns
|
|
@@ -48,19 +48,19 @@ class PadstackInstanceTerminal(GrpcPadstackInstanceTerminal):
|
|
|
48
48
|
return [pos_x.value, pos_y.value]
|
|
49
49
|
|
|
50
50
|
@property
|
|
51
|
-
def padstack_instance(self):
|
|
51
|
+
def padstack_instance(self) -> any:
|
|
52
52
|
from pyedb.grpc.database.primitive.padstack_instance import PadstackInstance
|
|
53
53
|
|
|
54
54
|
return PadstackInstance(self._pedb, super().padstack_instance)
|
|
55
55
|
|
|
56
56
|
@property
|
|
57
|
-
def component(self):
|
|
57
|
+
def component(self) -> any:
|
|
58
58
|
from pyedb.grpc.database.hierarchy.component import Component
|
|
59
59
|
|
|
60
60
|
return Component(self._pedb, super().component)
|
|
61
61
|
|
|
62
62
|
@property
|
|
63
|
-
def location(self):
|
|
63
|
+
def location(self) -> list[float]:
|
|
64
64
|
"""Terminal position.
|
|
65
65
|
|
|
66
66
|
Returns
|
|
@@ -72,7 +72,7 @@ class PadstackInstanceTerminal(GrpcPadstackInstanceTerminal):
|
|
|
72
72
|
return [pos_x.value, pos_y.value]
|
|
73
73
|
|
|
74
74
|
@property
|
|
75
|
-
def net_name(self):
|
|
75
|
+
def net_name(self) -> str:
|
|
76
76
|
"""Net name.
|
|
77
77
|
|
|
78
78
|
Returns
|
|
@@ -92,7 +92,7 @@ class PadstackInstanceTerminal(GrpcPadstackInstanceTerminal):
|
|
|
92
92
|
self.net.name = val
|
|
93
93
|
|
|
94
94
|
@property
|
|
95
|
-
def magnitude(self):
|
|
95
|
+
def magnitude(self) -> float:
|
|
96
96
|
"""Source amplitude.
|
|
97
97
|
|
|
98
98
|
Returns
|
|
@@ -106,7 +106,7 @@ class PadstackInstanceTerminal(GrpcPadstackInstanceTerminal):
|
|
|
106
106
|
self.source_amplitude = value
|
|
107
107
|
|
|
108
108
|
@property
|
|
109
|
-
def phase(self):
|
|
109
|
+
def phase(self) -> float:
|
|
110
110
|
"""Source phase.
|
|
111
111
|
|
|
112
112
|
Returns
|
|
@@ -120,7 +120,7 @@ class PadstackInstanceTerminal(GrpcPadstackInstanceTerminal):
|
|
|
120
120
|
self.source_phase = value
|
|
121
121
|
|
|
122
122
|
@property
|
|
123
|
-
def source_amplitude(self):
|
|
123
|
+
def source_amplitude(self) -> float:
|
|
124
124
|
"""Source amplitude.
|
|
125
125
|
|
|
126
126
|
Returns
|
|
@@ -134,7 +134,7 @@ class PadstackInstanceTerminal(GrpcPadstackInstanceTerminal):
|
|
|
134
134
|
super(PadstackInstanceTerminal, self.__class__).source_amplitude.__set__(self, value)
|
|
135
135
|
|
|
136
136
|
@property
|
|
137
|
-
def source_phase(self):
|
|
137
|
+
def source_phase(self) -> float:
|
|
138
138
|
"""Source phase.
|
|
139
139
|
|
|
140
140
|
Returns
|
|
@@ -148,7 +148,7 @@ class PadstackInstanceTerminal(GrpcPadstackInstanceTerminal):
|
|
|
148
148
|
super(PadstackInstanceTerminal, self.__class__).source_phase.__set__(self, value)
|
|
149
149
|
|
|
150
150
|
@property
|
|
151
|
-
def impedance(self):
|
|
151
|
+
def impedance(self) -> float:
|
|
152
152
|
"""Impdeance value.
|
|
153
153
|
|
|
154
154
|
Returns
|
|
@@ -162,7 +162,7 @@ class PadstackInstanceTerminal(GrpcPadstackInstanceTerminal):
|
|
|
162
162
|
super(PadstackInstanceTerminal, self.__class__).impedance.__set__(self, value)
|
|
163
163
|
|
|
164
164
|
@property
|
|
165
|
-
def boundary_type(self):
|
|
165
|
+
def boundary_type(self) -> str:
|
|
166
166
|
"""Boundary type.
|
|
167
167
|
|
|
168
168
|
Returns
|
|
@@ -185,7 +185,7 @@ class PadstackInstanceTerminal(GrpcPadstackInstanceTerminal):
|
|
|
185
185
|
super(PadstackInstanceTerminal, self.__class__).boundary_type.__set__(self, mapping[value.name.lower()])
|
|
186
186
|
|
|
187
187
|
@property
|
|
188
|
-
def is_port(self):
|
|
188
|
+
def is_port(self) -> bool:
|
|
189
189
|
if self.boundary_type == "port":
|
|
190
190
|
return True
|
|
191
191
|
return False
|
|
@@ -207,5 +207,5 @@ class PadstackInstanceTerminal(GrpcPadstackInstanceTerminal):
|
|
|
207
207
|
self.reference_terminal = value
|
|
208
208
|
|
|
209
209
|
@property
|
|
210
|
-
def terminal_type(self):
|
|
210
|
+
def terminal_type(self) -> str:
|
|
211
211
|
return "PadstackInstanceTerminal"
|
|
@@ -38,7 +38,7 @@ class PinGroupTerminal(GrpcPinGroupTerminal):
|
|
|
38
38
|
self._pedb = pedb
|
|
39
39
|
|
|
40
40
|
@property
|
|
41
|
-
def boundary_type(self):
|
|
41
|
+
def boundary_type(self) -> str:
|
|
42
42
|
"""Boundary type.
|
|
43
43
|
|
|
44
44
|
Returns
|
|
@@ -60,13 +60,13 @@ class PinGroupTerminal(GrpcPinGroupTerminal):
|
|
|
60
60
|
super(PinGroupTerminal, self.__class__).boundary_type.__set__(self, value)
|
|
61
61
|
|
|
62
62
|
@property
|
|
63
|
-
def is_port(self):
|
|
63
|
+
def is_port(self) -> bool:
|
|
64
64
|
if self.boundary_type == "port":
|
|
65
65
|
return True
|
|
66
66
|
return False
|
|
67
67
|
|
|
68
68
|
@property
|
|
69
|
-
def magnitude(self):
|
|
69
|
+
def magnitude(self) -> float:
|
|
70
70
|
"""Source magnitude.
|
|
71
71
|
|
|
72
72
|
Returns
|
|
@@ -81,7 +81,7 @@ class PinGroupTerminal(GrpcPinGroupTerminal):
|
|
|
81
81
|
self.source_amplitude = value
|
|
82
82
|
|
|
83
83
|
@property
|
|
84
|
-
def phase(self):
|
|
84
|
+
def phase(self) -> float:
|
|
85
85
|
"""Source phase.
|
|
86
86
|
|
|
87
87
|
Returns
|
|
@@ -96,7 +96,7 @@ class PinGroupTerminal(GrpcPinGroupTerminal):
|
|
|
96
96
|
self.source_phase = value
|
|
97
97
|
|
|
98
98
|
@property
|
|
99
|
-
def source_amplitude(self):
|
|
99
|
+
def source_amplitude(self) -> float:
|
|
100
100
|
"""Source amplitude.
|
|
101
101
|
|
|
102
102
|
Returns
|
|
@@ -111,7 +111,7 @@ class PinGroupTerminal(GrpcPinGroupTerminal):
|
|
|
111
111
|
super(PinGroupTerminal, self.__class__).source_amplitude.__set__(self, value)
|
|
112
112
|
|
|
113
113
|
@property
|
|
114
|
-
def source_phase(self):
|
|
114
|
+
def source_phase(self) -> float:
|
|
115
115
|
"""Source phase.
|
|
116
116
|
|
|
117
117
|
Returns
|
|
@@ -126,7 +126,7 @@ class PinGroupTerminal(GrpcPinGroupTerminal):
|
|
|
126
126
|
super(PinGroupTerminal, self.__class__).source_phase.__set__(self, value)
|
|
127
127
|
|
|
128
128
|
@property
|
|
129
|
-
def impedance(self):
|
|
129
|
+
def impedance(self) -> float:
|
|
130
130
|
"""Terminal impedance.
|
|
131
131
|
|
|
132
132
|
Returns
|
|
@@ -141,7 +141,7 @@ class PinGroupTerminal(GrpcPinGroupTerminal):
|
|
|
141
141
|
super(PinGroupTerminal, self.__class__).impedance.__set__(self, value)
|
|
142
142
|
|
|
143
143
|
@property
|
|
144
|
-
def net(self):
|
|
144
|
+
def net(self) -> Net:
|
|
145
145
|
"""Terminal net.
|
|
146
146
|
|
|
147
147
|
Returns
|
|
@@ -157,7 +157,7 @@ class PinGroupTerminal(GrpcPinGroupTerminal):
|
|
|
157
157
|
super(PinGroupTerminal, self.__class__).net.__set__(self, value)
|
|
158
158
|
|
|
159
159
|
@property
|
|
160
|
-
def pin_group(self):
|
|
160
|
+
def pin_group(self) -> any:
|
|
161
161
|
"""Pingroup.
|
|
162
162
|
|
|
163
163
|
Returns
|
|
@@ -171,7 +171,7 @@ class PinGroupTerminal(GrpcPinGroupTerminal):
|
|
|
171
171
|
return PinGroup(self._pedb, super().pin_group)
|
|
172
172
|
|
|
173
173
|
@property
|
|
174
|
-
def terminal_type(self):
|
|
174
|
+
def terminal_type(self) -> str:
|
|
175
175
|
return "PinGroupTerminal"
|
|
176
176
|
|
|
177
177
|
@property
|
|
@@ -192,11 +192,11 @@ class PinGroupTerminal(GrpcPinGroupTerminal):
|
|
|
192
192
|
self.reference_terminal = value
|
|
193
193
|
|
|
194
194
|
@property
|
|
195
|
-
def hfss_type(self):
|
|
195
|
+
def hfss_type(self) -> str:
|
|
196
196
|
return "circuit"
|
|
197
197
|
|
|
198
198
|
@property
|
|
199
|
-
def is_current_source(self):
|
|
199
|
+
def is_current_source(self) -> bool:
|
|
200
200
|
if self.boundary_type == "current_source":
|
|
201
201
|
return True
|
|
202
202
|
return False
|
|
@@ -33,7 +33,7 @@ class PointTerminal(GrpcPointTerminal):
|
|
|
33
33
|
self._pedb = pedb
|
|
34
34
|
|
|
35
35
|
@property
|
|
36
|
-
def location(self):
|
|
36
|
+
def location(self) -> list[float]:
|
|
37
37
|
"""Terminal position.
|
|
38
38
|
|
|
39
39
|
Returns
|
|
@@ -51,7 +51,7 @@ class PointTerminal(GrpcPointTerminal):
|
|
|
51
51
|
self.point = GrpcPointData(value)
|
|
52
52
|
|
|
53
53
|
@property
|
|
54
|
-
def layer(self):
|
|
54
|
+
def layer(self) -> any:
|
|
55
55
|
"""Terminal layer.
|
|
56
56
|
|
|
57
57
|
Returns
|
|
@@ -69,7 +69,7 @@ class PointTerminal(GrpcPointTerminal):
|
|
|
69
69
|
super(PointTerminal, self.__class__).layer.__set__(self, value)
|
|
70
70
|
|
|
71
71
|
@property
|
|
72
|
-
def ref_terminal(self):
|
|
72
|
+
def ref_terminal(self) -> PointTerminal:
|
|
73
73
|
"""Reference terminal.
|
|
74
74
|
|
|
75
75
|
Returns
|
|
@@ -84,7 +84,7 @@ class PointTerminal(GrpcPointTerminal):
|
|
|
84
84
|
super().reference_terminal = value
|
|
85
85
|
|
|
86
86
|
@property
|
|
87
|
-
def reference_terminal(self):
|
|
87
|
+
def reference_terminal(self) -> PointTerminal:
|
|
88
88
|
"""Reference terminal.
|
|
89
89
|
|
|
90
90
|
Returns
|
|
@@ -99,10 +99,10 @@ class PointTerminal(GrpcPointTerminal):
|
|
|
99
99
|
super(PointTerminal, self.__class__).reference_terminal.__set__(self, value)
|
|
100
100
|
|
|
101
101
|
@property
|
|
102
|
-
def terminal_type(self):
|
|
102
|
+
def terminal_type(self) -> str:
|
|
103
103
|
return "PointTerminal"
|
|
104
104
|
|
|
105
105
|
@property
|
|
106
|
-
def is_port(self):
|
|
106
|
+
def is_port(self) -> bool:
|
|
107
107
|
"""Adding DotNet compatibility."""
|
|
108
108
|
return True
|
|
@@ -28,8 +28,8 @@ from ansys.edb.core.terminal.terminal import Terminal as GrpcTerminal
|
|
|
28
28
|
from ansys.edb.core.terminal.terminal import TerminalType as GrpcTerminalType
|
|
29
29
|
from ansys.edb.core.utility.value import Value as GrpcValue
|
|
30
30
|
|
|
31
|
-
from pyedb.
|
|
32
|
-
from pyedb.
|
|
31
|
+
from pyedb.grpc.database.primitive.padstack_instance import PadstackInstance
|
|
32
|
+
from pyedb.grpc.database.primitive.primitive import Primitive
|
|
33
33
|
|
|
34
34
|
|
|
35
35
|
class Terminal(GrpcTerminal):
|
|
@@ -89,7 +89,7 @@ class Terminal(GrpcTerminal):
|
|
|
89
89
|
return p
|
|
90
90
|
|
|
91
91
|
@property
|
|
92
|
-
def ref_terminal(self):
|
|
92
|
+
def ref_terminal(self) -> any:
|
|
93
93
|
"""Reference terminal.
|
|
94
94
|
|
|
95
95
|
Returns
|
|
@@ -112,7 +112,7 @@ class Terminal(GrpcTerminal):
|
|
|
112
112
|
self._edb_properties = "HFSS({})".format(txt)
|
|
113
113
|
|
|
114
114
|
@property
|
|
115
|
-
def hfss_type(self):
|
|
115
|
+
def hfss_type(self) -> str:
|
|
116
116
|
"""HFSS port type."""
|
|
117
117
|
return self._hfss_port_property["HFSS Type"]
|
|
118
118
|
|
|
@@ -123,7 +123,7 @@ class Terminal(GrpcTerminal):
|
|
|
123
123
|
self._hfss_port_property = p
|
|
124
124
|
|
|
125
125
|
@property
|
|
126
|
-
def layer(self):
|
|
126
|
+
def layer(self) -> str:
|
|
127
127
|
"""Get layer of the terminal.
|
|
128
128
|
|
|
129
129
|
Returns
|
|
@@ -142,7 +142,7 @@ class Terminal(GrpcTerminal):
|
|
|
142
142
|
self.reference_layer = self._pedb.stackup.layers[value]
|
|
143
143
|
|
|
144
144
|
@property
|
|
145
|
-
def do_renormalize(self):
|
|
145
|
+
def do_renormalize(self) -> bool:
|
|
146
146
|
"""Determine whether port renormalization is enabled.
|
|
147
147
|
|
|
148
148
|
Returns
|
|
@@ -157,7 +157,7 @@ class Terminal(GrpcTerminal):
|
|
|
157
157
|
self.port_post_processing_prop.do_renormalize = value
|
|
158
158
|
|
|
159
159
|
@property
|
|
160
|
-
def net_name(self):
|
|
160
|
+
def net_name(self) -> str:
|
|
161
161
|
"""Net name.
|
|
162
162
|
|
|
163
163
|
Returns
|
|
@@ -168,7 +168,7 @@ class Terminal(GrpcTerminal):
|
|
|
168
168
|
return self.net.name
|
|
169
169
|
|
|
170
170
|
@property
|
|
171
|
-
def terminal_type(self):
|
|
171
|
+
def terminal_type(self) -> str:
|
|
172
172
|
"""Terminal Type. Accepted values for setter: `"edge"`, `"point"`, `"terminal_instance"`,
|
|
173
173
|
`"padstack_instance"`, `"bundle_terminal"`, `"pin_group"`.
|
|
174
174
|
|
|
@@ -183,7 +183,7 @@ class Terminal(GrpcTerminal):
|
|
|
183
183
|
self.type = self._terminal_type_mapping[value]
|
|
184
184
|
|
|
185
185
|
@property
|
|
186
|
-
def boundary_type(self):
|
|
186
|
+
def boundary_type(self) -> str:
|
|
187
187
|
"""Boundary type.
|
|
188
188
|
|
|
189
189
|
Returns
|
|
@@ -198,7 +198,7 @@ class Terminal(GrpcTerminal):
|
|
|
198
198
|
super(Terminal, self.__class__).boundary_type.__set__(self, self._boundary_type_mapping[value])
|
|
199
199
|
|
|
200
200
|
@property
|
|
201
|
-
def is_port(self):
|
|
201
|
+
def is_port(self) -> bool:
|
|
202
202
|
"""Whether it is a port.
|
|
203
203
|
|
|
204
204
|
Returns
|
|
@@ -209,7 +209,7 @@ class Terminal(GrpcTerminal):
|
|
|
209
209
|
return True if self.boundary_type == "port" else False
|
|
210
210
|
|
|
211
211
|
@property
|
|
212
|
-
def is_current_source(self):
|
|
212
|
+
def is_current_source(self) -> bool:
|
|
213
213
|
"""Whether it is a current source.
|
|
214
214
|
|
|
215
215
|
Returns
|
|
@@ -220,7 +220,7 @@ class Terminal(GrpcTerminal):
|
|
|
220
220
|
return True if self.boundary_type == "current_source" else False
|
|
221
221
|
|
|
222
222
|
@property
|
|
223
|
-
def is_voltage_source(self):
|
|
223
|
+
def is_voltage_source(self) -> bool:
|
|
224
224
|
"""Whether it is a voltage source.
|
|
225
225
|
|
|
226
226
|
Returns
|
|
@@ -231,7 +231,7 @@ class Terminal(GrpcTerminal):
|
|
|
231
231
|
return True if self.boundary_type == "voltage_source" else False
|
|
232
232
|
|
|
233
233
|
@property
|
|
234
|
-
def impedance(self):
|
|
234
|
+
def impedance(self) -> float:
|
|
235
235
|
"""Impedance of the port.
|
|
236
236
|
|
|
237
237
|
Returns
|
|
@@ -246,7 +246,7 @@ class Terminal(GrpcTerminal):
|
|
|
246
246
|
self.impedance = GrpcValue(value)
|
|
247
247
|
|
|
248
248
|
@property
|
|
249
|
-
def reference_object(self)
|
|
249
|
+
def reference_object(self) -> any:
|
|
250
250
|
"""This returns the object assigned as reference. It can be a primitive or a padstack instance.
|
|
251
251
|
|
|
252
252
|
|
|
@@ -276,7 +276,7 @@ class Terminal(GrpcTerminal):
|
|
|
276
276
|
return self._reference_object
|
|
277
277
|
|
|
278
278
|
@property
|
|
279
|
-
def reference_net_name(self):
|
|
279
|
+
def reference_net_name(self) -> str:
|
|
280
280
|
"""Net name to which reference_object belongs.
|
|
281
281
|
|
|
282
282
|
Returns
|
|
@@ -289,7 +289,7 @@ class Terminal(GrpcTerminal):
|
|
|
289
289
|
|
|
290
290
|
return ""
|
|
291
291
|
|
|
292
|
-
def get_padstack_terminal_reference_pin(self, gnd_net_name_preference=None)
|
|
292
|
+
def get_padstack_terminal_reference_pin(self, gnd_net_name_preference=None) -> PadstackInstance:
|
|
293
293
|
"""Get a list of pad stacks instances and serves Coax wave ports,
|
|
294
294
|
pingroup terminals, PadEdge terminals.
|
|
295
295
|
|
|
@@ -311,7 +311,7 @@ class Terminal(GrpcTerminal):
|
|
|
311
311
|
pins = self._pedb.components.get_pin_from_component(self.component.name)
|
|
312
312
|
return self._get_closest_pin(padStackInstance, pins, gnd_net_name_preference)
|
|
313
313
|
|
|
314
|
-
def get_pin_group_terminal_reference_pin(self, gnd_net_name_preference=None)
|
|
314
|
+
def get_pin_group_terminal_reference_pin(self, gnd_net_name_preference=None) -> PadstackInstance:
|
|
315
315
|
"""Return a list of pins and serves terminals connected to pingroups.
|
|
316
316
|
|
|
317
317
|
Parameters
|
|
@@ -339,12 +339,12 @@ class Terminal(GrpcTerminal):
|
|
|
339
339
|
else:
|
|
340
340
|
try:
|
|
341
341
|
_, refTermPSI, _ = refTerm.get_parameters()
|
|
342
|
-
return
|
|
342
|
+
return PadstackInstance(self._pedb, refTermPSI)
|
|
343
343
|
except AttributeError:
|
|
344
344
|
return False
|
|
345
345
|
return False
|
|
346
346
|
|
|
347
|
-
def get_edge_terminal_reference_primitive(self)
|
|
347
|
+
def get_edge_terminal_reference_primitive(self) -> any:
|
|
348
348
|
"""Check and return a primitive instance that serves Edge ports,
|
|
349
349
|
wave-ports and coupled-edge ports that are directly connected to primitives.
|
|
350
350
|
|
|
@@ -361,10 +361,10 @@ class Terminal(GrpcTerminal):
|
|
|
361
361
|
for primitive in self._pedb.layout.primitives:
|
|
362
362
|
if primitive.layer.name == layer_name:
|
|
363
363
|
if primitive.polygon_data.point_in_polygon(point_data):
|
|
364
|
-
return
|
|
364
|
+
return (primitive, self._pedb)
|
|
365
365
|
return None # pragma: no cover
|
|
366
366
|
|
|
367
|
-
def get_point_terminal_reference_primitive(self): # pragma : no cover
|
|
367
|
+
def get_point_terminal_reference_primitive(self) -> Primitive: # pragma : no cover
|
|
368
368
|
"""Find and return the primitive reference for the point terminal or the padstack instance.
|
|
369
369
|
|
|
370
370
|
Returns
|
|
@@ -381,7 +381,7 @@ class Terminal(GrpcTerminal):
|
|
|
381
381
|
if primitive.layer.name == layer_name:
|
|
382
382
|
prim_shape_data = primitive.GetPolygonData()
|
|
383
383
|
if primitive.polygon_data.point_in_polygon(point_data):
|
|
384
|
-
return
|
|
384
|
+
return Primitive(self._pedb, primitive)
|
|
385
385
|
for vias in self._pedb.padstacks.instances.values():
|
|
386
386
|
if layer_name in vias.layer_range_names:
|
|
387
387
|
plane = self._pedb.modeler.Shape(
|
|
@@ -392,7 +392,7 @@ class Terminal(GrpcTerminal):
|
|
|
392
392
|
return vias
|
|
393
393
|
return False
|
|
394
394
|
|
|
395
|
-
def get_pad_edge_terminal_reference_pin(self, gnd_net_name_preference=None):
|
|
395
|
+
def get_pad_edge_terminal_reference_pin(self, gnd_net_name_preference=None) -> PadstackInstance:
|
|
396
396
|
"""Get the closest pin padstack instances and serves any edge terminal connected to a pad.
|
|
397
397
|
|
|
398
398
|
Parameters
|
|
@@ -438,10 +438,10 @@ class Terminal(GrpcTerminal):
|
|
|
438
438
|
closest_pin_distance = distance
|
|
439
439
|
pin_obj = pin
|
|
440
440
|
if pin_obj:
|
|
441
|
-
return
|
|
441
|
+
return PadstackInstance(self._pedb.pin_obj)
|
|
442
442
|
|
|
443
443
|
@property
|
|
444
|
-
def magnitude(self):
|
|
444
|
+
def magnitude(self) -> FLOAT:
|
|
445
445
|
"""Get the magnitude of the source.
|
|
446
446
|
|
|
447
447
|
Returns
|
|
@@ -455,7 +455,7 @@ class Terminal(GrpcTerminal):
|
|
|
455
455
|
self.source_amplitude = GrpcValue(value)
|
|
456
456
|
|
|
457
457
|
@property
|
|
458
|
-
def phase(self):
|
|
458
|
+
def phase(self) -> float:
|
|
459
459
|
"""Get the phase of the source.
|
|
460
460
|
|
|
461
461
|
Returns
|
|
@@ -46,7 +46,7 @@ class HeatSink:
|
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
@property
|
|
49
|
-
def fin_base_height(self):
|
|
49
|
+
def fin_base_height(self) -> float:
|
|
50
50
|
"""The base elevation of the fins.
|
|
51
51
|
|
|
52
52
|
Returns
|
|
@@ -61,7 +61,7 @@ class HeatSink:
|
|
|
61
61
|
self._edb_object.fin_base_height = GrpcValue(value)
|
|
62
62
|
|
|
63
63
|
@property
|
|
64
|
-
def fin_height(self):
|
|
64
|
+
def fin_height(self) -> float:
|
|
65
65
|
"""Fin height.
|
|
66
66
|
|
|
67
67
|
Returns
|
|
@@ -77,7 +77,7 @@ class HeatSink:
|
|
|
77
77
|
self._edb_object.fin_height = GrpcValue(value)
|
|
78
78
|
|
|
79
79
|
@property
|
|
80
|
-
def fin_orientation(self):
|
|
80
|
+
def fin_orientation(self) -> str:
|
|
81
81
|
"""Fin orientation.
|
|
82
82
|
|
|
83
83
|
Returns
|
|
@@ -92,7 +92,7 @@ class HeatSink:
|
|
|
92
92
|
self._edb_object.fin_orientation = self._fin_orientation_type[value]
|
|
93
93
|
|
|
94
94
|
@property
|
|
95
|
-
def fin_spacing(self):
|
|
95
|
+
def fin_spacing(self) -> float:
|
|
96
96
|
"""Fin spacing.
|
|
97
97
|
|
|
98
98
|
Returns
|
|
@@ -108,7 +108,7 @@ class HeatSink:
|
|
|
108
108
|
self._edb_object.fin_spacing = GrpcValue(value)
|
|
109
109
|
|
|
110
110
|
@property
|
|
111
|
-
def fin_thickness(self):
|
|
111
|
+
def fin_thickness(self) -> float:
|
|
112
112
|
"""Fin thickness.
|
|
113
113
|
|
|
114
114
|
Returns
|