LayoutValidation#
- class pyedb.grpc.database.layout_validation.LayoutValidation(pedb: Any)#
Manages all layout validation capabilities.
Overview#
Find DC shorts on layout. |
|
Find and fix disjoint nets from a given netlist. |
|
Find and fix self intersections from a given netlist. |
|
Find and fix illegal net names. |
|
Find and fix RLC illegal values. |
|
Identify and fix padstacks without names. |
|
Find and delete pin groups that have no pins. |
|
Run Siwave geometry validation/healing workflow through |
Import detail#
from pyedb.grpc.database.layout_validation import LayoutValidation
Method detail#
- LayoutValidation.dc_shorts(net_list: str | List[str] | None = None, fix: bool = False) List[List[str]]#
Find DC shorts on layout.
- Parameters:
- Returns:
Examples
>>> from pyedb import Edb >>> 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)
- LayoutValidation.disjoint_nets(net_list: str | List[str] | None = 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
str,list,optional List of nets on which check disjoints. If None is provided then the algorithm will loop on all nets.
- keep_only_main_netbool,
optional Remove all secondary nets other than principal one (the one with more objects in it). Default is False.
- clean_disjoints_less_thanbool,
optional Clean all disjoint nets with area less than specified area in square meters. Default is 0.0 to disable it.
- order_by_areabool,
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_pinsbool,
optional Whether if delete disjoints pins not connected to any other primitive or not. Default is
False.
- net_list
- Returns:
ListNew nets created.
Examples
>>> from pyedb import Edb >>> edb = Edb("edb_file") >>> 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 ... ))
- LayoutValidation.fix_self_intersections(net_list: str | List[str] | None = None) bool#
Find and fix self intersections from a given netlist.
- Parameters:
- Returns:
Examples
>>> from pyedb import Edb >>> 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"])
- LayoutValidation.illegal_net_names(fix: bool = False) None#
Find and fix illegal net names.
Examples
>>> from pyedb import Edb >>> 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)
- LayoutValidation.illegal_rlc_values(fix: bool = False) List[str]#
Find and fix RLC illegal values.
Examples
>>> from pyedb import Edb >>> 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)
- LayoutValidation.padstacks_no_name(fix: bool = False) None#
Identify and fix padstacks without names.
Examples
# Use an Edb instance (see dc_shorts example above) and call: # edb.layout_validation.padstacks_no_name() # # Automatically assign names to unnamed padstacks # edb.layout_validation.padstacks_no_name(fix=True)
- LayoutValidation.delete_empty_pin_groups() None#
Find and delete pin groups that have no pins.
Examples
>>> from pyedb import Edb >>> edb = Edb("edb_file") >>> edb.layout_validation.delete_empty_pin_groups()
- LayoutValidation.run_siwave_validation_check(validation_mode: str = 'SYZ', num_cpus: int = 8, fix_self_intersections: bool = True, fix_disjoint_nets: bool = True, check_for_shorted_nets: bool = True, fix_overlapping_vias: bool = True, check_for_bondwire_errors: bool = True, fix_misalignments: bool = True, fix_floating_planes: bool = True, check_for_unreferenced_traces: bool = True, ignore_non_functional_pads: bool = True, correct_all_fixable_issues: bool = True, strict_disjoint_net_check: bool = True, save: bool = True, delete_temp_folder: bool = True, keep_log_files: bool = True) bool#
Run Siwave geometry validation/healing workflow through
siwave_ngandsiwavevalchk.The active EDB session is closed before external tools run and reopened afterwards (only when this session’s path matches the target AEDB).
- Parameters:
- validation_mode
str,optional Validation mode passed as
ValidationMode. Default is"SYZ".- num_cpus
int,optional Number of CPUs for
SetNumCpus. Default is8.- fix_self_intersectionsbool,
optional Add
FixSelfIntersectionswhenTrue.- fix_disjoint_netsbool,
optional Add
FixDisjointNetswhenTrue.- check_for_shorted_netsbool,
optional Add
CheckForShortedNetswhenTrue.- fix_overlapping_viasbool,
optional Add
FixOverlappingViaswhenTrue.- check_for_bondwire_errorsbool,
optional Add
CheckForBondwireErrorswhenTrue.- fix_misalignmentsbool,
optional Add
FixMisalignmentswhenTrue.- fix_floating_planesbool,
optional Add
FixFloatingPlaneswhenTrue.- check_for_unreferenced_tracesbool,
optional Add
CheckForUnreferencedTraceswhenTrue.- ignore_non_functional_padsbool,
optional Add
IgnoreNonFunctionalPadswhenTrue.- correct_all_fixable_issuesbool,
optional Add
CorrectAllFixableIssueswhenTrue.- strict_disjoint_net_checkbool,
optional Add
StrictDisjointNetCheckwhenTrue.- savebool,
optional Add
SavewhenTrue.- delete_temp_folderbool,
optional Delete the temporary working folder after workflow completion. Default is
True.- keep_log_filesbool,
optional Copy all files produced by
siwavevalchk(e.g.valchk.prof,valchk.results,valchk_error_warning.log) from the temporary results folder_temp/into a.siwaveresults/valchk validation_check_logfolder next to the source AEDB. Any pre-existingvalidation_check_logfolder is deleted first. Default isTrue.
- validation_mode
- Returns:
- bool
Truewhen the workflow succeeds andedb.defis written back.