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:
- π§ pyEDAA.Workflow
- π§ pyEDAA.Launcher
- π§ Open Source Verification Bundle (OSVB)
- 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