PandA-2024.02
Data Structures | Macros | Typedefs | Enumerations
technology_node.hpp File Reference

Class specification of the data structures used to manage technology information. More...

#include "config_HAVE_CIRCUIT_BUILT.hpp"
#include "config_HAVE_EXPERIMENTAL.hpp"
#include "refcount.hpp"
#include "simple_indent.hpp"
#include "utility.hpp"
#include <map>
#include <ostream>
#include <string>
#include <vector>
Include dependency graph for technology_node.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  technology_node
 Abstract pure class for the technology structure. More...
 
struct  operation
 This class specifies the characteristic of a particular operation working on a given functional unit. More...
 
struct  functional_unit
 This class specifies the characteristic of a particular functional unit. More...
 
struct  functional_unit_template
 This class describe a functional unit template. More...
 

Macros

#define LUT_GATE_STD   "LUT"
 FPGA modules. More...
 
#define IBUF_GATE_STD   "IBUF"
 
#define OBUF_GATE_STD   "OBUF"
 
#define AND_GATE_STD   "AND_GATE"
 
#define NAND_GATE_STD   "NAND_GATE"
 
#define OR_GATE_STD   "OR_GATE"
 
#define NOR_GATE_STD   "NOR_GATE"
 
#define XOR_GATE_STD   "XOR_GATE"
 
#define XNOR_GATE_STD   "XNOR_GATE"
 
#define NOT_GATE_STD   "NOT_GATE"
 
#define DFF_GATE_STD   "DFF_GATE"
 
#define BUFF_GATE_STD   "BUFF_GATE"
 
#define TEST_MUL_MUX_8   "TEST_MUL_MUX_8"
 
#define MUX_GATE_STD   "MUX_GATE"
 
#define DEMUX_GATE_STD   "DEMUX_GATE"
 
#define MUX_N_TO_1   "MUX_N_to_1"
 
#define MULTIPLIER_STD   "mult_expr_FU"
 
#define UI_MULTIPLIER_STD   "ui_mult_expr_FU"
 
#define UI_CONST_MULTIPLIER_STD   "ui_const_mult_expr_FU"
 
#define ADDER_STD   "plus_expr_FU"
 
#define COND_EXPR_STD   "cond_expr_FU"
 
#define UI_ADDER_STD   "ui_plus_expr_FU"
 
#define UI_ALIGN_ADDER_STD   "ui_align_plus_expr_FU"
 
#define CONCAT4_STD   "concat_4_constructor"
 
#define SIGNED_BITFIELD_FU_STD   "Sbitfield_FU"
 
#define UNSIGNED_BITFIELD_FU_STD   "Ubitfield_FU"
 
#define CONSTANT_STD   "constant_value"
 
#define ASSIGN_SIGNED_STD   "ASSIGN_SIGNED_FU"
 
#define ASSIGN_UNSIGNED_STD   "ASSIGN_UNSIGNED_FU"
 
#define ASSIGN_REAL_STD   "ASSIGN_REAL_FU"
 
#define ASSIGN_VECTOR_BOOL_STD   "ASSIGN_VECTOR_BOOL_FU"
 
#define ASSIGN_VEC_SIGNED_STD   "ASSIGN_VEC_SIGNED_FU"
 
#define ASSIGN_VEC_UNSIGNED_STD   "ASSIGN_VEC_UNSIGNED_FU"
 
#define ADDR_EXPR_STD   "addr_expr_FU"
 
#define ASSERT_EXPR_SIGNED_STD   "assert_expr_FU"
 
#define ASSERT_EXPR_UNSIGNED_STD   "ui_assert_expr_FU"
 
#define ASSERT_EXPR_REAL_STD   "fp_assert_expr_FU"
 
#define BMEMORY_STD   "BMEMORY_CTRL"
 
#define BMEMORY_STDN   "BMEMORY_CTRLN"
 
#define MEMCPY_STD   "__internal_bambu_memcpy"
 
#define ARRAY_1D_STD_BRAM   "ARRAY_1D_STD_BRAM"
 
#define ARRAY_1D_STD_BRAM_SDS   "ARRAY_1D_STD_BRAM_SDS"
 
#define ARRAY_1D_STD_BRAM_SDS_BUS   "ARRAY_1D_STD_BRAM_SDS_BUS"
 
#define ARRAY_1D_STD_DISTRAM_SDS   "ARRAY_1D_STD_DISTRAM_SDS"
 
#define ARRAY_1D_STD_BRAM_N1   "ARRAY_1D_STD_BRAM_N1"
 
#define ARRAY_1D_STD_BRAM_N1_SDS   "ARRAY_1D_STD_BRAM_N1_SDS"
 
#define ARRAY_1D_STD_DISTRAM_N1_SDS   "ARRAY_1D_STD_DISTRAM_N1_SDS"
 
#define ARRAY_1D_STD_BRAM_N1_SDS_BUS   "ARRAY_1D_STD_BRAM_N1_SDS_BUS"
 
#define ARRAY_1D_STD_BRAM_NN   "ARRAY_1D_STD_BRAM_NN"
 
#define ARRAY_1D_STD_BRAM_NN_SDS   "ARRAY_1D_STD_BRAM_NN_SDS"
 
#define ARRAY_1D_STD_BRAM_NN_SDS_BUS   "ARRAY_1D_STD_BRAM_NN_SDS_BUS"
 
#define ARRAY_1D_STD_DISTRAM_NN_SDS   "ARRAY_1D_STD_DISTRAM_NN_SDS"
 
#define STD_BRAM   "STD_BRAM"
 
#define STD_BRAMN   "STD_BRAMN"
 
#define MEMLOAD_STD   "__builtin_memload"
 
#define MEMSTORE_STD   "__builtin_memstore"
 
#define MEMLOAD_STDN   "__builtin_memload_N"
 
#define MEMSTORE_STDN   "__builtin_memstore_N"
 
#define BUILTIN_EXIT_STD   "__builtin_exit"
 
#define BUILTIN_ABORT_STD   "__builtin_abort"
 
#define BUILTIN_WAIT_CALL_STD   "__builtin_wait_call"
 
#define PROXY_CTRL   "PROXY_CTRL"
 
#define PROXY_CTRLN   "PROXY_CTRLN"
 
#define DPROXY_CTRL   "DPROXY_CTRL"
 
#define DPROXY_CTRLN   "DPROXY_CTRLN"
 
#define SPROXY_CTRL   "SPROXY_CTRL"
 
#define SPROXY_CTRLN   "SPROXY_CTRLN"
 
#define MEMORY_TYPE_ASYNCHRONOUS   "ASYNCHRONOUS"
 
#define MEMORY_TYPE_SYNCHRONOUS_UNALIGNED   "SYNCHRONOUS_UNALIGNED"
 
#define MEMORY_TYPE_SYNCHRONOUS_SDS   "SYNCHRONOUS_SDS"
 
#define MEMORY_TYPE_SYNCHRONOUS_SDS_BUS   "SYNCHRONOUS_SDS_BUS"
 
#define CHANNELS_TYPE_MEM_ACC_11   "MEM_ACC_11"
 
#define CHANNELS_TYPE_MEM_ACC_N1   "MEM_ACC_N1"
 
#define CHANNELS_TYPE_MEM_ACC_NN   "MEM_ACC_NN"
 
#define CHANNELS_TYPE_MEM_ACC_P1N   "MEM_ACC_P1N"
 
#define CHANNELS_TYPE_MEM_ACC_CS   "MEM_ACC_CS"
 
#define MEMORY_CTRL_TYPE_D00   "D00"
 
#define MEMORY_CTRL_TYPE_PROXY   "PROXY"
 
#define MEMORY_CTRL_TYPE_DPROXY   "DPROXY"
 
#define MEMORY_CTRL_TYPE_SPROXY   "SPROXY"
 
#define MEMORY_CTRL_TYPE_PROXYN   "PROXYN"
 
#define MEMORY_CTRL_TYPE_DPROXYN   "DPROXYN"
 
#define MEMORY_CTRL_TYPE_SPROXYN   "SPROXYN"
 
#define UUDATA_CONVERTER_STD   "UUdata_converter_FU"
 
#define IUDATA_CONVERTER_STD   "IUdata_converter_FU"
 
#define UIDATA_CONVERTER_STD   "UIdata_converter_FU"
 
#define IIDATA_CONVERTER_STD   "IIdata_converter_FU"
 
#define BIVECTOR_CONVERTER_STD   "BIvector_converter_FU"
 
#define BUVECTOR_CONVERTER_STD   "BUvector_converter_FU"
 
#define UBVECTOR_CONVERTER_STD   "UBvector_converter_FU"
 
#define IIVECTOR_CONVERTER_STD   "IIvector_converter_FU"
 
#define UUVECTOR_CONVERTER_STD   "UUvector_converter_FU"
 
#define UIVECTOR_CONVERTER_STD   "UIvector_converter_FU"
 
#define IUVECTOR_CONVERTER_STD   "IUvector_converter_FU"
 
#define FFDATA_CONVERTER_STD   "FFdata_converter_FU"
 
#define SF_FFDATA_CONVERTER_32_64_STD   "sf_FFdata_converter_FU_32_64"
 
#define SF_FFDATA_CONVERTER_64_32_STD   "sf_FFdata_converter_FU_64_32"
 
#define UUCONVERTER_EXPR_STD   "UUconvert_expr_FU"
 
#define IUCONVERTER_EXPR_STD   "IUconvert_expr_FU"
 
#define UICONVERTER_EXPR_STD   "UIconvert_expr_FU"
 
#define IICONVERTER_EXPR_STD   "IIconvert_expr_FU"
 
#define VIEW_CONVERT_STD_INT   "view_convert_expr_FU"
 
#define VIEW_CONVERT_STD_UINT   "ui_view_convert_expr_FU"
 
#define VIEW_CONVERT_STD_REAL   "fp_view_convert_expr_FU"
 
#define EXTRACT_BIT_EXPR_SIGNED_STD   "extract_bit_expr_FU"
 
#define EXTRACT_BIT_EXPR_UNSIGNED_STD   "ui_extract_bit_expr_FU"
 
#define LUT_EXPR_STD   "lut_expr_FU"
 
#define CE_STD   "CE_FU"
 
#define CE_FSM   "CE_FSM"
 
#define CE_BYPASS   "CE_BYPASS"
 
#define JOIN_STD   "JOIN_FU"
 
#define SIMPLEJOIN_STD   "SIMPLEJOIN_FU"
 
#define PT_STD   "PT_FU"
 
#define START_STD   "START_FU"
 
#define COND_STD   "COND_FU"
 
#define SWITCH_CASE_STD   "SWITCH_CASE_FU"
 
#define MC_STD   "MC_FU"
 
#define FC_STD   "FC_FU"
 
#define register_SHIFT   "register_SHIFT"
 simple shift register with reset More...
 
#define register_STD   "register_STD"
 simple register without reset More...
 
#define register_SR   "register_SR"
 register with synchronous reset More...
 
#define flipflop_SR   "flipflop_SR"
 flipflop with synchronous reset More...
 
#define register_AR   "register_AR"
 register with asynchronous reset More...
 
#define flipflop_AR   "flipflop_AR"
 flipflop with asynchronous reset More...
 
#define register_AR_NORETIME   "register_AR_NORETIME"
 register with asynchronous reset no retime More...
 
#define register_AR_NORETIME_INT   "register_AR_NORETIME_INT"
 
#define register_AR_NORETIME_UINT   "register_AR_NORETIME_UINT"
 
#define register_AR_NORETIME_REAL   "register_AR_NORETIME_REAL"
 
#define register_SE   "register_SE"
 register with synchronous enable More...
 
#define register_SRSE   "register_SRSE"
 register with synchronous reset and synchronous enable More...
 
#define register_ARSE   "register_ARSE"
 register with asynchronous reset and synchronous enable More...
 
#define register_SARSE   "register_SARSE"
 register with synchronized asynchronous reset and synchronous enable More...
 
#define MEMORY_MAPPED_REGISTER_FU   "memory_mapped_register_FU"
 memory mapped register More...
 
#define RETURN_MM_REGISTER_FU   "return_value_mm_register_FU"
 
#define NOTYFY_CALLER_MINIMAL_FU   "notify_caller_minimal_FU"
 
#define STATUS_REGISTER_FU   "status_register_FU"
 
#define STATUS_REGISTER_NO_NOTIFIED_FU   "status_register_no_notified_FU"
 
#define MEMORY_MAPPED_REGISTERN_FU   "memory_mapped_registerN_FU"
 
#define RETURN_MM_REGISTERN_FU   "return_value_mm_registerN_FU"
 
#define NOTYFY_CALLER_MINIMALN_FU   "notify_caller_minimalN_FU"
 
#define STATUS_REGISTERN_FU   "status_registerN_FU"
 
#define STATUS_REGISTER_NO_NOTIFIEDN_FU   "status_register_no_notifiedN_FU"
 
#define GET_TEC_KIND_TEXT(meth)
 Macro which defines the get_kind_text function that returns the parameter as a string. More...
 
#define GET_TEC_KIND(meth)
 Macro used to implement get_kind() function in structural_object hierarchy classes. More...
 

Typedefs

using technology_nodeRef = refcount< technology_node >
 refcount definition of the class More...
 
using technology_nodeConstRef = refcount< const technology_node >
 

Enumerations

enum  tec_kind { operation_K, functional_unit_K, functional_unit_template_K }
 Enumerative type for technology object classes, it is used with get_kind() function to know the actual type of a technology_node. More...
 

Functions

forward declarations
 REF_FORWARD_DECL (technology_node)
 RefCount type definition of the technology_node class structure. More...
 
 REF_FORWARD_DECL (xml_node)
 forward decl of xml Element More...
 
 REF_FORWARD_DECL (technology_manager)
 RefCount type definition of the technology_manager class structure. More...
 
 CONSTREF_FORWARD_DECL (Parameter)
 
 REF_FORWARD_DECL (attribute)
 
 REF_FORWARD_DECL (area_info)
 RefCount definition of the resource information of the component. More...
 
 REF_FORWARD_DECL (layout_model)
 RefCount definition of the layout information of the component. More...
 
 REF_FORWARD_DECL (time_info)
 RefCount definition of the timing information of the component. More...
 
 REF_FORWARD_DECL (power_model)
 RefCount definition of the power information of the component. More...
 

Detailed Description

Class specification of the data structures used to manage technology information.

Author
Fabrizio Ferrandi fabri.nosp@m.zio..nosp@m.ferra.nosp@m.ndi@.nosp@m.polim.nosp@m.i.it

Definition in file technology_node.hpp.

Macro Definition Documentation

◆ ADDER_STD

#define ADDER_STD   "plus_expr_FU"

◆ ADDR_EXPR_STD

#define ADDR_EXPR_STD   "addr_expr_FU"

Definition at line 119 of file technology_node.hpp.

Referenced by allocation::InternalExec().

◆ AND_GATE_STD

#define AND_GATE_STD   "AND_GATE"

◆ ARRAY_1D_STD_BRAM

#define ARRAY_1D_STD_BRAM   "ARRAY_1D_STD_BRAM"

◆ ARRAY_1D_STD_BRAM_N1

#define ARRAY_1D_STD_BRAM_N1   "ARRAY_1D_STD_BRAM_N1"

Definition at line 130 of file technology_node.hpp.

Referenced by allocation::IntegrateTechnologyLibraries().

◆ ARRAY_1D_STD_BRAM_N1_SDS

#define ARRAY_1D_STD_BRAM_N1_SDS   "ARRAY_1D_STD_BRAM_N1_SDS"

Definition at line 131 of file technology_node.hpp.

Referenced by allocation::IntegrateTechnologyLibraries().

◆ ARRAY_1D_STD_BRAM_N1_SDS_BUS

#define ARRAY_1D_STD_BRAM_N1_SDS_BUS   "ARRAY_1D_STD_BRAM_N1_SDS_BUS"

Definition at line 133 of file technology_node.hpp.

Referenced by allocation::IntegrateTechnologyLibraries().

◆ ARRAY_1D_STD_BRAM_NN

#define ARRAY_1D_STD_BRAM_NN   "ARRAY_1D_STD_BRAM_NN"

◆ ARRAY_1D_STD_BRAM_NN_SDS

#define ARRAY_1D_STD_BRAM_NN_SDS   "ARRAY_1D_STD_BRAM_NN_SDS"

◆ ARRAY_1D_STD_BRAM_NN_SDS_BUS

#define ARRAY_1D_STD_BRAM_NN_SDS_BUS   "ARRAY_1D_STD_BRAM_NN_SDS_BUS"

◆ ARRAY_1D_STD_BRAM_SDS

#define ARRAY_1D_STD_BRAM_SDS   "ARRAY_1D_STD_BRAM_SDS"

◆ ARRAY_1D_STD_BRAM_SDS_BUS

#define ARRAY_1D_STD_BRAM_SDS_BUS   "ARRAY_1D_STD_BRAM_SDS_BUS"

◆ ARRAY_1D_STD_DISTRAM_N1_SDS

#define ARRAY_1D_STD_DISTRAM_N1_SDS   "ARRAY_1D_STD_DISTRAM_N1_SDS"

Definition at line 132 of file technology_node.hpp.

Referenced by allocation::IntegrateTechnologyLibraries().

◆ ARRAY_1D_STD_DISTRAM_NN_SDS

#define ARRAY_1D_STD_DISTRAM_NN_SDS   "ARRAY_1D_STD_DISTRAM_NN_SDS"

◆ ARRAY_1D_STD_DISTRAM_SDS

#define ARRAY_1D_STD_DISTRAM_SDS   "ARRAY_1D_STD_DISTRAM_SDS"

◆ ASSERT_EXPR_REAL_STD

#define ASSERT_EXPR_REAL_STD   "fp_assert_expr_FU"

Definition at line 122 of file technology_node.hpp.

Referenced by allocation::InternalExec().

◆ ASSERT_EXPR_SIGNED_STD

#define ASSERT_EXPR_SIGNED_STD   "assert_expr_FU"

Definition at line 120 of file technology_node.hpp.

Referenced by allocation::InternalExec().

◆ ASSERT_EXPR_UNSIGNED_STD

#define ASSERT_EXPR_UNSIGNED_STD   "ui_assert_expr_FU"

Definition at line 121 of file technology_node.hpp.

Referenced by allocation::InternalExec().

◆ ASSIGN_REAL_STD

#define ASSIGN_REAL_STD   "ASSIGN_REAL_FU"

◆ ASSIGN_SIGNED_STD

#define ASSIGN_SIGNED_STD   "ASSIGN_SIGNED_FU"

◆ ASSIGN_UNSIGNED_STD

#define ASSIGN_UNSIGNED_STD   "ASSIGN_UNSIGNED_FU"

◆ ASSIGN_VEC_SIGNED_STD

#define ASSIGN_VEC_SIGNED_STD   "ASSIGN_VEC_SIGNED_FU"

Definition at line 117 of file technology_node.hpp.

Referenced by allocation::InternalExec().

◆ ASSIGN_VEC_UNSIGNED_STD

#define ASSIGN_VEC_UNSIGNED_STD   "ASSIGN_VEC_UNSIGNED_FU"

Definition at line 118 of file technology_node.hpp.

Referenced by allocation::InternalExec().

◆ ASSIGN_VECTOR_BOOL_STD

#define ASSIGN_VECTOR_BOOL_STD   "ASSIGN_VECTOR_BOOL_FU"

◆ BIVECTOR_CONVERTER_STD

#define BIVECTOR_CONVERTER_STD   "BIvector_converter_FU"

Definition at line 177 of file technology_node.hpp.

Referenced by allocation::InternalExec().

◆ BMEMORY_STD

#define BMEMORY_STD   "BMEMORY_CTRL"

◆ BMEMORY_STDN

#define BMEMORY_STDN   "BMEMORY_CTRLN"

◆ BUFF_GATE_STD

#define BUFF_GATE_STD   "BUFF_GATE"

Definition at line 96 of file technology_node.hpp.

Referenced by LoadBuiltinTechnology::Exec().

◆ BUILTIN_ABORT_STD

#define BUILTIN_ABORT_STD   "__builtin_abort"

Definition at line 145 of file technology_node.hpp.

◆ BUILTIN_EXIT_STD

#define BUILTIN_EXIT_STD   "__builtin_exit"

Definition at line 144 of file technology_node.hpp.

◆ BUILTIN_WAIT_CALL_STD

#define BUILTIN_WAIT_CALL_STD   "__builtin_wait_call"

Definition at line 146 of file technology_node.hpp.

◆ BUVECTOR_CONVERTER_STD

#define BUVECTOR_CONVERTER_STD   "BUvector_converter_FU"

Definition at line 178 of file technology_node.hpp.

Referenced by allocation::InternalExec().

◆ CE_BYPASS

#define CE_BYPASS   "CE_BYPASS"

Definition at line 204 of file technology_node.hpp.

◆ CE_FSM

#define CE_FSM   "CE_FSM"

Definition at line 203 of file technology_node.hpp.

◆ CE_STD

#define CE_STD   "CE_FU"

Definition at line 202 of file technology_node.hpp.

◆ CHANNELS_TYPE_MEM_ACC_11

#define CHANNELS_TYPE_MEM_ACC_11   "MEM_ACC_11"

Definition at line 159 of file technology_node.hpp.

Referenced by RTLCharacterization::AnalyzeCell(), and BambuParameter::Exec().

◆ CHANNELS_TYPE_MEM_ACC_CS

#define CHANNELS_TYPE_MEM_ACC_CS   "MEM_ACC_CS"

Definition at line 163 of file technology_node.hpp.

Referenced by allocation::check_for_memory_compliancy().

◆ CHANNELS_TYPE_MEM_ACC_N1

#define CHANNELS_TYPE_MEM_ACC_N1   "MEM_ACC_N1"

◆ CHANNELS_TYPE_MEM_ACC_NN

#define CHANNELS_TYPE_MEM_ACC_NN   "MEM_ACC_NN"

◆ CHANNELS_TYPE_MEM_ACC_P1N

#define CHANNELS_TYPE_MEM_ACC_P1N   "MEM_ACC_P1N"

◆ CONCAT4_STD

#define CONCAT4_STD   "concat_4_constructor"

Definition at line 109 of file technology_node.hpp.

◆ COND_EXPR_STD

#define COND_EXPR_STD   "cond_expr_FU"

Definition at line 106 of file technology_node.hpp.

Referenced by AllocationInformation::get_correction_time().

◆ COND_STD

#define COND_STD   "COND_FU"

Definition at line 209 of file technology_node.hpp.

◆ CONSTANT_STD

#define CONSTANT_STD   "constant_value"

◆ DEMUX_GATE_STD

#define DEMUX_GATE_STD   "DEMUX_GATE"

◆ DFF_GATE_STD

#define DFF_GATE_STD   "DFF_GATE"

Definition at line 95 of file technology_node.hpp.

Referenced by LoadBuiltinTechnology::Exec().

◆ DPROXY_CTRL

#define DPROXY_CTRL   "DPROXY_CTRL"

Definition at line 149 of file technology_node.hpp.

Referenced by allocation::IntegrateTechnologyLibraries().

◆ DPROXY_CTRLN

#define DPROXY_CTRLN   "DPROXY_CTRLN"

Definition at line 150 of file technology_node.hpp.

Referenced by allocation::IntegrateTechnologyLibraries().

◆ EXTRACT_BIT_EXPR_SIGNED_STD

#define EXTRACT_BIT_EXPR_SIGNED_STD   "extract_bit_expr_FU"

Definition at line 197 of file technology_node.hpp.

Referenced by allocation::InternalExec().

◆ EXTRACT_BIT_EXPR_UNSIGNED_STD

#define EXTRACT_BIT_EXPR_UNSIGNED_STD   "ui_extract_bit_expr_FU"

Definition at line 198 of file technology_node.hpp.

Referenced by allocation::InternalExec().

◆ FC_STD

#define FC_STD   "FC_FU"

Definition at line 212 of file technology_node.hpp.

◆ FFDATA_CONVERTER_STD

#define FFDATA_CONVERTER_STD   "FFdata_converter_FU"

◆ flipflop_AR

#define flipflop_AR   "flipflop_AR"

flipflop with asynchronous reset

Definition at line 230 of file technology_node.hpp.

Referenced by fu_binding::add_to_SM(), top_entity_parallel_cs::InternalExec(), and top_entity::InternalExec().

◆ flipflop_SR

#define flipflop_SR   "flipflop_SR"

◆ GET_TEC_KIND

#define GET_TEC_KIND (   meth)
Value:
enum tec_kind get_kind() const override \
{ \
return (meth##_K); \
}
tec_kind
Enumerative type for technology object classes, it is used with get_kind() function to know the actua...

Macro used to implement get_kind() function in structural_object hierarchy classes.

Definition at line 280 of file technology_node.hpp.

Referenced by functional_unit::get_name(), functional_unit_template::get_name(), and operation::is_primary_inputs_registered().

◆ GET_TEC_KIND_TEXT

#define GET_TEC_KIND_TEXT (   meth)
Value:
std::string get_kind_text() const override \
{ \
return std::string(#meth); \
}

Macro which defines the get_kind_text function that returns the parameter as a string.

Definition at line 260 of file technology_node.hpp.

Referenced by functional_unit::get_name(), functional_unit_template::get_name(), and operation::is_primary_inputs_registered().

◆ IBUF_GATE_STD

#define IBUF_GATE_STD   "IBUF"

Definition at line 84 of file technology_node.hpp.

◆ IICONVERTER_EXPR_STD

#define IICONVERTER_EXPR_STD   "IIconvert_expr_FU"

Definition at line 192 of file technology_node.hpp.

Referenced by allocation::InternalExec().

◆ IIDATA_CONVERTER_STD

#define IIDATA_CONVERTER_STD   "IIdata_converter_FU"

◆ IIVECTOR_CONVERTER_STD

#define IIVECTOR_CONVERTER_STD   "IIvector_converter_FU"

Definition at line 180 of file technology_node.hpp.

Referenced by allocation::InternalExec().

◆ IUCONVERTER_EXPR_STD

#define IUCONVERTER_EXPR_STD   "IUconvert_expr_FU"

Definition at line 190 of file technology_node.hpp.

Referenced by allocation::InternalExec().

◆ IUDATA_CONVERTER_STD

#define IUDATA_CONVERTER_STD   "IUdata_converter_FU"

◆ IUVECTOR_CONVERTER_STD

#define IUVECTOR_CONVERTER_STD   "IUvector_converter_FU"

Definition at line 183 of file technology_node.hpp.

Referenced by allocation::InternalExec().

◆ JOIN_STD

#define JOIN_STD   "JOIN_FU"

Definition at line 205 of file technology_node.hpp.

◆ LUT_EXPR_STD

#define LUT_EXPR_STD   "lut_expr_FU"

◆ LUT_GATE_STD

#define LUT_GATE_STD   "LUT"

FPGA modules.

Definition at line 83 of file technology_node.hpp.

Referenced by FunctionalUnitStep::AnalyzeFu().

◆ MC_STD

#define MC_STD   "MC_FU"

Definition at line 211 of file technology_node.hpp.

◆ MEMCPY_STD

#define MEMCPY_STD   "__internal_bambu_memcpy"

Definition at line 125 of file technology_node.hpp.

Referenced by fu_binding::add_to_SM().

◆ MEMLOAD_STD

#define MEMLOAD_STD   "__builtin_memload"

Definition at line 140 of file technology_node.hpp.

Referenced by RTLCharacterization::AnalyzeCell().

◆ MEMLOAD_STDN

#define MEMLOAD_STDN   "__builtin_memload_N"

Definition at line 142 of file technology_node.hpp.

◆ MEMORY_CTRL_TYPE_D00

#define MEMORY_CTRL_TYPE_D00   "D00"

Definition at line 165 of file technology_node.hpp.

Referenced by AllocationInformation::get_correction_time().

◆ MEMORY_CTRL_TYPE_DPROXY

#define MEMORY_CTRL_TYPE_DPROXY   "DPROXY"

◆ MEMORY_CTRL_TYPE_DPROXYN

#define MEMORY_CTRL_TYPE_DPROXYN   "DPROXYN"

◆ MEMORY_CTRL_TYPE_PROXY

#define MEMORY_CTRL_TYPE_PROXY   "PROXY"

◆ MEMORY_CTRL_TYPE_PROXYN

#define MEMORY_CTRL_TYPE_PROXYN   "PROXYN"

◆ MEMORY_CTRL_TYPE_SPROXY

#define MEMORY_CTRL_TYPE_SPROXY   "SPROXY"

◆ MEMORY_CTRL_TYPE_SPROXYN

#define MEMORY_CTRL_TYPE_SPROXYN   "SPROXYN"

◆ MEMORY_MAPPED_REGISTER_FU

#define MEMORY_MAPPED_REGISTER_FU   "memory_mapped_register_FU"

memory mapped register

Definition at line 246 of file technology_node.hpp.

Referenced by TopEntityMemoryMapped::insertMemoryMappedRegister().

◆ MEMORY_MAPPED_REGISTERN_FU

#define MEMORY_MAPPED_REGISTERN_FU   "memory_mapped_registerN_FU"

◆ MEMORY_TYPE_ASYNCHRONOUS

#define MEMORY_TYPE_ASYNCHRONOUS   "ASYNCHRONOUS"

◆ MEMORY_TYPE_SYNCHRONOUS_SDS

#define MEMORY_TYPE_SYNCHRONOUS_SDS   "SYNCHRONOUS_SDS"

◆ MEMORY_TYPE_SYNCHRONOUS_SDS_BUS

#define MEMORY_TYPE_SYNCHRONOUS_SDS_BUS   "SYNCHRONOUS_SDS_BUS"

◆ MEMORY_TYPE_SYNCHRONOUS_UNALIGNED

#define MEMORY_TYPE_SYNCHRONOUS_UNALIGNED   "SYNCHRONOUS_UNALIGNED"

◆ MEMSTORE_STD

#define MEMSTORE_STD   "__builtin_memstore"

Definition at line 141 of file technology_node.hpp.

Referenced by fu_binding::add_to_SM(), and RTLCharacterization::AnalyzeCell().

◆ MEMSTORE_STDN

#define MEMSTORE_STDN   "__builtin_memstore_N"

Definition at line 143 of file technology_node.hpp.

Referenced by fu_binding::add_to_SM().

◆ MULTIPLIER_STD

#define MULTIPLIER_STD   "mult_expr_FU"

◆ MUX_GATE_STD

#define MUX_GATE_STD   "MUX_GATE"

◆ MUX_N_TO_1

#define MUX_N_TO_1   "MUX_N_to_1"

Definition at line 101 of file technology_node.hpp.

Referenced by AllocationInformation::InitializeMuxDB().

◆ NAND_GATE_STD

#define NAND_GATE_STD   "NAND_GATE"

◆ NOR_GATE_STD

#define NOR_GATE_STD   "NOR_GATE"

◆ NOT_GATE_STD

#define NOT_GATE_STD   "NOT_GATE"

◆ NOTYFY_CALLER_MINIMAL_FU

#define NOTYFY_CALLER_MINIMAL_FU   "notify_caller_minimal_FU"

Definition at line 248 of file technology_node.hpp.

Referenced by TopEntityMemoryMapped::insertStartDoneLogic().

◆ NOTYFY_CALLER_MINIMALN_FU

#define NOTYFY_CALLER_MINIMALN_FU   "notify_caller_minimalN_FU"

Definition at line 253 of file technology_node.hpp.

Referenced by TopEntityMemoryMapped::insertStartDoneLogic().

◆ OBUF_GATE_STD

#define OBUF_GATE_STD   "OBUF"

Definition at line 85 of file technology_node.hpp.

◆ OR_GATE_STD

#define OR_GATE_STD   "OR_GATE"

◆ PROXY_CTRL

#define PROXY_CTRL   "PROXY_CTRL"

Definition at line 147 of file technology_node.hpp.

Referenced by allocation::IntegrateTechnologyLibraries().

◆ PROXY_CTRLN

#define PROXY_CTRLN   "PROXY_CTRLN"

Definition at line 148 of file technology_node.hpp.

Referenced by allocation::IntegrateTechnologyLibraries().

◆ PT_STD

#define PT_STD   "PT_FU"

Definition at line 207 of file technology_node.hpp.

◆ register_AR

#define register_AR   "register_AR"

register with asynchronous reset

Definition at line 227 of file technology_node.hpp.

◆ register_AR_NORETIME

#define register_AR_NORETIME   "register_AR_NORETIME"

◆ register_AR_NORETIME_INT

#define register_AR_NORETIME_INT   "register_AR_NORETIME_INT"

◆ register_AR_NORETIME_REAL

#define register_AR_NORETIME_REAL   "register_AR_NORETIME_REAL"

◆ register_AR_NORETIME_UINT

#define register_AR_NORETIME_UINT   "register_AR_NORETIME_UINT"

◆ register_ARSE

#define register_ARSE   "register_ARSE"

register with asynchronous reset and synchronous enable

Definition at line 242 of file technology_node.hpp.

◆ register_SARSE

#define register_SARSE   "register_SARSE"

register with synchronized asynchronous reset and synchronous enable

Definition at line 244 of file technology_node.hpp.

Referenced by reg_binding::GetRegisterFUName().

◆ register_SE

#define register_SE   "register_SE"

register with synchronous enable

Definition at line 238 of file technology_node.hpp.

Referenced by reg_binding::GetRegisterFUName(), and TasteInterfaceGeneration::InternalExec().

◆ register_SHIFT

#define register_SHIFT   "register_SHIFT"

simple shift register with reset

Definition at line 215 of file technology_node.hpp.

Referenced by pipeline_controller::InternalExec().

◆ register_SR

#define register_SR   "register_SR"

register with synchronous reset

Definition at line 221 of file technology_node.hpp.

◆ register_SRSE

#define register_SRSE   "register_SRSE"

register with synchronous reset and synchronous enable

Definition at line 240 of file technology_node.hpp.

Referenced by reg_binding::GetRegisterFUName().

◆ register_STD

#define register_STD   "register_STD"

simple register without reset

Definition at line 218 of file technology_node.hpp.

Referenced by top_entity::add_input_register(), and reg_binding::GetRegisterFUName().

◆ RETURN_MM_REGISTER_FU

#define RETURN_MM_REGISTER_FU   "return_value_mm_register_FU"

◆ RETURN_MM_REGISTERN_FU

#define RETURN_MM_REGISTERN_FU   "return_value_mm_registerN_FU"

◆ SF_FFDATA_CONVERTER_32_64_STD

#define SF_FFDATA_CONVERTER_32_64_STD   "sf_FFdata_converter_FU_32_64"

◆ SF_FFDATA_CONVERTER_64_32_STD

#define SF_FFDATA_CONVERTER_64_32_STD   "sf_FFdata_converter_FU_64_32"

◆ SIGNED_BITFIELD_FU_STD

#define SIGNED_BITFIELD_FU_STD   "Sbitfield_FU"

Definition at line 110 of file technology_node.hpp.

◆ SIMPLEJOIN_STD

#define SIMPLEJOIN_STD   "SIMPLEJOIN_FU"

Definition at line 206 of file technology_node.hpp.

Referenced by StateTransitionGraphManager::add_to_SM().

◆ SPROXY_CTRL

#define SPROXY_CTRL   "SPROXY_CTRL"

Definition at line 151 of file technology_node.hpp.

Referenced by allocation::IntegrateTechnologyLibraries().

◆ SPROXY_CTRLN

#define SPROXY_CTRLN   "SPROXY_CTRLN"

Definition at line 152 of file technology_node.hpp.

Referenced by allocation::IntegrateTechnologyLibraries().

◆ START_STD

#define START_STD   "START_FU"

Definition at line 208 of file technology_node.hpp.

◆ STATUS_REGISTER_FU

#define STATUS_REGISTER_FU   "status_register_FU"

Definition at line 249 of file technology_node.hpp.

Referenced by TopEntityMemoryMapped::insertStatusRegister().

◆ STATUS_REGISTER_NO_NOTIFIED_FU

#define STATUS_REGISTER_NO_NOTIFIED_FU   "status_register_no_notified_FU"

Definition at line 250 of file technology_node.hpp.

Referenced by TopEntityMemoryMapped::insertStatusRegister().

◆ STATUS_REGISTER_NO_NOTIFIEDN_FU

#define STATUS_REGISTER_NO_NOTIFIEDN_FU   "status_register_no_notifiedN_FU"

Definition at line 255 of file technology_node.hpp.

Referenced by TopEntityMemoryMapped::insertStatusRegister().

◆ STATUS_REGISTERN_FU

#define STATUS_REGISTERN_FU   "status_registerN_FU"

Definition at line 254 of file technology_node.hpp.

Referenced by TopEntityMemoryMapped::insertStatusRegister().

◆ STD_BRAM

#define STD_BRAM   "STD_BRAM"

Definition at line 138 of file technology_node.hpp.

Referenced by minimal_interface::build_wrapper().

◆ STD_BRAMN

#define STD_BRAMN   "STD_BRAMN"

Definition at line 139 of file technology_node.hpp.

Referenced by minimal_interface::build_wrapper().

◆ SWITCH_CASE_STD

#define SWITCH_CASE_STD   "SWITCH_CASE_FU"

Definition at line 210 of file technology_node.hpp.

◆ TEST_MUL_MUX_8

#define TEST_MUL_MUX_8   "TEST_MUL_MUX_8"

Definition at line 98 of file technology_node.hpp.

Referenced by RTLCharacterization::fix_muxes().

◆ UBVECTOR_CONVERTER_STD

#define UBVECTOR_CONVERTER_STD   "UBvector_converter_FU"

Definition at line 179 of file technology_node.hpp.

Referenced by allocation::InternalExec().

◆ UI_ADDER_STD

#define UI_ADDER_STD   "ui_plus_expr_FU"

Definition at line 107 of file technology_node.hpp.

Referenced by conn_binding::add_sparse_logic_dp().

◆ UI_ALIGN_ADDER_STD

#define UI_ALIGN_ADDER_STD   "ui_align_plus_expr_FU"

Definition at line 108 of file technology_node.hpp.

Referenced by conn_binding::add_sparse_logic_dp().

◆ UI_CONST_MULTIPLIER_STD

#define UI_CONST_MULTIPLIER_STD   "ui_const_mult_expr_FU"

Definition at line 104 of file technology_node.hpp.

◆ UI_MULTIPLIER_STD

#define UI_MULTIPLIER_STD   "ui_mult_expr_FU"

Definition at line 103 of file technology_node.hpp.

◆ UICONVERTER_EXPR_STD

#define UICONVERTER_EXPR_STD   "UIconvert_expr_FU"

Definition at line 191 of file technology_node.hpp.

Referenced by allocation::InternalExec().

◆ UIDATA_CONVERTER_STD

#define UIDATA_CONVERTER_STD   "UIdata_converter_FU"

◆ UIVECTOR_CONVERTER_STD

#define UIVECTOR_CONVERTER_STD   "UIvector_converter_FU"

Definition at line 182 of file technology_node.hpp.

Referenced by allocation::InternalExec().

◆ UNSIGNED_BITFIELD_FU_STD

#define UNSIGNED_BITFIELD_FU_STD   "Ubitfield_FU"

Definition at line 111 of file technology_node.hpp.

◆ UUCONVERTER_EXPR_STD

#define UUCONVERTER_EXPR_STD   "UUconvert_expr_FU"

Definition at line 189 of file technology_node.hpp.

Referenced by allocation::InternalExec().

◆ UUDATA_CONVERTER_STD

#define UUDATA_CONVERTER_STD   "UUdata_converter_FU"

◆ UUVECTOR_CONVERTER_STD

#define UUVECTOR_CONVERTER_STD   "UUvector_converter_FU"

Definition at line 181 of file technology_node.hpp.

Referenced by allocation::InternalExec().

◆ VIEW_CONVERT_STD_INT

#define VIEW_CONVERT_STD_INT   "view_convert_expr_FU"

◆ VIEW_CONVERT_STD_REAL

#define VIEW_CONVERT_STD_REAL   "fp_view_convert_expr_FU"

Definition at line 195 of file technology_node.hpp.

Referenced by allocation::InternalExec().

◆ VIEW_CONVERT_STD_UINT

#define VIEW_CONVERT_STD_UINT   "ui_view_convert_expr_FU"

◆ XNOR_GATE_STD

#define XNOR_GATE_STD   "XNOR_GATE"

◆ XOR_GATE_STD

#define XOR_GATE_STD   "XOR_GATE"

Typedef Documentation

◆ technology_nodeConstRef

Definition at line 359 of file technology_node.hpp.

◆ technology_nodeRef

refcount definition of the class

Definition at line 358 of file technology_node.hpp.

Enumeration Type Documentation

◆ tec_kind

enum tec_kind

Enumerative type for technology object classes, it is used with get_kind() function to know the actual type of a technology_node.

Enumerator
operation_K 
functional_unit_K 
functional_unit_template_K 

Definition at line 270 of file technology_node.hpp.

Function Documentation

◆ CONSTREF_FORWARD_DECL()

CONSTREF_FORWARD_DECL ( Parameter  )

◆ REF_FORWARD_DECL() [1/8]

REF_FORWARD_DECL ( technology_node  )

RefCount type definition of the technology_node class structure.

◆ REF_FORWARD_DECL() [2/8]

REF_FORWARD_DECL ( xml_node  )

forward decl of xml Element

◆ REF_FORWARD_DECL() [3/8]

REF_FORWARD_DECL ( technology_manager  )

RefCount type definition of the technology_manager class structure.

◆ REF_FORWARD_DECL() [4/8]

REF_FORWARD_DECL ( attribute  )

◆ REF_FORWARD_DECL() [5/8]

REF_FORWARD_DECL ( area_info  )

RefCount definition of the resource information of the component.

◆ REF_FORWARD_DECL() [6/8]

REF_FORWARD_DECL ( layout_model  )

RefCount definition of the layout information of the component.

◆ REF_FORWARD_DECL() [7/8]

REF_FORWARD_DECL ( time_info  )

RefCount definition of the timing information of the component.

◆ REF_FORWARD_DECL() [8/8]

REF_FORWARD_DECL ( power_model  )

RefCount definition of the power information of the component.


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