source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Shifter_allocation.cpp @ 2

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

Import Morpheo

File size: 2.8 KB
Line 
1#ifdef SYSTEMC
2/*
3 * $Id$
4 *
5 * [ Description ]
6 *
7 */
8
9#include "Behavioural/Generic/Shifter/include/Shifter.h"
10
11namespace morpheo                    {
12namespace behavioural {
13namespace generic {
14namespace shifter {
15
16
17  void Shifter::allocation (void)
18  {
19    string rename;
20
21#if (defined(STATISTICS) || defined (VHDL_TESTBENCH))
22     in_CLOCK           = new SC_CLOCK ("SC_CLOCK");
23#endif
24    // Interface "shifter"
25     in_SHIFTER_DATA      = new SC_IN (Tdata_t)      * [_param._nb_port];
26    if (_param._shift_value == 0)
27     in_SHIFTER_SHIFT     = new SC_IN (Tshift_t)     * [_param._nb_port];
28    if (_param._direction   == external_direction)
29     in_SHIFTER_DIRECTION = new SC_IN (Tdirection_t) * [_param._nb_port];
30    if (_param._rotate      == external_rotate)
31     in_SHIFTER_TYPE      = new SC_IN (Ttype_t)      * [_param._nb_port];
32    if (_param._carry       == external_carry)
33     in_SHIFTER_CARRY     = new SC_IN (Tcarry_t)     * [_param._nb_port];
34    if (_param._carry       == external_completion)
35    if (_param._type_completion_bool == true)
36     in_SHIFTER_CARRY_IN  = new SC_IN (Tcontrol_t)   * [_param._nb_port];
37    else
38     in_SHIFTER_COMPLETION= new SC_IN (Tdata_t)      * [_param._nb_port];
39    out_SHIFTER_DATA      = new SC_OUT(Tdata_t)      * [_param._nb_port];
40   
41    for (uint32_t i=0; i<_param._nb_port; i++)
42      {
43        rename = "in_SHIFTER_DATA["      + toString(i) + "]";
44         in_SHIFTER_DATA      [i] = new SC_IN (Tdata_t)      (rename.c_str());
45
46        if (_param._shift_value == 0)
47          {
48        rename = "in_SHIFTER_SHIFT["     + toString(i) + "]";
49         in_SHIFTER_SHIFT     [i] = new SC_IN (Tshift_t)     (rename.c_str());
50          }
51        if (_param._direction == external_direction)
52          {
53        rename = "in_SHIFTER_DIRECTION[" + toString(i) + "]";
54         in_SHIFTER_DIRECTION [i] = new SC_IN (Tdirection_t) (rename.c_str());
55          }
56        if (_param._rotate  == external_rotate)
57          {
58        rename = "in_SHIFTER_TYPE["      + toString(i) + "]";
59         in_SHIFTER_TYPE     [i]      = new SC_IN (Ttype_t)  (rename.c_str());
60          }
61        if (_param._carry == external_carry)
62          {
63        rename = "in_SHIFTER_CARRY["    + toString(i) + "]";
64         in_SHIFTER_CARRY    [i] = new SC_IN (Tcarry_t)      (rename.c_str());
65          }
66
67        if (_param._carry       == external_completion)
68        if (_param._type_completion_bool == true)
69          {
70         rename = "in_SHIFTER_CARRY_IN["      + toString(i) + "]";
71         in_SHIFTER_CARRY_IN   [i] = new SC_IN (Tcontrol_t)  (rename.c_str());   
72          }
73        else
74          {
75         rename = "in_SHIFTER_COMPLETION["    + toString(i) + "]";
76         in_SHIFTER_COMPLETION [i] = new SC_IN (Tdata_t)     (rename.c_str());
77          }
78       
79        rename = "out_SHIFTER_DATA["    + toString(i) + "]";
80        out_SHIFTER_DATA     [i] = new SC_OUT(Tdata_t)       (rename.c_str());
81      }
82  };
83
84}; // end namespace shifter
85}; // end namespace generic
86}; // end namespace behavioural
87}; // end namespace morpheo             
88#endif
Note: See TracBrowser for help on using the repository browser.