Copyright | (C) 2015-2016, University of Twente |
---|---|
License | BSD2 (see the file LICENSE) |
Maintainer | Christiaan Baaij <christiaan.baaij@gmail.com> |
Safe Haskell | None |
Language | Haskell2010 |
Extensions |
|
- mkTopWrapper :: PrimMap BlackBoxTemplate -> (Identifier -> Identifier) -> Maybe TopEntity -> String -> Int -> Component -> Component
- extraIn :: Maybe TopEntity -> [(Identifier, HWType)]
- extraOut :: Maybe TopEntity -> [(Identifier, HWType)]
- mkInput :: [Identifier] -> (Identifier, HWType) -> Int -> ([Identifier], ([(Identifier, HWType)], ([Declaration], Identifier)))
- mkVectorChain :: Int -> HWType -> [Identifier] -> Expr
- mkOutput :: [Identifier] -> (Identifier, HWType) -> Int -> ([Identifier], ([(Identifier, HWType)], ([Declaration], Identifier)))
- mkClocks :: PrimMap BlackBoxTemplate -> [(Identifier, HWType)] -> Int -> Maybe TopEntity -> [Declaration]
- stringToVar :: String -> Expr
- mkClock :: ClockSource -> ([Declaration], (Identifier, [String], Bool))
- mkClockDecl :: String -> Declaration
- clockPorts :: [(String, String)] -> [(String, String)] -> ([(Identifier, PortDirection, HWType, Expr)], [String])
- mkResets :: PrimMap BlackBoxTemplate -> [(Identifier, HWType)] -> Int -> [(Identifier, [String], Bool)] -> [Declaration]
- genSyncReset :: PrimMap BlackBoxTemplate -> Identifier -> Identifier -> Text -> Integer -> NetlistMonad [Declaration]
- unsafeRunNetlist :: Int -> NetlistMonad a -> a
Documentation
:: PrimMap BlackBoxTemplate | |
-> (Identifier -> Identifier) | |
-> Maybe TopEntity | TopEntity specifications |
-> String | Name of the module containing the |
-> Int | IntWordInteger bit-width |
-> Component | Entity to wrap |
-> Component |
Create a wrapper around a component, potentially initiating clock sources
extraOut :: Maybe TopEntity -> [(Identifier, HWType)] Source
Create extra output ports for the wrapper
mkInput :: [Identifier] -> (Identifier, HWType) -> Int -> ([Identifier], ([(Identifier, HWType)], ([Declaration], Identifier))) Source
Generate input port mappings
mkVectorChain :: Int -> HWType -> [Identifier] -> Expr Source
Create a Vector chain for a list of Identifier
s
mkOutput :: [Identifier] -> (Identifier, HWType) -> Int -> ([Identifier], ([(Identifier, HWType)], ([Declaration], Identifier))) Source
Generate output port mappings
mkClocks :: PrimMap BlackBoxTemplate -> [(Identifier, HWType)] -> Int -> Maybe TopEntity -> [Declaration] Source
Create clock generators
stringToVar :: String -> Expr Source
mkClock :: ClockSource -> ([Declaration], (Identifier, [String], Bool)) Source
Create a single clock generator
mkClockDecl :: String -> Declaration Source
clockPorts :: [(String, String)] -> [(String, String)] -> ([(Identifier, PortDirection, HWType, Expr)], [String]) Source
Create a single clock path
mkResets :: PrimMap BlackBoxTemplate -> [(Identifier, HWType)] -> Int -> [(Identifier, [String], Bool)] -> [Declaration] Source
Generate resets
genSyncReset :: PrimMap BlackBoxTemplate -> Identifier -> Identifier -> Text -> Integer -> NetlistMonad [Declaration] Source
Generate a reset synchroniser that synchronously de-asserts an asynchronous reset signal
unsafeRunNetlist :: Int -> NetlistMonad a -> a Source
The NetListMonad
is a transformer stack with IO
at the bottom.
So we must use unsafePerformIO
.