An abstraction layer of EDA CLI tools.
Project description
Provide unified interfaces to execute EDA tools via CLI from Python, agnostic to any specific configuration format/object.
Main Goals
- 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.
Features
- Support multiple native platforms: Linux, macOS, Windows.
- Support nested platforms like MSYS2 with MinGW32, MinGW64, URCT64, Clang64, ...
- Find CLI programs either in
PATHor specify an exact installation location. - Generate CLI options in correct order.
- Generate correctly escaped CLI options.
Supported Tools
- 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
Examples
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"
Consumers
This layer is used by:
References
- 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
Contributors
- Patrick Lehmann (Maintainer)
- Unai Martinez-Corral
- and more...
License
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyedaa_clitool-0.4.1.tar.gz.
File metadata
- Download URL: pyedaa_clitool-0.4.1.tar.gz
- Upload date:
- Size: 27.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1e760ce297e5181cf35539643528727610afbf5faf59d33fe1a5db43db887616
|
|
| MD5 |
d9a899c498ae38698cb15cdee5581a41
|
|
| BLAKE2b-256 |
a38e82a32fb8c4e3368eed034a65c366f41abb5a88fc0a0138f48974d0baa164
|
File details
Details for the file pyedaa_clitool-0.4.1-py3-none-any.whl.
File metadata
- Download URL: pyedaa_clitool-0.4.1-py3-none-any.whl
- Upload date:
- Size: 37.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f8b9ff3b163af851c40ac86c1243dcdfaafe1f4b7c7d2af4184d752f54e7feba
|
|
| MD5 |
6bbd3008acf2e9854e5f5283a7276949
|
|
| BLAKE2b-256 |
f65f2daf7b8dd3f74619e34311aa11c6b3aaba5affc4abddd6f55775d17899be
|