PandA-2024.02
|
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>
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... | |
Class specification of the data structures used to manage technology information.
Definition in file technology_node.hpp.
#define ADDER_STD "plus_expr_FU" |
Definition at line 105 of file technology_node.hpp.
Referenced by IR_lowering::expand_MC(), and AllocationInformation::get_correction_time().
#define ADDR_EXPR_STD "addr_expr_FU" |
Definition at line 119 of file technology_node.hpp.
Referenced by allocation::InternalExec().
#define AND_GATE_STD "AND_GATE" |
Definition at line 88 of file technology_node.hpp.
Referenced by FunctionalUnitStep::AnalyzeFu(), WB4_interface::build_WB4_complete_logic(), LoadBuiltinTechnology::Exec(), TestbenchGeneration::Exec(), conn_binding_cs::instantiate_suspension_component(), and VHDL_writer::WriteBuiltin().
#define ARRAY_1D_STD_BRAM "ARRAY_1D_STD_BRAM" |
Definition at line 126 of file technology_node.hpp.
Referenced by RTLCharacterization::fix_proxies_execution_time_std(), and allocation::IntegrateTechnologyLibraries().
#define ARRAY_1D_STD_BRAM_N1 "ARRAY_1D_STD_BRAM_N1" |
Definition at line 130 of file technology_node.hpp.
Referenced by allocation::IntegrateTechnologyLibraries().
#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().
#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().
#define ARRAY_1D_STD_BRAM_NN "ARRAY_1D_STD_BRAM_NN" |
Definition at line 134 of file technology_node.hpp.
Referenced by RTLCharacterization::fix_proxies_execution_time_std(), AllocationInformation::get_correction_time(), allocation::IntegrateTechnologyLibraries(), and TasteInterfaceGeneration::InternalExec().
#define ARRAY_1D_STD_BRAM_NN_SDS "ARRAY_1D_STD_BRAM_NN_SDS" |
Definition at line 135 of file technology_node.hpp.
Referenced by InterfaceInfer::create_resource_array(), AllocationInformation::get_correction_time(), and allocation::IntegrateTechnologyLibraries().
#define ARRAY_1D_STD_BRAM_NN_SDS_BUS "ARRAY_1D_STD_BRAM_NN_SDS_BUS" |
Definition at line 136 of file technology_node.hpp.
Referenced by AllocationInformation::get_correction_time(), and allocation::IntegrateTechnologyLibraries().
#define ARRAY_1D_STD_BRAM_SDS "ARRAY_1D_STD_BRAM_SDS" |
Definition at line 127 of file technology_node.hpp.
Referenced by InterfaceInfer::create_resource_array(), AllocationInformation::get_correction_time(), and allocation::IntegrateTechnologyLibraries().
#define ARRAY_1D_STD_BRAM_SDS_BUS "ARRAY_1D_STD_BRAM_SDS_BUS" |
Definition at line 128 of file technology_node.hpp.
Referenced by AllocationInformation::get_correction_time(), and allocation::IntegrateTechnologyLibraries().
#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().
#define ARRAY_1D_STD_DISTRAM_NN_SDS "ARRAY_1D_STD_DISTRAM_NN_SDS" |
Definition at line 137 of file technology_node.hpp.
Referenced by AllocationInformation::get_correction_time(), and allocation::IntegrateTechnologyLibraries().
#define ARRAY_1D_STD_DISTRAM_SDS "ARRAY_1D_STD_DISTRAM_SDS" |
Definition at line 129 of file technology_node.hpp.
Referenced by AllocationInformation::get_correction_time(), and allocation::IntegrateTechnologyLibraries().
#define ASSERT_EXPR_REAL_STD "fp_assert_expr_FU" |
Definition at line 122 of file technology_node.hpp.
Referenced by allocation::InternalExec().
#define ASSERT_EXPR_SIGNED_STD "assert_expr_FU" |
Definition at line 120 of file technology_node.hpp.
Referenced by allocation::InternalExec().
#define ASSERT_EXPR_UNSIGNED_STD "ui_assert_expr_FU" |
Definition at line 121 of file technology_node.hpp.
Referenced by allocation::InternalExec().
#define ASSIGN_REAL_STD "ASSIGN_REAL_FU" |
Definition at line 115 of file technology_node.hpp.
Referenced by conn_binding::add_sparse_logic_dp(), allocation::InternalExec(), AllocationInformation::is_artificial_fu(), and AllocationInformation::is_assign().
#define ASSIGN_SIGNED_STD "ASSIGN_SIGNED_FU" |
Definition at line 113 of file technology_node.hpp.
Referenced by conn_binding::add_sparse_logic_dp(), allocation::InternalExec(), AllocationInformation::is_artificial_fu(), and AllocationInformation::is_assign().
#define ASSIGN_UNSIGNED_STD "ASSIGN_UNSIGNED_FU" |
Definition at line 114 of file technology_node.hpp.
Referenced by conn_binding::add_sparse_logic_dp(), allocation::InternalExec(), AllocationInformation::is_artificial_fu(), and AllocationInformation::is_assign().
#define ASSIGN_VEC_SIGNED_STD "ASSIGN_VEC_SIGNED_FU" |
Definition at line 117 of file technology_node.hpp.
Referenced by allocation::InternalExec().
#define ASSIGN_VEC_UNSIGNED_STD "ASSIGN_VEC_UNSIGNED_FU" |
Definition at line 118 of file technology_node.hpp.
Referenced by allocation::InternalExec().
#define ASSIGN_VECTOR_BOOL_STD "ASSIGN_VECTOR_BOOL_FU" |
Definition at line 116 of file technology_node.hpp.
Referenced by RTLCharacterization::fix_execution_time_std(), RTLCharacterization::fix_muxes(), and allocation::InternalExec().
#define BIVECTOR_CONVERTER_STD "BIvector_converter_FU" |
Definition at line 177 of file technology_node.hpp.
Referenced by allocation::InternalExec().
#define BMEMORY_STD "BMEMORY_CTRL" |
Definition at line 123 of file technology_node.hpp.
Referenced by RTLCharacterization::fix_proxies_execution_time_std().
#define BMEMORY_STDN "BMEMORY_CTRLN" |
Definition at line 124 of file technology_node.hpp.
Referenced by RTLCharacterization::fix_proxies_execution_time_std().
#define BUFF_GATE_STD "BUFF_GATE" |
Definition at line 96 of file technology_node.hpp.
Referenced by LoadBuiltinTechnology::Exec().
#define BUILTIN_ABORT_STD "__builtin_abort" |
Definition at line 145 of file technology_node.hpp.
#define BUILTIN_EXIT_STD "__builtin_exit" |
Definition at line 144 of file technology_node.hpp.
#define BUILTIN_WAIT_CALL_STD "__builtin_wait_call" |
Definition at line 146 of file technology_node.hpp.
#define BUVECTOR_CONVERTER_STD "BUvector_converter_FU" |
Definition at line 178 of file technology_node.hpp.
Referenced by allocation::InternalExec().
#define CE_BYPASS "CE_BYPASS" |
Definition at line 204 of file technology_node.hpp.
#define CE_FSM "CE_FSM" |
Definition at line 203 of file technology_node.hpp.
#define CE_STD "CE_FU" |
Definition at line 202 of file technology_node.hpp.
#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().
#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().
#define CHANNELS_TYPE_MEM_ACC_N1 "MEM_ACC_N1" |
Definition at line 160 of file technology_node.hpp.
Referenced by fu_binding::add_to_SM(), RTLCharacterization::AnalyzeCell(), and BambuParameter::Exec().
#define CHANNELS_TYPE_MEM_ACC_NN "MEM_ACC_NN" |
Definition at line 161 of file technology_node.hpp.
Referenced by fu_binding::add_to_SM(), RTLCharacterization::AnalyzeCell(), allocation::check_for_memory_compliancy(), BambuParameter::Exec(), and allocation::InternalExec().
#define CHANNELS_TYPE_MEM_ACC_P1N "MEM_ACC_P1N" |
Definition at line 162 of file technology_node.hpp.
Referenced by ParallelMemoryFuBinding::add_to_SM(), allocation::check_for_memory_compliancy(), and allocation::InternalExec().
#define CONCAT4_STD "concat_4_constructor" |
Definition at line 109 of file technology_node.hpp.
#define COND_EXPR_STD "cond_expr_FU" |
Definition at line 106 of file technology_node.hpp.
Referenced by AllocationInformation::get_correction_time().
#define COND_STD "COND_FU" |
Definition at line 209 of file technology_node.hpp.
#define CONSTANT_STD "constant_value" |
Definition at line 112 of file technology_node.hpp.
Referenced by classic_datapath::add_ports(), fu_binding::add_to_SM(), FunctionalUnitStep::AnalyzeFu(), and WB4_interface::build_WB4_complete_logic().
#define DEMUX_GATE_STD "DEMUX_GATE" |
Definition at line 100 of file technology_node.hpp.
Referenced by FunctionalUnitStep::AnalyzeFu(), and WB4_interface::build_WB4_complete_logic().
#define DFF_GATE_STD "DFF_GATE" |
Definition at line 95 of file technology_node.hpp.
Referenced by LoadBuiltinTechnology::Exec().
#define DPROXY_CTRL "DPROXY_CTRL" |
Definition at line 149 of file technology_node.hpp.
Referenced by allocation::IntegrateTechnologyLibraries().
#define DPROXY_CTRLN "DPROXY_CTRLN" |
Definition at line 150 of file technology_node.hpp.
Referenced by allocation::IntegrateTechnologyLibraries().
#define EXTRACT_BIT_EXPR_SIGNED_STD "extract_bit_expr_FU" |
Definition at line 197 of file technology_node.hpp.
Referenced by allocation::InternalExec().
#define EXTRACT_BIT_EXPR_UNSIGNED_STD "ui_extract_bit_expr_FU" |
Definition at line 198 of file technology_node.hpp.
Referenced by allocation::InternalExec().
#define FC_STD "FC_FU" |
Definition at line 212 of file technology_node.hpp.
#define FFDATA_CONVERTER_STD "FFdata_converter_FU" |
Definition at line 185 of file technology_node.hpp.
Referenced by conn_binding::add_datapath_connection(), conn_binding::add_sparse_logic_dp(), and allocation::InternalExec().
#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().
#define flipflop_SR "flipflop_SR" |
flipflop with synchronous reset
Definition at line 224 of file technology_node.hpp.
Referenced by fu_binding::add_to_SM(), top_entity_parallel_cs::InternalExec(), classic_datapath::InternalExec(), and top_entity::InternalExec().
#define GET_TEC_KIND | ( | meth | ) |
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().
#define GET_TEC_KIND_TEXT | ( | 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().
#define IBUF_GATE_STD "IBUF" |
Definition at line 84 of file technology_node.hpp.
#define IICONVERTER_EXPR_STD "IIconvert_expr_FU" |
Definition at line 192 of file technology_node.hpp.
Referenced by allocation::InternalExec().
#define IIDATA_CONVERTER_STD "IIdata_converter_FU" |
Definition at line 176 of file technology_node.hpp.
Referenced by conn_binding::add_datapath_connection(), conn_binding::add_sparse_logic_dp(), and allocation::InternalExec().
#define IIVECTOR_CONVERTER_STD "IIvector_converter_FU" |
Definition at line 180 of file technology_node.hpp.
Referenced by allocation::InternalExec().
#define IUCONVERTER_EXPR_STD "IUconvert_expr_FU" |
Definition at line 190 of file technology_node.hpp.
Referenced by allocation::InternalExec().
#define IUDATA_CONVERTER_STD "IUdata_converter_FU" |
Definition at line 174 of file technology_node.hpp.
Referenced by conn_binding::add_datapath_connection(), conn_binding::add_sparse_logic_dp(), and allocation::InternalExec().
#define IUVECTOR_CONVERTER_STD "IUvector_converter_FU" |
Definition at line 183 of file technology_node.hpp.
Referenced by allocation::InternalExec().
#define JOIN_STD "JOIN_FU" |
Definition at line 205 of file technology_node.hpp.
#define LUT_EXPR_STD "lut_expr_FU" |
Definition at line 199 of file technology_node.hpp.
Referenced by RTLCharacterization::AnalyzeCell(), AllocationInformation::get_correction_time(), and allocation::InternalExec().
#define LUT_GATE_STD "LUT" |
FPGA modules.
Definition at line 83 of file technology_node.hpp.
Referenced by FunctionalUnitStep::AnalyzeFu().
#define MC_STD "MC_FU" |
Definition at line 211 of file technology_node.hpp.
#define MEMCPY_STD "__internal_bambu_memcpy" |
Definition at line 125 of file technology_node.hpp.
Referenced by fu_binding::add_to_SM().
#define MEMLOAD_STD "__builtin_memload" |
Definition at line 140 of file technology_node.hpp.
Referenced by RTLCharacterization::AnalyzeCell().
#define MEMLOAD_STDN "__builtin_memload_N" |
Definition at line 142 of file technology_node.hpp.
#define MEMORY_CTRL_TYPE_D00 "D00" |
Definition at line 165 of file technology_node.hpp.
Referenced by AllocationInformation::get_correction_time().
#define MEMORY_CTRL_TYPE_DPROXY "DPROXY" |
Definition at line 167 of file technology_node.hpp.
Referenced by allocation::check_for_memory_compliancy(), RTLCharacterization::fix_proxies_execution_time_std(), AllocationInformation::get_correction_time(), AllocationInformation::is_direct_access_memory_unit(), AllocationInformation::is_direct_proxy_memory_unit(), AllocationInformation::is_dual_port_memory(), AllocationInformation::is_indirect_access_memory_unit(), and AllocationInformation::is_one_cycle_direct_access_memory_unit().
#define MEMORY_CTRL_TYPE_DPROXYN "DPROXYN" |
Definition at line 170 of file technology_node.hpp.
Referenced by allocation::check_for_memory_compliancy(), RTLCharacterization::fix_proxies_execution_time_std(), AllocationInformation::get_correction_time(), AllocationInformation::is_direct_access_memory_unit(), AllocationInformation::is_direct_proxy_memory_unit(), AllocationInformation::is_dual_port_memory(), AllocationInformation::is_indirect_access_memory_unit(), and AllocationInformation::is_one_cycle_direct_access_memory_unit().
#define MEMORY_CTRL_TYPE_PROXY "PROXY" |
Definition at line 166 of file technology_node.hpp.
Referenced by allocation::check_for_memory_compliancy(), RTLCharacterization::fix_proxies_execution_time_std(), AllocationInformation::get_correction_time(), AllocationInformation::is_direct_access_memory_unit(), AllocationInformation::is_direct_proxy_memory_unit(), and AllocationInformation::is_indirect_access_memory_unit().
#define MEMORY_CTRL_TYPE_PROXYN "PROXYN" |
Definition at line 169 of file technology_node.hpp.
Referenced by allocation::check_for_memory_compliancy(), RTLCharacterization::fix_proxies_execution_time_std(), AllocationInformation::get_correction_time(), AllocationInformation::is_direct_access_memory_unit(), AllocationInformation::is_direct_proxy_memory_unit(), and AllocationInformation::is_indirect_access_memory_unit().
#define MEMORY_CTRL_TYPE_SPROXY "SPROXY" |
Definition at line 168 of file technology_node.hpp.
Referenced by allocation::check_for_memory_compliancy(), RTLCharacterization::fix_proxies_execution_time_std(), AllocationInformation::get_correction_time(), AllocationInformation::is_direct_access_memory_unit(), AllocationInformation::is_direct_proxy_memory_unit(), AllocationInformation::is_dual_port_memory(), and AllocationInformation::is_indirect_access_memory_unit().
#define MEMORY_CTRL_TYPE_SPROXYN "SPROXYN" |
Definition at line 171 of file technology_node.hpp.
Referenced by allocation::check_for_memory_compliancy(), RTLCharacterization::fix_proxies_execution_time_std(), AllocationInformation::get_correction_time(), AllocationInformation::is_direct_access_memory_unit(), AllocationInformation::is_direct_proxy_memory_unit(), AllocationInformation::is_dual_port_memory(), and AllocationInformation::is_indirect_access_memory_unit().
#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().
#define MEMORY_MAPPED_REGISTERN_FU "memory_mapped_registerN_FU" |
Definition at line 251 of file technology_node.hpp.
Referenced by TopEntityMemoryMapped::insertMemoryMappedRegister().
#define MEMORY_TYPE_ASYNCHRONOUS "ASYNCHRONOUS" |
Definition at line 154 of file technology_node.hpp.
Referenced by fu_binding::add_to_SM(), RTLCharacterization::AnalyzeCell(), AllocationInformation::get_correction_time(), and AllocationInformation::is_one_cycle_direct_access_memory_unit().
#define MEMORY_TYPE_SYNCHRONOUS_SDS "SYNCHRONOUS_SDS" |
Definition at line 156 of file technology_node.hpp.
Referenced by fu_binding::add_to_SM(), RTLCharacterization::AnalyzeCell(), and AllocationInformation::get_correction_time().
#define MEMORY_TYPE_SYNCHRONOUS_SDS_BUS "SYNCHRONOUS_SDS_BUS" |
Definition at line 157 of file technology_node.hpp.
Referenced by fu_binding::add_to_SM(), RTLCharacterization::AnalyzeCell(), and AllocationInformation::get_correction_time().
#define MEMORY_TYPE_SYNCHRONOUS_UNALIGNED "SYNCHRONOUS_UNALIGNED" |
Definition at line 155 of file technology_node.hpp.
Referenced by fu_binding::add_to_SM(), RTLCharacterization::AnalyzeCell(), and AllocationInformation::get_correction_time().
#define MEMSTORE_STD "__builtin_memstore" |
Definition at line 141 of file technology_node.hpp.
Referenced by fu_binding::add_to_SM(), and RTLCharacterization::AnalyzeCell().
#define MEMSTORE_STDN "__builtin_memstore_N" |
Definition at line 143 of file technology_node.hpp.
Referenced by fu_binding::add_to_SM().
#define MULTIPLIER_STD "mult_expr_FU" |
Definition at line 102 of file technology_node.hpp.
Referenced by AllocationInformation::EstimateControllerDelay(), IR_lowering::expand_MC(), and RTLCharacterization::fix_muxes().
#define MUX_GATE_STD "MUX_GATE" |
Definition at line 99 of file technology_node.hpp.
Referenced by FunctionalUnitStep::AnalyzeFu(), WB4_interface::build_WB4_complete_logic(), allocation::BuildProxyWrapper(), RTLCharacterization::fix_muxes(), TopEntityMemoryMapped::insertMemoryMappedRegister(), conn_binding::mux_allocation(), AllocationInformation::mux_area_unit_raw(), and AllocationInformation::mux_time_unit_raw().
#define MUX_N_TO_1 "MUX_N_to_1" |
Definition at line 101 of file technology_node.hpp.
Referenced by AllocationInformation::InitializeMuxDB().
#define NAND_GATE_STD "NAND_GATE" |
Definition at line 89 of file technology_node.hpp.
Referenced by FunctionalUnitStep::AnalyzeFu(), and LoadBuiltinTechnology::Exec().
#define NOR_GATE_STD "NOR_GATE" |
Definition at line 91 of file technology_node.hpp.
Referenced by FunctionalUnitStep::AnalyzeFu(), and LoadBuiltinTechnology::Exec().
#define NOT_GATE_STD "NOT_GATE" |
Definition at line 94 of file technology_node.hpp.
Referenced by WB4_interface::build_WB4_complete_logic(), and LoadBuiltinTechnology::Exec().
#define NOTYFY_CALLER_MINIMAL_FU "notify_caller_minimal_FU" |
Definition at line 248 of file technology_node.hpp.
Referenced by TopEntityMemoryMapped::insertStartDoneLogic().
#define NOTYFY_CALLER_MINIMALN_FU "notify_caller_minimalN_FU" |
Definition at line 253 of file technology_node.hpp.
Referenced by TopEntityMemoryMapped::insertStartDoneLogic().
#define OBUF_GATE_STD "OBUF" |
Definition at line 85 of file technology_node.hpp.
#define OR_GATE_STD "OR_GATE" |
Definition at line 90 of file technology_node.hpp.
Referenced by conn_binding::add_command_ports(), FunctionalUnitStep::AnalyzeFu(), WB4_interface::build_WB4_complete_logic(), allocation::BuildProxyWrapper(), LoadBuiltinTechnology::Exec(), TestbenchGeneration::Exec(), TopEntityMemoryMapped::insertStartDoneLogic(), conn_binding_cs::instantiate_suspension_component(), and VHDL_writer::WriteBuiltin().
#define PROXY_CTRL "PROXY_CTRL" |
Definition at line 147 of file technology_node.hpp.
Referenced by allocation::IntegrateTechnologyLibraries().
#define PROXY_CTRLN "PROXY_CTRLN" |
Definition at line 148 of file technology_node.hpp.
Referenced by allocation::IntegrateTechnologyLibraries().
#define PT_STD "PT_FU" |
Definition at line 207 of file technology_node.hpp.
#define register_AR "register_AR" |
register with asynchronous reset
Definition at line 227 of file technology_node.hpp.
#define register_AR_NORETIME "register_AR_NORETIME" |
register with asynchronous reset no retime
Definition at line 233 of file technology_node.hpp.
Referenced by RTLCharacterization::add_input_register(), RTLCharacterization::add_output_register(), RTLCharacterization::AnalyzeCell(), and verilog_writer::write_module_declaration().
#define register_AR_NORETIME_INT "register_AR_NORETIME_INT" |
Definition at line 234 of file technology_node.hpp.
Referenced by RTLCharacterization::add_input_register(), RTLCharacterization::add_output_register(), and verilog_writer::write_module_declaration().
#define register_AR_NORETIME_REAL "register_AR_NORETIME_REAL" |
Definition at line 236 of file technology_node.hpp.
Referenced by RTLCharacterization::add_input_register(), RTLCharacterization::add_output_register(), and verilog_writer::write_module_declaration().
#define register_AR_NORETIME_UINT "register_AR_NORETIME_UINT" |
Definition at line 235 of file technology_node.hpp.
Referenced by RTLCharacterization::add_input_register(), RTLCharacterization::add_output_register(), and verilog_writer::write_module_declaration().
#define register_ARSE "register_ARSE" |
register with asynchronous reset and synchronous enable
Definition at line 242 of file technology_node.hpp.
#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().
#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().
#define register_SHIFT "register_SHIFT" |
simple shift register with reset
Definition at line 215 of file technology_node.hpp.
Referenced by pipeline_controller::InternalExec().
#define register_SR "register_SR" |
register with synchronous reset
Definition at line 221 of file technology_node.hpp.
#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().
#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().
#define RETURN_MM_REGISTER_FU "return_value_mm_register_FU" |
Definition at line 247 of file technology_node.hpp.
Referenced by TopEntityMemoryMapped::insertMemoryMappedRegister().
#define RETURN_MM_REGISTERN_FU "return_value_mm_registerN_FU" |
Definition at line 252 of file technology_node.hpp.
Referenced by TopEntityMemoryMapped::insertMemoryMappedRegister().
#define SF_FFDATA_CONVERTER_32_64_STD "sf_FFdata_converter_FU_32_64" |
Definition at line 186 of file technology_node.hpp.
Referenced by AllocationInformation::extract_bambu_provided_name().
#define SF_FFDATA_CONVERTER_64_32_STD "sf_FFdata_converter_FU_64_32" |
Definition at line 187 of file technology_node.hpp.
Referenced by AllocationInformation::extract_bambu_provided_name().
#define SIGNED_BITFIELD_FU_STD "Sbitfield_FU" |
Definition at line 110 of file technology_node.hpp.
#define SIMPLEJOIN_STD "SIMPLEJOIN_FU" |
Definition at line 206 of file technology_node.hpp.
Referenced by StateTransitionGraphManager::add_to_SM().
#define SPROXY_CTRL "SPROXY_CTRL" |
Definition at line 151 of file technology_node.hpp.
Referenced by allocation::IntegrateTechnologyLibraries().
#define SPROXY_CTRLN "SPROXY_CTRLN" |
Definition at line 152 of file technology_node.hpp.
Referenced by allocation::IntegrateTechnologyLibraries().
#define START_STD "START_FU" |
Definition at line 208 of file technology_node.hpp.
#define STATUS_REGISTER_FU "status_register_FU" |
Definition at line 249 of file technology_node.hpp.
Referenced by TopEntityMemoryMapped::insertStatusRegister().
#define STATUS_REGISTER_NO_NOTIFIED_FU "status_register_no_notified_FU" |
Definition at line 250 of file technology_node.hpp.
Referenced by TopEntityMemoryMapped::insertStatusRegister().
#define STATUS_REGISTER_NO_NOTIFIEDN_FU "status_register_no_notifiedN_FU" |
Definition at line 255 of file technology_node.hpp.
Referenced by TopEntityMemoryMapped::insertStatusRegister().
#define STATUS_REGISTERN_FU "status_registerN_FU" |
Definition at line 254 of file technology_node.hpp.
Referenced by TopEntityMemoryMapped::insertStatusRegister().
#define STD_BRAM "STD_BRAM" |
Definition at line 138 of file technology_node.hpp.
Referenced by minimal_interface::build_wrapper().
#define STD_BRAMN "STD_BRAMN" |
Definition at line 139 of file technology_node.hpp.
Referenced by minimal_interface::build_wrapper().
#define SWITCH_CASE_STD "SWITCH_CASE_FU" |
Definition at line 210 of file technology_node.hpp.
#define TEST_MUL_MUX_8 "TEST_MUL_MUX_8" |
Definition at line 98 of file technology_node.hpp.
Referenced by RTLCharacterization::fix_muxes().
#define UBVECTOR_CONVERTER_STD "UBvector_converter_FU" |
Definition at line 179 of file technology_node.hpp.
Referenced by allocation::InternalExec().
#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().
#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().
#define UI_CONST_MULTIPLIER_STD "ui_const_mult_expr_FU" |
Definition at line 104 of file technology_node.hpp.
#define UI_MULTIPLIER_STD "ui_mult_expr_FU" |
Definition at line 103 of file technology_node.hpp.
#define UICONVERTER_EXPR_STD "UIconvert_expr_FU" |
Definition at line 191 of file technology_node.hpp.
Referenced by allocation::InternalExec().
#define UIDATA_CONVERTER_STD "UIdata_converter_FU" |
Definition at line 175 of file technology_node.hpp.
Referenced by conn_binding::add_datapath_connection(), conn_binding::add_sparse_logic_dp(), and allocation::InternalExec().
#define UIVECTOR_CONVERTER_STD "UIvector_converter_FU" |
Definition at line 182 of file technology_node.hpp.
Referenced by allocation::InternalExec().
#define UNSIGNED_BITFIELD_FU_STD "Ubitfield_FU" |
Definition at line 111 of file technology_node.hpp.
#define UUCONVERTER_EXPR_STD "UUconvert_expr_FU" |
Definition at line 189 of file technology_node.hpp.
Referenced by allocation::InternalExec().
#define UUDATA_CONVERTER_STD "UUdata_converter_FU" |
Definition at line 173 of file technology_node.hpp.
Referenced by conn_binding::add_datapath_connection(), conn_binding::add_sparse_logic_dp(), TasteInterfaceGeneration::InternalExec(), and allocation::InternalExec().
#define UUVECTOR_CONVERTER_STD "UUvector_converter_FU" |
Definition at line 181 of file technology_node.hpp.
Referenced by allocation::InternalExec().
#define VIEW_CONVERT_STD_INT "view_convert_expr_FU" |
Definition at line 193 of file technology_node.hpp.
Referenced by minimal_interface::build_wrapper(), and allocation::InternalExec().
#define VIEW_CONVERT_STD_REAL "fp_view_convert_expr_FU" |
Definition at line 195 of file technology_node.hpp.
Referenced by allocation::InternalExec().
#define VIEW_CONVERT_STD_UINT "ui_view_convert_expr_FU" |
Definition at line 194 of file technology_node.hpp.
Referenced by minimal_interface::build_wrapper(), and allocation::InternalExec().
#define XNOR_GATE_STD "XNOR_GATE" |
Definition at line 93 of file technology_node.hpp.
Referenced by FunctionalUnitStep::AnalyzeFu(), and LoadBuiltinTechnology::Exec().
#define XOR_GATE_STD "XOR_GATE" |
Definition at line 92 of file technology_node.hpp.
Referenced by FunctionalUnitStep::AnalyzeFu(), and LoadBuiltinTechnology::Exec().
using technology_nodeConstRef = refcount<const technology_node> |
Definition at line 359 of file technology_node.hpp.
using technology_nodeRef = refcount<technology_node> |
refcount definition of the class
Definition at line 358 of file technology_node.hpp.
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.
CONSTREF_FORWARD_DECL | ( | Parameter | ) |
REF_FORWARD_DECL | ( | technology_node | ) |
RefCount type definition of the technology_node class structure.
REF_FORWARD_DECL | ( | xml_node | ) |
forward decl of xml Element
REF_FORWARD_DECL | ( | technology_manager | ) |
RefCount type definition of the technology_manager class structure.
REF_FORWARD_DECL | ( | attribute | ) |
REF_FORWARD_DECL | ( | area_info | ) |
RefCount definition of the resource information of the component.
REF_FORWARD_DECL | ( | layout_model | ) |
RefCount definition of the layout information of the component.
REF_FORWARD_DECL | ( | time_info | ) |
RefCount definition of the timing information of the component.
REF_FORWARD_DECL | ( | power_model | ) |
RefCount definition of the power information of the component.