Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Verification features #50

Open
wants to merge 4 commits into
base: develop
Choose a base branch
from

Conversation

boblinchuan
Copy link
Member

  • NVN (netlist-vs-netlist) implementation. Fixes for LVL
  • Caching for extracted static DUTs (using LVL and NVN). Implemented use_netlist
  • Run scripts for LVS, LVL, and NVN
  • Edge case if-cond for netlist copy using shutil

This PR is part of breaking up PR #34.

Comment here about renaming files has been addressed.

CDL conflict discussed here is un-addressed. I will open a separate issue for this.

@boblinchuan boblinchuan self-assigned this Dec 27, 2024
@boblinchuan
Copy link
Member Author

New issue created for the CDL export bug: link

Copy link
Member

@ayan-biswas ayan-biswas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. Suggested 1 major change and 1 minor optional change.


"""
print('running LVS...')
lvs_passed, lvs_log = self.run_lvs(lib_name, cell_name, run_rcx=True)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

run_rcx should be False in this lvs_cell() method, since this is for LVS only. extract_cell() should be used for run_rcx=True.

raise ValueError(f'LVL failed... log file: {lvl_log}')

def nvn_cell(self, cell_name: str, netlist: str, ref_file: str) -> None:
"""Run netlist-vs-netlist (NVN) on two netlist files.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Slight nitpicking on the method names: Ideally these should be the names and implementations:
LVL: should take layout as input and stream out gds for comparing
GVG: should take gds as input
SVS: should take schematic as input and stream out netlist for comparing
NVN: should take netlist as input

So the NVN method is correctly named, but the LVL should be GVG. Alternatively you could do something similar to lvs_cell() and lvs_cell_raw(). But it's ok to keep the names as-is for now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants