All Versions
37
Latest Version
Avg Release Cycle
45 days
Latest Release
2536 days ago
Changelog History
Page 3
Changelog History
Page 3
-
v0.9.1 Changes
June 26, 2015- ๐ Updated documentation on data-file support on Altera/Quartus
-
v0.9 Changes
June 25, 2015- ๐ New features:
- Add operations on singleton natural numbers:
addSNat
,subSNat
,mulSNat
, andpowSNat
. - Add asynchronous RAM functions in
CLaSH.Prelude.RAM
, which have an asynchronous/combinational read port. - Add ROM functions in modules
CLaSH.Prelude.ROM
andCLaSH.Prelude.ROM.File
, where the latter module contains functions that instantiate a ROM from the content specified in an external data-file. - Add BlockRam functions, in the
CLaSH.Prelude.BlockRam.File
module, whose content can be initialised with the content specified in an external data-file. assert
now takes an extraString
argument so you can distinguish oneassert
from the others. Additionally,assert'
is added which takes an additionalSClock
argument. This is needed, becauseassert
now reports the clock cycle, and clock domain, when an assertion fails.defClkAltera
anddefClkXilinx
are replaced by,altpll
andalteraPll
for Altera clock sources, andclockWizard
for Xilinx clock sources. These names correspond to the names of the generator utilities in Quartus and ISE/Vivado.- Add Safe versions of the prelude modules:
CLaSH.Prelude.Safe
andCLaSH.Prelude.Explicit.Safe
- Add synchronizers in the
CLaSH.Prelude.Synchronizer
module
- Add operations on singleton natural numbers:
- ๐ New features:
-
v0.8 Changes
June 03, 2015๐ New features:
- Make the (Bit)Vector argument the last argument for the following functions:
slice
,setSlice
,replaceBit
,replace
. The signatures for the above functions are now:
slice :: BitPack a => SNat m -> SNat n -> a -> BitVector (m + 1 - n) setSlice :: BitPack a => SNat m -> SNat n -> BitVector (m + 1 - n) -> a -> a replaceBit :: Integral i => i -> Bit -> a -> a replace :: Integral i => i -> a -> Vec n a -> Vec n a
This allows for easier chaining, e.g.:
replaceBit 0 1 $ repleceBit 4 0 $ replaceBit 6 1 bv
- Until version 0.7.5, given
x :: Vec 8 Bit
andy :: BitVector 8
, it used to belast x == msb y
. This is quite confusing when printing converted values. Until version 0.7.5 we would get:
> 0x0F :: BitVector 8 0000_1111 > unpack 0x0F :: Vec 8 Bit <1,1,1,1,0,0,0,0>
As of version 0.8, we have
head x == msb y
:> 0x0F :: BitVector 8 0000_1111 > unpack 0x0F :: Vec 8 Bit <0,0,0,0,1,1,1,1>
So converting for
Vec
tors ofBit
s toBitVector
s is no longer index-preserving, but it is order-preserving.- Add QuickCheck
Arbitary
andCoArbitary
instances for all data types - Add lens
Ixed
instances forBitVector
,Signed
,Unsigned
, andVec
- Make the (Bit)Vector argument the last argument for the following functions:
-
v0.7.5 Changes
May 07, 2015- ๐ New features:
- Moore machine combinators
- ๐ New features:
-
v0.7.4 Changes
May 05, 2015- ๐ New features:
- Add
TopEntity
annotations
- Add
- ๐ New features:
-
v0.7.3 Changes
April 22, 2015- ๐ New features:
- Add the vector functions:
zip3
,unzip3
, andzipWith3
- Use version 0.2 of the
ghc-typelits-natnormalise
package
- Add the vector functions:
- ๐ New features:
-
v0.7.2 Changes
April 20, 2015- ๐ New features:
- Support for GHC 7.10 => only works with GHC 7.10 and higher
- Use http://hackage.haskell.org/package/ghc-typelits-natnormalise typechecker plugin for better type-level natural number handling
- ๐ New features:
-
v0.7.1 Changes
March 25, 2015- ๐ Fixes bugs:
- Fix laziness bug in Vector.(!!) and Vector.replace
- ๐ Fixes bugs:
-
v0.7 Changes
March 13, 2015๐ New features:
- Switch types of
bundle
andbundle'
, andunbundle
andunbundle'
. - Rename all explicitly clocked versions of Signal functions, to the primed
name of the implicitly clocked Signal functions. E.g.
cregister
is now calledregister'
(where the implicitly clocked function is callledregister
) - Add new instances for
DSignal
- Add experimental
antiDelay
function forDSignal
- Generalize lifted functions over Signals (e.g. (.==.))
- Switch types of
๐ Fixes bugs:
- Faster versions of Vector.(!!) and Vector.replace
-
v0.6 Changes
November 17, 2014๐ New features:
- Add
Fractional
instance forFixed
#9 - Make indexing/subscript of
Vec
ascending #4 - Add separate
BitVector
type, which has a descending index. - Add bit indexing operators, including the index/subscript operator
(!)
. - Add bit reduction operators:
reduceOr
,reduceAnd
,reduceOr
. - Rename
BitVector
class toBitPack
withpack
andunpack
class methods. - Rename
Pack
class toBundle
withbundle
andunbundle
class methods. - Strip all
Vec
functions from theirv
prefix, i.e.vmap
->map
. - Rename
Vec
indexing operator from(!)
to(!!)
. - Combine
Add
andMult
class intoExtendingNum
class. - Add extend and truncate methods to the
Resize
class. - Add
SaturatingNum
class with saturating numeric operators. - Add multitude of lifted
Signal
operators, i.e.(.==.) :: Eq a => Signal a -> Signal a -> Signal Bool
- Add
CLaSH.Signal.Delayed
with functions and data types for delay-annotated signals to support safe synchronisation. - Add
CLASH.Prelude.DataFlow
with functions and data types to create self-synchronising circuits based on data-flow principles.
- Add
๐ Fixes bugs:
- Remove deprecated 'Arrow' instance for and related functions for
Comp
#5
- Remove deprecated 'Arrow' instance for and related functions for