source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/OOO_Engine_Glue/src/OOO_Engine_Glue_allocation.cpp @ 136

Last change on this file since 136 was 136, checked in by rosiere, 15 years ago

1) Add new algo in ifetch queue
2) Add Cancel bit
3) new config

  • Property svn:keywords set to Id
File size: 26.8 KB
Line 
1/*
2 * $Id: OOO_Engine_Glue_allocation.cpp 136 2009-10-20 18:52:15Z rosiere $
3 *
4 * [ Description ]
5 *
6 */
7
8#include "Behavioural/Core/Multi_OOO_Engine/OOO_Engine/OOO_Engine_Glue/include/OOO_Engine_Glue.h"
9#include "Behavioural/include/Allocation.h"
10#include "Common/include/Max.h"
11
12namespace morpheo                    {
13namespace behavioural {
14namespace core {
15namespace multi_ooo_engine {
16namespace ooo_engine {
17namespace ooo_engine_glue {
18
19
20
21#undef  FUNCTION
22#define FUNCTION "OOO_Engine_Glue::allocation"
23  void OOO_Engine_Glue::allocation (
24#ifdef STATISTICS
25                               morpheo::behavioural::Parameters_Statistics * param_statistics
26#else
27                               void
28#endif
29                               )
30  {
31    log_begin(OOO_Engine_Glue,FUNCTION);
32
33    _component   = new Component (_usage);
34
35    Entity * entity = _component->set_entity (_name       
36                                              ,"OOO_Engine_Glue"
37#ifdef POSITION
38                                              ,COMBINATORY
39#endif
40                                              );
41
42    _interfaces = entity->set_interfaces();
43
44    // ~~~~~[ Interface : "" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
45    {
46      Interface * interface = _interfaces->set_interface(""
47#ifdef POSITION
48                                                         ,IN
49                                                         ,SOUTH,
50                                                         _("Generalist interface")
51#endif
52                                                         );
53     
54      in_CLOCK        = interface->set_signal_clk              ("clock" ,1, CLOCK_VHDL_YES);
55      in_NRESET       = interface->set_signal_in  <Tcontrol_t> ("nreset",1, RESET_VHDL_YES);
56    }
57
58    // ~~~~~[ Interface : "rename" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
59    {
60      ALLOC2_INTERFACE_BEGIN("rename",IN, SOUTH,_("rename's interface"),_param->_nb_front_end,_param->_nb_inst_decod[it1]);
61     
62      _ALLOC2_SIGNAL_IN ( in_RENAME_FRONT_END_ID                          ,"FRONT_END_ID"                          ,Tcontext_t         ,_param->_size_front_end_id    ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
63      _ALLOC2_SIGNAL_OUT(out_RENAME_RENAME_UNIT_FRONT_END_ID              ,"RENAME_UNIT_FRONT_END_ID"              ,Tcontext_t         ,_param->_size_front_end_id    ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
64
65      ALLOC2_INTERFACE_END(_param->_nb_front_end,_param->_nb_inst_decod[it1]);
66    }
67   
68    // ~~~~~[ Interface : "insert" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
69//     {
70//       ALLOC1_INTERFACE_BEGIN("insert",OUT, WEST,_("insert's interface"),_param->_sum_inst_insert);
71
72//       ALLOC1_SIGNAL_OUT (out_INSERT_VAL                                   ,"VAL"                                   ,Tcontrol_t         ,1                             );
73//       ALLOC1_SIGNAL_IN  ( in_INSERT_ACK                                   ,"ACK"                                   ,Tcontrol_t         ,1                             );
74//       ALLOC1_SIGNAL_OUT (out_INSERT_RD_USE                                ,"RD_USE"                                ,Tcontrol_t         ,1                             );
75//       ALLOC1_SIGNAL_OUT (out_INSERT_RD_NUM_REG                            ,"RD_NUM_REG"                            ,Tgeneral_address_t ,_param->_size_general_register);
76//       ALLOC1_SIGNAL_OUT (out_INSERT_RE_USE                                ,"RE_USE"                                ,Tcontrol_t         ,1                             );
77//       ALLOC1_SIGNAL_OUT (out_INSERT_RE_NUM_REG                            ,"RE_NUM_REG"                            ,Tspecial_address_t ,_param->_size_special_register);
78
79//       ALLOC1_INTERFACE_END(_param->_sum_inst_insert);
80//     }
81
82    {
83      ALLOC2_INTERFACE_BEGIN("insert",IN, EAST,_("insert's interface"),_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
84
85      _ALLOC2_SIGNAL_IN ( in_INSERT_RENAME_UNIT_VAL                       ,"RENAME_UNIT_VAL"                       ,Tcontrol_t         ,1                             ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
86      _ALLOC2_SIGNAL_OUT(out_INSERT_RENAME_UNIT_ACK                       ,"RENAME_UNIT_ACK"                       ,Tcontrol_t         ,1                             ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
87      _ALLOC2_SIGNAL_IN ( in_INSERT_RENAME_UNIT_FRONT_END_ID              ,"RENAME_UNIT_FRONT_END_ID"              ,Tcontext_t         ,_param->_size_front_end_id    ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
88      _ALLOC2_SIGNAL_IN ( in_INSERT_RENAME_UNIT_CONTEXT_ID                ,"RENAME_UNIT_CONTEXT_ID"                ,Tcontext_t         ,_param->_size_context_id      ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
89      _ALLOC2_SIGNAL_IN ( in_INSERT_RENAME_UNIT_TYPE                      ,"RENAME_UNIT_TYPE"                      ,Ttype_t            ,_param->_size_type            ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
90      _ALLOC2_SIGNAL_IN ( in_INSERT_RENAME_UNIT_OPERATION                 ,"RENAME_UNIT_OPERATION"                 ,Toperation_t       ,_param->_size_operation       ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
91      _ALLOC2_SIGNAL_IN ( in_INSERT_RENAME_UNIT_NO_EXECUTE                ,"RENAME_UNIT_NO_EXECUTE"                ,Tcontrol_t         ,1                             ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
92      _ALLOC2_SIGNAL_IN ( in_INSERT_RENAME_UNIT_HAS_IMMEDIAT              ,"RENAME_UNIT_HAS_IMMEDIAT"              ,Tcontrol_t         ,1                             ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
93      _ALLOC2_SIGNAL_IN ( in_INSERT_RENAME_UNIT_IMMEDIAT                  ,"RENAME_UNIT_IMMEDIAT"                  ,Tgeneral_data_t    ,_param->_size_general_data    ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
94      _ALLOC2_SIGNAL_IN ( in_INSERT_RENAME_UNIT_STORE_QUEUE_PTR_WRITE     ,"RENAME_UNIT_STORE_QUEUE_PTR_WRITE"     ,Tlsq_ptr_t         ,_param->_size_store_queue_ptr ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
95      _ALLOC2_SIGNAL_IN ( in_INSERT_RENAME_UNIT_STORE_QUEUE_PTR_READ      ,"RENAME_UNIT_STORE_QUEUE_PTR_READ"      ,Tlsq_ptr_t         ,_param->_size_store_queue_ptr ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
96      _ALLOC2_SIGNAL_IN ( in_INSERT_RENAME_UNIT_STORE_QUEUE_EMPTY         ,"RENAME_UNIT_STORE_QUEUE_EMPTY"         ,Tcontrol_t         ,1                             ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
97      _ALLOC2_SIGNAL_IN ( in_INSERT_RENAME_UNIT_LOAD_QUEUE_PTR_WRITE      ,"RENAME_UNIT_LOAD_QUEUE_PTR_WRITE"      ,Tlsq_ptr_t         ,_param->_size_load_queue_ptr  ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
98      _ALLOC2_SIGNAL_IN ( in_INSERT_RENAME_UNIT_READ_RA                   ,"RENAME_UNIT_READ_RA"                   ,Tcontrol_t         ,1                             ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
99      _ALLOC2_SIGNAL_IN ( in_INSERT_RENAME_UNIT_NUM_REG_RA_PHY            ,"RENAME_UNIT_NUM_REG_RA_PHY"            ,Tgeneral_address_t ,_param->_size_general_register,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
100      _ALLOC2_SIGNAL_IN ( in_INSERT_RENAME_UNIT_READ_RB                   ,"RENAME_UNIT_READ_RB"                   ,Tcontrol_t         ,1                             ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
101      _ALLOC2_SIGNAL_IN ( in_INSERT_RENAME_UNIT_NUM_REG_RB_PHY            ,"RENAME_UNIT_NUM_REG_RB_PHY"            ,Tgeneral_address_t ,_param->_size_general_register,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
102      _ALLOC2_SIGNAL_IN ( in_INSERT_RENAME_UNIT_READ_RC                   ,"RENAME_UNIT_READ_RC"                   ,Tcontrol_t         ,1                             ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
103      _ALLOC2_SIGNAL_IN ( in_INSERT_RENAME_UNIT_NUM_REG_RC_PHY            ,"RENAME_UNIT_NUM_REG_RC_PHY"            ,Tspecial_address_t ,_param->_size_special_register,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
104      _ALLOC2_SIGNAL_IN ( in_INSERT_RENAME_UNIT_WRITE_RD                  ,"RENAME_UNIT_WRITE_RD"                  ,Tcontrol_t         ,1                             ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
105      _ALLOC2_SIGNAL_IN ( in_INSERT_RENAME_UNIT_NUM_REG_RD_PHY_OLD        ,"RENAME_UNIT_NUM_REG_RD_PHY_OLD"        ,Tgeneral_address_t ,_param->_size_general_register,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
106      _ALLOC2_SIGNAL_IN ( in_INSERT_RENAME_UNIT_NUM_REG_RD_PHY_NEW        ,"RENAME_UNIT_NUM_REG_RD_PHY_NEW"        ,Tgeneral_address_t ,_param->_size_general_register,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
107      _ALLOC2_SIGNAL_IN ( in_INSERT_RENAME_UNIT_WRITE_RE                  ,"RENAME_UNIT_WRITE_RE"                  ,Tcontrol_t         ,1                             ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
108      _ALLOC2_SIGNAL_IN ( in_INSERT_RENAME_UNIT_NUM_REG_RE_PHY_OLD        ,"RENAME_UNIT_NUM_REG_RE_PHY_OLD"        ,Tspecial_address_t ,_param->_size_special_register,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
109      _ALLOC2_SIGNAL_IN ( in_INSERT_RENAME_UNIT_NUM_REG_RE_PHY_NEW        ,"RENAME_UNIT_NUM_REG_RE_PHY_NEW"        ,Tspecial_address_t ,_param->_size_special_register,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
110
111      _ALLOC2_SIGNAL_OUT(out_INSERT_COMMIT_UNIT_VAL                       ,"COMMIT_UNIT_VAL"                       ,Tcontrol_t         ,1                             ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
112      _ALLOC2_SIGNAL_IN ( in_INSERT_COMMIT_UNIT_ACK                       ,"COMMIT_UNIT_ACK"                       ,Tcontrol_t         ,1                             ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
113      _ALLOC2_SIGNAL_OUT(out_INSERT_COMMIT_UNIT_FRONT_END_ID              ,"COMMIT_UNIT_FRONT_END_ID"              ,Tcontext_t         ,_param->_size_front_end_id    ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
114      _ALLOC2_SIGNAL_OUT(out_INSERT_COMMIT_UNIT_CONTEXT_ID                ,"COMMIT_UNIT_CONTEXT_ID"                ,Tcontext_t         ,_param->_size_context_id      ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
115//    _ALLOC2_SIGNAL_OUT(out_INSERT_COMMIT_UNIT_RENAME_UNIT_ID            ,"COMMIT_UNIT_RENAME_UNIT_ID"            ,Tcontext_t         ,_param->_size_rename_unit_id  ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
116      _ALLOC2_SIGNAL_OUT(out_INSERT_COMMIT_UNIT_TYPE                      ,"COMMIT_UNIT_TYPE"                      ,Ttype_t            ,_param->_size_type            ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
117      _ALLOC2_SIGNAL_OUT(out_INSERT_COMMIT_UNIT_OPERATION                 ,"COMMIT_UNIT_OPERATION"                 ,Toperation_t       ,_param->_size_operation       ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
118      _ALLOC2_SIGNAL_OUT(out_INSERT_COMMIT_UNIT_NO_EXECUTE                ,"COMMIT_UNIT_NO_EXECUTE"                ,Tcontrol_t         ,1                             ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
119      _ALLOC2_SIGNAL_OUT(out_INSERT_COMMIT_UNIT_STORE_QUEUE_PTR_WRITE     ,"COMMIT_UNIT_STORE_QUEUE_PTR_WRITE"     ,Tlsq_ptr_t         ,_param->_size_store_queue_ptr ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
120      _ALLOC2_SIGNAL_OUT(out_INSERT_COMMIT_UNIT_LOAD_QUEUE_PTR_WRITE      ,"COMMIT_UNIT_LOAD_QUEUE_PTR_WRITE"      ,Tlsq_ptr_t         ,_param->_size_load_queue_ptr  ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
121#ifdef DEBUG
122      _ALLOC2_SIGNAL_OUT(out_INSERT_COMMIT_UNIT_READ_RA                   ,"COMMIT_UNIT_READ_RA"                   ,Tcontrol_t         ,1                             ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
123      _ALLOC2_SIGNAL_OUT(out_INSERT_COMMIT_UNIT_NUM_REG_RA_PHY            ,"COMMIT_UNIT_NUM_REG_RA_PHY"            ,Tgeneral_address_t ,_param->_size_general_register,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
124      _ALLOC2_SIGNAL_OUT(out_INSERT_COMMIT_UNIT_READ_RB                   ,"COMMIT_UNIT_READ_RB"                   ,Tcontrol_t         ,1                             ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
125      _ALLOC2_SIGNAL_OUT(out_INSERT_COMMIT_UNIT_NUM_REG_RB_PHY            ,"COMMIT_UNIT_NUM_REG_RB_PHY"            ,Tgeneral_address_t ,_param->_size_general_register,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
126      _ALLOC2_SIGNAL_OUT(out_INSERT_COMMIT_UNIT_READ_RC                   ,"COMMIT_UNIT_READ_RC"                   ,Tcontrol_t         ,1                             ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
127      _ALLOC2_SIGNAL_OUT(out_INSERT_COMMIT_UNIT_NUM_REG_RC_PHY            ,"COMMIT_UNIT_NUM_REG_RC_PHY"            ,Tspecial_address_t ,_param->_size_special_register,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
128#endif
129      _ALLOC2_SIGNAL_OUT(out_INSERT_COMMIT_UNIT_WRITE_RD                  ,"COMMIT_UNIT_WRITE_RD"                  ,Tcontrol_t         ,1                             ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
130      _ALLOC2_SIGNAL_OUT(out_INSERT_COMMIT_UNIT_NUM_REG_RD_PHY_OLD        ,"COMMIT_UNIT_NUM_REG_RD_PHY_OLD"        ,Tgeneral_address_t ,_param->_size_general_register,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
131      _ALLOC2_SIGNAL_OUT(out_INSERT_COMMIT_UNIT_NUM_REG_RD_PHY_NEW        ,"COMMIT_UNIT_NUM_REG_RD_PHY_NEW"        ,Tgeneral_address_t ,_param->_size_general_register,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
132      _ALLOC2_SIGNAL_OUT(out_INSERT_COMMIT_UNIT_WRITE_RE                  ,"COMMIT_UNIT_WRITE_RE"                  ,Tcontrol_t         ,1                             ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
133      _ALLOC2_SIGNAL_OUT(out_INSERT_COMMIT_UNIT_NUM_REG_RE_PHY_OLD        ,"COMMIT_UNIT_NUM_REG_RE_PHY_OLD"        ,Tspecial_address_t ,_param->_size_special_register,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
134      _ALLOC2_SIGNAL_OUT(out_INSERT_COMMIT_UNIT_NUM_REG_RE_PHY_NEW        ,"COMMIT_UNIT_NUM_REG_RE_PHY_NEW"        ,Tspecial_address_t ,_param->_size_special_register,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
135
136      _ALLOC2_SIGNAL_OUT(out_INSERT_ISSUE_QUEUE_VAL                       ,"ISSUE_QUEUE_VAL"                       ,Tcontrol_t         ,1                             ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
137      _ALLOC2_SIGNAL_IN ( in_INSERT_ISSUE_QUEUE_ACK                       ,"ISSUE_QUEUE_ACK"                       ,Tcontrol_t         ,1                             ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
138      _ALLOC2_SIGNAL_OUT(out_INSERT_ISSUE_QUEUE_FRONT_END_ID              ,"ISSUE_QUEUE_FRONT_END_ID"              ,Tcontext_t         ,_param->_size_front_end_id    ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
139      _ALLOC2_SIGNAL_OUT(out_INSERT_ISSUE_QUEUE_CONTEXT_ID                ,"ISSUE_QUEUE_CONTEXT_ID"                ,Tcontext_t         ,_param->_size_context_id      ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
140      _ALLOC2_SIGNAL_OUT(out_INSERT_ISSUE_QUEUE_OPERATION                 ,"ISSUE_QUEUE_OPERATION"                 ,Toperation_t       ,_param->_size_operation       ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
141      _ALLOC2_SIGNAL_OUT(out_INSERT_ISSUE_QUEUE_TYPE                      ,"ISSUE_QUEUE_TYPE"                      ,Ttype_t            ,_param->_size_type            ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
142      _ALLOC2_SIGNAL_OUT(out_INSERT_ISSUE_QUEUE_STORE_QUEUE_PTR_WRITE     ,"ISSUE_QUEUE_STORE_QUEUE_PTR_WRITE"     ,Tlsq_ptr_t         ,_param->_size_store_queue_ptr ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
143      _ALLOC2_SIGNAL_OUT(out_INSERT_ISSUE_QUEUE_STORE_QUEUE_PTR_READ      ,"ISSUE_QUEUE_STORE_QUEUE_PTR_READ"      ,Tlsq_ptr_t         ,_param->_size_store_queue_ptr ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
144      _ALLOC2_SIGNAL_OUT(out_INSERT_ISSUE_QUEUE_STORE_QUEUE_EMPTY         ,"ISSUE_QUEUE_STORE_QUEUE_EMPTY"         ,Tcontrol_t         ,1                             ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
145      _ALLOC2_SIGNAL_OUT(out_INSERT_ISSUE_QUEUE_LOAD_QUEUE_PTR_WRITE      ,"ISSUE_QUEUE_LOAD_QUEUE_PTR_WRITE"      ,Tlsq_ptr_t         ,_param->_size_load_queue_ptr  ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
146      _ALLOC2_SIGNAL_OUT(out_INSERT_ISSUE_QUEUE_HAS_IMMEDIAT              ,"ISSUE_QUEUE_HAS_IMMEDIAT"              ,Tcontrol_t         ,1                             ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
147      _ALLOC2_SIGNAL_OUT(out_INSERT_ISSUE_QUEUE_IMMEDIAT                  ,"ISSUE_QUEUE_IMMEDIAT"                  ,Tgeneral_data_t    ,_param->_size_general_data    ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
148      _ALLOC2_SIGNAL_OUT(out_INSERT_ISSUE_QUEUE_READ_RA                   ,"ISSUE_QUEUE_READ_RA"                   ,Tcontrol_t         ,1                             ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
149      _ALLOC2_SIGNAL_OUT(out_INSERT_ISSUE_QUEUE_NUM_REG_RA                ,"ISSUE_QUEUE_NUM_REG_RA"                ,Tgeneral_address_t ,_param->_size_general_register,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
150      _ALLOC2_SIGNAL_OUT(out_INSERT_ISSUE_QUEUE_READ_RB                   ,"ISSUE_QUEUE_READ_RB"                   ,Tcontrol_t         ,1                             ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
151      _ALLOC2_SIGNAL_OUT(out_INSERT_ISSUE_QUEUE_NUM_REG_RB                ,"ISSUE_QUEUE_NUM_REG_RB"                ,Tgeneral_address_t ,_param->_size_general_register,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
152      _ALLOC2_SIGNAL_OUT(out_INSERT_ISSUE_QUEUE_READ_RC                   ,"ISSUE_QUEUE_READ_RC"                   ,Tcontrol_t         ,1                             ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
153      _ALLOC2_SIGNAL_OUT(out_INSERT_ISSUE_QUEUE_NUM_REG_RC                ,"ISSUE_QUEUE_NUM_REG_RC"                ,Tspecial_address_t ,_param->_size_special_register,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
154      _ALLOC2_SIGNAL_OUT(out_INSERT_ISSUE_QUEUE_WRITE_RD                  ,"ISSUE_QUEUE_WRITE_RD"                  ,Tcontrol_t         ,1                             ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
155      _ALLOC2_SIGNAL_OUT(out_INSERT_ISSUE_QUEUE_NUM_REG_RD                ,"ISSUE_QUEUE_NUM_REG_RD"                ,Tgeneral_address_t ,_param->_size_general_register,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
156      _ALLOC2_SIGNAL_OUT(out_INSERT_ISSUE_QUEUE_WRITE_RE                  ,"ISSUE_QUEUE_WRITE_RE"                  ,Tcontrol_t         ,1                             ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
157      _ALLOC2_SIGNAL_OUT(out_INSERT_ISSUE_QUEUE_NUM_REG_RE                ,"ISSUE_QUEUE_NUM_REG_RE"                ,Tspecial_address_t ,_param->_size_special_register,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
158
159      ALLOC2_INTERFACE_END(_param->_nb_rename_unit,_param->_nb_inst_insert[it1]);
160    }
161
162//     // ~~~~~[ Interface "retire" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
163//     {
164//       ALLOC1_INTERFACE_BEGIN("retire",OUT, WEST,_("retire's interface"),_param->_sum_inst_retire);
165     
166//       ALLOC1_SIGNAL_OUT (out_RETIRE_VAL                                   ,"VAL"                                   ,Tcontrol_t         ,1                             );
167//       ALLOC1_SIGNAL_IN  ( in_RETIRE_ACK                                   ,"ACK"                                   ,Tcontrol_t         ,1                             );
168//       ALLOC1_SIGNAL_OUT (out_RETIRE_RD_OLD_USE                            ,"RD_OLD_USE"                            ,Tcontrol_t         ,1                             );
169//       ALLOC1_SIGNAL_OUT (out_RETIRE_RD_OLD_NUM_REG                        ,"RD_OLD_NUM_REG"                        ,Tgeneral_address_t ,_param->_size_general_register);
170//       ALLOC1_SIGNAL_OUT (out_RETIRE_RD_NEW_USE                            ,"RD_NEW_USE"                            ,Tcontrol_t         ,1                             );
171//       ALLOC1_SIGNAL_OUT (out_RETIRE_RD_NEW_NUM_REG                        ,"RD_NEW_NUM_REG"                        ,Tgeneral_address_t ,_param->_size_general_register);
172//       ALLOC1_SIGNAL_OUT (out_RETIRE_RE_OLD_USE                            ,"RE_OLD_USE"                            ,Tcontrol_t         ,1                             );
173//       ALLOC1_SIGNAL_OUT (out_RETIRE_RE_OLD_NUM_REG                        ,"RE_OLD_NUM_REG"                        ,Tspecial_address_t ,_param->_size_special_register);
174//       ALLOC1_SIGNAL_OUT (out_RETIRE_RE_NEW_USE                            ,"RE_NEW_USE"                            ,Tcontrol_t         ,1                             );
175//       ALLOC1_SIGNAL_OUT (out_RETIRE_RE_NEW_NUM_REG                        ,"RE_NEW_NUM_REG"                        ,Tspecial_address_t ,_param->_size_special_register);
176
177//       ALLOC1_INTERFACE_END(_param->_sum_inst_retire);
178//     }
179
180//     {
181//       ALLOC2_INTERFACE_BEGIN("retire",IN, EAST,_("retire's interface"),_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
182
183//       _ALLOC2_SIGNAL_OUT(out_RETIRE_RENAME_UNIT_VAL                       ,"RENAME_UNIT_VAL"                       ,Tcontrol_t         ,1                             ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
184//       _ALLOC2_SIGNAL_IN ( in_RETIRE_RENAME_UNIT_ACK                       ,"RENAME_UNIT_ACK"                       ,Tcontrol_t         ,1                             ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
185//       _ALLOC2_SIGNAL_OUT(out_RETIRE_RENAME_UNIT_FRONT_END_ID              ,"RENAME_UNIT_FRONT_END_ID"              ,Tcontext_t         ,_param->_size_front_end_id    ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
186//       _ALLOC2_SIGNAL_OUT(out_RETIRE_RENAME_UNIT_WRITE_RD                  ,"RENAME_UNIT_WRITE_RD"                  ,Tcontrol_t         ,1                             ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
187//       _ALLOC2_SIGNAL_OUT(out_RETIRE_RENAME_UNIT_NUM_REG_RD_PHY_OLD        ,"RENAME_UNIT_NUM_REG_RD_PHY_OLD"        ,Tgeneral_address_t ,_param->_size_general_register,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
188//       _ALLOC2_SIGNAL_OUT(out_RETIRE_RENAME_UNIT_NUM_REG_RD_PHY_NEW        ,"RENAME_UNIT_NUM_REG_RD_PHY_NEW"        ,Tgeneral_address_t ,_param->_size_general_register,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
189//       _ALLOC2_SIGNAL_OUT(out_RETIRE_RENAME_UNIT_WRITE_RE                  ,"RENAME_UNIT_WRITE_RE"                  ,Tcontrol_t         ,1                             ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
190//       _ALLOC2_SIGNAL_OUT(out_RETIRE_RENAME_UNIT_NUM_REG_RE_PHY_OLD        ,"RENAME_UNIT_NUM_REG_RE_PHY_OLD"        ,Tspecial_address_t ,_param->_size_special_register,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
191//       _ALLOC2_SIGNAL_OUT(out_RETIRE_RENAME_UNIT_NUM_REG_RE_PHY_NEW        ,"RENAME_UNIT_NUM_REG_RE_PHY_NEW"        ,Tspecial_address_t ,_param->_size_special_register,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
192//       _ALLOC2_SIGNAL_OUT(out_RETIRE_RENAME_UNIT_EVENT_STATE               ,"RENAME_UNIT_EVENT_STATE"               ,Tevent_state_t     ,_param->_size_event_state     ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
193
194//       _ALLOC2_SIGNAL_IN ( in_RETIRE_COMMIT_UNIT_VAL                       ,"COMMIT_UNIT_VAL"                       ,Tcontrol_t         ,1                             ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
195//       _ALLOC2_SIGNAL_OUT(out_RETIRE_COMMIT_UNIT_ACK                       ,"COMMIT_UNIT_ACK"                       ,Tcontrol_t         ,1                             ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
196//       _ALLOC2_SIGNAL_IN ( in_RETIRE_COMMIT_UNIT_FRONT_END_ID              ,"COMMIT_UNIT_FRONT_END_ID"              ,Tcontext_t         ,_param->_size_front_end_id    ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
197//       _ALLOC2_SIGNAL_IN ( in_RETIRE_COMMIT_UNIT_WRITE_RD                  ,"COMMIT_UNIT_WRITE_RD"                  ,Tcontrol_t         ,1                             ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
198//       _ALLOC2_SIGNAL_IN ( in_RETIRE_COMMIT_UNIT_NUM_REG_RD_PHY_OLD        ,"COMMIT_UNIT_NUM_REG_RD_PHY_OLD"        ,Tgeneral_address_t ,_param->_size_general_register,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
199//       _ALLOC2_SIGNAL_IN ( in_RETIRE_COMMIT_UNIT_NUM_REG_RD_PHY_NEW        ,"COMMIT_UNIT_NUM_REG_RD_PHY_NEW"        ,Tgeneral_address_t ,_param->_size_general_register,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
200//       _ALLOC2_SIGNAL_IN ( in_RETIRE_COMMIT_UNIT_WRITE_RE                  ,"COMMIT_UNIT_WRITE_RE"                  ,Tcontrol_t         ,1                             ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
201//       _ALLOC2_SIGNAL_IN ( in_RETIRE_COMMIT_UNIT_NUM_REG_RE_PHY_OLD        ,"COMMIT_UNIT_NUM_REG_RE_PHY_OLD"        ,Tspecial_address_t ,_param->_size_special_register,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
202//       _ALLOC2_SIGNAL_IN ( in_RETIRE_COMMIT_UNIT_NUM_REG_RE_PHY_NEW        ,"COMMIT_UNIT_NUM_REG_RE_PHY_NEW"        ,Tspecial_address_t ,_param->_size_special_register,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
203//       _ALLOC2_SIGNAL_IN ( in_RETIRE_COMMIT_UNIT_EVENT_STATE               ,"COMMIT_UNIT_EVENT_STATE"               ,Tevent_state_t     ,_param->_size_event_state     ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
204
205//       ALLOC2_INTERFACE_END(_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);
206//     }
207
208    // ~~~~~[ Interface : "spr" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
209    {
210      ALLOC2_INTERFACE_BEGIN("spr",IN, NORTH,_("spr's interface"),_param->_nb_front_end,_param->_nb_context[it1]);
211
212      _ALLOC2_SIGNAL_OUT(out_SPR_SR_IEE                                   ,"SR_IEE"                                ,Tcontrol_t         ,1                             ,_param->_nb_front_end,_param->_nb_context[it1]);
213      _ALLOC2_SIGNAL_OUT(out_SPR_SR_EPH                                   ,"SR_EPH"                                ,Tcontrol_t         ,1                             ,_param->_nb_front_end,_param->_nb_context[it1]);
214      _ALLOC2_SIGNAL_OUT(out_SPR_RENAME_UNIT_SR                           ,"RENAME_UNIT_SR"                        ,Tspr_t             ,_param->_size_spr             ,_param->_nb_front_end,_param->_nb_context[it1]);
215      _ALLOC2_SIGNAL_OUT(out_SPR_COMMIT_UNIT_SR_OVE                       ,"COMMIT_UNIT_SR_OVE"                    ,Tcontrol_t         ,1                             ,_param->_nb_front_end,_param->_nb_context[it1]);
216      _ALLOC2_SIGNAL_IN ( in_SPR_SPECIAL_REGISTER_UNIT_SR                 ,"SPECIAL_REGISTER_UNIT_SR"              ,Tspr_t             ,_param->_size_spr             ,_param->_nb_front_end,_param->_nb_context[it1]);
217
218      ALLOC2_INTERFACE_END(_param->_nb_front_end,_param->_nb_context[it1]);
219    }
220
221    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
222
223#ifdef POSITION
224    if (usage_is_set(_usage,USE_POSITION))
225      _component->generate_file();
226#endif
227
228    log_end(OOO_Engine_Glue,FUNCTION);
229  };
230
231}; // end namespace ooo_engine_glue
232}; // end namespace ooo_engine
233}; // end namespace multi_ooo_engine
234}; // end namespace core
235
236}; // end namespace behavioural
237}; // end namespace morpheo             
Note: See TracBrowser for help on using the repository browser.