| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
CLaSH.Netlist
Description
Create Netlists out of normalized CoreHW Terms
- genNetlist :: Maybe Int -> HashMap TmName (Type, Term) -> PrimMap -> HashMap TyConName TyCon -> (HashMap TyConName TyCon -> Type -> Maybe (Either String HWType)) -> Maybe Int -> TmName -> IO ([Component], Int)
- runNetlistMonad :: Maybe Int -> HashMap TmName (Type, Term) -> PrimMap -> HashMap TyConName TyCon -> (HashMap TyConName TyCon -> Type -> Maybe (Either String HWType)) -> NetlistMonad a -> IO (a, NetlistState)
- genComponent :: TmName -> Maybe Int -> NetlistMonad Component
- genComponentT :: TmName -> Term -> Maybe Int -> NetlistMonad Component
- mkDeclarations :: Id -> Term -> NetlistMonad [Declaration]
- mkFunApp :: Id -> TmName -> [Term] -> NetlistMonad [Declaration]
- mkExpr :: Bool -> Type -> Term -> NetlistMonad (Expr, [Declaration])
- mkDcApplication :: HWType -> DataCon -> [Term] -> NetlistMonad (Expr, [Declaration])
Documentation
Arguments
| :: Maybe Int | Starting number of the component counter |
| -> HashMap TmName (Type, Term) | Global binders |
| -> PrimMap | Primitive definitions |
| -> HashMap TyConName TyCon | TyCon cache |
| -> (HashMap TyConName TyCon -> Type -> Maybe (Either String HWType)) | Hardcoded Type -> HWType translator |
| -> Maybe Int | Symbol count |
| -> TmName | Name of the |
| -> IO ([Component], Int) |
Generate a hierarchical netlist out of a set of global binders with
topEntity at the top.
Arguments
| :: Maybe Int | Starting number of the component counter |
| -> HashMap TmName (Type, Term) | Global binders |
| -> PrimMap | Primitive Definitions |
| -> HashMap TyConName TyCon | TyCon cache |
| -> (HashMap TyConName TyCon -> Type -> Maybe (Either String HWType)) | Hardcode Type -> HWType translator |
| -> NetlistMonad a | Action to run |
| -> IO (a, NetlistState) |
Run a NetlistMonad action in a given environment
Arguments
| :: TmName | Name of the function |
| -> Maybe Int | Starting value of the unique counter |
| -> NetlistMonad Component |
Generate a component for a given function (caching)
Arguments
| :: TmName | Name of the function |
| -> Term | Corresponding term |
| -> Maybe Int | Starting value of the unique counter |
| -> NetlistMonad Component |
Generate a component for a given function
Arguments
| :: Id | LHS of the let-binder |
| -> Term | RHS of the let-binder |
| -> NetlistMonad [Declaration] |
Generate a list of Declarations for a let-binder
Arguments
| :: Id | LHS of the let-binder |
| -> TmName | Name of the applied function |
| -> [Term] | Function arguments |
| -> NetlistMonad [Declaration] |
Generate a list of Declarations for a let-binder where the RHS is a function application
Arguments
| :: Bool | Treat BlackBox expression as declaration |
| -> Type | Type of the LHS of the let-binder |
| -> Term | Term to convert to an expression |
| -> NetlistMonad (Expr, [Declaration]) | Returned expression and a list of generate BlackBox declarations |
Generate an expression for a term occurring on the RHS of a let-binder
Arguments
| :: HWType | HWType of the LHS of the let-binder |
| -> DataCon | Applied DataCon |
| -> [Term] | DataCon Arguments |
| -> NetlistMonad (Expr, [Declaration]) | Returned expression and a list of generate BlackBox declarations |
Generate an expression for a DataCon application occurring on the RHS of a let-binder