Skip to content
This repository has been archived by the owner on Sep 7, 2018. It is now read-only.

Releases: clash-lang/clash-prelude

0.11.2

25 Apr 06:57
Compare
Choose a tag to compare
  • New features:
    • Add riseEvery: Give a pulse every n clock cycles. (Thanks to @thoughtpolice)
    • Add oscillate: Oscillate a Bool with a given half-period of cycles. (Thanks to @thoughtpolice)
  • Fixes bugs:

v0.11.1

10 Apr 16:19
Compare
Choose a tag to compare
  • Changes:
    • Bundle instance for () behaves like a product-type instance #96
  • Fixes bugs:
    • Ensure that fold gets correctly type-applied in Vec.== #202

v0.11

16 Jan 22:37
Compare
Choose a tag to compare
  • New features:
    • CLaSH.XException: a module defining an exception representing uninitialised values. Additionally adds the ShowX class which has methods that prints values as "X" where they would normally raise an XException exception.
    • Add BNat (and supporting functions) to CLaSH.Promoted.Nat: base-2 encoded natural numbers.
    • Add divSNat and logBaseSNat to CLaSH.Promoted.Nat: division and logarithm for singleton natural numbers.
    • Add predUNat and subUNat to CLaSH.Promoted.Nat: predecessor and subtraction for unary-encoded natural numbers.
    • Add dtfold to CLaSH.Sized.Vector: a dependently-typed tree-fold over Vec.
    • Add the perfect-depth binary trees module CLaSH.Sized.RTree
    • Synthesisable definitions of countLeadingZeros and countTrailingZeros for: BitVector, Signed, Unsigned, and Fixed
    • Add the (:::) type alias in CLaSH.NamedTypes which allows you to annotate types with documentation
  • Changes:
    • asyncRam, blockRam, blockRamFile have a Maybe (addr,a) as write input instead of three separate Bool, addr, and a inputs.
    • asyncFIFOSynchronizer has a Maybe a as write-request instead of a separate Bool and a input
    • bundle' and unbundle' are removed; bundle now has type Unbundled' clk a -> Signal' clk a, unbundle now has type Signal' clk a -> Unbundled' clk a
    • subSNat now has the type SNat (a+b) -> SNat b -> SNat a (where it used to be SNat a -> SNat b -> SNat (a-b))
    • Renamed multUNat to mulUNat to be in sync with mulSNat and mulBNat.
    • The function argument of vfold in CLaSH.Sized.Vector is now (forall l . SNat l -> a -> Vec l b -> Vec (l + 1) b) (where it used to be (forall l . a -> Vec l b -> Vec (l + 1) b))
    • Cons constructor of Vec is no longer visible; (:>) and (:<) are now listed as constructors of Vec
    • Simulation speed improvements for numeric types

v0.10.11

03 Aug 09:03
Compare
Choose a tag to compare
  • New features:
    • Add strict version of: sample, sampleN, fromList, and simulate
    • Make Signals <*> slightly stricter:
      • Feedback loops still work with this new implementation
      • No more space-leaks when used in combination with the strict version of sample, sampleN, and simulate
    • Add NFData instances for the numeric types
  • Speed up arithmetic operations of Signed, Unsigned and BitVector
  • Fixes bugs:
    • CLaSH compiler sees internals of numeric types in their Lift functions

v0.10.10

15 Jul 16:56
Compare
Choose a tag to compare
  • Fixes bugs:
    • shrink functions for numeric types throw exceptions #153
    • CLaSH compiler sees internals of numeric types in their Show functions

v0.10.6

10 Feb 10:44
Compare
Choose a tag to compare
  • Fixes bugs:
    • CLaSH.Prelude.DataFlow.parNDF is not lazy enough

v0.10.5

13 Jan 13:49
Compare
Choose a tag to compare
  • New features:
    • Add readNew to CLaSH.Prelude.BlockRam: create a read-after-write blockRAM from a read-before-write blockRAM.
    • popCount functions for BitVector, Signed, and Unsigned are now synthesisable.
    • Add parNDF to CLaSH.Prelude.DataFlow: compose N dataflow circuits in parallel.
    • Add and instance Vec n a for LockStep in CLaSH.Prelude.DataFlow: have N dataflow circuits operate in lock-step.

v0.10.4

11 Dec 15:06
Compare
Choose a tag to compare
  • New features:
    • Add pureDF to CLaSH.Prelude.DataFlow: lift combinational circuits to DataFlow circuits.
    • Add fifoDF to CLaSH.Prelude.DataFlow: a simple FIFO buffer adhering to the DataFlow protocol.
    • loopDF no longer uses the lockStep and stepLock automatically, and now includes a FIFO buffer on the feedback path.
    • Add loopDF_nobuf to CLaSH.Prelude.DataFlow: a version of loopDF with no FIFO buffer on the feedback path.
    • Add boolToBV to CLaSH.CLass.BitPack: convert Booleans to n-bit BitVectors.
    • ClockSource in CLaSH.Annotations.TopEntity can now have multiple clock inputs #33
  • Bug fixes:
    • asyncRomFile reads file multiple times.

v0.10.3

24 Oct 09:19
Compare
Choose a tag to compare
  • Disable CPR analysis (See clash-lang/clash-compiler@721fcfa):
    • GHC < 7.11: In all modules using -fcpr-off
    • GHC >= 7.11: In CLaSH.Signal.Internal and CLaSH.Prelude.RAM using -fno-cpr-anal

v0.10.2

21 Oct 16:16
Compare
Choose a tag to compare
  • New features
    • ExtendingNum, BitPack, and Resize instance for Index
    • Add bv2i: convert BitVector n to Index (2^n)
    • Export type-level operations from ghc-typelits-extra