OpenCores
URL https://opencores.org/ocsvn/connect-6/connect-6/trunk

Subversion Repositories connect-6

[/] [connect-6/] [trunk/] [XILINX/] [BUILD_SCC_SRCH/] [synth_src/] [q.hpp.tmplt] - Blame information for rev 17

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 17 sumanta.ch
#ifndef Q_H
2
#define Q_H
3
 
4
 
5
//#ifdef PICO_SYNTH
6
//#define Q_ASSERT(_cond, _msg)
7
#include 
8
//#include "pico.h"
9
using namespace std;
10
//#else
11
///* not synthesizable */
12
//#include 
13
//#include 
14
//#include 
15
//#include 
16
//
17
//static void debug_assert (bool cond, char * msg) {
18
//      if (!cond) {
19
//              printf("assert failed: %s\n", msg);
20
//              assert(0);
21
//      }
22
//}
23
//
24
//#define Q_ASSERT(_cond, _msg) debug_assert(_cond, _msg)
25
//#endif
26
//
27
//extern FIFO(queue,AIMove);
28
template 
29
//class q {
30
//  //tp arr[max_size];
31
//      #pragma fifo_length queue max_size
32
//  unsigned int head, tail;
33
//  unsigned char wrapped;
34
//  #pragma bitsize q.head ptr_bw
35
//  #pragma bitsize q.tail ptr_bw
36
//  #pragma bitsize q.wrapped 1
37
//
38
//  public:
39
//
40
//  /* constructor */
41
//  q () { head = tail = 0; wrapped = false; };
42
//
43
// // /* returns front data of queue */
44
// // tp front () {
45
// //   return arr[head];
46
// // }
47
//
48
//  bool active;
49
//  /* return true iff queue is empty */
50
//  bool empty () {
51
//    return ((head == tail) && !wrapped);
52
//  }
53
//
54
//  /* return true iff queue is full */
55
//  bool full () {
56
//    return ((head == tail) && wrapped);
57
//  }
58
//
59
//  /* pop front of queue, returning the front data */
60
//  /* q is corrupted if pop when empty */
61
//  tp pop (){
62
//    /* assert that before pop, queue is not empty (underflow check) */
63
//    Q_ASSERT((!wrapped && (head < tail)) || (wrapped && (head >= tail)),
64
//              "queue underflowed");
65
//    tp d = pico_stream_input_queue();
66
//      cout <<"pop: "<
67
//    if (head == max_size-1) {
68
//      head = 0;
69
//      wrapped = false;
70
//    } else {
71
//      head = head + 1;
72
//    }
73
//    return d;
74
//  }
75
//
76
//  /* push data into back of queue */
77
//  /* q is corrupted if push when full */
78
//   void push (tp d){
79
//    pico_stream_output_queue(d);
80
//    if (tail == max_size-1) {
81
//      tail = 0;
82
//      wrapped = true;
83
//    } else {
84
//      tail = tail + 1;
85
//    }
86
//    /* assert that after push, queue is not empty (overflow check) */
87
//    Q_ASSERT((!wrapped && (head < tail)) || (wrapped && (head >= tail)),
88
//              "Queue overflowed") ;
89
//      cout <<"push: "<
90
//  }
91
//
92
//  /* return current size of the queue */
93
//  int size (){
94
//    if (wrapped) {
95
//      return (max_size - head) + (tail - 0);
96
//    } else {
97
//      return tail - head;
98
//    }
99
//  }
100
//};
101
//#ifndef PICO_SYNTH
102
//  /* not synthesizable */
103
//  std::string to_string () const {
104
//    std::string s;
105
//    std::stringstream out;
106
//
107
//    out << "{ ";
108
//
109
//    if (wrapped) {
110
//      for (int i=head; i
111
//        out << arr[i];
112
//      out << " , ";
113
//      }
114
//      for (int i=0; i
115
//        out << arr[i];
116
//      if (i != tail - 1) out << " , ";
117
//      }
118
//    } else {
119
//      for (int i=head; i
120
//        out << arr[i];
121
//      if (i != tail - 1) out << " , ";
122
//      }
123
//    }
124
//
125
//    out << " }";
126
//    s = out.str();
127
//    return s;
128
//  }
129
//
130
//  operator std::string () { return to_string(); }
131
//
132
//#endif
133
//
134
//
135
//
136
//#ifndef PICO_SYNTH
137
///* not synthesizable */
138
//template 
139
//std::ostream& operator << (std::ostream &os, const q &f)
140
//{
141
//  os << f.to_string();
142
//  return os;
143
//}
144
//#endif
145
//
146
//
147
//#undef Q_ASSERT
148
////extern q moves_fifo;
149
#endif

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.