clash-prelude-0.4: CAES Language for Synchronous Hardware - Prelude library

Safe HaskellNone
LanguageHaskell2010

CLaSH.Sized.Fixed

Contents

Synopsis

Signed fixed point

data SFixed i f Source

Fixed point signed integer with i integer bits and f fractional bits

For now, overflow behaviour for the Num functions is wrap-around, not saturate

Instances

Eq (SFixed i f) 
(KnownNat ((+) ((+) i f) ((+) i f)), KnownNat ((+) i f), KnownNat f) => Num (SFixed i f) 
Ord (SFixed i f) 
(KnownNat ((+) i f), KnownNat f) => Show (SFixed i f) 
KnownNat ((+) i f) => Default (SFixed i f) 
(KnownNat i, KnownNat f, KnownNat ((+) i f)) => Lift (SFixed i f) 
BitVector (SFixed i f) 
Pack (SFixed i f) 
type BitSize (SFixed i f) = (+) i f 
type SignalP (SFixed i f) = Signal (SFixed i f) 

sf :: Signed (i + f) -> SFixed i f Source

unSF :: SFixed i f -> Signed (i + f) Source

Unsigned fixed point

data UFixed i f Source

Fixed point unsigned integer with i integer bits and f fractional bits

For now, overflow behaviour for the Num functions is wrap-around, not saturate

Instances

Eq (UFixed i f) 
(KnownNat ((+) ((+) i f) ((+) i f)), KnownNat ((+) i f), KnownNat f) => Num (UFixed i f) 
Ord (UFixed i f) 
(KnownNat ((+) i f), KnownNat f) => Show (UFixed i f) 
KnownNat ((+) i f) => Default (UFixed i f) 
(KnownNat i, KnownNat f, KnownNat ((+) i f)) => Lift (UFixed i f) 
BitVector (UFixed i f) 
Pack (UFixed i f) 
type BitSize (UFixed i f) = (+) i f 
type SignalP (UFixed i f) = Signal (UFixed i f) 

uf :: Unsigned (i + f) -> UFixed i f Source

unUF :: UFixed i f -> Unsigned (i + f) Source