Applications and libraries/Hardware verification

From HaskellWiki
< Applications and libraries
Revision as of 11:41, 4 November 2014 by Heisenbug (talk | contribs) (add ClaSH)
Jump to navigation Jump to search

Applications

ForSyDe
The ForSyDe (Formal System Design) methodology is implemented as a Haskell-based DSL. ForSyDe's embedded compiler is capable of translating system models to synthesizable VHDL. Moreover it is able to interface with third party EDA tools such as Altera's Modelsim and Quartus II.
Atom
Atom is a hardware description language embedded in Haskell. Atom compiles conditional term rewriting systems to Verilog and VHDL for IC simulation, verification, and synthesis.
Circuit Simulator
David J. King and John O'Donnell's digital circuit simulator
Hawk---Specifying and Prototyping Microprocessors
The goal of the Hawk project is to develop a language for expressing highly abstracted specifications of modern microprocessor designs, to provide design teams with the ability to dynamically explore a wide range of design choices. The Hawk language is Haskell plus the Hawk library. The original link at http://www.cse.ogi.edu/PacSoft/projects/Hawk/ seems to be no longer live.
Chortl
Chortl is an extremely simple Haskell EDSL for hardware description. Chortl supports multiple backends. The current backend generates Verilog, and is intended for FPGA designs; near-future intent is to implement backends to generate C, and to provide graphical circuit diagrams. Chortl features include simplicity, a notation reasonably comprehensible by HW folks, the ability to define custom "components" such as adder trees in full Haskell, simplicity, and simplicity. Chortl is in a very early stage of development, so feedback and help are greatly appreciated.
ClaSH
Clash abstractly interprets (and optimizes) Haskell to netlists (and outputs them as VHDL code.
Lava, Lava for Xilinx
Lava is a hardware description language based upon Haskell.

This page contains a list of libraries and tools in a certain category. For a comprehensive list of such pages, see Applications and libraries.