This repository contains two ASIC design examples implemented using OpenLane’s full RTL to GDS flow on the Sky130A PDK:
- fa – clocked 1-bit full adder
- ks_adder – multi-bit Kogge–Stone adder
Each design includes:
- Synthesizable Verilog RTL
- Validated OpenLane
config.tcl - Ready-to-run full-flow invocation
fa/src/fa.vconfig.tcl
ks_adder/src/ks_adder.vconfig.tcl
Both folders are complete and directly runnable with:
./flow.tcl -design <design_name> -tag run1 -overwriteTo add your design:
./flow.tcl -design <design_name> -init_design_config -add_to_designs -config_file config.tclPrerequisites
-
Linux (Ubuntu recommended)
-
Docker installed
-
OpenLane installed (or use the official Docker image)
-
Sky130A PDK installed (OpenLane downloads it automatically on first use)
cd /openlane
make mount- Run the full RTL to GDS flow:
./flow.tcl -design fa -tag run1 -overwrite-
Synthesis
-
Static Timing Analysis
-
Floorplanning
-
PDN generation
-
Placement
-
Clock Tree Synthesis
-
Routing
-
Magic DRC
-
LVS
-
GDS export
designs/fa/runs/run1/-
RTL (fa.v)
-
A synchronous 1-bit full adder with one pipeline stage.
-
Inputs: clk, a, b, cin
-
Outputs: sum, cout
-
CLOCK_PORT = clk, CLOCK_PERIOD = 10ns -
Die area set to 50 × 50 microns -
PDN auto-adjust disabled -
CTS and STA enabled -
Magic, LVS, and GDS export enabled
./flow.tcl -design ks_adder -tag run1 -overwritedesigns/ks_adder/runs/run1/- RTL (ks_adder.v)
- A multi-bit Kogge–Stone parallel prefix adder.
- Synchronous version with a real clock input.
-
CLOCK_PORT = clk, CLOCK_PERIOD = 10ns -
Die area set to 80 × 80 microns (adjust based on bit width) -
CTS and STA enabled -
PDN pitch fixed for reliability -
Magic, LVS, and GDS export enabled