source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed_allocation.cpp @ 42

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

Modification des classes d'encapsulation des interfaces :

  • gère les signaux à écrire dans le vhdl
  • les traces pour le testbench
  • la génération des vhdl structurelles

-> test sur la Pattern History Table

File size: 2.1 KB
Line 
1#ifdef SYSTEMC
2/*
3 * $Id$
4 *
5 * [ Description ]
6 *
7 */
8
9#include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Select_Priority_Fixed.h"
10
11namespace morpheo{
12namespace behavioural {
13namespace generic {
14namespace select {
15namespace select_priority_fixed {
16
17  void Select_Priority_Fixed::allocation (void)
18  {
19    log_printf(FUNC,Select_Priority_Fixed,"allocation","Begin");
20
21    _component   = new Component ();
22
23    Entity * entity = _component->set_entity (_name                 
24#ifdef POSITION
25                                             ,"Select_Priority_Fixed"
26                                             ,COMBINATORY           
27#endif
28                                              );
29   
30    _interfaces = entity->set_interfaces();
31
32    // ~~~~~[ Interface : "" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
33
34    Interface_fifo * interface = _interfaces->set_interface(""
35#ifdef POSITION
36                                                            ,IN 
37                                                            ,WEST
38                                                            ,"Generalist interface"
39#endif
40                                                            );
41
42     in_CLOCK        = interface->set_signal_clk              ("clock" ,1, CLOCK_VHDL_NO);
43     in_NRESET       = interface->set_signal_in  <Tcontrol_t> ("nreset",1);
44     in_VAL          = new SC_IN (Tcontrol_t)           * [_param._nb_entity];
45    if (_param._encoding_one_hot)
46    out_ACK          = new SC_OUT(Tcontrol_t)           * [_param._nb_entity];
47
48    for (uint32_t i=0; i<_param._nb_entity; i++)
49      {
50         in_VAL [i]    = interface->set_signal_in  <Tcontrol_t> ("val_"+toString(i),1);
51        if (_param._encoding_one_hot)
52        out_ACK [i]    = interface->set_signal_out <Tcontrol_t> ("ack_"+toString(i),1);
53      }
54
55    if (_param._encoding_compact)
56      {
57        out_ENTITY     = interface->set_signal_out <Tentity_t > ("entity"    , _param._size_entity);
58        out_ENTITY_ACK = interface->set_signal_out <Tcontrol_t> ("entity_ack", 1);
59      }
60
61    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
62
63#ifdef POSITION
64    _component->generate_file();
65#endif
66
67    log_printf(FUNC,Select_Priority_Fixed,"allocation","End");
68  };
69
70}; // end namespace select_priority_fixed
71}; // end namespace select
72}; // end namespace generic
73}; // end namespace behavioural
74}; // end namespace morpheo             
75#endif
Note: See TracBrowser for help on using the repository browser.