:class:`LayoutValidation` ========================= .. py:class:: pyedb.grpc.database.layout_validation.LayoutValidation(pedb: Any) Manages all layout validation capabilities .. !! processed by numpydoc !! .. py:currentmodule:: LayoutValidation Overview -------- .. tab-set:: .. tab-item:: Methods .. list-table:: :header-rows: 0 :widths: auto * - :py:attr:`~dc_shorts` - Find DC shorts on layout. * - :py:attr:`~disjoint_nets` - Find and fix disjoint nets from a given netlist. * - :py:attr:`~fix_self_intersections` - Find and fix self intersections from a given netlist. * - :py:attr:`~illegal_net_names` - Find and fix illegal net names. * - :py:attr:`~illegal_rlc_values` - Find and fix RLC illegal values. * - :py:attr:`~padstacks_no_name` - Identify and fix padstacks without names. Import detail ------------- .. code-block:: python from pyedb.grpc.database.layout_validation import LayoutValidation Method detail ------------- .. py:method:: dc_shorts(net_list: Optional[Union[str, List[str]]] = None, fix: bool = False) -> List[List[str]] Find DC shorts on layout. :Parameters: **net_list** : :class:`python:str` or :class:`python:list`\[:class:`python:str`], :obj:`optional` List of nets. **fix** : :ref:`bool `, :obj:`optional` If `True`, rename all the nets. (default) If `False`, only report dc shorts. :Returns: :obj:`List`\[:obj:`List`\[:class:`python:str`, :class:`python:str`]] [[net name, net name]]. .. rubric:: Examples >>> edb = Edb("edb_file") >>> # Find shorts without fixing >>> shorts = edb.layout_validation.dc_shorts() >>> >>> # Find and fix shorts on specific nets >>> fixed_shorts = edb.layout_validation.dc_shorts(net_list=["GND", "VCC"], fix=True) .. !! processed by numpydoc !! .. py:method:: disjoint_nets(net_list: Optional[Union[str, List[str]]] = None, keep_only_main_net: bool = False, clean_disjoints_less_than: float = 0.0, order_by_area: bool = False, keep_disjoint_pins: bool = False) -> List[str] Find and fix disjoint nets from a given netlist. :Parameters: **net_list** : :class:`python:str`, :class:`python:list`, :obj:`optional` List of nets on which check disjoints. If `None` is provided then the algorithm will loop on all nets. **keep_only_main_net** : :ref:`bool `, :obj:`optional` Remove all secondary nets other than principal one (the one with more objects in it). Default is `False`. **clean_disjoints_less_than** : :ref:`bool `, :obj:`optional` Clean all disjoint nets with area less than specified area in square meters. Default is `0.0` to disable it. **order_by_area** : :ref:`bool `, :obj:`optional` Whether if the naming order has to be by number of objects (fastest) or area (slowest but more accurate). Default is ``False``. **keep_disjoint_pins** : :ref:`bool `, :obj:`optional` Whether if delete disjoints pins not connected to any other primitive or not. Default is ``False``. :Returns: :obj:`List` New nets created. .. rubric:: Examples >>> edb = Edb("edb_file") >>> # Find disjoint nets on all nets >>> new_nets = edb.layout_validation.disjoint_nets() >>> >>> # Clean disjoints on specific nets with advanced options >>> cleaned = edb.layout_validation.disjoint_nets( ... net_list=["GND"], ... keep_only_main_net=True, ... clean_disjoints_less_than=1e-6, ... order_by_area=True ... )) .. !! processed by numpydoc !! .. py:method:: fix_self_intersections(net_list: Optional[Union[str, List[str]]] = None) -> bool Find and fix self intersections from a given netlist. :Parameters: **net_list** : :class:`python:str`, :class:`python:list`, :obj:`optional` List of nets on which check disjoints. If `None` is provided then the algorithm will loop on all nets. :Returns: :ref:`bool ` .. .. rubric:: Examples >>> edb = Edb("edb_file") >>> # Fix self-intersections on all nets >>> edb.layout_validation.fix_self_intersections() >>> >>> # Fix self-intersections on specific nets >>> edb.layout_validation.fix_self_intersections(net_list=["RF_line"]) .. !! processed by numpydoc !! .. py:method:: illegal_net_names(fix: bool = False) -> None Find and fix illegal net names. .. rubric:: Examples >>> edb = Edb("edb_file") >>> # Identify illegal net names >>> edb.layout_validation.illegal_net_names() >>> >>> # Find and automatically fix illegal names >>> edb.layout_validation.illegal_net_names(fix=True) .. !! processed by numpydoc !! .. py:method:: illegal_rlc_values(fix: bool = False) -> List[str] Find and fix RLC illegal values. .. rubric:: Examples >>> edb = Edb("edb_file") >>> # Identify components with illegal RLC values >>> bad_components = edb.layout_validation.illegal_rlc_values() >>> >>> # Automatically fix invalid inductor values >>> edb.layout_validation.illegal_rlc_values(fix=True) .. !! processed by numpydoc !! .. py:method:: padstacks_no_name(fix: bool = False) -> None Identify and fix padstacks without names. .. rubric:: Examples >>> edb = Edb("edb_file") >>> # Report unnamed padstacks >>> edb.layout_validation.padstacks_no_name() >>> >>> # Automatically assign names to unnamed padstacks >>> edb.layout_validation.padstacks_no_name(fix=True) .. !! processed by numpydoc !!