blob: 7b60d923689b874c62f93c8004e6762b09a34860 [file] [log] [blame] [view]
# 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.