PandA-2024.02
Public Member Functions | Data Fields
functional_unit_template Struct Reference

This class describe a functional unit template. More...

#include <technology_node.hpp>

Inheritance diagram for functional_unit_template:
Inheritance graph
[legend]
Collaboration diagram for functional_unit_template:
Collaboration graph
[legend]

Public Member Functions

const std::string & get_name () const override
 Return the name of the operation. More...
 
void xload (const xml_element *Enode, const technology_nodeRef tnd, const ParameterConstRef Param) override
 Load a functional unit starting from an xml file. More...
 
void xwrite (xml_element *rootnode, const technology_nodeRef tn, const ParameterConstRef Param) override
 Add a functional unit to an xml tree. More...
 
void print (std::ostream &os) const override
 function that prints the class functional_unit. More...
 
 functional_unit_template ()
 Constructor. More...
 
 functional_unit_template (const xml_nodeRef XML_description)
 
- Public Member Functions inherited from technology_node
 technology_node ()
 Constructor. More...
 
virtual ~technology_node ()
 Destructor. More...
 
virtual std::string get_kind_text () const =0
 Virtual function used to get the string name of a technology_node instance. More...
 
virtual enum tec_kind get_kind () const =0
 Virtual function used to find the real type of a technology_nodeinstance. More...
 

Data Fields

technology_nodeRef FU
 Functional Unit. More...
 
std::string specialized
 when non empty it defines with respect what the functional unit template has been specialized More...
 
std::string characterizing_constant_value
 Value used during the characterization of templates. More...
 
std::string memory_type
 Specify the type of memory the functional unit is compliant with. More...
 
std::string channels_type
 Specify the type of the channel the functional unit is compliant with. More...
 
std::string memory_ctrl_type
 Specify the type of memory controller the functional unit is compliant with. More...
 
std::string bram_load_latency
 Specify the bram load latency the functional unit is compliant with. More...
 
bool no_constant_characterization
 The template will not consider constants connected to the inputs during the module characterization. More...
 

Additional Inherited Members

- Static Protected Attributes inherited from technology_node
static simple_indent PP
 pretty print functor object used by all print members to indent the output of the print function. More...
 

Detailed Description

This class describe a functional unit template.

Definition at line 689 of file technology_node.hpp.

Constructor & Destructor Documentation

◆ functional_unit_template() [1/2]

functional_unit_template::functional_unit_template ( )

Constructor.

Definition at line 804 of file technology_node.cpp.

◆ functional_unit_template() [2/2]

functional_unit_template::functional_unit_template ( const xml_nodeRef  XML_description)
explicit

Definition at line 808 of file technology_node.cpp.

Member Function Documentation

◆ get_name()

const std::string& functional_unit_template::get_name ( ) const
inlineoverridevirtual

Return the name of the operation.

Implements technology_node.

Definition at line 728 of file technology_node.hpp.

References technology_node::get_name(), GET_TEC_KIND, GET_TEC_KIND_TEXT, technology_node::print(), technology_node::xload(), and technology_node::xwrite().

Here is the call graph for this function:

◆ print()

void functional_unit_template::print ( std::ostream &  os) const
overridevirtual

function that prints the class functional_unit.

Parameters
osis the output stream.

Implements technology_node.

Definition at line 932 of file technology_node.cpp.

References FU, and technology_node::print().

Here is the call graph for this function:

◆ xload()

void functional_unit_template::xload ( const xml_element Enode,
const technology_nodeRef  tnd,
const ParameterConstRef  Param 
)
overridevirtual

Load a functional unit starting from an xml file.

Parameters
nodeis a node of the xml tree.
owneris the refcount version of this.

Implements technology_node.

Definition at line 813 of file technology_node.cpp.

References bram_load_latency, channels_type, characterizing_constant_value, xml_node::convert_escaped(), FU, xml_child::get_children(), GET_CLASS_NAME, xml_text_node::get_content(), memory_ctrl_type, memory_type, no_constant_characterization, specialized, THROW_ERROR, and technology_node::xload().

Here is the call graph for this function:

◆ xwrite()

void functional_unit_template::xwrite ( xml_element rootnode,
const technology_nodeRef  tn,
const ParameterConstRef  Param 
)
overridevirtual

Add a functional unit to an xml tree.

Parameters
rootnodeis the root node at which the xml representation of the functional unit is attached.

Implements technology_node.

Definition at line 892 of file technology_node.cpp.

References xml_child::add_child_element(), xml_child::add_child_text(), bram_load_latency, channels_type, characterizing_constant_value, FU, GET_CLASS_NAME, memory_ctrl_type, memory_type, no_constant_characterization, specialized, and technology_node::xwrite().

Here is the call graph for this function:

Field Documentation

◆ bram_load_latency

std::string functional_unit_template::bram_load_latency

Specify the bram load latency the functional unit is compliant with.

non-null only in case the functional unit is a memory or a memory controller.

Definition at line 713 of file technology_node.hpp.

Referenced by xload(), and xwrite().

◆ channels_type

std::string functional_unit_template::channels_type

Specify the type of the channel the functional unit is compliant with.

Definition at line 705 of file technology_node.hpp.

Referenced by xload(), and xwrite().

◆ characterizing_constant_value

std::string functional_unit_template::characterizing_constant_value

Value used during the characterization of templates.

Definition at line 698 of file technology_node.hpp.

Referenced by xload(), and xwrite().

◆ FU

technology_nodeRef functional_unit_template::FU

Functional Unit.

Definition at line 692 of file technology_node.hpp.

Referenced by allocation::get_compliant_pipelined_unit(), print(), xload(), and xwrite().

◆ memory_ctrl_type

std::string functional_unit_template::memory_ctrl_type

Specify the type of memory controller the functional unit is compliant with.

non-null only in case the functional unit is a memory controller.

Definition at line 709 of file technology_node.hpp.

Referenced by xload(), and xwrite().

◆ memory_type

std::string functional_unit_template::memory_type

Specify the type of memory the functional unit is compliant with.

non-null only in case the functional unit is a memory.

Definition at line 702 of file technology_node.hpp.

Referenced by xload(), and xwrite().

◆ no_constant_characterization

bool functional_unit_template::no_constant_characterization

The template will not consider constants connected to the inputs during the module characterization.

Definition at line 716 of file technology_node.hpp.

Referenced by xload(), and xwrite().

◆ specialized

std::string functional_unit_template::specialized

when non empty it defines with respect what the functional unit template has been specialized

Definition at line 695 of file technology_node.hpp.

Referenced by xload(), and xwrite().


The documentation for this struct was generated from the following files:

Generated on Mon Feb 12 2024 13:03:52 for PandA-2024.02 by doxygen 1.8.13