clash-lib-1.7.0: Clash: a functional hardware description language - As a library
Copyright(C) 2015-2016 University of Twente
2017-2018 Google Inc.
2021-2023 QBayLogic B.V.
2022 Google Inc.
LicenseBSD2 (see the file LICENSE)
MaintainerQBayLogic B.V. <devops@qbaylogic.com>
Safe HaskellNone
LanguageHaskell2010

Clash.Backend.VHDL

Description

Generate VHDL for assorted Netlist datatypes

Synopsis

Documentation

data VHDLState Source #

State for the VHDLM monad:

Instances

Instances details
HasIdentifierSet VHDLState Source # 
Instance details

Defined in Clash.Backend.VHDL

Backend VHDLState Source # 
Instance details

Defined in Clash.Backend.VHDL

Methods

initBackend :: ClashOpts -> VHDLState Source #

hdlKind :: VHDLState -> HDL Source #

primDirs :: VHDLState -> IO [FilePath] Source #

name :: VHDLState -> String Source #

extension :: VHDLState -> String Source #

extractTypes :: VHDLState -> HashSet HWType Source #

genHDL :: ClashOpts -> ModName -> SrcSpan -> IdentifierSet -> UsageMap -> Component -> Ap (State VHDLState) ((String, Doc), [(String, Doc)]) Source #

mkTyPackage :: ModName -> [HWType] -> Ap (State VHDLState) [(String, Doc)] Source #

hdlType :: Usage -> HWType -> Ap (State VHDLState) Doc Source #

hdlHWTypeKind :: HWType -> State VHDLState HWKind Source #

hdlTypeErrValue :: HWType -> Ap (State VHDLState) Doc Source #

hdlTypeMark :: HWType -> Ap (State VHDLState) Doc Source #

hdlRecSel :: HWType -> Int -> Ap (State VHDLState) Doc Source #

hdlSig :: Text -> HWType -> Ap (State VHDLState) Doc Source #

genStmt :: Bool -> State VHDLState Doc Source #

inst :: Declaration -> Ap (State VHDLState) (Maybe Doc) Source #

expr :: Bool -> Expr -> Ap (State VHDLState) Doc Source #

iwWidth :: State VHDLState Int Source #

toBV :: HWType -> Text -> Ap (State VHDLState) Doc Source #

fromBV :: HWType -> Text -> Ap (State VHDLState) Doc Source #

hdlSyn :: State VHDLState HdlSyn Source #

setModName :: ModName -> VHDLState -> VHDLState Source #

setTopName :: Identifier -> VHDLState -> VHDLState Source #

getTopName :: State VHDLState Identifier Source #

setSrcSpan :: SrcSpan -> State VHDLState () Source #

getSrcSpan :: State VHDLState SrcSpan Source #

blockDecl :: Identifier -> [Declaration] -> Ap (State VHDLState) Doc Source #

addIncludes :: [(String, Doc)] -> State VHDLState () Source #

addLibraries :: [Text] -> State VHDLState () Source #

addImports :: [Text] -> State VHDLState () Source #

addAndSetData :: FilePath -> State VHDLState String Source #

getDataFiles :: State VHDLState [(String, FilePath)] Source #

addMemoryDataFile :: (String, String) -> State VHDLState () Source #

getMemoryDataFiles :: State VHDLState [(String, String)] Source #

ifThenElseExpr :: VHDLState -> Bool Source #

aggressiveXOptBB :: State VHDLState AggressiveXOptBB Source #

renderEnums :: State VHDLState RenderEnums Source #

domainConfigurations :: State VHDLState DomainMap Source #

setDomainConfigurations :: DomainMap -> VHDLState -> VHDLState Source #

HasUsageMap VHDLState Source # 
Instance details

Defined in Clash.Backend.VHDL