source: trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Signal_testbench_body.cpp @ 75

Last change on this file since 75 was 75, checked in by rosiere, 16 years ago

Update all component (except front_end) to :

  • new statistics model
  • no namespace std
File size: 1.4 KB
Line 
1#ifdef VHDL_TESTBENCH
2/*
3 * $Id$
4 *
5 * [ Description ]
6 *
7 */
8
9#include "Behavioural/include/Signal.h"
10
11namespace morpheo              {
12namespace behavioural          {
13
14  void Signal::testbench_body (Vhdl * & vhdl,
15                               std::string   counter_name,
16                               std::string   reset_name  )
17  {
18    log_printf(FUNC,Behavioural,"testbench_body","Begin");
19
20    // _list_value is empty if we don't trace
21
22    if ((_presence_port == PORT_VHDL_YES_TESTBENCH_YES) or
23        (_presence_port == PORT_VHDL_NO_TESTBENCH_YES ))
24      if (_list_value->empty()== false)
25        {
26          std::string separator;
27          if (_size == 1)
28            separator = "\'";
29          else
30            separator = "\"";
31         
32          std::string signame = (_direction==OUT)?(_name+"_test"):_name;
33         
34          vhdl->set_body ("");
35          vhdl->set_body ("with "+counter_name+" select");
36          vhdl->set_body ("\t"+signame+" <=");
37         
38          uint32_t cpt = 0;
39          std::list<std::string>::iterator i = _list_value->begin();
40         
41          while (i != _list_value->end())
42            {
43              std::list<std::string>::iterator j = i;
44             
45              ++i;
46             
47              vhdl->set_body ("\t"+separator+*j+separator+" when "+toString(cpt++)+",");
48            }
49         
50          if (_size == 1)
51            vhdl->set_body ("\t'0' when others;");
52          else
53            vhdl->set_body ("\t(others => '0') when others;");
54        }
55 
56    log_printf(FUNC,Behavioural,"testbench_body","End");
57  };
58
59}; // end namespace behavioural         
60}; // end namespace morpheo             
61#endif
Note: See TracBrowser for help on using the repository browser.