bag.verification.pvs

This module implements LVS/RCX using PVS/QRC and stream out from Virtuoso.

Module Contents

Classes

PVS

A subclass of VirtuosoChecker that uses PVS/QRC for verification.

Functions

_lvs_passed_check(→ Tuple[bool, str])

Check if LVS passed

class bag.verification.pvs.PVS(tmp_dir: str, root_dir: Dict[str, str], template: Dict[str, str], env_vars: Dict[str, Dict[str, str]], link_files: Dict[str, List[str]], params: Dict[str, Dict[str, Any]], lvs_cmd: str = 'pvs', max_workers: int = 0, source_added_file: str = '', import_ref_lib: str = '', cancel_timeout_ms: int = 10000, enable_color: bool = False, **kwargs: Dict[str, Any])[source]

Bases: bag.verification.virtuoso.VirtuosoChecker

A subclass of VirtuosoChecker that uses PVS/QRC for verification.

Parameters:
  • tmp_dir (str) – temporary directory to save files in.

  • root_dir (Dict[str, str]) – dictionary of root run directories.

  • template (Dict[str, str]) – dictionary of SVRF jinja template files.

  • env_vars (Dict[str, Dict[str, str]]) – dictionary of environment variables.

  • params (Dict[str, Dict[str, Any]]) – dictionary of default flow parameters.

  • lvs_cmd (str) – the lvs command.

  • max_workers (int) – maximum number of sub-processes BAG can launch.

  • source_added_file (str) – the Calibre source.added file location. Environment variable is supported. If empty (default), this is not configured.

  • import_ref_lib (str) – the import reference libraries list file location. Environment variable is supported. If empty (default), this is not configured.

  • cancel_timeout_ms (int) – cancel timeout in milliseconds.

  • enable_color (bool) – True to enable coloring in GDS export.

get_rcx_netlists(lib_name: str, cell_name: str) List[str][source]
abstract setup_drc_flow(lib_name: str, cell_name: str, lay_view: str = 'layout', layout: str = '', params: Optional[Dict[str, Any]] = None, run_dir: Union[str, pathlib.Path] = '') Sequence[bag.verification.base.FlowInfo][source]
setup_lvs_flow(lib_name: str, cell_name: str, sch_view: str = 'schematic', lay_view: str = 'layout', layout: str = '', netlist: str = '', params: Optional[Dict[str, Any]] = None, run_rcx: bool = False, run_dir: Union[str, pathlib.Path] = '') Sequence[bag.verification.base.FlowInfo][source]
setup_rcx_flow(lib_name: str, cell_name: str, sch_view: str = 'schematic', lay_view: str = 'layout', layout: str = '', netlist: str = '', params: Optional[Dict[str, Any]] = None, run_dir: Union[str, pathlib.Path] = '') Sequence[bag.verification.base.FlowInfo][source]
bag.verification.pvs._lvs_passed_check(retcode: int, log_file: str) Tuple[bool, str][source]

Check if LVS passed

Parameters:
  • retcode (int) – return code of the LVS subprocess.

  • log_file (str) – log file name.

Returns:

  • success (bool) – True if LVS passed.

  • log_file (str) – the log file name.