| # Globalfoundries 180nm BCDLite LVS Testing |
| |
| Explains how to test GF180nm LVS rule decks. |
| |
| ## Folder Structure |
| |
| ```text |
| π testing |
| β£ πREADME.md This file to document the regression. |
| β£ πMakefile To make a full test for GF180nm LVS rule deck. |
| β£ πrun_regression.py Main regression script used for LVS testing. |
| β£ πtestcases All testcases used in LVS regression. |
| ``` |
| |
| ## **Prerequisites** |
| You need the following set of tools installed to be able to run the regression: |
| - Python 3.6+ |
| - KLayout 0.28.4+ |
| |
| We have tested this using the following setup: |
| - Python 3.9.12 |
| - KLayout 0.28.5 |
| |
| ## **Usage** |
| |
| ```bash |
| run_regression.py (--help| -h) |
| run_regression.py [--device_name=<device_name>] [--mp=<num>] [--run_name=<run_name>] |
| ``` |
| |
| Example: |
| |
| ```bash |
| python3 run_regression.py --device_name=MOS --run_name=mos_regression |
| ``` |
| |
| ### Options |
| |
| - `--help -h` Print this help message. |
| |
| - `--mp=<num>` The number of threads used in run. |
| |
| - `--run_name=<run_name>` Select your run name. |
| |
| - `--device_name=<device_name>` Target specific device. |
| |
| |
| To make a full test for GF180nm LVS rule deck, you could use the following command in testing directory: |
| |
| ```bash |
| make all |
| ``` |
| |
| ## **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 current directory. |
| |
| ### Folder Structure of regression run results |
| |
| ```text |
| π 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 result is a database file for each device (`<device_name>.lvsdb`) contains LVS extractions and comparison results. |
| You could view it on your file using: `klayout <device_name>.gds -mn <device_name>.lvsdb`, or you could view it on your gds file via marker browser option in tools menu using klayout GUI. |
| |
| You could also find the extracted netlist generated from your design at (`<device_name>.cir`) in your run directory. |