Provide unified interfaces to execute EDA tools via CLI from Python, agnostic to any specific configuration format/object.
- Provide a pythonic solution to construct command line calls for EDA tools based on pyTooling.CLIAbstraction
- Launch CLI tools and connect to STDIn, STDOUT, STDERR for realtime output post-processing.
- Support multiple native platforms: Linux, macOS, Windows.
- Support nested platforms like MSYS2 with MinGW32, MinGW64, URCT64, Clang64, ...
- Find CLI programs either in
PATH
or specify an exact installation location. - Generate CLI options in correct order.
- Generate correctly escaped CLI options.
- Aldec
- 🚧 Active-HDL
- 🚧 Riviera-PRO
- Altera
- 🚧 Quartus
- 🚫 ModelSim Altera (Student) Edition
- Cadence
- 🙋 need a list of tools
- IntelFPGA
- 🚧 Quartus
- 🚫 ModelSim Altera (Student) Edition
- Lattice
- 🚧 Diamond
- 🚫 Active-HDL Lattice Edition
- 🚫 ModelSim Lattice Edition
- MentorGraphics
- ✅ ModelSim DE/SE/PE
- 🚫 QuestaSim
- SiemensEDA
- 🚫 ModelSim DE/SE/PE
- 🚫 QuestaSim
- Synopsys
- 🙋 need a list of tools
- Xilinx
- 🚧 ISE
- 🚧 Vivado
- 🚫 Vivado-SDK
- 🚫 Vitis
- System Tools
- ✅ Git
- Open Source
- ✅ GHDL
- ✅ GTKWave
- Yosys
- 🙋 need a list of tools
Legend:
✅ → implemented and tested
🚧 → under test
🚫 → planned but not yet implemented ⇒ accepting PRs
🙋 → need help
from pyEDAA.CLITool.GHDL import GHDL
tool = GHDL()
tool[tool.CommandAnalyze] = True
tool[tool.FlagVHDLStandard] = "08"
tool[tool.FlagSynopsys] = True
tool[tool.FlagRelaxed] = True
tool[tool.FlagExplicit] = True
tool[tool.FlagMultiByteComments] = True
tool[tool.FlagLibrary] = "lib_Test"
print(f"Calling GHDL: {tool}")
# Calling GHDL: "ghdl" "analyze" "--std=08" "-fsynopsys" "-frelaxed" "-fexplicit" "--work=lib_Test" "--mb-comments"
This layer is used by:
- docs.siliconcompiler.com: Tools directory
- GHDL:
- Paebbels/pyIPCMI: pyIPCMI/Simulator/GHDLSimulator.py
- VUnit/vunit: vunit/sim_if/ghdl.py
- olofk/edalize: edalize/ghdl.py
- im-tomu/fomu-workshop: hdl/mixed/blink/Makefile
- PyFPGA/pyfpga: fpga/tool/openflow.py
- XedaHQ/xeda: xeda/flows/ghdl/init.py
- cocotb/cocotb: cocotb/runner.py (cocotb/cocotb#2634)
- stnolting/neorv32: tasks/examples.py (stnolting/neorv32#110)
- ghdl/ghdl: scripts/vendors/shared.sh
- OSVVM/OSVVM-Scripts: VendorScripts_GHDL.tcl
- Patrick Lehmann (Maintainer)
- Unai Martinez-Corral
- and more...
This Python package (source code) is licensed under Apache License 2.0.
The accompanying documentation is licensed under Creative Commons - Attribution 4.0 (CC-BY 4.0).
SPDX-License-Identifier: Apache-2.0