 | atom-1.0.7: A DSL for embedded hard realtime applications. | Contents | Index |
|
| Language.Atom.Elaboration |
|
|
|
|
|
| Synopsis |
|
|
|
|
| Atom monad and container.
|
|
| data Atom a |
| The Atom monad holds variable and rule declarations.
| Instances | |
|
|
| data AtomDB |
| Constructors | | Instances | |
|
|
| data Global |
|
|
| data Rule |
| Constructors | | Rule | | | | Assert | | | ruleName :: Name | | | ruleEnable :: UE | | | ruleAssert :: UE | |
| | Cover | | | ruleName :: Name | | | ruleEnable :: UE | | | ruleCover :: UE | |
|
| Instances | |
|
|
| data StateHierarchy |
|
|
| buildAtom :: Global -> Name -> Atom a -> IO (a, (Global, AtomDB)) |
|
| Type Aliases and Utilities
|
|
| type UID = Int |
|
| type Name = String |
| A name.
|
|
| data Phase |
| A phase is either the minimum phase or the exact phase.
| | Constructors | |
|
|
| type Path = [Name] |
| A hierarchical name.
|
|
| elaborate :: Name -> Atom () -> IO (Maybe (StateHierarchy, [Rule], [Name], [Name], [(Name, Type)])) |
A Relation is used for relative performance constraints between Actions.
data Relation = Higher UID | Lower UID deriving (Show, Eq)
Given a top level name and design, elaborates design and returns a design database.
|
|
| var :: Expr a => Name -> a -> Atom (V a) |
| Generic local variable declaration.
|
|
| var' :: Name -> Type -> V a |
| Generic external variable declaration.
|
|
| array :: Expr a => Name -> [a] -> Atom (A a) |
| Generic array declaration.
|
|
| array' :: Expr a => Name -> Type -> A a |
| Generic external array declaration.
|
|
| addName :: Name -> Atom Name |
|
| get :: Atom (Global, AtomDB) |
|
| put :: (Global, AtomDB) -> Atom () |
|
| allUVs :: [Rule] -> UE -> [UV] |
| All the variables that directly and indirectly control the value of an expression.
|
|
| allUEs :: Rule -> [UE] |
| All primary expressions used in a rule.
|
|
| Produced by Haddock version 2.7.2 |