- Timestamp:
- Mar 27, 2008, 11:04:49 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Component_port_map.cpp
r76 r78 20 20 log_printf(FUNC,Behavioural,FUNCTION,"Begin"); 21 21 22 // log_printf(NONE,Behavioural,FUNCTION,"Map %s.%s with %s.%s", 23 // component_src.c_str(), 24 // port_src.c_str(), 25 // component_dest.c_str(), 26 // port_dest.c_str()); 27 22 28 std::string name_entity = _entity->get_name(); 23 29 24 30 // First entity 25 31 Entity * entity_dest = find_entity(component_dest); 26 27 32 28 33 if (entity_dest == NULL) … … 53 58 54 59 // need an internal signal ? 55 bool src_is_port = entity_src == _entity;56 bool dest_is_port = entity_dest == _entity;60 bool src_is_port = (entity_src == _entity); 61 bool dest_is_port = (entity_dest == _entity); 57 62 58 63 if (src_is_port == true) … … 67 72 // 68 73 // Interface Component 69 // | |74 // | | 70 75 // ----> (IN) --X-> (IN) 71 // | |76 // | | 72 77 // <-X-- (OUT) <---- (OUT) 73 78 // | | … … 89 94 } 90 95 96 // Create internal signal 91 97 signal_dest= signal_internal (entity_productor, signal_productor); 92 98 signal_dest->set_size_max(signal_src->get_size()); 93 94 dest_is_port = false;95 99 } 96 100 … … 111 115 }; 112 116 113 void Component::port_map (std::string component_src ,114 std::string port_src )115 {116 log_printf(FUNC,Behavioural,FUNCTION,"Begin");117 118 Entity * entity_src = find_entity(component_src);119 120 if (entity_src == NULL)121 throw (ErrorMorpheo ("<Component::port_map> in component \""+_entity->get_name()+"\", port map with unknow component \""+component_src+"\"."));122 123 Signal * signal_src = entity_src->find_signal (port_src);124 125 if (signal_src == NULL)126 throw (ErrorMorpheo ("<Component::port_map> in component \""+_entity->get_name()+"\", port map with component \""+component_src+"\" and a unknow signal \""+port_src+"\"."));127 128 // need an internal signal ?129 130 if (entity_src == _entity)131 throw (ErrorMorpheo ("<Component::port_map> src can't be an interface's port of the top level."));132 133 if (signal_src->get_direction() != OUT)134 throw (ErrorMorpheo ("<Component::port_map> the direction of the signal '"+signal_src->get_name()+"' must be OUT."));135 136 Signal * signal_dest;137 138 signal_dest= signal_internal (entity_src, signal_src);139 signal_dest->set_size_max(signal_src->get_size());140 141 try142 {143 signal_src->link(signal_dest,144 false);145 }146 catch (morpheo::ErrorMorpheo & error)147 {148 throw (ErrorMorpheo ("<Component::port_map> Error in mapping "+entity_src ->get_name()+"."+signal_src ->get_name()+" :\n"+error.what ()));149 }150 //catch (...)151 // {152 // }153 154 log_printf(FUNC,Behavioural,FUNCTION,"End");155 };156 157 117 }; // end namespace behavioural 158 118 }; // end namespace morpheo 159 119 120
Note: See TracChangeset
for help on using the changeset viewer.