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 @ 23

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

1) Ajout d'un "printer" XML pour la configuration de paramètres

2) Fin du composant "Two_Level_Branch_Predictor"

validation * systemc

  • vhdl
File size: 2.4 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    for (uint32_t i=0; i<_param._nb_prediction; i++)
25      {
26        if (_param._have_bht)
27          {
28        vhdl.set_port (" in_PREDICT_BHT_ACK_"    +toString(i), IN, 1);
29        vhdl.set_port ("out_PREDICT_BHT_ADDRESS_"+toString(i),OUT,_param._bht_size_address);
30          }
31        if (_param._have_bht and _param._have_pht)
32        vhdl.set_port (" in_PREDICT_BHT_HISTORY_"+toString(i), IN,_param._bht_size_history);
33        if (_param._have_pht)
34          {
35        vhdl.set_port (" in_PREDICT_PHT_ACK_"    +toString(i), IN, 1);
36        vhdl.set_port ("out_PREDICT_PHT_ADDRESS_"+toString(i),OUT,_param._pht_size_address);
37          }
38       
39        vhdl.set_port ("out_PREDICT_ACK_"        +toString(i),OUT, 1);
40        vhdl.set_port (" in_PREDICT_ADDRESS_"    +toString(i), IN,_param._size_address);
41      }
42
43    for (uint32_t i=0; i<_param._nb_branch_complete; i++)
44      {
45        if (_param._have_bht)
46          {
47        vhdl.set_port (" in_BRANCH_COMPLETE_BHT_ACK_"    +toString(i), IN, 1);
48        vhdl.set_port ("out_BRANCH_COMPLETE_BHT_ADDRESS_"+toString(i),OUT,_param._bht_size_address);
49          }
50        if (_param._have_bht and _param._have_pht)
51        vhdl.set_port (" in_BRANCH_COMPLETE_BHT_HISTORY_"+toString(i), IN,_param._bht_size_history);
52        if (_param._have_pht)
53          {
54        vhdl.set_port (" in_BRANCH_COMPLETE_PHT_ACK_"    +toString(i), IN, 1);
55        vhdl.set_port ("out_BRANCH_COMPLETE_PHT_ADDRESS_"+toString(i),OUT,_param._pht_size_address);
56          }
57        vhdl.set_port ("out_BRANCH_COMPLETE_ACK_"        +toString(i),OUT, 1);
58        vhdl.set_port (" in_BRANCH_COMPLETE_ADDRESS_"    +toString(i), IN,_param._size_address);
59      }
60
61    log_printf(FUNC,Two_Level_Branch_Predictor_Glue,"vhdl_port","End");
62  };
63
64}; // end namespace two_level_branch_predictor_glue
65}; // end namespace two_level_branch_predictor
66}; // end namespace meta_predictor
67}; // end namespace predictor
68}; // end namespace stage_1_ifetch
69}; // end namespace behavioural
70}; // end namespace morpheo             
71#endif
Note: See TracBrowser for help on using the repository browser.