Changeset 101 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_genMealy_decod_out.cpp
- Timestamp:
- Jan 15, 2009, 6:19:08 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_genMealy_decod_out.cpp
r88 r101 42 42 Tdepth_t depth = reg_QUEUE->front()->_depth [i]; 43 43 Tdepth_t depth_min = (_param->_have_port_depth)?PORT_READ(in_DEPTH_MIN [context]):0; 44 Tdepth_t depth_max = PORT_READ(in_DEPTH_MAX[context]); 44 Tdepth_t depth_max = (_param->_have_port_depth)?PORT_READ(in_DEPTH_MAX [context]):0; 45 Tcontrol_t depth_full = PORT_READ(in_DEPTH_FULL[context]); 45 46 46 47 // is a valid instruction ? 47 48 // If DEPTH_CURRENT : 48 49 // equal at DEPTH_MIN -> not speculative 49 // not include ]DEPTH_MIN:DEPTH_MAX [-> previous branch miss50 // include ]DEPTH_MIN:DEPTH_MAX [-> speculative50 // not include ]DEPTH_MIN:DEPTH_MAX] -> previous branch miss 51 // include ]DEPTH_MIN:DEPTH_MAX] -> speculative 51 52 52 53 // All case … … 58 59 // ....... max ...X... min ....... KO 59 60 60 Tcontrol_t is_valid = ((depth == depth_min) or 61 ((depth_min < depth_max)? 62 (depth<depth_max): 63 ((depth > depth_min) or (depth < depth_max)))); 61 Tcontrol_t is_valid = ((depth == depth_min) or 62 depth_full or 63 ((depth_min <= depth_max)? 64 ((depth >= depth_min) and (depth <=depth_max)): 65 ((depth >= depth_min) or (depth <=depth_max)))); 66 // Tcontrol_t is_valid = ((depth == depth_min) or 67 // ((depth_min < depth_max)? 68 // (depth<=depth_max): 69 // ((depth > depth_min) or (depth <= depth_max)))); 64 70 // Tcontrol_t is_valid = depth <= depth_max; 65 71 66 log_printf(TRACE,Decod_queue,FUNCTION,_(" * is_valid : %d"),is_valid); 67 72 log_printf(TRACE,Decod_queue,FUNCTION," * is_valid : %d",is_valid); 73 log_printf(TRACE,Decod_queue,FUNCTION," * context : %d",context); 74 log_printf(TRACE,Decod_queue,FUNCTION," * depth : %d",depth); 75 log_printf(TRACE,Decod_queue,FUNCTION," * depth_min : %d",depth_min); 76 log_printf(TRACE,Decod_queue,FUNCTION," * depth_max : %d",depth_max); 77 log_printf(TRACE,Decod_queue,FUNCTION," * depth_full: %d",depth_full); 78 log_printf(TRACE,Decod_queue,FUNCTION," * address : 0x%x (0x%x)",reg_QUEUE->front()->_address[i],reg_QUEUE->front()->_address[i]<<2); 68 79 internal_DECOD_OUT_VAL [i] = 1; // in all case, val is set (entry is not empty, and instruction is valid) 69 80 if (is_valid) … … 81 92 for (uint32_t i=0; i<_param->_nb_inst_decod; i++) 82 93 { 83 log_printf(TRACE,Decod_queue,FUNCTION, _(" * DECOD_OUT_VAL : %d"),val [i]);94 log_printf(TRACE,Decod_queue,FUNCTION," * DECOD_OUT_VAL : %d",val [i]); 84 95 85 96 PORT_WRITE(out_DECOD_OUT_VAL [i],val [i]);
Note: See TracChangeset
for help on using the changeset viewer.