source: trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Vhdl_std_logic.cpp @ 43

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

Modif mineur : ajout d'info de débug

Release non stable

File size: 2.2 KB
RevLine 
[2]1#ifdef VHDL
2
3/*
4 * $Id$
5 *
6 * [ Description ]
7 *
8 */
9
10#include <math.h>
11#include "Behavioural/include/Vhdl.h"
12
13namespace morpheo              {
14namespace behavioural          {
15
[43]16#undef  FUNCTION
17#define FUNCTION "Vhdl::std_logic"
[2]18  string std_logic (uint32_t size)
19  {
[43]20    log_printf(FUNC,Behavioural,FUNCTION,"Begin");
21
[2]22    string type;
23
24    if (size == 1)
25      type = "std_logic";
26    else
27      type = "std_logic_vector(" + toString(size-1) + " downto 0)";
28
[43]29    log_printf(FUNC,Behavioural,FUNCTION,"End");
30
[2]31    return type;
32  };
33
[43]34#undef  FUNCTION
35#define FUNCTION "Vhdl::std_logic_conv"
[2]36  string std_logic_conv (uint32_t size, string value)
37  {
[43]38    log_printf(FUNC,Behavioural,FUNCTION,"Begin");
39
[2]40    string conv;
41
42    if (size == 1)
43      conv = "'"+toString(value)+"'";
44    else
45      conv = "conv_std_logic_vector("+value+","+toString(size)+")";
46
[43]47    log_printf(FUNC,Behavioural,FUNCTION,"End");
48
[2]49    return conv;
50  };
51
52  string std_logic_conv (uint32_t size, uint32_t value)
53  {
[43]54    log_printf(FUNC,Behavioural,FUNCTION,"Begin");
55    string _return = std_logic_conv(size,toString(value));
56    log_printf(FUNC,Behavioural,FUNCTION,"End");
57
58    return _return;
[2]59  };
60
[43]61#undef  FUNCTION
62#define FUNCTION "Vhdl::std_logic_range"
[2]63  string std_logic_range (uint32_t max, uint32_t min)
64  {
[43]65    log_printf(FUNC,Behavioural,FUNCTION,"Begin");
[2]66    string type;
67
68    if (max == min)
69      type = "("+toString(max)+")";
70    else
71      type = "("+toString(max)+" downto "+toString(min)+")";
72
[43]73    log_printf(FUNC,Behavioural,FUNCTION,"End");
74
[2]75    return type;
76  };
77
78  string std_logic_range (uint32_t size)
79  {
[43]80    log_printf(FUNC,Behavioural,FUNCTION,"Begin");
81    string _return = std_logic_range(size-1,0);
82    log_printf(FUNC,Behavioural,FUNCTION,"End");
83
84    return _return;
[2]85  }
86
[43]87#undef  FUNCTION
88#define FUNCTION "Vhdl::std_logic_others"
[2]89  string std_logic_others (uint32_t size, uint32_t cst  )
90  {
[43]91    log_printf(FUNC,Behavioural,FUNCTION,"Begin");
92
93    string _return;
94
[2]95    if (size < 2)
[43]96      _return = "'"+toString(cst)+"'";
[2]97    else
[43]98      _return = "(others => '"+toString(cst)+"')";
99
100    log_printf(FUNC,Behavioural,FUNCTION,"End");
101
102    return _return;
[2]103  }
104}; // end namespace behavioural         
105}; // end namespace morpheo             
106
107#endif
Note: See TracBrowser for help on using the repository browser.