RTL Bench PRO

sky130 vs gf180 vs ihp: which PDK should you use?

RTL Bench supports three open-source process design kits. They cost the same — nothing — but they are optimised for different things. Run the same design against all three and you will get three different timing numbers. Here is why, and which one to pick.

What is a PDK?

A Process Design Kit is the bag of files a fab gives you so you can design for their process. It contains the transistor models, the standard cell library, the design rules, and — for timing analysis — the Liberty files that describe how fast each cell is.

STA needs the Liberty file. Every cell in it has a delay table indexed by input slew and output load. RTL Bench reads a compressed version of those tables and walks the critical path through your netlist.

The three PDKs side by side

studio — STA target selection
sky130 · SkyWater 130 nm TT · 1.8 V · 25 °C
gf180 · GlobalFoundries 180 nm MCU TT · 3.3 V · 25 °C
ihp · IHP SG13G2 130 nm BiCMOS TT · 1.2 V · 25 °C
Pick a target node before running STA — corners are fixed at TT / 25 °C, only Vdd and node change.
PDK Node Vdd Best for
sky130 SkyWater 130 nm 1.8 V General logic. Widest library, most documentation.
gf180 GlobalFoundries 180 nm MCU 3.3 V Mixed-signal, IO-heavy, higher voltage designs.
ihp IHP SG13G2 130 nm BiCMOS 1.2 V Low power, RF, and heterojunction bipolar transistors.

The three PDKs in detail

sky130 SkyWater · 130 nm · 1.8 V

The default. SkyWater released sky130 as the first fully open-source PDK in 2020, and it has become the de-facto target for open silicon. Every open-source EDA tool supports it, and there are more tutorials, examples, and tapeouts than any other open PDK.

  • Widest standard cell library — hundreds of cells including a full high-density set
  • Well-characterised Liberty files at TT, SS, and FF corners
  • Large community, active support
  • Multiple tapeouts through Google's Open MPW shuttles
Use this unless you have a reason not to.

gf180 GlobalFoundries · 180 nm MCU · 3.3 V

GlobalFoundries released gf180mcu in 2022 as a follow-up to sky130. It is a larger node — 180 nm instead of 130 nm — but runs at a higher supply voltage and includes analog and high-voltage devices that sky130 does not.

  • 3.3 V supply — useful for automotive, industrial, and IO-heavy designs
  • Includes analog blocks, ESD structures, and high-voltage devices
  • Good mix of digital and analog on the same die
  • Delays are longer than sky130 for the same logic, because the node is larger
Use this if you need higher voltage or mixed-signal blocks.

ihp IHP SG13G2 · 130 nm BiCMOS · 1.2 V

IHP Microelectronics (a German research institute) released SG13G2 as a 130 nm BiCMOS process. The "BiCMOS" part matters — it combines CMOS logic with high-performance heterojunction bipolar transistors on the same die, which is unusual for an open PDK.

  • 1.2 V core supply — lower power than sky130's 1.8 V
  • Bipolar transistors enable RF and high-frequency analog
  • Cells are faster than sky130 at the same node, because of the lower voltage and the BiCMOS design
  • Smaller library than sky130, but well-characterised
Use this for low power or RF designs.

Why the same design gives three different numbers

Cell delay is a function of three things: the process, the supply voltage, and the load. Change any of them and the timing changes. Here is the breakdown for the same 32-bit ALU against each PDK:

PDK Critical path (typical) Why
sky130 ~3.5 ns 130 nm at 1.8 V. Fast, well-balanced.
gf180 ~5.2 ns 180 nm at 3.3 V. Slower cells, but higher Vdd helps drive large loads.
ihp ~3.1 ns 130 nm at 1.2 V. Lower voltage but BiCMOS gives faster switches.

These numbers are illustrative — the exact figures depend on your design and the specific cells the synthesizer picks. What matters is the pattern: sky130 and IHP are close, gf180 is noticeably slower for pure digital logic but offers capabilities the others do not.

💡 Run the same design against all three in RTL Bench and compare the critical path. If the difference is small (under 20 %), your design is portable. If gf180 is 50 % slower, that is normal — it is an older, larger node.

Which one should you pick?

A short decision tree:

  1. Just exploring, learning, or running a first design? Pick sky130. It is the default for a reason.
  2. Building something with analog blocks, high-voltage IO, or an automotive / industrial target? Pick gf180.
  3. Optimising for power, or need RF / high-frequency analog? Pick ihp.
  4. Do not know yet? Pick sky130. If you later find out you need something else, the design is portable — the RTL does not change, only the target library.

Portability across PDKs

Your RTL is portable across all three PDKs. A counter written in Verilog is a counter regardless of which process it targets. What changes is:

  • The specific cells the synthesizer picks.
  • The critical path delay and slack.
  • Power consumption — 1.2 V draws less than 3.3 V for the same logic.
  • Physical area — a 180 nm cell is roughly twice as wide as a 130 nm cell.

RTL Bench does not model power or area, only timing. For PPA you need a full synthesis flow with the physical libraries.

⚠️ Do not mix cells from different PDKs in the same design. Yosys will happily map to whichever library you point it at, but the physical layout and the Liberty files are not interoperable. Pick one PDK per design.

Licenses and commercial use

All three PDKs are open source with permissive licenses:

PDK License Commercial use
sky130 Apache 2.0 Yes
gf180 Apache 2.0 Yes
ihp IHP Open Source License Yes, with attribution

Always check the specific license file for the PDK version you are using. Licenses change, and attribution requirements are easy to miss.

The bottom line

  • sky130 is the default. Use it unless you have a specific reason to pick something else.
  • gf180 is for mixed-signal and higher voltage. Slower for pure digital, but has capabilities the others do not.
  • ihp is for low power and RF. Fast, small, but with a smaller library.
  • The RTL is portable. Only the timing numbers change.

See also

Back to the hub

Try it in the workbench →