clash-lib-1.8.4: Clash: a functional hardware description language - As a library

Copyright | (C) 2020 QBayLogic
License | BSD2 (see the file LICENSE)
Maintainer | QBayLogic B.V. <devops@qbaylogic.com>
Safe Haskell | Safe-Inferred
Language | Haskell2010

Clash.Edalize.Edam

Description

Data types and rendering for Edalize Metadata files (EDAM).

Synopsis

- data Edam = Edam {
  - edamProjectName :: Text
  - edamTopEntity :: Text
  - edamFiles :: [EdamFile]
  - edamToolOptions :: EdamTools
  }
- data EdamFile = EdamFile {
  - efName :: FilePath
  - efType :: EdamFileType
  - efLogicalName :: Text
  }
- data EdamFileType
  - = Unknown
  - | VhdlSource
  - | VerilogSource
  - | SystemVerilogSource
  - | TclSource
  - | QSYS
  - | SDC
- data EdamTools = EdamTools {
  - etGhdl :: Maybe GhdlOptions
  - etIcarus :: Maybe IcarusOptions
  - etModelsim :: Maybe ModelsimOptions
  - etQuartus :: Maybe QuartusOptions
  - etVivado :: Maybe VivadoOptions
  }
- data GhdlOptions = GhdlOptions {
  - ghdlAnalyseOpts :: [Text]
  - ghdlRunOpts :: [Text]
  }
- data IcarusOptions = IcarusOptions {
  - icarusOpts :: [Text]
  - icarusTimeScale :: Text
  }
- data ModelsimOptions = ModelsimOptions {
  - msVlogOpts :: [Text]
  - msVsimOpts :: [Text]
  }
- data QuartusOptions = QuartusOptions {
  - quartusBoardDevIndex :: Int
  - quartusFamily :: Text
  - quartusDevice :: Text
  - quartusOpts :: [Text]
  - quartusDseOpts :: [Text]
  }
- data VivadoOptions = VivadoOptions {
  - vivadoPart :: Text
  }
- pprEdam :: Edam -> Doc ann

# Documentation

data Edam Source #

EDAM data structure to be given to an Edalize backend. This contains all information needed to generate a project scaffolding. Note that hooks and VPI modules are currently not specified by clash.

Constructors

Edam |

Fields

- edamProjectName :: Text
- edamTopEntity :: Text
- edamFiles :: [EdamFile]
- edamToolOptions :: EdamTools

data EdamFile Source #

Information about each file in the project. This does not include is_include_file or include_path, as these are not currently used by Clash.

Constructors

EdamFile |

Fields

- efName :: FilePath
- efType :: EdamFileType
- efLogicalName :: Text

data EdamFileType Source #

A subset of the file types recognized by Edalize. The supported formats are largely from IP-XACT 2014 (IEEE 1685-2014), although Edalize extends this with other types, e.g. QSYS.

Only file types which are generated by Clash are listed.

Constructors

Unknown | Unknown file type.
VhdlSource | VHDL source.
VerilogSource | Verilog source.
SystemVerilogSource | SystemVerilog source.
TclSource | Tool Command Language source.
QSYS | QSys system source.
SDC | Synopsys Design Constraints source.

#### Instances

Instances details

Show EdamFileType Source # |
Instance details Defined in Clash.Edalize.Edam Methods showsPrec :: Int -> EdamFileType -> ShowS Source # show :: EdamFileType -> String Source # showList :: [EdamFileType] -> ShowS Source #
Eq EdamFileType Source # |
Instance details Defined in Clash.Edalize.Edam Methods (==) :: EdamFileType -> EdamFileType -> Bool Source # (/=) :: EdamFileType -> EdamFileType -> Bool Source #

data EdamTools Source #

Tool-specific configuration used by Edalize. Currently only tools which are supported by Clash are provided.

Constructors

EdamTools |

Fields

- etGhdl :: Maybe GhdlOptions
- etIcarus :: Maybe IcarusOptions
- etModelsim :: Maybe ModelsimOptions
- etQuartus :: Maybe QuartusOptions
- etVivado :: Maybe VivadoOptions

#### Instances

Instances details

Default EdamTools Source # |
Instance details Defined in Clash.Edalize.Edam Methods def :: EdamTools Source #

data GhdlOptions Source #

Constructors

GhdlOptions |

Fields

- ghdlAnalyseOpts :: [Text]
- ghdlRunOpts :: [Text]

#### Instances

Instances details

Default GhdlOptions Source # |
Instance details Defined in Clash.Edalize.Edam Methods def :: GhdlOptions Source #

data IcarusOptions Source #

Constructors

IcarusOptions |

Fields

- icarusOpts :: [Text]
- icarusTimeScale :: Text

#### Instances

Instances details

Default IcarusOptions Source # |
Instance details Defined in Clash.Edalize.Edam Methods def :: IcarusOptions Source #

data ModelsimOptions Source #

Constructors

ModelsimOptions |

Fields

- msVlogOpts :: [Text]
- msVsimOpts :: [Text]

#### Instances

Instances details

Default ModelsimOptions Source # |
Instance details Defined in Clash.Edalize.Edam Methods def :: ModelsimOptions Source #

data QuartusOptions Source #

Constructors

QuartusOptions |

Fields

- quartusBoardDevIndex :: Int
- quartusFamily :: Text
- quartusDevice :: Text
- quartusOpts :: [Text]
- quartusDseOpts :: [Text]

#### Instances

Instances details

Default QuartusOptions Source # |
Instance details Defined in Clash.Edalize.Edam Methods def :: QuartusOptions Source #

data VivadoOptions Source #

Constructors

VivadoOptions |

Fields

- vivadoPart :: Text

#### Instances

Instances details

Default VivadoOptions Source # |
Instance details Defined in Clash.Edalize.Edam Methods def :: VivadoOptions Source #

pprEdam :: Edam -> Doc ann Source #