clash-lib-1.4.0: src/Clash/Netlist.hs-boot
{-|
Copyright : (C) 2015-2016, University of Twente
License : BSD2 (see the file LICENSE)
Maintainer : Christiaan Baaij <christiaan.baaij@gmail.com>
-}
{-# LANGUAGE CPP #-}
module Clash.Netlist
(genComponent
,mkExpr
,mkDcApplication
,mkDeclarations
,mkDeclarations'
,mkNetDecl
,mkProjection
,mkSelection
,mkFunApp
) where
import Clash.Core.DataCon (DataCon)
import Clash.Core.Term (Alt,LetBinding,Term)
import Clash.Core.Type (Type)
import Clash.Core.Var (Id)
import Clash.Netlist.Types
(Expr, HWType, Identifier, NetlistMonad, Declaration, NetlistId,
DeclarationType, ComponentMeta, Component)
import GHC.Stack (HasCallStack)
genComponent :: HasCallStack
=> Id
-> NetlistMonad (ComponentMeta, Component)
mkExpr :: HasCallStack
=> Bool
-> DeclarationType
-> NetlistId
-> Term
-> NetlistMonad (Expr,[Declaration])
mkDcApplication :: HasCallStack
=> [HWType]
-> NetlistId
-> DataCon
-> [Term]
-> NetlistMonad (Expr,[Declaration])
mkProjection
:: Bool
-> NetlistId
-> Term
-> Type
-> Alt
-> NetlistMonad (Expr, [Declaration])
mkSelection
:: DeclarationType
-> NetlistId
-> Term
-> Type
-> [Alt]
-> [Declaration]
-> NetlistMonad [Declaration]
mkNetDecl :: LetBinding -> NetlistMonad [Declaration]
mkDeclarations :: HasCallStack => Id -> Term -> NetlistMonad [Declaration]
mkDeclarations' :: HasCallStack => DeclarationType -> Id -> Term -> NetlistMonad [Declaration]
mkFunApp
:: HasCallStack
=> Identifier -- ^ LHS of the let-binder
-> Id -- ^ Name of the applied function
-> [Term] -- ^ Function arguments
-> [Declaration] -- ^ Tick declarations
-> NetlistMonad [Declaration]