Safe Haskell | None |
---|---|
Language | Haskell2010 |
Types used in BlackBox modules
- data BlackBoxContext = Context {
- result :: (SyncIdentifier, HWType)
- inputs :: [(SyncIdentifier, HWType)]
- litInputs :: [Identifier]
- funInputs :: [(BlackBoxTemplate, BlackBoxContext)]
- type SyncIdentifier = Either Identifier (Identifier, (Identifier, Int))
- type BlackBoxTemplate = [Element]
- data Element
- data Decl = Decl Int [(BlackBoxTemplate, BlackBoxTemplate)]
- newtype BlackBoxMonad a = B {
- runBlackBoxM :: WriterT [(Identifier, HWType)] (State VHDLState) a
Documentation
data BlackBoxContext Source
Context used to fill in the holes of a BlackBox template
Context | |
|
type SyncIdentifier = Either Identifier (Identifier, (Identifier, Int)) Source
Either the name of the identifier, or a tuple of the identifier and the corresponding clock
type BlackBoxTemplate = [Element] Source
A BlackBox Template is a List of Elements
Elements of a blackbox context
C Text | Constant |
D Decl | Component instantiation hole |
O | Output hole |
I Int | Input hole |
L Int | Literal hole |
Sym Int | Symbol hole |
Clk (Maybe Int) | Clock hole (Maybe clk corresponding to input, clk corresponding to output if Nothing) |
Rst (Maybe Int) | Reset hole |
Typ (Maybe Int) | Type declaration hole |
TypM (Maybe Int) | Type root hole |
Err (Maybe Int) | Error value hole |
TypElem Element | Select element type from a vector type |
Component instantiation hole. First argument indicates which function argument to instantiate. Second argument corresponds to output and input assignments, where the first element is the output assignment, and the subsequent elements are the consecutive input assignments.
The LHS of the tuple is the name of the signal, while the RHS of the tuple is the type of the signal
newtype BlackBoxMonad a Source
Monad that caches VHDL information and remembers hidden inputs of black boxes that are being generated (WriterT)
B | |
|