|  | 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.
 1.8.13
 1.8.13