PandA-2024.02
|
This class describes a generic module. More...
#include <structural_objects.hpp>
Public Member Functions | |
module (int debug_level, const structural_objectRef o) | |
Constructor. More... | |
~module () override=default | |
destructor More... | |
unsigned int | get_num_ports () const |
Return the total number of the ports. More... | |
structural_objectRef | get_positional_port (unsigned int index) const |
return a port of the module given its position More... | |
void | add_in_port (structural_objectRef p) |
Add an input port. More... | |
const structural_objectRef | get_in_port (unsigned int n) const |
Return the ith input port. More... | |
unsigned int | get_in_port_size () const |
Return the number of input ports. More... | |
void | add_out_port (structural_objectRef p) |
Add an output port. More... | |
const structural_objectRef | get_out_port (unsigned int n) const |
Return the ith output port. More... | |
unsigned int | get_out_port_size () const |
Return the number of output ports. More... | |
void | add_in_out_port (structural_objectRef p) |
Add an input-output port. More... | |
const structural_objectRef | get_in_out_port (unsigned int n) const |
Return the ith input-output port. More... | |
unsigned int | get_in_out_port_size () const |
Return the number of output ports. More... | |
void | add_gen_port (structural_objectRef p) |
Add a generic port. More... | |
const structural_objectRef | get_gen_port (unsigned int n) const |
Return the ith generic port. More... | |
unsigned int | get_gen_port_size () const |
Return the number of generic ports. More... | |
void | remove_port (const std::string &id) |
remove a port from the module More... | |
void | add_internal_object (structural_objectRef c) |
Add an internal component/channel/signal/bus_connection_o. More... | |
void | remove_internal_object (structural_objectRef s) |
const structural_objectRef | get_internal_object (unsigned int n) const |
Return the ith internal objects. More... | |
unsigned int | get_internal_objects_size () const |
Return the number of internal objects. More... | |
void | add_process (structural_objectRef p) |
Add a process to the module. More... | |
const structural_objectRef | get_process (unsigned int n) const |
Return the ith process. More... | |
unsigned int | get_process_size () const |
Return the number of internal processes. More... | |
void | add_service (structural_objectRef p) |
Add a service to the module. More... | |
const structural_objectRef | get_service (unsigned int n) const |
Return the ith service. More... | |
unsigned int | get_service_size () const |
Return the number of services. More... | |
void | add_event (structural_objectRef e) |
Add an event to the module. More... | |
const structural_objectRef | get_event (unsigned int n) const |
Return the ith event. More... | |
unsigned int | get_event_size () const |
Return the number of events. More... | |
void | add_local_data (structural_objectRef d) |
Add a local data. More... | |
const structural_objectRef | get_local_data (unsigned int n) const |
Return the ith local data. More... | |
unsigned int | get_local_data_size () const |
Return the number of local data. More... | |
void | set_NP_functionality (NP_functionalityRef f) |
Set the alternative module behavior descriptions (Non SystemC based). More... | |
const NP_functionalityRef & | get_NP_functionality () const |
Return the alternative functionalities. More... | |
void | get_NP_library_parameters (structural_objectRef owner, std::vector< std::pair< std::string, structural_objectRef >> ¶meters) const |
Return the list of object that can be parametrized. More... | |
void | copy (structural_objectRef dest) const override |
Perform a copy of the module. More... | |
structural_objectRef | find_member (const std::string &id, so_kind type, const structural_objectRef owner) const override |
Return the object named id of a given type which belongs to or it is associated with the object. More... | |
structural_objectRef | find_isomorphic (const structural_objectRef key) const override |
Find key in this object. More... | |
void | xload (const xml_element *Enode, structural_objectRef owner, structural_managerRef const &CM) override=0 |
Load a structural_object starting from an xml file. More... | |
void | xwrite (xml_element *rootnode) override=0 |
Add a structural_object to an xml tree. More... | |
bool | is_var_args () const |
True if one of the ports of the module has the attribute is_var_args=true. More... | |
void | print (std::ostream &os) const override |
Print the module (for debug purpose) More... | |
void | set_critical () |
set the component as critical with respect to the timing path More... | |
bool | get_critical () const |
return if the component is critical or not More... | |
void | set_generated () |
set the component as generated More... | |
bool | get_generated () const |
return if the component has been generated or not More... | |
void | set_multi_unit_multiplicity (unsigned int value) |
set_multi_unit_multiplicity More... | |
unsigned int | get_multi_unit_multiplicity () const |
get_multi_unit_multiplicity More... | |
void | set_keep_hierarchy (bool ky) |
set_keep_hierarchy More... | |
bool | get_keep_hierarchy () const |
get_keep_hierarchy More... | |
void | change_port_direction (structural_objectRef port, port_o::port_direction pdir) |
change the direction of a port More... | |
const std::string | get_description () const |
Return the description associated with the module. More... | |
void | set_description (const std::string &d) |
Set the description associated with the module. More... | |
const std::string | get_copyright () const |
Return the copyright associated with the module. More... | |
void | set_copyright (const std::string &c) |
Set the copyright associated with the module. More... | |
const std::string | get_authors () const |
Return the authors of the functional description of the module. More... | |
void | set_authors (const std::string &a) |
Set the authors associated with the module. More... | |
const std::string | get_license () const |
Return the license of the functional description of the module. More... | |
void | set_license (const std::string &l) |
Set the license associated with the module. More... | |
const std::string | get_specialized () const |
Return a non-empty string when the component has been specialized. More... | |
void | set_specialized (const std::string &s) |
Set the specialization string. More... | |
void | AddParameter (const std::string &name, const std::string &default_value) override |
Add a parameter. More... | |
Public Member Functions inherited from structural_object | |
structural_object (int debug_level, const structural_objectRef o) | |
Constructor for the structural_object. More... | |
virtual | ~structural_object ()=default |
virtual destructor More... | |
const structural_objectRef | get_owner () const |
Return the owner. More... | |
void | set_owner (const structural_objectRef new_owner) |
set the owner of the structural object More... | |
void | set_treenode (unsigned int n) |
Set the treenode id associated with the structural_object. More... | |
unsigned int | get_treenode () const |
Return the treenode id associated with the structural_object. More... | |
void | set_id (const std::string &s) |
Set the identifier associated with the structural_object. More... | |
const std::string & | get_id () const |
Return the identifier associated with the structural_object. More... | |
void | set_type (const structural_type_descriptorRef &s) |
Set the type of the structural_object. More... | |
const structural_type_descriptorRef & | get_typeRef () const |
Return the type descriptor of the structural_object. More... | |
void | type_resize (unsigned long long new_bit_size) |
Just resize the size of the bits of the object. More... | |
void | type_resize (unsigned long long new_bit_size, unsigned long long new_vec_size) |
resizing of vector objects More... | |
void | set_black_box (bool bb) |
Set the black box property associated with the structural_object. More... | |
bool | get_black_box () const |
Return the black box property. More... | |
void | SetParameter (const std::string &name, const std::string &value) |
Set a parameter value. More... | |
bool | ExistsParameter (std::string name) const |
Check if a parameter has been specified. More... | |
std::string | GetParameter (std::string name) const |
Get the value associated to parameter if it has been associated; if it has not specified returns the default. More... | |
std::string | GetDefaultParameter (std::string name) const |
Get the value associated to parameter if it has been associate; It throws an exception if it has not been associated. More... | |
CustomMap< std::string, std::string > | GetParameters () const |
return the whole set of parameters More... | |
const std::string | get_path () const |
Return a unique identifier of the structural object. More... | |
virtual std::string | get_kind_text () const =0 |
Virtual function used to get the string name of a structural_object instance. More... | |
virtual enum so_kind | get_kind () const =0 |
Virtual function used to find the real type of a structural_object instance. More... | |
Private Attributes | |
std::vector< structural_objectRef > | in_ports |
input port of this module More... | |
std::vector< structural_objectRef > | out_ports |
output ports of this module More... | |
std::vector< structural_objectRef > | in_out_ports |
Input-output ports of this module. More... | |
std::vector< structural_objectRef > | gen_ports |
generic ports of this module More... | |
std::vector< structural_objectRef > | internal_objects |
internal components/channels/signals/bus_connection_os (for structural modules) More... | |
std::vector< structural_objectRef > | local_data |
List of local data associated with the module. More... | |
std::vector< structural_objectRef > | list_of_event |
List of event associated with the module. More... | |
std::vector< structural_objectRef > | list_of_process |
List of processes associated with the module. More... | |
std::vector< structural_objectRef > | list_of_service |
List of services associated with the module. More... | |
NP_functionalityRef | NP_descriptions |
Alternative descriptions of the behavior of the module. More... | |
unsigned int | last_position_port |
store the last index of the positional binding More... | |
bool | is_critical |
when true the component is involved into the critical path of the netlist More... | |
bool | is_generated |
when true the component has been internally generated More... | |
std::map< unsigned int, structural_objectRef > | positional_map |
positional map, given the index return the port in that position More... | |
std::map< std::string, structural_objectRef > | index_signals |
index for signals this table is used to quickly search internal signals used by find_member and find_isomorphic More... | |
std::map< std::string, structural_objectRef > | index_constants |
index for constants this table is used to quickly search internal constants used by find_member and find_isomorphic More... | |
std::map< std::string, structural_objectRef > | index_components |
index for components this table is used to quickly search internal components used by find_member and find_isomorphic More... | |
std::map< std::string, structural_objectRef > | index_channels |
index for channels this table is used to quickly search internal channels used by find_member and find_isomorphic More... | |
std::map< std::string, structural_objectRef > | index_bus_connections |
index for bus_connections this table is used to quickly search internal bus_connections used by find_member and find_isomorphic More... | |
std::string | description |
Store the module description. More... | |
std::string | copyright |
Store the copyright description. More... | |
std::string | authors |
Store the list of authors. More... | |
std::string | license |
Store some tags concerning the license type associated with the functional unit. More... | |
std::string | specialized |
when non empty it defines with respect what module has been specialized More... | |
unsigned int | multi_unit_multiplicity |
multi-unit multiplicity is the number of units implemented by this module all doing the same thing More... | |
bool | keep_hierarchy |
when true the module has the keep_hierarchy attribute active More... | |
Additional Inherited Members | |
Protected Member Functions inherited from structural_object | |
std::string | convert_so_short (so_kind in) const |
Convert a so_kind in a short string. More... | |
Protected Attributes inherited from structural_object | |
friend | structural_manager |
int | debug_level |
debug level for the object More... | |
Static Protected Attributes inherited from structural_object | |
static simple_indent | PP |
pretty print functor object used by all print members to indent the output of the print function. More... | |
This class describes a generic module.
A module can be further specialized in a channel or in a component. This class should be not instantiated. Only channels and components can be instantiated.
Definition at line 1757 of file structural_objects.hpp.
module::module | ( | int | debug_level, |
const structural_objectRef | o | ||
) |
Constructor.
o | is the owner of the module. |
Definition at line 2860 of file structural_objects.cpp.
|
overridedefault |
destructor
void module::add_event | ( | structural_objectRef | e | ) |
Add an event to the module.
e | is the event. |
Definition at line 3253 of file structural_objects.cpp.
References event_o_K, refcount< T >::get(), structural_object::get_kind(), structural_object::get_owner(), list_of_event, and THROW_ASSERT.
Referenced by xload().
void module::add_gen_port | ( | structural_objectRef | p | ) |
Add a generic port.
p | is the port. |
Definition at line 2988 of file structural_objects.cpp.
References gen_ports, refcount< T >::get(), structural_object::get_owner(), last_position_port, positional_map, and THROW_ASSERT.
Referenced by xload().
void module::add_in_out_port | ( | structural_objectRef | p | ) |
Add an input-output port.
p | is the port. |
Definition at line 2966 of file structural_objects.cpp.
References refcount< T >::get(), structural_object::get_owner(), in_out_ports, last_position_port, positional_map, and THROW_ASSERT.
Referenced by copy(), and xload().
void module::add_in_port | ( | structural_objectRef | p | ) |
Add an input port.
p | is the port. |
Definition at line 2921 of file structural_objects.cpp.
References refcount< T >::get(), structural_object::get_owner(), in_ports, last_position_port, positional_map, and THROW_ASSERT.
Referenced by copy(), and xload().
void module::add_internal_object | ( | structural_objectRef | c | ) |
Add an internal component/channel/signal/bus_connection_o.
c | can be a component, channel, signal or a bus_connection_o. |
Definition at line 3126 of file structural_objects.cpp.
References action_o_K, bus_connection_o_K, channel_o_K, component_o_K, constant_o_K, data_o_K, event_o_K, refcount< T >::get(), structural_object::get_id(), structural_object::get_kind(), structural_object::get_kind_text(), structural_object::get_owner(), structural_object::get_path(), index_bus_connections, index_channels, index_components, index_constants, index_signals, internal_objects, port_o_K, port_vector_o_K, structural_object::set_black_box(), signal_o_K, signal_vector_o_K, THROW_ASSERT, and THROW_ERROR.
Referenced by copy(), and xload().
void module::add_local_data | ( | structural_objectRef | d | ) |
Add a local data.
d | is the local data. |
Definition at line 3272 of file structural_objects.cpp.
References data_o_K, refcount< T >::get(), structural_object::get_kind(), structural_object::get_owner(), local_data, and THROW_ASSERT.
Referenced by xload().
void module::add_out_port | ( | structural_objectRef | p | ) |
Add an output port.
p | is the port . |
Definition at line 2944 of file structural_objects.cpp.
References refcount< T >::get(), structural_object::get_owner(), last_position_port, out_ports, positional_map, and THROW_ASSERT.
Referenced by copy(), and xload().
void module::add_process | ( | structural_objectRef | p | ) |
Add a process to the module.
p | is the process. |
Definition at line 3215 of file structural_objects.cpp.
References action_o_K, refcount< T >::get(), structural_object::get_kind(), structural_object::get_owner(), list_of_process, and THROW_ASSERT.
Referenced by xload().
void module::add_service | ( | structural_objectRef | p | ) |
Add a service to the module.
p | is the service. |
Definition at line 3234 of file structural_objects.cpp.
References action_o_K, refcount< T >::get(), structural_object::get_kind(), structural_object::get_owner(), list_of_service, and THROW_ASSERT.
Referenced by xload().
|
overridevirtual |
Add a parameter.
name | is the name of the parameter |
default_value | is the default of the value |
Reimplemented from structural_object.
Definition at line 4747 of file structural_objects.cpp.
References structural_object::AddParameter(), structural_object::get_id(), NP_functionality::LIBRARY, MEMORY_PARAMETER, and NP_descriptions.
void module::change_port_direction | ( | structural_objectRef | port, |
port_o::port_direction | pdir | ||
) |
change the direction of a port
port | is the port to be moved |
pdir | is the new direction |
Definition at line 4642 of file structural_objects.cpp.
References gen_ports, structural_object::get_id(), in_out_ports, in_ports, out_ports, and THROW_ASSERT.
|
overridevirtual |
Perform a copy of the module.
dest | destination object. |
copying of the ports of the module: be aware of respecting the initial order of the ports
copy all the internal objects
it is a port
Reimplemented from structural_object.
Reimplemented in channel_o, and component_o.
Definition at line 3472 of file structural_objects.cpp.
References action_o_K, add_in_out_port(), add_in_port(), add_internal_object(), add_out_port(), authors, bus_connection_o_K, channel_o_K, component_o_K, constant_o_K, structural_object::copy(), copyright, data_o_K, structural_object::debug_level, DEBUG_LEVEL_VERY_PEDANTIC, description, event_o_K, structural_object::find_isomorphic(), structural_object::get_kind(), structural_object::get_kind_text(), structural_object::get_owner(), structural_object::get_path(), structural_object::get_typeRef(), index_bus_connections, index_channels, index_constants, index_signals, internal_objects, is_critical, is_generated, keep_hierarchy, last_position_port, license, multi_unit_multiplicity, NP, NP_descriptions, port_o_K, port_vector_o_K, positional_map, PRINT_DBG_MEX, set_authors(), set_copyright(), set_critical(), set_description(), set_generated(), set_keep_hierarchy(), set_license(), set_multi_unit_multiplicity(), set_NP_functionality(), signal_o_K, signal_vector_o_K, THROW_ASSERT, and THROW_ERROR.
Referenced by component_o::copy(), and channel_o::copy().
|
overridevirtual |
Find key in this object.
key | is the object searched. |
Implements structural_object.
Reimplemented in channel_o, and component_o.
Definition at line 3795 of file structural_objects.cpp.
References action_o_K, bus_connection_o_K, channel_o_K, component_o_K, constant_o_K, data_o_K, event_o_K, structural_object::find_isomorphic(), gen_ports, structural_object::get_id(), structural_object::get_kind(), structural_object::get_owner(), structural_object::get_path(), in_out_ports, in_ports, index_bus_connections, index_channels, index_components, index_constants, index_signals, key, out_ports, port_o_K, port_vector_o_K, signal_o_K, signal_vector_o_K, and THROW_ERROR.
Referenced by component_o::find_isomorphic(), and channel_o::find_isomorphic().
|
overridevirtual |
Return the object named id of a given type which belongs to or it is associated with the object.
id | is the identifier of the object we are looking for. |
type | is the type of the object we are looking for. |
owner | is the owner of the object named id. |
Implements structural_object.
Reimplemented in channel_o, and component_o.
Definition at line 3326 of file structural_objects.cpp.
References action_o_K, bus_connection_o_K, channel_o_K, component_o_K, constant_o_K, data_o_K, event_o_K, gen_ports, in_out_ports, in_ports, index_bus_connections, index_channels, index_components, index_constants, index_signals, list_of_event, list_of_process, list_of_service, local_data, out_ports, port_o_K, port_vector_o_K, signal_o_K, signal_vector_o_K, THROW_ASSERT, and THROW_ERROR.
Referenced by component_o::find_member(), channel_o::find_member(), get_NP_library_parameters(), and xload().
|
inline |
Return the authors of the functional description of the module.
Definition at line 2183 of file structural_objects.hpp.
Referenced by HDL_manager::write_module().
|
inline |
Return the copyright associated with the module.
Definition at line 2167 of file structural_objects.hpp.
Referenced by HDL_manager::write_module().
bool module::get_critical | ( | ) | const |
return if the component is critical or not
Definition at line 2880 of file structural_objects.cpp.
References is_critical.
|
inline |
Return the description associated with the module.
Definition at line 2151 of file structural_objects.hpp.
Referenced by HDL_manager::write_module().
const structural_objectRef module::get_event | ( | unsigned int | n | ) | const |
Return the ith event.
n | is the index of the event. |
Definition at line 3261 of file structural_objects.cpp.
References list_of_event, and THROW_ASSERT.
unsigned int module::get_event_size | ( | ) | const |
Return the number of events.
Definition at line 3267 of file structural_objects.cpp.
References list_of_event.
const structural_objectRef module::get_gen_port | ( | unsigned int | n | ) | const |
Return the ith generic port.
n | is the index of the port |
Definition at line 2999 of file structural_objects.cpp.
References gen_ports, and THROW_ASSERT.
Referenced by HDL_manager::write_module().
unsigned int module::get_gen_port_size | ( | ) | const |
Return the number of generic ports.
Definition at line 3005 of file structural_objects.cpp.
References gen_ports.
Referenced by HDL_manager::write_module().
bool module::get_generated | ( | ) | const |
return if the component has been generated or not
Definition at line 2890 of file structural_objects.cpp.
References is_generated.
const structural_objectRef module::get_in_out_port | ( | unsigned int | n | ) | const |
Return the ith input-output port.
n | is the index of the port. |
Definition at line 2977 of file structural_objects.cpp.
References in_out_ports, and THROW_ASSERT.
Referenced by HDL_manager::write_module().
unsigned int module::get_in_out_port_size | ( | ) | const |
Return the number of output ports.
Definition at line 2983 of file structural_objects.cpp.
References in_out_ports.
Referenced by HDL_manager::write_module().
const structural_objectRef module::get_in_port | ( | unsigned int | n | ) | const |
Return the ith input port.
n | is the index of the port. |
Definition at line 2932 of file structural_objects.cpp.
References structural_object::get_path(), structural_object::get_typeRef(), structural_type_descriptor::id_type, in_ports, STR, and THROW_ASSERT.
Referenced by FunctionalUnitStep::AnalyzeFu(), structural_manager::build_graph(), allocation::BuildProxyWrapper(), is_var_args(), TopEntityMemoryMapped::resizing_IO(), conn_binding::specialise_mux(), RTLCharacterization::specialize_fu(), and HDL_manager::write_module().
unsigned int module::get_in_port_size | ( | ) | const |
Return the number of input ports.
Definition at line 2939 of file structural_objects.cpp.
References in_ports.
Referenced by FunctionalUnitStep::AnalyzeFu(), structural_manager::build_graph(), allocation::BuildProxyWrapper(), is_var_args(), TopEntityMemoryMapped::resizing_IO(), RTLCharacterization::specialize_fu(), and HDL_manager::write_module().
const structural_objectRef module::get_internal_object | ( | unsigned int | n | ) | const |
Return the ith internal objects.
n | is the index of the objects. |
Definition at line 3204 of file structural_objects.cpp.
References internal_objects, and THROW_ASSERT.
Referenced by structural_manager::build_graph(), computeResources(), and HDL_manager::write_module().
unsigned int module::get_internal_objects_size | ( | ) | const |
Return the number of internal objects.
Definition at line 3210 of file structural_objects.cpp.
References internal_objects.
Referenced by structural_manager::build_graph(), computeResources(), and HDL_manager::write_module().
bool module::get_keep_hierarchy | ( | ) | const |
get_keep_hierarchy
Definition at line 2910 of file structural_objects.cpp.
References keep_hierarchy.
|
inline |
Return the license of the functional description of the module.
Definition at line 2199 of file structural_objects.hpp.
Referenced by HDL_manager::write_module().
const structural_objectRef module::get_local_data | ( | unsigned int | n | ) | const |
Return the ith local data.
n | represent the index of the local data. |
Definition at line 3280 of file structural_objects.cpp.
References local_data, and THROW_ASSERT.
unsigned int module::get_local_data_size | ( | ) | const |
Return the number of local data.
Definition at line 3286 of file structural_objects.cpp.
References local_data.
unsigned int module::get_multi_unit_multiplicity | ( | ) | const |
get_multi_unit_multiplicity
Definition at line 2900 of file structural_objects.cpp.
References multi_unit_multiplicity.
const NP_functionalityRef & module::get_NP_functionality | ( | ) | const |
Return the alternative functionalities.
Definition at line 3308 of file structural_objects.cpp.
References NP_descriptions.
Referenced by computeResources(), and HDL_manager::write_module().
void module::get_NP_library_parameters | ( | structural_objectRef | owner, |
std::vector< std::pair< std::string, structural_objectRef >> & | parameters | ||
) | const |
Return the list of object that can be parametrized.
This function is usually used by the backend.
owner | is the refcount version of this. |
Definition at line 3313 of file structural_objects.cpp.
References find_member(), NP_functionality::get_library_parameters(), NP_descriptions, param, and port_vector_o_K.
unsigned int module::get_num_ports | ( | ) | const |
Return the total number of the ports.
Definition at line 2870 of file structural_objects.cpp.
References last_position_port.
const structural_objectRef module::get_out_port | ( | unsigned int | n | ) | const |
Return the ith output port.
n | is the index of the port |
Definition at line 2955 of file structural_objects.cpp.
References out_ports, and THROW_ASSERT.
Referenced by FunctionalUnitStep::AnalyzeFu(), structural_manager::build_graph(), allocation::BuildProxyWrapper(), TopEntityMemoryMapped::resizing_IO(), conn_binding::specialise_mux(), RTLCharacterization::specialize_fu(), and HDL_manager::write_module().
unsigned int module::get_out_port_size | ( | ) | const |
Return the number of output ports.
Definition at line 2961 of file structural_objects.cpp.
References out_ports.
Referenced by FunctionalUnitStep::AnalyzeFu(), structural_manager::build_graph(), allocation::BuildProxyWrapper(), TopEntityMemoryMapped::resizing_IO(), RTLCharacterization::specialize_fu(), and HDL_manager::write_module().
structural_objectRef module::get_positional_port | ( | unsigned int | index | ) | const |
return a port of the module given its position
index | is the position of the port. |
Definition at line 2915 of file structural_objects.cpp.
References positional_map, and THROW_ASSERT.
const structural_objectRef module::get_process | ( | unsigned int | n | ) | const |
Return the ith process.
n | is the index of the process. |
Definition at line 3223 of file structural_objects.cpp.
References list_of_process, and THROW_ASSERT.
unsigned int module::get_process_size | ( | ) | const |
Return the number of internal processes.
Definition at line 3229 of file structural_objects.cpp.
References list_of_process.
const structural_objectRef module::get_service | ( | unsigned int | n | ) | const |
Return the ith service.
n | is the index of the service. |
Definition at line 3242 of file structural_objects.cpp.
References list_of_service, and THROW_ASSERT.
unsigned int module::get_service_size | ( | ) | const |
Return the number of services.
Definition at line 3248 of file structural_objects.cpp.
References list_of_service.
|
inline |
Return a non-empty string when the component has been specialized.
The string identify with respect what the component has been specialized (e.g., generic_device, behavior...)
Definition at line 2216 of file structural_objects.hpp.
bool module::is_var_args | ( | ) | const |
True if one of the ports of the module has the attribute is_var_args=true.
Definition at line 3457 of file structural_objects.cpp.
References get_in_port(), and get_in_port_size().
|
overridevirtual |
Print the module (for debug purpose)
os | is an output stream |
Reimplemented from structural_object.
Reimplemented in channel_o, and component_o.
Definition at line 4555 of file structural_objects.cpp.
References authors, copyright, description, gen_ports, in_out_ports, in_ports, internal_objects, license, list_of_event, list_of_process, list_of_service, local_data, NP_descriptions, out_ports, structural_object::PP, NP_functionality::print(), and structural_object::print().
Referenced by component_o::print(), and channel_o::print().
void module::remove_internal_object | ( | structural_objectRef | s | ) |
Definition at line 3170 of file structural_objects.cpp.
References action_o_K, bus_connection_o_K, channel_o_K, component_o_K, constant_o_K, data_o_K, event_o_K, structural_object::get_id(), structural_object::get_kind(), index_bus_connections, index_channels, index_components, index_signals, internal_objects, port_o_K, port_vector_o_K, signal_o_K, signal_vector_o_K, THROW_ASSERT, and THROW_ERROR.
void module::remove_port | ( | const std::string & | id | ) |
remove a port from the module
id | is the name of the port |
Definition at line 3010 of file structural_objects.cpp.
References gen_ports, structural_object::get_id(), structural_object::get_path(), in_out_ports, in_ports, last_position_port, out_ports, positional_map, and THROW_ASSERT.
|
inline |
Set the authors associated with the module.
Definition at line 2191 of file structural_objects.hpp.
Referenced by copy().
|
inline |
Set the copyright associated with the module.
Definition at line 2175 of file structural_objects.hpp.
Referenced by copy().
void module::set_critical | ( | ) |
set the component as critical with respect to the timing path
Definition at line 2875 of file structural_objects.cpp.
References is_critical.
Referenced by copy().
|
inline |
Set the description associated with the module.
Definition at line 2159 of file structural_objects.hpp.
Referenced by copy().
void module::set_generated | ( | ) |
set the component as generated
Definition at line 2885 of file structural_objects.cpp.
References is_generated.
Referenced by copy().
void module::set_keep_hierarchy | ( | bool | ky | ) |
set_keep_hierarchy
ky | is true when the module has the keep_hierarchy attribute true |
Definition at line 2905 of file structural_objects.cpp.
References keep_hierarchy.
Referenced by copy().
|
inline |
Set the license associated with the module.
Definition at line 2207 of file structural_objects.hpp.
Referenced by copy().
void module::set_multi_unit_multiplicity | ( | unsigned int | value | ) |
set_multi_unit_multiplicity
value | is the number of units implemented by this module all doing the same thing |
Definition at line 2895 of file structural_objects.cpp.
References multi_unit_multiplicity, and symmetry::value.
Referenced by copy().
void module::set_NP_functionality | ( | NP_functionalityRef | f | ) |
Set the alternative module behavior descriptions (Non SystemC based).
f | is the alternative functionalities |
Definition at line 3291 of file structural_objects.cpp.
References NP_functionality::exist_NP_functionality(), NP_functionality::FLOPOCO_PROVIDED, NP_functionality::FSM, NP_functionality::FSM_CS, structural_object::get_black_box(), NP_descriptions, NP_functionality::SC_PROVIDED, structural_object::set_black_box(), NP_functionality::SYSTEM_VERILOG_PROVIDED, NP_functionality::VERILOG_FILE_PROVIDED, NP_functionality::VERILOG_PROVIDED, NP_functionality::VHDL_FILE_PROVIDED, and NP_functionality::VHDL_PROVIDED.
Referenced by copy().
|
inline |
Set the specialization string.
Definition at line 2224 of file structural_objects.hpp.
|
overridepure virtual |
Load a structural_object starting from an xml file.
node | is a node of the xml tree. |
owner | is the refcount version of this. |
CM | is the circuit manager. |
if the scope is not included, it means that is an external connection. In this case, go on
it can be connected to a primary scalar port or a constant or a signal
it can be connected to a (scalar) port module or a primary vector port element or a vector signal element check if it is a module
it can be connected to an element of a vector port of a module
Reimplemented from structural_object.
Implemented in channel_o, and component_o.
Definition at line 4001 of file structural_objects.cpp.
References add_event(), add_gen_port(), add_in_out_port(), add_in_port(), add_internal_object(), add_local_data(), add_out_port(), add_process(), add_service(), authors, CE_XVM, component_o_K, constant_o_K, xml_node::convert_escaped(), copyright, structural_object::debug_level, DEBUG_LEVEL_VERY_PEDANTIC, description, structural_object::find_member(), find_member(), structural_object::get_black_box(), xml_child::get_children(), GET_CLASS_NAME, get_connections(), xml_text_node::get_content(), structural_object::get_id(), structural_object::get_kind(), structural_object::get_kind_text(), structural_object::get_path(), structural_object::get_typeRef(), HIERARCHY_SEPARATOR, keep_hierarchy, license, LOAD_XVFM, multi_unit_multiplicity, NP_descriptions, port_o_K, port_vector_o_K, PRINT_DBG_MEX, signal_o_K, signal_vector_o_K, specialized, SplitString(), THROW_ASSERT, THROW_ERROR, THROW_WARNING, port_o::to_port_direction(), NP_functionality::xload(), and structural_object::xload().
Referenced by component_o::xload(), and channel_o::xload().
|
overridepure virtual |
Add a structural_object to an xml tree.
rootnode | is the root node at which the xml representation of the structural object is attached. |
Reimplemented from structural_object.
Implemented in channel_o, and component_o.
Definition at line 4428 of file structural_objects.cpp.
References xml_child::add_child_element(), xml_child::add_child_text(), authors, copyright, description, gen_ports, in_out_ports, in_ports, internal_objects, keep_hierarchy, license, list_of_event, list_of_process, list_of_service, local_data, NP_descriptions, out_ports, specialized, NP_functionality::xwrite(), and structural_object::xwrite().
Referenced by component_o::xwrite(), and channel_o::xwrite().
|
private |
|
private |
|
private |
|
private |
generic ports of this module
Definition at line 1769 of file structural_objects.hpp.
Referenced by add_gen_port(), change_port_direction(), find_isomorphic(), find_member(), get_gen_port(), get_gen_port_size(), print(), remove_port(), and xwrite().
|
private |
Input-output ports of this module.
Definition at line 1766 of file structural_objects.hpp.
Referenced by add_in_out_port(), change_port_direction(), find_isomorphic(), find_member(), get_in_out_port(), get_in_out_port_size(), print(), remove_port(), and xwrite().
|
private |
input port of this module
Definition at line 1760 of file structural_objects.hpp.
Referenced by add_in_port(), change_port_direction(), find_isomorphic(), find_member(), get_in_port(), get_in_port_size(), print(), remove_port(), and xwrite().
|
private |
index for bus_connections this table is used to quickly search internal bus_connections used by find_member and find_isomorphic
Definition at line 1819 of file structural_objects.hpp.
Referenced by add_internal_object(), copy(), find_isomorphic(), find_member(), and remove_internal_object().
|
private |
index for channels this table is used to quickly search internal channels used by find_member and find_isomorphic
Definition at line 1815 of file structural_objects.hpp.
Referenced by add_internal_object(), copy(), find_isomorphic(), find_member(), and remove_internal_object().
|
private |
index for components this table is used to quickly search internal components used by find_member and find_isomorphic
Definition at line 1811 of file structural_objects.hpp.
Referenced by add_internal_object(), find_isomorphic(), find_member(), and remove_internal_object().
|
private |
index for constants this table is used to quickly search internal constants used by find_member and find_isomorphic
Definition at line 1807 of file structural_objects.hpp.
Referenced by add_internal_object(), copy(), find_isomorphic(), and find_member().
|
private |
index for signals this table is used to quickly search internal signals used by find_member and find_isomorphic
Definition at line 1803 of file structural_objects.hpp.
Referenced by add_internal_object(), copy(), find_isomorphic(), find_member(), and remove_internal_object().
|
private |
internal components/channels/signals/bus_connection_os (for structural modules)
Definition at line 1772 of file structural_objects.hpp.
Referenced by add_internal_object(), copy(), get_internal_object(), get_internal_objects_size(), print(), remove_internal_object(), and xwrite().
|
private |
when true the component is involved into the critical path of the netlist
Definition at line 1793 of file structural_objects.hpp.
Referenced by copy(), get_critical(), and set_critical().
|
private |
when true the component has been internally generated
Definition at line 1796 of file structural_objects.hpp.
Referenced by copy(), get_generated(), and set_generated().
|
private |
when true the module has the keep_hierarchy attribute active
Definition at line 1840 of file structural_objects.hpp.
Referenced by copy(), get_keep_hierarchy(), set_keep_hierarchy(), xload(), and xwrite().
|
private |
store the last index of the positional binding
Definition at line 1790 of file structural_objects.hpp.
Referenced by add_gen_port(), add_in_out_port(), add_in_port(), add_out_port(), copy(), get_num_ports(), and remove_port().
|
private |
|
private |
List of event associated with the module.
Definition at line 1778 of file structural_objects.hpp.
Referenced by add_event(), find_member(), get_event(), get_event_size(), print(), and xwrite().
|
private |
List of processes associated with the module.
Definition at line 1781 of file structural_objects.hpp.
Referenced by add_process(), find_member(), get_process(), get_process_size(), print(), and xwrite().
|
private |
List of services associated with the module.
Definition at line 1784 of file structural_objects.hpp.
Referenced by add_service(), find_member(), get_service(), get_service_size(), print(), and xwrite().
|
private |
List of local data associated with the module.
Definition at line 1775 of file structural_objects.hpp.
Referenced by add_local_data(), find_member(), get_local_data(), get_local_data_size(), print(), and xwrite().
|
private |
multi-unit multiplicity is the number of units implemented by this module all doing the same thing
Definition at line 1837 of file structural_objects.hpp.
Referenced by copy(), get_multi_unit_multiplicity(), set_multi_unit_multiplicity(), and xload().
|
private |
Alternative descriptions of the behavior of the module.
Definition at line 1787 of file structural_objects.hpp.
Referenced by AddParameter(), copy(), get_NP_functionality(), get_NP_library_parameters(), print(), set_NP_functionality(), xload(), and xwrite().
|
private |
output ports of this module
Definition at line 1763 of file structural_objects.hpp.
Referenced by add_out_port(), change_port_direction(), find_isomorphic(), find_member(), get_out_port(), get_out_port_size(), print(), remove_port(), and xwrite().
|
private |
positional map, given the index return the port in that position
Definition at line 1799 of file structural_objects.hpp.
Referenced by add_gen_port(), add_in_out_port(), add_in_port(), add_out_port(), copy(), get_positional_port(), and remove_port().
|
private |
when non empty it defines with respect what module has been specialized
Definition at line 1834 of file structural_objects.hpp.