5.5. LVS Testing

Tip

  • This section provides instructions for testing SG13G2-LVS using KLayout.

  • For detailed steps and resources, please refer to Testing directory.

5.5.1. Folder Structure

📁 testing
┣ 📜README.md                 This file documents the contents of the testing directory.
┣ 📜Makefile                  Used for testing the SG13G2 LVS rule deck.
┣ 📜run_regression.py         Main regression script for testing SG13G2 devices.
┣ 📜run_regression_cells.py   Main regression script for testing SG13G2 cells.
┣ 📁testcases                 Contains all test cases used for LVS testing.

5.5.2. Devices Status

The following table explains the list of available SG13G2 devices we have supported in our LVS runset.

Device

Tested

MOSFET

sg13_lv_nmos

sg13_hv_nmos

sg13_lv_pmos

sg13_hv_pmos

RF-MOSFET

rfnmos

rfnmosHV

rfpmos

rfpmosHV

BJTs

npn13G2

npn13G2L

npn13G2V

pnpMPA

Diodes

dantenna

dpantenna

schottky_nbl1

Resistors

rsil

rppd

rhigh

lvsres

Capacitors

SVaricap

cap_cmim

rfcmim

ESD

diodevdd_4kv

diodevdd_2kv

diodevss_4kv

diodevss_2kv

idiodevdd_4kv

idiodevdd_2kv

idiodevss_4kv

idiodevss_2kv

nmoscl_2

nmoscl_4

Inductors

inductor

inductor3

Taps

ptap1

ntap1

5.5.3. Devices Regression Usage

run_regression.py (--help| -h)
run_regression.py [--device=<device>] [--run_dir=<run_dir_path>] [--mp=<num>]

Example:

python3 run_regression.py --device_name=MOS --run_dir=test_mos

Options

`--help -h`                  Print this help message.
`--device=<device>`          Select device category you want to run regression on.
`--run_dir=<run_dir_path>`   Run directory to save all the results [default: pwd]
`--mp=<num>`                 The number of threads used in run.

Another approach for testing SG13G2 devices, you could make a full test for SG13G2 LVS rule deck, by executing the following command in current testing directory:

make test-LVS-main

5.5.4. Cells Regression Usage

run_regression_cells.py (--help| -h)
run_regression_cells.py [--cell=<cell>] [--run_dir=<run_dir_path>] [--mp=<num>]

Example:

python3 run_regression_cells.py --cell=sg13g2_inv_1 --run_dir=test_inv

Options

`--help -h`                  Print this help message.
`--cell=<cell>`              Specify the cell to run; all cells run if not specified.
`--run_dir=<run_dir_path>`   Run directory to save all the results [default: pwd]
`--mp=<num>`                 The number of threads used in run.

Another approach for testing SG13G2 cells, you could make a full test for SG13G2 cells, by executing the following command in current testing directory:

make test-LVS-cells

5.5.4.1. LVS Outputs

You could find the regression run results at your run directory if you previously specified it through –run_name=<run_name>. Default path of run directory is unit_tests_<date>_<time> in the current testing directory.

Folder Structure of regression run results

📁 unit_tests_<date>_<time>
┣ 📜 unit_tests_<date>_<time>.log
┣ 📜 all_test_cases_results.csv
┗ 📜 rule_deck_rules.csv
┗ 📁 <device_name>
    ┣ 📜 <device_name>_lvs.log
    ┣ 📜 <device_name>.gds
    ┣ 📜 <device_name>.cdl
    ┣ 📜 <device_name>_extracted.cir
    ┣ 📜 <device_name>.lvsdb

The outcome includes a database file for each device (<device_name>.lvsdb) containing LVS extractions and comparison results. You can view it by opening your gds file with: klayout <device_name>.gds -mn <device_name>.lvsdb. Alternatively, you can visualize it on your GDS file using the netlist browser option in the tools menu of the KLayout GUI.