# ghdl/ghdl

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/ghdl-ghdl).**

2,759 stars · 405 forks · VHDL · gpl-2.0

## Links

- GitHub: https://github.com/ghdl/ghdl
- awesome-repositories: https://awesome-repositories.com/repository/ghdl-ghdl.md

## Topics

`compiler` `gcc` `ghdl` `hacktoberfest` `hardware` `llvm` `simulator` `testbench` `vhdl`

## Description

GHDL is a compiler and simulator for VHDL hardware descriptions. It functions as a multi-pass analysis elaborator that resolves design hierarchies and dependencies to prepare hardware descriptions for simulation or synthesis.

The project transforms VHDL source code into executable binaries for high-speed digital design verification and serves as a synthesis tool that converts descriptions into structural netlists compatible with vendor or open-source flows. It also implements the Language Server Protocol to provide static analysis, autocomplete, and code navigation for VHDL files.

The toolset covers hardware verification and monitoring through code coverage collection, PSL verification reporting, and the export of signal waveforms for external visualization. It further supports hardware co-simulation by providing a C-based foreign function interface to connect simulations with external software libraries and verification frameworks.

## Tags

### Part of an Awesome List

- [Hardware Simulation](https://awesome-repositories.com/f/awesome-lists/devtools/hardware-simulation.md) — Provides a complete environment for analyzing and simulating digital hardware descriptions. ([source](https://ghdl.github.io/ghdl/development/building/index.html))
- [Co-Simulation Interfaces](https://awesome-repositories.com/f/awesome-lists/devtools/hardware-simulation/co-simulation-interfaces.md) — Provides a C-based foreign function interface to connect VHDL simulations with external software libraries.
- [Simulation and Modeling](https://awesome-repositories.com/f/awesome-lists/devtools/simulation-and-modeling.md) — VHDL simulator for hardware design.

### Hardware & IoT

- [FPGA Hardware Design](https://awesome-repositories.com/f/hardware-iot/fpga-hardware-design.md) — Transforms complex VHDL descriptions into synthesizable components for FPGA hardware design. ([source](https://cdn.jsdelivr.net/gh/ghdl/ghdl@master/README.md))
- [HDL Logic Synthesis](https://awesome-repositories.com/f/hardware-iot/hdl-logic-synthesis.md) — Synthesizes VHDL descriptions into gate-level netlists compatible with hardware implementation tools.
- [Logic Synthesis Tools](https://awesome-repositories.com/f/hardware-iot/logic-synthesis-tools.md) — Converts VHDL descriptions into structural netlists compatible with vendor or open-source synthesis flows.
- [Constrained Random Verification](https://awesome-repositories.com/f/hardware-iot/constrained-random-verification.md) — Provides integration with external libraries to perform constrained random verification on hardware designs. ([source](https://cdn.jsdelivr.net/gh/ghdl/ghdl@master/README.md))
- [Hardware Co-Simulation Interfaces](https://awesome-repositories.com/f/hardware-iot/integration-performance/hardware-interfacing-integration/hardware-integration/device-sensors/external-integrations/hardware-co-simulation-interfaces.md) — Enables co-simulation of VHDL designs with external languages for signal inspection and callback triggering. ([source](https://ghdl.github.io/ghdl-cosim))
- [Simulation Waveform Exports](https://awesome-repositories.com/f/hardware-iot/simulation-waveform-exports.md) — Exports signal activity and timing data into standard formats for visualization in external waveform viewers. ([source](https://ghdl.github.io/ghdl/using/Simulation.html))

### Programming Languages & Runtimes

- [Multi-Pass Compiler Pipelines](https://awesome-repositories.com/f/programming-languages-runtimes/multi-pass-compiler-pipelines.md) — Uses a multi-pass compiler architecture to resolve design hierarchies and dependencies for simulation.
- [Binary Compilers](https://awesome-repositories.com/f/programming-languages-runtimes/python-compilers/binary-compilers.md) — Converts VHDL source code into native binary executables to significantly increase simulation execution speed. ([source](https://ghdl.github.io/ghdl/development/building/index.html))
- [Simulation Binary Generation](https://awesome-repositories.com/f/programming-languages-runtimes/simulation-binary-generation.md) — Compiles high-level VHDL descriptions into standalone executable binaries for high-speed simulation.
- [Foreign Function Interfaces](https://awesome-repositories.com/f/programming-languages-runtimes/language-interoperability/foreign-function-interfaces.md) — Provides a C-based foreign function interface to enable interoperability between simulation kernels and external libraries.
- [Intermediate Representations](https://awesome-repositories.com/f/programming-languages-runtimes/machine-code-generation/intermediate-representations.md) — Implements backend-agnostic intermediate representations to support multiple target machine-code generators.

### Testing & Quality Assurance

- [Hardware Core Verifications](https://awesome-repositories.com/f/testing-quality-assurance/test-suite-execution/code-correctness-verifications/hardware-core-verifications.md) — Ensures VHDL designs meet specifications through the use of assertions and code coverage tools.
- [Code Coverage Analysis](https://awesome-repositories.com/f/testing-quality-assurance/code-coverage-analysis.md) — Tracks which parts of the hardware description are exercised during simulation to provide code coverage metrics. ([source](https://ghdl.github.io/ghdl/development/building/index.html))
- [Assertion Verification Reports](https://awesome-repositories.com/f/testing-quality-assurance/test-execution-reports/concurrent-reporters/assertion-verification-reports.md) — Produces detailed reports on passed, failed, or uncovered PSL assertions after simulation completion. ([source](https://ghdl.github.io/ghdl/using/Simulation.html))

### Development Tools & Productivity

- [Procedural Interfaces](https://awesome-repositories.com/f/development-tools-productivity/command-interfaces/simulation/procedural-interfaces.md) — Allows interaction with external applications during simulation through standard procedural interfaces. ([source](https://cdn.jsdelivr.net/gh/ghdl/ghdl@master/README.md))
- [Language Servers](https://awesome-repositories.com/f/development-tools-productivity/language-servers.md) — Implements a Language Server that provides IDE features like autocompletion and diagnostics for VHDL. ([source](https://cdn.jsdelivr.net/gh/ghdl/ghdl@master/README.md))
- [LSP-Based Code Analysis](https://awesome-repositories.com/f/development-tools-productivity/lsp-based-code-analysis.md) — Uses the Language Server Protocol to provide real-time static analysis, autocomplete, and code navigation.

### Operating Systems & Systems Programming

- [Cycle-Accurate Emulators](https://awesome-repositories.com/f/operating-systems-systems-programming/virtualization-emulation/hardware-emulators/cycle-accurate-emulators.md) — Implements delta-cycle event scheduling to provide precise, cycle-accurate simulation of concurrent hardware behavior.
