Ignore:
Timestamp:
Dec 8, 2007, 5:12:36 PM (16 years ago)
Author:
rosiere
Message:

read_queue : systemC et vhdl ok !
queue : quelques petits modif pour avoir une queue de taille 1
nettoyage des fichiers *mkf*

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_vhdl_declaration.cpp

    r54 r68  
    2222  {
    2323    log_printf(FUNC,Read_queue,"vhdl_declaration","Begin");
     24
     25
     26    vhdl->set_signal ("internal_READ_QUEUE_OUT_VAL   ",1);
     27
     28    vhdl->set_signal ("reg_NEED_NEW_HEAD             ",1);
     29    vhdl->set_signal ("reg_READ_RA_VAL               ",1);
     30    vhdl->set_signal ("reg_READ_RB_VAL               ",1);
     31    vhdl->set_signal ("reg_READ_RC_VAL               ",1);
     32    vhdl->set_signal ("reg_DATA_RA_VAL               ",1);
     33    vhdl->set_signal ("reg_DATA_RB_VAL               ",1);
     34    vhdl->set_signal ("reg_DATA_RA                   ",_param->_size_general_data);
     35    vhdl->set_signal ("reg_DATA_RB                   ",_param->_size_general_data);
     36    vhdl->set_signal ("reg_DATA_RC_VAL               ",1);
     37    vhdl->set_signal ("reg_DATA_RC                   ",_param->_size_special_data);
     38
     39    vhdl->set_signal ("internal_NEXT_NEED_NEW_HEAD   ",1);
     40    vhdl->set_signal ("internal_NEXT_READ_RA_VAL     ",1);
     41    vhdl->set_signal ("internal_NEXT_READ_RB_VAL     ",1);
     42    vhdl->set_signal ("internal_NEXT_READ_RC_VAL     ",1);
     43    vhdl->set_signal ("internal_NEXT_DATA_RA_VAL     ",1);
     44    vhdl->set_signal ("internal_NEXT_DATA_RB_VAL     ",1);
     45    vhdl->set_signal ("internal_NEXT_DATA_RA         ",_param->_size_general_data);
     46    vhdl->set_signal ("internal_NEXT_DATA_RB         ",_param->_size_general_data);
     47    vhdl->set_signal ("internal_NEXT_DATA_RC_VAL     ",1);
     48    vhdl->set_signal ("internal_NEXT_DATA_RC         ",_param->_size_special_data);
     49
     50    vhdl->set_signal ("internal_READ_RA_VAL          ",1);
     51    vhdl->set_signal ("internal_READ_RB_VAL          ",1);
     52    vhdl->set_signal ("internal_READ_RC_VAL          ",1);
     53    vhdl->set_signal ("internal_DATA_RA_VAL          ",1);
     54    vhdl->set_signal ("internal_DATA_RB_VAL          ",1);
     55    vhdl->set_signal ("internal_DATA_RC_VAL          ",1);
     56 
     57
     58    vhdl->set_alias  ("internal_QUEUE_INSERT_VAL     ",std_logic(1)," in_READ_QUEUE_IN_VAL",std_logic_range(1));
     59    vhdl->set_alias  ("internal_QUEUE_INSERT_ACK     ",std_logic(1),"out_READ_QUEUE_IN_ACK",std_logic_range(1));
     60    vhdl->set_signal ("internal_QUEUE_INSERT_DATA    ",_param->_size_internal_queue);
     61    vhdl->set_signal ("internal_QUEUE_RETIRE_DATA    ",_param->_size_internal_queue);
     62    vhdl->set_signal ("internal_QUEUE_RETIRE_VAL     ",1);
     63    vhdl->set_signal ("internal_QUEUE_RETIRE_ACK     ",1);
     64   
     65    uint32_t min = 0;
     66    uint32_t max, size;
     67   
     68    if(_param->_have_port_context_id   )
     69      {
     70        size = _param->_size_context_id;
     71        max = min-1+size;
     72        vhdl->set_alias ("internal_CONTEXT_ID           ",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min));
     73        min = max+1;
     74      }
     75    if(_param->_have_port_front_end_id   )
     76      {
     77        size = _param->_size_front_end_id;
     78        max = min-1+size;
     79        vhdl->set_alias ("internal_FRONT_END_ID         ",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min));
     80        min = max+1;
     81      }
     82    if(_param->_have_port_ooo_engine_id   )
     83      {
     84        size = _param->_size_ooo_engine_id;
     85        max = min-1+size;
     86        vhdl->set_alias ("internal_OOO_ENGINE_ID        ",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min));
     87        min = max+1;
     88      }
     89    if(_param->_have_port_rob_id   )
     90      {
     91        size = _param->_size_rob_id;
     92        max = min-1+size;
     93        vhdl->set_alias ("internal_ROB_ID               ",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min));
     94        min = max+1;
     95      }
     96
     97    size = _param->_size_operation;
     98    max = min-1+size;
     99    vhdl->set_alias ("internal_OPERATION            ",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min));
     100    min = max+1;
     101
     102    size = _param->_size_type;
     103    max = min-1+size;
     104    vhdl->set_alias ("internal_TYPE                 ",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min));
     105    min = max+1;
     106
     107    size = 1;
     108    max = min-1+size;
     109    vhdl->set_alias ("internal_HAS_IMMEDIAT         ",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min));
     110    min = max+1;
     111
     112    size = _param->_size_general_data;
     113    max = min-1+size;
     114    vhdl->set_alias ("internal_IMMEDIAT             ",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min));
     115    min = max+1;
     116
     117    size = 1;
     118    max = min-1+size;
     119    vhdl->set_alias ("internal_READ_RA              ",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min));
     120    min = max+1;
     121
     122    size = _param->_size_general_register;
     123    max = min-1+size;
     124    vhdl->set_alias ("internal_NUM_REG_RA           ",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min));
     125    min = max+1;
     126
     127    size = 1;
     128    max = min-1+size;
     129    vhdl->set_alias ("internal_READ_RB              ",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min));
     130    min = max+1;
     131
     132    size = _param->_size_general_register;
     133    max = min-1+size;
     134    vhdl->set_alias ("internal_NUM_REG_RB           ",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min));
     135    min = max+1;
     136
     137    size = 1;
     138    max = min-1+size;
     139    vhdl->set_alias ("internal_READ_RC              ",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min));
     140    min = max+1;
     141
     142    size = _param->_size_special_register;
     143    max = min-1+size;
     144    vhdl->set_alias ("internal_NUM_REG_RC           ",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min));
     145    min = max+1;
     146
     147    size = 1;
     148    max = min-1+size;
     149    vhdl->set_alias ("internal_WRITE_RD             ",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min));
     150    min = max+1;
     151
     152    size = _param->_size_general_register;
     153    max = min-1+size;
     154    vhdl->set_alias ("internal_NUM_REG_RD           ",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min));
     155    min = max+1;
     156
     157    size = 1;
     158    max = min-1+size;
     159    vhdl->set_alias ("internal_WRITE_RE             ",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min));
     160    min = max+1;
     161
     162    size = _param->_size_special_register;
     163    max = min-1+size;
     164    vhdl->set_alias ("internal_NUM_REG_RE           ",std_logic(size),"internal_QUEUE_RETIRE_DATA",std_logic_range(_param->_size_internal_queue,max,min));
     165    min = max+1;
     166
     167
    24168    log_printf(FUNC,Read_queue,"vhdl_declaration","End");
    25169  };
Note: See TracChangeset for help on using the changeset viewer.