Ignore:
Timestamp:
Sep 28, 2007, 2:58:08 PM (17 years ago)
Author:
rosiere
Message:
  • VHDL - RegisterFile_Multi_Banked (only partial_crossbar)
  • SystemC - modif Component, interface and co -> ajout du type Tusage_T pour instancier un coposant mais ne demander que le VHDL ou le systemC.
  • Séminaire interne
Location:
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed
Files:
3 added
14 edited
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/config_compact.cfg

    r43 r57  
    11Select_Priority_Fixed
    222       16      *2      # nb_entity
    3 0       1       +1      # encoding_one_hot
     30       0       +1      # encoding_one_hot
    441       1       +1      # encoding_compact
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/include/test.h

    r15 r57  
    2525
    2626void test    (string name,
    27               morpheo::behavioural::generic::select::select_priority_fixed::Parameters param);
     27              morpheo::behavioural::generic::select::select_priority_fixed::Parameters * param);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/mkf.info

    r15 r57  
    55target_dep      Select_Priority_Fixed_0.prj     Select_Priority_Fixed_0_Pack.vhdl Select_Priority_Fixed_0.vhdl
    66
     7# Select_Priority_Fixed_10
     8target_dep      all     Select_Priority_Fixed_10.ngc
     9target_dep      Select_Priority_Fixed_10.ngc    Select_Priority_Fixed_10.prj
     10target_dep      Select_Priority_Fixed_10.prj    Select_Priority_Fixed_10_Pack.vhdl Select_Priority_Fixed_10.vhdl
     11
     12# Select_Priority_Fixed_11
     13target_dep      all     Select_Priority_Fixed_11.ngc
     14target_dep      Select_Priority_Fixed_11.ngc    Select_Priority_Fixed_11.prj
     15target_dep      Select_Priority_Fixed_11.prj    Select_Priority_Fixed_11_Pack.vhdl Select_Priority_Fixed_11.vhdl
     16
    717# Select_Priority_Fixed_1
    818target_dep      all     Select_Priority_Fixed_1.ngc
    919target_dep      Select_Priority_Fixed_1.ngc     Select_Priority_Fixed_1.prj
    10 target_dep      Select_Priority_Fixed_1.prj     Select_Priority_Fixed_1_Pack.vhdl Select_Priority_Fixed_1.vhdl
     20target_dep      Select_Priority_Fixed_1.prj     Select_Priority_Fixed_10_Pack.vhdl Select_Priority_Fixed_10.vhdl Select_Priority_Fixed_11_Pack.vhdl Select_Priority_Fixed_11.vhdl Select_Priority_Fixed_1_Pack.vhdl Select_Priority_Fixed_1.vhdl
    1121
    1222# Select_Priority_Fixed_2
     
    4050target_dep      Select_Priority_Fixed_7.prj     Select_Priority_Fixed_7_Pack.vhdl Select_Priority_Fixed_7.vhdl
    4151
     52# Select_Priority_Fixed_8
     53target_dep      all     Select_Priority_Fixed_8.ngc
     54target_dep      Select_Priority_Fixed_8.ngc     Select_Priority_Fixed_8.prj
     55target_dep      Select_Priority_Fixed_8.prj     Select_Priority_Fixed_8_Pack.vhdl Select_Priority_Fixed_8.vhdl
     56
     57# Select_Priority_Fixed_9
     58target_dep      all     Select_Priority_Fixed_9.ngc
     59target_dep      Select_Priority_Fixed_9.ngc     Select_Priority_Fixed_9.prj
     60target_dep      Select_Priority_Fixed_9.prj     Select_Priority_Fixed_9_Pack.vhdl Select_Priority_Fixed_9.vhdl
     61
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/src/main.cpp

    r15 r57  
    4242  try
    4343    {
    44       morpheo::behavioural::generic::select::select_priority_fixed::Parameters param (nb_entity       ,
    45                                                                                encoding_one_hot,
    46                                                                                encoding_compact);
     44      morpheo::behavioural::generic::select::select_priority_fixed::Parameters * param = new morpheo::behavioural::generic::select::select_priority_fixed::Parameters
     45        (nb_entity       ,
     46         encoding_one_hot,
     47         encoding_compact);
    4748     
    48       cout << param.print(1);
     49      cout << param->print(1);
    4950     
    5051      test (name,param);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/SelfTest/src/test.cpp

    r44 r57  
    1313
    1414void test (string name,
    15            morpheo::behavioural::generic::select::select_priority_fixed::Parameters _param)
     15           morpheo::behavioural::generic::select::select_priority_fixed::Parameters * _param)
    1616{
    1717  cout << "<" << name << "> : Simulation SystemC" << endl;
    1818
     19
     20#ifdef STATISTICS
     21  morpheo::behavioural::Parameters_Statistics * _param_stat = new morpheo::behavioural::Parameters_Statistics (5,50);
     22#endif
    1923  Select_Priority_Fixed * _Select_Priority_Fixed = new Select_Priority_Fixed (name.c_str(),
    2024#ifdef STATISTICS
    21                                                                               morpheo::behavioural::Parameters_Statistics(5,50),
     25                                                                              _param_stat,
    2226#endif
    2327                                                                              _param);
     
    3842  CLOCK        = new sc_clock ("clock", 1.0, 0.5);
    3943  NRESET       = new sc_signal<Tcontrol_t> ("NRESET");
    40   VAL          = new sc_signal<Tcontrol_t> * [_param._nb_entity];
    41   ACK          = new sc_signal<Tcontrol_t> * [_param._nb_entity];
     44  VAL          = new sc_signal<Tcontrol_t> * [_param->_nb_entity];
     45  ACK          = new sc_signal<Tcontrol_t> * [_param->_nb_entity];
    4246
    43   for (uint32_t i=0; i<_param._nb_entity; i++)
     47  for (uint32_t i=0; i<_param->_nb_entity; i++)
    4448    {
    4549      rename = "VAL_"+toString(i);
     
    6165  (*(_Select_Priority_Fixed->in_NRESET))       (*(NRESET));
    6266
    63     for (uint32_t i=0; i<_param._nb_entity; i++)
     67    for (uint32_t i=0; i<_param->_nb_entity; i++)
    6468      {
    6569        (*(_Select_Priority_Fixed-> in_VAL [i]))        (*(VAL [i]));
    66         if (_param._encoding_one_hot)
     70        if (_param->_encoding_one_hot)
    6771        (*(_Select_Priority_Fixed->out_ACK [i]))        (*(ACK [i]));
    6872      }
    69     if (_param._encoding_compact)
     73    if (_param->_encoding_compact)
    7074      {
    7175    (*(_Select_Priority_Fixed->out_ENTITY    ))        (*(ENTITY    ));
     
    7882  cout << "<" << name << "> Start Simulation ............" << endl;
    7983
    80   if (_param._nb_entity > (8*sizeof (Tentity_t)))
     84  if (_param->_nb_entity > (8*sizeof (Tentity_t)))
    8185    throw ErrorMorpheo("No Selftest with nb_entity higher at "+toString(8*sizeof (Tentity_t)));
    8286
     
    99103      bool find = false;
    100104     
    101       for (uint32_t i=0; i<_param._nb_entity; i++)
     105      for (uint32_t i=0; i<_param->_nb_entity; i++)
    102106        {
    103107          Tcontrol_t val = rand() % 2;
     
    118122      entity = (find)?entity:0;
    119123
    120       if (_param._encoding_one_hot)
     124      if (_param->_encoding_one_hot)
    121125        TEST(Tcontrol_t, ACK   [entity]->read(), find  );
    122       if (_param._encoding_compact)
     126      if (_param->_encoding_compact)
    123127        {
    124128        TEST(Tentity_t , ENTITY        ->read(), entity); // burk
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/include/Select_Priority_Fixed.h

    r44 r57  
    2626#include "Behavioural/include/Vhdl.h"
    2727#endif
     28#include "Behavioural/include/Usage.h"
    2829
    2930using namespace std;
     
    4445    // Parameters
    4546  protected : const string     _name;
    46 
    47   protected : const Parameters _param;
     47  protected : const Parameters * _param;
     48  private   : const Tusage_t     _usage;
    4849//#ifdef STATISTICS
    4950//  protected : const morpheo::behavioural::Parameters_Statistics _param_statistics;
     
    5455#endif
    5556
    56   private   : Component                      * _component;
     57  public    : Component                      * _component;
    5758  private   : Interfaces                     * _interfaces;
    5859
     
    8182    SC_HAS_PROCESS (Select_Priority_Fixed);
    8283#endif
    83   public  :          Select_Priority_Fixed              (
     84  public  :          Select_Priority_Fixed
     85  (
    8486#ifdef SYSTEMC
    85                                               sc_module_name                              name,
     87   sc_module_name                              name,
    8688#else                                         
    87                                               string                                      name,
     89   string                                      name,
    8890#endif                                         
    8991#ifdef STATISTICS
    90                                               morpheo::behavioural::Parameters_Statistics param_statistics,
     92   morpheo::behavioural::Parameters_Statistics * param_statistics,
    9193#endif
    92                                               Parameters                                  param );
    93                                                
    94   public  :          Select_Priority_Fixed              (Parameters param );
     94   Parameters                                  * param ,
     95   morpheo::behavioural::Tusage_t                usage=USE_ALL);
     96   
    9597  public  :          ~Select_Priority_Fixed             (void);
    9698                                               
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/include/Statistics.h

    r44 r57  
    2828  {
    2929    // -----[ fields ]----------------------------------------------------
    30   private  : const Parameters                                   _parameters;
     30  private  : const Parameters                                 * _parameters;
    3131
    3232    // -----[ methods ]---------------------------------------------------
    3333  public   : Statistics  (string                                      name                       ,
    34                           morpheo::behavioural::Parameters_Statistics parameters_statistics      ,
    35                           Parameters                                  parameters
     34                          morpheo::behavioural::Parameters_Statistics * parameters_statistics      ,
     35                          Parameters                                  * parameters
    3636                          );
    3737//public   : Statistics  (Statistics & stat);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/include/Types.h

    r44 r57  
    99 */
    1010
    11 #include "Common/include/Types.h"
     11#include "Behavioural/include/Types.h"
    1212
    1313namespace morpheo                    {
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed.cpp

    r42 r57  
    1515
    1616
     17  Select_Priority_Fixed::Select_Priority_Fixed
     18  (
    1719#ifdef SYSTEMC
    18   Select_Priority_Fixed::Select_Priority_Fixed (sc_module_name name,
     20   sc_module_name name,
    1921#else
    20   Select_Priority_Fixed::Select_Priority_Fixed (string name,
     22   string name,
    2123#endif
    2224#ifdef STATISTICS
    23                               morpheo::behavioural::Parameters_Statistics             param_statistics,
     25   morpheo::behavioural::Parameters_Statistics           *  param_statistics,
    2426#endif
    25                               morpheo::behavioural::generic::select::select_priority_fixed::Parameters param ):
    26                               _name              (name)
    27                               ,_param            (param)
     27   morpheo::behavioural::generic::select::select_priority_fixed::Parameters * param,
     28   morpheo::behavioural::Tusage_t usage ):
     29    _name              (name),
     30    _param            (param),
     31    _usage            (usage)
    2832// #ifdef STATISTICS
    2933//                            ,_param_statistics (param_statistics)
     
    3236    log_printf(FUNC,Select_Priority_Fixed,"Select_Priority_Fixed","Begin");
    3337
    34 #ifdef SYSTEMC
    3538    log_printf(INFO,Select_Priority_Fixed,"Select_Priority_Fixed","Allocation");
    36 
    3739    allocation ();
    38 #endif
    3940
    4041#ifdef STATISTICS
     
    5556
    5657#ifdef SYSTEMC
    57 #if defined(STATISTICS) or defined(VHDL_TESTBENCH)
    58     log_printf(INFO,Select_Priority_Fixed,"Select_Priority_Fixed","Method - transition");
    59 
    60     SC_METHOD (transition);
    61     dont_initialize ();
    62     sensitive_pos << *(in_CLOCK);
    63 #endif
    64 
    65     log_printf(INFO,Select_Priority_Fixed,"Select_Priority_Fixed","Method - genMealy_entity");
    66 
    67     SC_METHOD (genMealy_entity);
    68     dont_initialize ();
    69     //sensitive_pos << *(in_CLOCK);
    70     for (uint32_t i=0; i<_param._nb_entity; i++)
    71       sensitive << *(in_VAL [i]);
    72 
     58    if (_usage & USE_SYSTEMC)
     59      {
     60#  if defined(STATISTICS) or defined(VHDL_TESTBENCH)
     61        log_printf(INFO,Select_Priority_Fixed,"Select_Priority_Fixed","Method - transition");
     62       
     63        SC_METHOD (transition);
     64        dont_initialize ();
     65        sensitive_pos << *(in_CLOCK);
     66#  endif
     67       
     68        log_printf(INFO,Select_Priority_Fixed,"Select_Priority_Fixed","Method - genMealy_entity");
     69       
     70        SC_METHOD (genMealy_entity);
     71        dont_initialize ();
     72        //sensitive_pos << *(in_CLOCK);
     73        for (uint32_t i=0; i<_param->_nb_entity; i++)
     74          sensitive << *(in_VAL [i]);
     75       
    7376#  ifdef SYSTEMCASS_SPECIFIC
    74     // List dependency information
    75 
    76     for (uint32_t i=0; i<_param._nb_entity; i++)
    77       {
    78         if (_param._encoding_one_hot)
    79           (*(out_ACK    [i])) (*(in_VAL [i]));
    80         if (_param._encoding_compact)
     77        // List dependency information
     78       
     79        for (uint32_t i=0; i<_param->_nb_entity; i++)
    8180          {
    82           (*(out_ENTITY    )) (*(in_VAL [i]));
    83           (*(out_ENTITY_ACK)) (*(in_VAL [i]));
     81            if (_param->_encoding_one_hot)
     82              (*(out_ACK    [i])) (*(in_VAL [i]));
     83            if (_param->_encoding_compact)
     84              {
     85                (*(out_ENTITY    )) (*(in_VAL [i]));
     86                (*(out_ENTITY_ACK)) (*(in_VAL [i]));
     87              }
    8488          }
     89       
     90#  endif
    8591      }
    86    
    87 #  endif   
    8892#endif
    8993    log_printf(FUNC,Select_Priority_Fixed,"Select_Priority_Fixed","End");
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_allocation.cpp

    r42 r57  
    1919    log_printf(FUNC,Select_Priority_Fixed,"allocation","Begin");
    2020
    21     _component   = new Component ();
     21    _component   = new Component (_usage);
    2222
    2323    Entity * entity = _component->set_entity (_name                 
     24                                             ,"Select_Priority_Fixed"
    2425#ifdef POSITION
    25                                              ,"Select_Priority_Fixed"
    2626                                             ,COMBINATORY           
    2727#endif
     
    4141
    4242     in_CLOCK        = interface->set_signal_clk              ("clock" ,1, CLOCK_VHDL_NO);
    43      in_NRESET       = interface->set_signal_in  <Tcontrol_t> ("nreset",1);
    44      in_VAL          = new SC_IN (Tcontrol_t)           * [_param._nb_entity];
    45     if (_param._encoding_one_hot)
    46     out_ACK          = new SC_OUT(Tcontrol_t)           * [_param._nb_entity];
     43     in_NRESET       = interface->set_signal_in  <Tcontrol_t> ("nreset",1, RESET_VHDL_NO);
    4744
    48     for (uint32_t i=0; i<_param._nb_entity; i++)
     45     in_VAL          = new SC_IN (Tcontrol_t)           * [_param->_nb_entity];
     46    if (_param->_encoding_one_hot)
     47    out_ACK          = new SC_OUT(Tcontrol_t)           * [_param->_nb_entity];
     48
     49    for (uint32_t i=0; i<_param->_nb_entity; i++)
    4950      {
    5051         in_VAL [i]    = interface->set_signal_in  <Tcontrol_t> ("val_"+toString(i),1);
    51         if (_param._encoding_one_hot)
     52        if (_param->_encoding_one_hot)
    5253        out_ACK [i]    = interface->set_signal_out <Tcontrol_t> ("ack_"+toString(i),1);
    5354      }
    5455
    55     if (_param._encoding_compact)
     56    if (_param->_encoding_compact)
    5657      {
    57         out_ENTITY     = interface->set_signal_out <Tentity_t > ("entity"    , _param._size_entity);
     58        out_ENTITY     = interface->set_signal_out <Tentity_t > ("entity"    , _param->_size_entity);
    5859        out_ENTITY_ACK = interface->set_signal_out <Tcontrol_t> ("entity_ack", 1);
    5960      }
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_deallocation.cpp

    r42 r57  
    2020    log_printf(FUNC,Select_Priority_Fixed,"deallocation","Begin");
    2121
    22     delete     in_CLOCK;
    23     delete     in_NRESET;
    24 
    25     delete []  in_VAL;
    26     if (_param._encoding_one_hot)
    27     delete [] out_ACK;
    28 
    29     if (_param._encoding_compact)
     22    if (_usage & USE_SYSTEMC)
    3023      {
    31     delete    out_ENTITY;
    32     delete    out_ENTITY_ACK;
     24        delete     in_CLOCK;
     25        delete     in_NRESET;
     26       
     27        delete []  in_VAL;
     28        if (_param->_encoding_one_hot)
     29          delete [] out_ACK;
     30       
     31        if (_param->_encoding_compact)
     32          {
     33            delete    out_ENTITY;
     34            delete    out_ENTITY_ACK;
     35          }
    3336      }
    3437    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
    35 
     38   
    3639    delete _component;
    3740
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_genMealy_entity.cpp

    r40 r57  
    2222    // init
    2323     
    24     Tcontrol_t ack [_param._nb_entity];
     24    Tcontrol_t ack [_param->_nb_entity];
    2525    bool       find  = false;
    2626    Tentity_t  entity;
    2727
    28     if (_param._encoding_one_hot)
    29     for (uint32_t i=0; i<_param._nb_entity; i++)
     28    if (_param->_encoding_one_hot)
     29    for (uint32_t i=0; i<_param->_nb_entity; i++)
    3030      ack [i] = 0;
    3131
    3232    log_printf(TRACE,Select_Priority_Fixed,"genMealy_entity","Scearch...");
    33     for (entity=0; entity<_param._nb_entity; entity++)
     33    for (entity=0; entity<_param->_nb_entity; entity++)
    3434      {
    3535        if (PORT_READ(in_VAL [entity]) == 1)
    3636          {
    3737            log_printf(TRACE,Select_Priority_Fixed,"genMealy_entity","Find! entity %d",entity);
    38             if (_param._encoding_one_hot)
     38            if (_param->_encoding_one_hot)
    3939              ack [entity] = 1;
    4040            find = true;
     
    4444     
    4545    // Write port
    46     if (_param._encoding_one_hot)
    47       for (uint32_t i=0; i<_param._nb_entity; i++)
     46    if (_param->_encoding_one_hot)
     47      for (uint32_t i=0; i<_param->_nb_entity; i++)
    4848        PORT_WRITE(out_ACK [i], ack [i]);
    4949
    50     if (_param._encoding_compact)
     50    if (_param->_encoding_compact)
    5151      {
    5252        PORT_WRITE(out_ENTITY    , (find==true)?entity:0); 
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_vhdl_body.cpp

    r29 r57  
    2222
    2323    vhdl->set_body("internal_entity <=");
    24     for (uint32_t i=0; i<_param._nb_entity; i++)
     24    for (uint32_t i=0; i<_param->_nb_entity; i++)
    2525      {
    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_VAL_"+toString(i)+"='1' else");
    2727      }
    28     vhdl->set_body("\t"+std_logic_conv(_param._size_entity+1,1<<_param._size_entity)+";");
     28    vhdl->set_body("\t"+std_logic_conv(_param->_size_entity+1,1<<_param->_size_entity)+";");
    2929    vhdl->set_body ("");
    3030
    31     if (_param._encoding_one_hot)
     31    if (_param->_encoding_one_hot)
    3232      {
    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';");
     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';");
    3535        vhdl->set_body ("");
    3636      }
    3737
    38     if (_param._encoding_compact)
     38    if (_param->_encoding_compact)
    3939      {
    40         vhdl->set_body ("out_ENTITY     <=     internal_entity"+std_logic_range(_param._size_entity-1,                  0)+";");
    41         vhdl->set_body ("out_ENTITY_ACK <= not internal_entity"+std_logic_range(_param._size_entity  ,_param._size_entity)+";");
     40        vhdl->set_body ("out_ENTITY     <=     internal_entity"+std_logic_range(_param->_size_entity-1,                  0)+";");
     41        vhdl->set_body ("out_ENTITY_ACK <= not internal_entity"+std_logic_range(_param->_size_entity  ,_param->_size_entity)+";");
    4242      }   
    4343   
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_vhdl_declaration.cpp

    r29 r57  
    2020    log_printf(FUNC,Select_Priority_Fixed,"vhdl_declaration","Begin");
    2121
    22     vhdl->set_signal("internal_entity",_param._size_entity+1);
     22    vhdl->set_signal("internal_entity",_param->_size_entity+1);
    2323
    2424    log_printf(FUNC,Select_Priority_Fixed,"vhdl_declaration","End");
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Statistics.cpp

    r15 r57  
    1717
    1818  Statistics::Statistics (string                                      name                       ,
    19                           morpheo::behavioural::Parameters_Statistics parameters_statistics      ,
    20                           Parameters                                  parameters
     19                          morpheo::behavioural::Parameters_Statistics * parameters_statistics      ,
     20                          Parameters                                  * parameters
    2121                          ) :
    2222    morpheo::behavioural::Statistics(name                  ,
Note: See TracChangeset for help on using the changeset viewer.