This repository has been archived by the owner on Sep 7, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 27
/
Copy pathclash-prelude.cabal
289 lines (253 loc) · 10.4 KB
/
clash-prelude.cabal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
Name: clash-prelude
Version: 0.99
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, 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:
.
* Prelude library containing datatypes and functions for circuit design
.
To use the library:
.
* Import "Clash.Prelude"
.
* Alternatively, if you want to explicitly route clock and reset ports,
for more straightforward multi-clock designs, you can import the
"Clash.Explicit.Prelude" module. Note that you should not import
"Clash.Prelude" and "Clash.Explicit.Prelude" at the same time as they
have overlapping definitions.
.
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 <[email protected]>
Copyright: Copyright © 2013-2016, University of Twente,
2016-2017, Myrtle Software Ltd,
2017 , QBayLogic, Google Inc.
Category: Hardware
Build-type: Simple
Extra-source-files: README.md
CHANGELOG.md
AUTHORS.md
extra-doc-files: doc/*.svg
Cabal-version: >=1.18
Tested-with: GHC == 8.2.2, GHC == 8.4.1, GHC == 8.5
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 benchmarks
description:
You can disable testing with benchmarks using `-f-benchmarks`.
default: True
manual: True
Library
HS-Source-Dirs: src
default-language: Haskell2010
ghc-options: -Wall -fexpose-all-unfoldings -fno-worker-wrapper
CPP-Options: -DCABAL
Exposed-modules: Clash.Annotations.TopEntity
Clash.Annotations.Primitive
Clash.Annotations.BitRepresentation
Clash.Annotations.BitRepresentation.Deriving
Clash.Annotations.BitRepresentation.Internal
Clash.Annotations.BitRepresentation.Util
Clash.Annotations.SynthesisAttributes
Clash.Class.BitPack
Clash.Class.Num
Clash.Class.Resize
Clash.Clocks
Clash.Clocks.Deriving
Clash.Explicit.BlockRam
Clash.Explicit.BlockRam.File
Clash.Explicit.DDR
Clash.Explicit.Mealy
Clash.Explicit.Moore
Clash.Explicit.RAM
Clash.Explicit.ROM
Clash.Explicit.ROM.File
Clash.Explicit.Prelude
Clash.Explicit.Prelude.Safe
Clash.Explicit.Signal
Clash.Explicit.Signal.Delayed
Clash.Explicit.Signal.Delayed.Bundle
Clash.Explicit.Synchronizer
Clash.Explicit.Testbench
Clash.Hidden
Clash.Intel.ClockGen
Clash.Intel.DDR
Clash.NamedTypes
Clash.Prelude
Clash.Prelude.BitIndex
Clash.Prelude.BitReduction
Clash.Prelude.BlockRam
Clash.Prelude.BlockRam.File
Clash.Prelude.DataFlow
Clash.Prelude.Mealy
Clash.Prelude.Moore
Clash.Prelude.RAM
Clash.Prelude.ROM
Clash.Prelude.ROM.File
Clash.Prelude.Safe
Clash.Prelude.Testbench
Clash.Promoted.Nat
Clash.Promoted.Nat.Literals
Clash.Promoted.Nat.TH
Clash.Promoted.Nat.Unsafe
Clash.Promoted.Symbol
Clash.Signal
Clash.Signal.Bundle
Clash.Signal.BiSignal
Clash.Signal.Delayed
Clash.Signal.Internal
Clash.Signal.Trace
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.XException
Clash.Xilinx.ClockGen
Clash.Xilinx.DDR
Clash.Tutorial
Clash.Examples
other-modules: Clash.Class.BitPack.Internal
Clash.Signal.Bundle.Internal
Paths_clash_prelude
other-extensions: CPP
BangPatterns
ConstraintKinds
DataKinds
DefaultSignatures
DeriveDataTypeable
DeriveTraversable
DeriveLift
FlexibleContexts
FlexibleInstances
GADTs
GeneralizedNewtypeDeriving
InstanceSigs
KindSignatures
MagicHash
MultiParamTypeClasses
PatternSynonyms
Rank2Types
ScopedTypeVariables
StandaloneDeriving
TemplateHaskell
TupleSections
TypeApplications
TypeFamilies
TypeOperators
UndecidableInstances
ViewPatterns
Build-depends: array >= 0.5.1.0 && < 0.6,
base >= 4.8.0.0 && < 5,
bifunctors >= 5.4.0 && < 6.0,
constraints >= 0.8 && < 1.0,
containers >= 0.4.0 && < 0.7,
data-binary-ieee754 >= 0.4.4 && < 0.6,
data-default-class >= 0.1.2 && < 0.2,
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.2.5 && < 0.3,
ghc-typelits-knownnat >= 0.5 && < 0.6,
ghc-typelits-natnormalise >= 0.6 && < 0.7,
hashable >= 1.2.1.0 && < 1.3,
half >= 0.2.2.3 && < 1.0,
lens >= 4.9 && < 4.18,
QuickCheck >= 2.7 && < 2.12,
reflection >= 2 && < 2.2,
singletons >= 1.0 && < 3.0,
template-haskell >= 2.12.0.0 && < 2.15,
th-lift >= 0.7.0 && < 0.8.0,
th-orphans >= 0.13.1 && < 1.0,
text >= 0.11.3.1 && < 1.3,
time >= 1.8 && < 1.10,
transformers >= 0.4.2.0 && < 0.6,
vector >= 0.11 && < 1.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.17,
clash-prelude
test-suite unittests
type: exitcode-stdio-1.0
default-language: Haskell2010
main-is: unittests.hs
ghc-options: -Wall
hs-source-dirs: tests
if !flag(doctests)
buildable: False
else
build-depends:
clash-prelude,
base >= 4 && < 5,
doctest >= 0.9.1 && < 0.16,
tasty >= 0.10.1.2 && < 2.0,
tasty-hunit
Other-Modules: Clash.Tests.DerivingDataRepr
Clash.Tests.DerivingDataReprTypes
benchmark benchmark-clash-prelude
type: exitcode-stdio-1.0
default-language: Haskell2010
main-is: benchmark-main.hs
ghc-options: -O2 -Wall
hs-source-dirs: benchmarks
if !flag(benchmarks)
buildable: False
else
build-depends:
base >= 4 && < 5,
clash-prelude,
criterion >= 1.3.0.0 && < 1.6,
deepseq >= 1.4.0.1 && < 1.5,
template-haskell >= 2.9.0.0 && < 2.14
Other-Modules: BenchBitVector
BenchFixed
BenchSigned