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 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. |
|
Configure the HFSS extent box. |
|
Adding method for grpc compatibility |
|
Configure HFSS analysis setup. |
|
Trim the common component reference to the minimally acceptable size. |
|
Set coaxial port attribute with forcing default impedance to 50 Ohms and adjusting the coaxial extent radius. |
|
Return the total number of excitation ports in a layout. |
|
Defeature the layout by reducing the number of points for polygons based on surface deviation criteria. |
|
Create hfss rlc boundary on pins. |
HFSS extent information. |
|
Get all excitations. |
|
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#
Get all excitations.
- property EdbHfss.sources#
Get all sources.
- property EdbHfss.probes#
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.
- 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.hfss.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.
- 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.hfss.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.
- 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.hfss.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.
- 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.hfss.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.
- 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.hfss.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.
- 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.hfss.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.
- 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.hfss.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.
- 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.
- 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.hfss.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.
- 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.hfss.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.
- 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.
- 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.hfss.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.
- 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.hfss.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.
- 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.
- 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.
- 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.
- 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.configure_hfss_extents(simulation_setup=None)#
Configure the HFSS extent box.
- Parameters:
- simulation_setup
Edb_DATA.SimulationConfiguration object
- Returns:
- bool
True when succeeded, False when failed.
- EdbHfss.add_setup(name=None)#
Adding method for grpc compatibility
- EdbHfss.configure_hfss_analysis_setup(simulation_setup=None)#
Configure HFSS analysis setup.
- Parameters:
- simulation_setup
Edb_DATA.SimulationConfiguration object
- Returns:
- bool
True when succeeded, False when failed.
- EdbHfss.trim_component_reference_size(simulation_setup=None, trim_to_terminals=False)#
Trim the common component reference to the minimally acceptable size.
- Parameters:
- simulation_setup
Edb_DATA.SimulationConfiguration object
- trim_to_terminals
- bool.
True, reduce the reference to a box covering only the active terminals (i.e. those with
- ports).
False, reduce the reference to the minimal size needed to cover all pins
- Returns:
- bool
True when succeeded, False when failed.
- EdbHfss.set_coax_port_attributes(simulation_setup=None)#
Set coaxial port attribute with forcing default impedance to 50 Ohms and adjusting the coaxial extent radius.
- Parameters:
- simulation_setup
Edb_DATA.SimulationConfiguration object.
- Returns:
- bool
True when succeeded, False when failed.
- EdbHfss.get_ports_number()#
Return the total number of excitation ports in a layout.
- Parameters:
- None
- Returns:
intNumber of ports.
- EdbHfss.layout_defeaturing(simulation_setup=None)#
Defeature the layout by reducing the number of points for polygons based on surface deviation criteria.
- 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.
- 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.