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

Safe HaskellNone
LanguageHaskell2010

CLaSH.Signal.Internal

Contents

Synopsis

Datatypes

data Clock Source

A clock with a name (Symbol) and period (Nat)

Constructors

Clk Symbol Nat 

data SClock clk where Source

Singleton value for a type-level Clock with the given name and period

Constructors

SClock :: SSymbol name -> SNat period -> SClock (Clk name period) 

data CSignal clk a Source

A synchronized signal with samples of type a, explicitly synchronized to a clock clk

NB: The constructor, (:-), is not synthesisable.

Constructors

a :- (CSignal clk a) infixr 5 

Instances

Functor (CSignal clk) 
Applicative (CSignal clk) 
Foldable (CSignal clk)

NB: Not synthesisable

NB: In "foldr f z s":

  • The function f should be lazy in its second argument.
  • The z element will never be used.
Traversable (CSignal clk) 
Bounded a => Bounded (CSignal clk a) 
Enum a => Enum (CSignal clk a)

WARNING: fromEnum is undefined, use fromEnum1 instead

Eq (CSignal clk a)

WARNING: (==) and (/=) are undefined, use (.==.) and (./=.) instead

Fractional a => Fractional (CSignal clk a) 
Integral a => Integral (CSignal clk a)

WARNING: toInteger is undefined, use toInteger1 instead

Num a => Num (CSignal clk a) 
Ord a => Ord (CSignal clk a)

WARNING: compare, (<), (>=), (>), and (<=) are undefined, use compare1, (.<.), (.>=.), (.>.), and (.<=.) instead

(Num a, Ord a) => Real (CSignal clk a)

WARNING: toRational is undefined, use toRational1 instead

Show a => Show (CSignal clk a) 
Bits a => Bits (CSignal clk a)

WARNING: testBit and popCount are undefined, use testBit1 and popCount1 instead

FiniteBits a => FiniteBits (CSignal clk a) 
Default a => Default (CSignal clk a) 
Lift a => Lift (CSignal clk a) 
SaturatingNum a => SaturatingNum (CSignal clk a) 
ExtendingNum a b => ExtendingNum (CSignal clk a) (CSignal clk b) 
type AResult (CSignal clk a) (CSignal clk b) = CSignal clk (AResult a b) 
type MResult (CSignal clk a) (CSignal clk b) = CSignal clk (MResult a b) 

Basic circuits

register# :: SClock clk -> a -> CSignal clk a -> CSignal clk a Source

regEn# :: SClock clk -> a -> CSignal clk Bool -> CSignal clk a -> CSignal clk a Source

mux :: CSignal clk Bool -> CSignal clk a -> CSignal clk a -> CSignal clk a Source

A multiplexer. Given "mux b t f", output t when b is True, and f when b is False.

Boolean connectives

(.&&.) :: CSignal clk Bool -> CSignal clk Bool -> CSignal clk Bool infixr 3 Source

Version of (&&) that returns a CSignal of Bool

(.||.) :: CSignal clk Bool -> CSignal clk Bool -> CSignal clk Bool infixr 2 Source

Version of (||) that returns a CSignal of Bool

not1 :: CSignal clk Bool -> CSignal clk Bool Source

Version of not that operates on CSignals of Bool

Type classes

Eq-like

(.==.) :: Eq a => CSignal clk a -> CSignal clk a -> CSignal clk Bool infix 4 Source

Version of (==) that returns a CSignal of Bool

(./=.) :: Eq a => CSignal clk a -> CSignal clk a -> CSignal clk Bool infix 4 Source

Version of (/=) that returns a CSignal of Bool

Ord-like

compare1 :: Ord a => CSignal clk a -> CSignal clk a -> CSignal clk Ordering Source

Version of compare that returns a CSignal of Ordering

(.<.) :: Ord a => CSignal clk a -> CSignal clk a -> CSignal clk Bool infix 4 Source

Version of (<) that returns a CSignal of Bool

(.<=.) :: Ord a => CSignal clk a -> CSignal clk a -> CSignal clk Bool infix 4 Source

Version of (<=) that returns a CSignal of Bool

(.>=.) :: Ord a => CSignal clk a -> CSignal clk a -> CSignal clk Bool infix 4 Source

Version of (>=) that returns a CSignal of Bool

(.>.) :: Ord a => CSignal clk a -> CSignal clk a -> CSignal clk Bool infix 4 Source

Version of (>) that returns a CSignal of Bool

Functor

mapSignal# :: (a -> b) -> CSignal clk a -> CSignal clk b Source

Applicative

signal# :: a -> CSignal clk a Source

appSignal# :: CSignal clk (a -> b) -> CSignal clk a -> CSignal clk b Source

Foldable

foldr# :: (a -> b -> b) -> b -> CSignal clk a -> b Source

NB: Not synthesisable

NB: In "foldr# f z s":

  • The function f should be lazy in its second argument.
  • The z element will never be used.

Traversable

traverse# :: Applicative f => (a -> f b) -> CSignal clk a -> f (CSignal clk b) Source

Enum-like

fromEnum1 :: Enum a => CSignal clk a -> CSignal clk Int Source

Version of fromEnum that returns a CSignal of Int

Rational-like

toRational1 :: Real a => CSignal clk a -> CSignal clk Rational Source

Version of toRational that returns a CSignal of Rational

Integral-like

toInteger1 :: Integral a => CSignal clk a -> CSignal clk Integer Source

Version of toRational that returns a CSignal of Integer

Bits-like

testBit1 :: Bits a => CSignal clk a -> CSignal clk Int -> CSignal clk Bool Source

Version of testBit that has a CSignal of Int as indexing argument, and a result of CSignal of Bool

popCount1 :: Bits a => CSignal clk a -> CSignal clk Int Source

Version of popCount that returns a CSignal of Int

shift1 :: Bits a => CSignal clk a -> CSignal clk Int -> CSignal clk a Source

Version of shift that has a CSignal of Int as indexing argument

rotate1 :: Bits a => CSignal clk a -> CSignal clk Int -> CSignal clk a Source

Version of rotate that has a CSignal of Int as indexing argument

setBit1 :: Bits a => CSignal clk a -> CSignal clk Int -> CSignal clk a Source

Version of setBit that has a CSignal of Int as indexing argument

clearBit1 :: Bits a => CSignal clk a -> CSignal clk Int -> CSignal clk a Source

Version of clearBit that has a CSignal of Int as indexing argument

shiftL1 :: Bits a => CSignal clk a -> CSignal clk Int -> CSignal clk a Source

Version of shiftL that has a CSignal of Int as indexing argument

unsafeShiftL1 :: Bits a => CSignal clk a -> CSignal clk Int -> CSignal clk a Source

Version of unsafeShiftL that has a CSignal of Int as indexing argument

shiftR1 :: Bits a => CSignal clk a -> CSignal clk Int -> CSignal clk a Source

Version of shiftR that has a CSignal of Int as indexing argument

unsafeShiftR1 :: Bits a => CSignal clk a -> CSignal clk Int -> CSignal clk a Source

Version of unsafeShiftR that has a CSignal of Int as indexing argument

rotateL1 :: Bits a => CSignal clk a -> CSignal clk Int -> CSignal clk a Source

Version of rotateL that has a CSignal of Int as indexing argument

rotateR1 :: Bits a => CSignal clk a -> CSignal clk Int -> CSignal clk a Source

Version of rotateR that has a CSignal of Int as indexing argument