EDA tool handoffs: inputs, outputs and versions

Comparison Last checked 24 October 2026

Use this table to identify the documented artifacts a tool accepts and produces before designing a handoff between stages. Matching format names are a starting point, not evidence that two selected versions exchange your design correctly. Preserve the producing command, receiving command and input identity when you test the proposed connection.

Follow an artifact through the proposed flow

A simulation result, a synthesized netlist, a placed design and an analog waveform serve different purposes. Begin with the output needed by the next engineering step, then inspect the producer’s documented output and the consumer’s documented input. The table includes twenty open-source tools across those stages without suggesting that they form one tested end-to-end flow.

Each row records a version identifier or pinned source revision, a licence reference and dated documentation. A repository commit identifies source bytes; it is not necessarily a packaged release or the binary installed on a workstation. When reproducing a tool run, also capture the executable’s reported version and the build or distribution information needed to identify it.

ToolStageInputsOutputsLicence scopeVersion / commit
Yosys1RTL synthesisVerilog and synthesizable SystemVerilog subsetSynthesized Verilog netlist in documented exampleISC core; ABC and libraries have separate licences5053d0e266d9
Verilator2RTL simulation and lintVerilog/SystemVerilogC++/header models, SystemC and JSONLGPL-3.0-only OR Artistic-2.0 project declaration1838b6ed035c
cocotb3Python-driven HDL verificationPython with Verilog/VHDL design sourcesNot verifiedBSD-3-Clause root licence259bc580bec8
SBY4Formal verification orchestrationHDL plus .sby configurationTask logs, status and counterexample trace artifactsISC; proof engines have separate licences79fc9eddca5e
Surelog5SystemVerilog front endSystemVerilogUHDM serialized design modelApache-2.0 root licence3d52c754a5bc
Icarus Verilog6HDL compilation and simulationVerilogNot verifiedGPLv2 text in COPYING; per-file exceptions not fully inventoried4818db887eb1
GHDL7VHDL simulation; experimental synthesisVHDLWaveforms; experimental VHDL-1993 synthesized netlistGPLv2 code; documentation separately licenseda977191e75d3
NVC8VHDL simulationVHDL; experimental VerilogFST waveform in documented exampleGPL-3.0-or-later core; specified VHDL libraries Apache-2.0ef6f527cad74
Verible9SystemVerilog parsing, lint and formattingSystemVerilogConcrete syntax tree JSON and formatted sourceApache-2.0 with file-specific third-party notices0f26265133bd
slang10SystemVerilog language front endSystemVerilogAST JSON and API modelMITeafcf0a60eeb
sv2v11HDL conversionSystemVerilogVerilog source to stdout or filesBSD-3-Clause493a88f93080
UHDM12Design representation and interchangeSystemVerilog object-model definitionsPersisted UHDM models and C++/VPI API accessApache-2.0daa95e1e433a
OpenROAD13ASIC physical designVerilog netlist plus physical/timing inputsPhysical-design handoff within ORFS; GDSII generation uses KLayoutBSD-3-Clause; PDKs and other tools separately licensedfb59e23b1dc4
OpenSTA14Static timing analysisGate-level Verilog and timing constraintsTiming reports through Tcl commandsGPL-3.0 open-source option; separate commercial licence existsb3e1b3989809
KLayout15Layout viewing/editing and checkingLayout databases; Ruby/Python scriptingGDSII/OASIS read/writeProject introduction: GPL-2.0-or-later; repository supplies GPLv3 text7eb9a25b4224
Magic16Layout editing, extraction and DRCNot verifiedGDS/CIF and hierarchical SPICE extraction documentedUniversity of California permissive notice in LICENSEbed8d4ff8433
Netgen17Netlist comparison / LVSNot verifiedNetlist conversions and comparison reportCopying contains GPLv1 text; complete current per-file scope unverifiede5a185dcfa16
nextpnr18FPGA place and routeNot verifiediCE40 ASC in documented example; outputs vary by architectureISC22c5adf423ec
FuseSoC19HDL package and build orchestrationHDL sources and package metadataBackend-specific simulation/build productsBSD-2-Clause2ed5d336467f
ngspice20Analog/mixed-signal circuit simulationSPICE netlists and device/model descriptionsSimulation data, voltage/current results and plotsModified BSD for most code, with exceptions explicitly retainedOfficial manual 47+ development edition, 2026-09-28

Original compilation data is CC BY 4.0. Tool code and documentation retain their own licences. The JSON, CSV and method retain the fuller fields and source joins behind the compact table.

Distinguish a language from a particular representation

“Verilog” in two rows does not establish that both tools accept the same constructs under the same options. A synthesizable source subset, an elaborated netlist and a testbench are different artifacts even when their filenames share an extension. Record the top, include paths, parameter selections and language mode used for the actual transfer.

The same applies to physical and analog data. A format label leaves questions about units, layer maps, library references and model dependencies unanswered. Treat those as explicit checks for the chosen handoff, not details automatically resolved by a shared suffix. This table keeps documented capability and execution evidence separate so a feature description cannot silently become a compatibility result.

Test one boundary before assembling a larger chain

Start with an original minimal design whose expected outcome is clear. Save the producer’s output, warnings and return code, then run the receiver with a declared configuration. Check what was retained, transformed or rejected. A process completing successfully is useful evidence, but the next check must address the design property you intended to transfer.

For example, preserving a port name is a different observation from preserving a timing constraint or a reset assumption. Choose the checks that matter at that boundary and name them in the result. If a conversion deliberately changes a representation, record the rule and inspect its result rather than requiring byte identity where a transformation is expected.

Keep documentation and measurements dated separately

The documentation audit date describes when these source statements were checked. It does not mean every tool was installed or run on that date. The HDL simulator observations are a separate executed dataset with their own versions, fixture bytes, options and literal outputs.

Use the reproducible handoff guide to record selected inputs and detect changes in a small original package. For a larger flow, keep the input inventory, stage-specific configuration and output checks together. When a tool changes, rerun the affected boundary checks instead of assuming that an unchanged format label preserves the earlier result.

Use the table viewer to search the same records.

Not covered on this page

Sources

  1. Yosys: inspected source. ↩

  2. Verilator: inspected source. ↩

  3. cocotb: inspected source. ↩

  4. SBY: inspected source. ↩

  5. Surelog: inspected source. ↩

  6. Icarus Verilog: inspected source. ↩

  7. GHDL: inspected source. ↩

  8. NVC: inspected source. ↩

  9. Verible: inspected source. ↩

  10. slang: inspected source. ↩

  11. sv2v: inspected source. ↩

  12. UHDM: inspected source. ↩

  13. OpenROAD: inspected source. ↩

  14. OpenSTA: inspected source. ↩

  15. KLayout: inspected source. ↩

  16. Magic: inspected source. ↩

  17. Netgen: inspected source. ↩

  18. nextpnr: inspected source. ↩

  19. FuseSoC: inspected source. ↩

  20. ngspice: inspected source. ↩

Code on this page is original and MIT licensed.

How we test: methodology. Found a mistake? Corrections.