# BAG (BAG AMS Generator) Primitives Library for [SKY130](https://github.com/google/skywater-pdk)

This repository contains the required primitives to use the BAG3 framework with
the SkyWater proprietary S8 130nm PDK. You can get access to this PDK through
signing an NDA and legal agreement with
[SkyWater Technologies](https://www.skywatertechnology.com/).

This repository also contains a **work in progress** to make these primitives
and the BAG3 framework compatible with
[the Google skywater-pdk, a fully open source, manufacturable PDK for SkyWater's 130nm (SKY13) process node](https://github.com/google/skywater-pdk).

When combined with appropriate generator code, the primitives enables the
creation of analog integrated circuits that are manufacturable at
[SkyWater Technologies](https://www.skywatertechnology.com/) commercially or
through programs like
[Google's no-cost MPW shuttle program for open source designs, done in collaboration with efabless](https://efabless.com/open_shuttle_program).

## What is BAG?

[BAG AMS Generator (BAG)](https://github.com/ucb-art/bag) is the 3rd generation
of the Berkeley Analog Generator framework (see also
[BAG v2 framework](https://github.com/ucb-art/bag)).

## License

To enable wide compatibility with the existing BAG ecosystem, this repository
is dual-licensed. It is available to you under your choice of the
[the Apache 2.0 license](LICENSE) or a [3 clause BSD style](LICENSE.alternative).

SPDX-License-Identifier: BSD-3-Clause OR Apache 2.0
