topics: [“OpenLane”, “SKY130”, “EDA”, “Semiconductor”, “VLSI”]
When working with OpenLane, the following questions naturally arise:
When reading articles about EDA flows,
it is not uncommon to find cases where conditions are tweaked after success is observed.
In this experiment, we therefore asked a stricter question:
If we pre-declare a minimal, self-written RTL design and fixed constraints,
can OpenLane superstable truly complete the flow from RTL to GDS without modification?
The experiment was intentionally simple.
Performance evaluation and optimization were
explicitly excluded from the scope of this verification.
The key concept here is pre-declaration.
This is not an official OpenLane term, but refers to:
Deciding the RTL, constraints, and success criteria
before seeing any results
This explicitly avoids:
The design is truly minimal.
| Item | Description |
|---|---|
| Function | Free-running counter |
| FSM | None |
| Clock | Single clock |
| Reset | None (simulation-only initialization) |
| Macros | Not used |
RTL file:
rtl/spm_min_counter.v
| Item | Value |
|---|---|
| Clock period | 10 ns (100 MHz) |
| Core utilization | 30% |
| Aspect ratio | 1.0 |
Configuration file:
openlane/config.tcl
spm_min_counter/
├─ README.md
├─ rtl/
├─ sim/
│ ├─ tb_spm_min_counter.v
│ ├─ run.sh
│ └─ wave/
├─ openlane/
├─ runs/
├─ results/
└─ run_log/
This verification confirms that OpenLane superstable: