bag.verification.icv

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

Module Contents

Classes

ICV

A subclass of VirtuosoChecker that uses ICV for verification.

Functions

_all_pass(→ bool)

lvs_passed(→ Tuple[bool, str])

Check if LVS passed

bag.verification.icv._all_pass(retcode: int, log_file: str) bool[source]
bag.verification.icv.lvs_passed(retcode: int, log_file: str) Tuple[bool, str][source]

Check if LVS passed

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

  • log_file (str) – log file name.

Returns:

  • success (bool) – True if LVS passed.

  • log_file (str) – the log file name.

class bag.verification.icv.ICV(tmp_dir: str, lvs_run_dir: str, lvs_runset: str, rcx_run_dir: str, rcx_runset: str, source_added_file: str = '$DK/Calibre/lvs/source.added', rcx_mode: str = 'pex', **kwargs)[source]

Bases: bag.verification.virtuoso.VirtuosoChecker

A subclass of VirtuosoChecker that uses ICV for verification.

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

  • lvs_run_dir (str) – the LVS run directory.

  • lvs_runset (str) – the LVS runset filename.

  • rcx_run_dir (str) – the RCX run directory.

  • rcx_runset (str) – the RCX runset filename.

  • source_added_file (str) – the source.added file location. Environment variable is supported. Default value is ‘$DK/Calibre/lvs/source.added’.

  • rcx_mode (str) – the RC extraction mode. Defaults to ‘starrc’.

get_rcx_netlists(lib_name: str, cell_name: str) List[str][source]

Returns a list of generated extraction netlist file names.

Parameters:
  • lib_name (str) – library name.

  • cell_name (str) – cell_name

Returns:

netlists – a list of generated extraction netlist file names. The first index is the main netlist.

Return type:

List[str]

setup_lvs_flow(lib_name: str, cell_name: str, sch_view: str = 'schematic', lay_view: str = 'layout', gds: str = '', netlist='', params: Optional[Dict[str, Any]] = None) Sequence[bag.verification.base.FlowInfo][source]
setup_rcx_flow(lib_name: str, cell_name: str, sch_view: str = 'schematic', lay_view: str = 'layout', gds: str = '', netlist: str = '', params: Optional[Dict[str, Any]] = None) Sequence[bag.verification.base.FlowInfo][source]
classmethod _get_lay_sch_files(run_dir, netlist='')[source]
modify_starrc_cmd(run_dir: str, lib_name: str, cell_name: str, starrc_params: Dict[str, Any], sch_file: str) Tuple[str, str][source]

Modify the cmd file.

Parameters:
  • run_dir (str) – the run directory.

  • lib_name (str) – the library name.

  • cell_name (str) – the cell name.

  • starrc_params (Dict[str, Any]) – override StarRC parameters.

  • sch_file (str) – the schematic netlist

Returns:

  • starrc_cmd (str) – the new StarXtract cmd file.

  • output_name (str) – the extracted netlist file.