clash-lib-0.2.0.1: CAES Language for Synchronous Hardware - As a Library

Safe HaskellNone

CLaSH.Netlist

Description

Create Netlists out of normalized CoreHW Terms

Synopsis

Documentation

genNetlistSource

Arguments

:: Maybe VHDLState

State for the VHDLM Monad

-> HashMap TmName (Type, Term)

Global binders

-> PrimMap

Primitive definitions

-> (Type -> Maybe (Either String HWType))

Hardcoded Type -> HWType translator

-> Maybe Int

Symbol count

-> TmName

Name of the topEntity

-> IO ([Component], VHDLState) 

Generate a hierarchical netlist out of a set of global binders with topEntity at the top.

runNetlistMonadSource

Arguments

:: Maybe VHDLState

State for the VHDLM Monad

-> HashMap TmName (Type, Term)

Global binders

-> PrimMap

Primitive Definitions

-> (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

genComponentSource

Arguments

:: TmName

Name of the function

-> Maybe Int

Starting value of the unique counter

-> NetlistMonad Component 

Generate a component for a given function (caching)

genComponentTSource

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

mkDeclarationsSource

Arguments

:: Id

LHS of the let-binder

-> Term

RHS of the let-binder

-> NetlistMonad [Declaration] 

Generate a list of Declarations for a let-binder

mkFunAppSource

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

mkExprSource

Arguments

:: 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

mkDcApplicationSource

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