EdbHfss#
- class pyedb.dotnet.database.hfss.EdbHfss(p_edb)#
Bases:
objectManages EDB method to configure Hfss setup accessible from Edb.hfss property.
Examples
>>> from pyedb import Edb >>> edbapp = Edb("myaedbfolder") >>> edb_hfss = edb_3dedbapp.hfss
Overview#
Retrieve the trace width for traces with ports. |
|
Create Circuit Port on Pin. |
|
Create a voltage source. |
|
Create a current source. |
|
Create a Resistor boundary between two given pins. |
|
Create a circuit port on a NET. |
|
Create a voltage source. |
|
Create a current source. |
|
Create a coaxial port on a component or component list on a net or net list. |
|
Create a differential wave port. |
|
Create a bundle wave port. |
|
Create an HFSS port on a padstack. |
|
Create an edge port on a primitive specific location. |
|
Create lumped port between two edges from two different polygons. Can also create a vertical port when |
|
Create a wave port. |
|
Create a vertical edge port. |
|
Create a horizontal edge port. |
|
Create an edge port on nets. This command looks for traces and polygons on the |
|
Create an edge port on clipped signal traces. |
|
Evaluate the layout bounding box. |
|
Adding method for grpc compatibility |
|
Return the total number of excitation ports in a layout. |
|
Create hfss rlc boundary on pins. |
|
Generate auto HFSS regions. |
HFSS extent information. |
|
Get all ports. |
|
Get all ports. |
|
Get all sources. |
|
Get all probes. |
Import detail#
from pyedb.dotnet.database.hfss import EdbHfss
Property detail#
- property EdbHfss.hfss_extent_info#
HFSS extent information.
- property EdbHfss.excitations: Dict[str, pyedb.dotnet.database.edb_data.ports.BundleWavePort | pyedb.dotnet.database.edb_data.ports.GapPort | pyedb.dotnet.database.edb_data.ports.CircuitPort | pyedb.dotnet.database.edb_data.ports.CoaxPort | pyedb.dotnet.database.edb_data.ports.WavePort]#
Get all ports.
- property EdbHfss.ports: Dict[str, pyedb.dotnet.database.edb_data.ports.BundleWavePort | pyedb.dotnet.database.edb_data.ports.GapPort | pyedb.dotnet.database.edb_data.ports.CircuitPort | pyedb.dotnet.database.edb_data.ports.CoaxPort | pyedb.dotnet.database.edb_data.ports.WavePort]#
Get all ports.
- property EdbHfss.sources: Dict[str, pyedb.dotnet.database.edb_data.ports.ExcitationSources]#
Get all sources.
- property EdbHfss.probes: Dict[str, pyedb.dotnet.database.cell.terminal.pingroup_terminal.PinGroupTerminal | pyedb.dotnet.database.cell.terminal.point_terminal.PointTerminal | pyedb.dotnet.database.cell.terminal.bundle_terminal.BundleTerminal | pyedb.dotnet.database.cell.terminal.padstack_instance_terminal.PadstackInstanceTerminal | pyedb.dotnet.database.cell.terminal.edge_terminal.EdgeTerminal]#
Get all probes.
Method detail#
- EdbHfss.get_trace_width_for_traces_with_ports()#
Retrieve the trace width for traces with ports.
- Returns:
dictDictionary of trace width data.
- EdbHfss.create_circuit_port_on_pin(pos_pin, neg_pin, impedance=50, port_name=None)#
Create Circuit Port on Pin.
Deprecated since version 0.70.0: Use
pyedb.excitation_manager.create_circuit_port_on_pin()instead.- Parameters:
- pos_pin
Object Edb Pin
- neg_pin
Object Edb Pin
- impedance
float Port Impedance
- port_name
str,optional Port Name
- >>> from pyedb import Edb
- >>> edbapp = Edb(“myaedbfolder”, “project name”, “release version”)
- >>> pins = edbapp.components.get_pin_from_component(“U2A5”)
- >>> edbapp.excitation_manager.create_circuit_port_on_pin(pins[0], pins[1], 50, “port_name”)
- pos_pin
- Returns:
strPort Name.
- EdbHfss.create_voltage_source_on_pin(pos_pin, neg_pin, voltage_value=3.3, phase_value=0, source_name='')#
Create a voltage source.
Deprecated since version 0.70.0: Use
pyedb.excitation_manager.create_voltage_source_on_pin()instead.- Parameters:
- Returns:
strSource Name.
Examples
>>> from pyedb import Edb >>> edbapp = Edb("myaedbfolder", "project name", "release version") >>> pins = edbapp.components.get_pin_from_component("U2A5") >>> edbapp.excitation_manager.create_voltage_source_on_pin(pins[0], pins[1], 50, "source_name")
- EdbHfss.create_current_source_on_pin(pos_pin, neg_pin, current_value=0.1, phase_value=0, source_name='')#
Create a current source.
Deprecated since version 0.70.0: Use
pyedb.excitation_manager.create_current_source_on_pin()instead.- Parameters:
- Returns:
strSource Name.
Examples
>>> from pyedb import Edb >>> edbapp = Edb("myaedbfolder", "project name", "release version") >>> pins = edbapp.components.get_pin_from_component("U2A5") >>> edbapp.excitation_manager.create_current_source_on_pin(pins[0], pins[1], 50, "source_name")
- EdbHfss.create_resistor_on_pin(pos_pin, neg_pin, rvalue=1, resistor_name='')#
Create a Resistor boundary between two given pins.
Deprecated since version 0.70.0: Use
pyedb.excitation_manager.create_resistor_on_pin()instead.- Parameters:
- Returns:
strName of the Resistor.
Examples
>>> from pyedb import Edb >>> edbapp = Edb("myaedbfolder", "project name", "release version") >>> pins = edbapp.components.get_pin_from_component("U2A5") >>> edbapp.excitation_manager.create_resistor_on_pin(pins[0], pins[1], 50, "res_name")
- EdbHfss.create_circuit_port_on_net(positive_component_name, positive_net_name, negative_component_name=None, negative_net_name='GND', impedance_value=50, port_name='')#
Create a circuit port on a NET. It groups all pins belonging to the specified net and then applies the port on PinGroups.
Deprecated since version 0.70.0: Use
pyedb.excitation_manager.create_circuit_port_on_net()instead.- Parameters:
- positive_component_name
str Name of the positive component.
- positive_net_name
str Name of the positive net.
- negative_component_name
str,optional Name of the negative component. The default is
None, in which case the name of the positive net is assigned.- negative_net_name
str,optional Name of the negative net name. The default is
"GND".- impedance_value
float,optional Port impedance value. The default is
50.- port_name
str,optional Name of the port. The default is
"".
- positive_component_name
- Returns:
strThe name of the port.
Examples
>>> from pyedb import Edb >>> edbapp = Edb("myaedbfolder", "project name", "release version") >>> edbapp.excitation_manager.create_circuit_port_on_net("U2A5", "V1P5_S3", "U2A5", "GND", 50, "port_name")
- EdbHfss.create_voltage_source_on_net(positive_component_name, positive_net_name, negative_component_name=None, negative_net_name='GND', voltage_value=3.3, phase_value=0, source_name='')#
Create a voltage source.
Deprecated since version 0.70.0: Use
pyedb.excitation_manager.create_voltage_source_on_net()instead.- Parameters:
- positive_component_name
str Name of the positive component.
- positive_net_name
str Name of the positive net.
- negative_component_name
str,optional Name of the negative component. The default is
None, in which case the name of the positive net is assigned.- negative_net_name
str,optional Name of the negative net. The default is
"GND".- voltage_value
float,optional Value for the voltage. The default is
3.3.- phase_value
optional Value for the phase. The default is
0.- source_name
str,optional Name of the source. The default is
"".
- positive_component_name
- Returns:
strSource Name.
Examples
>>> from pyedb import Edb >>> edbapp = Edb("myaedbfolder", "project name", "release version") >>> edb.excitation_manager.create_voltage_source_on_net("U2A5", "V1P5_S3", "U2A5", "GND", 3.3, 0, "source_name")
- EdbHfss.create_current_source_on_net(positive_component_name, positive_net_name, negative_component_name=None, negative_net_name='GND', current_value=0.1, phase_value=0, source_name='')#
Create a current source.
Deprecated since version 0.70.0: Use
pyedb.excitation_manager.create_current_source_on_net()instead.- Parameters:
- positive_component_name
str Name of the positive component.
- positive_net_name
str Name of the positive net.
- negative_component_name
str,optional Name of the negative component. The default is
None, in which case the name of the positive net is assigned.- negative_net_name
str,optional Name of the negative net. The default is
"GND".- current_value
float,optional Value for the current. The default is
0.1.- phase_value
optional Value for the phase. The default is
0.- source_name
str,optional Name of the source. The default is
"".
- positive_component_name
- Returns:
strSource Name.
Examples
>>> from pyedb import Edb >>> edbapp = Edb("myaedbfolder", "project name", "release version") >>> edb.excitation_manager.create_current_source_on_net("U2A5", "V1P5_S3", "U2A5", "GND", 0.1, 0, "source_name")
- EdbHfss.create_coax_port_on_component(ref_des_list, net_list, delete_existing_terminal=False)#
- Create a coaxial port on a component or component list on a net or net list.
The name of the new coaxial port is automatically assigned.
Deprecated since version 0.70.0: Use
pyedb.excitation_manager.create_coax_port_on_component()instead.- Parameters:
- Returns:
- bool
Truewhen successful,Falsewhen failed.
- EdbHfss.create_differential_wave_port(positive_primitive_id, positive_points_on_edge, negative_primitive_id, negative_points_on_edge, port_name=None, horizontal_extent_factor=5, vertical_extent_factor=3, pec_launch_width='0.01mm')#
Create a differential wave port.
Deprecated since version 0.70.0: Use
pyedb.excitation_manager.create_differential_wave_port()instead.- Parameters:
- positive_primitive_id
int,EDBPrimitives Primitive ID of the positive terminal.
- positive_points_on_edge
list Coordinate of the point to define the edge terminal. The point must be close to the target edge but not on the two ends of the edge.
- negative_primitive_id
int,EDBPrimitives Primitive ID of the negative terminal.
- negative_points_on_edge
list Coordinate of the point to define the edge terminal. The point must be close to the target edge but not on the two ends of the edge.
- port_name
str,optional Name of the port. The default is
None.- horizontal_extent_factor
int,float,optional Horizontal extent factor. The default value is
5.- vertical_extent_factor
int,float,optional Vertical extent factor. The default value is
3.- pec_launch_width
str,optional Launch Width of PEC. The default value is
"0.01mm".
- positive_primitive_id
- Returns:
tupleThe tuple contains: (port_name, pyedb.dotnet.database.edb_data.sources.ExcitationDifferential).
Examples
>>> edb.excitation_manager.create_differential_wave_port(0, ["-50mm", "-0mm"], 1, ["-50mm", "-0.2mm"])
- EdbHfss.create_bundle_wave_port(primitives_id, points_on_edge, port_name=None, horizontal_extent_factor=5, vertical_extent_factor=3, pec_launch_width='0.01mm')#
Create a bundle wave port.
Deprecated since version 0.70.0: Use
pyedb.excitation_manager.create_bundle_wave_port()instead.- Parameters:
- primitives_id
list Primitive ID of the positive terminal.
- points_on_edge
list Coordinate of the point to define the edge terminal. The point must be close to the target edge but not on the two ends of the edge.
- port_name
str,optional Name of the port. The default is
None.- horizontal_extent_factor
int,float,optional Horizontal extent factor. The default value is
5.- vertical_extent_factor
int,float,optional Vertical extent factor. The default value is
3.- pec_launch_width
str,optional Launch Width of PEC. The default value is
"0.01mm".
- primitives_id
- Returns:
tupleThe tuple contains: (port_name, pyedb.egacy.database.edb_data.sources.ExcitationDifferential).
Examples
>>> edb.excitation_manager.create_bundle_wave_port(0, ["-50mm", "-0mm"], 1, ["-50mm", "-0.2mm"])
- EdbHfss.create_hfss_ports_on_padstack(pinpos, portname=None)#
Create an HFSS port on a padstack.
Deprecated since version 0.70.0: Use
pyedb.excitation_manager.create_hfss_ports_on_padstack()instead.
- EdbHfss.create_edge_port(location, primitive_name, name, impedance=50, is_wave_port=True, horizontal_extent_factor=1, vertical_extent_factor=1, pec_launch_width=0.0001) pyedb.dotnet.database.edb_data.ports.WavePort#
Create an edge port on a primitive specific location.
Deprecated since version 0.70.0: Use
pyedb.grpc.core.excitations.create_edge_port()instead.- Parameters:
- location
list Port location.
- primitive_name
str Name of primitive.
- name
str Port name.
- impedance
float,optional Impedance.
- is_wave_portbool,
optional Whether if it is a wave port or gap port.
- horizontal_extent_factor
float,optional Horizontal extent factor for wave ports.
- vertical_extent_factor
float,optional Vertical extent factor for wave ports.
- pec_launch_width
float,optional Pec launcher width for wave ports.
- location
- EdbHfss.create_edge_port_on_polygon(polygon=None, reference_polygon=None, terminal_point=None, reference_point=None, reference_layer=None, port_name=None, port_impedance=50.0, force_circuit_port=False)#
Create lumped port between two edges from two different polygons. Can also create a vertical port when the reference layer name is only provided. When a port is created between two edge from two polygons which don’t belong to the same layer, a circuit port will be automatically created instead of lumped. To enforce the circuit port instead of lumped,use the boolean force_circuit_port.
Deprecated since version 0.70.0: Use
pyedb.excitation_manager.create_edge_port_on_polygon()instead.- Parameters:
- polygon
TheEDBpolygonobjectusedtoassigntheport. Edb.Cell.Primitive.Polygon object.
- reference_polygon
TheEDBpolygonobjectusedtodefinetheportreference. Edb.Cell.Primitive.Polygon object.
- terminal_point
Thecoordinateofthepointtodefinetheedgeterminaloftheport.Thispointmustbe - located on the edge of the polygon where the port has to be placed. For instance taking the middle point
- of an edge is a good practice but any point of the edge should be valid. Taking a corner might cause unwanted
- port location.
list[float, float] with values provided in meter.
- reference_point
sameasterminal_pointbutusedfordefiningthereferencelocationontheedge. list[float, float] with values provided in meter.
- reference_layer
Nameusedtodefineportreferenceforverticalports. str the layer name.
- port_name
Nameoftheport. str.
- port_impedance
portimpedancevalue.Defaultvalueis50 Ohms. float, impedance value.
- force_circuit_port ; used to force circuit port creation instead of lumped. Works for vertical and coplanar
- ports.
- polygon
Examples
>>> edb_path = path_to_edb >>> edb = Edb(edb_path) >>> poly_list = [poly for poly in list(edb.layout.primitives) if poly.GetPrimitiveType() == 2] >>> port_poly = [poly for poly in poly_list if poly.GetId() == 17][0] >>> ref_poly = [poly for poly in poly_list if poly.GetId() == 19][0] >>> port_location = [-65e-3, -13e-3] >>> ref_location = [-63e-3, -13e-3] >>> edb.excitation_manager.create_edge_port_on_polygon(polygon=port_poly, reference_polygon=ref_poly, >>> terminal_point=port_location, reference_point=ref_location)
- EdbHfss.create_wave_port(prim_id, point_on_edge, port_name=None, impedance=50, horizontal_extent_factor=5, vertical_extent_factor=3, pec_launch_width='0.01mm')#
Create a wave port.
Deprecated since version 0.70.0: Use
pyedb.excitation_manager.create_wave_port()instead.- Parameters:
- prim_id
int,Primitive Primitive ID.
- point_on_edge
list Coordinate of the point to define the edge terminal. The point must be on the target edge but not on the two ends of the edge.
- port_name
str,optional Name of the port. The default is
None.- impedance
int,float,optional Impedance of the port. The default value is
50.- horizontal_extent_factor
int,float,optional Horizontal extent factor. The default value is
5.- vertical_extent_factor
int,float,optional Vertical extent factor. The default value is
3.- pec_launch_width
str,optional Launch Width of PEC. The default value is
"0.01mm".
- prim_id
- Returns:
tupleThe tuple contains: (Port name, pyedb.dotnet.database.edb_data.sources.Excitation).
Examples
>>> edb.excitation_manager.create_wave_port(0, ["-50mm", "-0mm"])
- EdbHfss.create_edge_port_vertical(prim_id, point_on_edge, port_name=None, impedance=50, reference_layer=None, hfss_type='Gap', horizontal_extent_factor=5, vertical_extent_factor=3, pec_launch_width='0.01mm')#
Create a vertical edge port.
Deprecated since version 0.70.0: Use
pyedb.excitation_manager.create_edge_port_vertical()instead.- Parameters:
- prim_id
int Primitive ID.
- point_on_edge
list Coordinate of the point to define the edge terminal. The point must be on the target edge but not on the two ends of the edge.
- port_name
str,optional Name of the port. The default is
None.- impedance
int,float,optional Impedance of the port. The default value is
50.- reference_layer
str,optional Reference layer of the port. The default is
None.- hfss_type
str,optional Type of the port. The default value is
"Gap". Options are"Gap","Wave".- horizontal_extent_factor
int,float,optional Horizontal extent factor. The default value is
5.- vertical_extent_factor
int,float,optional Vertical extent factor. The default value is
3.- radial_extent_factor
int,float,optional Radial extent factor. The default value is
0.- pec_launch_width
str,optional Launch Width of PEC. The default value is
"0.01mm".
- prim_id
- Returns:
strPort name.
- EdbHfss.create_edge_port_horizontal(prim_id, point_on_edge, ref_prim_id=None, point_on_ref_edge=None, port_name=None, impedance=50, layer_alignment='Upper')#
Create a horizontal edge port.
Deprecated since version 0.70.0: Use
pyedb.excitation_manager.create_edge_port_horizontal()instead.- Parameters:
- prim_id
int Primitive ID.
- point_on_edge
list Coordinate of the point to define the edge terminal. The point must be on the target edge but not on the two ends of the edge.
- ref_prim_id
int,optional Reference primitive ID. The default is
None.- point_on_ref_edge
list,optional Coordinate of the point to define the reference edge terminal. The point must be on the target edge but not on the two ends of the edge. The default is
None.- port_name
str,optional Name of the port. The default is
None.- impedance
int,float,optional Impedance of the port. The default value is
50.- layer_alignment
str,optional Layer alignment. The default value is
Upper. Options are"Upper","Lower".
- prim_id
- Returns:
strName of the port.
- EdbHfss.create_lumped_port_on_net(nets=None, reference_layer=None, return_points_only=False, digit_resolution=6, at_bounding_box=True)#
Create an edge port on nets. This command looks for traces and polygons on the nets and tries to assign vertical lumped port.
Deprecated since version 0.70.0: Use
pyedb.excitation_manager.create_lumped_port_on_net()instead.- Parameters:
- nets
list,optional List of nets, str or Edb net.
- reference_layer
str,Edblayer. Name or Edb layer object.
- return_points_onlybool,
optional Use this boolean when you want to return only the points from the edges and not creating ports. Default value is
False.- digit_resolution
int,optional The number of digits carried for the edge location accuracy. The default value is
6.- at_bounding_boxbool
- When
Truewill keep the edges from traces at the layout bounding box location. This is recommended when a cutout has been performed before and lumped ports have to be created on ending traces. Default value is
True.
- When
- nets
- Returns:
- bool
Truewhen successful,Falsewhen failed.
- EdbHfss.create_vertical_circuit_port_on_clipped_traces(nets=None, reference_net=None, user_defined_extent=None)#
Create an edge port on clipped signal traces.
Deprecated since version 0.70.0: Use
pyedb.excitation_manager.create_vertical_circuit_port_on_clipped_traces()instead.- Parameters:
- Returns:
- [[
str]] Nested list of str, with net name as first value, X value for point at border, Y value for point at border, and terminal name.
- [[
- EdbHfss.get_layout_bounding_box(layout=None, digit_resolution=6)#
Evaluate the layout bounding box.
- EdbHfss.add_setup(name=None)#
Adding method for grpc compatibility
- EdbHfss.get_ports_number()#
Return the total number of excitation ports in a layout.
- Parameters:
- None
- Returns:
intNumber of ports.
- EdbHfss.create_rlc_boundary_on_pins(positive_pin=None, negative_pin=None, rvalue=0.0, lvalue=0.0, cvalue=0.0)#
Create hfss rlc boundary on pins.
Deprecated since version 0.70.0: Use
pyedb.excitation_manager.create_rlc_boundary_on_pins()instead.- Parameters:
- positive_pin
Positivepin. Edb.Cell.Primitive.PadstackInstance
- negative_pin
Negativepin. Edb.Cell.Primitive.PadstackInstance
- rvalue
Resistancevalue - lvalue
Inductancevalue - cvalue . Capacitance value.
- positive_pin
- Returns:
- bool
Truewhen successful,Falsewhen failed.
- EdbHfss.generate_auto_hfss_regions()#
Generate auto HFSS regions.
This method automatically identifies areas for use as HFSS regions in SIwave simulations.