Ignore:
Timestamp:
May 21, 2007, 12:01:51 PM (17 years ago)
Author:
rosiere
Message:

Documentation pour chaque composant.
Documentation : ajout d'un poster et d'un article.
RegisterFile_Multi_Banked_Glue - non encore stable.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/src/RegisterFile_Multi_Banked_Glue_genMealy_read_in.cpp

    r15 r23  
    99#include "Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/RegisterFile_Multi_Banked_Glue/include/RegisterFile_Multi_Banked_Glue.h"
    1010
    11 namespace morpheo                    {
     11namespace morpheo {
    1212namespace behavioural {
    1313namespace generic {
     
    1616namespace registerfile_multi_banked_glue {
    1717
    18  
    1918  void RegisterFile_Multi_Banked_Glue::genMealy_read_in (void)
    2019  {
    2120    log_printf(FUNC,RegisterFile_Multi_Banked_Glue,"genMealy_read_in","Begin");
    2221   
    23     for (uint32_t l=0; l<_param._nb_port_read; l++)
     22    for (uint32_t i=0; i<_param._nb_port_read; i++)
    2423      {
    25         uint32_t num_bank = PORT_READ(in_READ_IN_ADDRESS [l])>>_param._shift_address;
     24        log_printf(ALL,RegisterFile_Multi_Banked_Glue,"genMealy_read_in","read_in [%d]",i);
    2625
     26        uint32_t num_bank        = PORT_READ(in_READ_IN_ADDRESS [i])>>_param._shift_address;
     27        uint32_t num_port_out    = *link_port_read_in_to_out    (i,num_bank);
     28        uint32_t num_port_select = *link_port_read_in_to_select (i,num_bank);
     29
     30        if (_param._crossbar == FULL_CROSSBAR)
     31          {
     32            // scearch in all possible destination the good
     33            // if not found : num_port = 0
     34            for (num_port = _param._nb_port_read_by_bank-1; num_port > 0; num_port --)
     35              {
     36                log_printf(ALL,RegisterFile_Multi_Banked_Glue,"genMealy_read_in","test read_out_port   %d",num_port);           
     37               
     38                for (uint32_t j=0; j<_param._nb_port_select_by_bank_read_port [num_port]; j++)
     39                  {
     40                log_printf(ALL,RegisterFile_Multi_Banked_Glue,"genMealy_read_in","test read_out_select %d",j);
     41                    if (PORT_READ(in_READ_SELECT_ACK [num_bank][num_port][j])==1)
     42                      goto end_FULL_CROSSBAR;
     43                  }
     44              }
     45          }
     46       
     47        end_FULL_CROSSBAR :     
     48         
     49        log_printf(TRACE,RegisterFile_Multi_Banked_Glue,"genMealy_read_in","read_in [%d] address : %.8x - num_bank %d, num_port %d",i,static_cast<uint32_t>(PORT_READ(in_READ_IN_ADDRESS [i])),num_bank,num_port);
     50       
     51        PORT_WRITE(out_READ_IN_ACK  [i],PORT_READ(in_READ_SELECT_ACK [num_bank][num_port]));
     52        PORT_WRITE(out_READ_IN_DATA [i],PORT_READ(in_READ_OUT_DATA   [num_bank][num_port]));
    2753//      (*(out_READ_IN_ACK  [l])) (*(in_READ_IN_ADDRESS [i][j]));
    2854//      (*(out_READ_IN_DATA [l])) (*(in_READ_IN_ADDRESS [i][j]));
    29 
    30 //      for (uint32_t i=0; i<_param._nb_bank; i++)
    31 //        for (uint32_t j=0; j<_param._nb_port_read_by_bank; j++)
    32 //          {
    33 //            (*(out_READ_IN_ACK  [l])) (*(in_READ_OUT_ACK      [i][j]));
    34 //            (*(out_READ_IN_DATA [l])) (*(in_READ_OUT_DATA     [i][j]));
    35 //            for (uint32_t k=0; k<_param._nb_port_select_by_bank_read_port[j]; k++)
    36 //              {
    37 //                (*(out_READ_IN_ACK  [l])) (*(in_READ_SELECT_ACK [i][j][k]));
    38 //                (*(out_READ_IN_DATA [l])) (*(in_READ_SELECT_ACK [i][j][k]));
    39 //              }
    40 //          }
    4155      }
    4256
Note: See TracChangeset for help on using the changeset viewer.