- Timestamp:
- Feb 16, 2010, 1:35:48 PM (15 years ago)
- Location:
- trunk
- Files:
-
- 88 added
- 10 deleted
- 146 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/Environment/Makefile
r114 r137 1 ifeq ($(origin MORPHEO_ TMP), undefined)2 $(error "variable MORPHEO_ TMPis undefined");1 ifeq ($(origin MORPHEO_PREFIX), undefined) 2 $(error "variable MORPHEO_PREFIX is undefined"); 3 3 endif 4 4 5 5 #-----[ Directory ]---------------------------------------- 6 DIR_LIB = $( DIR_TMP)/lib6 DIR_LIB = $(MORPHEO_PREFIX)/lib 7 7 DIR_ENVIRONMENT = . 8 8 DIR_CACHE = Cache -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Configuration/src/Configuration_header.cpp
r112 r137 7 7 8 8 #include "Behavioural/Configuration/include/Configuration.h" 9 #include " Behavioural/include/Version.h"9 #include "Common/include/Environment.h" 10 10 11 11 namespace morpheo { … … 18 18 { 19 19 log_begin(Configuration,FUNCTION); 20 21 environment(); 20 22 21 23 std::string str = ""; … … 52 54 str += toString(MSG_INFORMATION)+"\n"; 53 55 str += toString(MSG_INFORMATION)+_(" * Multiple ORganization of a Processor with HEterogeneous and Open architecture\n"); 54 str += toString(MSG_INFORMATION)+_(" * Version : ")+ toString(MORPHEO_HEADER)+"\n";55 str += toString(MSG_INFORMATION)+_(" * Last change : ")+ toString(MORPHEO_DATE )+"\n";56 str += toString(MSG_INFORMATION)+_(" * Version : ")+MORPHEO_HEADER+"\n"; 57 str += toString(MSG_INFORMATION)+_(" * Last change : ")+MORPHEO_DATE +"\n"; 56 58 str += toString(MSG_INFORMATION)+_(" * E-mail support : mathieu.rosiere@lip6.fr\n" ); 57 59 str += toString(MSG_INFORMATION)+_(" * Original author(s) : Mathieu Rosière\n" ); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Configuration/src/Instance_fromXMLLight.cpp
r109 r137 27 27 XMLLightVector<XML_t> vect = xml->getNodes(); 28 28 29 log_printf(TRACE,Configuration,FUNCTION," * id : %s",id.c_str()); 30 log_printf(TRACE,Configuration,FUNCTION," * size : %d",vect.size()); 31 29 32 for (uint32_t i=0; i<vect.size(); ++i) 30 33 { … … 33 36 std::string child_name = child->getName(); 34 37 35 //log_printf(TRACE,Configuration,FUNCTION," * child_name : %s",child_name.c_str());38 log_printf(TRACE,Configuration,FUNCTION," * child_name : %s",child_name.c_str()); 36 39 37 40 //-------------------------------------------- … … 47 50 attribute_t value = getAttribute(child,attributes,"value"); 48 51 49 //log_printf(TRACE,Configuration,FUNCTION," * parameter \"%s\" = %s",value_name.c_str(), value.c_str());52 log_printf(TRACE,Configuration,FUNCTION," * parameter \"%s\" = %s",value_name.c_str(), value.c_str()); 50 53 51 54 testAttributesEmpty(child,attributes); … … 75 78 attribute_t value_name = getAttribute(child,attributes,"name"); 76 79 77 //log_printf(TRACE,Configuration,FUNCTION," * link \"%s\"",value_name.c_str());80 log_printf(TRACE,Configuration,FUNCTION," * link \"%s\"",value_name.c_str()); 78 81 79 82 // Test, must have src or dest (or twice) … … 118 121 if (child_name == "timing") 119 122 { 120 //log_printf(TRACE,Configuration,FUNCTION," * timing");123 log_printf(TRACE,Configuration,FUNCTION," * timing"); 121 124 122 125 // Notation : … … 196 199 else 197 200 { 198 //log_printf(TRACE,Configuration,FUNCTION," * component");201 log_printf(TRACE,Configuration,FUNCTION," * component"); 199 202 200 203 testSingleton (child,false); … … 229 232 attribute_t value_id = value_ids.substr(index_min, index_max); 230 233 231 //log_printf(TRACE,Configuration,FUNCTION," * component \"%s\" - %s",value_type.c_str(), value_id.c_str());234 log_printf(TRACE,Configuration,FUNCTION," * component \"%s\" - %s",value_type.c_str(), value_id.c_str()); 232 235 233 236 index_begin = index_end; … … 238 241 value_id); 239 242 240 //log_printf(TRACE,Configuration,FUNCTION,"%s.%s",value_type.c_str(),value_id.c_str());241 //log_printf(TRACE,Configuration,FUNCTION," * %d",((*list_components)[value_type]).size());243 // log_printf(TRACE,Configuration,FUNCTION,"%s.%s",value_type.c_str(),value_id.c_str()); 244 // log_printf(TRACE,Configuration,FUNCTION," * %d",((*list_components)[value_type]).size()); 242 245 243 246 // Test if this id is previously used -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Functionnal_unit_vhdl_body.cpp
r116 r137 370 370 vhdl->set_body (1,std_logic_cst(1,0)+"when others;"); 371 371 372 #ifdef SYSTEMC_VHDL_COMPATIBILITY373 372 vhdl->set_body (0,"with reg_EXECUTE_IN_TYPE select"); 374 373 vhdl->set_body (0,"sig_EXECUTE_OUT_ADDRESS <="); 375 374 vhdl->set_body (1,"sig_ADDR_BRANCH when "+std_logic_cst(_param->_size_type,TYPE_BRANCH)+","); 375 #ifdef SYSTEMC_VHDL_COMPATIBILITY 376 376 vhdl->set_body (1,"sig_A_OR_B("+toString(_param->_size_instruction_address-1)+" downto 0) when "+std_logic_cst(_param->_size_type,TYPE_SPECIAL)+","); 377 377 vhdl->set_body (1,std_logic_cst(_param->_size_instruction_address,0)+" when others;"); 378 378 #else 379 vhdl->set_body (0,"with reg_EXECUTE_IN_TYPE select"); 380 vhdl->set_body (0,"sig_EXECUTE_OUT_ADDRESS <="); 381 vhdl->set_body (1,"sig_ADDR_BRANCH when "+std_logic_cst(_param->_size_type,TYPE_BRANCH)+","); 382 vhdl->set_body (1,"sig_A_OR_B when others;"); 379 vhdl->set_body (1,"sig_A_OR_B ("+toString(_param->_size_instruction_address-1)+" downto 0) when others;"); 383 380 // vhdl->set_body (0,"sig_EXECUTE_OUT_ADDRESS <= sig_ADDR_BRANCH;"); 384 381 #endif -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_vhdl_body.cpp
r113 r137 140 140 vhdl->set_body (0,"out_EXECUTE_QUEUE_OUT_DATA "+std_logic_range(_param->_size_general_data )+" <= internal_EXECUTE_QUEUE_OUT_DATA ;"); 141 141 142 vhdl->set_debug ("in_CLOCK = 'U'","GLOP1: Clock = 'U'");143 vhdl->set_debug ("in_CLOCK = 'X'","GLOP2: Clock = 'X'");144 vhdl->set_debug ("in_CLOCK = 'Z'","GLOP3: Clock = 'Z'");145 vhdl->set_debug ("in_CLOCK = 'W'","GLOP4: Clock = 'W'");146 vhdl->set_debug ("in_CLOCK = '1'","KANE : Clock = '1'");147 vhdl->set_debug ("in_CLOCK = '0'","SETH : Clock = '0'");142 // vhdl->set_debug ("in_CLOCK = 'U'","GLOP1: Clock = 'U'"); 143 // vhdl->set_debug ("in_CLOCK = 'X'","GLOP2: Clock = 'X'"); 144 // vhdl->set_debug ("in_CLOCK = 'Z'","GLOP3: Clock = 'Z'"); 145 // vhdl->set_debug ("in_CLOCK = 'W'","GLOP4: Clock = 'W'"); 146 // vhdl->set_debug ("in_CLOCK = '1'","KANE : Clock = '1'"); 147 // vhdl->set_debug ("in_CLOCK = '0'","SETH : Clock = '0'"); 148 148 149 149 log_printf(FUNC,Execute_queue,FUNCTION,"End"); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_vhdl_body.cpp
r136 r137 24 24 log_printf(FUNC,Register_unit_Glue,FUNCTION,"Begin"); 25 25 26 vhdl->set_body("out_CONST_0 <= '0';");27 vhdl->set_body("out_CONST_1 <= '1';");26 // vhdl->set_body("out_CONST_0 <= '0';"); 27 // vhdl->set_body("out_CONST_1 <= '1';"); 28 28 29 29 //----------------------------------- -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/Instruction/include/Types.h
r134 r137 36 36 // Tdepth_t _depth ; 37 37 38 // set by decod 38 // set by decod 39 #ifdef STATISTICS 40 uint32_t _opcod ; 41 #endif 39 42 Ttype_t _type ; 40 43 Toperation_t _operation ; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/Instruction/src/Instruction.cpp
r117 r137 215 215 switch (opcod) 216 216 { 217 case OPCOD_L_CUST1 : {inst->_type = instruction_information(INSTRUCTION_L_CUST1)._type; inst->_operation = instruction_information(INSTRUCTION_L_CUST1)._operation; break;} 218 case OPCOD_L_CUST2 : {inst->_type = instruction_information(INSTRUCTION_L_CUST2)._type; inst->_operation = instruction_information(INSTRUCTION_L_CUST2)._operation; break;} 219 case OPCOD_L_CUST3 : {inst->_type = instruction_information(INSTRUCTION_L_CUST3)._type; inst->_operation = instruction_information(INSTRUCTION_L_CUST3)._operation; break;} 220 case OPCOD_L_CUST4 : {inst->_type = instruction_information(INSTRUCTION_L_CUST4)._type; inst->_operation = instruction_information(INSTRUCTION_L_CUST4)._operation; break;} 221 case OPCOD_L_CUST5 : {inst->_type = instruction_information(INSTRUCTION_L_CUST5)._type; inst->_operation = instruction_information(INSTRUCTION_L_CUST5)._operation; break;} 222 case OPCOD_L_CUST6 : {inst->_type = instruction_information(INSTRUCTION_L_CUST6)._type; inst->_operation = instruction_information(INSTRUCTION_L_CUST6)._operation; break;} 223 case OPCOD_L_CUST7 : {inst->_type = instruction_information(INSTRUCTION_L_CUST7)._type; inst->_operation = instruction_information(INSTRUCTION_L_CUST7)._operation; break;} 224 case OPCOD_L_CUST8 : {inst->_type = instruction_information(INSTRUCTION_L_CUST8)._type; inst->_operation = instruction_information(INSTRUCTION_L_CUST8)._operation; break;} 217 case OPCOD_L_CUST1 : 218 { 219 #ifdef STATISTICS 220 inst->_opcod = INSTRUCTION_L_CUST1; 221 #endif 222 inst->_type = instruction_information(INSTRUCTION_L_CUST1)._type; 223 inst->_operation = instruction_information(INSTRUCTION_L_CUST1)._operation; 224 break; 225 } 226 case OPCOD_L_CUST2 : 227 { 228 #ifdef STATISTICS 229 inst->_opcod = INSTRUCTION_L_CUST2; 230 #endif 231 inst->_type = instruction_information(INSTRUCTION_L_CUST2)._type; 232 inst->_operation = instruction_information(INSTRUCTION_L_CUST2)._operation; 233 break; 234 } 235 case OPCOD_L_CUST3 : 236 { 237 #ifdef STATISTICS 238 inst->_opcod = INSTRUCTION_L_CUST3; 239 #endif 240 inst->_type = instruction_information(INSTRUCTION_L_CUST3)._type; 241 inst->_operation = instruction_information(INSTRUCTION_L_CUST3)._operation; 242 break; 243 } 244 case OPCOD_L_CUST4 : 245 { 246 #ifdef STATISTICS 247 inst->_opcod = INSTRUCTION_L_CUST4; 248 #endif 249 inst->_type = instruction_information(INSTRUCTION_L_CUST4)._type; 250 inst->_operation = instruction_information(INSTRUCTION_L_CUST4)._operation; 251 break; 252 } 253 case OPCOD_L_CUST5 : 254 { 255 #ifdef STATISTICS 256 inst->_opcod = INSTRUCTION_L_CUST5; 257 #endif 258 inst->_type = instruction_information(INSTRUCTION_L_CUST5)._type; 259 inst->_operation = instruction_information(INSTRUCTION_L_CUST5)._operation; 260 break; 261 } 262 case OPCOD_L_CUST6 : 263 { 264 #ifdef STATISTICS 265 inst->_opcod = INSTRUCTION_L_CUST6; 266 #endif 267 inst->_type = instruction_information(INSTRUCTION_L_CUST6)._type; 268 inst->_operation = instruction_information(INSTRUCTION_L_CUST6)._operation; 269 break; 270 } 271 case OPCOD_L_CUST7 : 272 { 273 #ifdef STATISTICS 274 inst->_opcod = INSTRUCTION_L_CUST7; 275 #endif 276 inst->_type = instruction_information(INSTRUCTION_L_CUST7)._type; 277 inst->_operation = instruction_information(INSTRUCTION_L_CUST7)._operation; 278 break; 279 } 280 case OPCOD_L_CUST8 : 281 { 282 #ifdef STATISTICS 283 inst->_opcod = INSTRUCTION_L_CUST8; 284 #endif 285 inst->_type = instruction_information(INSTRUCTION_L_CUST8)._type; 286 inst->_operation = instruction_information(INSTRUCTION_L_CUST8)._operation; 287 break; 288 } 225 289 226 290 default : {throw ERRORMORPHEO("instruction_l_custom",_("Invalid Custom Opcod."));} … … 240 304 switch (opcod) 241 305 { 242 // case OPCOD_LF_CUST1_D : {inst->_type = instruction_information(INSTRUCTION_LF_CUST1_D)._type; inst->_operation = instruction_information(INSTRUCTION_LF_CUST1_D)._operation; break;} 243 // case OPCOD_LF_CUST1_S : {inst->_type = instruction_information(INSTRUCTION_LF_CUST1_S)._type; inst->_operation = instruction_information(INSTRUCTION_LF_CUST1_S)._operation; break;} 306 // case OPCOD_LF_CUST1_D : 307 // { 308 // #ifdef STATISTICS 309 // inst->_opcod = INSTRUCTION_LF_CUST1_D; 310 // #endif 311 // inst->_type = instruction_information(INSTRUCTION_LF_CUST1_D)._type; 312 // inst->_operation = instruction_information(INSTRUCTION_LF_CUST1_D)._operation; 313 // break; 314 // } 315 // case OPCOD_LF_CUST1_S : 316 // { 317 // #ifdef STATISTICS 318 // inst->_opcod = INSTRUCTION_LF_CUST1_S; 319 // #endif 320 // inst->_type = instruction_information(INSTRUCTION_LF_CUST1_S)._type; 321 // inst->_operation = instruction_information(INSTRUCTION_LF_CUST1_S)._operation; 322 // break; 323 // } 244 324 default : {throw ERRORMORPHEO("instruction_lf_custom",_("Invalid Custom Opcod."));} 245 325 } … … 258 338 switch (opcod) 259 339 { 260 // case OPCOD_LV_CUST1 : {inst->_type = instruction_information(INSTRUCTION_LV_CUST1)._type; inst->_operation = instruction_information(INSTRUCTION_LV_CUST1)._operation; break;} 261 // case OPCOD_LV_CUST2 : {inst->_type = instruction_information(INSTRUCTION_LV_CUST2)._type; inst->_operation = instruction_information(INSTRUCTION_LV_CUST2)._operation; break;} 262 // case OPCOD_LV_CUST3 : {inst->_type = instruction_information(INSTRUCTION_LV_CUST3)._type; inst->_operation = instruction_information(INSTRUCTION_LV_CUST3)._operation; break;} 263 // case OPCOD_LV_CUST4 : {inst->_type = instruction_information(INSTRUCTION_LV_CUST4)._type; inst->_operation = instruction_information(INSTRUCTION_LV_CUST4)._operation; break;} 340 // case OPCOD_LV_CUST1 : 341 // { 342 // #ifdef STATISTICS 343 // inst->_opcod = INSTRUCTION_LV_CUST1; 344 // #endif 345 // inst->_type = instruction_information(INSTRUCTION_LV_CUST1)._type; 346 // inst->_operation = instruction_information(INSTRUCTION_LV_CUST1)._operation; 347 // break; 348 // } 349 // case OPCOD_LV_CUST2 : 350 // { 351 // #ifdef STATISTICS 352 // inst->_opcod = INSTRUCTION_LV_CUST2; 353 // #endif 354 // inst->_type = instruction_information(INSTRUCTION_LV_CUST2)._type; 355 // inst->_operation = instruction_information(INSTRUCTION_LV_CUST2)._operation; 356 // break; 357 // } 358 // case OPCOD_LV_CUST3 : 359 // { 360 // #ifdef STATISTICS 361 // inst->_opcod = INSTRUCTION_LV_CUST3; 362 // #endif 363 // inst->_type = instruction_information(INSTRUCTION_LV_CUST3)._type; 364 // inst->_operation = instruction_information(INSTRUCTION_LV_CUST3)._operation; 365 // break; 366 // } 367 // case OPCOD_LV_CUST4 : 368 // { 369 // #ifdef STATISTICS 370 // inst->_opcod = INSTRUCTION_LV_CUST4; 371 // #endif 372 // inst->_type = instruction_information(INSTRUCTION_LV_CUST4)._type; 373 // inst->_operation = instruction_information(INSTRUCTION_LV_CUST4)._operation; 374 // break; 375 // } 264 376 default : {throw ERRORMORPHEO("instruction_lv_custom",_("Invalid Custom Opcod."));} 265 377 } … … 324 436 { 325 437 log_printf(TRACE,Decod,"instruction_l_add"," * instruction : l.add"); 438 #ifdef STATISTICS 439 inst->_opcod = INSTRUCTION_L_ADD; 440 #endif 326 441 inst->_type = instruction_information(INSTRUCTION_L_ADD)._type ; //TYPE_ALU; 327 442 inst->_operation = instruction_information(INSTRUCTION_L_ADD)._operation; //OPERATION_ALU_L_ADD; … … 352 467 log_printf(TRACE,Decod,"instruction_l_addc"," * instruction : l.addc"); 353 468 469 #ifdef STATISTICS 470 inst->_opcod = INSTRUCTION_L_ADDC; 471 #endif 354 472 inst->_type = instruction_information(INSTRUCTION_L_ADDC)._type ; //TYPE_ALU; 355 473 inst->_operation = instruction_information(INSTRUCTION_L_ADDC)._operation; //OPERATION_ALU_L_ADD; … … 380 498 log_printf(TRACE,Decod,"instruction_l_addi"," * instruction : l.addi"); 381 499 500 #ifdef STATISTICS 501 inst->_opcod = INSTRUCTION_L_ADDI; 502 #endif 382 503 inst->_type = instruction_information(INSTRUCTION_L_ADDI)._type ; //TYPE_ALU; 383 504 inst->_operation = instruction_information(INSTRUCTION_L_ADDI)._operation; //OPERATION_ALU_L_ADD; … … 408 529 log_printf(TRACE,Decod,"instruction_l_addic"," * instruction : l.addic"); 409 530 531 #ifdef STATISTICS 532 inst->_opcod = INSTRUCTION_L_ADDIC; 533 #endif 410 534 inst->_type = instruction_information(INSTRUCTION_L_ADDIC)._type ; //TYPE_ALU; 411 535 inst->_operation = instruction_information(INSTRUCTION_L_ADDIC)._operation; //OPERATION_ALU_L_ADD; … … 436 560 log_printf(TRACE,Decod,"instruction_l_and"," * instruction : l.and"); 437 561 562 #ifdef STATISTICS 563 inst->_opcod = INSTRUCTION_L_AND; 564 #endif 438 565 inst->_type = instruction_information(INSTRUCTION_L_AND)._type ; //TYPE_ALU; 439 566 inst->_operation = instruction_information(INSTRUCTION_L_AND)._operation; //OPERATION_ALU_L_AND; … … 464 591 log_printf(TRACE,Decod,"instruction_l_andi"," * instruction : l.andi"); 465 592 593 #ifdef STATISTICS 594 inst->_opcod = INSTRUCTION_L_ANDI; 595 #endif 466 596 inst->_type = instruction_information(INSTRUCTION_L_ANDI)._type ; //TYPE_ALU; 467 597 inst->_operation = instruction_information(INSTRUCTION_L_ANDI)._operation; //OPERATION_ALU_L_AND; … … 495 625 ); 496 626 627 #ifdef STATISTICS 628 inst->_opcod = INSTRUCTION_L_BF; 629 #endif 497 630 inst->_type = instruction_information(INSTRUCTION_L_BF)._type ; //TYPE_BRANCH; 498 631 inst->_operation = instruction_information(INSTRUCTION_L_BF)._operation; //OPERATION_BRANCH_L_TEST_F; … … 527 660 ); 528 661 662 #ifdef STATISTICS 663 inst->_opcod = INSTRUCTION_L_BNF; 664 #endif 529 665 inst->_type = instruction_information(INSTRUCTION_L_BNF)._type ; //TYPE_BRANCH; 530 666 inst->_operation = instruction_information(INSTRUCTION_L_BNF)._operation; //OPERATION_BRANCH_L_TEST_NF; … … 555 691 log_printf(TRACE,Decod,"instruction_l_cmov"," * instruction : l.cmov"); 556 692 693 #ifdef STATISTICS 694 inst->_opcod = INSTRUCTION_L_CMOV; 695 #endif 557 696 inst->_type = instruction_information(INSTRUCTION_L_CMOV)._type ; //TYPE_MOVE; 558 697 inst->_operation = instruction_information(INSTRUCTION_L_CMOV)._operation; //OPERATION_MOVE_L_CMOV; … … 589 728 else 590 729 { 730 #ifdef STATISTICS 731 inst->_opcod = INSTRUCTION_L_CSYNC; 732 #endif 591 733 inst->_type = instruction_information(INSTRUCTION_L_CSYNC)._type ; //TYPE_SPECIAL; 592 734 inst->_operation = instruction_information(INSTRUCTION_L_CSYNC)._operation; //OPERATION_SPECIAL_L_CSYNC; … … 627 769 log_printf(TRACE,Decod,"instruction_l_div"," * instruction : l.div"); 628 770 771 #ifdef STATISTICS 772 inst->_opcod = INSTRUCTION_L_DIV; 773 #endif 629 774 inst->_type = instruction_information(INSTRUCTION_L_DIV)._type ; //TYPE_DIV; 630 775 inst->_operation = instruction_information(INSTRUCTION_L_DIV)._operation; //OPERATION_DIV_L_DIV; … … 655 800 log_printf(TRACE,Decod,"instruction_l_divu"," * instruction : l.divu"); 656 801 802 #ifdef STATISTICS 803 inst->_opcod = INSTRUCTION_L_DIVU; 804 #endif 657 805 inst->_type = instruction_information(INSTRUCTION_L_DIVU)._type ; //TYPE_DIV; 658 806 inst->_operation = instruction_information(INSTRUCTION_L_DIVU)._operation; //OPERATION_DIV_L_DIVU; … … 683 831 log_printf(TRACE,Decod,"instruction_l_extbs"," * instruction : l.extbs"); 684 832 833 #ifdef STATISTICS 834 inst->_opcod = INSTRUCTION_L_EXTBS; 835 #endif 685 836 inst->_type = instruction_information(INSTRUCTION_L_EXTBS)._type ; //TYPE_EXTEND; 686 837 inst->_operation = instruction_information(INSTRUCTION_L_EXTBS)._operation; //OPERATION_EXTEND_L_EXTEND_S; … … 711 862 log_printf(TRACE,Decod,"instruction_l_extbz"," * instruction : l.extbz"); 712 863 864 #ifdef STATISTICS 865 inst->_opcod = INSTRUCTION_L_EXTBZ; 866 #endif 713 867 inst->_type = instruction_information(INSTRUCTION_L_EXTBZ)._type ; //TYPE_EXTEND; 714 868 inst->_operation = instruction_information(INSTRUCTION_L_EXTBZ)._operation; //OPERATION_EXTEND_L_EXTEND_Z; … … 739 893 log_printf(TRACE,Decod,"instruction_l_exths"," * instruction : l.exths"); 740 894 895 #ifdef STATISTICS 896 inst->_opcod = INSTRUCTION_L_EXTHS; 897 #endif 741 898 inst->_type = instruction_information(INSTRUCTION_L_EXTHS)._type ; //TYPE_EXTEND; 742 899 inst->_operation = instruction_information(INSTRUCTION_L_EXTHS)._operation; //OPERATION_EXTEND_L_EXTEND_S; … … 767 924 log_printf(TRACE,Decod,"instruction_l_exthz"," * instruction : l.exthz"); 768 925 926 #ifdef STATISTICS 927 inst->_opcod = INSTRUCTION_L_EXTHZ; 928 #endif 769 929 inst->_type = instruction_information(INSTRUCTION_L_EXTHZ)._type ; //TYPE_EXTEND; 770 930 inst->_operation = instruction_information(INSTRUCTION_L_EXTHZ)._operation; //OPERATION_EXTEND_L_EXTEND_Z; … … 795 955 log_printf(TRACE,Decod,"instruction_l_extws"," * instruction : l.extws"); 796 956 957 #ifdef STATISTICS 958 inst->_opcod = INSTRUCTION_L_EXTWS; 959 #endif 797 960 inst->_type = instruction_information(INSTRUCTION_L_EXTWS)._type ; //TYPE_EXTEND; 798 961 inst->_operation = instruction_information(INSTRUCTION_L_EXTWS)._operation; //OPERATION_EXTEND_L_EXTEND_S; … … 823 986 log_printf(TRACE,Decod,"instruction_l_extwz"," * instruction : l.extwz"); 824 987 988 #ifdef STATISTICS 989 inst->_opcod = INSTRUCTION_L_EXTWZ; 990 #endif 825 991 inst->_type = instruction_information(INSTRUCTION_L_EXTWZ)._type ; //TYPE_EXTEND; 826 992 inst->_operation = instruction_information(INSTRUCTION_L_EXTWZ)._operation; //OPERATION_EXTEND_L_EXTEND_Z; … … 851 1017 log_printf(TRACE,Decod,"instruction_l_ff1"," * instruction : l.ff1"); 852 1018 1019 #ifdef STATISTICS 1020 inst->_opcod = INSTRUCTION_L_FF1; 1021 #endif 853 1022 inst->_type = instruction_information(INSTRUCTION_L_FF1)._type ; //TYPE_FIND; 854 1023 inst->_operation = instruction_information(INSTRUCTION_L_FF1)._operation; //OPERATION_FIND_L_FF1; … … 879 1048 log_printf(TRACE,Decod,"instruction_l_fl1"," * instruction : l.fl1"); 880 1049 1050 #ifdef STATISTICS 1051 inst->_opcod = INSTRUCTION_L_FL1; 1052 #endif 881 1053 inst->_type = instruction_information(INSTRUCTION_L_FL1)._type ; //TYPE_FIND; 882 1054 inst->_operation = instruction_information(INSTRUCTION_L_FL1)._operation; //OPERATION_FIND_L_FL1; … … 907 1079 log_printf(TRACE,Decod,"instruction_l_j"," * instruction : l.j"); 908 1080 1081 #ifdef STATISTICS 1082 inst->_opcod = INSTRUCTION_L_J; 1083 #endif 909 1084 inst->_type = instruction_information(INSTRUCTION_L_J)._type ; //TYPE_BRANCH; 910 1085 inst->_operation = instruction_information(INSTRUCTION_L_J)._operation; //OPERATION_BRANCH_NONE; … … 936 1111 log_printf(TRACE,Decod,"instruction_l_jal"," * instruction : l.jal"); 937 1112 1113 #ifdef STATISTICS 1114 inst->_opcod = INSTRUCTION_L_JAL; 1115 #endif 938 1116 inst->_type = instruction_information(INSTRUCTION_L_JAL)._type ; //TYPE_BRANCH; 939 1117 inst->_operation = instruction_information(INSTRUCTION_L_JAL)._operation; //OPERATION_BRANCH_L_JALR; … … 973 1151 else 974 1152 { 1153 #ifdef STATISTICS 1154 inst->_opcod = INSTRUCTION_L_JALR; 1155 #endif 975 1156 inst->_type = instruction_information(INSTRUCTION_L_JALR)._type ; //TYPE_BRANCH; 976 1157 inst->_operation = instruction_information(INSTRUCTION_L_JALR)._operation; //OPERATION_BRANCH_L_JALR; … … 1003 1184 log_printf(TRACE,Decod,"instruction_l_jr"," * instruction : l.jr"); 1004 1185 1186 #ifdef STATISTICS 1187 inst->_opcod = INSTRUCTION_L_JR; 1188 #endif 1005 1189 inst->_type = instruction_information(INSTRUCTION_L_JR)._type ; //TYPE_BRANCH; 1006 1190 inst->_operation = instruction_information(INSTRUCTION_L_JR)._operation; //OPERATION_BRANCH_L_JALR; … … 1031 1215 log_printf(TRACE,Decod,"instruction_l_lbs"," * instruction : l.lbs"); 1032 1216 1217 #ifdef STATISTICS 1218 inst->_opcod = INSTRUCTION_L_LBS; 1219 #endif 1033 1220 inst->_type = instruction_information(INSTRUCTION_L_LBS)._type ; //TYPE_MEMORY; 1034 1221 inst->_operation = instruction_information(INSTRUCTION_L_LBS)._operation; //OPERATION_MEMORY_LOAD_8_S; … … 1059 1246 log_printf(TRACE,Decod,"instruction_l_lbz"," * instruction : l.lbz"); 1060 1247 1248 #ifdef STATISTICS 1249 inst->_opcod = INSTRUCTION_L_LBZ; 1250 #endif 1061 1251 inst->_type = instruction_information(INSTRUCTION_L_LBZ)._type ; //TYPE_MEMORY; 1062 1252 inst->_operation = instruction_information(INSTRUCTION_L_LBZ)._operation; //OPERATION_MEMORY_LOAD_8_Z; … … 1087 1277 log_printf(TRACE,Decod,"instruction_l_ld"," * instruction : l.ld"); 1088 1278 1279 #ifdef STATISTICS 1280 inst->_opcod = INSTRUCTION_L_LD; 1281 #endif 1089 1282 inst->_type = instruction_information(INSTRUCTION_L_LD)._type ; //TYPE_MEMORY; 1090 1283 inst->_operation = instruction_information(INSTRUCTION_L_LD)._operation; //OPERATION_MEMORY_LOAD_64_S; … … 1115 1308 log_printf(TRACE,Decod,"instruction_l_lhs"," * instruction : l.lhs"); 1116 1309 1310 #ifdef STATISTICS 1311 inst->_opcod = INSTRUCTION_L_LHS; 1312 #endif 1117 1313 inst->_type = instruction_information(INSTRUCTION_L_LHS)._type ; //TYPE_MEMORY; 1118 1314 inst->_operation = instruction_information(INSTRUCTION_L_LHS)._operation; //OPERATION_MEMORY_LOAD_16_S; … … 1143 1339 log_printf(TRACE,Decod,"instruction_l_lhz"," * instruction : l.lhz"); 1144 1340 1341 #ifdef STATISTICS 1342 inst->_opcod = INSTRUCTION_L_LHZ; 1343 #endif 1145 1344 inst->_type = instruction_information(INSTRUCTION_L_LHZ)._type ; //TYPE_MEMORY; 1146 1345 inst->_operation = instruction_information(INSTRUCTION_L_LHZ)._operation; //OPERATION_MEMORY_LOAD_16_Z; … … 1171 1370 log_printf(TRACE,Decod,"instruction_l_lws"," * instruction : l.lws"); 1172 1371 1372 #ifdef STATISTICS 1373 inst->_opcod = INSTRUCTION_L_LWS; 1374 #endif 1173 1375 inst->_type = instruction_information(INSTRUCTION_L_LWS)._type ; //TYPE_MEMORY; 1174 1376 inst->_operation = instruction_information(INSTRUCTION_L_LWS)._operation; //OPERATION_MEMORY_LOAD_32_S; … … 1199 1401 log_printf(TRACE,Decod,"instruction_l_lwz"," * instruction : l.lwz"); 1200 1402 1403 #ifdef STATISTICS 1404 inst->_opcod = INSTRUCTION_L_LWZ; 1405 #endif 1201 1406 inst->_type = instruction_information(INSTRUCTION_L_LWZ)._type ; //TYPE_MEMORY; 1202 1407 inst->_operation = instruction_information(INSTRUCTION_L_LWZ)._operation; //OPERATION_MEMORY_LOAD_32_Z; … … 1227 1432 log_printf(TRACE,Decod,"instruction_l_mac"," * instruction : l.mac"); 1228 1433 1434 #ifdef STATISTICS 1435 inst->_opcod = INSTRUCTION_L_MAC; 1436 #endif 1229 1437 inst->_type = instruction_information(INSTRUCTION_L_MAC)._type ; //TYPE_SPECIAL; 1230 1438 inst->_operation = instruction_information(INSTRUCTION_L_MAC)._operation; //OPERATION_SPECIAL_L_MAC; … … 1255 1463 log_printf(TRACE,Decod,"instruction_l_maci"," * instruction : l.maci"); 1256 1464 1465 #ifdef STATISTICS 1466 inst->_opcod = INSTRUCTION_L_MACI; 1467 #endif 1257 1468 inst->_type = instruction_information(INSTRUCTION_L_MACI)._type ; //TYPE_SPECIAL; 1258 1469 inst->_operation = instruction_information(INSTRUCTION_L_MACI)._operation; //OPERATION_SPECIAL_L_MAC; … … 1290 1501 else 1291 1502 { 1503 #ifdef STATISTICS 1504 inst->_opcod = INSTRUCTION_L_MACRC; 1505 #endif 1292 1506 inst->_type = instruction_information(INSTRUCTION_L_MACRC)._type ; //TYPE_SPECIAL; 1293 1507 inst->_operation = instruction_information(INSTRUCTION_L_MACRC)._operation; //OPERATION_SPECIAL_L_MACRC; … … 1319 1533 log_printf(TRACE,Decod,"instruction_l_mfspr"," * instruction : l.mfspr"); 1320 1534 1535 #ifdef STATISTICS 1536 inst->_opcod = INSTRUCTION_L_MFSPR; 1537 #endif 1321 1538 inst->_type = instruction_information(INSTRUCTION_L_MFSPR)._type ; //TYPE_SPECIAL; 1322 1539 inst->_operation = instruction_information(INSTRUCTION_L_MFSPR)._operation; //OPERATION_SPECIAL_L_MFSPR; … … 1347 1564 log_printf(TRACE,Decod,"instruction_l_movhi"," * instruction : l.movhi"); 1348 1565 1566 #ifdef STATISTICS 1567 inst->_opcod = INSTRUCTION_L_MOVHI; 1568 #endif 1349 1569 inst->_type = instruction_information(INSTRUCTION_L_MOVHI)._type ; //TYPE_MOVE; 1350 1570 inst->_operation = instruction_information(INSTRUCTION_L_MOVHI)._operation; //OPERATION_MOVE_L_MOVHI; … … 1375 1595 log_printf(TRACE,Decod,"instruction_l_msb"," * instruction : l.msb"); 1376 1596 1597 #ifdef STATISTICS 1598 inst->_opcod = INSTRUCTION_L_MSB; 1599 #endif 1377 1600 inst->_type = instruction_information(INSTRUCTION_L_MSB)._type ; //TYPE_SPECIAL; 1378 1601 inst->_operation = instruction_information(INSTRUCTION_L_MSB)._operation; //OPERATION_SPECIAL_L_MSB; … … 1409 1632 else 1410 1633 { 1634 #ifdef STATISTICS 1635 inst->_opcod = INSTRUCTION_L_MSYNC; 1636 #endif 1411 1637 inst->_type = instruction_information(INSTRUCTION_L_MSYNC)._type ; //TYPE_SPECIAL; 1412 1638 inst->_operation = instruction_information(INSTRUCTION_L_MSYNC)._operation; //OPERATION_SPECIAL_L_MSYNC; … … 1438 1664 log_printf(TRACE,Decod,"instruction_l_mtspr"," * instruction : l.mtspr"); 1439 1665 1666 #ifdef STATISTICS 1667 inst->_opcod = INSTRUCTION_L_MTSPR; 1668 #endif 1440 1669 inst->_type = instruction_information(INSTRUCTION_L_MTSPR)._type ; //TYPE_SPECIAL; 1441 1670 inst->_operation = instruction_information(INSTRUCTION_L_MTSPR)._operation; //OPERATION_SPECIAL_L_MTSPR; … … 1467 1696 log_printf(TRACE,Decod,"instruction_l_mul"," * instruction : l.mul"); 1468 1697 1698 #ifdef STATISTICS 1699 inst->_opcod = INSTRUCTION_L_MUL; 1700 #endif 1469 1701 inst->_type = instruction_information(INSTRUCTION_L_MUL)._type ; //TYPE_MUL; 1470 1702 inst->_operation = instruction_information(INSTRUCTION_L_MUL)._operation; //OPERATION_MUL_L_MUL; … … 1495 1727 log_printf(TRACE,Decod,"instruction_l_muli"," * instruction : l.muli"); 1496 1728 1729 #ifdef STATISTICS 1730 inst->_opcod = INSTRUCTION_L_MULI; 1731 #endif 1497 1732 inst->_type = instruction_information(INSTRUCTION_L_MULI)._type ; //TYPE_MUL; 1498 1733 inst->_operation = instruction_information(INSTRUCTION_L_MULI)._operation; //OPERATION_MUL_L_MUL; … … 1523 1758 log_printf(TRACE,Decod,"instruction_l_mulu"," * instruction : l.mulu"); 1524 1759 1760 #ifdef STATISTICS 1761 inst->_opcod = INSTRUCTION_L_MULU; 1762 #endif 1525 1763 inst->_type = instruction_information(INSTRUCTION_L_MULU)._type ; //TYPE_MUL; 1526 1764 inst->_operation = instruction_information(INSTRUCTION_L_MULU)._operation; //OPERATION_MUL_L_MULU; … … 1551 1789 log_printf(TRACE,Decod,"instruction_l_nop"," * instruction : l.nop"); 1552 1790 1791 #ifdef STATISTICS 1792 inst->_opcod = INSTRUCTION_L_NOP; 1793 #endif 1553 1794 inst->_type = instruction_information(INSTRUCTION_L_NOP)._type ; //TYPE_SPECIAL; 1554 1795 inst->_operation = instruction_information(INSTRUCTION_L_NOP)._operation; //OPERATION_SPECIAL_L_NOP; … … 1581 1822 log_printf(TRACE,Decod,"instruction_l_or"," * instruction : l.or"); 1582 1823 1824 #ifdef STATISTICS 1825 inst->_opcod = INSTRUCTION_L_OR; 1826 #endif 1583 1827 inst->_type = instruction_information(INSTRUCTION_L_OR)._type ; //TYPE_ALU; 1584 1828 inst->_operation = instruction_information(INSTRUCTION_L_OR)._operation; //OPERATION_ALU_L_OR; … … 1609 1853 log_printf(TRACE,Decod,"instruction_l_ori"," * instruction : l.ori"); 1610 1854 1855 #ifdef STATISTICS 1856 inst->_opcod = INSTRUCTION_L_ORI; 1857 #endif 1611 1858 inst->_type = instruction_information(INSTRUCTION_L_ORI)._type ; //TYPE_ALU; 1612 1859 inst->_operation = instruction_information(INSTRUCTION_L_ORI)._operation; //OPERATION_ALU_L_OR; … … 1643 1890 else 1644 1891 { 1892 #ifdef STATISTICS 1893 inst->_opcod = INSTRUCTION_L_PSYNC; 1894 #endif 1645 1895 inst->_type = instruction_information(INSTRUCTION_L_PSYNC)._type ; //TYPE_SPECIAL; 1646 1896 inst->_operation = instruction_information(INSTRUCTION_L_PSYNC)._operation; //OPERATION_SPECIAL_L_PSYNC; … … 1672 1922 log_printf(TRACE,Decod,"instruction_l_rfe"," * instruction : l.rfe"); 1673 1923 1924 #ifdef STATISTICS 1925 inst->_opcod = INSTRUCTION_L_RFE; 1926 #endif 1674 1927 inst->_type = instruction_information(INSTRUCTION_L_RFE)._type ; //TYPE_SPECIAL; 1675 1928 inst->_operation = instruction_information(INSTRUCTION_L_RFE)._operation; //OPERATION_SPECIAL_L_RFE; … … 1700 1953 log_printf(TRACE,Decod,"instruction_l_ror"," * instruction : l.ror"); 1701 1954 1955 #ifdef STATISTICS 1956 inst->_opcod = INSTRUCTION_L_ROR; 1957 #endif 1702 1958 inst->_type = instruction_information(INSTRUCTION_L_ROR)._type ; //TYPE_SHIFT; 1703 1959 inst->_operation = instruction_information(INSTRUCTION_L_ROR)._operation; //OPERATION_SHIFT_L_ROR; … … 1728 1984 log_printf(TRACE,Decod,"instruction_l_rori"," * instruction : l.rori"); 1729 1985 1986 #ifdef STATISTICS 1987 inst->_opcod = INSTRUCTION_L_RORI; 1988 #endif 1730 1989 inst->_type = instruction_information(INSTRUCTION_L_RORI)._type ; //TYPE_SHIFT; 1731 1990 inst->_operation = instruction_information(INSTRUCTION_L_RORI)._operation; //OPERATION_SHIFT_L_ROR; … … 1756 2015 log_printf(TRACE,Decod,"instruction_l_sb"," * instruction : l.sb"); 1757 2016 2017 #ifdef STATISTICS 2018 inst->_opcod = INSTRUCTION_L_SB; 2019 #endif 1758 2020 inst->_type = instruction_information(INSTRUCTION_L_SB)._type ; //TYPE_MEMORY; 1759 2021 inst->_operation = instruction_information(INSTRUCTION_L_SB)._operation; //OPERATION_MEMORY_STORE_8; … … 1785 2047 log_printf(TRACE,Decod,"instruction_l_sb"," * instruction : l.sb"); 1786 2048 2049 #ifdef STATISTICS 2050 inst->_opcod = INSTRUCTION_L_SD; 2051 #endif 1787 2052 inst->_type = instruction_information(INSTRUCTION_L_SD)._type ; //TYPE_MEMORY; 1788 2053 inst->_operation = instruction_information(INSTRUCTION_L_SD)._operation; //OPERATION_MEMORY_STORE_64; … … 1814 2079 log_printf(TRACE,Decod,"instruction_l_sfeq"," * instruction : l.sfeq"); 1815 2080 2081 #ifdef STATISTICS 2082 inst->_opcod = INSTRUCTION_L_SFEQ; 2083 #endif 1816 2084 inst->_type = instruction_information(INSTRUCTION_L_SFEQ)._type ; //TYPE_TEST; 1817 2085 inst->_operation = instruction_information(INSTRUCTION_L_SFEQ)._operation; //OPERATION_TEST_L_SFEQ; … … 1842 2110 log_printf(TRACE,Decod,"instruction_l_sfeqi"," * instruction : l.sfeqi"); 1843 2111 2112 #ifdef STATISTICS 2113 inst->_opcod = INSTRUCTION_L_SFEQI; 2114 #endif 1844 2115 inst->_type = instruction_information(INSTRUCTION_L_SFEQI)._type ; //TYPE_TEST; 1845 2116 inst->_operation = instruction_information(INSTRUCTION_L_SFEQI)._operation; //OPERATION_TEST_L_SFEQ; … … 1870 2141 log_printf(TRACE,Decod,"instruction_l_sfges"," * instruction : l.sfges"); 1871 2142 2143 #ifdef STATISTICS 2144 inst->_opcod = INSTRUCTION_L_SFGES; 2145 #endif 1872 2146 inst->_type = instruction_information(INSTRUCTION_L_SFGES)._type ; //TYPE_TEST; 1873 2147 inst->_operation = instruction_information(INSTRUCTION_L_SFGES)._operation; //OPERATION_TEST_L_SFGES; … … 1898 2172 log_printf(TRACE,Decod,"instruction_l_sfgesi"," * instruction : l.sfgesi"); 1899 2173 2174 #ifdef STATISTICS 2175 inst->_opcod = INSTRUCTION_L_SFGESI; 2176 #endif 1900 2177 inst->_type = instruction_information(INSTRUCTION_L_SFGESI)._type ; //TYPE_TEST; 1901 2178 inst->_operation = instruction_information(INSTRUCTION_L_SFGESI)._operation; //OPERATION_TEST_L_SFGES; … … 1926 2203 log_printf(TRACE,Decod,"instruction_l_sfgeu"," * instruction : l.sfgeu"); 1927 2204 2205 #ifdef STATISTICS 2206 inst->_opcod = INSTRUCTION_L_SFGEU; 2207 #endif 1928 2208 inst->_type = instruction_information(INSTRUCTION_L_SFGEU)._type ; //TYPE_TEST; 1929 2209 inst->_operation = instruction_information(INSTRUCTION_L_SFGEU)._operation; //OPERATION_TEST_L_SFGEU; … … 1954 2234 log_printf(TRACE,Decod,"instruction_l_sfgeui"," * instruction : l.sfgeui"); 1955 2235 2236 #ifdef STATISTICS 2237 inst->_opcod = INSTRUCTION_L_SFGEUI; 2238 #endif 1956 2239 inst->_type = instruction_information(INSTRUCTION_L_SFGEUI)._type ; //TYPE_TEST; 1957 2240 inst->_operation = instruction_information(INSTRUCTION_L_SFGEUI)._operation; //OPERATION_TEST_L_SFGEU; … … 1982 2265 log_printf(TRACE,Decod,"instruction_l_sfgts"," * instruction : l.sfgts"); 1983 2266 2267 #ifdef STATISTICS 2268 inst->_opcod = INSTRUCTION_L_SFGTS; 2269 #endif 1984 2270 inst->_type = instruction_information(INSTRUCTION_L_SFGTS)._type ; //TYPE_TEST; 1985 2271 inst->_operation = instruction_information(INSTRUCTION_L_SFGTS)._operation; //OPERATION_TEST_L_SFGTS; … … 2010 2296 log_printf(TRACE,Decod,"instruction_l_sfgtsi"," * instruction : l.sfgtsi"); 2011 2297 2298 #ifdef STATISTICS 2299 inst->_opcod = INSTRUCTION_L_SFGTSI; 2300 #endif 2012 2301 inst->_type = instruction_information(INSTRUCTION_L_SFGTSI)._type ; //TYPE_TEST; 2013 2302 inst->_operation = instruction_information(INSTRUCTION_L_SFGTSI)._operation; //OPERATION_TEST_L_SFGTS; … … 2038 2327 log_printf(TRACE,Decod,"instruction_l_sfgtu"," * instruction : l.sfgtu"); 2039 2328 2329 #ifdef STATISTICS 2330 inst->_opcod = INSTRUCTION_L_SFGTU; 2331 #endif 2040 2332 inst->_type = instruction_information(INSTRUCTION_L_SFGTU)._type ; //TYPE_TEST; 2041 2333 inst->_operation = instruction_information(INSTRUCTION_L_SFGTU)._operation; //OPERATION_TEST_L_SFGTU; … … 2066 2358 log_printf(TRACE,Decod,"instruction_l_sfgtui"," * instruction : l.sfgtui"); 2067 2359 2360 #ifdef STATISTICS 2361 inst->_opcod = INSTRUCTION_L_SFGTUI; 2362 #endif 2068 2363 inst->_type = instruction_information(INSTRUCTION_L_SFGTUI)._type ; //TYPE_TEST; 2069 2364 inst->_operation = instruction_information(INSTRUCTION_L_SFGTUI)._operation; //OPERATION_TEST_L_SFGTU; … … 2094 2389 log_printf(TRACE,Decod,"instruction_l_sfles"," * instruction : l.sfles"); 2095 2390 2391 #ifdef STATISTICS 2392 inst->_opcod = INSTRUCTION_L_SFLES; 2393 #endif 2096 2394 inst->_type = instruction_information(INSTRUCTION_L_SFLES)._type ; //TYPE_TEST; 2097 2395 inst->_operation = instruction_information(INSTRUCTION_L_SFLES)._operation; //OPERATION_TEST_L_SFLES; … … 2122 2420 log_printf(TRACE,Decod,"instruction_l_sflesi"," * instruction : l.sflesi"); 2123 2421 2422 #ifdef STATISTICS 2423 inst->_opcod = INSTRUCTION_L_SFLESI; 2424 #endif 2124 2425 inst->_type = instruction_information(INSTRUCTION_L_SFLESI)._type ; //TYPE_TEST; 2125 2426 inst->_operation = instruction_information(INSTRUCTION_L_SFLESI)._operation; //OPERATION_TEST_L_SFLES; … … 2150 2451 log_printf(TRACE,Decod,"instruction_l_sfleu"," * instruction : l.sfleu"); 2151 2452 2453 #ifdef STATISTICS 2454 inst->_opcod = INSTRUCTION_L_SFLEU; 2455 #endif 2152 2456 inst->_type = instruction_information(INSTRUCTION_L_SFLEU)._type ; //TYPE_TEST; 2153 2457 inst->_operation = instruction_information(INSTRUCTION_L_SFLEU)._operation; //OPERATION_TEST_L_SFLEU; … … 2178 2482 log_printf(TRACE,Decod,"instruction_l_sfleui"," * instruction : l.sfleui"); 2179 2483 2484 #ifdef STATISTICS 2485 inst->_opcod = INSTRUCTION_L_SFLEUI; 2486 #endif 2180 2487 inst->_type = instruction_information(INSTRUCTION_L_SFLEUI)._type ; //TYPE_TEST; 2181 2488 inst->_operation = instruction_information(INSTRUCTION_L_SFLEUI)._operation; //OPERATION_TEST_L_SFLEU; … … 2206 2513 log_printf(TRACE,Decod,"instruction_l_sflts"," * instruction : l.sflts"); 2207 2514 2515 #ifdef STATISTICS 2516 inst->_opcod = INSTRUCTION_L_SFLTS; 2517 #endif 2208 2518 inst->_type = instruction_information(INSTRUCTION_L_SFLTS)._type ; //TYPE_TEST; 2209 2519 inst->_operation = instruction_information(INSTRUCTION_L_SFLTS)._operation; //OPERATION_TEST_L_SFLTS; … … 2234 2544 log_printf(TRACE,Decod,"instruction_l_sfltsi"," * instruction : l.sfltsi"); 2235 2545 2546 #ifdef STATISTICS 2547 inst->_opcod = INSTRUCTION_L_SFLTSI; 2548 #endif 2236 2549 inst->_type = instruction_information(INSTRUCTION_L_SFLTSI)._type ; //TYPE_TEST; 2237 2550 inst->_operation = instruction_information(INSTRUCTION_L_SFLTSI)._operation; //OPERATION_TEST_L_SFLTS; … … 2262 2575 log_printf(TRACE,Decod,"instruction_l_sfltu"," * instruction : l.sfltu"); 2263 2576 2577 #ifdef STATISTICS 2578 inst->_opcod = INSTRUCTION_L_SFLTU; 2579 #endif 2264 2580 inst->_type = instruction_information(INSTRUCTION_L_SFLTU)._type ; //TYPE_TEST; 2265 2581 inst->_operation = instruction_information(INSTRUCTION_L_SFLTU)._operation; //OPERATION_TEST_L_SFLTU; … … 2290 2606 log_printf(TRACE,Decod,"instruction_l_sfltui"," * instruction : l.sfltui"); 2291 2607 2608 #ifdef STATISTICS 2609 inst->_opcod = INSTRUCTION_L_SFLTUI; 2610 #endif 2292 2611 inst->_type = instruction_information(INSTRUCTION_L_SFLTUI)._type ; //TYPE_TEST; 2293 2612 inst->_operation = instruction_information(INSTRUCTION_L_SFLTUI)._operation; //OPERATION_TEST_L_SFLTU; … … 2318 2637 log_printf(TRACE,Decod,"instruction_l_sfne"," * instruction : l.sfne"); 2319 2638 2639 #ifdef STATISTICS 2640 inst->_opcod = INSTRUCTION_L_SFNE; 2641 #endif 2320 2642 inst->_type = instruction_information(INSTRUCTION_L_SFNE)._type ; //TYPE_TEST; 2321 2643 inst->_operation = instruction_information(INSTRUCTION_L_SFNE)._operation; //OPERATION_TEST_L_SFNE; … … 2346 2668 log_printf(TRACE,Decod,"instruction_l_sfnei"," * instruction : l.sfnei"); 2347 2669 2670 #ifdef STATISTICS 2671 inst->_opcod = INSTRUCTION_L_SFNEI; 2672 #endif 2348 2673 inst->_type = instruction_information(INSTRUCTION_L_SFNEI)._type ; //TYPE_TEST; 2349 2674 inst->_operation = instruction_information(INSTRUCTION_L_SFNEI)._operation; //OPERATION_TEST_L_SFNE; … … 2374 2699 log_printf(TRACE,Decod,"instruction_l_sh"," * instruction : l.sh"); 2375 2700 2701 #ifdef STATISTICS 2702 inst->_opcod = INSTRUCTION_L_SH; 2703 #endif 2376 2704 inst->_type = instruction_information(INSTRUCTION_L_SH)._type ; //TYPE_MEMORY; 2377 2705 inst->_operation = instruction_information(INSTRUCTION_L_SH)._operation; //OPERATION_MEMORY_STORE_16; … … 2403 2731 log_printf(TRACE,Decod,"instruction_l_sll"," * instruction : l.sll"); 2404 2732 2733 #ifdef STATISTICS 2734 inst->_opcod = INSTRUCTION_L_SLL; 2735 #endif 2405 2736 inst->_type = instruction_information(INSTRUCTION_L_SLL)._type ; //TYPE_SHIFT; 2406 2737 inst->_operation = instruction_information(INSTRUCTION_L_SLL)._operation; //OPERATION_SHIFT_L_SLL; … … 2431 2762 log_printf(TRACE,Decod,"instruction_l_slli"," * instruction : l.slli"); 2432 2763 2764 #ifdef STATISTICS 2765 inst->_opcod = INSTRUCTION_L_SLLI; 2766 #endif 2433 2767 inst->_type = instruction_information(INSTRUCTION_L_SLLI)._type ; //TYPE_SHIFT; 2434 2768 inst->_operation = instruction_information(INSTRUCTION_L_SLLI)._operation; //OPERATION_SHIFT_L_SLL; … … 2459 2793 log_printf(TRACE,Decod,"instruction_l_sra"," * instruction : l.sra"); 2460 2794 2795 #ifdef STATISTICS 2796 inst->_opcod = INSTRUCTION_L_SRA; 2797 #endif 2461 2798 inst->_type = instruction_information(INSTRUCTION_L_SRA)._type ; //TYPE_SHIFT; 2462 2799 inst->_operation = instruction_information(INSTRUCTION_L_SRA)._operation; //OPERATION_SHIFT_L_SRA; … … 2487 2824 log_printf(TRACE,Decod,"instruction_l_srai"," * instruction : l.srai"); 2488 2825 2826 #ifdef STATISTICS 2827 inst->_opcod = INSTRUCTION_L_SRAI; 2828 #endif 2489 2829 inst->_type = instruction_information(INSTRUCTION_L_SRAI)._type ; //TYPE_SHIFT; 2490 2830 inst->_operation = instruction_information(INSTRUCTION_L_SRAI)._operation; //OPERATION_SHIFT_L_SRA; … … 2515 2855 log_printf(TRACE,Decod,"instruction_l_srl"," * instruction : l.srl"); 2516 2856 2857 #ifdef STATISTICS 2858 inst->_opcod = INSTRUCTION_L_SRL; 2859 #endif 2517 2860 inst->_type = instruction_information(INSTRUCTION_L_SRL)._type ; //TYPE_SHIFT; 2518 2861 inst->_operation = instruction_information(INSTRUCTION_L_SRL)._operation; //OPERATION_SHIFT_L_SRL; … … 2543 2886 log_printf(TRACE,Decod,"instruction_l_srli"," * instruction : l.srli"); 2544 2887 2888 #ifdef STATISTICS 2889 inst->_opcod = INSTRUCTION_L_SRLI; 2890 #endif 2545 2891 inst->_type = instruction_information(INSTRUCTION_L_SRLI)._type ; //TYPE_SHIFT; 2546 2892 inst->_operation = instruction_information(INSTRUCTION_L_SRLI)._operation; //OPERATION_SHIFT_L_SRL; … … 2571 2917 log_printf(TRACE,Decod,"instruction_l_sub"," * instruction : l.sub"); 2572 2918 2919 #ifdef STATISTICS 2920 inst->_opcod = INSTRUCTION_L_SUB; 2921 #endif 2573 2922 inst->_type = instruction_information(INSTRUCTION_L_SUB)._type ; //TYPE_ALU; 2574 2923 inst->_operation = instruction_information(INSTRUCTION_L_SUB)._operation; //OPERATION_ALU_L_SUB; … … 2599 2948 log_printf(TRACE,Decod,"instruction_l_sw"," * instruction : l.sw"); 2600 2949 2950 #ifdef STATISTICS 2951 inst->_opcod = INSTRUCTION_L_SW; 2952 #endif 2601 2953 inst->_type = instruction_information(INSTRUCTION_L_SW)._type ; //TYPE_MEMORY; 2602 2954 inst->_operation = instruction_information(INSTRUCTION_L_SW)._operation; //OPERATION_MEMORY_STORE_32; … … 2634 2986 else 2635 2987 { 2988 #ifdef STATISTICS 2989 inst->_opcod = INSTRUCTION_L_SYS; 2990 #endif 2636 2991 inst->_type = instruction_information(INSTRUCTION_L_SYS)._type ; //TYPE_SPECIAL; 2637 2992 inst->_operation = instruction_information(INSTRUCTION_L_SYS)._operation; //OPERATION_SPECIAL_L_SYS; … … 2678 3033 else 2679 3034 { 3035 #ifdef STATISTICS 3036 inst->_opcod = INSTRUCTION_L_TRAP; 3037 #endif 2680 3038 inst->_type = instruction_information(INSTRUCTION_L_TRAP)._type ; //TYPE_SPECIAL; 2681 3039 inst->_operation = instruction_information(INSTRUCTION_L_TRAP)._operation; //OPERATION_SPECIAL_L_TRAP; … … 2707 3065 log_printf(TRACE,Decod,"instruction_l_xor"," * instruction : l.xor"); 2708 3066 3067 #ifdef STATISTICS 3068 inst->_opcod = INSTRUCTION_L_XOR; 3069 #endif 2709 3070 inst->_type = instruction_information(INSTRUCTION_L_XOR)._type ; //TYPE_ALU; 2710 3071 inst->_operation = instruction_information(INSTRUCTION_L_XOR)._operation; //OPERATION_ALU_L_XOR; … … 2735 3096 log_printf(TRACE,Decod,"instruction_l_xori"," * instruction : l.xori"); 2736 3097 3098 #ifdef STATISTICS 3099 inst->_opcod = INSTRUCTION_L_XORI; 3100 #endif 2737 3101 inst->_type = instruction_information(INSTRUCTION_L_XORI)._type ; //TYPE_ALU; 2738 3102 inst->_operation = instruction_information(INSTRUCTION_L_XORI)._operation; //OPERATION_ALU_L_XOR; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/include/Decod.h
r136 r137 84 84 public : SC_OUT(Tcontext_t ) ** out_DECOD_CONTEXT_ID ;//[nb_inst_decod] 85 85 public : SC_OUT(Tdepth_t ) ** out_DECOD_DEPTH ;//[nb_inst_decod] 86 #ifdef STATISTICS 87 public : SC_OUT(uint32_t ) ** out_DECOD_INSTRUCTION ;//[nb_inst_decod] 88 #endif 86 89 public : SC_OUT(Ttype_t ) ** out_DECOD_TYPE ;//[nb_inst_decod] 87 90 public : SC_OUT(Toperation_t ) ** out_DECOD_OPERATION ;//[nb_inst_decod] -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_allocation.cpp
r136 r137 83 83 ALLOC1_SIGNAL_OUT(out_DECOD_CONTEXT_ID ,"context_id" ,Tcontext_t ,_param->_size_context_id ); 84 84 ALLOC1_SIGNAL_OUT(out_DECOD_DEPTH ,"depth" ,Tdepth_t ,_param->_size_depth ); 85 #ifdef STATISTICS 86 ALLOC1_SIGNAL_OUT(out_DECOD_INSTRUCTION ,"instruction" ,uint32_t ,32 ); 87 #endif 85 88 ALLOC1_SIGNAL_OUT(out_DECOD_TYPE ,"type" ,Ttype_t ,_param->_size_type ); 86 89 ALLOC1_SIGNAL_OUT(out_DECOD_OPERATION ,"operation" ,Toperation_t ,_param->_size_operation ); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_deallocation.cpp
r136 r137 44 44 DELETE1_SIGNAL(out_DECOD_CONTEXT_ID ,_param->_nb_inst_decod,_param->_size_context_id ); 45 45 DELETE1_SIGNAL(out_DECOD_DEPTH ,_param->_nb_inst_decod,_param->_size_depth ); 46 #ifdef STATISTICS 47 DELETE1_SIGNAL(out_DECOD_INSTRUCTION ,_param->_nb_inst_decod,32 ); 48 #endif 46 49 DELETE1_SIGNAL(out_DECOD_TYPE ,_param->_nb_inst_decod,_param->_size_type ); 47 50 DELETE1_SIGNAL(out_DECOD_OPERATION ,_param->_nb_inst_decod,_param->_size_operation ); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_genMealy.cpp
r136 r137 107 107 _decod_instruction->_address_next = addr+1; 108 108 _decod_instruction->_is_delay_slot = internal_CONTEXT_IS_DELAY_SLOT [x]; 109 #ifdef STATISTICS 110 _decod_instruction->_opcod = -1; // not necessary 111 #endif 109 112 _decod_instruction->_type = 0; // not necessary 110 113 _decod_instruction->_operation = 0; // not necessary … … 174 177 if (_param->_have_port_depth) 175 178 PORT_WRITE(out_DECOD_DEPTH [i], depth); 179 #ifdef STATISTICS 180 PORT_WRITE(out_DECOD_INSTRUCTION [i], _decod_instruction->_opcod ); 181 #endif 176 182 PORT_WRITE(out_DECOD_TYPE [i], type); 177 183 PORT_WRITE(out_DECOD_OPERATION [i], _decod_instruction->_operation ); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_vhdl_body.cpp
r135 r137 36 36 37 37 for(uint32_t i = 0;i < _param->_nb_inst_decod;i++){ 38 vhdl->set_body(0,"internal_DECOD_INSTRUCTION_"+toString(i)+" <= in_IFETCH_0_"+toString(i)+"_INSTRUCTION WHEN in_IFETCH_0_ EXCEPTION = "+std_logic_cst(_param->_size_exception_ifetch,EXCEPTION_IFETCH_NONE)+" ELSE "+std_logic_cst(6,OPCOD_10)+" & "+std_logic_cst(2,OPCOD_L_NOP)+" & X\"000000\" ;");38 vhdl->set_body(0,"internal_DECOD_INSTRUCTION_"+toString(i)+" <= in_IFETCH_0_"+toString(i)+"_INSTRUCTION WHEN in_IFETCH_0_"+toString(i)+"_EXCEPTION = "+std_logic_cst(_param->_size_exception_ifetch,EXCEPTION_IFETCH_NONE)+" ELSE "+std_logic_cst(6,OPCOD_10)+" & "+std_logic_cst(2,OPCOD_L_NOP)+" & X\"000000\" ;"); 39 39 vhdl->set_body(0,"out_DECOD_"+toString(i)+"_VAL <= internal_DECOD_"+toString(i)+"_VAL; "); 40 40 vhdl->set_body(0,"out_DECOD_"+toString(i)+"_TYPE <= internal_DECOD_INSTRUCTION_"+toString(i)+"_TYPE; "); … … 53 53 vhdl->set_body(0,"out_DECOD_"+toString(i)+"_NUM_REG_RE <= internal_DECOD_INSTRUCTION_"+toString(i)+"_NUM_REG_RE; "); 54 54 vhdl->set_body(0,"out_DECOD_"+toString(i)+"_EXCEPTION_USE <= internal_DECOD_INSTRUCTION_"+toString(i)+"_EXCEPTION_USE; "); 55 vhdl->set_body(0,"out_DECOD_"+toString(i)+"_EXCEPTION <= internal_DECOD_INSTRUCTION_"+toString(i)+"_EXCEPTION WHEN in_IFETCH_0_ EXCEPTION = "+std_logic_cst(_param->_size_exception_ifetch,EXCEPTION_IFETCH_NONE)+" ELSE "+std_logic_cst(_param->_size_exception_decod,EXCEPTION_DECOD_NONE)+"; ");55 vhdl->set_body(0,"out_DECOD_"+toString(i)+"_EXCEPTION <= internal_DECOD_INSTRUCTION_"+toString(i)+"_EXCEPTION WHEN in_IFETCH_0_"+toString(i)+"_EXCEPTION = "+std_logic_cst(_param->_size_exception_ifetch,EXCEPTION_IFETCH_NONE)+" ELSE "+std_logic_cst(_param->_size_exception_decod,EXCEPTION_DECOD_NONE)+"; "); 56 56 vhdl->set_body(0,"out_DECOD_"+toString(i)+"_NO_EXECUTE <= internal_DECOD_INSTRUCTION_"+toString(i)+"_NO_EXECUTE; "); 57 57 vhdl->set_body(0,"out_DECOD_"+toString(i)+"_IS_DELAY_SLOT <= internal_DECOD_INSTRUCTION_"+toString(i)+"_IS_DELAY_SLOT; "); … … 59 59 vhdl->set_body(0,"out_DECOD_"+toString(i)+"_ADDRESS <= internal_DECOD_INSTRUCTION_"+toString(i)+"_ADDRESS; "); 60 60 #endif 61 vhdl->set_body(0,"internal_DECOD_INSTRUCTION_"+toString(i)+"_ADDRESS <= in_IFETCH_0_ ADDRESS + "+std_logic_cst(_param->_size_instruction_address,i)+" ;");61 vhdl->set_body(0,"internal_DECOD_INSTRUCTION_"+toString(i)+"_ADDRESS <= in_IFETCH_0_"+toString(i)+"_ADDRESS + "+std_logic_cst(_param->_size_instruction_address,i)+" ;"); 62 62 vhdl->set_body(0,"out_DECOD_"+toString(i)+"_ADDRESS_NEXT <= internal_DECOD_INSTRUCTION_"+toString(i)+"_ADDRESS_NEXT; "); 63 vhdl->set_body(0,"internal_DECOD_IN_INSTRUCTION_"+toString(i)+"_ADDRESS_NEXT <= in_IFETCH_ "+toString(i)+"_ADDRESS + '1'; ");63 vhdl->set_body(0,"internal_DECOD_IN_INSTRUCTION_"+toString(i)+"_ADDRESS_NEXT <= in_IFETCH_0_"+toString(i)+"_ADDRESS + '1'; "); 64 64 vhdl->set_body(0,"out_PREDICT_"+toString(i)+"_BRANCH_CONDITION <= internal_DECOD_INSTRUCTION_"+toString(i)+"_BRANCH_CONDITION; "); 65 65 vhdl->set_body(0,"out_PREDICT_"+toString(i)+"_BRANCH_DIRECTION <= internal_DECOD_INSTRUCTION_"+toString(i)+"_BRANCH_DIRECTION; "); 66 66 vhdl->set_body(0,"out_PREDICT_"+toString(i)+"_ADDRESS_SRC <= internal_DECOD_INSTRUCTION_"+toString(i)+"_ADDRESS; "); 67 67 vhdl->set_body(0,"out_PREDICT_"+toString(i)+"_ADDRESS_DEST <= internal_DECOD_INSTRUCTION_"+toString(i)+"_ADDRESS_NEXT; "); 68 vhdl->set_body(0,"out_PREDICT_"+toString(i)+"_BRANCH_STATE <= in_IFETCH_0_ BRANCH_STATE; ");68 vhdl->set_body(0,"out_PREDICT_"+toString(i)+"_BRANCH_STATE <= in_IFETCH_0_"+toString(i)+"_BRANCH_STATE; "); 69 69 vhdl->set_body(0,"out_PREDICT_"+toString(i)+"_VAL <= internal_PREDICT_"+toString(i)+"_VAL; "); 70 70 71 if(_param->_have_port_depth) vhdl->set_body(0,"out_PREDICT_"+toString(i)+"_BRANCH_UPDATE_PREDICTION_ID <= in_IFETCH_0_ BRANCH_UPDATE_PREDICTION_ID; ");72 if(_param->_have_port_inst_ifetch_ptr) vhdl->set_body(0,"out_PREDICT_"+toString(i)+"_MATCH_INST_IFETCH_PTR <= '1' WHEN in_IFETCH_0_ INST_IFETCH_PTR = "+std_logic_cst(_param->_size_inst_ifetch_ptr,i)+" ELSE '0'; ");71 if(_param->_have_port_depth) vhdl->set_body(0,"out_PREDICT_"+toString(i)+"_BRANCH_UPDATE_PREDICTION_ID <= in_IFETCH_0_"+toString(i)+"_BRANCH_UPDATE_PREDICTION_ID; "); 72 if(_param->_have_port_inst_ifetch_ptr) vhdl->set_body(0,"out_PREDICT_"+toString(i)+"_MATCH_INST_IFETCH_PTR <= '1' WHEN in_IFETCH_0_"+toString(i)+"_INST_IFETCH_PTR = "+std_logic_cst(_param->_size_inst_ifetch_ptr,i)+" ELSE '0'; "); 73 73 else vhdl->set_body(0,"out_PREDICT_"+toString(i)+"_MATCH_INST_IFETCH_PTR <= '1' WHEN internal_DECOD_INSTRUCTION_0_TYPE = "+std_logic_cst(_param->_size_type,TYPE_BRANCH)+" ELSE '0' ; "); 74 74 } … … 88 88 89 89 vhdl->set_body(0,"out_CONTEXT_EVENT_VAL <= internal_CONTEXT_EVENT_VAL; "); 90 vhdl->set_body(0,"out_CONTEXT_EVENT_TYPE <= internal_DECOD_INSTRUCTION_0_EVENT_TYPE WHEN in_IFETCH_0_ EXCEPTION = "+std_logic_cst(_param->_size_exception_ifetch,EXCEPTION_IFETCH_NONE)+" ELSE "+std_logic_cst(_param->_size_event_type,EVENT_TYPE_EXCEPTION)+"; ");90 vhdl->set_body(0,"out_CONTEXT_EVENT_TYPE <= internal_DECOD_INSTRUCTION_0_EVENT_TYPE WHEN in_IFETCH_0_0_EXCEPTION = "+std_logic_cst(_param->_size_exception_ifetch,EXCEPTION_IFETCH_NONE)+" ELSE "+std_logic_cst(_param->_size_event_type,EVENT_TYPE_EXCEPTION)+"; "); 91 91 vhdl->set_body(0,"out_CONTEXT_EVENT_ADDRESS <= internal_DECOD_INSTRUCTION_0_ADDRESS; "); 92 92 vhdl->set_body(0,"out_CONTEXT_EVENT_ADDRESS_EPCR <= internal_DECOD_INSTRUCTION_0_ADDRESS_NEXT; "); … … 226 226 extend_signal = ""; 227 227 for(uint32_t cp = 0;cp < _param->_size_instruction_address - 26;cp++) extend_signal += "internal_DECOD_INSTRUCTION_"+toString(i)+"(25) & "; 228 vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_ADDRESS_NEXT <= in_IFETCH_ "+toString(i)+"_ADDRESS + ( "+extend_signal+"internal_DECOD_INSTRUCTION_"+toString(i)+" (25 downto 0) ); ");228 vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_ADDRESS_NEXT <= in_IFETCH_0_"+toString(i)+"_ADDRESS + ( "+extend_signal+"internal_DECOD_INSTRUCTION_"+toString(i)+" (25 downto 0) ); "); 229 229 vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_EVENT_TYPE <= "+std_logic_cst(_param->_size_event_type,EVENT_TYPE_NONE)+"; "); 230 230 … … 252 252 extend_signal = ""; 253 253 for(uint32_t cp = 0;cp < _param->_size_instruction_address - 26;cp++) extend_signal += "internal_DECOD_INSTRUCTION_"+toString(i)+"(25) & "; 254 vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_ADDRESS_NEXT <= in_IFETCH_ "+toString(i)+"_ADDRESS + ( "+extend_signal+"internal_DECOD_INSTRUCTION_"+toString(i)+" (25 downto 0) ); ");254 vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_ADDRESS_NEXT <= in_IFETCH_0_"+toString(i)+"_ADDRESS + ( "+extend_signal+"internal_DECOD_INSTRUCTION_"+toString(i)+" (25 downto 0) ); "); 255 255 vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_EVENT_TYPE <= "+std_logic_cst(_param->_size_event_type,EVENT_TYPE_NONE)+"; "); 256 256 … … 266 266 extend_signal = ""; 267 267 for(uint32_t cp = 0;cp < _param->_size_general_data - 26;cp++) extend_signal += "internal_DECOD_INSTRUCTION_"+toString(i)+"(25) & "; 268 vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_IMMEDIAT <= \"00\" & in_IFETCH_ "+toString(i)+"_ADDRESS + ( "+extend_signal+"internal_DECOD_INSTRUCTION_"+toString(i)+" (25 downto 0) ); ");268 vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_IMMEDIAT <= \"00\" & in_IFETCH_0_"+toString(i)+"_ADDRESS + ( "+extend_signal+"internal_DECOD_INSTRUCTION_"+toString(i)+" (25 downto 0) ); "); 269 269 vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_READ_RA <= '0'; "); 270 270 vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_READ_RB <= '0'; "); … … 280 280 extend_signal = ""; 281 281 for(uint32_t cp = 0;cp < _param->_size_instruction_address - 26;cp++) extend_signal += "internal_DECOD_INSTRUCTION_"+toString(i)+"(25) & "; 282 vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_ADDRESS_NEXT <= in_IFETCH_ "+toString(i)+"_ADDRESS + ( "+extend_signal+"internal_DECOD_INSTRUCTION_"+toString(i)+" (25 downto 0) ); ");282 vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_ADDRESS_NEXT <= in_IFETCH_0_"+toString(i)+"_ADDRESS + ( "+extend_signal+"internal_DECOD_INSTRUCTION_"+toString(i)+" (25 downto 0) ); "); 283 283 vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_EVENT_TYPE <= "+std_logic_cst(_param->_size_event_type,EVENT_TYPE_NONE)+"; "); 284 284 … … 294 294 extend_signal = ""; 295 295 for(uint32_t cp = 0;cp < _param->_size_general_data - 26;cp++) extend_signal += "internal_DECOD_INSTRUCTION_"+toString(i)+"(25) & "; 296 vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_IMMEDIAT <= \"00\" & in_IFETCH_ "+toString(i)+"_ADDRESS + ( "+extend_signal+"internal_DECOD_INSTRUCTION_"+toString(i)+" (25 downto 0) ); ");296 vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_IMMEDIAT <= \"00\" & in_IFETCH_0_"+toString(i)+"_ADDRESS + ( "+extend_signal+"internal_DECOD_INSTRUCTION_"+toString(i)+" (25 downto 0) ); "); 297 297 vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_READ_RA <= '0'; "); 298 298 vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_READ_RB <= '0'; "); … … 308 308 extend_signal = ""; 309 309 for(uint32_t cp = 0;cp < _param->_size_instruction_address - 26;cp++) extend_signal += "internal_DECOD_INSTRUCTION_"+toString(i)+"(25) & "; 310 vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_ADDRESS_NEXT <= in_IFETCH_ "+toString(i)+"_ADDRESS + ( "+extend_signal+"internal_DECOD_INSTRUCTION_"+toString(i)+" (25 downto 0) ); ");310 vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_ADDRESS_NEXT <= in_IFETCH_0_"+toString(i)+"_ADDRESS + ( "+extend_signal+"internal_DECOD_INSTRUCTION_"+toString(i)+" (25 downto 0) ); "); 311 311 vhdl->set_body(3,"internal_DECOD_INSTRUCTION_"+toString(i)+"_EVENT_TYPE <= "+std_logic_cst(_param->_size_event_type,EVENT_TYPE_NONE)+"; "); 312 312 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_vhdl_declaration.cpp
r135 r137 47 47 vhdl->set_signal ("internal_DECOD_INSTRUCTION_"+toString(i)+"_NO_EXECUTE ",1); 48 48 vhdl->set_signal ("internal_DECOD_INSTRUCTION_"+toString(i)+"_IS_DELAY_SLOT ",1); 49 #ifdef DEBUG50 49 vhdl->set_signal ("internal_DECOD_INSTRUCTION_"+toString(i)+"_ADDRESS ",_param->_size_instruction_address); 51 #endif52 50 vhdl->set_signal ("internal_DECOD_INSTRUCTION_"+toString(i)+"_ADDRESS_NEXT ",_param->_size_instruction_address); 53 51 vhdl->set_signal ("internal_DECOD_IN_INSTRUCTION_"+toString(i)+"_ADDRESS_NEXT ",_param->_size_instruction_address); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/include/Decod_queue.h
r136 r137 75 75 public : SC_IN (Tcontext_t ) ** in_DECOD_IN_CONTEXT_ID ;//[nb_inst_decod] 76 76 public : SC_IN (Tdepth_t ) ** in_DECOD_IN_DEPTH ;//[nb_inst_decod] 77 #ifdef STATISTICS 78 public : SC_IN (uint32_t ) ** in_DECOD_IN_INSTRUCTION ;//[nb_inst_decod] 79 #endif 77 80 public : SC_IN (Ttype_t ) ** in_DECOD_IN_TYPE ;//[nb_inst_decod] 78 81 public : SC_IN (Toperation_t ) ** in_DECOD_IN_OPERATION ;//[nb_inst_decod] … … 103 106 public : SC_OUT(Tcontext_t ) ** out_DECOD_OUT_CONTEXT_ID ;//[nb_inst_decod] 104 107 public : SC_OUT(Tdepth_t ) ** out_DECOD_OUT_DEPTH ;//[nb_inst_decod] 108 #ifdef STATISTICS 109 public : SC_OUT(uint32_t ) ** out_DECOD_OUT_INSTRUCTION ;//[nb_inst_decod] 110 #endif 105 111 public : SC_OUT(Ttype_t ) ** out_DECOD_OUT_TYPE ;//[nb_inst_decod] 106 112 public : SC_OUT(Toperation_t ) ** out_DECOD_OUT_OPERATION ;//[nb_inst_decod] -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/include/Types.h
r112 r137 33 33 public : Tcontext_t * _context_id ; 34 34 public : Tdepth_t * _depth ; 35 #ifdef STATISTICS 36 public : uint32_t * _instruction ; 37 #endif 35 38 public : Ttype_t * _type ; 36 39 public : Toperation_t * _operation ; … … 62 65 ALLOC1(_context_id ,Tcontext_t ,_nb_inst); 63 66 ALLOC1(_depth ,Tdepth_t ,_nb_inst); 67 #ifdef STATISTICS 68 ALLOC1(_instruction ,uint32_t ,_nb_inst); 69 #endif 64 70 ALLOC1(_type ,Ttype_t ,_nb_inst); 65 71 ALLOC1(_operation ,Toperation_t ,_nb_inst); … … 94 100 DELETE1(_context_id ,_nb_inst); 95 101 DELETE1(_depth ,_nb_inst); 102 #ifdef STATISTICS 103 DELETE1(_instruction ,_nb_inst); 104 #endif 96 105 DELETE1(_type ,_nb_inst); 97 106 DELETE1(_operation ,_nb_inst); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_allocation.cpp
r123 r137 63 63 ALLOC1_SIGNAL_IN ( in_DECOD_IN_CONTEXT_ID ,"context_id" ,Tcontext_t ,_param->_size_context_id ); 64 64 ALLOC1_SIGNAL_IN ( in_DECOD_IN_DEPTH ,"depth" ,Tdepth_t ,_param->_size_depth ); 65 #ifdef STATISTICS 66 ALLOC1_SIGNAL_IN ( in_DECOD_IN_INSTRUCTION ,"instruction" ,uint32_t ,32 ); 67 #endif 65 68 ALLOC1_SIGNAL_IN ( in_DECOD_IN_TYPE ,"type" ,Ttype_t ,_param->_size_type ); 66 69 ALLOC1_SIGNAL_IN ( in_DECOD_IN_OPERATION ,"operation" ,Toperation_t ,_param->_size_operation ); … … 97 100 ALLOC1_SIGNAL_OUT(out_DECOD_OUT_CONTEXT_ID ,"context_id" ,Tcontext_t ,_param->_size_context_id ); 98 101 ALLOC1_SIGNAL_OUT(out_DECOD_OUT_DEPTH ,"depth" ,Tdepth_t ,_param->_size_depth ); 102 #ifdef STATISTICS 103 ALLOC1_SIGNAL_OUT(out_DECOD_OUT_INSTRUCTION ,"instruction" ,uint32_t ,32 ); 104 #endif 99 105 ALLOC1_SIGNAL_OUT(out_DECOD_OUT_TYPE ,"type" ,Ttype_t ,_param->_size_type ); 100 106 ALLOC1_SIGNAL_OUT(out_DECOD_OUT_OPERATION ,"operation" ,Toperation_t ,_param->_size_operation ); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_deallocation.cpp
r123 r137 33 33 DELETE1_SIGNAL( in_DECOD_IN_CONTEXT_ID ,_param->_nb_inst_decod,_param->_size_context_id ); 34 34 DELETE1_SIGNAL( in_DECOD_IN_DEPTH ,_param->_nb_inst_decod,_param->_size_depth ); 35 #ifdef STATISTICS 36 DELETE1_SIGNAL( in_DECOD_IN_INSTRUCTION ,_param->_nb_inst_decod,32); 37 #endif 35 38 DELETE1_SIGNAL( in_DECOD_IN_TYPE ,_param->_nb_inst_decod,_param->_size_type ); 36 39 DELETE1_SIGNAL( in_DECOD_IN_OPERATION ,_param->_nb_inst_decod,_param->_size_operation ); … … 60 63 DELETE1_SIGNAL(out_DECOD_OUT_CONTEXT_ID ,_param->_nb_inst_decod,_param->_size_context_id ); 61 64 DELETE1_SIGNAL(out_DECOD_OUT_DEPTH ,_param->_nb_inst_decod,_param->_size_depth ); 65 #ifdef STATISTICS 66 DELETE1_SIGNAL(out_DECOD_OUT_INSTRUCTION ,_param->_nb_inst_decod,32); 67 #endif 62 68 DELETE1_SIGNAL(out_DECOD_OUT_TYPE ,_param->_nb_inst_decod,_param->_size_type ); 63 69 DELETE1_SIGNAL(out_DECOD_OUT_OPERATION ,_param->_nb_inst_decod,_param->_size_operation ); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_function_multi_fifo_genMoore.cpp
r123 r137 55 55 if (_param->_have_port_depth) 56 56 PORT_WRITE(out_DECOD_OUT_DEPTH [i],reg_QUEUE[num_bank].front()->_depth [0]); 57 #ifdef STATISTICS 58 PORT_WRITE(out_DECOD_OUT_INSTRUCTION [i],reg_QUEUE[num_bank].front()->_instruction [0]); 59 #endif 57 60 PORT_WRITE(out_DECOD_OUT_TYPE [i],reg_QUEUE[num_bank].front()->_type [0]); 58 61 PORT_WRITE(out_DECOD_OUT_OPERATION [i],reg_QUEUE[num_bank].front()->_operation [0]); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_function_multi_fifo_transition.cpp
r136 r137 74 74 entry->_context_id [0] = context; 75 75 entry->_depth [0] = (_param->_have_port_depth)?PORT_READ(in_DECOD_IN_DEPTH [i]):0; 76 #ifdef STATISTICS 77 entry->_instruction [0] = PORT_READ(in_DECOD_IN_INSTRUCTION [i]); 78 #endif 76 79 entry->_type [0] = PORT_READ(in_DECOD_IN_TYPE [i]); 77 80 entry->_operation [0] = PORT_READ(in_DECOD_IN_OPERATION [i]); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_function_one_fifo_genMoore.cpp
r123 r137 55 55 if (_param->_have_port_depth) 56 56 PORT_WRITE(out_DECOD_OUT_DEPTH [i],reg_QUEUE->front()->_depth [index]); 57 #ifdef STATISTICS 58 PORT_WRITE(out_DECOD_OUT_INSTRUCTION [i],reg_QUEUE->front()->_instruction [index]); 59 #endif 57 60 PORT_WRITE(out_DECOD_OUT_TYPE [i],reg_QUEUE->front()->_type [index]); 58 61 PORT_WRITE(out_DECOD_OUT_OPERATION [i],reg_QUEUE->front()->_operation [index]); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_function_one_fifo_transition.cpp
r136 r137 77 77 entry->_context_id [i] = context; 78 78 entry->_depth [i] = (_param->_have_port_depth)?PORT_READ(in_DECOD_IN_DEPTH [i]):0; 79 #ifdef STATISTICS 80 entry->_instruction [i] = PORT_READ(in_DECOD_IN_INSTRUCTION [i]); 81 #endif 79 82 entry->_type [i] = PORT_READ(in_DECOD_IN_TYPE [i]); 80 83 entry->_operation [i] = PORT_READ(in_DECOD_IN_OPERATION [i]); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Parameters.cpp
r135 r137 42 42 test(); 43 43 44 _size_internal_queue =45 (1 + // _val46 _size_context_id + // _context_id47 _size_depth + // _depth48 _size_type + // _type49 _size_operation + // _operation50 1 + // _no_execute51 1 + // _is_delay_slot52 #ifdef DEBUG53 _size_instruction_address + // _address54 #endif55 _size_instruction_address + // _address_next56 1 + // _has_immediat57 _size_general_data + // _immediat58 1 + // _read_ra59 _size_general_register_logic + // _num_reg_ra60 1 + // _read_rb61 _size_general_register_logic + // _num_reg_rb62 1 + // _read_rc63 _size_special_register_logic + // _num_reg_rc64 1 + // _write_rd65 _size_general_register_logic + // _num_reg_rd66 1 + // _write_re67 _size_special_register_logic + // _num_reg_re68 _size_exception_use + // _exception_use69 _size_exception_decod // _exception70 ) * _nb_inst_decod;71 72 44 if (is_toplevel) 73 45 { … … 111 83 log_begin(Decod_queue,FUNCTION); 112 84 85 _size_internal_queue = 86 (1 + // _val 87 _size_context_id + // _context_id 88 _size_depth + // _depth 89 _size_type + // _type 90 _size_operation + // _operation 91 1 + // _no_execute 92 1 + // _is_delay_slot 93 #ifdef DEBUG 94 _size_instruction_address + // _address 95 #endif 96 _size_instruction_address + // _address_next 97 1 + // _has_immediat 98 _size_general_data + // _immediat 99 1 + // _read_ra 100 _size_general_register_logic + // _num_reg_ra 101 1 + // _read_rb 102 _size_general_register_logic + // _num_reg_rb 103 1 + // _read_rc 104 _size_special_register_logic + // _num_reg_rc 105 1 + // _write_rd 106 _size_general_register_logic + // _num_reg_rd 107 1 + // _write_re 108 _size_special_register_logic + // _num_reg_re 109 _size_exception_use + // _exception_use 110 _size_exception_decod // _exception 111 ) * _nb_inst_decod; 112 113 113 log_end(Decod_queue,FUNCTION); 114 114 }; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/include/Decod_unit.h
r136 r137 83 83 public : SC_OUT(Tcontext_t ) ** out_DECOD_CONTEXT_ID ;//[nb_inst_decod] 84 84 public : SC_OUT(Tdepth_t ) ** out_DECOD_DEPTH ;//[nb_inst_decod] 85 #ifdef STATISTICS 86 public : SC_OUT(uint32_t ) ** out_DECOD_INSTRUCTION ;//[nb_inst_decod] 87 #endif 85 88 public : SC_OUT(Ttype_t ) ** out_DECOD_TYPE ;//[nb_inst_decod] 86 89 public : SC_OUT(Toperation_t ) ** out_DECOD_OPERATION ;//[nb_inst_decod] -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/src/Decod_unit_allocation.cpp
r136 r137 80 80 ALLOC1_SIGNAL_OUT(out_DECOD_CONTEXT_ID ,"context_id" ,Tcontext_t ,_param->_size_context_id ); 81 81 ALLOC1_SIGNAL_OUT(out_DECOD_DEPTH ,"depth" ,Tdepth_t ,_param->_size_depth ); 82 #ifdef STATISTICS 83 ALLOC1_SIGNAL_OUT(out_DECOD_INSTRUCTION ,"instruction" ,uint32_t ,32); 84 #endif 82 85 ALLOC1_SIGNAL_OUT(out_DECOD_TYPE ,"type" ,Ttype_t ,_param->_size_type ); 83 86 ALLOC1_SIGNAL_OUT(out_DECOD_OPERATION ,"operation" ,Toperation_t ,_param->_size_operation ); … … 293 296 COMPONENT_MAP(_component,src ,"out_DECOD_" +toString(i)+"_DEPTH" , 294 297 dest, "in_DECOD_IN_"+toString(i)+"_DEPTH" ); 298 #ifdef STATISTICS 299 COMPONENT_MAP(_component,src ,"out_DECOD_" +toString(i)+"_INSTRUCTION" , 300 dest, "in_DECOD_IN_"+toString(i)+"_INSTRUCTION" ); 301 #endif 295 302 COMPONENT_MAP(_component,src ,"out_DECOD_" +toString(i)+"_TYPE" , 296 303 dest, "in_DECOD_IN_"+toString(i)+"_TYPE" ); … … 483 490 PORT_MAP(_component,src ,"out_DECOD_OUT_"+toString(i)+"_DEPTH" , 484 491 dest,"out_DECOD_" +toString(i)+"_DEPTH" ); 492 #ifdef STATISTICS 493 PORT_MAP(_component,src ,"out_DECOD_OUT_"+toString(i)+"_INSTRUCTION" , 494 dest,"out_DECOD_" +toString(i)+"_INSTRUCTION" ); 495 #endif 485 496 PORT_MAP(_component,src ,"out_DECOD_OUT_"+toString(i)+"_TYPE" , 486 497 dest,"out_DECOD_" +toString(i)+"_TYPE" ); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/src/Decod_unit_deallocation.cpp
r136 r137 43 43 DELETE1_SIGNAL(out_DECOD_CONTEXT_ID ,_param->_nb_inst_decod,_param->_size_context_id ); 44 44 DELETE1_SIGNAL(out_DECOD_DEPTH ,_param->_nb_inst_decod,_param->_size_depth ); 45 #ifdef STATISTICS 46 DELETE1_SIGNAL(out_DECOD_INSTRUCTION ,_param->_nb_inst_decod,32); 47 #endif 45 48 DELETE1_SIGNAL(out_DECOD_TYPE ,_param->_nb_inst_decod,_param->_size_type ); 46 49 DELETE1_SIGNAL(out_DECOD_OPERATION ,_param->_nb_inst_decod,_param->_size_operation ); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue/src/Ifetch_queue_vhdl_body.cpp
r135 r137 243 243 vhdl->set_body (3,"reg_ADDRESS <= var_ADDRESS;"); 244 244 if(_param->_have_port_inst_ifetch_ptr) 245 //vhdl->set_body (3,"reg_INST_IFETCH_PTR ("+reg_ptr_write+") <= var_INST_IFETCH_PTR;");245 //vhdl->set_body (3,"reg_INST_IFETCH_PTR ("+reg_ptr_write+") <= var_INST_IFETCH_PTR;"); 246 246 vhdl->set_body (3,"reg_INST_IFETCH_PTR <= var_INST_IFETCH_PTR;"); 247 247 // vhdl->set_body (3,"reg_BRANCH_STATE ("+reg_ptr_write+") <= var_BRANCH_STATE;"); … … 288 288 vhdl->set_body (1,"out_ADDRESS_ACK <= internal_ADDRESS_ACK;"); 289 289 if (_param->_have_port_ifetch_queue_ptr) { 290 vhdl->set_body (1,"out_ADDRESS_IFETCH_QUEUE_ID <= reg_PTR_WRITE;"); 290 uint32_t diff_size = _param->_size_ifetch_queue_ptr - log2(_param->_size_queue); 291 std::string complete_size = ""; 292 293 if (diff_size > 0) 294 complete_size = std_logic_cst(diff_size,0)+" &"; 295 296 vhdl->set_body (1,"out_ADDRESS_IFETCH_QUEUE_ID <= "+complete_size+" reg_PTR_WRITE;"); 291 297 } 292 298 } … … 303 309 vhdl->set_body(0,"out_DECOD_"+toString(j)+"_VAL <= internal_DECOD_"+toString(j)+"_VAL;"); 304 310 vhdl->set_body(0,"out_DECOD_"+toString(j)+"_INSTRUCTION <= reg_DATA("+reg_ptr_read+")("+toString(j)+") ;"); 311 vhdl->set_body(0,"out_DECOD_"+toString(j)+"_ADDRESS <= reg_ADDRESS("+reg_ptr_read+")+"+std_logic_cst(_param->_size_instruction,j)+";"); 312 if (_param->_have_port_inst_ifetch_ptr) 313 vhdl->set_body(0,"out_DECOD_"+toString(j)+"_BRANCH_STATE <= reg_BRANCH_STATE("+reg_ptr_read+") when reg_INST_IFETCH_PTR("+reg_ptr_read+") = "+std_logic_cst(_param->_size_inst_ifetch_ptr,j)+" else "+std_logic_cst(_param->_size_branch_state,BRANCH_STATE_NONE)+";"); 314 else 315 vhdl->set_body(0,"out_DECOD_"+toString(j)+"_BRANCH_STATE <= reg_BRANCH_STATE("+reg_ptr_read+");"); 316 317 if (_param->_have_port_depth) 318 vhdl->set_body(0,"out_DECOD_"+toString(j)+"_BRANCH_UPDATE_PREDICTION_ID <= reg_BRANCH_UPDATE_PREDICTION_ID("+reg_ptr_read+");"); 319 vhdl->set_body(0,"out_DECOD_"+toString(j)+"_EXCEPTION <= reg_EXCEPTION("+reg_ptr_read+");"); 320 305 321 } 306 vhdl->set_body(0,"out_DECOD_ADDRESS <= reg_ADDRESS("+reg_ptr_read+");");307 if (_param->_have_port_inst_ifetch_ptr)308 vhdl->set_body(0,"out_DECOD_INST_IFETCH_PTR <= reg_INST_IFETCH_PTR("+reg_ptr_read+");");309 vhdl->set_body(0,"out_DECOD_BRANCH_STATE <= reg_BRANCH_STATE("+reg_ptr_read+");");310 if (_param->_have_port_depth)311 vhdl->set_body(0,"out_DECOD_BRANCH_UPDATE_PREDICTION_ID <= reg_BRANCH_UPDATE_PREDICTION_ID("+reg_ptr_read+");");312 vhdl->set_body(0,"out_DECOD_EXCEPTION <= reg_EXCEPTION("+reg_ptr_read+");");313 322 } 314 323 vhdl->set_body(0,""); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue/src/Ifetch_queue_vhdl_declaration.cpp
r135 r137 62 62 vhdl->set_type ("Tenable ","array ("+toString(_param->_size_queue-1)+" downto 0) of Tcase_enable"); 63 63 vhdl->set_signal ("reg_INSTRUCTION_ENABLE ", "Tenable"); 64 vhdl->set_type ("Tadress ","array ("+toString(_param->_size_queue-1)+" downto 0) of "+std_logic(_param->_size_instruction ));64 vhdl->set_type ("Tadress ","array ("+toString(_param->_size_queue-1)+" downto 0) of "+std_logic(_param->_size_instruction_address)); 65 65 vhdl->set_signal ("reg_ADDRESS ", "Tadress"); 66 66 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/include/Front_end.h
r123 r137 90 90 public : SC_OUT(Tcontext_t ) ** out_DECOD_CONTEXT_ID ;//[sum_inst_decod] 91 91 public : SC_OUT(Tdepth_t ) ** out_DECOD_DEPTH ;//[sum_inst_decod] 92 #ifdef STATISTICS 93 public : SC_OUT(uint32_t ) ** out_DECOD_INSTRUCTION ;//[sum_inst_decod] 94 #endif 92 95 public : SC_OUT(Ttype_t ) ** out_DECOD_TYPE ;//[sum_inst_decod] 93 96 public : SC_OUT(Toperation_t ) ** out_DECOD_OPERATION ;//[sum_inst_decod] -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/src/Front_end_allocation.cpp
r136 r137 98 98 ALLOC1_SIGNAL_OUT (out_DECOD_CONTEXT_ID ,"CONTEXT_ID" ,Tcontext_t ,_param->_size_context_id ); 99 99 ALLOC1_SIGNAL_OUT (out_DECOD_DEPTH ,"DEPTH" ,Tdepth_t ,_param->_size_depth ); 100 #ifdef STATISTICS 101 ALLOC1_SIGNAL_OUT (out_DECOD_INSTRUCTION ,"INSTRUCTION" ,uint32_t ,32); 102 #endif 100 103 ALLOC1_SIGNAL_OUT (out_DECOD_TYPE ,"TYPE" ,Ttype_t ,_param->_size_type ); 101 104 ALLOC1_SIGNAL_OUT (out_DECOD_OPERATION ,"OPERATION" ,Toperation_t ,_param->_size_operation ); … … 700 703 701 704 for (uint32_t j=0; j<_param->_decod_unit_nb_context[i]; ++j) 702 { 703 dest = _name+"_glue"; 704 #ifdef POSITION 705 _component->interface_map (src ,"ifetch_"+toString(j), 706 dest,"ifetch_"+toString(i)+"_"+toString(j)); 707 #endif 708 709 if (_param->_have_port_context_id) 710 COMPONENT_MAP(_component,src , "in_IFETCH_"+toString(j) +"_CONTEXT_ID", 711 dest,"out_IFETCH_"+toString(i)+"_"+toString(j)+"_DECOD_UNIT_CONTEXT_ID"); 712 } 705 for (uint32_t k=0; k<_param->_nb_inst_fetch [j];++k) 706 { 707 dest = _name+"_glue"; 708 #ifdef POSITION 709 _component->interface_map (src ,"ifetch_"+toString(j)+"_"+toString(k), 710 dest,"ifetch_"+toString(i)+"_"+toString(j)); 711 #endif 712 713 if (_param->_have_port_context_id) 714 COMPONENT_MAP(_component,src , "in_IFETCH_"+toString(j)+"_"+toString(k)+"_CONTEXT_ID", 715 dest,"out_IFETCH_"+toString(i)+"_"+toString(j)+"_DECOD_UNIT_CONTEXT_ID"); 716 } 713 717 714 718 // ~~~~~[ Interface : "decod" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ … … 729 733 PORT_MAP(_component,src ,"out_DECOD_"+toString(j)+"_DEPTH" , 730 734 dest,"out_DECOD_"+toString(x)+"_DEPTH" ); 735 #ifdef STATISTICS 736 PORT_MAP(_component,src ,"out_DECOD_"+toString(j)+"_INSTRUCTION" , 737 dest,"out_DECOD_"+toString(x)+"_INSTRUCTION" ); 738 #endif 731 739 PORT_MAP(_component,src ,"out_DECOD_"+toString(j)+"_TYPE" , 732 740 dest,"out_DECOD_"+toString(x)+"_TYPE" ); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/src/Front_end_deallocation.cpp
r128 r137 45 45 DELETE1_SIGNAL(out_DECOD_CONTEXT_ID ,_param->_sum_inst_decod,_param->_size_context_id ); 46 46 DELETE1_SIGNAL(out_DECOD_DEPTH ,_param->_sum_inst_decod,_param->_size_depth ); 47 #ifdef STATISTICS 48 DELETE1_SIGNAL(out_DECOD_INSTRUCTION ,_param->_sum_inst_decod,32); 49 #endif 47 50 DELETE1_SIGNAL(out_DECOD_TYPE ,_param->_sum_inst_decod,_param->_size_type ); 48 51 DELETE1_SIGNAL(out_DECOD_OPERATION ,_param->_sum_inst_decod,_param->_size_operation ); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/include/Commit_unit.h
r136 r137 61 61 public : counter_t ** _stat_nb_inst_retire_ok ;//[nb_thread] 62 62 public : counter_t ** _stat_nb_inst_retire_ko ;//[nb_thread] 63 public : counter_t ** _stat_nb_inst_instruction ;//[nb_instruction] 63 64 public : counter_t ** _stat_nb_inst_type ;//[nb_type] 64 65 public : counter_t ** _stat_bank_nb_inst ;//[nb_bank] … … 87 88 //public : SC_IN (Tcontext_t ) *** in_INSERT_RENAME_UNIT_ID ;//[nb_rename_unit][nb_inst_insert] 88 89 public : SC_IN (Tdepth_t ) *** in_INSERT_DEPTH ;//[nb_rename_unit][nb_inst_insert] 90 #ifdef STATISTICS 91 public : SC_IN (uint32_t ) *** in_INSERT_INSTRUCTION ;//[nb_rename_unit][nb_inst_insert] 92 #endif 89 93 public : SC_IN (Ttype_t ) *** in_INSERT_TYPE ;//[nb_rename_unit][nb_inst_insert] 90 94 public : SC_IN (Toperation_t ) *** in_INSERT_OPERATION ;//[nb_rename_unit][nb_inst_insert] … … 104 108 public : SC_IN (Tgeneral_address_t ) *** in_INSERT_NUM_REG_RA_LOG ;//[nb_rename_unit][nb_inst_insert] 105 109 public : SC_IN (Tgeneral_address_t ) *** in_INSERT_NUM_REG_RA_PHY ;//[nb_rename_unit][nb_inst_insert] 110 #endif 106 111 public : SC_IN (Tcontrol_t ) *** in_INSERT_READ_RB ;//[nb_rename_unit][nb_inst_insert] 112 #ifdef DEBUG 107 113 public : SC_IN (Tgeneral_address_t ) *** in_INSERT_NUM_REG_RB_LOG ;//[nb_rename_unit][nb_inst_insert] 108 114 public : SC_IN (Tgeneral_address_t ) *** in_INSERT_NUM_REG_RB_PHY ;//[nb_rename_unit][nb_inst_insert] -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/include/Types.h
r124 r137 85 85 public : uint32_t rename_unit_id ; 86 86 public : Tdepth_t depth ; 87 #ifdef STATISTICS 88 public : uint32_t instruction ; 89 #endif 87 90 public : Ttype_t type ; 88 91 public : Toperation_t operation ; … … 97 100 public : Tgeneral_address_t num_reg_ra_log ; 98 101 public : Tgeneral_address_t num_reg_ra_phy ; 102 #endif 99 103 public : Tcontrol_t read_rb ; 104 #ifdef DEBUG 100 105 public : Tgeneral_address_t num_reg_rb_log ; 101 106 public : Tgeneral_address_t num_reg_rb_phy ; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Commit_unit_allocation.cpp
r136 r137 66 66 // _ALLOC2_SIGNAL_IN ( in_INSERT_RENAME_UNIT_ID ,"rename_unit_id" ,Tcontext_t ,_param->_size_rename_unit_id ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]); 67 67 _ALLOC2_SIGNAL_IN ( in_INSERT_DEPTH ,"depth" ,Tdepth_t ,_param->_size_depth ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]); 68 #ifdef STATISTICS 69 _ALLOC2_SIGNAL_IN ( in_INSERT_INSTRUCTION ,"instruction" ,uint32_t ,32 ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]); 70 #endif 68 71 _ALLOC2_SIGNAL_IN ( in_INSERT_TYPE ,"type" ,Ttype_t ,_param->_size_type ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]); 69 72 _ALLOC2_SIGNAL_IN ( in_INSERT_OPERATION ,"operation" ,Toperation_t ,_param->_size_operation ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]); … … 76 79 _ALLOC2_SIGNAL_IN ( in_INSERT_ADDRESS_NEXT ,"address_next" ,Taddress_t ,_param->_size_instruction_address ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]); 77 80 _ALLOC2_SIGNAL_IN ( in_INSERT_EXCEPTION ,"exception" ,Texception_t ,_param->_size_exception ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]); 78 _ALLOC2_SIGNAL_IN ( in_INSERT_EXCEPTION_USE ,"exception_use" ,Texception_t ,_param->_size_exception 81 _ALLOC2_SIGNAL_IN ( in_INSERT_EXCEPTION_USE ,"exception_use" ,Texception_t ,_param->_size_exception_use ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]); 79 82 _ALLOC2_SIGNAL_IN ( in_INSERT_STORE_QUEUE_PTR_WRITE ,"store_queue_ptr_write",Tlsq_ptr_t ,_param->_size_store_queue_ptr ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]); 80 83 _ALLOC2_SIGNAL_IN ( in_INSERT_LOAD_QUEUE_PTR_WRITE ,"load_queue_ptr_write" ,Tlsq_ptr_t ,_param->_size_load_queue_ptr ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]); … … 83 86 _ALLOC2_SIGNAL_IN ( in_INSERT_NUM_REG_RA_LOG ,"num_reg_ra_log" ,Tgeneral_address_t,_param->_size_general_register_logic,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]); 84 87 _ALLOC2_SIGNAL_IN ( in_INSERT_NUM_REG_RA_PHY ,"num_reg_ra_phy" ,Tgeneral_address_t,_param->_size_general_register ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]); 88 #endif 85 89 _ALLOC2_SIGNAL_IN ( in_INSERT_READ_RB ,"read_rb" ,Tcontrol_t ,1 ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]); 90 #ifdef DEBUG 86 91 _ALLOC2_SIGNAL_IN ( in_INSERT_NUM_REG_RB_LOG ,"num_reg_rb_log" ,Tgeneral_address_t,_param->_size_general_register_logic,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]); 87 92 _ALLOC2_SIGNAL_IN ( in_INSERT_NUM_REG_RB_PHY ,"num_reg_rb_phy" ,Tgeneral_address_t,_param->_size_general_register ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Commit_unit_deallocation.cpp
r136 r137 35 35 // DELETE2_SIGNAL( in_INSERT_RENAME_UNIT_ID ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_rename_unit_id ); 36 36 DELETE2_SIGNAL( in_INSERT_DEPTH ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_depth ); 37 #ifdef STATISTICS 38 DELETE2_SIGNAL( in_INSERT_INSTRUCTION ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],32); 39 #endif 37 40 DELETE2_SIGNAL( in_INSERT_TYPE ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_type ); 38 41 DELETE2_SIGNAL( in_INSERT_OPERATION ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_operation ); … … 52 55 DELETE2_SIGNAL( in_INSERT_NUM_REG_RA_LOG ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_general_register_logic); 53 56 DELETE2_SIGNAL( in_INSERT_NUM_REG_RA_PHY ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_general_register ); 57 #endif 54 58 DELETE2_SIGNAL( in_INSERT_READ_RB ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],1 ); 59 #ifdef DEBUG 55 60 DELETE2_SIGNAL( in_INSERT_NUM_REG_RB_LOG ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_general_register_logic); 56 61 DELETE2_SIGNAL( in_INSERT_NUM_REG_RB_PHY ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_general_register ); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Commit_unit_statistics_allocation.cpp
r124 r137 52 52 _stat_nb_inst_retire_ok = new counter_t * [_param->_nb_thread]; 53 53 _stat_nb_inst_retire_ko = new counter_t * [_param->_nb_thread]; 54 _stat_nb_inst_instruction = new counter_t * [NB_INSTRUCTION]; 54 55 _stat_nb_inst_type = new counter_t * [_param->_nb_type]; 55 56 _stat_bank_nb_inst = new counter_t * [_param->_nb_bank]; 56 57 57 58 { 58 59 std::string sum_nb_inst_insert = "0"; … … 129 130 130 131 for (uint32_t i=0; i<_param->_nb_type; i++) 131 132 if (is_type_valid(i)) 132 133 { 133 134 _stat_nb_inst_type [i] = _stat->create_variable("nb_inst_type_"+toString(i)); … … 139 140 if (is_type_valid(i)) 140 141 { 141 std::string name = toString(static_cast<type_t>(i)).c_str(); 142 // _stat->create_expr_average_by_cycle("average_inst_type_"+toString(name), "nb_inst_type_"+toString(i), "", toString(_("Average instruction retire ok by cycle (type %s)"),name.c_str())); 143 _stat->create_expr_percent ("percent_inst_type_"+toString(name), "nb_inst_type_"+toString(i), sum_nb_inst_type, toString(_("Percent instruction retire ok by cycle (type %s)"),name.c_str())); 144 } 142 std::string name = toString(static_cast<type_t>(i)); 143 144 _stat->create_expr_percent ("percent_type_"+toString(name), "nb_inst_type_"+toString(i), sum_nb_inst_type, toString(_("Percent instruction retire ok by cycle (type %s)"),name.c_str())); 145 } 146 } 147 148 { 149 std::string sum_nb_inst_instruction = "0"; 150 151 for (uint32_t i=0; i<NB_INSTRUCTION; i++) 152 { 153 _stat_nb_inst_instruction [i] = _stat->create_variable("nb_inst_instruction_"+toString(i)); 154 155 sum_nb_inst_instruction = "+ nb_inst_instruction_"+toString(i) + " " +sum_nb_inst_instruction; 156 } 157 158 for (uint32_t i=0; i<NB_INSTRUCTION; i++) 159 { 160 std::string name = toString_instruction(i).c_str(); 161 162 _stat->create_expr_percent ("percent_instruction_"+toString(name), "nb_inst_instruction_"+toString(i), sum_nb_inst_instruction, toString(_("Percent instruction retire ok by cycle (instruction %s)"),name.c_str())); 163 } 145 164 } 146 165 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Commit_unit_statistics_deallocation.cpp
r124 r137 31 31 delete [] _stat_nb_inst_retire_ok; 32 32 delete [] _stat_nb_inst_retire_ko; 33 delete [] _stat_nb_inst_instruction; 33 34 delete [] _stat_nb_inst_type; 34 35 delete [] _stat_bank_nb_inst; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Commit_unit_transition.cpp
r136 r137 252 252 entry->rename_unit_id = x; 253 253 entry->depth = (_param->_have_port_depth)?PORT_READ(in_INSERT_DEPTH [x][y]):0; 254 #ifdef STATISTICS 255 entry->instruction = PORT_READ(in_INSERT_INSTRUCTION [x][y]); 256 #endif 254 257 entry->type = type; 255 258 entry->operation = operation; … … 266 269 entry->num_reg_ra_log = PORT_READ(in_INSERT_NUM_REG_RA_LOG [x][y]); 267 270 entry->num_reg_ra_phy = PORT_READ(in_INSERT_NUM_REG_RA_PHY [x][y]); 271 #endif 268 272 entry->read_rb = PORT_READ(in_INSERT_READ_RB [x][y]); 273 #ifdef DEBUG 269 274 entry->num_reg_rb_log = PORT_READ(in_INSERT_NUM_REG_RB_LOG [x][y]); 270 275 entry->num_reg_rb_phy = PORT_READ(in_INSERT_NUM_REG_RB_PHY [x][y]); … … 287 292 #ifdef DEBUG 288 293 entry->address = PORT_READ(in_INSERT_ADDRESS [x][y]); 289 #else290 entry->address = 0; // not necessary291 294 #endif 292 295 entry->address_next = PORT_READ(in_INSERT_ADDRESS_NEXT [x][y]); … … 823 826 if (retire_ok) 824 827 { 825 (*_stat_nb_inst_retire_ok [num_thread]) ++; 826 (*_stat_nb_inst_type [type] ) ++; 828 uint32_t instruction = entry->instruction; 829 830 (*_stat_nb_inst_retire_ok [num_thread] ) ++; 831 (*_stat_nb_inst_instruction [instruction]) ++; 832 (*_stat_nb_inst_type [type] ) ++; 827 833 } 828 834 else … … 1048 1054 // Read information 1049 1055 rob_state_t state = entry->state; 1050 Tdepth_t depth = entry->depth;1051 1052 Tdepth_t depth_min = (_param->_have_port_depth)?PORT_READ(in_DEPTH_MIN[front_end_id][context_id]):0;1053 Tdepth_t depth_max = (_param->_have_port_depth)?PORT_READ(in_DEPTH_MAX[front_end_id][context_id]):0;1054 Tcontrol_t depth_full = PORT_READ(in_DEPTH_FULL [front_end_id][context_id]);1056 // Tdepth_t depth = entry->depth; 1057 1058 // Tdepth_t depth_min = (_param->_have_port_depth)?PORT_READ(in_DEPTH_MIN[front_end_id][context_id]):0; 1059 // Tdepth_t depth_max = (_param->_have_port_depth)?PORT_READ(in_DEPTH_MAX[front_end_id][context_id]):0; 1060 // Tcontrol_t depth_full = PORT_READ(in_DEPTH_FULL [front_end_id][context_id]); 1055 1061 1056 1062 // is a valid instruction ? … … 1088 1094 1089 1095 log_printf(TRACE,Commit_unit,FUNCTION," * is_valid : %d ((depth == depth_min) and not flush)",is_valid); 1090 log_printf(TRACE,Commit_unit,FUNCTION," * depth : %d",depth );1091 log_printf(TRACE,Commit_unit,FUNCTION," * depth_min : %d",depth_min);1092 log_printf(TRACE,Commit_unit,FUNCTION," * depth_max : %d",depth_max);1093 log_printf(TRACE,Commit_unit,FUNCTION," * depth_full : %d",depth_full);1096 // log_printf(TRACE,Commit_unit,FUNCTION," * depth : %d",depth ); 1097 // log_printf(TRACE,Commit_unit,FUNCTION," * depth_min : %d",depth_min); 1098 // log_printf(TRACE,Commit_unit,FUNCTION," * depth_max : %d",depth_max); 1099 // log_printf(TRACE,Commit_unit,FUNCTION," * depth_full : %d",depth_full); 1094 1100 log_printf(TRACE,Commit_unit,FUNCTION," * speculative : %d",speculative); 1095 1101 log_printf(TRACE,Commit_unit,FUNCTION," * flush : %d",flush); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/OOO_Engine_Glue/include/OOO_Engine_Glue.h
r136 r137 119 119 public : SC_OUT(Tcontrol_t ) *** out_INSERT_COMMIT_UNIT_READ_RA ;//[nb_rename_unit][nb_inst_insert] 120 120 public : SC_OUT(Tgeneral_address_t ) *** out_INSERT_COMMIT_UNIT_NUM_REG_RA_PHY ;//[nb_rename_unit][nb_inst_insert] 121 #endif 121 122 public : SC_OUT(Tcontrol_t ) *** out_INSERT_COMMIT_UNIT_READ_RB ;//[nb_rename_unit][nb_inst_insert] 123 #ifdef DEBUG 122 124 public : SC_OUT(Tgeneral_address_t ) *** out_INSERT_COMMIT_UNIT_NUM_REG_RB_PHY ;//[nb_rename_unit][nb_inst_insert] 123 125 public : SC_OUT(Tcontrol_t ) *** out_INSERT_COMMIT_UNIT_READ_RC ;//[nb_rename_unit][nb_inst_insert] -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/OOO_Engine_Glue/src/OOO_Engine_Glue_allocation.cpp
r136 r137 122 122 _ALLOC2_SIGNAL_OUT(out_INSERT_COMMIT_UNIT_READ_RA ,"COMMIT_UNIT_READ_RA" ,Tcontrol_t ,1 ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]); 123 123 _ALLOC2_SIGNAL_OUT(out_INSERT_COMMIT_UNIT_NUM_REG_RA_PHY ,"COMMIT_UNIT_NUM_REG_RA_PHY" ,Tgeneral_address_t ,_param->_size_general_register,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]); 124 #endif 124 125 _ALLOC2_SIGNAL_OUT(out_INSERT_COMMIT_UNIT_READ_RB ,"COMMIT_UNIT_READ_RB" ,Tcontrol_t ,1 ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]); 126 #ifdef DEBUG 125 127 _ALLOC2_SIGNAL_OUT(out_INSERT_COMMIT_UNIT_NUM_REG_RB_PHY ,"COMMIT_UNIT_NUM_REG_RB_PHY" ,Tgeneral_address_t ,_param->_size_general_register,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]); 126 128 _ALLOC2_SIGNAL_OUT(out_INSERT_COMMIT_UNIT_READ_RC ,"COMMIT_UNIT_READ_RC" ,Tcontrol_t ,1 ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/OOO_Engine_Glue/src/OOO_Engine_Glue_deallocation.cpp
r136 r137 77 77 DELETE2_SIGNAL(out_INSERT_COMMIT_UNIT_READ_RA ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],1 ); 78 78 DELETE2_SIGNAL(out_INSERT_COMMIT_UNIT_NUM_REG_RA_PHY ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_general_register); 79 #endif 79 80 DELETE2_SIGNAL(out_INSERT_COMMIT_UNIT_READ_RB ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],1 ); 81 #ifdef DEBUG 80 82 DELETE2_SIGNAL(out_INSERT_COMMIT_UNIT_NUM_REG_RB_PHY ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_general_register); 81 83 DELETE2_SIGNAL(out_INSERT_COMMIT_UNIT_READ_RC ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],1 ); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/OOO_Engine_Glue/src/OOO_Engine_Glue_genMealy_insert.cpp
r136 r137 76 76 PORT_WRITE(out_INSERT_COMMIT_UNIT_READ_RA [i][j],READ_RA ); 77 77 PORT_WRITE(out_INSERT_COMMIT_UNIT_NUM_REG_RA_PHY [i][j],NUM_REG_RA_PHY ); 78 #endif 78 79 PORT_WRITE(out_INSERT_COMMIT_UNIT_READ_RB [i][j],READ_RB ); 80 #ifdef DEBUG 79 81 PORT_WRITE(out_INSERT_COMMIT_UNIT_NUM_REG_RB_PHY [i][j],NUM_REG_RB_PHY ); 80 82 PORT_WRITE(out_INSERT_COMMIT_UNIT_READ_RC [i][j],READ_RC ); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Dependency_checking_unit/include/Dependency_checking_unit.h
r121 r137 87 87 88 88 // ~~~~~[ Interface "rename_out" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 // 90 // 91 92 89 //public : SC_OUT(Tcontrol_t ) ** out_RENAME_OUT_VAL ;//[nb_inst_insert] 90 //public : SC_IN (Tcontrol_t ) ** in_RENAME_OUT_ACK ;//[nb_inst_insert] 91 //public : SC_OUT(Tcontext_t ) ** out_RENAME_OUT_FRONT_END_ID ;//[nb_inst_insert] 92 //public : SC_OUT(Tcontext_t ) ** out_RENAME_OUT_CONTEXT_ID ;//[nb_inst_insert] 93 93 public : SC_OUT(Tcontrol_t ) ** out_RENAME_OUT_READ_RA ;//[nb_inst_insert] 94 94 #ifdef DEBUG -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Dependency_checking_unit/src/Dependency_checking_unit_allocation.cpp
r121 r137 91 91 // ALLOC1_VALACK_OUT(out_RENAME_OUT_VAL ,VAL); 92 92 // ALLOC1_VALACK_IN ( in_RENAME_OUT_ACK ,ACK); 93 94 93 // ALLOC1_SIGNAL_OUT(out_RENAME_OUT_FRONT_END_ID ,"front_end_id" ,Tcontext_t ,_param->_size_front_end_id ); 94 // ALLOC1_SIGNAL_OUT(out_RENAME_OUT_CONTEXT_ID ,"context_id" ,Tcontext_t ,_param->_size_context_id ); 95 95 ALLOC1_SIGNAL_OUT(out_RENAME_OUT_READ_RA ,"read_ra" ,Tcontrol_t ,1 ); 96 96 #ifdef DEBUG -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Dependency_checking_unit/src/Dependency_checking_unit_deallocation.cpp
r121 r137 54 54 // DELETE1_SIGNAL(out_RENAME_OUT_VAL ,_param->_nb_inst_insert,1); 55 55 // DELETE1_SIGNAL( in_RENAME_OUT_ACK ,_param->_nb_inst_insert,1); 56 57 56 // DELETE1_SIGNAL(out_RENAME_OUT_FRONT_END_ID ,_param->_nb_inst_insert,_param->_size_front_end_id ); 57 // DELETE1_SIGNAL(out_RENAME_OUT_CONTEXT_ID ,_param->_nb_inst_insert,_param->_size_context_id ); 58 58 DELETE1_SIGNAL(out_RENAME_OUT_READ_RA ,_param->_nb_inst_insert,1 ); 59 59 #ifdef DEBUG -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Dependency_checking_unit/src/Dependency_checking_unit_genMealy.cpp
r123 r137 197 197 // PORT_WRITE(out_RENAME_OUT_VAL [i], val [i]); 198 198 // PORT_WRITE(out_RENAME_IN_ACK [i], ack [i]); 199 if (_param->_have_port_front_end_id)200 PORT_WRITE(out_RENAME_OUT_FRONT_END_ID [i], front_end_id [i]);201 if (_param->_have_port_context_id)202 PORT_WRITE(out_RENAME_OUT_CONTEXT_ID [i], context_id [i]);199 // if (_param->_have_port_front_end_id) 200 // PORT_WRITE(out_RENAME_OUT_FRONT_END_ID [i], front_end_id [i]); 201 // if (_param->_have_port_context_id) 202 // PORT_WRITE(out_RENAME_OUT_CONTEXT_ID [i], context_id [i]); 203 203 PORT_WRITE(out_RENAME_OUT_READ_RA [i], read_ra [i]); 204 204 #ifdef DEBUG -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit/src/Free_List_unit_transition.cpp
r112 r137 120 120 121 121 #if (DEBUG >= DEBUG_TRACE) and (DEBUG_Free_List_unit == true) 122 if (0) 122 123 { 123 124 uint32_t limit = 4; … … 175 176 176 177 #ifdef DEBUG_TEST 177 if ( 1)178 if (0) 178 179 for (uint32_t i=0; i<_param->_nb_bank; ++i) 179 180 { -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/include/Register_translation_unit.h
r123 r137 86 86 public : SC_OUT(Tcontrol_t ) ** out_INSERT_VAL ;//[nb_inst_insert] 87 87 public : SC_IN (Tcontrol_t ) ** in_INSERT_ACK ;//[nb_inst_insert] 88 89 88 //public : SC_OUT(Tcontext_t ) ** out_INSERT_FRONT_END_ID ;//[nb_inst_insert] 89 //public : SC_OUT(Tcontext_t ) ** out_INSERT_CONTEXT_ID ;//[nb_inst_insert] 90 90 public : SC_OUT(Tcontrol_t ) ** out_INSERT_READ_RA ;//[nb_inst_insert] 91 91 #ifdef DEBUG -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/src/Register_translation_unit_allocation.cpp
r123 r137 84 84 ALLOC1_VALACK_OUT(out_INSERT_VAL ,VAL); 85 85 ALLOC1_VALACK_IN ( in_INSERT_ACK ,ACK); 86 87 86 // ALLOC1_SIGNAL_OUT(out_INSERT_FRONT_END_ID ,"front_end_id" ,Tcontext_t ,_param->_size_front_end_id ); 87 // ALLOC1_SIGNAL_OUT(out_INSERT_CONTEXT_ID ,"context_id" ,Tcontext_t ,_param->_size_context_id ); 88 88 ALLOC1_SIGNAL_OUT(out_INSERT_READ_RA ,"read_ra" ,Tcontrol_t ,1 ); 89 89 #ifdef DEBUG … … 575 575 #endif 576 576 577 if (_param->_have_port_front_end_id)578 PORT_MAP(_component,src ,"out_RENAME_OUT_"+toString(i)+"_FRONT_END_ID" ,579 dest,"out_INSERT_"+toString(i)+"_FRONT_END_ID" );580 if (_param->_have_port_context_id)581 PORT_MAP(_component,src ,"out_RENAME_OUT_"+toString(i)+"_CONTEXT_ID" ,582 dest,"out_INSERT_"+toString(i)+"_CONTEXT_ID" );577 // if (_param->_have_port_front_end_id) 578 // PORT_MAP(_component,src ,"out_RENAME_OUT_"+toString(i)+"_FRONT_END_ID" , 579 // dest,"out_INSERT_"+toString(i)+"_FRONT_END_ID" ); 580 // if (_param->_have_port_context_id) 581 // PORT_MAP(_component,src ,"out_RENAME_OUT_"+toString(i)+"_CONTEXT_ID" , 582 // dest,"out_INSERT_"+toString(i)+"_CONTEXT_ID" ); 583 583 #ifdef DEBUG 584 584 PORT_MAP(_component,src ,"out_RENAME_OUT_"+toString(i)+"_NUM_REG_RA_LOG" , -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/src/Register_translation_unit_deallocation.cpp
r123 r137 46 46 DELETE1_SIGNAL(out_INSERT_VAL ,_param->_nb_inst_insert,1); 47 47 DELETE1_SIGNAL( in_INSERT_ACK ,_param->_nb_inst_insert,1); 48 49 48 // DELETE1_SIGNAL(out_INSERT_FRONT_END_ID ,_param->_nb_inst_insert,_param->_size_front_end_id ); 49 // DELETE1_SIGNAL(out_INSERT_CONTEXT_ID ,_param->_nb_inst_insert,_param->_size_context_id ); 50 50 DELETE1_SIGNAL(out_INSERT_READ_RA ,_param->_nb_inst_insert,1 ); 51 51 #ifdef DEBUG -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_select/include/Rename_select.h
r123 r137 72 72 public : SC_IN (Tcontext_t ) *** in_RENAME_IN_CONTEXT_ID ;//[nb_front_end][nb_inst_decod] 73 73 public : SC_IN (Tdepth_t ) *** in_RENAME_IN_DEPTH ;//[nb_front_end][nb_inst_decod] 74 #ifdef STATISTICS 75 public : SC_IN (uint32_t ) *** in_RENAME_IN_INSTRUCTION ;//[nb_front_end][nb_inst_decod] 76 #endif 74 77 public : SC_IN (Ttype_t ) *** in_RENAME_IN_TYPE ;//[nb_front_end][nb_inst_decod] 75 78 public : SC_IN (Toperation_t ) *** in_RENAME_IN_OPERATION ;//[nb_front_end][nb_inst_decod] … … 103 106 public : SC_OUT(Tcontext_t ) ** out_RENAME_OUT_CONTEXT_ID ;//[nb_inst_rename] 104 107 public : SC_OUT(Tdepth_t ) ** out_RENAME_OUT_DEPTH ;//[nb_inst_rename] 108 #ifdef STATISTICS 109 public : SC_OUT(uint32_t ) ** out_RENAME_OUT_INSTRUCTION ;//[nb_inst_rename] 110 #endif 105 111 public : SC_OUT(Ttype_t ) ** out_RENAME_OUT_TYPE ;//[nb_inst_rename] 106 112 public : SC_OUT(Toperation_t ) ** out_RENAME_OUT_OPERATION ;//[nb_inst_rename] -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_select/src/Rename_select_allocation.cpp
r123 r137 65 65 _ALLOC2_SIGNAL_IN ( in_RENAME_IN_CONTEXT_ID ,"context_id" ,Tcontext_t ,_param->_size_context_id , _param->_nb_front_end, _param->_nb_inst_decod[it1]); 66 66 _ALLOC2_SIGNAL_IN ( in_RENAME_IN_DEPTH ,"depth" ,Tdepth_t ,_param->_size_depth , _param->_nb_front_end, _param->_nb_inst_decod[it1]); 67 #ifdef STATISTICS 68 _ALLOC2_SIGNAL_IN ( in_RENAME_IN_INSTRUCTION ,"instruction" ,uint32_t ,32 , _param->_nb_front_end, _param->_nb_inst_decod[it1]); 69 #endif 67 70 _ALLOC2_SIGNAL_IN ( in_RENAME_IN_TYPE ,"type" ,Ttype_t ,_param->_size_type , _param->_nb_front_end, _param->_nb_inst_decod[it1]); 68 71 _ALLOC2_SIGNAL_IN ( in_RENAME_IN_OPERATION ,"operation" ,Toperation_t ,_param->_size_operation , _param->_nb_front_end, _param->_nb_inst_decod[it1]); … … 102 105 ALLOC1_SIGNAL_OUT(out_RENAME_OUT_CONTEXT_ID ,"context_id" ,Tcontext_t ,_param->_size_context_id ); 103 106 ALLOC1_SIGNAL_OUT(out_RENAME_OUT_DEPTH ,"depth" ,Tdepth_t ,_param->_size_depth ); 107 #ifdef STATISTICS 108 ALLOC1_SIGNAL_OUT(out_RENAME_OUT_INSTRUCTION ,"instruction" ,uint32_t ,32); 109 #endif 104 110 ALLOC1_SIGNAL_OUT(out_RENAME_OUT_TYPE ,"type" ,Ttype_t ,_param->_size_type ); 105 111 ALLOC1_SIGNAL_OUT(out_RENAME_OUT_OPERATION ,"operation" ,Toperation_t ,_param->_size_operation ); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_select/src/Rename_select_deallocation.cpp
r123 r137 34 34 DELETE2_SIGNAL( in_RENAME_IN_CONTEXT_ID ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_context_id ); 35 35 DELETE2_SIGNAL( in_RENAME_IN_DEPTH ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_depth ); 36 #ifdef STATISTICS 37 DELETE2_SIGNAL( in_RENAME_IN_INSTRUCTION ,_param->_nb_front_end, _param->_nb_inst_decod[it1],32); 38 #endif 36 39 DELETE2_SIGNAL( in_RENAME_IN_TYPE ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_type ); 37 40 DELETE2_SIGNAL( in_RENAME_IN_OPERATION ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_operation ); … … 64 67 DELETE1_SIGNAL(out_RENAME_OUT_CONTEXT_ID ,_param->_nb_inst_rename,_param->_size_context_id ); 65 68 DELETE1_SIGNAL(out_RENAME_OUT_DEPTH ,_param->_nb_inst_rename,_param->_size_depth ); 66 DELETE1_SIGNAL(out_RENAME_OUT_TYPE ,_param->_nb_inst_rename,_param->_size_type ); 67 DELETE1_SIGNAL(out_RENAME_OUT_OPERATION ,_param->_nb_inst_rename,_param->_size_operation ); 69 #ifdef STATISTICS 70 DELETE1_SIGNAL(out_RENAME_OUT_INSTRUCTION ,_param->_nb_inst_rename,32); 71 #endif 72 DELETE1_SIGNAL(out_RENAME_OUT_TYPE ,_param->_nb_inst_rename,_param->_size_type ); 73 DELETE1_SIGNAL(out_RENAME_OUT_OPERATION ,_param->_nb_inst_rename,_param->_size_operation ); 68 74 DELETE1_SIGNAL(out_RENAME_OUT_NO_EXECUTE ,_param->_nb_inst_rename,1 ); 69 75 DELETE1_SIGNAL(out_RENAME_OUT_LAST_EVENT ,_param->_nb_inst_rename,1 ); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_select/src/Rename_select_genMealy.cpp
r123 r137 103 103 if (_param->_have_port_depth) 104 104 PORT_WRITE(out_RENAME_OUT_DEPTH [i],PORT_READ(in_RENAME_IN_DEPTH [x][y])); 105 #ifdef STATISTICS 106 PORT_WRITE(out_RENAME_OUT_INSTRUCTION [i],PORT_READ(in_RENAME_IN_INSTRUCTION [x][y])); 107 #endif 105 108 PORT_WRITE(out_RENAME_OUT_TYPE [i],PORT_READ(in_RENAME_IN_TYPE [x][y])); 106 109 PORT_WRITE(out_RENAME_OUT_OPERATION [i],PORT_READ(in_RENAME_IN_OPERATION [x][y])); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/include/Rename_unit.h
r123 r137 74 74 public : SC_IN (Tcontext_t ) *** in_RENAME_IN_CONTEXT_ID ;//[nb_front_end][nb_inst_decod] 75 75 public : SC_IN (Tdepth_t ) *** in_RENAME_IN_DEPTH ;//[nb_front_end][nb_inst_decod] 76 #ifdef STATISTICS 77 public : SC_IN (uint32_t ) *** in_RENAME_IN_INSTRUCTION ;//[nb_front_end][nb_inst_decod] 78 #endif 76 79 public : SC_IN (Ttype_t ) *** in_RENAME_IN_TYPE ;//[nb_front_end][nb_inst_decod] 77 80 public : SC_IN (Toperation_t ) *** in_RENAME_IN_OPERATION ;//[nb_front_end][nb_inst_decod] … … 105 108 public : SC_OUT(Tcontext_t ) ** out_INSERT_CONTEXT_ID ;//[nb_inst_insert] 106 109 public : SC_OUT(Tdepth_t ) ** out_INSERT_DEPTH ;//[nb_inst_insert] 110 #ifdef STATISTICS 111 public : SC_OUT(uint32_t ) ** out_INSERT_INSTRUCTION ;//[nb_inst_insert] 112 #endif 107 113 public : SC_OUT(Ttype_t ) ** out_INSERT_TYPE ;//[nb_inst_insert] 108 114 public : SC_OUT(Toperation_t ) ** out_INSERT_OPERATION ;//[nb_inst_insert] -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/src/Rename_unit_allocation.cpp
r123 r137 65 65 _ALLOC2_SIGNAL_IN ( in_RENAME_IN_CONTEXT_ID ,"context_id" ,Tcontext_t ,_param->_size_context_id , _param->_nb_front_end, _param->_nb_inst_decod[it1]); 66 66 _ALLOC2_SIGNAL_IN ( in_RENAME_IN_DEPTH ,"depth" ,Tdepth_t ,_param->_size_depth , _param->_nb_front_end, _param->_nb_inst_decod[it1]); 67 #ifdef STATISTICS 68 _ALLOC2_SIGNAL_IN ( in_RENAME_IN_INSTRUCTION ,"instruction" ,uint32_t ,32 , _param->_nb_front_end, _param->_nb_inst_decod[it1]); 69 #endif 67 70 _ALLOC2_SIGNAL_IN ( in_RENAME_IN_TYPE ,"type" ,Ttype_t ,_param->_size_type , _param->_nb_front_end, _param->_nb_inst_decod[it1]); 68 71 _ALLOC2_SIGNAL_IN ( in_RENAME_IN_OPERATION ,"operation" ,Toperation_t ,_param->_size_operation , _param->_nb_front_end, _param->_nb_inst_decod[it1]); … … 102 105 ALLOC1_SIGNAL_OUT(out_INSERT_CONTEXT_ID ,"context_id" ,Tcontext_t ,_param->_size_context_id ); 103 106 ALLOC1_SIGNAL_OUT(out_INSERT_DEPTH ,"depth" ,Tdepth_t ,_param->_size_depth ); 107 #ifdef STATISTICS 108 ALLOC1_SIGNAL_OUT(out_INSERT_INSTRUCTION ,"instruction" ,uint32_t ,32); 109 #endif 104 110 ALLOC1_SIGNAL_OUT(out_INSERT_TYPE ,"type" ,Ttype_t ,_param->_size_type ); 105 111 ALLOC1_SIGNAL_OUT(out_INSERT_OPERATION ,"operation" ,Toperation_t ,_param->_size_operation ); … … 333 339 PORT_MAP(_component,src , "in_RENAME_IN_"+toString(i)+"_"+toString(j)+"_DEPTH" , 334 340 dest, "in_RENAME_IN_"+toString(i)+"_"+toString(j)+"_DEPTH" ); 341 #ifdef STATISTICS 342 PORT_MAP(_component,src , "in_RENAME_IN_"+toString(i)+"_"+toString(j)+"_INSTRUCTION" , 343 dest, "in_RENAME_IN_"+toString(i)+"_"+toString(j)+"_INSTRUCTION" ); 344 #endif 335 345 PORT_MAP(_component,src , "in_RENAME_IN_"+toString(i)+"_"+toString(j)+"_TYPE" , 336 346 dest, "in_RENAME_IN_"+toString(i)+"_"+toString(j)+"_TYPE" ); … … 395 405 PORT_MAP(_component,src ,"out_RENAME_OUT_"+toString(i)+"_DEPTH" , 396 406 dest,"out_INSERT_" +toString(i)+"_DEPTH" ); 407 #ifdef STATISTICS 408 PORT_MAP(_component,src ,"out_RENAME_OUT_"+toString(i)+"_INSTRUCTION" , 409 dest,"out_INSERT_" +toString(i)+"_INSTRUCTION" ); 410 #endif 397 411 #ifdef DEBUG 398 412 PORT_MAP(_component,src ,"out_RENAME_OUT_"+toString(i)+"_ADDRESS" , … … 552 566 PORT_MAP(_component,src , "in_INSERT_"+toString(i)+"_ACK" , 553 567 dest, "in_INSERT_"+toString(i)+"_ACK" ); 554 if (_param->_have_port_front_end_id)555 PORT_MAP(_component,src ,"out_INSERT_"+toString(i)+"_FRONT_END_ID" ,556 dest,"out_INSERT_"+toString(i)+"_FRONT_END_ID" );557 if (_param->_have_port_context_id)558 PORT_MAP(_component,src ,"out_INSERT_"+toString(i)+"_CONTEXT_ID" ,559 dest,"out_INSERT_"+toString(i)+"_CONTEXT_ID" );568 // if (_param->_have_port_front_end_id) 569 // PORT_MAP(_component,src ,"out_INSERT_"+toString(i)+"_FRONT_END_ID" , 570 // dest,"out_INSERT_"+toString(i)+"_FRONT_END_ID" ); 571 // if (_param->_have_port_context_id) 572 // PORT_MAP(_component,src ,"out_INSERT_"+toString(i)+"_CONTEXT_ID" , 573 // dest,"out_INSERT_"+toString(i)+"_CONTEXT_ID" ); 560 574 PORT_MAP(_component,src ,"out_INSERT_"+toString(i)+"_READ_RA" , 561 575 dest,"out_INSERT_"+toString(i)+"_READ_RA" ); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/src/Rename_unit_deallocation.cpp
r123 r137 33 33 DELETE2_SIGNAL( in_RENAME_IN_CONTEXT_ID ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_context_id ); 34 34 DELETE2_SIGNAL( in_RENAME_IN_DEPTH ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_depth ); 35 #ifdef STATISTICS 36 DELETE2_SIGNAL( in_RENAME_IN_INSTRUCTION ,_param->_nb_front_end, _param->_nb_inst_decod[it1],32); 37 #endif 35 38 DELETE2_SIGNAL( in_RENAME_IN_TYPE ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_type ); 36 39 DELETE2_SIGNAL( in_RENAME_IN_OPERATION ,_param->_nb_front_end, _param->_nb_inst_decod[it1],_param->_size_operation ); … … 63 66 DELETE1_SIGNAL(out_INSERT_CONTEXT_ID ,_param->_nb_inst_insert,_param->_size_context_id ); 64 67 DELETE1_SIGNAL(out_INSERT_DEPTH ,_param->_nb_inst_insert,_param->_size_depth ); 68 #ifdef STATISTICS 69 DELETE1_SIGNAL(out_INSERT_INSTRUCTION ,_param->_nb_inst_insert,32); 70 #endif 65 71 DELETE1_SIGNAL(out_INSERT_TYPE ,_param->_nb_inst_insert,_param->_size_type ); 66 72 DELETE1_SIGNAL(out_INSERT_OPERATION ,_param->_nb_inst_insert,_param->_size_operation ); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/include/OOO_Engine.h
r136 r137 73 73 public : SC_IN (Tcontext_t ) *** in_RENAME_CONTEXT_ID ;//[nb_front_end][nb_inst_decod] 74 74 public : SC_IN (Tdepth_t ) *** in_RENAME_DEPTH ;//[nb_front_end][nb_inst_decod] 75 #ifdef STATISTICS 76 public : SC_IN (uint32_t ) *** in_RENAME_INSTRUCTION ;//[nb_front_end][nb_inst_decod] 77 #endif 75 78 public : SC_IN (Ttype_t ) *** in_RENAME_TYPE ;//[nb_front_end][nb_inst_decod] 76 79 public : SC_IN (Toperation_t ) *** in_RENAME_OPERATION ;//[nb_front_end][nb_inst_decod] -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/src/OOO_Engine_allocation.cpp
r136 r137 62 62 _ALLOC2_SIGNAL_IN ( in_RENAME_CONTEXT_ID ,"CONTEXT_ID" ,Tcontext_t ,_param->_size_context_id ,_param->_nb_front_end,_param->_nb_inst_decod[it1]); 63 63 _ALLOC2_SIGNAL_IN ( in_RENAME_DEPTH ,"DEPTH" ,Tdepth_t ,_param->_size_depth ,_param->_nb_front_end,_param->_nb_inst_decod[it1]); 64 #ifdef STATISTICS 65 _ALLOC2_SIGNAL_IN ( in_RENAME_INSTRUCTION ,"INSTRUCTION" ,uint32_t ,32 ,_param->_nb_front_end,_param->_nb_inst_decod[it1]); 66 #endif 64 67 _ALLOC2_SIGNAL_IN ( in_RENAME_TYPE ,"TYPE" ,Ttype_t ,_param->_size_type ,_param->_nb_front_end,_param->_nb_inst_decod[it1]); 65 68 _ALLOC2_SIGNAL_IN ( in_RENAME_OPERATION ,"OPERATION" ,Toperation_t ,_param->_size_operation ,_param->_nb_front_end,_param->_nb_inst_decod[it1]); … … 441 444 PORT_MAP(_component,src , "in_RENAME_IN_"+toString(x)+"_"+toString(k)+"_TYPE" , 442 445 dest, "in_RENAME_" +toString(j)+"_"+toString(k)+"_TYPE" ); 446 #ifdef STATISTICS 447 PORT_MAP(_component,src , "in_RENAME_IN_"+toString(x)+"_"+toString(k)+"_INSTRUCTION" , 448 dest, "in_RENAME_" +toString(j)+"_"+toString(k)+"_INSTRUCTION" ); 449 #endif 443 450 PORT_MAP(_component,src , "in_RENAME_IN_"+toString(x)+"_"+toString(k)+"_OPERATION" , 444 451 dest, "in_RENAME_" +toString(j)+"_"+toString(k)+"_OPERATION" ); … … 514 521 #endif 515 522 523 #ifdef STATISTICS 524 COMPONENT_MAP(_component,src ,"out_INSERT_"+toString(j) +"_INSTRUCTION" , 525 dest, "in_INSERT_"+toString(i)+"_"+toString(j)+"_INSTRUCTION" ); 526 #endif 516 527 if (_param->_have_port_depth) 517 528 COMPONENT_MAP(_component,src ,"out_INSERT_"+toString(j) +"_DEPTH" , … … 798 809 COMPONENT_MAP(_component,src , "in_INSERT_"+toString(i)+"_"+toString(j)+ "_NUM_REG_RA_PHY" , 799 810 dest,"out_INSERT_"+toString(i)+"_"+toString(j)+"_COMMIT_UNIT_NUM_REG_RA_PHY" ); 811 #endif 800 812 COMPONENT_MAP(_component,src , "in_INSERT_"+toString(i)+"_"+toString(j)+ "_READ_RB" , 801 813 dest,"out_INSERT_"+toString(i)+"_"+toString(j)+"_COMMIT_UNIT_READ_RB" ); 814 #ifdef DEBUG 802 815 COMPONENT_MAP(_component,src , "in_INSERT_"+toString(i)+"_"+toString(j)+ "_NUM_REG_RB_PHY" , 803 816 dest,"out_INSERT_"+toString(i)+"_"+toString(j)+"_COMMIT_UNIT_NUM_REG_RB_PHY" ); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/src/OOO_Engine_deallocation.cpp
r136 r137 32 32 DELETE2_SIGNAL( in_RENAME_CONTEXT_ID ,_param->_nb_front_end,_param->_nb_inst_decod[it1],_param->_size_context_id ); 33 33 DELETE2_SIGNAL( in_RENAME_DEPTH ,_param->_nb_front_end,_param->_nb_inst_decod[it1],_param->_size_depth ); 34 #ifdef STATISTICS 35 DELETE2_SIGNAL( in_RENAME_INSTRUCTION ,_param->_nb_front_end,_param->_nb_inst_decod[it1],32); 36 #endif 34 37 DELETE2_SIGNAL( in_RENAME_TYPE ,_param->_nb_front_end,_param->_nb_inst_decod[it1],_param->_size_type ); 35 38 DELETE2_SIGNAL( in_RENAME_OPERATION ,_param->_nb_front_end,_param->_nb_inst_decod[it1],_param->_size_operation ); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/src/Core_allocation.cpp
r136 r137 462 462 COMPONENT_MAP(_component,src , "in_RENAME_"+toString(j)+"_"+toString(k)+"_DEPTH" , 463 463 dest,"out_DECOD_" +toString(k)+"_DEPTH" ); 464 #ifdef STATISTICS 465 COMPONENT_MAP(_component,src , "in_RENAME_"+toString(j)+"_"+toString(k)+"_INSTRUCTION" , 466 dest,"out_DECOD_" +toString(k)+"_INSTRUCTION" ); 467 #endif 464 468 COMPONENT_MAP(_component,src , "in_RENAME_"+toString(j)+"_"+toString(k)+"_TYPE" , 465 469 dest,"out_DECOD_" +toString(k)+"_TYPE" ); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/include/Parameters.h
r88 r137 22 22 { 23 23 //-----[ fields ]------------------------------------------------------------ 24 public : constuint32_t _size_data;25 public : constuint32_t _nb_port ;26 public : constuint32_t _data_max ;24 public : uint32_t _size_data; 25 public : uint32_t _nb_port ; 26 public : uint32_t _data_max ; 27 27 28 28 //-----[ methods ]----------------------------------------------------------- -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Counter/src/Parameters.cpp
r113 r137 16 16 Parameters::Parameters (uint32_t size_data, 17 17 uint32_t nb_port ): 18 behavioural::Parameters("Counter"), 19 _size_data(size_data), 20 _nb_port (nb_port ), 21 _data_max ((1<<size_data)-1) 18 behavioural::Parameters("Counter") 22 19 { 23 20 log_printf(FUNC,Counter,"Parameters","Begin"); 21 22 _size_data = size_data; 23 _nb_port = nb_port ; 24 _data_max = (1<<size_data)-1; 25 24 26 test(); 25 27 log_printf(FUNC,Counter,"Parameters","End"); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/mkf.info
r116 r137 1 1 2 # Queue_0 03 target_dep all Queue_0 0.ngc4 target_dep Queue_0 0.ngc Queue_00.prj5 target_dep Queue_0 0.prj Queue_00_Pack.vhdl Queue_00.vhdl2 # Queue_0 3 target_dep all Queue_0.ngc 4 target_dep Queue_0.ngc Queue_0.prj 5 target_dep Queue_0.prj Queue_0_Pack.vhdl Queue_0.vhdl 6 6 7 # Queue_ 018 target_dep all Queue_ 01.ngc9 target_dep Queue_ 01.ngc Queue_01.prj10 target_dep Queue_ 01.prj Queue_01_Pack.vhdl Queue_01.vhdl7 # Queue_1 8 target_dep all Queue_1.ngc 9 target_dep Queue_1.ngc Queue_1.prj 10 target_dep Queue_1.prj Queue_1_Pack.vhdl Queue_1.vhdl 11 11 12 # Queue_ 0213 target_dep all Queue_ 02.ngc14 target_dep Queue_ 02.ngc Queue_02.prj15 target_dep Queue_ 02.prj Queue_02_Pack.vhdl Queue_02.vhdl12 # Queue_2 13 target_dep all Queue_2.ngc 14 target_dep Queue_2.ngc Queue_2.prj 15 target_dep Queue_2.prj Queue_2_Pack.vhdl Queue_2.vhdl 16 16 17 # Queue_ 0318 target_dep all Queue_ 03.ngc19 target_dep Queue_ 03.ngc Queue_03.prj20 target_dep Queue_ 03.prj Queue_03_Pack.vhdl Queue_03.vhdl17 # Queue_3 18 target_dep all Queue_3.ngc 19 target_dep Queue_3.ngc Queue_3.prj 20 target_dep Queue_3.prj Queue_3_Pack.vhdl Queue_3.vhdl 21 21 22 # Queue_0423 target_dep all Queue_04.ngc24 target_dep Queue_04.ngc Queue_04.prj25 target_dep Queue_04.prj Queue_04_Pack.vhdl Queue_04.vhdl26 27 # Queue_0528 target_dep all Queue_05.ngc29 target_dep Queue_05.ngc Queue_05.prj30 target_dep Queue_05.prj Queue_05_Pack.vhdl Queue_05.vhdl31 32 # Queue_0633 target_dep all Queue_06.ngc34 target_dep Queue_06.ngc Queue_06.prj35 target_dep Queue_06.prj Queue_06_Pack.vhdl Queue_06.vhdl36 37 # Queue_0738 target_dep all Queue_07.ngc39 target_dep Queue_07.ngc Queue_07.prj40 target_dep Queue_07.prj Queue_07_Pack.vhdl Queue_07.vhdl41 42 # Queue_0843 target_dep all Queue_08.ngc44 target_dep Queue_08.ngc Queue_08.prj45 target_dep Queue_08.prj Queue_08_Pack.vhdl Queue_08.vhdl46 47 # Queue_0948 target_dep all Queue_09.ngc49 target_dep Queue_09.ngc Queue_09.prj50 target_dep Queue_09.prj Queue_09_Pack.vhdl Queue_09.vhdl51 52 # Queue_1053 target_dep all Queue_10.ngc54 target_dep Queue_10.ngc Queue_10.prj55 target_dep Queue_10.prj Queue_10_Pack.vhdl Queue_10.vhdl56 57 # Queue_1158 target_dep all Queue_11.ngc59 target_dep Queue_11.ngc Queue_11.prj60 target_dep Queue_11.prj Queue_11_Pack.vhdl Queue_11.vhdl61 62 # Queue_1263 target_dep all Queue_12.ngc64 target_dep Queue_12.ngc Queue_12.prj65 target_dep Queue_12.prj Queue_12_Pack.vhdl Queue_12.vhdl66 67 # Queue_1368 target_dep all Queue_13.ngc69 target_dep Queue_13.ngc Queue_13.prj70 target_dep Queue_13.prj Queue_13_Pack.vhdl Queue_13.vhdl71 72 # Queue_1473 target_dep all Queue_14.ngc74 target_dep Queue_14.ngc Queue_14.prj75 target_dep Queue_14.prj Queue_14_Pack.vhdl Queue_14.vhdl76 77 # Queue_1578 target_dep all Queue_15.ngc79 target_dep Queue_15.ngc Queue_15.prj80 target_dep Queue_15.prj Queue_15_Pack.vhdl Queue_15.vhdl81 82 # Queue_1683 target_dep all Queue_16.ngc84 target_dep Queue_16.ngc Queue_16.prj85 target_dep Queue_16.prj Queue_16_Pack.vhdl Queue_16.vhdl86 87 # Queue_1788 target_dep all Queue_17.ngc89 target_dep Queue_17.ngc Queue_17.prj90 target_dep Queue_17.prj Queue_17_Pack.vhdl Queue_17.vhdl91 92 # Queue_1893 target_dep all Queue_18.ngc94 target_dep Queue_18.ngc Queue_18.prj95 target_dep Queue_18.prj Queue_18_Pack.vhdl Queue_18.vhdl96 97 # Queue_1998 target_dep all Queue_19.ngc99 target_dep Queue_19.ngc Queue_19.prj100 target_dep Queue_19.prj Queue_19_Pack.vhdl Queue_19.vhdl101 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/SelfTest/src/top_allocation.cpp
r113 r137 31 31 32 32 _usage = USE_ALL; 33 //_usage = usage_unset(_usage,USE_SYSTEMC );33 _usage = usage_unset(_usage,USE_SYSTEMC ); 34 34 // _usage = usage_unset(_usage,USE_VHDL ); 35 35 // _usage = usage_unset(_usage,USE_VHDL_TESTBENCH ); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/include/Parameters.h
r101 r137 22 22 { 23 23 //-----[ fields ]------------------------------------------------------------ 24 public : constuint32_t _size_queue ;25 public : constuint32_t _size_data ;26 public : constuint32_t _nb_port_slot ;27 public : constbool _have_port_ptr_write;28 public : constbool _have_port_ptr_read ;24 public : uint32_t _size_queue ; 25 public : uint32_t _size_data ; 26 public : uint32_t _nb_port_slot ; 27 public : bool _have_port_ptr_write; 28 public : bool _have_port_ptr_read ; 29 29 30 public : constuint32_t _size_ptr ;31 public : constbool _have_port_ptr ;30 public : uint32_t _size_ptr ; 31 public : bool _have_port_ptr ; 32 32 33 33 //-----[ methods ]----------------------------------------------------------- -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Queue/src/Parameters.cpp
r113 r137 21 21 bool have_port_ptr_write, 22 22 bool have_port_ptr_read ): 23 behavioural::Parameters("Queue"), 24 _size_queue (size_queue), 25 _size_data (size_data ), 26 _nb_port_slot (nb_port_slot), 27 _have_port_ptr_write (have_port_ptr_write and (log2(size_queue)>0)), 28 _have_port_ptr_read (have_port_ptr_read and (log2(size_queue)>0)), 29 _size_ptr (log2(size_queue)), 30 _have_port_ptr (have_port_ptr_write or have_port_ptr_read) 23 behavioural::Parameters("Queue") 31 24 { 32 25 log_printf(FUNC,Queue,FUNCTION,"Begin"); 26 27 _size_queue = size_queue; 28 _size_data = size_data ; 29 _nb_port_slot = nb_port_slot; 30 _have_port_ptr_write = have_port_ptr_write and (log2(size_queue)>0); 31 _have_port_ptr_read = have_port_ptr_read and (log2(size_queue)>0); 32 33 _size_ptr = log2(size_queue); 34 _have_port_ptr = have_port_ptr_write or have_port_ptr_read; 35 33 36 test(); 34 37 log_printf(FUNC,Queue,FUNCTION,"End"); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Parameters.h
r101 r137 21 21 class Parameters : public morpheo::behavioural::Parameters 22 22 { 23 public : const uint32_t _nb_port_read ; 24 public : const uint32_t _nb_port_write; 25 public : const uint32_t _nb_port_read_write; 26 public : const uint32_t _nb_word ; 27 public : const uint32_t _size_word ; 28 public : const uint32_t _size_address ; 29 public : const bool _have_port_address; 30 public : const bool _have_init_value; 31 public : const std::string _init_value; 23 public : uint32_t _nb_port_read ; 24 public : uint32_t _nb_port_write; 25 public : uint32_t _nb_port_read_write; 26 public : uint32_t _nb_word ; 27 public : uint32_t _size_word ; 28 public : std::string _init_value ; 29 30 public : uint32_t _size_address ; 31 public : bool _have_port_address; 32 public : bool _have_init_value; 32 33 33 34 public : Parameters (uint32_t nb_port_read , -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/Parameters.cpp
r101 r137 7 7 8 8 #include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/Parameters.h" 9 #include "Common/include/Log2.h" 9 10 10 11 namespace morpheo { … … 20 21 uint32_t size_word , 21 22 std::string init_value 22 ) : 23 _nb_port_read (nb_port_read ), 24 _nb_port_write (nb_port_write), 25 _nb_port_read_write(nb_port_read_write), 26 _nb_word (nb_word ), 27 _size_word (size_word ), 28 _size_address (static_cast<uint32_t>(log2(_nb_word))), 29 _have_port_address (_size_address != 0), 30 _have_init_value (init_value != ""), 31 _init_value (init_value) 23 ) 32 24 { 25 _nb_port_read = nb_port_read ; 26 _nb_port_write = nb_port_write; 27 _nb_port_read_write = nb_port_read_write; 28 _nb_word = nb_word ; 29 _size_word = size_word ; 30 _init_value = init_value ; 31 32 _size_address = log2(_nb_word); 33 _have_port_address = _size_address != 0; 34 _have_init_value = init_value != ""; 35 33 36 test(); 34 37 }; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Parameters.h
r124 r137 24 24 { 25 25 //-----[ fields ]------------------------------------------------------------ 26 public : const uint32_t _nb_port_read ; // Global read port 27 public : const uint32_t _nb_port_write ; // Global write port 28 public : const uint32_t _nb_word ; 29 public : const uint32_t _size_word ; 30 public : const uint32_t _nb_bank ; // Number of bank (All bank is identical) 31 public : const uint32_t _nb_port_read_by_bank ; // Local read port 32 public : const uint32_t _nb_port_write_by_bank; // Local write port 33 public : const Tcrossbar_t _crossbar ; 34 public : const bool _have_init_value; 35 public : const std::string _init_value; 26 public : uint32_t _nb_port_read ; // Global read port 27 public : uint32_t _nb_port_write ; // Global write port 28 public : uint32_t _nb_word ; 29 public : uint32_t _size_word ; 30 public : uint32_t _nb_bank ; // Number of bank (All bank is identical) 31 public : uint32_t _nb_port_read_by_bank ; // Local read port 32 public : uint32_t _nb_port_write_by_bank; // Local write port 33 public : Tcrossbar_t _crossbar ; 34 public : std::string _init_value ; 36 35 37 public : constuint32_t _size_address ;38 public : constuint32_t _size_address_by_bank ;36 public : uint32_t _size_address ; 37 public : uint32_t _size_address_by_bank ; 39 38 40 public : constuint32_t _bank_shift ;41 public : constTaddress_t _bank_mask ;42 public : constuint32_t _num_reg_shift ;43 public : constTaddress_t _num_reg_mask ;39 public : uint32_t _bank_shift ; 40 public : Taddress_t _bank_mask ; 41 public : uint32_t _num_reg_shift ; 42 public : Taddress_t _num_reg_mask ; 44 43 45 public : constuint32_t _nb_word_by_bank ;44 public : uint32_t _nb_word_by_bank ; 46 45 47 public : const bool _have_port_address ; 48 public : const bool _have_bank_port_address; 46 public : bool _have_port_address ; 47 public : bool _have_bank_port_address; 48 public : bool _have_init_value ; 49 49 50 50 // A lot of table to the partial crossbar 51 public : 52 //public : 53 public : 54 //public : 51 public : uint32_t * _link_port_read_to_bank_read ; 52 //public : uint32_t * _link_port_read_to_num_bank ; 53 public : uint32_t * _link_port_write_to_bank_write; 54 //public : uint32_t * _link_port_write_to_num_bank ; 55 55 56 56 //-----[ methods ]----------------------------------------------------------- -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/RegisterFile_Multi_Banked.h
r88 r137 48 48 #ifdef STATISTICS 49 49 public : Stat * _stat; 50 51 private : counter_t * _stat_nb_read; 52 private : counter_t * _stat_nb_write; 53 private : counter_t * _stat_nb_conflict_on_read; 54 private : counter_t * _stat_nb_conflict_on_write; 50 55 #endif 51 56 … … 80 85 private : Taddress_t * internal_WRITE_BANK; 81 86 private : Taddress_t * internal_WRITE_NUM_REG; 87 88 #ifdef STATISTICS 89 private : bool * internal_READ_VAL; 90 //private : Taddress_t * internal_READ_BANK; 91 #endif 82 92 83 93 // function pointer -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Parameters.cpp
r124 r137 8 8 #include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Parameters.h" 9 9 #include "Common/include/BitManipulation.h" 10 #include "Common/include/Log2.h" 10 11 11 12 namespace morpheo { … … 25 26 Tcrossbar_t crossbar , 26 27 std::string init_value 27 ): 28 _nb_port_read (nb_port_read ), 29 _nb_port_write (nb_port_write ), 30 _nb_word (nb_word ), 31 _size_word (size_word ), 32 _nb_bank (nb_bank ), 33 _nb_port_read_by_bank (nb_port_read_by_bank ), 34 _nb_port_write_by_bank (nb_port_write_by_bank), 35 _crossbar (crossbar ), 36 _have_init_value (init_value != "" ), 37 _init_value (init_value ), 38 _size_address (static_cast<uint32_t>(ceil(log2(_nb_word)))), 39 _size_address_by_bank (_size_address - static_cast<uint32_t>(ceil(log2(_nb_bank)))), 28 ) 29 { 30 log_printf(FUNC,RegisterFile_Multi_Banked,"Parameters","Begin"); 31 32 _nb_port_read = nb_port_read ; 33 _nb_port_write = nb_port_write ; 34 _nb_word = nb_word ; 35 _size_word = size_word ; 36 _nb_bank = nb_bank ; 37 _nb_port_read_by_bank = nb_port_read_by_bank ; 38 _nb_port_write_by_bank = nb_port_write_by_bank; 39 _crossbar = crossbar ; 40 _init_value = init_value ; 41 42 _size_address = log2(_nb_word); 43 _size_address_by_bank = _size_address - log2(_nb_bank); 40 44 41 45 // Address : [....................] [size_address-1:0] 42 46 // Bank : [....] [size_address-1:size_address-1-log2(nb_bank)] 43 47 // num_reg : ]...............] [size_address-2-log2(nb_bank):0] 44 _bank_shift (_size_address_by_bank), 45 _bank_mask (gen_mask<Taddress_t>(static_cast<Taddress_t>(ceil(log2(_nb_bank))))), 46 _num_reg_shift (0), 47 _num_reg_mask (gen_mask<Taddress_t>(_size_address_by_bank)), 48 _nb_word_by_bank (_nb_word / _nb_bank), 49 _have_port_address (_size_address != 0), 50 _have_bank_port_address(_size_address_by_bank != 0) 51 { 52 log_printf(FUNC,RegisterFile_Multi_Banked,"Parameters","Begin"); 48 _bank_shift = _size_address_by_bank; 49 _bank_mask = gen_mask<Taddress_t>(log2(_nb_bank)); 50 _num_reg_shift = 0; 51 _num_reg_mask = gen_mask<Taddress_t>(_size_address_by_bank); 52 _nb_word_by_bank = _nb_word / _nb_bank; 53 _have_port_address = _size_address != 0; 54 _have_bank_port_address = _size_address_by_bank != 0; 55 _have_init_value = init_value != "" ; 53 56 54 57 if (_crossbar == PARTIAL_CROSSBAR) -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_allocation.cpp
r112 r137 77 77 ALLOC1(internal_WRITE_BANK ,Taddress_t,_param->_nb_port_write); 78 78 ALLOC1(internal_WRITE_NUM_REG,Taddress_t,_param->_nb_port_write); 79 80 #ifdef STATISTICS 81 ALLOC1(internal_READ_VAL ,bool ,_param->_nb_port_read); 82 #endif 79 83 } 80 84 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_deallocation.cpp
r112 r137 40 40 DELETE1(internal_WRITE_BANK ,_param->_nb_port_write); 41 41 DELETE1(internal_WRITE_NUM_REG ,_param->_nb_port_write); 42 43 #ifdef STATISTICS 44 DELETE1(internal_READ_VAL ,_param->_nb_port_read); 45 #endif 46 42 47 } 43 48 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_full_crossbar_genMealy_read.cpp
r123 r137 38 38 bool ack = false; 39 39 40 #ifdef STATISTICS 41 internal_READ_VAL [i] = false; 42 #endif 43 40 44 log_printf(TRACE,RegisterFile_Multi_Banked,FUNCTION," * read [%d] : %d",i,val); 41 45 … … 72 76 log_printf(TRACE,RegisterFile_Multi_Banked,FUNCTION," * data : %d",data); 73 77 78 #ifdef STATISTICS 79 internal_READ_VAL [i] = true; 80 #endif 74 81 PORT_WRITE(out_READ_DATA [i], data); 75 82 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_partial_crossbar_genMealy_read.cpp
r123 r137 37 37 bool ack = false; 38 38 39 #ifdef STATISTICS 40 internal_READ_VAL [i] = false; 41 #endif 42 39 43 log_printf(TRACE,RegisterFile_Multi_Banked,FUNCTION," * read [%d] : %d",i,val); 40 44 … … 73 77 log_printf(TRACE,RegisterFile_Multi_Banked,FUNCTION," * data : %d",data); 74 78 79 #ifdef STATISTICS 80 internal_READ_VAL [i] = true; 81 #endif 82 75 83 PORT_WRITE(out_READ_DATA [i], data); 76 84 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_statistics_declaration.cpp
r81 r137 24 24 "RegisterFile_Multi_Banked", 25 25 param_statistics); 26 27 // _stat_nb_read = _stat->create_variable("nb_read" ); 28 // _stat_nb_write = _stat->create_variable("nb_write"); 29 // _stat_nb_conflict_on_read = _stat->create_variable("nb_conflict_on_read" ); 30 // _stat_nb_conflict_on_write = _stat->create_variable("nb_conflict_on_write"); 31 32 _stat_nb_read = _stat->create_counter("nb_read" ,"",""); 33 _stat_nb_write = _stat->create_counter("nb_write" ,"",""); 34 _stat_nb_conflict_on_read = _stat->create_counter("nb_conflict_on_read" ,"",""); 35 _stat_nb_conflict_on_write = _stat->create_counter("nb_conflict_on_write","",""); 36 37 _stat->create_expr_average_by_cycle("average_read" , "nb_read" , "", _("Average read by cycle" )); 38 _stat->create_expr_average_by_cycle("average_write", "nb_write", "", _("Average write by cycle")); 39 40 _stat->create_expr_percent ("percent_conflict_on_read" , "nb_conflict_on_read" , "+ nb_read nb_conflict_on_read" , _("Percent conflit on read port" )); 41 _stat->create_expr_percent ("percent_conflict_on_write", "nb_conflict_on_write", "+ nb_write nb_conflict_on_write", _("Percent conflit on write port")); 26 42 27 43 log_printf(FUNC,RegisterFile_Multi_Banked,FUNCTION,"End"); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_transition.cpp
r128 r137 51 51 reg_DATA[internal_WRITE_BANK[i]][internal_WRITE_NUM_REG[i]] = data; 52 52 } 53 54 #ifdef STATISTICS 55 if (usage_is_set(_usage,USE_STATISTICS)) 56 if (PORT_READ(in_WRITE_VAL [i])) 57 { 58 if (internal_WRITE_VAL [i] == 1) 59 (*_stat_nb_write) ++; 60 else 61 (*_stat_nb_conflict_on_write) ++; 62 } 63 #endif 53 64 } 65 66 #ifdef STATISTICS 67 if (usage_is_set(_usage,USE_STATISTICS)) 68 for (uint32_t i=0; i<_param->_nb_port_read; i++) 69 if (PORT_READ(in_READ_VAL [i])) 70 { 71 if (internal_READ_VAL [i] == 1) 72 (*_stat_nb_read) ++; 73 else 74 (*_stat_nb_conflict_on_read) ++; 75 } 76 #endif 77 54 78 } 55 79 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_vhdl_body.cpp
r81 r137 88 88 std::string index = (_param->_crossbar == FULL_CROSSBAR)?("_"+toString(j)):""; 89 89 90 vhdl->set_body("\t"+separator+" in_ VAL_"+toString(k)+"\t=>\tinternal_READ_"+toString(i)+"_"+toString(num_port)+index+"_VAL");91 vhdl->set_body("\t,out_ ACK_"+toString(k)+"\t=>\tinternal_SELECT_READ_"+toString(i)+"_"+toString(num_port)+index+"_VAL");90 vhdl->set_body("\t"+separator+" in_"+toString(k)+"_VAL \t=>\tinternal_READ_"+toString(i)+"_"+toString(num_port)+index+"_VAL"); 91 vhdl->set_body("\t,out_"+toString(k)+"_ACK \t=>\tinternal_SELECT_READ_"+toString(i)+"_"+toString(num_port)+index+"_VAL"); 92 92 } 93 93 vhdl->set_body(");"); … … 107 107 std::string index = (_param->_crossbar == FULL_CROSSBAR)?("_"+toString(j)):""; 108 108 109 vhdl->set_body("\t"+separator+" in_ VAL_"+toString(k)+"\t=>\tinternal_WRITE_"+toString(i)+"_"+toString(num_port)+index+"_VAL");110 vhdl->set_body("\t,out_ ACK_"+toString(k)+"\t=>\tinternal_SELECT_WRITE_"+toString(i)+"_"+toString(num_port)+index+"_VAL");109 vhdl->set_body("\t"+separator+" in_"+toString(k)+"_VAL \t=>\tinternal_WRITE_"+toString(i)+"_"+toString(num_port)+index+"_VAL"); 110 vhdl->set_body("\t,out_"+toString(k)+"_ACK \t=>\tinternal_SELECT_WRITE_"+toString(i)+"_"+toString(num_port)+index+"_VAL"); 111 111 } 112 112 vhdl->set_body(");"); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/SelfTest/src/test.cpp
r131 r137 26 26 Tusage_t _usage = USE_ALL; 27 27 28 //_usage = usage_unset(_usage,USE_SYSTEMC );28 _usage = usage_unset(_usage,USE_SYSTEMC ); 29 29 // _usage = usage_unset(_usage,USE_VHDL ); 30 30 // _usage = usage_unset(_usage,USE_VHDL_TESTBENCH ); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/include/Parameters.h
r88 r137 26 26 { 27 27 //-----[ fields ]------------------------------------------------------------ 28 public : constTinstance_t _instance;29 public : constuint32_t _nb_port_read ;30 public : constuint32_t _nb_port_write;31 public : constuint32_t _nb_word ;32 public : constuint32_t _size_word ;33 public : constuint32_t _size_address ;34 public : constbool _have_port_address;28 public : Tinstance_t _instance; 29 public : uint32_t _nb_port_read ; 30 public : uint32_t _nb_port_write; 31 public : uint32_t _nb_word ; 32 public : uint32_t _size_word ; 33 public : uint32_t _size_address ; 34 public : bool _have_port_address; 35 35 36 36 public : morpheo::behavioural::generic::registerfile::registerfile_monolithic ::Parameters * _param_registerfile_monolithic; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/src/Parameters.cpp
r88 r137 14 14 15 15 16 Parameters::Parameters (morpheo::behavioural::generic::registerfile::registerfile_monolithic ::Parameters * param) : 17 _instance (instance_RegisterFile_Monolithic), 18 _nb_port_read (param->_nb_port_read ), 19 _nb_port_write (param->_nb_port_write), 20 _nb_word (param->_nb_word ), 21 _size_word (param->_size_word ), 22 _size_address (param->_size_address ), 23 _have_port_address (param->_have_port_address) 16 Parameters::Parameters (morpheo::behavioural::generic::registerfile::registerfile_monolithic ::Parameters * param) 24 17 { 25 18 log_printf(FUNC,RegisterFile,"Parameters","Begin"); 19 20 _instance = instance_RegisterFile_Monolithic; 21 _nb_port_read = param->_nb_port_read ; 22 _nb_port_write = param->_nb_port_write; 23 _nb_word = param->_nb_word ; 24 _size_word = param->_size_word ; 25 _size_address = param->_size_address ; 26 _have_port_address = param->_have_port_address; 26 27 27 28 _param_registerfile_monolithic = param; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/include/Parameters.h
r88 r137 22 22 { 23 23 //-----[ fields ]------------------------------------------------------------ 24 public : const uint32_t _nb_entity ; 25 public : const bool _encoding_one_hot; 26 public : const bool _encoding_compact; 27 public : const uint32_t _size_entity; 24 public : uint32_t _nb_entity ; 25 public : bool _encoding_one_hot; 26 public : bool _encoding_compact; 27 28 public : uint32_t _size_entity; 28 29 29 30 //-----[ methods ]----------------------------------------------------------- -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Parameters.cpp
r88 r137 7 7 8 8 #include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Parameters.h" 9 #include "Common/include/Log2.h" 9 10 10 11 namespace morpheo { … … 17 18 Parameters::Parameters (uint32_t nb_entity , 18 19 bool encoding_one_hot, 19 bool encoding_compact): 20 _nb_entity (nb_entity ), 21 _encoding_one_hot (encoding_one_hot), 22 _encoding_compact (encoding_compact), 23 _size_entity (static_cast<uint32_t> (ceil(log2(nb_entity)))) 20 bool encoding_compact) 24 21 { 25 22 log_printf(FUNC,Select_Priority_Fixed,"Parameters","Begin"); 23 24 _nb_entity = nb_entity ; 25 _encoding_one_hot = encoding_one_hot; 26 _encoding_compact = encoding_compact; 27 _size_entity = log2(nb_entity); 28 26 29 test(); 27 30 log_printf(FUNC,Select_Priority_Fixed,"Parameters","End"); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_vhdl_body.cpp
r81 r137 24 24 for (uint32_t i=0; i<_param->_nb_entity; i++) 25 25 { 26 vhdl->set_body("\t"+std_logic_conv(_param->_size_entity+1,i)+" when in_ VAL_"+toString(i)+"='1' else");26 vhdl->set_body("\t"+std_logic_conv(_param->_size_entity+1,i)+" when in_"+toString(i)+"_VAL='1' else"); 27 27 } 28 28 vhdl->set_body("\t"+std_logic_conv(_param->_size_entity+1,1<<_param->_size_entity)+";"); … … 32 32 { 33 33 for (uint32_t i=0; i<_param->_nb_entity; i++) 34 vhdl->set_body("out_ ACK_"+toString(i)+"<= '1' when internal_entity"+std_logic_range(_param->_size_entity+1)+" = "+std_logic_conv(_param->_size_entity+1,i)+" else '0';");34 vhdl->set_body("out_"+toString(i)+"_ACK <= '1' when internal_entity"+std_logic_range(_param->_size_entity+1)+" = "+std_logic_conv(_param->_size_entity+1,i)+" else '0';"); 35 35 vhdl->set_body (""); 36 36 } -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/include/Parameters.h
r112 r137 21 21 { 22 22 //-----[ fields ]------------------------------------------------------------ 23 public : constuint32_t _size_data ;24 public : constuint32_t _nb_port ;25 public : constuint32_t _shift_value ; // 0 = external shifter's value26 public : constrotate_t _rotate ;27 public : constdirection_t _direction ;28 public : c onst carry_t _carry ;29 public : constuint32_t _size_data_completion;30 public : constbool _type_completion_bool;23 public : uint32_t _size_data ; 24 public : uint32_t _nb_port ; 25 public : uint32_t _shift_value ; // 0 = external shifter's value 26 public : rotate_t _rotate ; 27 public : direction_t _direction ; 28 public : carry_t _carry ; 29 public : uint32_t _size_data_completion; 30 public : bool _type_completion_bool; 31 31 32 public : constuint32_t _size_shift ;32 public : uint32_t _size_shift ; 33 33 34 public : constbool _internal_direction;35 public : constbool _internal_type ;36 public : constbool _internal_carry ;34 public : bool _internal_direction; 35 public : bool _internal_type ; 36 public : bool _internal_carry ; 37 37 38 public : constbool _have_shift_logic_left ;39 public : constbool _have_shift_logic_right ;40 public : constbool _have_shift_logic ;41 public : constbool _have_shift_arithmetic_left ;42 public : constbool _have_shift_arithmetic_right ;43 public : constbool _have_shift_arithmetic ;44 public : constbool _have_shift ;45 public : constbool _have_rotate_left ;46 public : constbool _have_rotate_right ;47 public : constbool _have_rotate ;38 public : bool _have_shift_logic_left ; 39 public : bool _have_shift_logic_right ; 40 public : bool _have_shift_logic ; 41 public : bool _have_shift_arithmetic_left ; 42 public : bool _have_shift_arithmetic_right ; 43 public : bool _have_shift_arithmetic ; 44 public : bool _have_shift ; 45 public : bool _have_rotate_left ; 46 public : bool _have_rotate_right ; 47 public : bool _have_rotate ; 48 48 49 public : constbool _have_direction_left ;50 public : constbool _have_direction_right ;49 public : bool _have_direction_left ; 50 public : bool _have_direction_right ; 51 51 52 52 //-----[ methods ]----------------------------------------------------------- -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Parameters.cpp
r112 r137 20 20 direction_t direction , 21 21 carry_t carry , 22 bool type_completion_bool): 23 _size_data (size_data ), 24 _nb_port (nb_port ), 25 _shift_value (shift_value ), 26 _rotate (rotate ), 27 _direction (direction ), 28 _carry (carry ), 29 _size_data_completion ((carry != external_completion)?0:((_shift_value==0)?size_data:_shift_value)), 30 _type_completion_bool (type_completion_bool), 22 bool type_completion_bool) 23 { 24 _size_data = size_data ; 25 _nb_port = nb_port ; 26 _shift_value = shift_value ; 27 _rotate = rotate ; 28 _direction = direction ; 29 _carry = carry ; 30 _size_data_completion = (carry != external_completion)?0:((_shift_value==0)?size_data:_shift_value); 31 _type_completion_bool = type_completion_bool; 31 32 32 _size_shift (static_cast<uint32_t>(ceil(log2(_size_data)))), 33 _size_shift = static_cast<uint32_t>(ceil(log2(_size_data))); 34 35 _internal_direction = (direction == internal_right_shift)?_right :_left ; 36 _internal_type = (rotate == internal_rotate )?_rotate:_shift ; 37 _internal_carry = (carry == internal_logic )?_logic :_arithmetic; 33 38 34 _internal_direction ((direction == internal_right_shift)?_right :_left ), 35 _internal_type ((rotate == internal_rotate )?_rotate:_shift ), 36 _internal_carry ((carry == internal_logic )?_logic :_arithmetic), 39 _have_shift_logic_left = ((rotate != internal_rotate) && 40 (((carry == external_carry ) || 41 (carry == external_completion) || 42 (carry == internal_logic )) && 43 ((direction == external_direction ) || 44 (direction == internal_left_shift)))); 45 _have_shift_logic_right = ((rotate != internal_rotate) && 46 (((carry == external_carry ) || 47 (carry == external_completion) || 48 (carry == internal_logic )) && 49 ((direction == external_direction ) || 50 (direction == internal_right_shift)))); 51 _have_shift_logic = _have_shift_logic_left || _have_shift_logic_right; 37 52 38 _have_shift_logic_left ((rotate != internal_rotate) && 39 (((carry == external_carry ) || 40 (carry == external_completion) || 41 (carry == internal_logic )) && 42 ((direction == external_direction ) || 43 (direction == internal_left_shift)))), 44 _have_shift_logic_right ((rotate != internal_rotate) && 45 (((carry == external_carry ) || 46 (carry == external_completion) || 47 (carry == internal_logic )) && 48 ((direction == external_direction ) || 49 (direction == internal_right_shift)))), 50 _have_shift_logic (_have_shift_logic_left || _have_shift_logic_right), 53 _have_shift_arithmetic_left = ((rotate != internal_rotate) && 54 (((carry == external_carry ) || 55 (carry == internal_arithmetic )) && 56 ((direction == external_direction ) || 57 (direction == internal_left_shift)))); 58 _have_shift_arithmetic_right = ((rotate != internal_rotate) && 59 (((carry == external_carry ) || 60 (carry == internal_arithmetic )) && 61 ((direction == external_direction ) || 62 (direction == internal_right_shift)))); 63 _have_shift_arithmetic = _have_shift_arithmetic_left || _have_shift_arithmetic_right; 51 64 52 _have_shift_arithmetic_left ((rotate != internal_rotate) && 53 (((carry == external_carry ) || 54 (carry == internal_arithmetic )) && 55 ((direction == external_direction ) || 56 (direction == internal_left_shift)))), 57 _have_shift_arithmetic_right ((rotate != internal_rotate) && 58 (((carry == external_carry ) || 59 (carry == internal_arithmetic )) && 60 ((direction == external_direction ) || 61 (direction == internal_right_shift)))), 62 _have_shift_arithmetic (_have_shift_arithmetic_left || _have_shift_arithmetic_right), 65 _have_shift = _have_shift_logic || _have_shift_arithmetic; 63 66 64 _have_shift (_have_shift_logic || _have_shift_arithmetic), 67 _have_rotate_left = ((rotate != without_rotate) && 68 ((direction == external_direction ) || 69 (direction == internal_left_shift))); 70 _have_rotate_right = ((rotate != without_rotate) && 71 ((direction == external_direction ) || 72 (direction == internal_right_shift))); 73 _have_rotate = _have_rotate_left || _have_rotate_right; 74 75 _have_direction_left = (_have_shift_logic_left || 76 _have_shift_arithmetic_left || 77 _have_rotate_left ); 78 _have_direction_right = (_have_shift_logic_right || 79 _have_shift_arithmetic_right || 80 _have_rotate_right ); 65 81 66 _have_rotate_left ((rotate != without_rotate) &&67 ((direction == external_direction ) ||68 (direction == internal_left_shift))),69 _have_rotate_right ((rotate != without_rotate) &&70 ((direction == external_direction ) ||71 (direction == internal_right_shift))),72 _have_rotate ( _have_rotate_left || _have_rotate_right),73 74 _have_direction_left (_have_shift_logic_left ||75 _have_shift_arithmetic_left ||76 _have_rotate_left ),77 _have_direction_right (_have_shift_logic_right ||78 _have_shift_arithmetic_right ||79 _have_rotate_right )80 {81 82 test(); 82 83 }; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Parameters.h
r88 r137 22 22 { 23 23 //-----[ fields ]------------------------------------------------------------ 24 public : constuint32_t _nb_entity ; // number of entity25 public : constuint32_t _nb_access ; // number of port to select an entity26 //public : constuint32_t _nb_update ; // number of port to update the internal entity27 public : constuint32_t _size_table; // Size of victim_pseudo_lru's table28 public : constbool _table_global;29 public : constuint32_t _size_address;24 public : uint32_t _nb_entity ; // number of entity 25 public : uint32_t _nb_access ; // number of port to select an entity 26 //public : uint32_t _nb_update ; // number of port to update the internal entity 27 public : uint32_t _size_table; // Size of victim_pseudo_lru's table 28 public : bool _table_global; 29 public : uint32_t _size_address; 30 30 31 31 //-----[ methods ]----------------------------------------------------------- -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Parameters.cpp
r88 r137 19 19 // uint32_t nb_update , 20 20 uint32_t size_table, 21 bool table_global): 22 _nb_entity (nb_entity ), 23 _nb_access (nb_access ), 24 // _nb_update (nb_update ), 25 _size_table ((table_global == true)?1:size_table), 26 _table_global (table_global), 27 _size_address (size_table) 21 bool table_global) 28 22 { 23 _nb_entity = nb_entity; 24 _nb_access = nb_access; 25 // _nb_update = nb_update; 26 _size_table = (table_global == true)?1:size_table; 27 _table_global = table_global; 28 29 _size_address = size_table; 30 29 31 test(); 30 32 }; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Makefile.Selftest
r131 r137 235 235 generated_by_systemcass \ 236 236 semantic.cache \ 237 gmon.out \ 237 238 core*; 238 239 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Makefile.Synthesis
r117 r137 41 41 vhdl_testbench : $(DIR_WORK) 42 42 @\ 43 declare -a vhdl_files=($$($(LS) $(DIR_VHDL)/*_Testbench.vhdl)); \ 44 declare -a log_files=($${vhdl_files[*]/%.vhdl/.vhdl.log}); \ 45 if $(TEST) $${#log_files[*]} -ne 0; then $(MAKE) -k $${log_files[*]/#$(DIR_VHDL)/$(DIR_LOG)}; fi; 43 $(LS) $(DIR_VHDL)/*_Testbench.vhdl &> /dev/null; \ 44 if $(TEST) $$? -eq 0; then \ 45 declare -a vhdl_files=($$($(LS) $(DIR_VHDL)/*_Testbench.vhdl)); \ 46 declare -a log_files=($${vhdl_files[*]/%.vhdl/.vhdl.log}); \ 47 if $(TEST) $${#log_files[*]} -ne 0; then \ 48 $(MAKE) -k $${log_files[*]/#$(DIR_VHDL)/$(DIR_LOG)}; \ 49 fi; \ 50 fi; 46 51 47 52 vhdl_entity : $(DIR_WORK) … … 71 76 sim : vhdl 72 77 @\ 73 declare -a vhdl_files=($$($(LS) $(DIR_VHDL)/*_Testbench.vhdl)); \ 74 declare -a log_files=($${vhdl_files[*]/%.vhdl/.sim.log}); \ 75 if $(TEST) $${#log_files[*]} -ne 0; then $(MAKE) -k $${log_files[*]/#$(DIR_VHDL)/$(DIR_LOG)}; fi; 78 $(LS) $(DIR_VHDL)/*_Testbench.vhdl &> /dev/null; \ 79 if $(TEST) $$? -eq 0; then \ 80 declare -a vhdl_files=($$($(LS) $(DIR_VHDL)/*_Testbench.vhdl)); \ 81 declare -a log_files=($${vhdl_files[*]/%.vhdl/.sim.log}); \ 82 if $(TEST) $${#log_files[*]} -ne 0; then \ 83 $(MAKE) -k $${log_files[*]/#$(DIR_VHDL)/$(DIR_LOG)}; \ 84 fi; \ 85 fi; 76 86 77 87 fpga : sim -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Makefile.mkf
r116 r137 3 3 # 4 4 5 all: _Generic/Queue/SelfTest _ Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/SelfTest _Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/SelfTest _Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest5 all: _Generic/Queue/SelfTest _Generic/RegisterFile/RegisterFile_Monolithic/SelfTest _Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest 6 6 7 7 _Generic/Queue/SelfTest: 8 gmake all -C Generic/Queue/SelfTest8 make all -C Generic/Queue/SelfTest 9 9 10 _ Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/SelfTest:11 gmake all -C Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/SelfTest10 _Generic/RegisterFile/RegisterFile_Monolithic/SelfTest: 11 make all -C Generic/RegisterFile/RegisterFile_Monolithic/SelfTest 12 12 13 _Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/SelfTest: 14 gmake all -C Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/SelfTest 15 16 _Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest: 17 gmake all -C Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest 13 _Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest: 14 make all -C Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest 18 15 19 16 clean: 20 gmake clean -C Generic/Queue/SelfTest 21 gmake clean -C Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/SelfTest 22 gmake clean -C Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/SelfTest 23 gmake clean -C Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest 17 make clean -C Generic/Queue/SelfTest 18 make clean -C Generic/RegisterFile/RegisterFile_Monolithic/SelfTest 19 make clean -C Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest 24 20 25 21 re: clean all 26 22 27 23 install: 28 gmake install -C Generic/Queue/SelfTest 29 gmake install -C Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/SelfTest 30 gmake install -C Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/SelfTest 31 gmake install -C Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest 24 make install -C Generic/Queue/SelfTest 25 make install -C Generic/RegisterFile/RegisterFile_Monolithic/SelfTest 26 make install -C Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest 32 27 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Allocation.h
r135 r137 337 337 for (uint32_t it1=0; it1<iterator_1; it1++) \ 338 338 { \ 339 interface [it1] = _interfaces->set_interface( name+separator+toString(it1), direction, localisation, str); \339 interface [it1] = _interfaces->set_interface(((toString(name)!="")?(name+separator):"")+toString(it1), direction, localisation, str); \ 340 340 } \ 341 341 } … … 351 351 for (uint32_t it1=0; it1<iterator_1; it1++) \ 352 352 { \ 353 interface [it1] = _interfaces->set_interface( name+separator+toString(it1)); \353 interface [it1] = _interfaces->set_interface(((toString(name)!="")?(name+separator):"")+toString(it1)); \ 354 354 } \ 355 355 } … … 559 559 for (uint32_t it2=0; it2<iterator_2; it2++) \ 560 560 { \ 561 interface [it1][it2] = _interfaces->set_interface( name+separator+toString(it1)+separator+toString(it2), direction, localisation, str); \561 interface [it1][it2] = _interfaces->set_interface(((toString(name)!="")?(name+separator):"")+toString(it1)+separator+toString(it2), direction, localisation, str); \ 562 562 } \ 563 563 } \ … … 579 579 for (uint32_t it2=0; it2<iterator_2; it2++) \ 580 580 { \ 581 interface [it1][it2] = _interfaces->set_interface( name+separator+toString(it1)+separator+toString(it2)); \581 interface [it1][it2] = _interfaces->set_interface(((toString(name)!="")?(name+separator):"")+toString(it1)+separator+toString(it2)); \ 582 582 } \ 583 583 } \ … … 849 849 for (uint32_t it3=0; it3<iterator_3; it3++) \ 850 850 { \ 851 interface [it1][it2][it3] = _interfaces->set_interface( name+separator+toString(it1)+separator+toString(it2)+separator+toString(it3), direction, localisation, str); \851 interface [it1][it2][it3] = _interfaces->set_interface(((toString(name)!="")?(name+separator):"")+toString(it1)+separator+toString(it2)+separator+toString(it3), direction, localisation, str); \ 852 852 } \ 853 853 } \ … … 875 875 for (uint32_t it3=0; it3<iterator_3; it3++) \ 876 876 { \ 877 interface [it1][it2][it3] = _interfaces->set_interface( name+separator+toString(it1)+separator+toString(it2)+separator+toString(it3)); \877 interface [it1][it2][it3] = _interfaces->set_interface(((toString(name)!="")?(name+separator):"")+toString(it1)+separator+toString(it2)+separator+toString(it3)); \ 878 878 } \ 879 879 } \ -
trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Constants.h
r117 r137 1138 1138 // }; 1139 1139 1140 inline std::string toString_instruction(const uint32_t& x) 1141 { 1142 switch (x) 1143 { 1144 // ORBIS 1145 case morpheo::behavioural::INSTRUCTION_L_ADD : return "l.add"; 1146 case morpheo::behavioural::INSTRUCTION_L_ADDC : return "l.addc"; 1147 case morpheo::behavioural::INSTRUCTION_L_ADDI : return "l.addi"; 1148 case morpheo::behavioural::INSTRUCTION_L_ADDIC : return "l.addic"; 1149 case morpheo::behavioural::INSTRUCTION_L_AND : return "l.and"; 1150 case morpheo::behavioural::INSTRUCTION_L_ANDI : return "l.andi"; 1151 case morpheo::behavioural::INSTRUCTION_L_BF : return "l.bf"; 1152 case morpheo::behavioural::INSTRUCTION_L_BNF : return "l.bnf"; 1153 case morpheo::behavioural::INSTRUCTION_L_CMOV : return "l.cmov"; 1154 case morpheo::behavioural::INSTRUCTION_L_CSYNC : return "l.csync"; 1155 case morpheo::behavioural::INSTRUCTION_L_CUST1 : return "l.cust1"; 1156 case morpheo::behavioural::INSTRUCTION_L_CUST2 : return "l.cust2"; 1157 case morpheo::behavioural::INSTRUCTION_L_CUST3 : return "l.cust3"; 1158 case morpheo::behavioural::INSTRUCTION_L_CUST4 : return "l.cust4"; 1159 case morpheo::behavioural::INSTRUCTION_L_CUST5 : return "l.cust5"; 1160 case morpheo::behavioural::INSTRUCTION_L_CUST6 : return "l.cust6"; 1161 case morpheo::behavioural::INSTRUCTION_L_CUST7 : return "l.cust7"; 1162 case morpheo::behavioural::INSTRUCTION_L_CUST8 : return "l.cust8"; 1163 case morpheo::behavioural::INSTRUCTION_L_DIV : return "l.div"; 1164 case morpheo::behavioural::INSTRUCTION_L_DIVU : return "l.divu"; 1165 case morpheo::behavioural::INSTRUCTION_L_EXTBS : return "l.extbs"; 1166 case morpheo::behavioural::INSTRUCTION_L_EXTBZ : return "l.extbz"; 1167 case morpheo::behavioural::INSTRUCTION_L_EXTHS : return "l.exths"; 1168 case morpheo::behavioural::INSTRUCTION_L_EXTHZ : return "l.exthz"; 1169 case morpheo::behavioural::INSTRUCTION_L_EXTWS : return "l.extws"; 1170 case morpheo::behavioural::INSTRUCTION_L_EXTWZ : return "l.extwz"; 1171 case morpheo::behavioural::INSTRUCTION_L_FF1 : return "l.ff1"; 1172 case morpheo::behavioural::INSTRUCTION_L_FL1 : return "l.fl1"; 1173 case morpheo::behavioural::INSTRUCTION_L_J : return "l.j"; 1174 case morpheo::behavioural::INSTRUCTION_L_JAL : return "l.jal"; 1175 case morpheo::behavioural::INSTRUCTION_L_JALR : return "l.jalr"; 1176 case morpheo::behavioural::INSTRUCTION_L_JR : return "l.jr"; 1177 case morpheo::behavioural::INSTRUCTION_L_LBS : return "l.lbs"; 1178 case morpheo::behavioural::INSTRUCTION_L_LBZ : return "l.lbz"; 1179 case morpheo::behavioural::INSTRUCTION_L_LD : return "l.ld"; 1180 case morpheo::behavioural::INSTRUCTION_L_LHS : return "l.lhs"; 1181 case morpheo::behavioural::INSTRUCTION_L_LHZ : return "l.lhz"; 1182 case morpheo::behavioural::INSTRUCTION_L_LWS : return "l.lws"; 1183 case morpheo::behavioural::INSTRUCTION_L_LWZ : return "l.lwz"; 1184 case morpheo::behavioural::INSTRUCTION_L_MAC : return "l.mac"; 1185 case morpheo::behavioural::INSTRUCTION_L_MACI : return "l.maci"; 1186 case morpheo::behavioural::INSTRUCTION_L_MACRC : return "l.macrc"; 1187 case morpheo::behavioural::INSTRUCTION_L_MFSPR : return "l.mfspr"; 1188 case morpheo::behavioural::INSTRUCTION_L_MOVHI : return "l.movhi"; 1189 case morpheo::behavioural::INSTRUCTION_L_MSB : return "l.msb"; 1190 case morpheo::behavioural::INSTRUCTION_L_MSYNC : return "l.msync"; 1191 case morpheo::behavioural::INSTRUCTION_L_MTSPR : return "l.mtspr"; 1192 case morpheo::behavioural::INSTRUCTION_L_MUL : return "l.mul"; 1193 case morpheo::behavioural::INSTRUCTION_L_MULI : return "l.muli"; 1194 case morpheo::behavioural::INSTRUCTION_L_MULU : return "l.mulu"; 1195 case morpheo::behavioural::INSTRUCTION_L_NOP : return "l.nop"; 1196 case morpheo::behavioural::INSTRUCTION_L_OR : return "l.or"; 1197 case morpheo::behavioural::INSTRUCTION_L_ORI : return "l.ori"; 1198 case morpheo::behavioural::INSTRUCTION_L_PSYNC : return "l.psync"; 1199 case morpheo::behavioural::INSTRUCTION_L_RFE : return "l.rfe"; 1200 case morpheo::behavioural::INSTRUCTION_L_ROR : return "l.ror"; 1201 case morpheo::behavioural::INSTRUCTION_L_RORI : return "l.rori"; 1202 case morpheo::behavioural::INSTRUCTION_L_SB : return "l.sb"; 1203 case morpheo::behavioural::INSTRUCTION_L_SD : return "l.sd"; 1204 case morpheo::behavioural::INSTRUCTION_L_SFEQ : return "l.sfeq"; 1205 case morpheo::behavioural::INSTRUCTION_L_SFEQI : return "l.sfeqi"; 1206 case morpheo::behavioural::INSTRUCTION_L_SFGES : return "l.sfges"; 1207 case morpheo::behavioural::INSTRUCTION_L_SFGESI : return "l.sfgesi"; 1208 case morpheo::behavioural::INSTRUCTION_L_SFGEU : return "l.sfgeu"; 1209 case morpheo::behavioural::INSTRUCTION_L_SFGEUI : return "l.sfgeui"; 1210 case morpheo::behavioural::INSTRUCTION_L_SFGTS : return "l.sfgts"; 1211 case morpheo::behavioural::INSTRUCTION_L_SFGTSI : return "l.sfgtsi"; 1212 case morpheo::behavioural::INSTRUCTION_L_SFGTU : return "l.sfgtu"; 1213 case morpheo::behavioural::INSTRUCTION_L_SFGTUI : return "l.sfgtui"; 1214 case morpheo::behavioural::INSTRUCTION_L_SFLES : return "l.sfles"; 1215 case morpheo::behavioural::INSTRUCTION_L_SFLESI : return "l.sflesi"; 1216 case morpheo::behavioural::INSTRUCTION_L_SFLEU : return "l.sfleu"; 1217 case morpheo::behavioural::INSTRUCTION_L_SFLEUI : return "l.sfleui"; 1218 case morpheo::behavioural::INSTRUCTION_L_SFLTS : return "l.sflts"; 1219 case morpheo::behavioural::INSTRUCTION_L_SFLTSI : return "l.sfltsi"; 1220 case morpheo::behavioural::INSTRUCTION_L_SFLTU : return "l.sfltu"; 1221 case morpheo::behavioural::INSTRUCTION_L_SFLTUI : return "l.sfltui"; 1222 case morpheo::behavioural::INSTRUCTION_L_SFNE : return "l.sfne"; 1223 case morpheo::behavioural::INSTRUCTION_L_SFNEI : return "l.sfnei"; 1224 case morpheo::behavioural::INSTRUCTION_L_SH : return "l.sh"; 1225 case morpheo::behavioural::INSTRUCTION_L_SLL : return "l.sll"; 1226 case morpheo::behavioural::INSTRUCTION_L_SLLI : return "l.slli"; 1227 case morpheo::behavioural::INSTRUCTION_L_SRA : return "l.sra"; 1228 case morpheo::behavioural::INSTRUCTION_L_SRAI : return "l.srai"; 1229 case morpheo::behavioural::INSTRUCTION_L_SRL : return "l.srl"; 1230 case morpheo::behavioural::INSTRUCTION_L_SRLI : return "l.srli"; 1231 case morpheo::behavioural::INSTRUCTION_L_SUB : return "l.sub"; 1232 case morpheo::behavioural::INSTRUCTION_L_SW : return "l.sw"; 1233 case morpheo::behavioural::INSTRUCTION_L_SYS : return "l.sys"; 1234 case morpheo::behavioural::INSTRUCTION_L_TRAP : return "l.trap"; 1235 case morpheo::behavioural::INSTRUCTION_L_XOR : return "l.xor"; 1236 case morpheo::behavioural::INSTRUCTION_L_XORI : return "l.xori"; 1237 // ORFPX 1238 case morpheo::behavioural::INSTRUCTION_LF_ADD_D : return "lf.add_d"; 1239 case morpheo::behavioural::INSTRUCTION_LF_ADD_S : return "lf.add_s"; 1240 case morpheo::behavioural::INSTRUCTION_LF_CUST1_D : return "lf.cust1_d"; 1241 case morpheo::behavioural::INSTRUCTION_LF_CUST1_S : return "lf.cust1_s"; 1242 case morpheo::behavioural::INSTRUCTION_LF_DIV_D : return "lf.div_d"; 1243 case morpheo::behavioural::INSTRUCTION_LF_DIV_S : return "lf.div_s"; 1244 case morpheo::behavioural::INSTRUCTION_LF_FTOI_D : return "lf.ftoi_d"; 1245 case morpheo::behavioural::INSTRUCTION_LF_FTOI_S : return "lf.ftoi_s"; 1246 case morpheo::behavioural::INSTRUCTION_LF_ITOF_D : return "lf.itof_d"; 1247 case morpheo::behavioural::INSTRUCTION_LF_ITOF_S : return "lf.itof_s"; 1248 case morpheo::behavioural::INSTRUCTION_LF_MADD_D : return "lf.madd_d"; 1249 case morpheo::behavioural::INSTRUCTION_LF_MADD_S : return "lf.madd_s"; 1250 case morpheo::behavioural::INSTRUCTION_LF_MUL_D : return "lf.mul_d"; 1251 case morpheo::behavioural::INSTRUCTION_LF_MUL_S : return "lf.mul_s"; 1252 case morpheo::behavioural::INSTRUCTION_LF_REM_D : return "lf.rem_d"; 1253 case morpheo::behavioural::INSTRUCTION_LF_REM_S : return "lf.rem_s"; 1254 case morpheo::behavioural::INSTRUCTION_LF_SFEQ_D : return "lf.sfeq_d"; 1255 case morpheo::behavioural::INSTRUCTION_LF_SFEQ_S : return "lf.sfeq_s"; 1256 case morpheo::behavioural::INSTRUCTION_LF_SFGE_D : return "lf.sfge_d"; 1257 case morpheo::behavioural::INSTRUCTION_LF_SFGE_S : return "lf.sfge_s"; 1258 case morpheo::behavioural::INSTRUCTION_LF_SFGT_D : return "lf.sfgt_d"; 1259 case morpheo::behavioural::INSTRUCTION_LF_SFGT_S : return "lf.sfgt_s"; 1260 case morpheo::behavioural::INSTRUCTION_LF_SFLE_D : return "lf.sfle_d"; 1261 case morpheo::behavioural::INSTRUCTION_LF_SFLE_S : return "lf.sfle_s"; 1262 case morpheo::behavioural::INSTRUCTION_LF_SFLT_D : return "lf.sflt_d"; 1263 case morpheo::behavioural::INSTRUCTION_LF_SFLT_S : return "lf.sflt_s"; 1264 case morpheo::behavioural::INSTRUCTION_LF_SFNE_D : return "lf.sfne_d"; 1265 case morpheo::behavioural::INSTRUCTION_LF_SFNE_S : return "lf.sfne_s"; 1266 case morpheo::behavioural::INSTRUCTION_LF_SUB_D : return "lf.sub_d"; 1267 case morpheo::behavioural::INSTRUCTION_LF_SUB_S : return "lf.sub_s"; 1268 // ORVDX 1269 case morpheo::behavioural::INSTRUCTION_LV_ADD_B : return "lv.add_b"; 1270 case morpheo::behavioural::INSTRUCTION_LV_ADD_H : return "lv.add_h"; 1271 case morpheo::behavioural::INSTRUCTION_LV_ADDS_B : return "lv.adds_b"; 1272 case morpheo::behavioural::INSTRUCTION_LV_ADDS_H : return "lv.adds_h"; 1273 case morpheo::behavioural::INSTRUCTION_LV_ADDU_B : return "lv.addu_b"; 1274 case morpheo::behavioural::INSTRUCTION_LV_ADDU_H : return "lv.addu_h"; 1275 case morpheo::behavioural::INSTRUCTION_LV_ADDUS_B : return "lv.addus_b"; 1276 case morpheo::behavioural::INSTRUCTION_LV_ADDUS_H : return "lv.addus_h"; 1277 case morpheo::behavioural::INSTRUCTION_LV_ALL_EQ_B : return "lv.all_eq_b"; 1278 case morpheo::behavioural::INSTRUCTION_LV_ALL_EQ_H : return "lv.all_eq_h"; 1279 case morpheo::behavioural::INSTRUCTION_LV_ALL_GE_B : return "lv.all_ge_b"; 1280 case morpheo::behavioural::INSTRUCTION_LV_ALL_GE_H : return "lv.all_ge_h"; 1281 case morpheo::behavioural::INSTRUCTION_LV_ALL_GT_B : return "lv.all_gt_b"; 1282 case morpheo::behavioural::INSTRUCTION_LV_ALL_GT_H : return "lv.all_gt_h"; 1283 case morpheo::behavioural::INSTRUCTION_LV_ALL_LE_B : return "lv.all_le_b"; 1284 case morpheo::behavioural::INSTRUCTION_LV_ALL_LE_H : return "lv.all_le_h"; 1285 case morpheo::behavioural::INSTRUCTION_LV_ALL_LT_B : return "lv.all_lt_b"; 1286 case morpheo::behavioural::INSTRUCTION_LV_ALL_LT_H : return "lv.all_lt_h"; 1287 case morpheo::behavioural::INSTRUCTION_LV_ALL_NE_B : return "lv.all_ne_b"; 1288 case morpheo::behavioural::INSTRUCTION_LV_ALL_NE_H : return "lv.all_ne_h"; 1289 case morpheo::behavioural::INSTRUCTION_LV_AND : return "lv.and"; 1290 case morpheo::behavioural::INSTRUCTION_LV_ANY_EQ_B : return "lv.any_eq_b"; 1291 case morpheo::behavioural::INSTRUCTION_LV_ANY_EQ_H : return "lv.any_eq_h"; 1292 case morpheo::behavioural::INSTRUCTION_LV_ANY_GE_B : return "lv.any_ge_b"; 1293 case morpheo::behavioural::INSTRUCTION_LV_ANY_GE_H : return "lv.any_ge_h"; 1294 case morpheo::behavioural::INSTRUCTION_LV_ANY_GT_B : return "lv.any_gt_b"; 1295 case morpheo::behavioural::INSTRUCTION_LV_ANY_GT_H : return "lv.any_gt_h"; 1296 case morpheo::behavioural::INSTRUCTION_LV_ANY_LE_B : return "lv.any_le_b"; 1297 case morpheo::behavioural::INSTRUCTION_LV_ANY_LE_H : return "lv.any_le_h"; 1298 case morpheo::behavioural::INSTRUCTION_LV_ANY_LT_B : return "lv.any_lt_b"; 1299 case morpheo::behavioural::INSTRUCTION_LV_ANY_LT_H : return "lv.any_lt_h"; 1300 case morpheo::behavioural::INSTRUCTION_LV_ANY_NE_B : return "lv.any_ne_b"; 1301 case morpheo::behavioural::INSTRUCTION_LV_ANY_NE_H : return "lv.any_ne_h"; 1302 case morpheo::behavioural::INSTRUCTION_LV_AVG_B : return "lv.avg_b"; 1303 case morpheo::behavioural::INSTRUCTION_LV_AVG_H : return "lv.avg_h"; 1304 case morpheo::behavioural::INSTRUCTION_LV_CMP_EQ_B : return "lv.cmp_eq_b"; 1305 case morpheo::behavioural::INSTRUCTION_LV_CMP_EQ_H : return "lv.cmp_eq_h"; 1306 case morpheo::behavioural::INSTRUCTION_LV_CMP_GE_B : return "lv.cmp_ge_b"; 1307 case morpheo::behavioural::INSTRUCTION_LV_CMP_GE_H : return "lv.cmp_ge_h"; 1308 case morpheo::behavioural::INSTRUCTION_LV_CMP_GT_B : return "lv.cmp_gt_b"; 1309 case morpheo::behavioural::INSTRUCTION_LV_CMP_GT_H : return "lv.cmp_gt_h"; 1310 case morpheo::behavioural::INSTRUCTION_LV_CMP_LE_B : return "lv.cmp_le_b"; 1311 case morpheo::behavioural::INSTRUCTION_LV_CMP_LE_H : return "lv.cmp_le_h"; 1312 case morpheo::behavioural::INSTRUCTION_LV_CMP_LT_B : return "lv.cmp_lt_b"; 1313 case morpheo::behavioural::INSTRUCTION_LV_CMP_LT_H : return "lv.cmp_lt_h"; 1314 case morpheo::behavioural::INSTRUCTION_LV_CMP_NE_B : return "lv.cmp_ne_b"; 1315 case morpheo::behavioural::INSTRUCTION_LV_CMP_NE_H : return "lv.cmp_ne_h"; 1316 case morpheo::behavioural::INSTRUCTION_LV_CUST1 : return "lv.cust1"; 1317 case morpheo::behavioural::INSTRUCTION_LV_CUST2 : return "lv.cust2"; 1318 case morpheo::behavioural::INSTRUCTION_LV_CUST3 : return "lv.cust3"; 1319 case morpheo::behavioural::INSTRUCTION_LV_CUST4 : return "lv.cust4"; 1320 case morpheo::behavioural::INSTRUCTION_LV_MADDS_H : return "lv.madds_h"; 1321 case morpheo::behavioural::INSTRUCTION_LV_MAX_B : return "lv.max_b"; 1322 case morpheo::behavioural::INSTRUCTION_LV_MAX_H : return "lv.max_h"; 1323 case morpheo::behavioural::INSTRUCTION_LV_MERGE_B : return "lv.merge_b"; 1324 case morpheo::behavioural::INSTRUCTION_LV_MERGE_H : return "lv.merge_h"; 1325 case morpheo::behavioural::INSTRUCTION_LV_MIN_B : return "lv.min_b"; 1326 case morpheo::behavioural::INSTRUCTION_LV_MIN_H : return "lv.min_h"; 1327 case morpheo::behavioural::INSTRUCTION_LV_MSUBS_H : return "lv.msubs_h"; 1328 case morpheo::behavioural::INSTRUCTION_LV_MULS_H : return "lv.muls_h"; 1329 case morpheo::behavioural::INSTRUCTION_LV_NAND : return "lv.nand"; 1330 case morpheo::behavioural::INSTRUCTION_LV_NOR : return "lv.nor"; 1331 case morpheo::behavioural::INSTRUCTION_LV_OR : return "lv.or"; 1332 case morpheo::behavioural::INSTRUCTION_LV_PACK_B : return "lv.pack_b"; 1333 case morpheo::behavioural::INSTRUCTION_LV_PACK_H : return "lv.pack_h"; 1334 case morpheo::behavioural::INSTRUCTION_LV_PACKS_B : return "lv.packs_b"; 1335 case morpheo::behavioural::INSTRUCTION_LV_PACKS_H : return "lv.packs_h"; 1336 case morpheo::behavioural::INSTRUCTION_LV_PACKUS_B : return "lv.packus_b"; 1337 case morpheo::behavioural::INSTRUCTION_LV_PACKUS_H : return "lv.packus_h"; 1338 case morpheo::behavioural::INSTRUCTION_LV_PERM_N : return "lv.perm_n"; 1339 case morpheo::behavioural::INSTRUCTION_LV_RL_B : return "lv.rl_b"; 1340 case morpheo::behavioural::INSTRUCTION_LV_RL_H : return "lv.rl_h"; 1341 case morpheo::behavioural::INSTRUCTION_LV_SLL : return "lv.sll"; 1342 case morpheo::behavioural::INSTRUCTION_LV_SLL_B : return "lv.sll_b"; 1343 case morpheo::behavioural::INSTRUCTION_LV_SLL_H : return "lv.sll_h"; 1344 case morpheo::behavioural::INSTRUCTION_LV_SRA_B : return "lv.sra_b"; 1345 case morpheo::behavioural::INSTRUCTION_LV_SRA_H : return "lv.sra_h"; 1346 case morpheo::behavioural::INSTRUCTION_LV_SRL : return "lv.srl"; 1347 case morpheo::behavioural::INSTRUCTION_LV_SRL_B : return "lv.srl_b"; 1348 case morpheo::behavioural::INSTRUCTION_LV_SRL_H : return "lv.srl_h"; 1349 case morpheo::behavioural::INSTRUCTION_LV_SUB_B : return "lv.sub_b"; 1350 case morpheo::behavioural::INSTRUCTION_LV_SUB_H : return "lv.sub_h"; 1351 case morpheo::behavioural::INSTRUCTION_LV_SUBS_B : return "lv.subs_b"; 1352 case morpheo::behavioural::INSTRUCTION_LV_SUBS_H : return "lv.subs_h"; 1353 case morpheo::behavioural::INSTRUCTION_LV_SUBU_B : return "lv.subu_b"; 1354 case morpheo::behavioural::INSTRUCTION_LV_SUBU_H : return "lv.subu_h"; 1355 case morpheo::behavioural::INSTRUCTION_LV_SUBUS_B : return "lv.subus_b"; 1356 case morpheo::behavioural::INSTRUCTION_LV_SUBUS_H : return "lv.subus_h"; 1357 case morpheo::behavioural::INSTRUCTION_LV_UNPACK_B : return "lv.unpack_b"; 1358 case morpheo::behavioural::INSTRUCTION_LV_UNPACK_H : return "lv.unpack_h"; 1359 case morpheo::behavioural::INSTRUCTION_LV_XOR : return "lv.xor"; 1360 1361 default : return ""; 1362 } 1363 }; 1364 1140 1365 }; // end namespace morpheo 1141 1366 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Debug_signal.h
r129 r137 11 11 # ifdef DEBUG_SIGNAL 12 12 13 #include <set> 14 #include "Common/include/Message.h" 13 #include <map> 14 #include <list> 15 #include <string> 15 16 16 17 namespace morpheo { 17 18 namespace behavioural { 18 19 19 extern std::set<void *> _debug_signal; 20 class debug_signal 21 { 22 private : std::map <void *,std::string> _signal; 23 private : std::list<std::string> _signal_access; 24 25 public : void add (void * signal, 26 std::string name); 27 public : void write (void * signal); 28 public : void end_cycle (void); 29 public : void print (void); 30 }; 20 31 21 # define DEBUG_SIGNAL_ADD(signal) \ 32 extern debug_signal _debug_signal; 33 34 # define DEBUG_SIGNAL_ADD(signal,name) \ 22 35 do \ 23 36 { \ 24 morpheo::behavioural::_debug_signal. insert(static_cast<void *>( signal));\37 morpheo::behavioural::_debug_signal.add(signal,name); \ 25 38 } while(0) 39 40 // Test if signal is previously define 26 41 27 # define DEBUG_SIGNAL_ ACCESS(signal)\42 # define DEBUG_SIGNAL_WRITE(signal) \ 28 43 do \ 29 44 { \ 30 if (morpheo::behavioural::_debug_signal.find(static_cast<void *>(signal)) == morpheo::behavioural::_debug_signal.end()) \ 31 msgError("At file %s, in line %d, invalid signal.\n",__FILE__,__LINE__); \ 45 morpheo::behavioural::_debug_signal.write(signal); \ 32 46 } while(0) 47 48 # define DEBUG_SIGNAL_END_CYCLE() \ 49 do \ 50 { \ 51 morpheo::behavioural::_debug_signal.end_cycle(); \ 52 } while (0) 53 54 # define DEBUG_SIGNAL_PRINT() \ 55 do \ 56 { \ 57 morpheo::behavioural::_debug_signal.print(); \ 58 } while (0) 33 59 34 60 }; // end namespace behavioural 35 61 }; // end namespace morpheo 36 62 # else 37 # define DEBUG_SIGNAL_ADD(signal) do {} while (0) 38 # define DEBUG_SIGNAL_ACCESS(signal) do {} while (0) 63 # define DEBUG_SIGNAL_ADD(signal,name) do {} while (0) 64 # define DEBUG_SIGNAL_WRITE(signal) do {} while (0) 65 # define DEBUG_SIGNAL_END_CYCLE() do {} while (0) 66 # define DEBUG_SIGNAL_PRINT() do {} while (0) 39 67 # endif 40 68 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Signal.h
r129 r137 161 161 _sc_signal_map = sc_signal; 162 162 163 DEBUG_SIGNAL_ADD(sc_signal );163 DEBUG_SIGNAL_ADD(sc_signal,_name); 164 164 165 165 if (typeid(T) == typeid(bool )) -
trunk/IPs/systemC/processor/Morpheo/Behavioural/mkf.info
r135 r137 16 16 # build src directory content 17 17 target_dep all Generic/Queue/SelfTest 18 #target_dep all Generic/RegisterFile/RegisterFile_Monolithic/SelfTest19 #target_dep all Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest18 target_dep all Generic/RegisterFile/RegisterFile_Monolithic/SelfTest 19 target_dep all Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest 20 20 #target_dep all Generic/Select/Select_Priority_Fixed/SelfTest 21 22 23 24 25 21 #target_dep all Core/Multi_Front_end/Front_end/Ifetch_unit/Address_management/SelfTest 22 #target_dep all Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue/SelfTest 23 #target_dep all Core/Multi_Front_end/Front_end/Decod_unit/Decod/SelfTest 24 #target_dep all Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/SelfTest 25 #target_dep all Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/SelfTest 26 26 #target_dep all Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/SelfTest 27 27 #target_dep all Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/SelfTest 28 28 #target_dep all Core/Multi_Execute_loop/Execute_loop/Register_unit/SelfTest 29 29 #target_dep all Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/SelfTest 30 31 32 30 #target_dep all Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/SelfTest 31 #target_dep all Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/SelfTest 32 #target_dep all Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest 33 33 #target_dep all Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/SelfTest 34 34 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Component_toXML.cpp
r81 r137 3 3 * $Id$ 4 4 * 5 * [ 5 * [ Description ] 6 6 * 7 7 */ 8 8 9 9 #include "Behavioural/include/Component.h" 10 #include " Behavioural/include/Version.h"10 #include "Common/include/Environment.h" 11 11 12 12 namespace morpheo { … … 19 19 { 20 20 log_printf(FUNC,Behavioural,FUNCTION,"Begin"); 21 22 environment (); 21 23 22 24 XML xml (_entity->get_name()); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Debug_signal.cpp
r129 r137 8 8 9 9 #include "Behavioural/include/Debug_signal.h" 10 #include "Common/include/Message.h" 10 11 11 12 namespace morpheo { 12 13 namespace behavioural { 13 14 14 std::set<void *> _debug_signal; 15 debug_signal _debug_signal; 16 17 void debug_signal::add (void * signal, 18 std::string name) 19 { 20 _signal[signal] = name; 21 } 22 23 void debug_signal::write (void * signal) 24 { 25 std::map <void *,std::string>::iterator it=_signal.find(signal); 26 if (it != _signal.end()) 27 _signal_access.push_back(it->second); 28 29 // else 30 // msgError("At file %s, in line %d, invalid signal.\n",__FILE__,__LINE__); 31 } 32 33 void debug_signal::end_cycle (void) 34 { 35 _signal_access.clear(); 36 } 37 38 void debug_signal::print (void) 39 { 40 msg("List of access signal\n"); 41 for (std::list<std::string>::iterator it = _signal_access.begin(); 42 it != _signal_access.end(); 43 ++ it) 44 { 45 msg(" * %s\n",(*it).c_str()); 46 } 47 } 15 48 16 49 }; // end namespace behavioural -
trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Stat_generate_file.cpp
r124 r137 1 1 #ifdef STATISTICS 2 2 #include "Behavioural/include/Stat.h" 3 #include "Behavioural/include/Version.h"4 3 #include "Common/include/Environment.h" 5 4 #include "Common/include/Systemc.h" … … 11 10 { 12 11 directory(); 12 environment(); 13 13 14 14 std::string body = print(1); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Vhdl_get_header.cpp
r113 r137 9 9 10 10 #include "Behavioural/include/Vhdl.h" 11 #include " Behavioural/include/Version.h"11 #include "Common/include/Environment.h" 12 12 #include <time.h> 13 13 #include <sstream> … … 25 25 26 26 std::string text; 27 28 environment(); 27 29 28 30 time_t current_time; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/src/XML_header.cpp
r98 r137 7 7 8 8 #include "Behavioural/include/XML.h" 9 #include " Behavioural/include/Version.h"9 #include "Common/include/Environment.h" 10 10 11 11 namespace morpheo { … … 17 17 { 18 18 log_printf(FUNC,Behavioural,FUNCTION,"Begin"); 19 20 environment (); 19 21 20 22 time_t current_time; -
trunk/IPs/systemC/processor/Morpheo/Common/include/Environment.h
r113 r137 48 48 extern std::string MORPHEO_HOME; 49 49 extern std::string MORPHEO_TOPLEVEL; 50 extern std::string MORPHEO_VERSION; 51 extern std::string MORPHEO_HEADER; 52 extern std::string MORPHEO_DATE; 50 53 51 54 void environment (void); -
trunk/IPs/systemC/processor/Morpheo/Common/include/Types.h
r129 r137 42 42 # define SC_OUT(type) sc_out <type > 43 43 44 # define PORT_READ(sig) 45 # define PORT_WRITE(sig,val) do {DEBUG_SIGNAL_ ACCESS(sig); sig->write(val);} while(0)44 # define PORT_READ(sig) sig->read() 45 # define PORT_WRITE(sig,val) do {DEBUG_SIGNAL_WRITE(sig); sig->write(val);} while(0) 46 46 //#define INTERNAL_READ(sig) (*sig) 47 47 //#define INTERNAL_WRITE(sig,val) (*sig) = val -
trunk/IPs/systemC/processor/Morpheo/Common/src/Environment.cpp
r97 r137 17 17 std::string MORPHEO_HOME; 18 18 std::string MORPHEO_TOPLEVEL; 19 std::string MORPHEO_VERSION; 20 std::string MORPHEO_HEADER; 21 std::string MORPHEO_DATE; 19 22 20 23 #undef FUNCTION … … 25 28 { 26 29 { 27 char * toplevel= getenv("MORPHEO_TOPLEVEL");30 char * TOPLEVEL = getenv("MORPHEO_TOPLEVEL"); 28 31 29 if ( toplevel== NULL)32 if (TOPLEVEL == NULL) 30 33 throw ERRORMORPHEO(FUNCTION,_("Error morpheo environment is not positioned.\n")); 31 34 32 MORPHEO_TOPLEVEL = toplevel;35 MORPHEO_TOPLEVEL = TOPLEVEL; 33 36 } 34 37 35 38 { 36 char * home= getenv("MORPHEO_HOME");39 char * HOME = getenv("MORPHEO_HOME"); 37 40 38 if ( home== NULL)41 if (HOME == NULL) 39 42 throw ERRORMORPHEO(FUNCTION,_("Error morpheo environment is not positioned.\n")); 40 43 41 MORPHEO_HOME = home; 44 MORPHEO_HOME = HOME; 45 } 46 47 { 48 char * MAJOR_VERSION = getenv("MORPHEO_MAJOR_VERSION"); 49 char * MINOR_VERSION = getenv("MORPHEO_MINOR_VERSION"); 50 char * REVISION = getenv("MORPHEO_REVISION"); 51 char * CODENAME = getenv("MORPHEO_CODENAME"); 52 char * DATE_DAY = getenv("MORPHEO_DATE_DAY"); 53 char * DATE_MONTH = getenv("MORPHEO_DATE_MONTH"); 54 char * DATE_YEAR = getenv("MORPHEO_DATE_YEAR"); 55 56 if ((MAJOR_VERSION == NULL) or 57 (MINOR_VERSION == NULL) or 58 (REVISION == NULL) or 59 (CODENAME == NULL) or 60 (DATE_DAY == NULL) or 61 (DATE_MONTH == NULL) or 62 (DATE_YEAR == NULL)) 63 throw ERRORMORPHEO(FUNCTION,_("Error morpheo environment is not positioned.\n")); 64 65 MORPHEO_VERSION = toString(MAJOR_VERSION)+"."+toString(MINOR_VERSION)+"."+toString(REVISION); 66 MORPHEO_HEADER = MORPHEO_VERSION+" - "+toString(CODENAME); 67 MORPHEO_DATE = toString(DATE_YEAR)+"/"+toString(DATE_MONTH)+"/"+toString(DATE_DAY); 42 68 } 43 69 -
trunk/IPs/systemC/processor/Morpheo/Files/Instance_x04_w04_01.cfg
r136 r137 3 3 <core name="Instance_x04_w04_01"> 4 4 5 <thread id="0,1,2,3" >5 <thread id="0,1,2,3" > 6 6 <parameter name="size_ifetch_queue" value="32" /> 7 7 <parameter name="ifetch_queue_scheme" value="0" /> … … 75 75 <timing type="2" latence="1" delay="1" /> 76 76 <timing type="3" latence="1" delay="1" /> 77 <timing type="4" latence=" 1" delay="1" />77 <timing type="4" latence="3" delay="1" /> 78 78 <timing type="6" latence="1" delay="1" /> 79 79 <timing type="7" latence="1" delay="1" /> … … 174 174 175 175 <link name="link_decod_unit_with_decod_bloc" src="0" dest="0.0" /> 176 176 177 <link name="link_rename_unit_with_rename_bloc" src="0" dest="0.0" /> 177 178 -
trunk/IPs/systemC/processor/Morpheo/Files/Instance_x04_w08_01.cfg
r136 r137 3 3 <core name="Instance_x04_w08_01"> 4 4 5 <thread id="0,1,2,3"> 5 <thread id="0,1,2,3"> 6 6 <parameter name="size_ifetch_queue" value="16" /> 7 7 <parameter name="ifetch_queue_scheme" value="0" /> … … 15 15 </group> 16 16 </thread> 17 17 18 18 <decod_bloc id="0"> 19 19 <parameter name="size_decod_queue" value="32"/> -
trunk/IPs/systemC/processor/Morpheo/Files/Morpheo-Dhrystone.sim
r136 r137 20 20 <parameter name="statistics_period" value="0" /> 21 21 22 <parameter name="simulation_nb_cycle" value="1 500000" />22 <parameter name="simulation_nb_cycle" value="1000000" /> 23 23 <parameter name="simulation_nb_instruction" value="0" /> 24 24 <parameter name="simulation_file_with_pid" value="0" /> -
trunk/IPs/systemC/processor/Morpheo/Files/Morpheo.gen
r136 r137 54 54 55 55 <parameter name="nb_load_store_unit" min="1" max="16" step="* 2" default="1" level="..." description="..." /> 56 <parameter name="size_store_queue" min="2" max=" 32" step="* 2" default="2" level="..." description="..." />57 <parameter name="size_load_queue" min="1" max=" 32" step="* 2" default="2" level="..." description="..." />56 <parameter name="size_store_queue" min="2" max="128" step="* 2" default="2" level="..." description="..." /> 57 <parameter name="size_load_queue" min="1" max="128" step="* 2" default="2" level="..." description="..." /> 58 58 <parameter name="size_speculative_access_queue" min="1" max="16" step="* 2" default="2" level="..." description="..." /> 59 <parameter name="nb_port_check" min="1" max="1 6" step="* 2" default="1" level="..." description="..." />59 <parameter name="nb_port_check" min="1" max="128" step="* 2" default="1" level="..." description="..." /> 60 60 <parameter name="speculative_load" min="0" max="3" step="+ 1" default="2" level="..." description="..." /> 61 61 <parameter name="nb_bypass_memory" min="0" max="16" step="+ 1" default="0" level="..." description="..." /> … … 110 110 <parameter name="nb_execute_unit" min="1" max="16" step="+ 1" default="1" level="..." description="..." /> 111 111 <parameter name="nb_write_unit" min="1" max="32" step="+ 1" default="1" level="..." description="..." /> 112 <parameter name="nb_gpr_bank" min="1" max=" 16" step="* 2" default="1" level="..." description="..." />112 <parameter name="nb_gpr_bank" min="1" max="64" step="+ 1" default="1" level="..." description="..." /> 113 113 <parameter name="nb_gpr_port_read_by_bank" min="1" max="32" step="+ 1" default="1" level="..." description="..." /> 114 114 <parameter name="nb_gpr_port_write_by_bank" min="1" max="16" step="+ 1" default="1" level="..." description="..." /> -
trunk/IPs/systemC/processor/Morpheo/Files/Morpheo.sim
r136 r137 4 4 5 5 <parameter name="use_systemc" value="1" /> 6 <parameter name="use_vhdl" value=" 0" />6 <parameter name="use_vhdl" value="1" /> 7 7 <parameter name="use_vhdl_testbench" value="0" /> 8 8 <parameter name="use_vhdl_testbench_assert" value="0" /> … … 111 111 <component name="Interface" model="systemc" debug="0" /> 112 112 <component name="Allocation" model="systemc" debug="0" /> 113 <component name="Configuration" model="systemc" debug="0" /> 114 113 115 </parameters> -
trunk/IPs/systemC/processor/Morpheo/Files/debug.sim
r136 r137 111 111 <component name="Interface" model="systemc" debug="1" /> 112 112 <component name="Allocation" model="systemc" debug="1" /> 113 <component name="Configuration" model="systemc" debug="1" /> 113 114 114 115 </parameters> -
trunk/IPs/systemC/processor/Morpheo/Script/version.sh
r90 r137 4 4 # $Id$ 5 5 #----------------------------------------------------------- 6 7 file_sed_src="${MORPHEO_TOPLEVEL}/IPs/systemC/processor/Morpheo/Behavioural/include/Version.h.sed"; 8 file_sed_dest="${MORPHEO_TOPLEVEL}/IPs/systemC/processor/Morpheo/Behavioural/include/Version.h"; 9 file_sed_script="/tmp/file_sed_script"; 6 file_version="${MORPHEO_TOPLEVEL}/Version"; 10 7 11 8 #-----[ usage ]--------------------------------------------- … … 47 44 48 45 # +1 because is the next revision 46 major_version=0; 47 minor_version=2; 48 codename="Castor"; 49 49 50 revision=$(($(export LC_ALL=C; svnversion | tr -d [:alpha:] | cut -d : -f 2) + 1)); 50 51 date_day=$(date +%d); … … 52 53 date_year=$(date +%Y); 53 54 54 echo "s/\"@REVISION\"/\"${revision}\"/" > ${file_sed_script}; 55 echo "s/\"@DATE_DAY\"/\"${date_day}\"/" >> ${file_sed_script}; 56 echo "s/\"@DATE_MONTH\"/\"${date_month}\"/" >> ${file_sed_script}; 57 echo "s/\"@DATE_YEAR\"/\"${date_year}\"/" >> ${file_sed_script}; 58 59 sed -f ${file_sed_script} ${file_sed_src} &> ${file_sed_dest}; 60 61 rm ${file_sed_script}; 62 55 echo "${major_version} ${minor_version} ${revision} ${codename} ${date_day} ${date_month} ${date_year}" > ${file_version}; 56 63 57 svn commit; 64 58 -
trunk/IPs/systemC/processor/Morpheo/TopLevel/src/Morpheo_end_cycle.cpp
r88 r137 19 19 log_begin(Morpheo,FUNCTION); 20 20 21 DEBUG_SIGNAL_END_CYCLE(); 22 21 23 #ifdef STATISTICS 22 24 if (usage_is_set(_usage,USE_STATISTICS)) -
trunk/IPs/systemC/processor/Morpheo/TopLevel/src/Morpheo_signal_handler.cpp
r110 r137 21 21 case SIGALRM : 22 22 { 23 DEBUG_SIGNAL_PRINT(); 24 23 25 throw ERRORMORPHEO(FUNCTION,_("Signal Alarm : can have a combinatory loop.\n")); 24 26 break; -
trunk/Makefile.flags
r136 r137 20 20 #-----[ Flags ]-------------------------------------------- 21 21 MORPHEO_FLAGS = -DSYSTEMC \ 22 -DDEBUG=DEBUG_TRACE \23 22 -DVHDL \ 24 23 -DSTATISTICS 25 24 26 # -DTRANSLATION \ 27 # -DDEBUG_SIGNAL \ 25 # -DPRINT_COLOR \ 26 # -DDEBUG=DEBUG_NONE \ 27 # -DDEBUG_MEMORY_LEAK \ 28 # -DDEBUG_SIGNAL \ 28 29 # -DVHDL_TESTBENCH \ 29 30 # -DVHDL_TESTBENCH_ASSERT \ 30 # -D PRINT_COLOR\31 # -DTRANSLATION \ 31 32 # -DPOSITION \ 32 # -DDEBUG_MEMORY_LEAK \33 33 34 34 # Flags : -
trunk/Makefile.tools
r134 r137 66 66 -Wall \ 67 67 -Wunused \ 68 -m32 68 -m32 \ 69 -pg 69 70 CXX = export LANG=C; $(CC_PREFIX) g++ 70 71 CXX_FLAGS = $(CC_FLAGS_COMMON) -
trunk/Platforms/Test/Makefile
r136 r137 52 52 PATH_BIN = $(MORPHEO_PREFIX)/bin 53 53 PATH_LOG = $(MORPHEO_TMP)/log 54 PATH_GMON = $(MORPHEO_TMP)/gmon 54 55 PATH_DATA = ./data 55 56 PATH_LOGS = $(patsubst $(PATH_DATA)/%,$(PATH_LOG)/%,$(wildcard $(PATH_DATA)/*)) … … 193 194 194 195 195 $(PATH_LOG)/%.log : $(PATH_DATA)/%.cfg $(EXEC) $(PATH_LOGS) 196 $(PATH_LOG)/%.log : $(PATH_DATA)/%.cfg $(EXEC) $(PATH_LOGS) $(PATH_GMON) 196 197 @\ 197 198 file=$$($(BASENAME) $<); \ … … 199 200 log=$@; \ 200 201 $(ECHO) "Run : $*"; \ 201 $(EXEC_PREFIX) $(EXEC) $(EXEC_PARAMS) $${data} &> $$log; \ 202 \ 203 file_gmon=$$($(BASENAME) $*); \ 204 dir_gmon=$$($(DIRNAME) $*); \ 205 $(MKDIR) $(PATH_GMON)/$$dir_gmon; \ 206 export GMON_OUT_PREFIX=$(PATH_GMON)/$$dir_gmon/$$file_gmon;\ 207 \ 208 $(EXEC_PREFIX) $(EXEC) $(EXEC_PARAMS) $${data} &> $$log;\ 202 209 $(GREP) -q "Test OK" $$log; \ 203 210 declare -i test_ok=$$?; \ … … 233 240 $(CXX) $(PLATFORMS_CXX_FLAGS) -c -o $@ $<; 234 241 235 $(PATH_OBJ) $(PATH_BIN) $(PATH_LOGS) :242 $(PATH_OBJ) $(PATH_BIN) $(PATH_LOGS) $(PATH_GMON) : 236 243 @\ 237 244 $(ECHO) "Create directory : $@";\ … … 243 250 @\ 244 251 $(ECHO) "Delete temporary files in directory $(PWD)";\ 245 $(RM) $(OBJECTS) $(EXEC) $(LOGS) \ 246 *~ $(PATH_SRC)/*~ $(PATH_INC)/*~ $(PATH_DATA)/*/*~ *.res *.txt\ 252 $(RM) $(OBJECTS);\ 253 $(RM) $(EXEC);\ 254 $(RM) $(PATH_LOGS); \ 255 $(RM) $(PATH_GMON); \ 256 $(RM) *~ $(PATH_SRC)/*~ $(PATH_INC)/*~ $(PATH_DATA)/*/*~ *.res *.txt\ 247 257 *core* \ 248 258 tty* \ … … 257 267 $(ECHO) "Delete generated files in directory $(PWD)";\ 258 268 $(RM) $(PATH_OBJ) $(PATH_BIN) $(PATH_LOG) $(SCRIPT);\ 259 $(MAKE) --directory=$(PATH_SOFT) 269 $(MAKE) --directory=$(PATH_SOFT) --makefile=Makefile clean_all; \ 260 270 $(MAKE) --directory=$(ENVIRONMENT_DIR) --makefile=Makefile clean_all; \ 261 271 $(MAKE) --directory=$(MORPHEO_DIR) --makefile=Makefile clean_all; -
trunk/Platforms/Test/script/copy_test.sh
r117 r137 7 7 } 8 8 9 if test ${#} -eq 2; then 10 name_src=${1}; 11 name_dest=${2}; 12 elif test ${#} -eq 1; then 13 name_src="x1_w1_0"; 14 name_dest=${1}; 15 else 16 usage ${*}; 17 fi; 9 function copy_test () 10 { 11 # Test usage 12 if test ${#} -eq 2; then 13 name_src=${1}; 14 name_dest=${2}; 15 elif test ${#} -eq 1; then 16 name_src="x1_w1_0"; 17 name_dest=${1}; 18 else 19 usage ${*}; 20 fi; 21 22 # Test directory source 23 if test ! -d ${name_src}; then 24 echo "${name_src} is an invalid directory"; 25 exit; 26 fi; 27 28 # Test directoru dest : if don't exist, create it 29 if test ! -d ${name_dest}; then 30 mkdir ${name_dest}; 31 fi; 32 33 # Copy and sed 34 for i in ${name_src}/*; do 35 sed s/Instance_${name_src}/Instance_${name_dest}/ ${i} > tmp; 36 mv tmp ${name_dest}/$(basename ${i}); 37 done 38 } 18 39 19 if test ! -d ${name_src}; then 20 echo "${name_src} is an invalid directory"; 21 exit; 22 fi; 23 24 if test ! -d ${name_dest}; then 25 mkdir ${name_dest}; 26 fi; 27 28 for i in ${name_src}/*; do 29 sed s/Instance_${name_src}/Instance_${name_dest}/ ${i} > tmp; 30 mv tmp ${name_dest}/$(basename ${i}); 31 done 40 copy_test ${*} -
trunk/Platforms/Test/script/script1.sh
r136 r137 1 2 3 1 prefix=$2; 4 2 suffix=$1; -
trunk/Softwares/Basic_test/Makefile
r100 r137 15 15 DIR_LDSCRIPT = ../Common/ldscript/ 16 16 17 INCDIR = -I$(DIR_INC) -I$(DIR_COMMON_INC) $( NEWLIB_INCDIR)18 LIBDIR = $( NEWLIB_LIBDIR)19 LIBNAME = $( NEWLIB_LIBNAME)17 INCDIR = -I$(DIR_INC) -I$(DIR_COMMON_INC) $($(OS)_INCDIR) 18 LIBDIR = $($(OS)_LIBDIR) 19 LIBNAME = $($(OS)_LIBNAME) 20 20 21 21 #-----[ Files ]------------------------------------------------------------------- -
trunk/Softwares/Dhrystone/Makefile
r130 r137 17 17 DIR_SYS = $(DIR_SRC)/sys 18 18 DIR_INC = $(DIR_SRC)/include 19 DIR_LDSCRIPT = $( NEWLIB)/lib/19 DIR_LDSCRIPT = $($(OS)_DIR_LDSCRIPT) 20 20 21 INCDIR = $( NEWLIB_INCDIR) -I$(DIR_INC)22 LIBDIR = $( NEWLIB_LIBDIR)23 LIBNAME = $( NEWLIB_LIBNAME)21 INCDIR = $($(OS)_INCDIR) -I$(DIR_INC) 22 LIBDIR = $($(OS)_LIBDIR) 23 LIBNAME = $($(OS)_LIBNAME) 24 24 25 25 FLAGS = -DDHRYSTONE_NB_RUNS=$(DHRYSTONE_NB_RUNS) 26 26 27 27 #-----[ Files ]------------------------------------------------------------------- 28 OBJECTS = $( NEWLIB)/lib/*.o\28 OBJECTS = $($(OS)_OBJECTS) \ 29 29 $(patsubst $(DIR_ASM)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_ASM)/*.s)) \ 30 30 $(patsubst $(DIR_SYS)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_SYS)/*.s)) \ -
trunk/Softwares/Makefile.Software
r136 r137 13 13 endif 14 14 15 include $(MORPHEO_TOPLEVEL)/Softwares/Makefile.defs 16 15 17 #-----[ Directory ]--------------------------------------------------------------- 18 16 19 DIR_OBJ = obj 17 20 DIR_BIN = bin … … 19 22 EXE = soft 20 23 21 DIR_COMMON = $(MORPHEO_TOPLEVEL)/Softwares/Common22 DIR_COMMON_C = $(DIR_COMMON)/src/c23 DIR_COMMON_ASM = $(DIR_COMMON)/src/asm24 DIR_COMMON_SYS = $(DIR_COMMON)/src/sys25 DIR_COMMON_INC = $(DIR_COMMON)/include24 DIR_COMMON = $(MORPHEO_TOPLEVEL)/Softwares/Common 25 DIR_COMMON_C = $(DIR_COMMON)/src/c 26 DIR_COMMON_ASM = $(DIR_COMMON)/src/asm 27 DIR_COMMON_SYS = $(DIR_COMMON)/src/sys 28 DIR_COMMON_INC = $(DIR_COMMON)/include 26 29 27 OBJECTS_COMMON = $(patsubst $(DIR_COMMON_SYS)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_COMMON_SYS)/*.s))\28 $(patsubst $(DIR_COMMON_ASM)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_COMMON_ASM)/*.s))\29 $(patsubst $(DIR_COMMON_C)/%.c,$(DIR_OBJ)/%.o,$(wildcard $(DIR_COMMON_C)/*.c))30 OBJECTS_COMMON = $(patsubst $(DIR_COMMON_SYS)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_COMMON_SYS)/*.s))\ 31 $(patsubst $(DIR_COMMON_ASM)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_COMMON_ASM)/*.s))\ 32 $(patsubst $(DIR_COMMON_C)/%.c,$(DIR_OBJ)/%.o,$(wildcard $(DIR_COMMON_C)/*.c)) 30 33 31 34 32 35 #-----[ To the compilation ]------------------------------------------------------ 33 OPTIMIZE = -O3 -std=c99 -fomit-frame-pointer -fdelayed-branch -mror -mcmov -msext -mhard-mul -msoft-div -msoft-float 36 37 #~~~~~[ OS : Newlib ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 38 NEWLIB_DIR_LDSCRIPT = $(NEWLIB)/lib/ 39 #NEWLIB_INCDIR 40 #NEWLIB_LIBDIR 41 #NEWLIB_LIBNAME 42 NEWLIB_OBJECTS = $(NEWLIB)/lib/*.o 43 44 #~~~~~[ OS : UNIX ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 45 UNIX_DIR_LDSCRIPT = 46 UNIX_INCDIR = 47 UNIX_LIBDIR = 48 UNIX_LIBNAME = -lm 49 UNIX_OBJECTS = 50 51 52 #~~~~~[ TARGET : MORPHEO ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 53 54 MORPHEO_OPTIMIZE = -O3 -std=c99 -fomit-frame-pointer -fdelayed-branch -mror -mcmov -msext -mhard-mul -msoft-div -msoft-float 34 55 35 56 #Option : … … 48 69 49 70 # Tools 50 OR32_CC= $(OR1K_BIN)/or32-elf-gcc51 OR32_AS= $(OR1K_BIN)/or32-elf-as52 OR32_LD= $(OR1K_BIN)/or32-elf-ld53 OR32_OBJDUMP = $(OR1K_BIN)/or32-elf-objdump54 OR32_NM = $(OR1K_BIN)/or32-elf-nm71 MORPHEO_CC = $(OR1K_BIN)/or32-elf-gcc 72 MORPHEO_AS = $(OR1K_BIN)/or32-elf-as 73 MORPHEO_LD = $(OR1K_BIN)/or32-elf-ld 74 MORPHEO_OBJDUMP = $(OR1K_BIN)/or32-elf-objdump 75 MORPHEO_NM = $(OR1K_BIN)/or32-elf-nm 55 76 56 77 # Tools's option 57 OR32_CC_OPT = -Wall $(INCDIR) $(OPTIMIZE) -Wlong-long -DMorpheo $(FLAGS)78 MORPHEO_CC_OPT = -Wall $(INCDIR) $(MORPHEO_OPTIMIZE) -Wlong-long -DMorpheo $(FLAGS) 58 79 # -DHAVE_LIBC 59 OR32_AS_OPT = 60 OR32_LD_OPT = -T$(DIR_LDSCRIPT)/or32.ld $(LIBDIR) $(LIBNAME) $(OR1K_LIBDIR) $(OR1K_LIBNAME) 61 OR32_OBJDUMP_OPT = -D 62 OR32_NM_OPT = -n 80 MORPHEO_AS_OPT = 81 MORPHEO_LD_OPT = -T$(DIR_LDSCRIPT)/or32.ld $(LIBDIR) $(LIBNAME) $(OR1K_LIBDIR) $(OR1K_LIBNAME) 82 MORPHEO_OBJDUMP_OPT = -D 83 MORPHEO_NM_OPT = -n 84 85 #~~~~~[ TARGET : x86 ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 86 87 x86_OPTIMIZE = -O3 -std=c99 88 89 x86_CC = gcc 90 x86_AS = as 91 x86_LD = gcc 92 x86_OBJDUMP = objdump 93 x86_NM = nm 94 95 x86_CC_OPT = -Wall $(INCDIR) $(x86_OPTIMIZE) -Wlong-long -DUNIX $(FLAGS) -g3 96 x86_AS_OPT = 97 x86_LD_OPT = $(LIBDIR) $(LIBNAME) -g3 98 x86_OBJDUMP_OPT = -D 99 x86_NM_OPT = -n 63 100 64 101 #-----[ Rules ]------------------------------------------------------------------- … … 77 114 $(MAKE) $(OBJECTS); \ 78 115 $(ECHO) "Linkage : $*.x"; \ 79 $( OR32_LD) -o $@ $(OBJECTS) $(OR32_LD_OPT); \116 $($(TARGET)_LD) -o $@ $(OBJECTS) $($(TARGET)_LD_OPT); \ 80 117 $(ECHO) "List symbols : $*.x.nm"; \ 81 $( OR32_NM) $(OR32_NM_OPT) $@ > $@.nm; \118 $($(TARGET)_NM) $($(TARGET)_NM_OPT) $@ > $@.nm; \ 82 119 $(ECHO) "Display info : $*.x.txt"; \ 83 $( OR32_OBJDUMP) $(OR32_OBJDUMP_OPT) $@ > $@.txt;\120 $($(TARGET)_OBJDUMP) $($(TARGET)_OBJDUMP_OPT) $@ > $@.txt;\ 84 121 echo $($(GREP) "l.jal 0" $@.txt); 85 122 … … 87 124 @\ 88 125 $(ECHO) "Compilation : $*.s"; \ 89 $( OR32_CC) $(OR32_CC_OPT) -o $@ -c $^ ;90 # $( OR32_CC) $(OR32_CC_OPT) -S -o $@.s -c $^ ;126 $($(TARGET)_CC) $($(TARGET)_CC_OPT) -o $@ -c $^ ; 127 # $($(TARGET)_CC) $($(TARGET)_CC_OPT) -S -o $@.s -c $^ ; 91 128 92 129 $(DIR_OBJ)/%.o : %.c 93 130 @\ 94 131 $(ECHO) "Compilation : $*.c"; \ 95 $( OR32_CC) $(OR32_CC_OPT) -o $@ -c $^ ;96 # $( OR32_CC) $(OR32_CC_OPT) -S -o $@.s -c $^ ;132 $($(TARGET)_CC) $($(TARGET)_CC_OPT) -o $@ -c $^ ; 133 # $($(TARGET)_CC) $($(TARGET)_CC_OPT) -S -o $@.s -c $^ ; 97 134 98 135 $(DIR_BIN) $(DIR_OBJ) : -
trunk/Softwares/MiBench/Makefile
r129 r137 17 17 DIR_SYS = $(DIR_SRC)/sys 18 18 DIR_INC = $(DIR_SRC)/include 19 DIR_LDSCRIPT = $( NEWLIB)/lib/19 DIR_LDSCRIPT = $($(OS)_DIR_LDSCRIPT) 20 20 21 INCDIR = $( NEWLIB_INCDIR) -I$(DIR_INC)22 LIBDIR = $( NEWLIB_LIBDIR)23 LIBNAME = $( NEWLIB_LIBNAME)21 INCDIR = $($(OS)_INCDIR) -I$(DIR_INC) 22 LIBDIR = $($(OS)_LIBDIR) 23 LIBNAME = $($(OS)_LIBNAME) 24 24 25 25 MIBENCH_DATA_PATH = $(MORPHEO_TOPLEVEL)/Softwares/MiBench/data … … 28 28 29 29 #-----[ Files ]------------------------------------------------------------------- 30 OBJECTS = $( NEWLIB)/lib/*.o\30 OBJECTS = $($(OS)_OBJECTS) \ 31 31 $(patsubst $(DIR_ASM)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_ASM)/*.s)) \ 32 32 $(patsubst $(DIR_SYS)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_SYS)/*.s)) \ -
trunk/Softwares/MiBench/Makefile.defs
r130 r137 10 10 11 11 BENCHS = \ 12 automative.basicmath\ 13 automative.bitcount \ 14 automative.qsort \ 15 automative.susan \ 16 network.dijkstra \ 17 office.stringsearch \ 18 security.sha \ 12 automative.basicmath \ 13 automative.bitcount \ 14 automative.qsort \ 15 automative.susan \ 16 automative.susan_edges \ 17 automative.susan_corners \ 18 automative.susan_smoothing \ 19 network.dijkstra \ 20 office.stringsearch \ 21 security.sha \ 22 all \ 19 23 none 20 24 21 BENCHS_TYPE = -DMIBENCH_ LARGE25 BENCHS_TYPE = -DMIBENCH_SMALL 22 26 23 27 # MIBENCH_SMALL -
trunk/Softwares/MiBench/src/c/benchmark.c
r129 r137 148 148 free(argv[i]); 149 149 free(argv); 150 free(filename); 150 151 } 151 152 #endif … … 175 176 free(argv[i]); 176 177 free(argv); 178 free(filename); 177 179 } 178 180 #endif … … 193 195 194 196 //======================================================================================= 195 // [ run_automative_susan]196 //======================================================================================= 197 #ifdef MIBENCH_SMALL 198 void main_susan_ small (void)197 // [ run_automative_susan_egdes ] 198 //======================================================================================= 199 #ifdef MIBENCH_SMALL 200 void main_susan_edges_small (void) 199 201 { 200 202 int argc = 4; … … 205 207 char * filename_input = (char *) malloc(strlen(MIBENCH_DATA_PATH)+strlen(_filename_input)); 206 208 strcpy(filename_input,MIBENCH_DATA_PATH); strcat(filename_input,_filename_input); 209 char * filename_output = "output_small.edges.pgm"; 210 char * option = "-e"; 207 211 208 212 argv = (char **)malloc ((argc) * sizeof(char *)); … … 214 218 argv[1] = memcpy(argv[1],filename_input ,strlen(filename_input )); 215 219 216 char * filename_output = "output_small.smoothing.pgm";217 char * option = "-s";218 219 220 argv[2] = (char *) malloc (strlen(filename_output)); 220 221 argv[2] = memcpy(argv[2],filename_output,strlen(filename_output)); … … 225 226 main_susan(argc, argv); 226 227 227 for (int i=2; i<argc; ++i) 228 free(argv[i]); 229 230 filename_output = "output_small.edges.pgm"; 231 option = "-e"; 232 233 argv[2] = (char *) malloc (strlen(filename_output)); 234 argv[2] = memcpy(argv[2],filename_output,strlen(filename_output)); 235 236 argv[3] = (char *) malloc (strlen(option )); 237 argv[3] = memcpy(argv[3],option ,strlen(option )); 238 239 main_susan(argc, argv); 240 241 for (int i=2; i<argc; ++i) 242 free(argv[i]); 243 244 for (int i=2; i<argc; ++i) 245 free(argv[i]); 246 247 filename_output = "output_small.cornes.pgm"; 248 option = "-c"; 249 250 argv[2] = (char *) malloc (strlen(filename_output)); 251 argv[2] = memcpy(argv[2],filename_output,strlen(filename_output)); 252 253 argv[3] = (char *) malloc (strlen(option )); 254 argv[3] = memcpy(argv[3],option ,strlen(option )); 255 256 main_susan(argc, argv); 257 258 for (int i=0; i<argc; ++i) 259 free(argv[i]); 260 free(argv); 261 } 262 #endif 263 264 #ifdef MIBENCH_LARGE 265 void main_susan_large (void) 228 for (int i=0; i<argc; ++i) 229 free(argv[i]); 230 free(argv); 231 free(filename_input); 232 } 233 #endif 234 235 #ifdef MIBENCH_LARGE 236 void main_susan_edges_large (void) 266 237 { 267 238 int argc = 4; … … 272 243 char * filename_input = (char *) malloc(strlen(MIBENCH_DATA_PATH)+strlen(_filename_input)); 273 244 strcpy(filename_input,MIBENCH_DATA_PATH); strcat(filename_input,_filename_input); 245 char * filename_output = "output_large.edges.pgm"; 246 char * option = "-e"; 274 247 275 248 argv = (char **)malloc ((argc) * sizeof(char *)); … … 281 254 argv[1] = memcpy(argv[1],filename_input ,strlen(filename_input )); 282 255 256 argv[2] = (char *) malloc (strlen(filename_output)); 257 argv[2] = memcpy(argv[2],filename_output,strlen(filename_output)); 258 259 argv[3] = (char *) malloc (strlen(option )); 260 argv[3] = memcpy(argv[3],option ,strlen(option )); 261 262 main_susan(argc, argv); 263 264 for (int i=0; i<argc; ++i) 265 free(argv[i]); 266 free(argv); 267 free(filename_input); 268 } 269 #endif 270 271 void run_automative_susan_edges (void) 272 { 273 printf("***** automative.susan.edges - Begin *****\n"); 274 275 #ifdef MIBENCH_SMALL 276 main_susan_edges_small (); 277 #endif 278 #ifdef MIBENCH_LARGE 279 main_susan_edges_large (); 280 #endif 281 282 printf("***** automative.susan.edges - End *****\n"); 283 } 284 285 //======================================================================================= 286 // [ run_automative_susan_corners ] 287 //======================================================================================= 288 #ifdef MIBENCH_SMALL 289 void main_susan_corners_small (void) 290 { 291 int argc = 4; 292 char ** argv; 293 294 char * execname = "./susan"; 295 char *_filename_input = "/susan-input_small.pgm"; 296 char * filename_input = (char *) malloc(strlen(MIBENCH_DATA_PATH)+strlen(_filename_input)); 297 strcpy(filename_input,MIBENCH_DATA_PATH); strcat(filename_input,_filename_input); 298 char * filename_output = "output_small.corners.pgm"; 299 char * option = "-c"; 300 301 argv = (char **)malloc ((argc) * sizeof(char *)); 302 303 argv[0] = (char *) malloc (strlen(execname )); 304 argv[0] = memcpy(argv[0],execname ,strlen(execname )); 305 306 argv[1] = (char *) malloc (strlen(filename_input )); 307 argv[1] = memcpy(argv[1],filename_input ,strlen(filename_input )); 308 309 argv[2] = (char *) malloc (strlen(filename_output)); 310 argv[2] = memcpy(argv[2],filename_output,strlen(filename_output)); 311 312 argv[3] = (char *) malloc (strlen(option )); 313 argv[3] = memcpy(argv[3],option ,strlen(option )); 314 315 main_susan(argc, argv); 316 317 for (int i=0; i<argc; ++i) 318 free(argv[i]); 319 free(argv); 320 free(filename_input); 321 } 322 #endif 323 324 #ifdef MIBENCH_LARGE 325 void main_susan_corners_large (void) 326 { 327 int argc = 4; 328 char ** argv; 329 330 char * execname = "./susan"; 331 char *_filename_input = "/susan-input_large.pgm"; 332 char * filename_input = (char *) malloc(strlen(MIBENCH_DATA_PATH)+strlen(_filename_input)); 333 strcpy(filename_input,MIBENCH_DATA_PATH); strcat(filename_input,_filename_input); 334 char * filename_output = "output_small.corners.pgm"; 335 char * option = "-c"; 336 337 argv = (char **)malloc ((argc) * sizeof(char *)); 338 339 argv[0] = (char *) malloc (strlen(execname )); 340 argv[0] = memcpy(argv[0],execname ,strlen(execname )); 341 342 argv[1] = (char *) malloc (strlen(filename_input )); 343 argv[1] = memcpy(argv[1],filename_input ,strlen(filename_input )); 344 345 argv[2] = (char *) malloc (strlen(filename_output)); 346 argv[2] = memcpy(argv[2],filename_output,strlen(filename_output)); 347 348 argv[3] = (char *) malloc (strlen(option )); 349 argv[3] = memcpy(argv[3],option ,strlen(option )); 350 351 main_susan(argc, argv); 352 353 for (int i=0; i<argc; ++i) 354 free(argv[i]); 355 free(argv); 356 free(filename_input); 357 } 358 #endif 359 360 void run_automative_susan_corners (void) 361 { 362 printf("***** automative.susan.corners - Begin *****\n"); 363 364 #ifdef MIBENCH_SMALL 365 main_susan_corners_small (); 366 #endif 367 #ifdef MIBENCH_LARGE 368 main_susan_corners_large (); 369 #endif 370 371 printf("***** automative.susan.corners - End *****\n"); 372 } 373 374 //======================================================================================= 375 // [ run_automative_susan_smoothing ] 376 //======================================================================================= 377 #ifdef MIBENCH_SMALL 378 void main_susan_smoothing_small (void) 379 { 380 int argc = 4; 381 char ** argv; 382 383 char * execname = "./susan"; 384 char *_filename_input = "/susan-input_small.pgm"; 385 char * filename_input = (char *) malloc(strlen(MIBENCH_DATA_PATH)+strlen(_filename_input)); 386 strcpy(filename_input,MIBENCH_DATA_PATH); strcat(filename_input,_filename_input); 387 char * filename_output = "output_small.smoothing.pgm"; 388 char * option = "-s"; 389 390 argv = (char **)malloc ((argc) * sizeof(char *)); 391 392 argv[0] = (char *) malloc (strlen(execname )); 393 argv[0] = memcpy(argv[0],execname ,strlen(execname )); 394 395 argv[1] = (char *) malloc (strlen(filename_input )); 396 argv[1] = memcpy(argv[1],filename_input ,strlen(filename_input )); 397 398 argv[2] = (char *) malloc (strlen(filename_output)); 399 argv[2] = memcpy(argv[2],filename_output,strlen(filename_output)); 400 401 argv[3] = (char *) malloc (strlen(option )); 402 argv[3] = memcpy(argv[3],option ,strlen(option )); 403 404 main_susan(argc, argv); 405 406 for (int i=0; i<argc; ++i) 407 free(argv[i]); 408 free(argv); 409 free(filename_input); 410 } 411 #endif 412 413 #ifdef MIBENCH_LARGE 414 void main_susan_smoothing_large (void) 415 { 416 int argc = 4; 417 char ** argv; 418 419 char * execname = "./susan"; 420 char *_filename_input = "/susan-input_large.pgm"; 421 char * filename_input = (char *) malloc(strlen(MIBENCH_DATA_PATH)+strlen(_filename_input)); 422 strcpy(filename_input,MIBENCH_DATA_PATH); strcat(filename_input,_filename_input); 283 423 char * filename_output = "output_large.smoothing.pgm"; 284 424 char * option = "-s"; 285 425 426 argv = (char **)malloc ((argc) * sizeof(char *)); 427 428 argv[0] = (char *) malloc (strlen(execname )); 429 argv[0] = memcpy(argv[0],execname ,strlen(execname )); 430 431 argv[1] = (char *) malloc (strlen(filename_input )); 432 argv[1] = memcpy(argv[1],filename_input ,strlen(filename_input )); 286 433 argv[2] = (char *) malloc (strlen(filename_output)); 287 434 argv[2] = memcpy(argv[2],filename_output,strlen(filename_output)); … … 291 438 292 439 main_susan(argc, argv); 293 294 for (int i=2; i<argc; ++i) 295 free(argv[i]); 296 297 filename_output = "output_large.edges.pgm"; 298 option = "-e"; 299 300 argv[2] = (char *) malloc (strlen(filename_output)); 301 argv[2] = memcpy(argv[2],filename_output,strlen(filename_output)); 302 303 argv[3] = (char *) malloc (strlen(option )); 304 argv[3] = memcpy(argv[3],option ,strlen(option )); 305 306 main_susan(argc, argv); 307 308 for (int i=2; i<argc; ++i) 309 free(argv[i]); 310 311 for (int i=2; i<argc; ++i) 312 free(argv[i]); 313 314 filename_output = "output_large.cornes.pgm"; 315 option = "-c"; 316 317 argv[2] = (char *) malloc (strlen(filename_output)); 318 argv[2] = memcpy(argv[2],filename_output,strlen(filename_output)); 319 320 argv[3] = (char *) malloc (strlen(option )); 321 argv[3] = memcpy(argv[3],option ,strlen(option )); 322 323 main_susan(argc, argv); 324 325 for (int i=0; i<argc; ++i) 326 free(argv[i]); 327 free(argv); 328 } 329 #endif 440 441 for (int i=0; i<argc; ++i) 442 free(argv[i]); 443 free(argv); 444 free(filename_input); 445 } 446 #endif 447 448 void run_automative_susan_smoothing (void) 449 { 450 printf("***** automative.susan.smoothing - Begin *****\n"); 451 452 #ifdef MIBENCH_SMALL 453 main_susan_smoothing_small (); 454 #endif 455 #ifdef MIBENCH_LARGE 456 main_susan_smoothing_large (); 457 #endif 458 459 printf("***** automative.susan.smoothing - End *****\n"); 460 } 461 462 //======================================================================================= 463 // [ run_automative_susan ] 464 //======================================================================================= 330 465 331 466 void run_automative_susan (void) … … 333 468 printf("***** automative.susan - Begin *****\n"); 334 469 335 #ifdef MIBENCH_SMALL 336 main_susan_small (); 337 #endif 338 #ifdef MIBENCH_LARGE 339 main_susan_large (); 340 #endif 470 run_automative_susan_edges (); 471 run_automative_susan_corners (); 472 run_automative_susan_smoothing (); 473 474 /* 475 #ifdef MIBENCH_SMALL 476 main_susan_edges_small (); 477 main_susan_corners_small (); 478 main_susan_smoothing_small (); 479 #endif 480 #ifdef MIBENCH_LARGE 481 main_susan_edges_large (); 482 main_susan_corners_large (); 483 main_susan_smoothing_large (); 484 #endif 485 */ 341 486 342 487 printf("***** automative.susan - End *****\n"); … … 376 521 free(argv[i]); 377 522 free(argv); 523 free(filename); 378 524 } 379 525 #endif … … 409 555 free(argv[i]); 410 556 free(argv); 557 free(filename); 411 558 } 412 559 #endif … … 470 617 free(argv[i]); 471 618 free(argv); 619 free(filename); 472 620 } 473 621 #endif … … 497 645 free(argv[i]); 498 646 free(argv); 647 free(filename); 499 648 } 500 649 #endif … … 513 662 printf("***** security.sha - End *****\n"); 514 663 } 664 665 666 //======================================================================================= 667 // [ run_all ] 668 //======================================================================================= 669 void run_all (void) 670 { 671 printf("***** all *****\n"); 672 673 run_automative_basicmath (); 674 run_automative_bitcount (); 675 run_automative_qsort (); 676 run_automative_susan_edges (); 677 run_automative_susan_corners (); 678 run_automative_susan_smoothing (); 679 680 run_network_dijkstra (); 681 682 run_office_stringsearch (); 683 684 run_security_sha (); 685 686 return; 687 } -
trunk/Softwares/MiBench/src/c/main.c
r117 r137 16 16 int main() 17 17 { 18 #ifdef Morpheo 18 19 int pid = (int)getpid(); 19 20 … … 25 26 else 26 27 printf("The number of function in the workload is %d. (maximum of thread is : %d)\n",(int)NB_WORKLOAD,NB_THREAD_MAX); 27 28 #endif 29 30 #ifdef UNIX 31 for (int i=0; i<(int)NB_WORKLOAD; ++i) 32 (*WorkLoad[i])(); 33 #endif 34 28 35 exit (0); 29 36 -
trunk/Softwares/MiBench/src/include/benchmark.h
r124 r137 4 4 #define benchmark_h 5 5 6 void run_none (void); 6 void run_none (void); 7 void run_all (void); 8 9 void run_automative_basicmath (void); 10 void run_automative_bitcount (void); 11 void run_automative_qsort (void); 12 void run_automative_susan (void); 13 void run_automative_susan_edges (void); 14 void run_automative_susan_corners (void); 15 void run_automative_susan_smoothing (void); 7 16 8 void run_automative_basicmath (void); 9 void run_automative_bitcount (void); 10 void run_automative_qsort (void); 11 void run_automative_susan (void); 12 13 void run_network_dijkstra (void); 14 15 void run_office_stringsearch (void); 16 17 void run_security_sha (void); 17 void run_network_dijkstra (void); 18 19 void run_office_stringsearch (void); 20 21 void run_security_sha (void); 18 22 19 23 #endif // benchmark_h -
trunk/Softwares/MiBench/src/include/workload.h
r124 r137 12 12 void (*WorkLoad[])() = 13 13 { 14 (void *) run_ security_sha14 (void *) run_automative_susan 15 15 }; 16 16 -
trunk/Softwares/MiBench/workload.sh
r124 r137 1 echo -e "1\n 1\n2\n3\n4\n5\n6\n7\n0\n" | make -s workload1 echo -e "1\n4\n0\n" | make -s workload -
trunk/Softwares/MiBench/workload.txt
r124 r137 1 soft_0.x : automative_basicmath 2 soft_1.x : automative_bitcount 3 soft_2.x : automative_qsort 4 soft_3.x : automative_susan 5 soft_4.x : network_dijkstra 6 soft_5.x : office_stringsearch 7 soft_6.x : security_sha 1 soft_0.x : automative_susan -
trunk/Softwares/SPECINT2000/Makefile
r124 r137 27 27 DIR_SYS = $(DIR_SRC)/sys 28 28 DIR_INC = $(DIR_SRC)/include 29 DIR_LDSCRIPT = $( NEWLIB)/lib/29 DIR_LDSCRIPT = $($(OS)_DIR_LDSCRIPT) 30 30 31 INCDIR = $( NEWLIB_INCDIR) -I$(DIR_INC)32 LIBDIR = $( NEWLIB_LIBDIR)33 LIBNAME = $( NEWLIB_LIBNAME)31 INCDIR = $($(OS)_INCDIR) -I$(DIR_INC) 32 LIBDIR = $($(OS)_LIBDIR) 33 LIBNAME = $($(OS)_LIBNAME) 34 34 35 35 #-----[ Flags ]------------------------------------------------------------------- … … 51 51 52 52 #-----[ Files ]------------------------------------------------------------------- 53 OBJECTS = $( NEWLIB)/lib/*.o\53 OBJECTS = $($(OS)_OBJECTS) \ 54 54 $(patsubst $(DIR_ASM)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_ASM)/*.s)) \ 55 55 $(patsubst $(DIR_SYS)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_SYS)/*.s)) \ … … 66 66 @\ 67 67 $(ECHO) "Compilation : $*.c"; \ 68 $( OR32_CC) $(OR32_CC_OPT) $(FLAGS_164.gzip) -o $@ -c $^ ;68 $($(TARGET)_CC) $($(TARGET)_CC_OPT) $(FLAGS_164.gzip) -o $@ -c $^ ; 69 69 70 70 $(DIR_OBJ)/175.vpr_%.o : $(SPECINT2000_PATH)/175.vpr/src/%.c 71 71 @\ 72 72 $(ECHO) "Compilation : $*.c"; \ 73 $( OR32_CC) $(OR32_CC_OPT) $(FLAGS_175.vpr) -o $@ -c $^ ;73 $($(TARGET)_CC) $($(TARGET)_CC_OPT) $(FLAGS_175.vpr) -o $@ -c $^ ; 74 74 75 75 $(DIR_OBJ)/176.gcc_%.o : $(SPECINT2000_PATH)/176.gcc/src/%.c 76 76 @\ 77 77 $(ECHO) "Compilation : $*.c"; \ 78 $( OR32_CC) $(OR32_CC_OPT) $(FLAGS_176.gcc) -o $@ -c $^ ;78 $($(TARGET)_CC) $($(TARGET)_CC_OPT) $(FLAGS_176.gcc) -o $@ -c $^ ; 79 79 80 80 $(DIR_OBJ)/181.mcf_%.o : $(SPECINT2000_PATH)/181.mcf/src/%.c 81 81 @\ 82 82 $(ECHO) "Compilation : $*.c"; \ 83 $( OR32_CC) $(OR32_CC_OPT) $(FLAGS_181.mcf) -o $@ -c $^ ;83 $($(TARGET)_CC) $($(TARGET)_CC_OPT) $(FLAGS_181.mcf) -o $@ -c $^ ; 84 84 85 85 $(DIR_OBJ)/186.crafty_%.o : $(SPECINT2000_PATH)/186.crafty/src/%.c 86 86 @\ 87 87 $(ECHO) "Compilation : $*.c"; \ 88 $( OR32_CC) $(OR32_CC_OPT) $(FLAGS_186.crafty) -o $@ -c $^ ;88 $($(TARGET)_CC) $($(TARGET)_CC_OPT) $(FLAGS_186.crafty) -o $@ -c $^ ; 89 89 90 90 $(DIR_OBJ)/255.vortex_%.o : $(SPECINT2000_PATH)/255.vortex/src/%.c 91 91 @\ 92 92 $(ECHO) "Compilation : $*.c"; \ 93 $( OR32_CC) $(OR32_CC_OPT) $(FLAGS_255.vortex) -o $@ -c $^ ;93 $($(TARGET)_CC) $($(TARGET)_CC_OPT) $(FLAGS_255.vortex) -o $@ -c $^ ; 94 94 95 95 $(DIR_OBJ)/197.parser_%.o : $(SPECINT2000_PATH)/197.parser/src/%.c 96 96 @\ 97 97 $(ECHO) "Compilation : $*.c"; \ 98 $( OR32_CC) $(OR32_CC_OPT) $(FLAGS_197.parser) -o $@ -c $^ ;98 $($(TARGET)_CC) $($(TARGET)_CC_OPT) $(FLAGS_197.parser) -o $@ -c $^ ; 99 99 100 100 $(DIR_OBJ)/252.eon_%.o : $(SPECINT2000_PATH)/252.eon/src/%.c 101 101 @\ 102 102 $(ECHO) "Compilation : $*.c"; \ 103 $( OR32_CC) $(OR32_CC_OPT) $(FLAGS_252.eon) -o $@ -c $^ ;103 $($(TARGET)_CC) $($(TARGET)_CC_OPT) $(FLAGS_252.eon) -o $@ -c $^ ; 104 104 105 105 $(DIR_OBJ)/253.perlbmk_%.o : $(SPECINT2000_PATH)/253.perlbmk/src/%.c 106 106 @\ 107 107 $(ECHO) "Compilation : $*.c"; \ 108 $( OR32_CC) $(OR32_CC_OPT) $(FLAGS_253.perlbmk) -o $@ -c $^ ;108 $($(TARGET)_CC) $($(TARGET)_CC_OPT) $(FLAGS_253.perlbmk) -o $@ -c $^ ; 109 109 110 110 $(DIR_OBJ)/254.gap_%.o : $(SPECINT2000_PATH)/254.gap/src/%.c 111 111 @\ 112 112 $(ECHO) "Compilation : $*.c"; \ 113 $( OR32_CC) $(OR32_CC_OPT) $(FLAGS_254.gap) -o $@ -c $^ ;113 $($(TARGET)_CC) $($(TARGET)_CC_OPT) $(FLAGS_254.gap) -o $@ -c $^ ; 114 114 115 115 $(DIR_OBJ)/256.bzip2_%.o : $(SPECINT2000_PATH)/256.bzip2/src/%.c 116 116 @\ 117 117 $(ECHO) "Compilation : $*.c"; \ 118 $( OR32_CC) $(OR32_CC_OPT) $(FLAGS_256.bzip2) -o $@ -c $^ ;118 $($(TARGET)_CC) $($(TARGET)_CC_OPT) $(FLAGS_256.bzip2) -o $@ -c $^ ; 119 119 120 120 $(DIR_OBJ)/300.twolf_%.o : $(SPECINT2000_PATH)/300.twolf/src/%.c 121 121 @\ 122 122 $(ECHO) "Compilation : $*.c"; \ 123 $( OR32_CC) $(OR32_CC_OPT) $(FLAGS_300.twolf) -o $@ -c $^ ;123 $($(TARGET)_CC) $($(TARGET)_CC_OPT) $(FLAGS_300.twolf) -o $@ -c $^ ; -
trunk/Softwares/Test/Test_065/Makefile
r111 r137 16 16 DIR_SYS = $(DIR_SRC)/sys 17 17 DIR_INC = $(DIR_SRC)/include 18 DIR_LDSCRIPT = $( NEWLIB)/lib/18 DIR_LDSCRIPT = $($(OS)_DIR_LDSCRIPT) 19 19 20 INCDIR = $( NEWLIB_INCDIR) -I$(DIR_INC)21 LIBDIR = $( NEWLIB_LIBDIR)22 LIBNAME = $( NEWLIB_LIBNAME)20 INCDIR = $($(OS)_INCDIR) -I$(DIR_INC) 21 LIBDIR = $($(OS)_LIBDIR) 22 LIBNAME = $($(OS)_LIBNAME) 23 23 24 24 #-----[ Files ]------------------------------------------------------------------- 25 OBJECTS = $( NEWLIB)/lib/*.o\25 OBJECTS = $($(OS)_OBJECTS) \ 26 26 $(patsubst $(DIR_ASM)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_ASM)/*.s)) \ 27 27 $(patsubst $(DIR_SYS)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_SYS)/*.s)) \ -
trunk/Softwares/Test/Test_066/Makefile
r111 r137 16 16 DIR_SYS = $(DIR_SRC)/sys 17 17 DIR_INC = $(DIR_SRC)/include 18 DIR_LDSCRIPT = $( NEWLIB)/lib/18 DIR_LDSCRIPT = $($(OS)_DIR_LDSCRIPT) 19 19 20 INCDIR = $( NEWLIB_INCDIR) -I$(DIR_INC)21 LIBDIR = $( NEWLIB_LIBDIR)22 LIBNAME = $( NEWLIB_LIBNAME)20 INCDIR = $($(OS)_INCDIR) -I$(DIR_INC) 21 LIBDIR = $($(OS)_LIBDIR) 22 LIBNAME = $($(OS)_LIBNAME) 23 23 24 24 #-----[ Files ]------------------------------------------------------------------- 25 OBJECTS = $( NEWLIB)/lib/*.o\25 OBJECTS = $($(OS)_OBJECTS) \ 26 26 $(patsubst $(DIR_ASM)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_ASM)/*.s)) \ 27 27 $(patsubst $(DIR_SYS)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_SYS)/*.s)) \ -
trunk/Softwares/Test/Test_067/Makefile
r112 r137 16 16 DIR_SYS = $(DIR_SRC)/sys 17 17 DIR_INC = $(DIR_SRC)/include 18 DIR_LDSCRIPT = $( NEWLIB)/lib/18 DIR_LDSCRIPT = $($(OS)_DIR_LDSCRIPT) 19 19 20 INCDIR = $( NEWLIB_INCDIR) -I$(DIR_INC)21 LIBDIR = $( NEWLIB_LIBDIR)22 LIBNAME = $( NEWLIB_LIBNAME)20 INCDIR = $($(OS)_INCDIR) -I$(DIR_INC) 21 LIBDIR = $($(OS)_LIBDIR) 22 LIBNAME = $($(OS)_LIBNAME) 23 23 24 24 #-----[ Files ]------------------------------------------------------------------- 25 OBJECTS = $( NEWLIB)/lib/*.o\25 OBJECTS = $($(OS)_OBJECTS) \ 26 26 $(patsubst $(DIR_ASM)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_ASM)/*.s)) \ 27 27 $(patsubst $(DIR_SYS)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_SYS)/*.s)) \ -
trunk/Softwares/Test/Test_068/Makefile
r114 r137 16 16 DIR_SYS = $(DIR_SRC)/sys 17 17 DIR_INC = $(DIR_SRC)/include 18 DIR_LDSCRIPT = $( NEWLIB)/lib/18 DIR_LDSCRIPT = $($(OS)_DIR_LDSCRIPT) 19 19 20 INCDIR = $( NEWLIB_INCDIR) -I$(DIR_INC)21 LIBDIR = $( NEWLIB_LIBDIR)22 LIBNAME = $( NEWLIB_LIBNAME)20 INCDIR = $($(OS)_INCDIR) -I$(DIR_INC) 21 LIBDIR = $($(OS)_LIBDIR) 22 LIBNAME = $($(OS)_LIBNAME) 23 23 24 24 #-----[ Files ]------------------------------------------------------------------- 25 OBJECTS = $( NEWLIB)/lib/*.o\25 OBJECTS = $($(OS)_OBJECTS) \ 26 26 $(patsubst $(DIR_ASM)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_ASM)/*.s)) \ 27 27 $(patsubst $(DIR_SYS)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_SYS)/*.s)) \ -
trunk/Softwares/Test/Test_069/Makefile
r114 r137 16 16 DIR_SYS = $(DIR_SRC)/sys 17 17 DIR_INC = $(DIR_SRC)/include 18 DIR_LDSCRIPT = $( NEWLIB)/lib/18 DIR_LDSCRIPT = $($(OS)_DIR_LDSCRIPT) 19 19 20 INCDIR = $( NEWLIB_INCDIR) -I$(DIR_INC)21 LIBDIR = $( NEWLIB_LIBDIR)22 LIBNAME = $( NEWLIB_LIBNAME)20 INCDIR = $($(OS)_INCDIR) -I$(DIR_INC) 21 LIBDIR = $($(OS)_LIBDIR) 22 LIBNAME = $($(OS)_LIBNAME) 23 23 24 24 #-----[ Files ]------------------------------------------------------------------- 25 OBJECTS = $( NEWLIB)/lib/*.o\25 OBJECTS = $($(OS)_OBJECTS) \ 26 26 $(patsubst $(DIR_ASM)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_ASM)/*.s)) \ 27 27 $(patsubst $(DIR_SYS)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_SYS)/*.s)) \ -
trunk/Softwares/Test/Test_070/Makefile
r114 r137 16 16 DIR_SYS = $(DIR_SRC)/sys 17 17 DIR_INC = $(DIR_SRC)/include 18 DIR_LDSCRIPT = $( NEWLIB)/lib/18 DIR_LDSCRIPT = $($(OS)_DIR_LDSCRIPT) 19 19 20 INCDIR = $( NEWLIB_INCDIR) -I$(DIR_INC)21 LIBDIR = $( NEWLIB_LIBDIR)22 LIBNAME = $( NEWLIB_LIBNAME)20 INCDIR = $($(OS)_INCDIR) -I$(DIR_INC) 21 LIBDIR = $($(OS)_LIBDIR) 22 LIBNAME = $($(OS)_LIBNAME) 23 23 24 24 #-----[ Files ]------------------------------------------------------------------- 25 OBJECTS = $( NEWLIB)/lib/*.o\25 OBJECTS = $($(OS)_OBJECTS) \ 26 26 $(patsubst $(DIR_ASM)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_ASM)/*.s)) \ 27 27 $(patsubst $(DIR_SYS)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_SYS)/*.s)) \ -
trunk/Softwares/Test/Test_073/Makefile
r119 r137 16 16 DIR_SYS = $(DIR_SRC)/sys 17 17 DIR_INC = $(DIR_SRC)/include 18 DIR_LDSCRIPT = $( NEWLIB)/lib/18 DIR_LDSCRIPT = $($(OS)_DIR_LDSCRIPT) 19 19 20 INCDIR = $( NEWLIB_INCDIR) -I$(DIR_INC)21 LIBDIR = $( NEWLIB_LIBDIR)22 LIBNAME = $( NEWLIB_LIBNAME)20 INCDIR = $($(OS)_INCDIR) -I$(DIR_INC) 21 LIBDIR = $($(OS)_LIBDIR) 22 LIBNAME = $($(OS)_LIBNAME) 23 23 24 24 #-----[ Files ]------------------------------------------------------------------- 25 OBJECTS = $( NEWLIB)/lib/*.o\25 OBJECTS = $($(OS)_OBJECTS) \ 26 26 $(patsubst $(DIR_ASM)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_ASM)/*.s)) \ 27 27 $(patsubst $(DIR_SYS)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_SYS)/*.s)) \ -
trunk/Softwares/Test/Test_x000/Makefile
r117 r137 16 16 DIR_SYS = $(DIR_SRC)/sys 17 17 DIR_INC = $(DIR_SRC)/include 18 DIR_LDSCRIPT = $( NEWLIB)/lib/18 DIR_LDSCRIPT = $($(OS)_DIR_LDSCRIPT) 19 19 20 INCDIR = $( NEWLIB_INCDIR) -I$(DIR_INC)21 LIBDIR = $( NEWLIB_LIBDIR)22 LIBNAME = $( NEWLIB_LIBNAME)20 INCDIR = $($(OS)_INCDIR) -I$(DIR_INC) 21 LIBDIR = $($(OS)_LIBDIR) 22 LIBNAME = $($(OS)_LIBNAME) 23 23 24 24 #-----[ Files ]------------------------------------------------------------------- 25 OBJECTS = $( NEWLIB)/lib/*.o\25 OBJECTS = $($(OS)_OBJECTS) \ 26 26 $(patsubst $(DIR_ASM)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_ASM)/*.s)) \ 27 27 $(patsubst $(DIR_SYS)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_SYS)/*.s)) \ -
trunk/Softwares/Test/Test_x001/Makefile
r117 r137 16 16 DIR_SYS = $(DIR_SRC)/sys 17 17 DIR_INC = $(DIR_SRC)/include 18 DIR_LDSCRIPT = $( NEWLIB)/lib/18 DIR_LDSCRIPT = $($(OS)_DIR_LDSCRIPT) 19 19 20 INCDIR = $( NEWLIB_INCDIR) -I$(DIR_INC)21 LIBDIR = $( NEWLIB_LIBDIR)22 LIBNAME = $( NEWLIB_LIBNAME)20 INCDIR = $($(OS)_INCDIR) -I$(DIR_INC) 21 LIBDIR = $($(OS)_LIBDIR) 22 LIBNAME = $($(OS)_LIBNAME) 23 23 24 24 #-----[ Files ]------------------------------------------------------------------- 25 OBJECTS = $( NEWLIB)/lib/*.o\25 OBJECTS = $($(OS)_OBJECTS) \ 26 26 $(patsubst $(DIR_ASM)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_ASM)/*.s)) \ 27 27 $(patsubst $(DIR_SYS)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_SYS)/*.s)) \ -
trunk/Softwares/Test/Test_x002/Makefile
r117 r137 16 16 DIR_SYS = $(DIR_SRC)/sys 17 17 DIR_INC = $(DIR_SRC)/include 18 DIR_LDSCRIPT = $( NEWLIB)/lib/18 DIR_LDSCRIPT = $($(OS)_DIR_LDSCRIPT) 19 19 20 INCDIR = $( NEWLIB_INCDIR) -I$(DIR_INC)21 LIBDIR = $( NEWLIB_LIBDIR)22 LIBNAME = $( NEWLIB_LIBNAME)20 INCDIR = $($(OS)_INCDIR) -I$(DIR_INC) 21 LIBDIR = $($(OS)_LIBDIR) 22 LIBNAME = $($(OS)_LIBNAME) 23 23 24 24 #-----[ Files ]------------------------------------------------------------------- 25 OBJECTS = $( NEWLIB)/lib/*.o\25 OBJECTS = $($(OS)_OBJECTS) \ 26 26 $(patsubst $(DIR_ASM)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_ASM)/*.s)) \ 27 27 $(patsubst $(DIR_SYS)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_SYS)/*.s)) \ -
trunk/Softwares/Test/Test_x003/Makefile
r117 r137 16 16 DIR_SYS = $(DIR_SRC)/sys 17 17 DIR_INC = $(DIR_SRC)/include 18 DIR_LDSCRIPT = $( NEWLIB)/lib/18 DIR_LDSCRIPT = $($(OS)_DIR_LDSCRIPT) 19 19 20 INCDIR = $( NEWLIB_INCDIR) -I$(DIR_INC)21 LIBDIR = $( NEWLIB_LIBDIR)22 LIBNAME = $( NEWLIB_LIBNAME)20 INCDIR = $($(OS)_INCDIR) -I$(DIR_INC) 21 LIBDIR = $($(OS)_LIBDIR) 22 LIBNAME = $($(OS)_LIBNAME) 23 23 24 24 #-----[ Files ]------------------------------------------------------------------- 25 OBJECTS = $( NEWLIB)/lib/*.o\25 OBJECTS = $($(OS)_OBJECTS) \ 26 26 $(patsubst $(DIR_ASM)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_ASM)/*.s)) \ 27 27 $(patsubst $(DIR_SYS)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_SYS)/*.s)) \ -
trunk/Softwares/Test/Test_x004/Makefile
r117 r137 16 16 DIR_SYS = $(DIR_SRC)/sys 17 17 DIR_INC = $(DIR_SRC)/include 18 DIR_LDSCRIPT = $( NEWLIB)/lib/18 DIR_LDSCRIPT = $($(OS)_DIR_LDSCRIPT) 19 19 20 INCDIR = $( NEWLIB_INCDIR) -I$(DIR_INC)21 LIBDIR = $( NEWLIB_LIBDIR)22 LIBNAME = $( NEWLIB_LIBNAME)20 INCDIR = $($(OS)_INCDIR) -I$(DIR_INC) 21 LIBDIR = $($(OS)_LIBDIR) 22 LIBNAME = $($(OS)_LIBNAME) 23 23 24 24 #-----[ Files ]------------------------------------------------------------------- 25 OBJECTS = $( NEWLIB)/lib/*.o\25 OBJECTS = $($(OS)_OBJECTS) \ 26 26 $(patsubst $(DIR_ASM)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_ASM)/*.s)) \ 27 27 $(patsubst $(DIR_SYS)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_SYS)/*.s)) \ -
trunk/Softwares/Test/Test_x005/Makefile
r117 r137 16 16 DIR_SYS = $(DIR_SRC)/sys 17 17 DIR_INC = $(DIR_SRC)/include 18 DIR_LDSCRIPT = $( NEWLIB)/lib/18 DIR_LDSCRIPT = $($(OS)_DIR_LDSCRIPT) 19 19 20 INCDIR = $( NEWLIB_INCDIR) -I$(DIR_INC)21 LIBDIR = $( NEWLIB_LIBDIR)22 LIBNAME = $( NEWLIB_LIBNAME)20 INCDIR = $($(OS)_INCDIR) -I$(DIR_INC) 21 LIBDIR = $($(OS)_LIBDIR) 22 LIBNAME = $($(OS)_LIBNAME) 23 23 24 24 #-----[ Files ]------------------------------------------------------------------- 25 OBJECTS = $( NEWLIB)/lib/*.o\25 OBJECTS = $($(OS)_OBJECTS) \ 26 26 $(patsubst $(DIR_ASM)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_ASM)/*.s)) \ 27 27 $(patsubst $(DIR_SYS)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_SYS)/*.s)) \ -
trunk/Softwares/Test/Test_x006/Makefile
r117 r137 16 16 DIR_SYS = $(DIR_SRC)/sys 17 17 DIR_INC = $(DIR_SRC)/include 18 DIR_LDSCRIPT = $( NEWLIB)/lib/18 DIR_LDSCRIPT = $($(OS)_DIR_LDSCRIPT) 19 19 20 INCDIR = $( NEWLIB_INCDIR) -I$(DIR_INC)21 LIBDIR = $( NEWLIB_LIBDIR)22 LIBNAME = $( NEWLIB_LIBNAME)20 INCDIR = $($(OS)_INCDIR) -I$(DIR_INC) 21 LIBDIR = $($(OS)_LIBDIR) 22 LIBNAME = $($(OS)_LIBNAME) 23 23 24 24 #-----[ Files ]------------------------------------------------------------------- 25 OBJECTS = $( NEWLIB)/lib/*.o\25 OBJECTS = $($(OS)_OBJECTS) \ 26 26 $(patsubst $(DIR_ASM)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_ASM)/*.s)) \ 27 27 $(patsubst $(DIR_SYS)/%.s,$(DIR_OBJ)/%.o,$(wildcard $(DIR_SYS)/*.s)) \ -
trunk/environment.sh
r134 r137 1 1 #!/bin/sh 2 2 3 declare OS_FOUND=`uname -s`-`uname -m | sed -e 's/i[0-9]/iX/' -e 's/sun4./sun4X/'`3 declare localization="labs_network"; 4 4 5 case ${OS_FOUND} in 6 # "SunOS-sun4X") 7 # export TARGET_ARCH=gccsparcOS5 8 # export EXE_SUFFIX= 9 # ;; 10 "Linux-iX86") 11 export TARGET_ARCH=linux 12 export EXE_SUFFIX= 13 ;; 14 # "FreeBSD-iX86") 15 # export TARGET_ARCH=freebsd 16 # export EXE_SUFFIX= 17 # ;; 18 # "CYGWIN_NT-5.1-iX86") 19 # export TARGET_ARCH=cygwin 20 # export EXE_SUFFIX=.exe 21 # ;; 22 *) 23 echo "Unknown OS found" 24 esac 5 #-----[ environment_usage ]-------------------------------- 6 function environment_usage () 7 { 8 echo "Usage : ${0} [localization]"; 9 exit; 10 } 25 11 26 # Export environement27 export MORPHEO_LOCALIZATION="labs_network"; 28 export MORPHEO_TOPLEVEL=${PWD}; 29 export MORPHEO_SCRIPT=${MORPHEO_TOPLEVEL}/IPs/systemC/processor/Morpheo/Script; 30 export MORPHEO_HOME=${HOME}/.Morpheo;31 MORPHEO_XTTY=${MORPHEO_TOPLEVEL}/IPs/systemC/Environment/TTY/xtty;12 #-----[ environment_test_usage ]---------------------------- 13 function environment_test_usage () 14 { 15 if test ${#} -ne 1 -a ${#} -ne 0; then 16 environment_usage; 17 fi; 32 18 33 case ${MORPHEO_LOCALIZATION} in 34 "labs_network") 35 export MORPHEO_PREFIX=/users/chaos/kane/Morpheo; 36 export MORPHEO_TMP=${MORPHEO_PREFIX}; 37 ;; 38 "labs_local") 39 export MORPHEO_PREFIX=/dsk/l1/misc/Morpheo; 40 export MORPHEO_TMP=${MORPHEO_PREFIX}; 41 ;; 42 "home") 43 export MORPHEO_PREFIX=${HOME}/tmp/Morpheo; 44 export MORPHEO_TMP=${MORPHEO_PREFIX}; 45 ;; 46 *) 47 echo "Bad localization : \"${MORPHEO_LOCALIZATION}\""; 48 ;; 49 esac 19 if test ${#} -eq 1; then 20 localization=${1}; 50 21 51 echo "" 52 echo "OS found : ${OS_FOUND}" 53 echo "" 54 echo "Modification of environement's variable :" 55 echo " - MORPHEO_LOCALIZATION is set to ${MORPHEO_LOCALIZATION}" 56 echo " - MORPHEO_TOPLEVEL is set to ${MORPHEO_TOPLEVEL}" 57 echo " - MORPHEO_SCRIPT is set to ${MORPHEO_SCRIPT}" 58 echo " - MORPHEO_HOME is set to ${MORPHEO_HOME}" 59 echo " - MORPHEO_PREFIX is set to ${MORPHEO_PREFIX}" 60 echo " - MORPHEO_TMP is set to ${MORPHEO_TMP}" 22 # else : default localization 23 fi; 24 } 61 25 62 #----- -----63 # Path : add xtty and script directory. 64 # test if already in path : no multiple addition 65 #---------- 26 #-----[ environment_version ]------------------------------ 27 function environment_version () 28 { 29 version=$(cat ${MORPHEO_TOPLEVEL}/Version); 66 30 67 echo ${PATH} |grep -q ${MORPHEO_SCRIPT}; 68 if test $? -eq 1; then 69 export PATH=${PATH}:${MORPHEO_SCRIPT} 70 echo " - PATH add ${MORPHEO_SCRIPT}" 71 fi; 31 export MORPHEO_MAJOR_VERSION=$(echo ${version} | cut -d ' ' -f 1); 32 export MORPHEO_MINOR_VERSION=$(echo ${version} | cut -d ' ' -f 2); 33 export MORPHEO_REVISION=$( echo ${version} | cut -d ' ' -f 3); 34 export MORPHEO_CODENAME=$( echo ${version} | cut -d ' ' -f 4); 35 36 export MORPHEO_DATE_DAY=$( echo ${version} | cut -d ' ' -f 5); 37 export MORPHEO_DATE_MONTH=$( echo ${version} | cut -d ' ' -f 6); 38 export MORPHEO_DATE_YEAR=$( echo ${version} | cut -d ' ' -f 7); 72 39 73 echo ${PATH} |grep -q ${MORPHEO_XTTY};74 40 75 if test $? -eq 1; then 76 export PATH=${PATH}:${MORPHEO_XTTY} 77 echo " - PATH add ${MORPHEO_XTTY}" 78 fi; 41 echo "Morpheo ${MORPHEO_MAJOR_VERSION}.${MORPHEO_MINOR_VERSION}.${MORPHEO_REVISION} \"${MORPHEO_CODENAME}\" (${MORPHEO_DATE_DAY}/${MORPHEO_DATE_MONTH}/${MORPHEO_DATE_YEAR})"; 42 } 79 43 80 echo "" 44 #-----[ environment ]--------------------------------------- 45 function environment () 46 { 47 environment_test_usage ${*}; 48 49 local OS_FOUND=`uname -s`-`uname -m | sed -e 's/i[0-9]/iX/' -e 's/sun4./sun4X/'` 50 51 case ${OS_FOUND} in 52 "Linux-iX86") 53 export TARGET_ARCH=linux 54 export EXE_SUFFIX= 55 ;; 56 *) 57 echo "Unknown OS found" 58 esac 59 60 # Export environement 61 export MORPHEO_LOCALIZATION=${localization}; 62 export MORPHEO_TOPLEVEL=${PWD}; 63 export MORPHEO_SCRIPT=${MORPHEO_TOPLEVEL}/IPs/systemC/processor/Morpheo/Script; 64 export MORPHEO_HOME=${HOME}/.Morpheo; 65 MORPHEO_XTTY=${MORPHEO_TOPLEVEL}/IPs/systemC/Environment/TTY/xtty; 66 67 case ${MORPHEO_LOCALIZATION} in 68 "labs_network") 69 export MORPHEO_PREFIX=/users/chaos/kane/Morpheo; 70 export MORPHEO_TMP=${MORPHEO_PREFIX}; 71 ;; 72 "labs_local") 73 export MORPHEO_PREFIX=/dsk/l1/misc/Morpheo; 74 export MORPHEO_TMP=${MORPHEO_PREFIX}; 75 ;; 76 "home") 77 export MORPHEO_PREFIX=${HOME}/tmp/Morpheo; 78 export MORPHEO_TMP=${MORPHEO_PREFIX}/tmp; 79 ;; 80 *) 81 echo "Bad localization : \"${MORPHEO_LOCALIZATION}\""; 82 environment_usage ${*}; 83 ;; 84 esac 85 86 environment_version; 87 88 echo "" 89 echo "OS found : ${OS_FOUND}" 90 echo "" 91 echo "Modification of environement's variable :" 92 echo " - MORPHEO_LOCALIZATION is set to ${MORPHEO_LOCALIZATION}" 93 echo " - MORPHEO_TOPLEVEL is set to ${MORPHEO_TOPLEVEL}" 94 echo " - MORPHEO_SCRIPT is set to ${MORPHEO_SCRIPT}" 95 echo " - MORPHEO_HOME is set to ${MORPHEO_HOME}" 96 echo " - MORPHEO_PREFIX is set to ${MORPHEO_PREFIX}" 97 echo " - MORPHEO_TMP is set to ${MORPHEO_TMP}" 98 99 #---------- 100 # Path : add xtty and script directory. 101 # test if already in path : no multiple addition 102 #---------- 103 104 echo ${PATH} |grep -q ${MORPHEO_SCRIPT}; 105 if test $? -eq 1; then 106 export PATH=${PATH}:${MORPHEO_SCRIPT} 107 echo " - PATH add ${MORPHEO_SCRIPT}" 108 fi; 109 110 echo ${PATH} |grep -q ${MORPHEO_XTTY}; 111 112 if test $? -eq 1; then 113 export PATH=${PATH}:${MORPHEO_XTTY} 114 echo " - PATH add ${MORPHEO_XTTY}" 115 fi; 116 117 echo "" 118 } 119 120 #-----[ Corps ]--------------------------------------------- 121 environment ${*};
Note: See TracChangeset
for help on using the changeset viewer.