# GF180 Technology Variants Demo Repo

GF180 technology development Shared Repo


## **GF180 Technology Variants Status**

|GF180 variant|DRC               |DRC testing       |LVS               |LVS testing       |Models-ngspice|Models-ngspice testing|
|-------------|------------------|------------------|------------------|------------------|--------------|----------------------|
|BCDLite      |[:heavy_check_mark:](https://github.com/mabrains/gf180_technology_dev/tree/main/BCDLite/klayout/drc)|[:heavy_check_mark:](https://github.com/mabrains/gf180_technology_dev/tree/main/BCDLite/klayout/drc/testing)|[:heavy_check_mark:](https://github.com/mabrains/gf180_technology_dev/tree/main/BCDLite/klayout/lvs)|[:heavy_check_mark:](https://github.com/mabrains/gf180_technology_dev/tree/main/BCDLite/klayout/lvs/testing)|:x:           |:x:                   |
|ULL      |[:heavy_check_mark:](https://github.com/mabrains/gf180_technology_dev/tree/main/ULL/klayout/drc)|[:heavy_check_mark:](https://github.com/mabrains/gf180_technology_dev/tree/main/ULL/klayout/drc/testing)|[:heavy_check_mark:](https://github.com/mabrains/gf180_technology_dev/tree/main/ULL/klayout/lvs)|[:heavy_check_mark:](https://github.com/mabrains/gf180_technology_dev/tree/main/ULL/klayout/lvs/testing)|:x:           |:x:                   |
|IC      |[:heavy_check_mark:](https://github.com/mabrains/gf180_technology_dev/tree/main/IC/klayout/drc)|[:heavy_check_mark:](https://github.com/mabrains/gf180_technology_dev/tree/main/IC/klayout/drc/testing)|[:heavy_check_mark:](https://github.com/mabrains/gf180_technology_dev/tree/main/IC/klayout/lvs)|[:heavy_check_mark:](https://github.com/mabrains/gf180_technology_dev/tree/main/IC/klayout/lvs/testing)|:x:           |:x:                   |

## Testing DRC and LVS for GF180 Variants

To run DRC regression for GF180 variants, you could run the following commands;

```bash
make env
make tes-DRC-<variant_name>-<table_name>
```

- Example 
```bash
make env
make tes-DRC-BCDLite-poly2
```

To run LVS regression for GF180 variants, you could run the following commands;

```bash
make env
make tes-LVS-<variant_name>-<table_name>
```

- Example 
```bash
make env
make tes-LVS-BCDLite-MOS
```

## Generating SVG for all unit tests

To generate all the svg files for the unit tests run the following commands;
```bash
make env
make gen-svg
```

This will run the [`./scripts/generate_svg.py`](./scripts/generate_svg.py) to
generate the SVG files.

# Development

All Python scripts should be `pep8` and `pylint` clean. This is checked by CI
and can be checked locally by doing the following;

 * `make pep8` or `make pycodestyle` - Run the `pycodestyle` script (new name
   for the pep8 script) on all Python files in the repository.

 * `make lint` - Run the `pylint` script on all Python files in the
   repository.

 * `make format` - Run the `yapf` Python autoformatter on all the Python files
   in the repository.
