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

Copyright(C) 2012-2016, University of Twente
LicenseBSD2 (see the file LICENSE)
MaintainerChristiaan Baaij <>
Safe HaskellSafe



Types used in BlackBox modules



type BlackBoxTemplate = [Element] Source

A BlackBox Template is a List of Elements

data Element Source

Elements of a blackbox context


C !Text


D !Decl

Component instantiation hole


Output hole

I !Int

Input hole

L !Int

Literal hole

Sym !Int

Symbol hole

Clk !(Maybe Int)

Clock hole (Maybe clk corresponding to input, clk corresponding to output if Nothing)

Rst !(Maybe Int)

Reset hole

Typ !(Maybe Int)

Type declaration hole

TypM !(Maybe Int)

Type root hole

Err !(Maybe Int)

Error value hole

TypElem !Element

Select element type from a vector type


Hole for the name of the component in which the blackbox is instantiated

IndexType !Element

Index data type hole, the field is the (exclusive) maximum index

Size !Element

Size of a type hole

Length !Element

Length of a vector hole

FilePath !Element

Hole containing a filepath for a data file

Gen !Bool

Hole marking beginning (True) or end (False) of a generative construct

IF !Element [Element] [Element] 

Hole indicating whether IntWordInteger are 64-Bit

BV Bool [Element] (Maybe Int)

Convert to (True)/from(False) a bit-vector

SigD [Element] !(Maybe Int) 


data Decl Source

Component instantiation hole. First argument indicates which function argument to instantiate. Second argument corresponds to output and input assignments, where the first element is the output assignment, and the subsequent elements are the consecutive input assignments.

The LHS of the tuple is the name of the signal, while the RHS of the tuple is the type of the signal