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

Safe HaskellNone

CLaSH.Netlist.BlackBox

Description

Functions to create BlackBox Contexts and fill in BlackBox templates

Synopsis

Documentation

mkBlackBoxContextSource

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.

mkBlackBoxSource

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

mkLitInputSource

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.

mkFunInputSource

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 BlackBoxTemplateSource

Instantiate symbols references with a new symbol and increment symbol counter