source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/src/Meta_Predictor_vhdl_declaration.cpp @ 42

Last change on this file since 42 was 5, checked in by rosiere, 17 years ago

Ajout du composant Meta_Predictor

File size: 3.5 KB
Line 
1#ifdef VHDL
2/*
3 * $Id$
4 *
5 * [ Description ]
6 *
7 */
8
9#include "Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/include/Meta_Predictor.h"
10
11namespace morpheo {
12namespace behavioural {
13namespace stage_1_ifetch {
14namespace predictor {
15namespace meta_predictor {
16
17
18  void Meta_Predictor::vhdl_declaration (Vhdl & vhdl)
19  {
20    log_printf(FUNC,Meta_Predictor,"vhdl_declaration","Begin");
21
22    for (uint32_t i=0; i<_param._nb_prediction; i++)
23      {
24        if (_param._have_meta_predictor)
25          {                                                                                                                   
26        vhdl.set_signal("signal_PREDICT_PREDICTOR_0_ACK_"+toString(i)+"", 1);
27        vhdl.set_signal("signal_PREDICT_PREDICTOR_1_ACK_"+toString(i)+"", 1);
28          }
29        vhdl.set_signal("signal_PREDICT_PREDICTOR_2_ACK_"+toString(i)+"", 1);
30
31        if (_param._have_meta_predictor)
32          {                                                                                                                   
33        if (_param._predictor_0_have_bht)
34        vhdl.set_signal("signal_PREDICT_PREDICTOR_0_BHT_HISTORY_"+toString(i)+"", _param._predictor_0_bht_size_shifter);
35        if (_param._predictor_0_have_pht)
36        vhdl.set_signal("signal_PREDICT_PREDICTOR_0_PHT_HISTORY_"+toString(i)+"", _param._predictor_0_pht_size_counter);
37        if (_param._predictor_1_have_bht)
38        vhdl.set_signal("signal_PREDICT_PREDICTOR_1_BHT_HISTORY_"+toString(i)+"", _param._predictor_1_bht_size_shifter);
39        if (_param._predictor_1_have_pht)
40        vhdl.set_signal("signal_PREDICT_PREDICTOR_1_PHT_HISTORY_"+toString(i)+"", _param._predictor_1_pht_size_counter);
41          }
42        if (_param._predictor_2_have_bht)
43        vhdl.set_signal("signal_PREDICT_PREDICTOR_2_BHT_HISTORY_"+toString(i)+"", _param._predictor_2_bht_size_shifter);
44        if (_param._predictor_2_have_pht)
45        vhdl.set_signal("signal_PREDICT_PREDICTOR_2_PHT_HISTORY_"+toString(i)+"", _param._predictor_2_pht_size_counter);
46      }
47
48    for (uint32_t i=0; i<_param._nb_branch_complete; i++)
49      {
50        if (_param._have_meta_predictor)
51          {                                                                                                                   
52        vhdl.set_signal("signal_BRANCH_COMPLETE_PREDICTOR_0_ACK_"+toString(i)+"      ", 1);
53        vhdl.set_signal("signal_BRANCH_COMPLETE_PREDICTOR_1_ACK_"+toString(i)+"      ", 1);
54        vhdl.set_signal("signal_BRANCH_COMPLETE_PREDICTOR_2_VAL_"+toString(i)+"      ", 1);
55        vhdl.set_signal("signal_BRANCH_COMPLETE_PREDICTOR_2_DIRECTION_"+toString(i)+"", 1);
56          }
57        vhdl.set_signal("signal_BRANCH_COMPLETE_PREDICTOR_2_ACK_"+toString(i)+"      ", 1);
58
59        if (_param._have_meta_predictor)
60          {                                                                                                                   
61        if (_param._predictor_0_have_bht)
62        vhdl.set_signal("signal_BRANCH_COMPLETE_PREDICTOR_0_BHT_HISTORY_"+toString(i)+"", _param._predictor_0_bht_size_shifter);
63        if (_param._predictor_0_have_pht)
64        vhdl.set_signal("signal_BRANCH_COMPLETE_PREDICTOR_0_PHT_HISTORY_"+toString(i)+"", _param._predictor_0_pht_size_counter);
65        if (_param._predictor_1_have_bht)
66        vhdl.set_signal("signal_BRANCH_COMPLETE_PREDICTOR_1_BHT_HISTORY_"+toString(i)+"", _param._predictor_1_bht_size_shifter);
67        if (_param._predictor_1_have_pht)
68        vhdl.set_signal("signal_BRANCH_COMPLETE_PREDICTOR_1_PHT_HISTORY_"+toString(i)+"", _param._predictor_1_pht_size_counter);
69          }
70        if (_param._predictor_2_have_bht)
71        vhdl.set_signal("signal_BRANCH_COMPLETE_PREDICTOR_2_BHT_HISTORY_"+toString(i)+"", _param._predictor_2_bht_size_shifter);
72        if (_param._predictor_2_have_pht)
73        vhdl.set_signal("signal_BRANCH_COMPLETE_PREDICTOR_2_PHT_HISTORY_"+toString(i)+"", _param._predictor_2_pht_size_counter);
74      }
75
76
77    log_printf(FUNC,Meta_Predictor,"vhdl_declaration","End");
78  };
79
80}; // end namespace meta_predictor
81}; // end namespace predictor
82}; // end namespace stage_1_ifetch
83
84}; // end namespace behavioural
85}; // end namespace morpheo             
86#endif
Note: See TracBrowser for help on using the repository browser.