The Clash compiler

Clash is an open-source hardware description language (HDL) that closely mirrors the syntax and semantics of the Haskell programming language. Clash is mainly developed at QBayLogic, but is freely available to anyone. Clash allows developers to write high level synchronous sequential descriptions. Clash can turn these descriptions into low-level Verilog or VHDL, thus achieving high interoperability with existing HDL tools.

Looking to develop with Clash? Visit clash-lang.org or view the project on GitHub to get started!

Advantages over other hardware languages

Clash is fully open-source software and published on GitHub under BSD-2. This means you can look into its internals and freely modify it for your organization's needs.

Clash designs compile extremely quickly, as witnessed by Myrtle.ai. Their deep neural network accelerator, MAU, compiles in less than 15 seconds from a cold start. Once Clash is warmed up, design changes can be recompiled in less than a second. A (re)compiled design can be simulated and interactively inspected.

It offers a fully-featured REPL. Design parts can be inspected, simulated, and debugged interactively – without having to write separate test files. Nowadays, this feature can be found in many software programming languages, most notably Python, but it remains unavailable for many HDLs.

Inherited from the Haskell programming language, Clash offers a modern way of tracking dependencies and publishing reusable components. It can reuse many of the packages already available on hackage.haskell.org, thanks to its compatibility with existing Haskell software libraries and ecosystem.

Clash uses a modern, static type system. This helps to catch errors at a very early stage of a design pipeline. For example, Clash designers don’t have to worry about accidentally mixing up signals from different clock domains. In general, it allows designers to develop reusable components that communicate their intent clearly and statically prevent illegal states from ever occurring.

Clash is built on strong foundations and contains very few hard coded constructs. This allows developers to extend Clash to their heart’s desire. Designers can write their own domain specific languages, frameworks, and abstractions – and they can still expect it to compile quickly.

An FPGA design house delivering "right the first time" solutions.

Design and realisation by:
Comyoo | creatieve studio

Address


Institutenweg 25A
7521 PH Enschede
+31 (0)85 8000 380
info@qbaylogic.com


CoC: 66440483
VAT: NL856554558B01