- Timestamp:
- Jul 17, 2007, 4:47:56 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Component_vhdl_instance.cpp
r43 r44 20 20 uint32_t cpt = 0; 21 21 map<Signal *,string> tab; 22 23 // buffer all output 24 { 25 vhdl->set_body ("------------------------------------------------------"); 26 vhdl->set_body ("-- Output's Buffer"); 27 vhdl->set_body ("------------------------------------------------------"); 28 29 // for each interface 30 list<Interface_fifo *> * list_interface = (_entity)->get_interfaces_list()->get_interface_list(); 31 list<Interface_fifo *>::iterator j = list_interface->begin(); 32 if (not list_interface->empty()) 33 { 34 while (j != list_interface->end()) 35 { 36 // for each signal 37 list<Signal *> * list_signal = (*j)->get_signal_list(); 38 list<Signal *>::iterator k = list_signal->begin(); 39 if (not list_signal->empty()) 40 { 41 while (k != list_signal->end()) 42 { 43 Signal * signal = (*k); 44 45 // test if is connect with external interface or with an another component AND if this port is mapped. 46 if ( (signal->get_direction() == OUT) and 47 (signal->get_connect_from_signal () != NULL) ) 48 { 49 // Create name 50 string signal_name = "signal_"+toString(cpt++); 51 52 tab [signal ] = signal_name; 53 tab [signal->get_connect_from_signal()] = signal_name; 54 55 // Add a new signal and the affectation 56 vhdl->set_signal (signal_name, signal->get_size()); 57 vhdl->set_body (signal->get_name()+" <= "+signal_name+";"); 58 } 59 else 60 { 61 tab [signal ] = signal->get_name(); 62 } 63 ++k; 64 } 65 } 66 ++j; 67 } 68 } 69 vhdl->set_body (""); 70 vhdl->set_body ("------------------------------------------------------"); 71 vhdl->set_body (""); 72 } 22 73 23 74 vhdl->set_library_work (_entity->get_name() + "_Pack"); … … 50 101 // test if is connect with external interface or with an another component. 51 102 Signal * signal_src = (*k); 103 52 104 if (signal_src->presence_vhdl () == true) 53 105 { 54 Signal * signal_dest = (*k)->get_signal_link();106 Signal * signal_dest = signal_src->get_connect_to_signal(); 55 107 string name_src = signal_src->get_name(); 56 108 string name_dest; 57 109 58 if (_entity->find_signal(signal_dest) == false) 59 { 110 // // Test if destination signal is a interface port ? 111 // if (_entity->find_signal(signal_dest) == false) 112 // { 60 113 // find if signal is already link 61 map<Signal *,string>::iterator it = tab.find(signal_ src);62 if (tab.find(signal_ src) == tab.end())114 map<Signal *,string>::iterator it = tab.find(signal_dest); 115 if (tab.find(signal_dest) == tab.end()) 63 116 { 64 117 // Create name … … 72 125 } 73 126 else 74 name_dest = (*it).second; 75 } 76 else 77 name_dest = signal_dest->get_name(); 127 { 128 // find !!!! 129 name_dest = (*it).second; 130 tab [signal_src ] = name_dest; 131 } 132 // } 133 // else 134 // { 135 // cout << "Kane à dit : " << signal_dest->get_name() << endl; 136 // // Test if output 137 // if (signal_dest->get_direction() == OUT) 138 // { 139 // // Take buffer's signal 140 // map<Signal *,string>::iterator it = tab.find(signal_dest); 141 // name_dest = (*it).second; 142 143 // cout << " * OUT - name : " << name_dest << endl; 144 // } 145 // else 146 // { 147 // name_dest = signal_dest->get_name(); 148 // cout << " * IN - name : " << name_dest << endl; 149 // } 150 // } 78 151 79 152 vhdl->set_body_component_port_map (list_port_map, name_src, name_dest);
Note: See TracChangeset
for help on using the changeset viewer.