OpenASIP
2.0
|
#include <HDLGenerator.hh>
Public Member Functions | |
Module (std::string name) | |
Module (ipxact::ModuleInfo info, int id) | |
void | set_header () |
void | set_prefix (std::string prefix) |
Module & | operator<< (Behaviour &rhs) |
Module & | operator<< (Behaviour &&rhs) |
Module & | operator<< (Port &&port) |
Module & | operator<< (Parameter &¶m) |
Module & | operator<< (IntegerConstant &&constant) |
Module & | operator<< (BinaryConstant &&constant) |
Module & | operator<< (Wire &&wire) |
Module & | operator<< (Register &®) |
Module & | operator<< (Register ®) |
Module & | operator<< (Option &&opt) |
Module & | operator<< (Module &&rhs) |
Module & | operator<< (Module &rhs) |
void | build () final |
void | appendToHeader (const std::string &line) |
virtual bool | isRegister (const std::string &name) final |
virtual bool | isConstant (const std::string &name) final |
virtual bool | isVariable (const std::string &name) final |
void | registerVariable (const std::shared_ptr< Variable > var) |
Width | width (const std::string &name) final |
WireType | wireType (const std::string &name) final |
void | reads (const std::string &var) final |
void | writes (const std::string &var) final |
void | declare (std::ostream &stream, Language lang, int level) |
void | instantiate (std::ostream &stream, Language lang, int level) |
void | implement (std::ostream &stream, Language lang, int level=0) |
bool | hasOption (const std::string &var) final |
Register & | getRegister (const std::string &var) final |
Public Member Functions inherited from HDLGenerator::Generatable | |
Generatable (std::string name) | |
virtual | ~Generatable ()=default |
virtual void | reads (const LHSValue &var) |
int | integerWidth (const std::string &name) |
virtual Width | width () |
virtual WireType | wireType () const |
virtual void | hdl (std::ostream &stream, Language lang, int indent) |
virtual void | hdl (std::ostream &stream, Language lang) |
virtual void | implementAll (std::ostream &stream, Language lang) |
virtual void | implementAll (std::ostream &stream, Language lang, int indent) |
template<typename Func > | |
void | forAll (Func func) |
template<typename Type , typename Func > | |
void | forAll (Func func) |
template<class Type > | |
bool | parentIs () |
template<class Type > | |
Type * | parentType () |
void | pushComponent (std::shared_ptr< Generatable > c) |
template<class Component > | |
void | addComponent (Component c) |
const std::string & | name () const noexcept |
void | setParent (Generatable *parent) noexcept |
Generatable * | parent () const noexcept |
Private Member Functions | |
void | clear () |
Private Attributes | |
int | id_ = 0 |
std::string | prefix_ |
std::unordered_set< std::string > | options_ |
std::vector< std::string > | headerComment_ |
std::vector< Parameter > | parameters_ |
std::vector< Port > | ports_ |
std::vector< IntegerConstant > | constants_ |
std::vector< BinaryConstant > | binaryConstants_ |
std::vector< std::shared_ptr< Wire > > | wires_ |
std::vector< Register > | registers_ |
std::vector< std::shared_ptr< Variable > > | variables_ |
std::vector< std::shared_ptr< Behaviour > > | behaviours_ |
std::vector< Module > | modules_ |
Entity/module.
Definition at line 1163 of file HDLGenerator.hh.
|
inline |
Definition at line 1165 of file HDLGenerator.hh.
References set_header().
|
inline |
Definition at line 1169 of file HDLGenerator.hh.
References id_, HDLGenerator::In, HDLGenerator::Generatable::name(), HDLGenerator::Out, ipxact::ModuleInfo::parameters, parameters_, ipxact::ModuleInfo::ports, and set_header().
|
inline |
Definition at line 1273 of file HDLGenerator.hh.
References headerComment_.
|
inlinefinalvirtual |
Reimplemented from HDLGenerator::Generatable.
Definition at line 1266 of file HDLGenerator.hh.
References behaviours_.
Referenced by implement().
|
inlineprivate |
Definition at line 1669 of file HDLGenerator.hh.
References registers_, and variables_.
Referenced by implement().
|
inline |
Definition at line 1378 of file HDLGenerator.hh.
References StringTools::indent(), HDLGenerator::Generatable::name(), parameters_, ports_, HDLGenerator::Verilog, and HDLGenerator::VHDL.
|
inlinefinalvirtual |
Reimplemented from HDLGenerator::Generatable.
Definition at line 1659 of file HDLGenerator.hh.
References registers_.
|
inlinefinalvirtual |
Reimplemented from HDLGenerator::Generatable.
Definition at line 1654 of file HDLGenerator.hh.
References options_.
|
inline |
Definition at line 1476 of file HDLGenerator.hh.
References behaviours_, binaryConstants_, build(), clear(), constants_, headerComment_, StringTools::indent(), modules_, HDLGenerator::Generatable::name(), parameters_, ports_, registers_, variables_, HDLGenerator::Verilog, HDLGenerator::VHDL, and wires_.
|
inline |
Definition at line 1413 of file HDLGenerator.hh.
References id_, StringTools::indent(), HDLGenerator::Generatable::name(), parameters_, ports_, prefix_, HDLGenerator::Verilog, and HDLGenerator::VHDL.
|
inlinefinalvirtual |
Reimplemented from HDLGenerator::Generatable.
Definition at line 1286 of file HDLGenerator.hh.
References binaryConstants_, constants_, and HDLGenerator::Generatable::name().
|
inlinefinalvirtual |
Reimplemented from HDLGenerator::Generatable.
Definition at line 1277 of file HDLGenerator.hh.
References HDLGenerator::Generatable::name(), and registers_.
|
inlinefinalvirtual |
Reimplemented from HDLGenerator::Generatable.
Definition at line 1300 of file HDLGenerator.hh.
References HDLGenerator::Generatable::name(), and variables_.
Definition at line 1211 of file HDLGenerator.hh.
References behaviours_.
Definition at line 1206 of file HDLGenerator.hh.
References behaviours_.
|
inline |
Definition at line 1231 of file HDLGenerator.hh.
References binaryConstants_.
|
inline |
Definition at line 1226 of file HDLGenerator.hh.
References constants_.
Definition at line 1256 of file HDLGenerator.hh.
References modules_.
Definition at line 1261 of file HDLGenerator.hh.
References modules_.
Definition at line 1251 of file HDLGenerator.hh.
References options_.
Definition at line 1221 of file HDLGenerator.hh.
References parameters_.
Definition at line 1216 of file HDLGenerator.hh.
References ports_.
Definition at line 1241 of file HDLGenerator.hh.
References registers_.
Definition at line 1246 of file HDLGenerator.hh.
References registers_.
Definition at line 1236 of file HDLGenerator.hh.
References wires_.
|
inlinefinalvirtual |
Reimplemented from HDLGenerator::Generatable.
Definition at line 1374 of file HDLGenerator.hh.
|
inline |
|
inline |
|
inline |
Definition at line 1202 of file HDLGenerator.hh.
References prefix_.
Referenced by FUGen::createOperationResources().
|
inlinefinalvirtual |
Reimplemented from HDLGenerator::Generatable.
Definition at line 1319 of file HDLGenerator.hh.
References constants_, HDLGenerator::Generatable::name(), parameters_, ports_, registers_, variables_, and wires_.
|
inlinefinalvirtual |
Reimplemented from HDLGenerator::Generatable.
Definition at line 1354 of file HDLGenerator.hh.
References HDLGenerator::Generatable::name(), ports_, variables_, and wires_.
|
inlinefinalvirtual |
Reimplemented from HDLGenerator::Generatable.
Definition at line 1376 of file HDLGenerator.hh.
|
private |
Definition at line 1690 of file HDLGenerator.hh.
Referenced by build(), implement(), and operator<<().
|
private |
Definition at line 1686 of file HDLGenerator.hh.
Referenced by implement(), isConstant(), and operator<<().
|
private |
Definition at line 1685 of file HDLGenerator.hh.
Referenced by implement(), isConstant(), operator<<(), and width().
|
private |
Definition at line 1682 of file HDLGenerator.hh.
Referenced by appendToHeader(), implement(), and set_header().
|
private |
Definition at line 1679 of file HDLGenerator.hh.
Referenced by instantiate(), and Module().
|
private |
Definition at line 1691 of file HDLGenerator.hh.
Referenced by implement(), and operator<<().
|
private |
Definition at line 1681 of file HDLGenerator.hh.
Referenced by hasOption(), and operator<<().
|
private |
Definition at line 1683 of file HDLGenerator.hh.
Referenced by declare(), implement(), instantiate(), Module(), operator<<(), and width().
|
private |
Definition at line 1684 of file HDLGenerator.hh.
Referenced by declare(), implement(), instantiate(), operator<<(), width(), and wireType().
|
private |
Definition at line 1680 of file HDLGenerator.hh.
Referenced by instantiate(), and set_prefix().
|
private |
Definition at line 1688 of file HDLGenerator.hh.
Referenced by clear(), getRegister(), implement(), isRegister(), operator<<(), and width().
|
private |
Definition at line 1689 of file HDLGenerator.hh.
Referenced by clear(), implement(), isVariable(), registerVariable(), width(), and wireType().
|
private |
Definition at line 1687 of file HDLGenerator.hh.
Referenced by implement(), operator<<(), width(), and wireType().