awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
clash-lang avatar

clash-lang/clash-compiler

0
View on GitHub↗
1,599 stars·166 forks·Haskell·17 viewsclash-lang.org↗

Clash Compiler

Clash is a functional hardware compiler and hardware description language compiler that translates strongly typed functional programs written in Haskell into synthesizable VHDL, Verilog, and SystemVerilog code. It serves as a development tool allowing digital designers to write hardware descriptions in functional languages and compile them directly to FPGA targets and physical netlists.

The compilation infrastructure covers structural hardware compilation, including graph-based code normalization, functional language translation, and netlist generation. It features type-level clock domain safety checks to enforce validation rules across multiple asynchronous clock frequencies, phases, and domain boundaries. Additional capabilities include interactive hardware evaluation interpreters for verifying logic behavior without external test benches, and stream-based sequential modeling for representing digital logic and feedback loops.

The system also provides compiler configuration utilities for command-line options and typechecker plugins, along with debugging tools for rewrite history inspection and terminal-based replay of optimization steps.

Features

  • FPGA Hardware Design - Compiles strongly typed functional programs written in Haskell directly into target-ready VHDL, Verilog, and SystemVerilog code for physical FPGAs.
  • Hardware-Targeted Compilation - Translates high-level functional source code into synthesizable low-level description code for hardware targets.
  • Source Code Translations - Translates high-level functional programming language source code into standard hardware description languages.
  • FPGA - Translates high-level functional algorithms into VHDL, Verilog, or SystemVerilog for targeting physical FPGA devices.
  • Logic Design Simulations - Loads hardware descriptions directly into an interactive interpreter to verify component logic behavior without external test benches.
  • Digital Circuit Construction - Models digital logic using infinite streams of values flowing through components to enable natural descriptions of feedback loops.
  • Netlist Generation - Converts normalized core intermediate representations into structured structural descriptions of hardware parts, wires, and interconnections.
  • Parametric Hardware Generators - Creates flexible digital components using higher-order functions combined with type inference to parameterize hardware generation.
  • Clock Domain Conversion - Coordinates designs operating across different clock frequencies and phases by enforcing safety checks during clock domain crossings.
  • Functional Programming Compilers - Transforms purely functional code into synthesizable netlists and hardware description language modules for digital circuit design.
  • Hardware Description Languages - Translates high-level functional programs written in strongly typed languages into synthesizable VHDL, Verilog, and SystemVerilog code.
  • Type-Safe Clock Domains - Enforces compile-time validation rules and safety checks across multiple asynchronous clock frequencies and phases.
  • Graph Pattern Rewriters - Applies algebraic rewrite systems and transformation passes to reduce core expression graphs into standardized component forms.
  • Normalization - Applies rewrite systems and transformation passes to reduce core expressions into standardized normal forms.
  • Component-Based Sequential Processing - Represents digital logic and feedback loops using continuous streams of values flowing through discrete time-stepped components.
  • Interactive Read-Eval-Print Loops - Loads compiled hardware component descriptions into an interactive evaluation loop to verify logic behavior.
  • Higher Order Function Implementation - Transforms functional language constructs and type inference engines into synthesizable digital logic netlists.
  • Haskell Resources - Designs synthesizable digital hardware using strong functional programming concepts and rich type systems from Haskell.
  • Interactive Logic Testing - Verifies digital logic behavior directly inside an interactive interpreter environment without external test benches.

Star history

Star history chart for clash-lang/clash-compilerStar history chart for clash-lang/clash-compiler

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Clash Compiler

Similar open-source projects, ranked by how many features they share with Clash Compiler.
  • chipsalliance/chiselchipsalliance avatar

    chipsalliance/chisel

    4,691View on GitHub↗

    Chisel is a hardware construction language and description tool used to define digital circuits. It functions as a generator that converts high-level hardware descriptions into synthesizable Verilog code for use in ASIC and FPGA design. The project enables the creation of parameterizable hardware templates and reusable digital components. It leverages functional and object-oriented programming patterns to transform complex circuit representations into finalized hardware descriptions. The toolset covers the register-transfer level design workflow, allowing users to model digital circuits usin

    Scalachip-generatorchiselchisel3
    View on GitHub↗4,691
  • verilog-to-routing/vtr-verilog-to-routingverilog-to-routing avatar

    verilog-to-routing/vtr-verilog-to-routing

    1,241View on GitHub↗

    This project is an open-source computer-aided design toolchain designed for the synthesis, placement, and routing of hardware designs onto programmable logic architectures. It serves as a comprehensive framework for research and development, enabling the transformation of hardware description language designs into optimized netlists and physical implementation files. By providing a modular pipeline, the system facilitates the entire flow from initial logic synthesis to the generation of configuration data for programmable hardware devices. The toolchain distinguishes itself through its focus

    C++cadedafpga
    View on GitHub↗1,241
  • logisim-evolution/logisim-evolutionlogisim-evolution avatar

    logisim-evolution/logisim-evolution

    7,244View on GitHub↗

    Logisim Evolution is a digital logic simulator and schematic editor used for designing and verifying digital circuits. It functions as a tool for digital circuit design and real-time logic simulation, allowing users to create schematic representations of electronic hardware using gates and registers. The software distinguishes itself by providing hardware description language tools that allow for the definition of custom component behavior and the translation of visual schematics into synthesis-ready code for FPGA hardware deployment. It also serves as a bridge for physical hardware integrati

    Javacircuitcircuitsdigital-circuit
    View on GitHub↗7,244
  • geohot/fromthetransistorgeohot avatar

    geohot/fromthetransistor

    6,524View on GitHub↗

    This project consists of technical instructional guides and a structured computer science curriculum designed to teach the construction of a full computing stack from transistors up to a web browser. It provides a 12-week educational course that covers the fundamental domains of computer architecture and digital logic design. The curriculum is distinguished by its first-principles approach, guiding the learner through the engineering of CPUs, FPGAs, and PCBs using digital logic and hardware description languages. It includes specific syllabi for building a hardware design, a TCP/IP network st

    View on GitHub↗6,524
See all 30 alternatives to Clash Compiler→

Frequently asked questions

What does clash-lang/clash-compiler do?

Clash is a functional hardware compiler and hardware description language compiler that translates strongly typed functional programs written in Haskell into synthesizable VHDL, Verilog, and SystemVerilog code. It serves as a development tool allowing digital designers to write hardware descriptions in functional languages and compile them directly to FPGA targets and physical netlists.

What are the main features of clash-lang/clash-compiler?

The main features of clash-lang/clash-compiler are: FPGA Hardware Design, Hardware-Targeted Compilation, Source Code Translations, FPGA, Logic Design Simulations, Digital Circuit Construction, Netlist Generation, Parametric Hardware Generators.

What are some open-source alternatives to clash-lang/clash-compiler?

Open-source alternatives to clash-lang/clash-compiler include: chipsalliance/chisel — Chisel is a hardware construction language and description tool used to define digital circuits. It functions as a… verilog-to-routing/vtr-verilog-to-routing — This project is an open-source computer-aided design toolchain designed for the synthesis, placement, and routing of… logisim-evolution/logisim-evolution — Logisim Evolution is a digital logic simulator and schematic editor used for designing and verifying digital circuits.… geohot/fromthetransistor — This project consists of technical instructional guides and a structured computer science curriculum designed to teach… enjoy-digital/litex — LiteX is an FPGA SoC development suite and SoC builder framework used to programmatically design system-on-chips. It… howardhinnant/date — This project is a comprehensive date and time library designed for parsing, formatting, and calculating dates and…

Curated searches featuring Clash Compiler

Hand-picked collections where Clash Compiler appears.
  • Source compiler