EdbSiwave#

class pyedb.dotnet.database.siwave.EdbSiwave(p_edb)#

Bases: object

Manages EDB methods related to Siwave Setup accessible from Edb.siwave property.

Parameters:
edb_classpyedb.edb.Edb

Inherited parent object.

Examples

>>> from pyedb import Edb
>>> edbapp = Edb("myaedbfolder", edbversion="2021.2")
>>> edb_siwave = edbapp.siwave

Overview#

create_circuit_port_on_pin

Create a circuit port on a pin.

create_port_between_pin_and_layer

Create circuit port between pin and a reference layer.

create_voltage_source_on_pin

Create a voltage source.

create_current_source_on_pin

Create a current source.

create_resistor_on_pin

Create a Resistor boundary between two given pins..

create_circuit_port_on_net

Create a circuit port on a NET.

create_voltage_source_on_net

Create a voltage source.

create_current_source_on_net

Create a current source.

create_dc_terminal

Create a dc terminal.

create_exec_file

Create an executable file.

add_siwave_syz_analysis

Add a SIwave AC analysis to EDB.

add_siwave_dc_analysis

Add a Siwave DC analysis in EDB.

create_pin_group_terminal

Create a pin group terminal.

configure_siw_analysis_setup

Configure Siwave analysis setup.

create_rlc_component

Create physical Rlc component.

create_pin_group

Create pin group on the component.

create_pin_group_on_net

Create pin group on component by net name.

create_current_source_on_pin_group

Create current source between two pin groups.

create_voltage_source_on_pin_group

Create voltage source between two pin groups.

create_voltage_probe_on_pin_group

Create voltage probe between two pin groups.

create_circuit_port_on_pin_group

Create a port between two pin groups.

place_voltage_probe

Place a voltage probe between two points.

create_vrm_module

Create a voltage regulator module.

create_impedance_crosstalk_scan

Create Siwave crosstalk scan object

add_cpa_analysis

excitations

Get all excitations.

sources

Get all sources.

probes

Get all probes.

voltage_regulator_modules

Get all voltage regulator modules

pin_groups

All Layout Pin groups.

icepak_use_minimal_comp_defaults

Icepak default setting. If “True”, only resistor are active in Icepak simulation.

icepak_component_file

Icepak component file path.

Import detail#

from pyedb.dotnet.database.siwave import EdbSiwave

Property detail#

property EdbSiwave.excitations#

Get all excitations.

property EdbSiwave.sources#

Get all sources.

property EdbSiwave.probes#

Get all probes.

property EdbSiwave.voltage_regulator_modules#

Get all voltage regulator modules

property EdbSiwave.pin_groups#

All Layout Pin groups.

Returns:
list

List of all layout pin groups.

property EdbSiwave.icepak_use_minimal_comp_defaults#

Icepak default setting. If “True”, only resistor are active in Icepak simulation. The power dissipation of the resistors are calculated from DC results.

property EdbSiwave.icepak_component_file#

Icepak component file path.

Method detail#

EdbSiwave.create_circuit_port_on_pin(pos_pin, neg_pin, impedance=50, port_name=None)#

Create a circuit port on a pin.

Parameters:
pos_pinObject

Edb Pin

neg_pinObject

Edb Pin

impedancefloat

Port Impedance

port_namestr, optional

Port Name

Returns:
str

Port Name.

Examples

>>> from pyedb import Edb
>>> edbapp = Edb("myaedbfolder", "project name", "release version")
>>> pins = edbapp.components.get_pin_from_component("U2A5")
>>> edbapp.siwave.create_circuit_port_on_pin(pins[0], pins[1], 50, "port_name")
EdbSiwave.create_port_between_pin_and_layer(component_name=None, pins_name=None, layer_name=None, reference_net=None, impedance=50.0)#

Create circuit port between pin and a reference layer.

Parameters:
component_namestr

Component name. The default is None.

pins_namestr

Pin name or list of pin names. The default is None.

layer_namestr

Layer name. The default is None.

reference_netstr

Reference net name. The default is None.

impedancefloat, optional

Port impedance. The default is 50.0 in ohms.

Returns:
PadstackInstanceTerminal

Created terminal.

EdbSiwave.create_voltage_source_on_pin(pos_pin, neg_pin, voltage_value=3.3, phase_value=0, source_name='')#

Create a voltage source.

Parameters:
pos_pinObject

Positive Pin.

neg_pinObject

Negative Pin.

voltage_valuefloat, optional

Value for the voltage. The default is 3.3.

phase_valueoptional

Value for the phase. The default is 0.

source_namestr, optional

Name of the source. The default is "".

Returns:
str

Source Name.

Examples

>>> from pyedb import Edb
>>> edbapp = Edb("myaedbfolder", "project name", "release version")
>>> pins = edbapp.components.get_pin_from_component("U2A5")
>>> edbapp.siwave.create_voltage_source_on_pin(pins[0], pins[1], 50, "source_name")
EdbSiwave.create_current_source_on_pin(pos_pin, neg_pin, current_value=0.1, phase_value=0, source_name='')#

Create a current source.

Parameters:
pos_pinObject

Positive pin.

neg_pinObject

Negative pin.

current_valuefloat, optional

Value for the current. The default is 0.1.

phase_valueoptional

Value for the phase. The default is 0.

source_namestr, optional

Name of the source. The default is "".

Returns:
str

Source Name.

Examples

>>> from pyedb import Edb
>>> edbapp = Edb("myaedbfolder", "project name", "release version")
>>> pins = edbapp.components.get_pin_from_component("U2A5")
>>> edbapp.siwave.create_current_source_on_pin(pins[0], pins[1], 50, "source_name")
EdbSiwave.create_resistor_on_pin(pos_pin, neg_pin, rvalue=1, resistor_name='')#

Create a Resistor boundary between two given pins..

Parameters:
pos_pinObject

Positive Pin.

neg_pinObject

Negative Pin.

rvaluefloat, optional

Resistance value. The default is 1.

resistor_namestr, optional

Name of the resistor. The default is "".

Returns:
str

Name of the resistor.

Examples

>>> from pyedb import Edb
>>> edbapp = Edb("myaedbfolder", "project name", "release version")
>>> pins = edbapp.components.get_pin_from_component("U2A5")
>>> edbapp.siwave.create_resistor_on_pin(pins[0], pins[1], 50, "res_name")
EdbSiwave.create_circuit_port_on_net(positive_component_name, positive_net_name, negative_component_name=None, negative_net_name=None, 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_namestr

Name of the positive component.

positive_net_namestr

Name of the positive net.

negative_component_namestr, optional

Name of the negative component. The default is None, in which case the name of the positive net is assigned.

negative_net_namestr, optional

Name of the negative net name. The default is None which will look for GND Nets.

impedance_valuefloat, optional

Port impedance value. The default is 50.

port_namestr, optional

Name of the port. The default is "".

Returns:
str

The name of the port.

Examples

>>> from pyedb import Edb
>>> edbapp = Edb("myaedbfolder", "project name", "release version")
>>> edbapp.siwave.create_circuit_port_on_net("U2A5", "V1P5_S3", "U2A5", "GND", 50, "port_name")
EdbSiwave.create_voltage_source_on_net(positive_component_name, positive_net_name, negative_component_name=None, negative_net_name=None, voltage_value=3.3, phase_value=0, source_name='')#

Create a voltage source.

Parameters:
positive_component_namestr

Name of the positive component.

positive_net_namestr

Name of the positive net.

negative_component_namestr, optional

Name of the negative component. The default is None, in which case the name of the positive net is assigned.

negative_net_namestr, optional

Name of the negative net name. The default is None which will look for GND Nets.

voltage_valuefloat, optional

Value for the voltage. The default is 3.3.

phase_valueoptional

Value for the phase. The default is 0.

source_namestr, optional

Name of the source. The default is "".

Returns:
str

The name of the source.

Examples

>>> from pyedb import Edb
>>> edbapp = Edb("myaedbfolder", "project name", "release version")
>>> edb.siwave.create_voltage_source_on_net("U2A5", "V1P5_S3", "U2A5", "GND", 3.3, 0, "source_name")
EdbSiwave.create_current_source_on_net(positive_component_name, positive_net_name, negative_component_name=None, negative_net_name=None, current_value=0.1, phase_value=0, source_name='')#

Create a current source.

Parameters:
positive_component_namestr

Name of the positive component.

positive_net_namestr

Name of the positive net.

negative_component_namestr, optional

Name of the negative component. The default is None, in which case the name of the positive net is assigned.

negative_net_namestr, optional

Name of the negative net name. The default is None which will look for GND Nets.

current_valuefloat, optional

Value for the current. The default is 0.1.

phase_valueoptional

Value for the phase. The default is 0.

source_namestr, optional

Name of the source. The default is "".

Returns:
str

The name of the source.

Examples

>>> from pyedb import Edb
>>> edbapp = Edb("myaedbfolder", "project name", "release version")
>>> edb.siwave.create_current_source_on_net("U2A5", "V1P5_S3", "U2A5", "GND", 0.1, 0, "source_name")
EdbSiwave.create_dc_terminal(component_name, net_name, source_name='')#

Create a dc terminal.

Parameters:
component_namestr

Name of the positive component.

net_namestr

Name of the positive net.

source_namestr, optional

Name of the source. The default is "".

Returns:
str

The name of the source.

Examples

>>> from pyedb import Edb
>>> edbapp = Edb("myaedbfolder", "project name", "release version")
>>> edb.siwave.create_dc_terminal("U2A5", "V1P5_S3", "source_name")
EdbSiwave.create_exec_file(add_dc=False, add_ac=False, add_syz=False, export_touchstone=False, touchstone_file_path='')#

Create an executable file.

Parameters:
add_dcbool, optional

Whether to add the DC option in the EXE file. The default is False.

add_acbool, optional

Whether to add the AC option in the EXE file. The default is False.

add_syzbool, optional

Whether to add the SYZ option in the EXE file

export_touchstonebool, optional

Add the Touchstone file export option in the EXE file. The default is False.

touchstone_file_pathstr, optional

File path for the Touchstone file. The default is "". When no path is specified and export_touchstone=True, the path for the project is used.

EdbSiwave.add_siwave_syz_analysis(name=None, accuracy_level=1, decade_count=10, sweeptype=1, start_freq=1, stop_freq=1000000000.0, step_freq=1000000.0, discrete_sweep=False)#

Add a SIwave AC analysis to EDB.

Parameters:
namestr optional

Setup name.

accuracy_levelint, optional

Level of accuracy of SI slider. The default is 1.

decade_countint

The default is 10. The value for this parameter is used for these sweep types: linear count and decade count. This parameter is alternative to step_freq, which is used for a linear scale sweep.

sweeptypeint, optional

Type of the sweep. The default is 1. Options are:

  • 0: linear count

  • 1: linear scale

  • 2: loc scale

start_freqfloat, optional

Starting frequency. The default is 1.

stop_freqfloat, optional

Stopping frequency. The default is 1e9.

step_freqfloat, optional

Frequency size of the step. The default is 1e6.

discrete_sweepbool, optional

Whether the sweep is discrete. The default is False.

Returns:
pyedb.dotnet.database.edb_data.siwave_simulation_setup_data.SiwaveSYZSimulationSetup

Setup object class.

EdbSiwave.add_siwave_dc_analysis(name=None)#

Add a Siwave DC analysis in EDB.

If a setup is present, it is deleted and replaced with actual settings.

Note

Source Reference to Ground settings works only from 2021.2

Parameters:
namestr, optional

Setup name.

Returns:
pyedb.dotnet.database.edb_data.siwave_simulation_setup_data.SiwaveDCSimulationSetup

Setup object class.

Examples

>>> from pyedb import Edb
>>> edb = Edb("pathtoaedb", edbversion="2021.2")
>>> edb.siwave.add_siwave_ac_analysis()
>>> edb.siwave.add_siwave_dc_analysis2("my_setup")
EdbSiwave.create_pin_group_terminal(source)#

Create a pin group terminal.

Parameters:
sourceVoltageSource, CircuitPort, CurrentSource, DCTerminal or ResistorSource

Name of the source.

EdbSiwave.configure_siw_analysis_setup(simulation_setup=None, delete_existing_setup=True)#

Configure Siwave analysis setup.

Parameters:
simulation_setup

Edb_DATA.SimulationConfiguration object.

Returns:
bool

True when successful, False when failed.

EdbSiwave.create_rlc_component(pins, component_name='', r_value=1.0, c_value=1e-09, l_value=1e-09, is_parallel=False)#

Create physical Rlc component.

Parameters:
pinslist[Edb.Cell.Primitive.PadstackInstance]

List of EDB pins.

component_namestr

Component name.

r_valuefloat

Resistor value.

c_valuefloat

Capacitance value.

l_valuefloat

Inductor value.

is_parallelbool

Using parallel model when True, series when False.

Returns:
class:pyedb.dotnet.database.components.Components

Created EDB component.

EdbSiwave.create_pin_group(reference_designator, pin_numbers, group_name=None)#

Create pin group on the component.

Parameters:
reference_designatorstr

References designator of the component.

pin_numbersint, str, list

List of pin names.

group_namestr, optional

Name of the pin group.

Returns:
PinGroup
EdbSiwave.create_pin_group_on_net(reference_designator, net_name, group_name=None)#

Create pin group on component by net name.

Parameters:
reference_designatorstr

References designator of the component.

net_namestr

Name of the net.

group_namestr, optional

Name of the pin group. The default value is None.

Returns:
PinGroup
EdbSiwave.create_current_source_on_pin_group(pos_pin_group_name, neg_pin_group_name, magnitude=1, phase=0, name=None)#

Create current source between two pin groups.

Parameters:
pos_pin_group_namestr

Name of the positive pin group.

neg_pin_group_namestr

Name of the negative pin group.

magnitudeint, float, optional

Magnitude of the source.

phaseint, float, optional

Phase of the source

Returns:
bool
EdbSiwave.create_voltage_source_on_pin_group(pos_pin_group_name, neg_pin_group_name, magnitude=1, phase=0, name=None, impedance=0.001)#

Create voltage source between two pin groups.

Parameters:
pos_pin_group_namestr

Name of the positive pin group.

neg_pin_group_namestr

Name of the negative pin group.

magnitudeint, float, optional

Magnitude of the source.

phaseint, float, optional

Phase of the source

Returns:
bool
EdbSiwave.create_voltage_probe_on_pin_group(probe_name, pos_pin_group_name, neg_pin_group_name, impedance=1000000)#

Create voltage probe between two pin groups.

Parameters:
probe_namestr

Name of the probe.

pos_pin_group_namestr

Name of the positive pin group.

neg_pin_group_namestr

Name of the negative pin group.

impedanceint, float, optional

Phase of the source.

Returns:
bool
EdbSiwave.create_circuit_port_on_pin_group(pos_pin_group_name, neg_pin_group_name, impedance=50, name=None)#

Create a port between two pin groups.

Parameters:
pos_pin_group_namestr

Name of the positive pin group.

neg_pin_group_namestr

Name of the negative pin group.

impedanceint, float, optional

Impedance of the port. Default is 50.

namestr, optional

Port name.

Returns:
bool
EdbSiwave.place_voltage_probe(name, positive_net_name, positive_location, positive_layer, negative_net_name, negative_location, negative_layer)#

Place a voltage probe between two points.

Parameters:
namestr,

Name of the probe.

positive_net_namestr

Name of the positive net.

positive_locationlist

Location of the positive terminal.

positive_layerstr,

Layer of the positive terminal.

negative_net_namestr,

Name of the negative net.

negative_locationlist

Location of the negative terminal.

negative_layerstr

Layer of the negative terminal.

EdbSiwave.create_vrm_module(name=None, is_active=True, voltage='3V', positive_sensor_pin=None, negative_sensor_pin=None, load_regulation_current='1A', load_regulation_percent=0.1)#

Create a voltage regulator module.

Parameters:
namestr

Name of the voltage regulator.

is_activebool optional

Set the voltage regulator active or not. Default value is True.

voltage ; str, float

Set the voltage value.

positive_sensor_pinint, class pyedb.dotnet.database.edb_data.padstacks_data.EDBPadstackInstance

defining the positive sensor pin.

negative_sensor_pinint, class pyedb.dotnet.database.edb_data.padstacks_data.EDBPadstackInstance

defining the negative sensor pin.

load_regulation_currentstr or float

definition the load regulation current value.

load_regulation_percentfloat

definition the load regulation percent value.

EdbSiwave.create_impedance_crosstalk_scan(scan_type='impedance')#

Create Siwave crosstalk scan object

Parameters:
scan_typestr

Scan type to be analyzed. 3 options are available, impedance for frequency impedance scan, frequency_xtalk for frequency domain crosstalk and time_xtalk for time domain crosstalk. Default value is frequency.

EdbSiwave.add_cpa_analysis(name=None, siwave_cpa_setup_class=None)#