source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Two_Level_Branch_Predictor_Glue/src/Two_Level_Branch_Predictor_Glue_vhdl_port.cpp @ 2

Last change on this file since 2 was 2, checked in by kane, 17 years ago

Import Morpheo

File size: 2.5 KB
Line 
1#ifdef VHDL
2/*
3 * $Id$
4 *
5 * [ Description ]
6 *
7 */
8
9#include "Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Two_Level_Branch_Predictor_Glue/include/Two_Level_Branch_Predictor_Glue.h"
10
11namespace morpheo                    {
12namespace behavioural {
13namespace stage_1_ifetch {
14namespace predictor {
15namespace meta_predictor {
16namespace two_level_branch_predictor {
17namespace two_level_branch_predictor_glue {
18
19
20  void Two_Level_Branch_Predictor_Glue::vhdl_port (Vhdl & vhdl)
21  {
22    log_printf(FUNC,Two_Level_Branch_Predictor_Glue,"vhdl_port","Begin");
23
24    vhdl.set_port (" in_CLOCK" , IN, 1);
25
26    for (uint32_t i=0; i<_param._nb_prediction; i++)
27      {
28        if (_param._have_bht)
29          {
30        vhdl.set_port (" in_PREDICT_BHT_ACK_"    +toString(i), IN, 1);
31        vhdl.set_port ("out_PREDICT_BHT_ADDRESS_"+toString(i),OUT,_param._bht_size_address);
32          }
33        if (_param._have_bht and _param._have_pht)
34        vhdl.set_port (" in_PREDICT_BHT_HISTORY_"+toString(i), IN,_param._bht_size_history);
35        if (_param._have_pht)
36          {
37        vhdl.set_port (" in_PREDICT_PHT_ACK_"    +toString(i), IN, 1);
38        vhdl.set_port ("out_PREDICT_PHT_ADDRESS_"+toString(i),OUT,_param._pht_size_address);
39          }
40       
41        vhdl.set_port ("out_PREDICT_ACK_"        +toString(i),OUT, 1);
42        vhdl.set_port (" in_PREDICT_ADDRESS_"    +toString(i), IN,_param._size_address);
43      }
44
45    for (uint32_t i=0; i<_param._nb_branch_complete; i++)
46      {
47        if (_param._have_bht)
48          {
49        vhdl.set_port (" in_BRANCH_COMPLETE_BHT_ACK_"    +toString(i), IN, 1);
50        vhdl.set_port ("out_BRANCH_COMPLETE_BHT_ADDRESS_"+toString(i),OUT,_param._bht_size_address);
51          }
52        if (_param._have_bht and _param._have_pht)
53        vhdl.set_port (" in_BRANCH_COMPLETE_BHT_HISTORY_"+toString(i), IN,_param._bht_size_history);
54        if (_param._have_pht)
55          {
56        vhdl.set_port (" in_BRANCH_COMPLETE_PHT_ACK_"    +toString(i), IN, 1);
57        vhdl.set_port ("out_BRANCH_COMPLETE_PHT_ADDRESS_"+toString(i),OUT,_param._pht_size_address);
58          }
59        vhdl.set_port ("out_BRANCH_COMPLETE_ACK_"        +toString(i),OUT, 1);
60        vhdl.set_port (" in_BRANCH_COMPLETE_ADDRESS_"    +toString(i), IN,_param._size_address);
61      }
62
63    log_printf(FUNC,Two_Level_Branch_Predictor_Glue,"vhdl_port","End");
64  };
65
66}; // end namespace two_level_branch_predictor_glue
67}; // end namespace two_level_branch_predictor
68}; // end namespace meta_predictor
69}; // end namespace predictor
70}; // end namespace stage_1_ifetch
71}; // end namespace behavioural
72}; // end namespace morpheo             
73#endif
Note: See TracBrowser for help on using the repository browser.