:class:`EDBComponent` ===================== .. py:class:: pyedb.dotnet.database.cell.hierarchy.component.EDBComponent(pedb, edb_object) Bases: :py:obj:`pyedb.dotnet.database.cell.hierarchy.hierarchy_obj.Group` Manages EDB functionalities for components. :Parameters: **parent** : :class:`pyedb.dotnet.database.components.Components` Components object. **component** : :obj:`object` Edb Component Object .. !! processed by numpydoc !! .. py:currentmodule:: EDBComponent Overview -------- .. tab-set:: .. tab-item:: Methods .. list-table:: :header-rows: 0 :widths: auto * - :py:attr:`~create_package_def` - Create a package definition and assign it to the component. * - :py:attr:`~assign_spice_model` - Assign Spice model to this component. * - :py:attr:`~assign_s_param_model` - Assign S-parameter to this component. * - :py:attr:`~use_s_parameter_model` - Use S-parameter model on the component. * - :py:attr:`~assign_rlc_model` - Assign RLC to this component. * - :py:attr:`~create_clearance_on_component` - Create a Clearance on Soldermask layer by drawing a rectangle. .. tab-item:: Properties .. list-table:: :header-rows: 0 :widths: auto * - :py:attr:`~name` - Name of the definition. * - :py:attr:`~group_type` - * - :py:attr:`~layout_instance` - EDB layout instance object. * - :py:attr:`~component_instance` - Edb component instance. * - :py:attr:`~component_property` - ``ComponentProperty`` object. * - :py:attr:`~model` - Component model. * - :py:attr:`~package_def` - Package definition. * - :py:attr:`~ic_die_properties` - Adding IC properties for grpc compatibility. * - :py:attr:`~is_enabled` - Get or Set the component to active mode. * - :py:attr:`~enabled` - Get or Set the component to active mode. * - :py:attr:`~spice_model` - Get assigned Spice model properties. * - :py:attr:`~s_param_model` - Get assigned S-parameter model properties. * - :py:attr:`~netlist_model` - Get assigned netlist model properties. * - :py:attr:`~solder_ball_height` - Solder ball height if available. * - :py:attr:`~solder_ball_shape` - Solder ball shape. * - :py:attr:`~solder_ball_diameter` - Solder ball diameter. * - :py:attr:`~solder_ball_placement` - Solder ball placement if available.. * - :py:attr:`~refdes` - Reference Designator Name. * - :py:attr:`~is_null` - Flag indicating if the current object exists. * - :py:attr:`~model_type` - Retrieve assigned model type. * - :py:attr:`~rlc_values` - Get component rlc values. * - :py:attr:`~value` - Retrieve discrete component value. * - :py:attr:`~res_value` - Resistance value. * - :py:attr:`~cap_value` - Capacitance Value. * - :py:attr:`~ind_value` - Inductance Value. * - :py:attr:`~is_parallel_rlc` - Define if model is Parallel or Series. * - :py:attr:`~center` - Compute the component center. * - :py:attr:`~bounding_box` - Component's bounding box. * - :py:attr:`~rotation` - Compute the component rotation in radian. * - :py:attr:`~pinlist` - Pins of the component. * - :py:attr:`~nets` - Nets of Component. * - :py:attr:`~pins` - EDBPadstackInstance of Component. * - :py:attr:`~type` - Component type. * - :py:attr:`~numpins` - Number of Pins of Component. * - :py:attr:`~partname` - Component part name. * - :py:attr:`~part_name` - Component part name. * - :py:attr:`~placement_layer` - Placement layer. * - :py:attr:`~is_top_mounted` - Check if a component is mounted on top or bottom of the layout. * - :py:attr:`~lower_elevation` - Lower elevation of the placement layer. * - :py:attr:`~upper_elevation` - Upper elevation of the placement layer. * - :py:attr:`~top_bottom_association` - Top/bottom association of the placement layer. .. tab-item:: Attributes .. list-table:: :header-rows: 0 :widths: auto * - :py:attr:`~edbcomponent` - Import detail ------------- .. code-block:: python from pyedb.dotnet.database.cell.hierarchy.component import EDBComponent Property detail --------------- .. py:property:: name Name of the definition. .. !! processed by numpydoc !! .. py:property:: group_type .. py:property:: layout_instance EDB layout instance object. .. !! processed by numpydoc !! .. py:property:: component_instance Edb component instance. .. !! processed by numpydoc !! .. py:property:: component_property ``ComponentProperty`` object. .. !! processed by numpydoc !! .. py:property:: model Component model. .. !! processed by numpydoc !! .. py:property:: package_def Package definition. .. !! processed by numpydoc !! .. py:property:: ic_die_properties Adding IC properties for grpc compatibility. .. !! processed by numpydoc !! .. py:property:: is_enabled Get or Set the component to active mode. :Returns: :ref:`bool ` ``True`` if component is active, ``False`` if is disabled.. .. !! processed by numpydoc !! .. py:property:: enabled Get or Set the component to active mode. .. !! processed by numpydoc !! .. py:property:: spice_model Get assigned Spice model properties. .. !! processed by numpydoc !! .. py:property:: s_param_model Get assigned S-parameter model properties. .. !! processed by numpydoc !! .. py:property:: netlist_model Get assigned netlist model properties. .. !! processed by numpydoc !! .. py:property:: solder_ball_height Solder ball height if available. .. !! processed by numpydoc !! .. py:property:: solder_ball_shape Solder ball shape. .. !! processed by numpydoc !! .. py:property:: solder_ball_diameter Solder ball diameter. .. !! processed by numpydoc !! .. py:property:: solder_ball_placement Solder ball placement if available.. .. !! processed by numpydoc !! .. py:property:: refdes Reference Designator Name. :Returns: :class:`python:str` Reference Designator Name. .. !! processed by numpydoc !! .. py:property:: is_null Flag indicating if the current object exists. .. !! processed by numpydoc !! .. py:property:: model_type Retrieve assigned model type. .. !! processed by numpydoc !! .. py:property:: rlc_values Get component rlc values. .. !! processed by numpydoc !! .. py:property:: value Retrieve discrete component value. :Returns: :class:`python:str` Value. ``None`` if not an RLC Type. .. !! processed by numpydoc !! .. py:property:: res_value Resistance value. :Returns: :class:`python:str` Resistance value or ``None`` if not an RLC type. .. !! processed by numpydoc !! .. py:property:: cap_value Capacitance Value. :Returns: :class:`python:str` Capacitance Value. ``None`` if not an RLC Type. .. !! processed by numpydoc !! .. py:property:: ind_value Inductance Value. :Returns: :class:`python:str` Inductance Value. ``None`` if not an RLC Type. .. !! processed by numpydoc !! .. py:property:: is_parallel_rlc Define if model is Parallel or Series. :Returns: :ref:`bool ` ``True`` if it is a parallel rlc model. ``False`` for series RLC. ``None`` if not an RLC Type. .. !! processed by numpydoc !! .. py:property:: center Compute the component center. :Returns: :class:`python:list` .. .. !! processed by numpydoc !! .. py:property:: bounding_box Component's bounding box. :Returns: :obj:`List`\[:class:`python:float`] List of coordinates for the component's bounding box, with the list of coordinates in this order: [X lower left corner, Y lower left corner, X upper right corner, Y upper right corner]. .. !! processed by numpydoc !! .. py:property:: rotation Compute the component rotation in radian. :Returns: :class:`python:float` .. .. !! processed by numpydoc !! .. py:property:: pinlist Pins of the component. :Returns: :class:`python:list` List of Pins of Component. .. !! processed by numpydoc !! .. py:property:: nets Nets of Component. :Returns: :class:`python:list` List of Nets of Component. .. !! processed by numpydoc !! .. py:property:: pins EDBPadstackInstance of Component. :Returns: :obj:`dic`\[:class:`python:str`, :class:`dotnet.database.edb_data.definitions.EDBPadstackInstance`] Dictionary of EDBPadstackInstance Components. .. !! processed by numpydoc !! .. py:property:: type Component type. :Returns: :class:`python:str` Component type. .. !! processed by numpydoc !! .. py:property:: numpins Number of Pins of Component. :Returns: :class:`python:int` Number of Pins of Component. .. !! processed by numpydoc !! .. py:property:: partname Component part name. :Returns: :class:`python:str` Component Part Name. .. !! processed by numpydoc !! .. py:property:: part_name Component part name. :Returns: :class:`python:str` Component part name. .. !! processed by numpydoc !! .. py:property:: placement_layer Placement layer. :Returns: :class:`python:str` Name of the placement layer. .. !! processed by numpydoc !! .. py:property:: is_top_mounted Check if a component is mounted on top or bottom of the layout. :Returns: :ref:`bool ` ``True`` component is mounted on top, ``False`` on down. .. !! processed by numpydoc !! .. py:property:: lower_elevation Lower elevation of the placement layer. :Returns: :class:`python:float` Lower elevation of the placement layer. .. !! processed by numpydoc !! .. py:property:: upper_elevation Upper elevation of the placement layer. :Returns: :class:`python:float` Upper elevation of the placement layer. .. !! processed by numpydoc !! .. py:property:: top_bottom_association Top/bottom association of the placement layer. :Returns: :class:`python:int` Top/bottom association of the placement layer, where: * 0 - Top associated * 1 - No association * 2 - Bottom associated * 4 - Number of top/bottom associations. * -1 - Undefined .. !! processed by numpydoc !! Attribute detail ---------------- .. py:attribute:: edbcomponent Method detail ------------- .. py:method:: create_package_def(name='', component_part_name=None) Create a package definition and assign it to the component. :Parameters: **name: str, optional** Name of the package definition **component_part_name** : :class:`python:str`, :obj:`optional` Part name of the component. :Returns: :ref:`bool ` ``True`` if succeeded, ``False`` otherwise. .. !! processed by numpydoc !! .. py:method:: assign_spice_model(file_path: str, name: Optional[str] = None, sub_circuit_name: Optional[str] = None, terminal_pairs: Optional[list] = None) Assign Spice model to this component. :Parameters: **file_path** : :class:`python:str` File path of the Spice model. **name** : :class:`python:str`, :obj:`optional` Name of the Spice model. **sub_circuit_name** : :class:`python:str`, :obj:`optional` Name of the sub circuit. **terminal_pairs** : :class:`python:list`, :obj:`optional` list of terminal pairs. :Returns: .. .. !! processed by numpydoc !! .. py:method:: assign_s_param_model(file_path, name=None, reference_net=None) Assign S-parameter to this component. :Parameters: **file_path** : :class:`python:str` File path of the S-parameter model. **name** : :class:`python:str`, :obj:`optional` Name of the S-parameter model. **reference_net** : :class:`python:str`, :obj:`optional` Name of the reference net. **Returns** .. **-------** .. .. !! processed by numpydoc !! .. py:method:: use_s_parameter_model(name, reference_net=None) Use S-parameter model on the component. :Parameters: **name: str** Name of the S-parameter model. **reference_net: str, optional** Reference net of the model. :Returns: :ref:`bool ` ``True`` when successful, ``False`` when failed. .. rubric:: Examples >>> edbapp = Edb() >>>comp_def = edbapp.definitions.components["CAPC3216X180X55ML20T25"] >>>comp_def.add_n_port_model("c:GRM32_DC0V_25degC_series.s2p", "GRM32_DC0V_25degC_series") >>>edbapp.components["C200"].use_s_parameter_model("GRM32_DC0V_25degC_series") .. !! processed by numpydoc !! .. py:method:: assign_rlc_model(res=None, ind=None, cap=None, is_parallel=False) Assign RLC to this component. :Parameters: **res** : :class:`python:int`, :class:`python:float` Resistance. Default is ``None``. **ind** : :class:`python:int`, :class:`python:float` Inductance. Default is ``None``. **cap** : :class:`python:int`, :class:`python:float` Capacitance. Default is ``None``. **is_parallel** : :ref:`bool `, :obj:`optional` Whether it is a parallel or series RLC component. The default is ``False``. .. !! processed by numpydoc !! .. py:method:: create_clearance_on_component(extra_soldermask_clearance=0.0001) Create a Clearance on Soldermask layer by drawing a rectangle. :Parameters: **extra_soldermask_clearance** : :class:`python:float`, :obj:`optional` Extra Soldermask value in meter to be applied on component bounding box. :Returns: :ref:`bool ` .. .. !! processed by numpydoc !!