clash-prelude-0.10.13: clash-prelude.cabal
Name: clash-prelude
Version: 0.10.13
Synopsis: CAES Language for Synchronous Hardware - Prelude library
Description:
CλaSH (pronounced ‘clash’) is a functional hardware description language that
borrows both its syntax and semantics from the functional programming language
Haskell. The CλaSH compiler transforms these high-level descriptions to
low-level synthesizable VHDL, Verilog, or SystemVerilog.
.
Features of CλaSH:
.
* Strongly typed (like VHDL), yet with a very high degree of type inference,
enabling both safe and fast prototying using consise descriptions (like
Verilog).
.
* 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:
.
* Prelude library containing datatypes and functions for circuit design
.
To use the library:
.
* Import "CLaSH.Prelude"
.
* Additionally import "CLaSH.Prelude.Explicit" if you want to design
explicitly clocked circuits in a multi-clock setting
.
A preliminary version of a tutorial can be found in "CLaSH.Tutorial", for a
general overview of the library you should however check out "CLaSH.Prelude".
Some circuit examples can be found in "CLaSH.Examples".
Homepage: http://www.clash-lang.org/
bug-reports: http://github.com/clash-lang/clash-prelude/issues
License: BSD2
License-file: LICENSE
Author: Christiaan Baaij
Maintainer: Christiaan Baaij <christiaan.baaij@gmail.com>
Copyright: Copyright © 2013-2016 University of Twente
Category: Hardware
Build-type: Simple
Extra-source-files: README.md
CHANGELOG.md
AUTHORS.md
extra-doc-files: doc/*.svg
Cabal-version: >=1.10
source-repository head
type: git
location: https://github.com/clash-lang/clash-prelude.git
flag doctests
description:
You can disable testing with doctests using `-f-doctests`.
default: True
manual: True
flag doclinks
description:
Create hyperlinks to non-dependent packages using `-fdoclinks`.
default: False
manual: True
Library
HS-Source-Dirs: src
default-language: Haskell2010
ghc-options: -Wall -fexpose-all-unfoldings
Exposed-modules: CLaSH.Annotations.TopEntity
CLaSH.Class.BitPack
CLaSH.Class.Num
CLaSH.Class.Resize
CLaSH.Prelude
CLaSH.Prelude.BitIndex
CLaSH.Prelude.BitReduction
CLaSH.Prelude.BlockRam
CLaSH.Prelude.BlockRam.File
CLaSH.Prelude.DataFlow
CLaSH.Prelude.Explicit
CLaSH.Prelude.Explicit.Safe
CLaSH.Prelude.Mealy
CLaSH.Prelude.Moore
CLaSH.Prelude.RAM
CLaSH.Prelude.ROM
CLaSH.Prelude.ROM.File
CLaSH.Prelude.Safe
CLaSH.Prelude.Synchronizer
CLaSH.Prelude.Testbench
CLaSH.Promoted.Nat
CLaSH.Promoted.Nat.Literals
CLaSH.Promoted.Nat.TH
CLaSH.Promoted.Nat.Unsafe
CLaSH.Promoted.Ord
CLaSH.Promoted.Symbol
CLaSH.Signal
CLaSH.Signal.Bundle
CLaSH.Signal.Delayed
CLaSH.Signal.Delayed.Explicit
CLaSH.Signal.Explicit
CLaSH.Signal.Internal
CLaSH.Sized.BitVector
CLaSH.Sized.Fixed
CLaSH.Sized.Index
CLaSH.Sized.RTree
CLaSH.Sized.Signed
CLaSH.Sized.Unsigned
CLaSH.Sized.Vector
CLaSH.Sized.Internal.BitVector
CLaSH.Sized.Internal.Index
CLaSH.Sized.Internal.Signed
CLaSH.Sized.Internal.Unsigned
CLaSH.Tutorial
CLaSH.Examples
other-extensions: BangPatterns
DataKinds
ConstraintKinds
DefaultSignatures
DeriveTraversable
DeriveDataTypeable
FlexibleContexts
GADTs
GeneralizedNewtypeDeriving
KindSignatures
MagicHash
MultiParamTypeClasses
Rank2Types
ScopedTypeVariables
StandaloneDeriving
TemplateHaskell
TupleSections
TypeFamilies
TypeOperators
UndecidableInstances
Build-depends: array >= 0.5.1.0 && < 0.6,
base >= 4.8.0.0 && < 5,
data-default >= 0.5.3 && < 0.8,
integer-gmp >= 0.5.1.0 && < 1.1,
deepseq >= 1.4.1.0 && < 1.5,
ghc-prim >= 0.3.1.0 && < 0.6,
ghc-typelits-extra >= 0.1 && < 0.2,
ghc-typelits-natnormalise >= 0.4.1 && < 0.6,
lens >= 4.9 && < 4.15,
QuickCheck >= 2.7 && < 2.10,
reflection >= 2 && < 2.2,
singletons >= 1.0 && < 3.0,
template-haskell >= 2.9.0.0 && < 2.12
if impl(ghc<7.11)
-- Newer GHCs have -XDeriveLift
Build-depends: th-lift >= 0.5.6
-- Newer GHCs have a -fno-cpr-anal dynflag which we can enable per module
-- See: https://github.com/clash-lang/clash-compiler/commit/721fcfa9198925661cd836668705f817bddaae3c
-- as to why we need this.
ghc-options: -fcpr-off
else
other-extensions: DeriveLift
if flag(doclinks)
CPP-Options: -DDOCLINKS
build-depends: transformers >= 0.4.2.0
test-suite doctests
type: exitcode-stdio-1.0
default-language: Haskell2010
main-is: doctests.hs
ghc-options: -Wall
hs-source-dirs: tests
if !flag(doctests)
buildable: False
else
build-depends:
base >= 4 && < 5,
doctest >= 0.9.1 && < 0.12