source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/src/RegisterFile_Internal_Banked_allocation.cpp @ 145

Last change on this file since 145 was 145, checked in by rosiere, 14 years ago

1) add test with SPECINT2K
2) new config of Selftest
3) modif RAT to support multiple depth_save ... but not finish (need fix Update Prediction Table)
4) add Function_pointer but need fix

  • Property svn:keywords set to Id
File size: 2.5 KB
Line 
1/*
2 * $Id: RegisterFile_Internal_Banked_allocation.cpp 145 2010-10-13 18:15:51Z rosiere $
3 *
4 * [ Description ]
5 *
6 */
7
8#include "Behavioural/Generic/RegisterFile/RegisterFile_Internal_Banked/include/RegisterFile_Internal_Banked.h"
9#include "Behavioural/include/Allocation.h"
10
11namespace morpheo                    {
12namespace behavioural                {
13namespace generic                    {
14namespace registerfile               {
15namespace registerfile_internal_banked    {
16
17  void RegisterFile_Internal_Banked::allocation (void)
18  {
19    _component   = new Component (_usage);
20
21    Entity * entity = _component->set_entity (_name                   
22                                             ,"RegisterFile_Internal_Banked"
23#ifdef POSITION
24                                             ,REGISTER                 
25#endif
26                                              );
27   
28    _interfaces = entity->set_interfaces();
29
30    // ~~~~~[ Interface : "" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
31    {
32      Interface * interface = _interfaces->set_interface(""
33#ifdef POSITION
34                                                         , IN
35                                                         ,SOUTH
36                                                         ,_("Generalist interface")
37#endif
38                                                         );
39     
40      in_CLOCK              = interface->set_signal_clk              ("clock" ,1);
41      in_NRESET             = interface->set_signal_in  <Tcontrol_t> ("nreset",1, RESET_VHDL_YES);
42    }
43
44    // ~~~~~[ Interface : "read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
45    { 
46      ALLOC1_INTERFACE_BEGIN("read",IN,WEST,_("Interface Read"),_param->_nb_port_read);
47
48      ALLOC1_VALACK_IN ( in_READ_VAL    ,VAL);
49      ALLOC1_VALACK_OUT(out_READ_ACK    ,ACK);
50      ALLOC1_SIGNAL_IN ( in_READ_ADDRESS,"address",Taddress_t,_param->_size_address);
51      ALLOC1_SIGNAL_OUT(out_READ_DATA   ,"data"   ,Tdata_t   ,_param->_size_word);
52
53      ALLOC1_INTERFACE_END(_param->_nb_port_read);
54    }
55
56    // ~~~~~[ Interface : "write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
57    {
58      ALLOC1_INTERFACE_BEGIN("write",IN,EAST,_("Interface Write"),_param->_nb_port_write);
59
60      ALLOC1_VALACK_IN ( in_WRITE_VAL    ,VAL);
61      ALLOC1_VALACK_OUT(out_WRITE_ACK    ,ACK);
62      ALLOC1_SIGNAL_IN ( in_WRITE_ADDRESS,"address",Taddress_t,_param->_size_address);
63      ALLOC1_SIGNAL_IN ( in_WRITE_DATA   ,"data"   ,Tdata_t   ,_param->_size_word);
64
65      ALLOC1_INTERFACE_END(_param->_nb_port_write);
66    }
67
68    if (usage_is_set(_usage,USE_SYSTEMC))
69      ALLOC1(reg_DATA,Tdata_t,_param->_nb_word);
70   
71#ifdef POSITION
72    if (usage_is_set(_usage,USE_POSITION))
73      _component->generate_file();
74#endif
75  };
76
77}; // end namespace registerfile_internal_banked
78}; // end namespace registerfile
79}; // end namespace generic
80}; // end namespace behavioural         
81}; // end namespace morpheo             
Note: See TracBrowser for help on using the repository browser.