clash-lib-1.8.1: Clash: a functional hardware description language - As a library
Clash is a functional hardware description language that borrows both its syntax and semantics from the functional programming language Haskell. The Clash compiler transforms these high-level descriptions to low-level synthesizable VHDL, Verilog, or SystemVerilog.
Features of Clash:
- Strongly typed, but with a very high degree of type inference, enabling both safe and fast prototyping using concise descriptions.
- Interactive REPL: load your designs in an interpreter and easily test all your component without needing to setup a test bench.
- Higher-order functions, with type inference, result in designs that are fully parametric by default.
- Synchronous sequential circuit design based on streams of values, called
Signal
s, lead to natural descriptions of feedback loops. - Support for multiple clock domains, with type safe clock domain crossing.
This package provides:
- The CoreHW internal language: SystemF + Letrec + Case-decomposition
- The normalisation process that brings CoreHW in a normal form that can be converted to a netlist
- Blackbox/Primitive Handling
Front-ends (for: parsing, typecheck, etc.) are provided by separate packages:
Prelude library: https://hackage.haskell.org/package/clash-prelude
Modules
clash-lib-1.8.1
- Clash
- Annotations
- BitRepresentation
- Clash.Backend
- Core
- Clash.Core.DataCon
- Clash.Core.EqSolver
- Evaluator
- Clash.Core.FreeVars
- Clash.Core.HasFreeVars
- Clash.Core.HasType
- Clash.Core.Literal
- Clash.Core.Name
- Clash.Core.PartialEval
- Clash.Core.Pretty
- Clash.Core.Subst
- Clash.Core.Term
- Clash.Core.TermInfo
- Clash.Core.TermLiteral
- Clash.Core.TyCon
- Clash.Core.Type
- Clash.Core.TysPrim
- Clash.Core.Util
- Clash.Core.Var
- Clash.Core.VarEnv
- Data
- Clash.DataFiles
- Clash.Debug
- Clash.Driver
- Edalize
- Clash.Netlist
- Clash.Normalize
- Clash.Normalize.PrimitiveReductions
- Clash.Normalize.Primitives
- Clash.Normalize.Strategy
- Clash.Normalize.Transformations
- Clash.Normalize.Transformations.ANF
- Clash.Normalize.Transformations.Case
- Clash.Normalize.Transformations.Cast
- Clash.Normalize.Transformations.DEC
- Clash.Normalize.Transformations.EtaExpand
- Clash.Normalize.Transformations.Inline
- Clash.Normalize.Transformations.Letrec
- Clash.Normalize.Transformations.MultiPrim
- Clash.Normalize.Transformations.Reduce
- Clash.Normalize.Transformations.SeparateArgs
- Clash.Normalize.Transformations.Specialize
- Clash.Normalize.Transformations.XOptimize
- Clash.Normalize.Types
- Clash.Normalize.Util
- Clash.Pretty
- Primitives
- Annotations
- Clash.Primitives.DSL
- GHC
- Intel
- Clash.Primitives.Magic
- Sized
- Clash.Primitives.Types
- Clash.Primitives.Util
- Clash.Primitives.Verification
- Xilinx
- Rewrite
- Clash.Unique
- Clash.Util
- Verification
- Annotations
- Data
- Text
- Prettyprint
- Text
- GHC
- BasicTypes