Wired-0.2.1: Wire-aware hardware descriptionSource codeContentsIndex
Lava
Synopsis
module Control.Monad
data Signal
class CellLibrary lib
data Lava lib a
class (Monad m, CellLibrary lib) => MonadLava lib m | m -> lib where
toLava :: m a -> Lava lib a
type InterpDesignDB lib x = (DesignDB lib, Map Signal x)
lookupTag :: Tag -> InterpDesignDB lib x -> [x]
hasLoop :: MonadLava lib m => m a -> Bool
hasCombLoop :: MonadLava lib m => m a -> Bool
class Port p s | p -> s
class Port p s => PortStruct p s t | p -> s t, s t -> p
class Port p s => PortFixed p s | p -> s
input :: forall lib m p. (MonadLava lib m, PortFixed p Signal) => m p
inputList :: (MonadLava lib m, PortFixed p Signal) => Int -> m [p]
label :: (MonadLava lib m, PortStruct p Signal t) => Tag -> p -> m p
toLava2000 :: (MonadLava lib m, PortStruct pli (Signal Bool) ti, PortStruct psi Signal ti, PortStruct pso Signal to, PortStruct plo (Signal Bool) to) => (psi -> m pso) -> pli -> plo
simulateSeq :: (MonadLava lib m, PortStruct pni Int ti, PortStruct psi Signal ti, PortStruct pso Signal to, PortStruct pno Int to) => (psi -> m pso) -> [pni] -> [pno]
simulate :: (MonadLava lib m, PortStruct pni Int ti, PortStruct psi Signal ti, PortStruct pso Signal to, PortStruct pno Int to) => (psi -> m pso) -> pni -> pno
encodeBin :: Int -> Int -> [Int]
decodeBin :: [Int] -> Int
verify :: forall lib m ps. (MonadLava lib m, PortFixed ps Signal) => (ps -> m Signal) -> IO ()
depth :: (MonadLava lib m, PortStruct ps Signal t, PortStruct pd Int t) => m ps -> (pd, InterpDesignDB lib Int)
fanout :: MonadLava lib m => m a -> InterpDesignDB lib Int
size :: MonadLava lib m => m p -> Int
Documentation
module Control.Monad
data Signal Source
Identifies a driver in the circuit. A driver is either a primary input or an output pin of a cell.
show/hide Instances
class CellLibrary lib Source
show/hide Instances
data Lava lib a Source
show/hide Instances
CellLibrary lib => MonadLava lib (Lava lib)
Monad (Lava lib)
MonadFix (Lava lib)
class (Monad m, CellLibrary lib) => MonadLava lib m | m -> lib whereSource
Methods
toLava :: m a -> Lava lib aSource
show/hide Instances
CellLibrary lib => MonadLava lib (Lava lib)
MonadLava lib m => MonadLava lib (LayoutT s b m)
type InterpDesignDB lib x = (DesignDB lib, Map Signal x)Source
lookupTag :: Tag -> InterpDesignDB lib x -> [x]Source
hasLoop :: MonadLava lib m => m a -> BoolSource
hasCombLoop :: MonadLava lib m => m a -> BoolSource
class Port p s | p -> sSource
show/hide Instances
Port Bool Bool
Port Int Int
Port () ()
Port Time Time
Port Signal Signal
Port p s => Port ([] p) s
Port p s => Port (Maybe p) s
Port (Signal Bool) (Signal Bool)
(Port p1 s, Port p2 s) => Port (Either p1 p2) s
(Port p1 s, Port p2 s) => Port ((,) p1 p2) s
(Port p1 s, Port p2 s, Port p3 s) => Port ((,,) p1 p2 p3) s
(Port p1 s, Port p2 s, Port p3 s, Port p4 s) => Port ((,,,) p1 p2 p3 p4) s
class Port p s => PortStruct p s t | p -> s t, s t -> pSource
show/hide Instances
class Port p s => PortFixed p s | p -> sSource
show/hide Instances
PortFixed Signal Signal
(PortFixed p1 s, PortFixed p2 s) => PortFixed ((,) p1 p2) s
(PortFixed p1 s, PortFixed p2 s, PortFixed p3 s) => PortFixed ((,,) p1 p2 p3) s
(PortFixed p1 s, PortFixed p2 s, PortFixed p3 s, PortFixed p4 s) => PortFixed ((,,,) p1 p2 p3 p4) s
input :: forall lib m p. (MonadLava lib m, PortFixed p Signal) => m pSource
inputList :: (MonadLava lib m, PortFixed p Signal) => Int -> m [p]Source
label :: (MonadLava lib m, PortStruct p Signal t) => Tag -> p -> m pSource
toLava2000 :: (MonadLava lib m, PortStruct pli (Signal Bool) ti, PortStruct psi Signal ti, PortStruct pso Signal to, PortStruct plo (Signal Bool) to) => (psi -> m pso) -> pli -> ploSource
simulateSeq :: (MonadLava lib m, PortStruct pni Int ti, PortStruct psi Signal ti, PortStruct pso Signal to, PortStruct pno Int to) => (psi -> m pso) -> [pni] -> [pno]Source
simulate :: (MonadLava lib m, PortStruct pni Int ti, PortStruct psi Signal ti, PortStruct pso Signal to, PortStruct pno Int to) => (psi -> m pso) -> pni -> pnoSource
encodeBin :: Int -> Int -> [Int]Source
encodeBin n x

Encodes the number x as a binary number of length n. The resulting list contains only zeroes and ones.

decodeBin :: [Int] -> IntSource
verify :: forall lib m ps. (MonadLava lib m, PortFixed ps Signal) => (ps -> m Signal) -> IO ()Source
depth :: (MonadLava lib m, PortStruct ps Signal t, PortStruct pd Int t) => m ps -> (pd, InterpDesignDB lib Int)Source
fanout :: MonadLava lib m => m a -> InterpDesignDB lib IntSource
size :: MonadLava lib m => m p -> IntSource
Produced by Haddock version 2.4.2