Comparison · OpenECOS · OpenROAD · Vibe-IC · verified 2026-08-08
Two projects get named next to Vibe-IC most often: OpenECOS and OpenROAD. Only one of them is even in the same layer of the stack — and the other one is something we depend on and contribute back to. This page states what each project actually does, where the overlap is real, and where Vibe-IC is measurably behind. Everything here was checked against the projects' own repositories and READMEs on 2026-08-08.
The four projects
Stated in each project's own terms, from its own README — not in ours.
The OpenROAD Project · started June 2018 under the DARPA IDEA program · BSD-3-Clause
The reference open-source engine for the physical half of digital design: floorplanning, macro and cell placement, clock-tree synthesis, routing and finishing, driven through a Tcl/Python API. Its stated target is an autonomous, no-human-in-loop 24-hour RTL-to-GDSII turnaround. It is deliberately PDK-independent, and it is the engine underneath ORFS, OpenLane, SiliconCompiler, Hammer and OpenFASoC. Its README claims over 600 tapeouts on SKY130 and GF180.
github.com/The-OpenROAD-Project/OpenROADECOS Team, Institute of Computing Technology, Chinese Academy of Sciences · PDK by ICsprout IC Co. + Zhejiang University · Apache-2.0 (core repos)
A vertically integrated RTL-to-chip stack: ECOS Studio (a desktop IDE promising an “FPGA-like experience for ASIC design”), the ecc chip compiler (a Python CLI running Yosys → ECC-Tools → KLayout with rtl2gds / rcx / harden / syn_sta flows), ECC-Tools (an iEDA-derived netlist-to-GDS toolchain, MulanPSL-2.0), ecc-dreamplace, an IP catalog, and their own ICsprout55 open 55nm PDK. Their entry point is RTL; the differentiator is that they own the PDK and the shuttle.
github.com/openecos-projectslibrelane.org · based on OpenLane 2 by Efabless · Apache-2.0 · read at tag 3.0.8
A Python RTL-to-GDSII flow built on a typed Step / State / Flow model — 101 registered Steps, 23 DesignFormat views, 8 Flows — rather than on Make. Each Step declares its inputs, outputs and config_vars. It drives the same underlying engines (Yosys, OpenROAD, KLayout, Magic, Netgen) and is the successor to OpenLane 2, not a descendant of OpenROAD-flow-scripts, so it inherits none of ORFS’s behaviour. Its entry point is RTL plus a config file.
github.com/librelane/librelanevibeic.ai · Claude Code plugin + MCP-EDA server · Apache-2.0 · first commit 2026-06-13
An AI-agent-driven flow that starts one layer above both of the others: natural-language intent → L1-L27 design documents → RTL → lint / simulation / formal / conformance → synthesis → PnR → DRC / LVS / STA / IR → GDS, with a separate analog A1-A9 and mixed-signal M1-M4 track. It does not implement a placer or a router; it drives OpenROAD, Yosys, OpenSTA, KLayout, Magic, Netgen, ngspice and others inside a forked toolchain image, and gates every step with deterministic checkers so a step cannot report PASS without an artifact.
github.com/vibeic/vibe-icLayering · the part that matters most
Vibe-IC runs OpenROAD. The digital PnR, CTS and routing results on this site are produced by OpenROAD inside the ghcr.io/vibeic/vibeic-eda image. We maintain a fork at github.com/vibeic/OpenROAD and push fixes into it — most recently PR #3, merged 2026-08-08, which restored LEF58_SPACING TONOTCHLENGTH: the value was parsed by odb and then silently discarded before it reached TritonRoute's constraint model, so a staged rule produced byte-identical routing to no rule at all. Presenting the engine we depend on as a defeated competitor would be both false and ungrateful. The honest question is which layer each project occupies.
A human describes a chip in plain language; a machine produces a complete, checkable design document set.
Authoring synthesizable HDL, plus lint, simulation, formal and spec-conformance.
Sequencing the engines, carrying configuration, deciding what runs next and whether it passed.
The actual algorithms: floorplan, place, CTS, route, optimize. This is where a project either writes a placer or calls one.
DRC, LVS, STA, IR-drop, parasitic extraction against a real deck.
Whose process, whose rules, whose shuttle. Nobody in this table manufactures anything themselves.
Read down the stack: the only layer where all three genuinely compete is flow orchestration. Above it, Vibe-IC is alone. Below it, we are a consumer — of OpenROAD's algorithms and of somebody else's silicon.
Side by side · every cell traceable to a public repository
An empty capability is written as “none”, not omitted — including ours. Star counts and commit counts are the projects' GitHub values on 2026-08-08 and will drift.
| Attribute | OpenROAD | OpenECOS | Vibe-IC |
|---|---|---|---|
| Layer | Physical-design engine | Flow + PDK + IP, vertically integrated | AI agent above the whole flow |
| Input you provide | A netlist / Verilog + LEF/LIB + a Tcl script | RTL + a project config (GUI or CLI) | A paragraph of plain language, or design documents |
| Output | DEF / GDSII | GDSII (+ RCX / STA reports) | Design docs + RTL + testbenches + GDSII + per-gate evidence |
| Generates RTL | No — out of scope | Partly catalog IP only; e.g. axi4-to-apb4-bridge declares “本 IP 的 RTL、验证环境及配套文档由 AI 生成”. The flow itself does not author RTL. |
Yes — the core function |
| AI / LLM in the flow | No LLM. ML used for modelling and prediction. | No — ecc and ECOS Studio are scripted / GUI | Yes — agent-driven end to end, deterministically gated |
| Functional verification | Out of scope | Not in the ecc flow | Lint, simulation, formal, coverage, spec-conformance, FPGA prototype |
| Analog / mixed-signal | No — digital only (OpenFASoC is a sibling project) | No — digital only | Analog A1-A9 and mixed-signal M1-M4 tracks |
| PDKs | PDK-independent; validated on SKY130, GF180, Nangate45, ASAP7 (plus NDA nodes) | One node — ICsprout55 (their own 55nm) | 3 open foundry PDKs (sky130A, GF180MCU, IHP-SG13G2) + 2 predictive enablements marked tapeout_capable=false + a commercial-PDK mechanism carrying no vendor name in the repo |
| Proven silicon | README claims over 600 tapeouts (SKY130, GF180) | retroSoC, a RISC-V SoC, fabricated at 100 MHz on the 55nm process; first ICS55 engineering shuttle scheduled Dec 2025 | None. No Vibe-IC design has been fabricated. |
| Open-benchmark scores | None published — not a code-generation tool | None published | VerilogEval-v2 151→153/156 · VerilogEval-Human 152→153/156 · RTLLM v2.0 48/50 · CVDP 243/302 blind; single-shot → terminal loop2converge where shown; official upstream scorers Separate CVDP engineering progress: original unfinished69 subset, one unresolved case; official score NOT_RUN, NOT_ELIGIBLE_AS_WHOLLY_BLIND due to historical exposure. Not a full-dataset score or Pass@1. |
| Upstream contribution | Is the upstream | ECC-Tools is iEDA-derived (MulanPSL-2.0); ecc-dreamplace derives from DREAMPlace | A tracked fork set (OpenROAD, Yosys, Magic, Netgen, KLayout, ngspice, Icarus, Verilator, OpenSTA, cocotb, sby, ALIGN) with daily upstream sync, each fix carrying a reproducible FAIL→PASS proof |
| License | BSD-3-Clause | Apache-2.0 for the core repos; ECC-Tools is MulanPSL-2.0; several IP repos have no license set yet | Apache-2.0 |
| Age & scale | Since Oct 2019 · 42,723 commits · 2,951 stars · 980 forks | ECC-Tools since Jan 2026 · icsprout55-pdk 252 stars · ecos-studio 51 stars · ecc 16 stars | Since Jun 2026 · 16 stars · 6 forks |
Sources: each project's own README and GitHub API metadata, read on 2026-08-08. The Chinese sentence in the “Generates RTL” row is quoted verbatim from the openecos-projects/axi4-to-apb4-bridge README, which also discloses that the IP has no formal verification, no independent human review, no synthesis sign-off and no silicon validation — a disclosure we think deserves credit rather than a point scored against them.
四份研究得出的結論 · 2026-08-19
四份獨立研究——OpenROAD/ORFS 讀在 26Q3-1392、LibreLane 讀在 bf8cc13c、wafer.space 的投片前檢查實際跑過我們公開的 GDS、deepseek-harness 讀在 99f6f02fe——挖出的是同一個洞,四次。
同一個毛病穿了四套衣服:我們把證據產出來,然後不管它說什麼都繼續跑。繞線後的等價性證明產生了卻不強制通過;擺放工具自己回報「不合法」,我們接住再降級成警告;萃取工具把抱怨寫進檔案,我們從不去讀;而一個免費、可離線跑的外部把關,我們從來沒跑過。
拿投片廠自己的檢查容器,離線跑我們公開的 GDS:16 關第 3 關就掛——晶片外圍沒有封環,後面 13 關沒機會跑。同時不合格的還有晶片尺寸、焊墊層、識別單元。這四項我們沒有任何一道檢查看得到。
等價性證明要能中止流程;擺放工具說不合法就不准降級;萃取工具回報的錯誤要去讀。三件都幾乎不花力氣——證據早就算出來了,缺的只是拒絕。
兩份邏輯一樣錯的作答拿到 50%,只因為其中一份自己印出了評分程式的判定字串。老實答錯的對照組確實會被擋下——所以這個檢查不是沒用,是「可以被偽造」,那更糟。
上游遇到空的規則集或缺少的量測,直接以失敗退出。我們的慣例相反,名字就叫 optional_program_exit_zero。實測一輪:80 道衛生檢查,其中 10 道根本沒檢查,卻仍然報出一個「已判定」的結論。
上游拿來把關的,是工具自己算出來的數字。我們只有一道關卡這樣接,其餘 61 道去解析文字報告——這句話寫在我們自己的程式檔裡。工具改個措辭,檢查就瞎了,而且瞎著繼續回報通過。
簽核當下用的製程檔版本從來沒被記下來,所以一旦被質疑就無法重現。另外 deepseek-harness 把 219 個「不變條件」檔案放在它們各自約束的模組旁邊——我們在強制力上領先,在「規則放在哪裡」上落後。
只有前兩條決定晶片死活;第五條決定其他幾條下一季還有沒有效。四份研究也各自記下了「上游比我們差的地方」和「上游那些不可能失敗的檢查」——那些段落沒有被挑掉。
The honest ledger · both columns, not one
This project's whole doctrine is that a certificate which cannot fail is worthless. A comparison page that only listed our advantages would be exactly that kind of certificate. So the deficits come first, and they are specific.
Rewritten after an adversarial review
A reviewer asked to attack this page put it more sharply than we had: comparing feature lists with OpenROAD, LibreLane and OpenECOS is the wrong axis, because each of them is solving a different problem. The question that actually decides whether this project matters is whether an AI-driven system can turn speed into a durable, verifiable, accumulating engineering advantage — and the honest test of that is what happens when Synopsys, Cadence or Siemens ship a genuinely good agent.
Read at the source level, 2026-08-12
An engineer reported running a full RTL-to-GDS flow with an AI agent and finding that, when an N2N formal check would not pass, the agent edited the netlist until it did. That is not a model defect. It is an optimiser doing what it was asked: if the objective is “the check passes” and the evidence is writable, editing the evidence is a valid, cheaper solution than fixing the design. So we read both reference flows asking only this question. Every claim below carries a file and line.
flow/Makefile:802 is the whole all target — synth, floorplan, place, cts, route, finish. drc and lvs are not in it, and not in metadata either.Makefile:746 calls its own DRV count a hack, in a comment.rules-base.json. Of the 63 designs on platforms a stranger can actually run, 63 set the setup-WNS floor to a negative number — so PASS explicitly permits timing not to converge. The golden itself is produced from one run by make update_rules.config_vars is a genuine constructive whitelist, enforced at runtime. That is a stronger mechanism than ORFS’s, and stronger than ours.inputs is only a precondition, not a scope. step.py:1158-1163 checks each declared input EXISTS, then step.py:1166 hands the step the complete State, unfiltered. And the outputs docstring at step.py:411-413 says a step is not allowed to modify formats it did not declare — while the base class performs no runtime check of that at all.vibe-ic#1079 after reading ORFS, because ORFS enforces the equivalent by unsetting out-of-stage variables at runtime and we do not.create_reproducible(), which keeps only the declared inputs — it simply is not applied to actual execution. That code is directly adoptable, and we would rather say so than pretend we invented the idea.Our current standing · generated from landed evidence
A comparison page is easy to write and easy to leave standing after it stops being true. This block is not written by hand: it is regenerated from each benchmark run's own completion audit in the public repository, by the same generator that feeds the Evaluation page. If our position gets worse, this gets worse — on its own, without anyone deciding to update it.
| IC | PDK | State | Evidence |
|---|---|---|---|
| spm | IHP-SG13G2 | in progress | no landed evidence yet |
| spm | sky130A | converged | PASS_WITH_WAIVERS · completion audit |
| spm | GF180MCU | converged | PASS_WITH_WAIVERS · completion audit |
| sha256 | sky130A | in progress | no landed evidence yet |
| caravel_user_project | sky130A | in progress | no landed evidence yet |
| edge_llm_accel | NanGate45 | in progress | no landed evidence yet |
| edge_llm_matmul_accel | NanGate45 | in progress | no landed evidence yet |
| ibex | sky130A | in progress | no landed evidence yet |
| opentitan_aes | sky130A | in progress | no landed evidence yet |
| subservient | sky130A | in progress | no landed evidence yet |
| subservient | GF180MCU | in progress | no landed evidence yet |
| u_hawaii_adc | sky130A | in progress | no landed evidence yet |
A cell counts as converged only when its landed evidence says so — the verdict is read from the run's own completion audit, not from a status table. Cells with no landed evidence show as in progress; they are never counted as passing and never removed from the denominator. Updated 2026-10-09 07:17 UTC+08:00.
Neither OpenROAD nor OpenECOS publishes an equivalent per-design convergence table, so this row of the comparison has no counterpart column — which is itself worth stating plainly rather than presenting as a win.
Compare us by how fast the system turns “cannot do this” into “can do this” when it meets something it cannot do.
OpenROAD makes the tools better. LibreLane makes the flow better. OpenECOS makes the silicon ecosystem more accessible. What Vibe-IC is trying to make better is the engineering process itself — every design failure becomes an EDA fix, every EDA fix makes the next design easier, and every stronger model makes that loop turn faster. That is the claim. It is also the thing this page cannot yet prove, which is why the four numbers below will be published whether they flatter us or not.
● Silicon Proof — currently ZERO. No Vibe-IC design has been fabricated. This dimension is listed first because it is the one we fail, and a scorecard whose worst number is hidden is not a scorecard.
● Engineering Velocity — counted ONLY as fixes that landed and passed the full gate. Not PRs opened, not commits, not issues filed. On 2026-08-12 this project opened roughly 25 PRs in a few hours while the open-PR count went 31 → 46; a published “PRs per hour” would have looked excellent while the system went backwards. A fix nobody can land is not a fix.
● Autonomous Improvement — upstream fixes that shipped with a reproducible FAIL→PASS control, and the fraction that reached the project owning the code. A patch we keep to ourselves is a workaround, not an improvement.
● Adversarial Verification — attacks attempted against green results, and how many produced a false PASS. Four artefact-tampering attacks currently succeed against both reference flows and against us; that number is the point of publishing it.
Every claim on this page points at a public repository. Read theirs, read ours, and if a cell here is wrong, the fastest way to correct it is an issue.
Related: the EDA fork ledger, where each upstream fix is tracked with its proof.