clash-0.1: CAES Language for Synchronous Hardware (CLaSH)

CLasH.HardwareTypes

Documentation

module Types

data NaturalT s => Vector s a Source

Instances

NaturalT s => Functor (Vector s) 
NaturalT s => Foldable (Vector s) 
NaturalT s => Traversable (Vector s) 
Eq a => Eq (Vector s a) 
(Read a, NaturalT nT) => Read (Vector nT a) 
Show a => Show (Vector s a) 
(Lift a, NaturalT nT) => Lift (Vector nT a) 

(+>) :: a -> Vector s a -> Vector (Succ s) aSource

vectorTH :: Lift a => [a] -> ExpQSource

unsafeVector :: NaturalT s => s -> [a] -> Vector s aSource

length :: forall s a. NaturalT s => Vector s a -> IntSource

lengthT :: NaturalT s => Vector s a -> sSource

fromVector :: NaturalT s => Vector s a -> [a]Source

(!) :: (PositiveT s, NaturalT u, s :>: u ~ True) => Vector s a -> Index u -> aSource

replace :: (PositiveT s, NaturalT u, s :>: u ~ True) => Vector s a -> Index u -> a -> Vector s aSource

head :: PositiveT s => Vector s a -> aSource

last :: PositiveT s => Vector s a -> aSource

init :: PositiveT s => Vector s a -> Vector (Pred s) aSource

tail :: PositiveT s => Vector s a -> Vector (Pred s) aSource

take :: NaturalT i => i -> Vector s a -> Vector (Min s i) aSource

drop :: NaturalT i => i -> Vector s a -> Vector (s :-: Min s i) aSource

select :: (NaturalT f, NaturalT s, NaturalT n, f :<: i ~ True, ((s :*: n) :+: f) :<=: i ~ True) => f -> s -> n -> Vector i a -> Vector n aSource

(<+) :: Vector s a -> a -> Vector (Succ s) aSource

(++) :: Vector s a -> Vector s2 a -> Vector (s :+: s2) aSource

map :: (a -> b) -> Vector s a -> Vector s bSource

zipWith :: (a -> b -> c) -> Vector s a -> Vector s b -> Vector s cSource

foldl :: (a -> b -> a) -> a -> Vector s b -> aSource

foldr :: (b -> a -> a) -> a -> Vector s b -> aSource

zip :: Vector s a -> Vector s b -> Vector s (a, b)Source

unzip :: Vector s (a, b) -> (Vector s a, Vector s b)Source

shiftl :: (PositiveT s, NaturalT n, n ~ Pred s, s ~ Succ n) => Vector s a -> a -> Vector s aSource

shiftr :: (PositiveT s, NaturalT n, n ~ Pred s, s ~ Succ n) => Vector s a -> a -> Vector s aSource

rotl :: forall s a. NaturalT s => Vector s a -> Vector s aSource

rotr :: NaturalT s => Vector s a -> Vector s aSource

concat :: Vector s1 (Vector s2 a) -> Vector (s1 :*: s2) aSource

iterate :: NaturalT s => (a -> a) -> a -> Vector s aSource

iteraten :: NaturalT s => s -> (a -> a) -> a -> Vector s aSource

generate :: NaturalT s => (a -> a) -> a -> Vector s aSource

generaten :: NaturalT s => s -> (a -> a) -> a -> Vector s aSource

copy :: NaturalT s => a -> Vector s aSource

copyn :: NaturalT s => s -> a -> Vector s aSource

split :: NaturalT s => Vector s a -> (Vector (Div2 s) a, Vector (Div2 s) a)Source

data NaturalT upper => Index upper Source

Instances

NaturalT nT => Bounded (Index nT) 
NaturalT nT => Enum (Index nT) 
NaturalT nT => Eq (Index nT) 
NaturalT nT => Integral (Index nT) 
NaturalT nT => Num (Index nT) 
NaturalT nT => Ord (Index nT) 
NaturalT nT => Real (Index nT) 
NaturalT nT => Show (Index nT) 
NaturalT nT => Lift (Index nT) 

fromNaturalT :: (NaturalT n, NaturalT upper, n :<=: upper ~ True) => n -> Index upperSource

rangeT :: Index nT -> nTSource

data NaturalT nT => Signed nT Source

Instances

NaturalT nT => Bounded (Signed nT) 
NaturalT nT => Enum (Signed nT) 
NaturalT nT => Eq (Signed nT) 
NaturalT nT => Integral (Signed nT) 
NaturalT nT => Num (Signed nT) 
NaturalT nT => Ord (Signed nT) 
NaturalT nT => Read (Signed nT) 
NaturalT nT => Real (Signed nT) 
NaturalT nT => Show (Signed nT) 
NaturalT nT => Bits (Signed nT) 
NaturalT nT => Lift (Signed nT) 

resize :: (NaturalT nT, NaturalT nT') => Signed nT -> Signed nT'Source

data NaturalT nT => Unsigned nT Source

Instances

NaturalT nT => Bounded (Unsigned nT) 
NaturalT nT => Enum (Unsigned nT) 
NaturalT nT => Eq (Unsigned nT) 
NaturalT nT => Integral (Unsigned nT) 
NaturalT nT => Num (Unsigned nT) 
NaturalT nT => Ord (Unsigned nT) 
NaturalT nT => Read (Unsigned nT) 
NaturalT nT => Real (Unsigned nT) 
NaturalT nT => Show (Unsigned nT) 
NaturalT nT => Bits (Unsigned nT) 
NaturalT nT => Lift (Unsigned nT) 

resize :: (NaturalT nT, NaturalT nT') => Unsigned nT -> Unsigned nT'Source

fromIndex :: (NaturalT nT, NaturalT nT', Pow2 nT' :>: nT ~ True, Integral (Index nT)) => Index nT -> Unsigned nT'Source

module Prelude

data Bit Source

Constructors

High 
Low 

newtype State s Source

Constructors

State s 

Instances

Show s => Show (State s) 

resizeInt :: (NaturalT nT, NaturalT nT') => Signed nT -> Signed nT'Source

type RAM s a = Vector (s :+: D1) aSource

type MemState s a = State (RAM s a)Source

blockRAM :: (NaturalT s, PositiveT (s :+: D1), (s :+: D1) :>: s ~ True) => MemState s a -> a -> Index s -> Index s -> Bool -> (MemState s a, a)Source