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.