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

Copyright(C) 2012-2016 University of Twente
2017 Myrtle Software Ltd
LicenseBSD2 (see the file LICENSE)
MaintainerChristiaan Baaij <christiaan.baaij@gmail.com>
Safe HaskellSafe
LanguageHaskell2010

Clash.Netlist.BlackBox.Types

Description

Types used in BlackBox modules

Synopsis

Documentation

type BlackBoxTemplate = [Element] Source #

A BlackBox Template is a List of Elements

data Element Source #

Elements of a blackbox context

Constructors

C !Text

Constant

D !Decl

Component instantiation hole

O !Bool

Output hole; Bool asserts escape marker stripping

I !Bool !Int

Input hole; Bool asserts escape marker stripping

Arg !Int !Int

Generated input hole, first argument is the scoping level

N !Int

Name hole

L !Int

Literal hole

Var [Element] !Int 
Sym !Text !Int

Symbol 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

CompName

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

IncludeName 
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

Depth !Element

Depth of a tree 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] 
And [Element] 
IW64

Hole indicating whether IntWordInteger are 64-Bit

HdlSyn HdlSyn

Hole indicating which synthesis tool we're generating HDL for

BV !Bool [Element] !Element

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

Sel !Element !Int

Record selector of a type

IsLit !Int 
IsVar !Int 
IsGated !Int 
IsSync !Int 
StrCmp [Element] !Int 
OutputWireReg !Int 
Vars !Int 
GenSym [Element] !Int 
SigD [Element] !(Maybe Int) 
Instances
Show Element Source # 
Instance details

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

Instances
Show Decl Source # 
Instance details

Methods

showsPrec :: Int -> Decl -> ShowS #

show :: Decl -> String #

showList :: [Decl] -> ShowS #

data HdlSyn Source #

Constructors

Vivado 
Other 
Instances
Eq HdlSyn Source # 
Instance details

Methods

(==) :: HdlSyn -> HdlSyn -> Bool #

(/=) :: HdlSyn -> HdlSyn -> Bool #

Read HdlSyn Source # 
Instance details
Show HdlSyn Source # 
Instance details