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

Safe HaskellNone
LanguageHaskell2010

CLaSH.Netlist.BlackBox

Description

Functions to create BlackBox Contexts and fill in BlackBox templates

Synopsis

Documentation

mkBlackBoxContext Source

Arguments

:: Id

Identifier binding the primitive/blackbox application

-> [Term]

Arguments of the primitive/blackbox application

-> NetlistMonad (BlackBoxContext, [Declaration]) 

Generate the context for a BlackBox instantiation.

mkBlackBox Source

Arguments

:: Text

Template to instantiate

-> BlackBoxContext

Context to instantiate template with

-> NetlistMonad Text 

Instantiate a BlackBox template according to the given context

mkInput :: (Term, Bool) -> MaybeT NetlistMonad ((SyncIdentifier, HWType), [Declaration]) Source

Create an template instantiation text for an argument term

mkLitInput Source

Arguments

:: Term

The literal argument term

-> MaybeT NetlistMonad ((Identifier, HWType), [Declaration]) 

Create an template instantiation text for an argument term, given that the term is a literal. Returns Nothing if the term is not a literal.

mkFunInput Source

Arguments

:: Id

Identifier binding the encompassing primitive/blackbox application

-> Term

The function argument term

-> MaybeT NetlistMonad ((BlackBoxTemplate, BlackBoxContext), [Declaration]) 

Create an template instantiation text and a partial blackbox content for an argument term, given that the term is a function. Errors if the term is not a function

instantiateSym :: BlackBoxTemplate -> NetlistMonad BlackBoxTemplate Source

Instantiate symbols references with a new symbol and increment symbol counter