CMS 3D CMS Logo

List of all members | Public Member Functions | Protected Attributes | Friends
Signal Class Reference

#include <FWCore/ServiceRegistry/interface/Signal.h>

Inheritance diagram for Signal:
parameter

Public Member Functions

Signal asgn (Signal)
 
void clock (const char *rname)
 
void create ()
 
int getalwaysn ()
 
bool getbool ()
 
int getchange ()
 
int geth ()
 
int getint ()
 
int getl ()
 
rval getmask ()
 
int getnegedge ()
 
int getposedge ()
 
rval getr ()
 
rval getval ()
 
void init (int, int, const char *)
 
void init (const char *rname)
 
void init (Signal *shost, int h, int l, const char *rname)
 
void initreg (int, int, const char *)
 
void inout (int, int, const char *)
 
void inout (const char *rname)
 
void input (int, int, const char *)
 
void input (const char *rname)
 
void makemask ()
 
Signal operator! ()
 
Signal operator!= (Signal)
 
Signal operator% (Signal)
 
Signal operator& (Signal)
 
Signaloperator& ()
 
Signal operator&& (Signal)
 
Signal operator() (Signal, Signal)
 
Signal operator() (Signal)
 
Signal operator* (Signal)
 
Signal operator+ (Signal)
 
Signal operator++ ()
 
Signal operator++ (int)
 
Signal operator, (Signal)
 
Signal operator- (Signal)
 
Signal operator-- ()
 
Signal operator-- (int)
 
Signal operator/ (Signal)
 
Signal operator< (Signal)
 
Signal operator<< (Signal)
 
Signal operator<= (Signal)
 
Signal operator= (Signal)
 
Signal operator== (Signal)
 
Signal operator> (Signal)
 
Signal operator>= (Signal)
 
Signal operator>> (Signal)
 
Signal operator^ (Signal)
 
Signal operator| (Signal)
 
Signal operator|| (Signal)
 
Signal operator~ ()
 
void output (int, int, const char *)
 
void output (const char *rname)
 
void output (int high, int low, const char *rname, module *parent)
 
void output (const char *rname, module *parent)
 
void reg (int, int, const char *)
 
void reg (const char *rname)
 
Signal set (Signal)
 
void setalwaysn (int n)
 
void setchange (int ch)
 
void sethlmask (int high, int low, rval imask)
 
void setnegedge (int ch)
 
void setposedge (int ch)
 
void setprintable (int p)
 
void setr (rval rv)
 
void setrc (rval rv)
 
 Signal ()
 
 Signal (rval)
 
 Signal (int)
 
 Signal (unsigned int)
 
 Signal (const char *)
 
 Signal (int bits, rval value)
 
void wire (int, int, const char *)
 
void wire (int, int, const char *, int)
 
void wire (const char *rname)
 

Protected Attributes

int alwaysn
 
Signalca1
 
Signalca2
 
int change
 
int h
 
Signalhost
 
int hostl
 
int inited
 
int l
 
rval mask
 
int mode
 
int nedge
 
Signalouthost
 
Signaloutreg
 
int pedge
 
int printable
 
rval r
 
rval rc
 
Signalsource
 

Friends

std::ostream & operator<< (std::ostream &stream, Signal s)
 
Signal rand (Signal)
 
Signal ror (Signal)
 
Signal rxor (Signal)
 

Detailed Description

Description: A simple implementation of the signal/slot pattern

Usage: This is a simple version of the signal/slot pattern and is used by the Framework. It is safe to call 'emit' from multiple threads simultaneously. Assumptions: -The attached slots have a life-time greater than the last 'emit' call issued from the Signal. -'connect' is not called simultaneously with any other methods of the class.

Definition at line 28 of file vlib.h.

Constructor & Destructor Documentation

Signal::Signal ( )

Definition at line 29 of file vlib.cc.

References create().

Referenced by module::AddOutReg(), and setprintable().

29 { create(); }
void create()
Definition: vlib.cc:13
Signal::Signal ( rval  n)

Definition at line 157 of file vlib.cc.

References create(), TauDecayModes::dec, init(), inited, mnum, mode, dqmiodumpmetadata::n, r, rc, and Sizeofrval.

157  {
158  create();
159  mode = mnum;
160 #ifdef VGEN
161  ostringstream ln;
162  ln << dec << n;
163  init(8 * Sizeofrval - 1, 0, ln.str().c_str());
164 #else
165  init(8 * Sizeofrval - 1, 0, "");
166 #endif
167  inited = 0;
168  rc = n;
169  r = n;
170 }
rval r
Definition: vlib.h:140
void init(int, int, const char *)
Definition: vlib.cc:208
int inited
Definition: vlib.h:163
Definition: vlib.h:26
#define Sizeofrval
Definition: vlib.h:22
void create()
Definition: vlib.cc:13
rval rc
Definition: vlib.h:144
int mode
Definition: vlib.h:165
Signal::Signal ( int  n)

Definition at line 172 of file vlib.cc.

References create(), TauDecayModes::dec, init(), inited, mnum, mode, dqmiodumpmetadata::n, r, rc, and Sizeofrval.

172  {
173  create();
174  mode = mnum;
175 #ifdef VGEN
176  ostringstream ln;
177  ln << dec << n;
178  init(Sizeofrval * 8 - 1, 0, ln.str().c_str());
179 #else
180  init(Sizeofrval * 8 - 1, 0, "");
181 #endif
182  inited = 0;
183  r = (rval)n;
184  rc = r;
185 }
rval r
Definition: vlib.h:140
void init(int, int, const char *)
Definition: vlib.cc:208
int inited
Definition: vlib.h:163
Definition: vlib.h:26
#define Sizeofrval
Definition: vlib.h:22
void create()
Definition: vlib.cc:13
unsigned long long int rval
Definition: vlib.h:21
rval rc
Definition: vlib.h:144
int mode
Definition: vlib.h:165
Signal::Signal ( unsigned int  n)

Definition at line 187 of file vlib.cc.

References create(), TauDecayModes::dec, init(), inited, mnum, mode, dqmiodumpmetadata::n, r, rc, and Sizeofrval.

187  {
188  create();
189  mode = mnum;
190 #ifdef VGEN
191  ostringstream ln;
192  ln << dec << n;
193  init(Sizeofrval * 8 - 1, 0, ln.str().c_str());
194 #else
195  init(Sizeofrval * 8 - 1, 0, "");
196 #endif
197  inited = 0;
198  r = (rval)n;
199  rc = r;
200 }
rval r
Definition: vlib.h:140
void init(int, int, const char *)
Definition: vlib.cc:208
int inited
Definition: vlib.h:163
Definition: vlib.h:26
#define Sizeofrval
Definition: vlib.h:22
void create()
Definition: vlib.cc:13
unsigned long long int rval
Definition: vlib.h:21
rval rc
Definition: vlib.h:144
int mode
Definition: vlib.h:165
Signal::Signal ( const char *  sval)

Definition at line 43 of file vlib.cc.

References bits, create(), mps_fire::i, init(), mask, mnum, mode, r, rc, AlCaHLTBitMon_QueryRunRegistry::string, heppy_batch::val, and relativeConstraints::value.

43  {
44  create();
45  mode = mnum;
46  std::string val = sval;
47  int bits;
48  unsigned int i;
49  char radix;
50  rval value = 0;
51  int dig;
52 
53  sscanf(val.c_str(), "%d'%c", &bits, &radix);
54  switch (radix) {
55  case 'h':
56  case 'H':
57  // sscanf (val.c_str(), "%d'%c%x", &bits, &radix, &value);
58  for (i = 0; val[i] != 'h' && val[i] != 'H'; ++i)
59  ;
60  for (; i < val.length(); ++i) {
61  switch (val[i]) {
62  case '0':
63  case '1':
64  case '2':
65  case '3':
66  case '4':
67  case '5':
68  case '6':
69  case '7':
70  case '8':
71  case '9':
72  dig = val[i] - '0';
73  break;
74  case 'a':
75  case 'b':
76  case 'c':
77  case 'd':
78  case 'e':
79  case 'f':
80  dig = val[i] - 'a' + 10;
81  break;
82  case 'A':
83  case 'B':
84  case 'C':
85  case 'D':
86  case 'E':
87  case 'F':
88  dig = val[i] - 'A' + 10;
89  break;
90  default:
91  dig = -1;
92  break;
93  }
94  if (dig >= 0) {
95  value = value << 4;
96  value = value | dig;
97  }
98  }
99 
100  break;
101  case 'd':
102  case 'D':
103  sscanf(val.c_str(), "%d'%c%d", &bits, &radix, reinterpret_cast<int*>(&value));
104  break;
105  case 'o':
106  case 'O':
107  // sscanf (val.c_str(), "%d'%c%o", &bits, &radix, &value);
108  for (i = 0; val[i] != 'o' && val[i] != 'O'; ++i)
109  ;
110  for (; i < val.length(); ++i) {
111  switch (val[i]) {
112  case '0':
113  case '1':
114  case '2':
115  case '3':
116  case '4':
117  case '5':
118  case '6':
119  case '7':
120  dig = val[i] - '0';
121  break;
122  default:
123  dig = -1;
124  break;
125  }
126  if (dig >= 0) {
127  value = value << 3;
128  value = value | dig;
129  }
130  }
131 
132  break;
133 
134  case 'b':
135  case 'B':
136 
137  for (i = 0; val[i] != 'b' && val[i] != 'B'; ++i)
138  ;
139  for (; i < val.length(); ++i) {
140  switch (val[i]) {
141  case '0':
142  value = value << 1;
143  break;
144  case '1':
145  value = value << 1;
146  value = value | 1;
147  break;
148  }
149  }
150  break;
151  }
152  Signal::init(bits - 1, 0, val.c_str());
153  rc = value & mask;
154  r = rc;
155 }
rval mask
Definition: vlib.h:147
rval r
Definition: vlib.h:140
void init(int, int, const char *)
Definition: vlib.cc:208
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision bits
Definition: vlib.h:26
void create()
Definition: vlib.cc:13
Definition: value.py:1
unsigned long long int rval
Definition: vlib.h:21
rval rc
Definition: vlib.h:144
int mode
Definition: vlib.h:165
Signal::Signal ( int  bits,
rval  value 
)

Definition at line 31 of file vlib.cc.

References create(), TauDecayModes::dec, init(), mask, r, rc, and relativeConstraints::value.

31  {
32  create();
33 #ifdef VGEN
34  ostringstream sval;
35  sval << dec << bits << "'d" << value;
36  Signal::init(bits - 1, 0, sval.str().c_str());
37 #else
38  Signal::init(bits - 1, 0, "");
39 #endif
40  r = rc = value & mask;
41 }
rval mask
Definition: vlib.h:147
rval r
Definition: vlib.h:140
void init(int, int, const char *)
Definition: vlib.cc:208
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision bits
void create()
Definition: vlib.cc:13
rval rc
Definition: vlib.h:144

Member Function Documentation

Signal Signal::asgn ( Signal  other)

Definition at line 459 of file vlib.cc.

References ca1, ca2, change, gather_cfg::cout, globcontrol::getalwaysn(), getl(), getval(), h, host, hostl, AnalysisDataFormats_SUSYBSMObjects::hr, l, mask, minout, mode, moutput, Skims_PA_cff::name, nedge, outhost, outreg, pedge, r, rc, set(), setalwaysn(), globcontrol::setchange(), and OrderedSet::t.

Referenced by operator=(), set(), and setprintable().

459  {
460  Signal t;
461 
462 #ifdef VGEN
463  t.name = lb + name + rb + " = " + other.getcatname();
464  if (glc.printassign())
465  std::cout << glc.getmargin() << t.name << ";\n" << flush;
466 #endif
467  rval hr, portionr, portionmask, otr;
468  int shn;
469 
470  otr = other.getval() & mask;
471 
472  if (otr != r) {
474  glc.setchange(1);
475  }
476 
477  rc = otr;
478  if (host) // is this a portion of the other register?
479  {
480  hr = host->rc;
481  if (hostl > 0)
482  shn = (hostl - host->getl());
483  else
484  shn = (l - host->getl());
485  portionr = rc << shn;
486  portionmask = mask << shn;
487  host->set((hr & (~portionmask)) | portionr);
488  }
489 
490  if (ca1 != nullptr && ca2 != nullptr) // is this a concatenation of the two registers?
491  {
492  ca2->set(other);
493  ca1->set(other >> (ca2->h - ca2->l + 1));
494  }
495  if (outhost != nullptr && outhost != this && (mode == moutput || mode == minout)) {
496  outhost->set(other);
497  }
498  if (outreg) {
499  outreg->set(other);
500  }
501 
502  t.h = h;
503  t.l = l;
504  t.mask = mask;
505  t.pedge = pedge;
506  t.nedge = nedge;
507  t.change = change;
508  t.r = rc;
509 #ifdef VGEN
510  glc.setprintassign(1);
511 #endif
512  return t;
513 }
rval mask
Definition: vlib.h:147
rval r
Definition: vlib.h:140
Signal * outhost
Definition: vlib.h:160
int pedge
Definition: vlib.h:158
Signal set(Signal)
Definition: vlib.cc:452
Definition: vlib.h:26
rval getval()
Definition: vlib.cc:415
Signal * ca1
Definition: vlib.h:156
globcontrol glc
Definition: vlib.cc:5
int getalwaysn()
Definition: vlib.h:328
int hostl
Definition: vlib.h:146
int h
Definition: vlib.h:145
int nedge
Definition: vlib.h:158
susybsm::HSCParticleRef hr
Definition: classes.h:26
Definition: vlib.h:26
void setchange(int i)
Definition: vlib.cc:1206
int l
Definition: vlib.h:145
unsigned long long int rval
Definition: vlib.h:21
void setalwaysn(int n)
Definition: vlib.h:72
Signal * host
Definition: vlib.h:155
rval rc
Definition: vlib.h:144
Signal * outreg
Definition: vlib.h:161
int mode
Definition: vlib.h:165
Signal * ca2
Definition: vlib.h:157
int getl()
Definition: vlib.h:54
int change
Definition: vlib.h:158
Definition: vlib.h:28
void Signal::clock ( const char *  rname)

Definition at line 603 of file vlib.cc.

References module::AddOutReg(), change, dbgmsg, TauDecayModes::dec, globcontrol::getparent(), h, host, init(), inited, l, minput, mode, Skims_PA_cff::name, nedge, obnames, outhost, outreg, pedge, printable, r, rc, module::setchange(), setr(), and setrc().

Referenced by input().

603  {
604 #ifdef VGEN
605  if (lb == "{")
606  glc.AddIO(lb + name + rb);
607  else
608  glc.AddIO(name);
609 #else
610 #ifdef _VDEBUG
611  if (h - l != 0 &&
612  inited) // inited is analysed in case the passed parameter is a temp var. Actually, every operator should return temp with the proper mask,h,l inherited from operands
613  {
614  dbgmsg("Different port length for clock argument: declared [" << 0 << ":" << 0 << "], passed: [" << h << ":" << l
615  << "]. ");
616  }
617 #endif
618 #endif
619  Signal::init(0, 0, rname);
620  h = l = 0;
621  mode = minput;
622 #ifdef VGEN
623  obname = obnames[mode];
624  ostringstream ln;
625  glc.AddParameter(name);
626  if (h == l)
627  ln << obname << name << ";\n";
628  else
629  ln << obname << "[" << dec << h << ":" << l << "] " << name << ";\n";
630  glc.AddDeclarator(ln.str());
631  printable = 0;
632 #else
633  outreg = glc.getparent()->AddOutReg((Signal)(*this));
634  if (rc != r) {
635  change = 1;
636  glc.getparent()->setchange(1);
637  if (rc == 1 && r == 0)
638  pedge = 1;
639  else
640  pedge = 0;
641  if (rc == 0 && r == 1)
642  nedge = 1;
643  else
644  nedge = 0;
645  } else
646  change = pedge = nedge = 0;
647  outreg->setr(r);
648  outreg->setrc(r);
649  outhost = host = nullptr;
650 #endif
651 }
rval r
Definition: vlib.h:140
void init(int, int, const char *)
Definition: vlib.cc:208
Signal * outhost
Definition: vlib.h:160
void setr(rval rv)
Definition: vlib.h:57
int pedge
Definition: vlib.h:158
globcontrol glc
Definition: vlib.cc:5
char const * obnames[]
Definition: vlib.cc:7
int inited
Definition: vlib.h:163
void setrc(rval rv)
Definition: vlib.h:58
void setchange(int c)
Definition: vlib.h:221
#define dbgmsg(a)
Definition: vlib.cc:9
int h
Definition: vlib.h:145
int nedge
Definition: vlib.h:158
Definition: vlib.h:26
Signal * AddOutReg(Signal arg)
Definition: vlib.cc:1034
int printable
Definition: vlib.h:164
int l
Definition: vlib.h:145
Signal * host
Definition: vlib.h:155
module * getparent()
Definition: vlib.h:333
rval rc
Definition: vlib.h:144
const G4String rname[NREG]
Signal * outreg
Definition: vlib.h:161
int mode
Definition: vlib.h:165
int change
Definition: vlib.h:158
Definition: vlib.h:28
void Signal::create ( )

Definition at line 13 of file vlib.cc.

References alwaysn, ca1, ca2, change, h, host, hostl, inited, l, mask, mode, Skims_PA_cff::name, nedge, outhost, outreg, pedge, printable, r, rc, and Sizeofrval.

Referenced by module::module(), and Signal().

13  {
14 #ifdef VGEN
15  name = "";
16  orname = "";
17  obname = "";
18  lb = "(";
19  rb = ")";
20 #endif
21 
22  outhost = host = outreg = ca1 = ca2 = nullptr;
23  inited = printable = r = rc = l = pedge = nedge = change = alwaysn = mode = 0;
24  h = 8 * Sizeofrval - 1;
25  mask = (rval)(-1);
26  hostl = -1;
27 }
rval mask
Definition: vlib.h:147
rval r
Definition: vlib.h:140
Signal * outhost
Definition: vlib.h:160
int pedge
Definition: vlib.h:158
Signal * ca1
Definition: vlib.h:156
int hostl
Definition: vlib.h:146
int inited
Definition: vlib.h:163
int h
Definition: vlib.h:145
int nedge
Definition: vlib.h:158
#define Sizeofrval
Definition: vlib.h:22
int printable
Definition: vlib.h:164
int l
Definition: vlib.h:145
unsigned long long int rval
Definition: vlib.h:21
Signal * host
Definition: vlib.h:155
rval rc
Definition: vlib.h:144
Signal * outreg
Definition: vlib.h:161
int alwaysn
Definition: vlib.h:162
int mode
Definition: vlib.h:165
Signal * ca2
Definition: vlib.h:157
int change
Definition: vlib.h:158
int Signal::getalwaysn ( )
inline

Definition at line 73 of file vlib.h.

References alwaysn.

Referenced by getval().

73 { return alwaysn; };
int alwaysn
Definition: vlib.h:162
bool Signal::getbool ( )
inline

Definition at line 65 of file vlib.h.

References getval().

Referenced by module::ifelse().

65 { return (getval() != 0); };
rval getval()
Definition: vlib.cc:415
int Signal::getchange ( )
inline

Definition at line 68 of file vlib.h.

References change.

Referenced by output().

68 { return change; };
int change
Definition: vlib.h:158
int Signal::geth ( )
inline

Definition at line 55 of file vlib.h.

References h.

Referenced by module::AddOutReg().

55 { return h; };
int h
Definition: vlib.h:145
int Signal::getint ( )
inline

Definition at line 53 of file vlib.h.

References r.

53 { return (unsigned int)r; };
rval r
Definition: vlib.h:140
int Signal::getl ( )
inline

Definition at line 54 of file vlib.h.

References l.

Referenced by module::AddOutReg(), asgn(), and init().

54 { return l; };
int l
Definition: vlib.h:145
rval Signal::getmask ( )
inline

Definition at line 56 of file vlib.h.

References mask.

Referenced by input().

56 { return mask; };
rval mask
Definition: vlib.h:147
int Signal::getnegedge ( )
inline

Definition at line 67 of file vlib.h.

References nedge.

Referenced by module::negedge(), and output().

67 { return nedge; };
int nedge
Definition: vlib.h:158
int Signal::getposedge ( )
inline

Definition at line 66 of file vlib.h.

References pedge.

Referenced by output(), and module::posedge().

66 { return pedge; };
int pedge
Definition: vlib.h:158
rval Signal::getr ( )
inline

Definition at line 52 of file vlib.h.

References r.

Referenced by init(), input(), operator<<(), parameter::operator=(), and output().

52 { return r; };
rval r
Definition: vlib.h:140
rval Signal::getval ( )

Definition at line 415 of file vlib.cc.

References getalwaysn(), globcontrol::getalwaysn(), r, and rc.

Referenced by asgn(), getbool(), operator()(), operator,(), memory::operator[](), operator||(), rand(), rxor(), and setprintable().

415 { return (getalwaysn() == glc.getalwaysn()) ? rc : r; }
rval r
Definition: vlib.h:140
globcontrol glc
Definition: vlib.cc:5
int getalwaysn()
Definition: vlib.h:328
int getalwaysn()
Definition: vlib.h:73
rval rc
Definition: vlib.h:144
void Signal::init ( int  high,
int  low,
const char *  rname 
)

Definition at line 208 of file vlib.cc.

References h, LaserClient_cfi::high, inited, l, LaserClient_cfi::low, makemask(), Skims_PA_cff::name, rname, and source.

Referenced by clock(), function::function(), init(), parameter::init(), initreg(), inout(), input(), module::negedge(), parameter::operator int(), operator()(), module::operator()(), operator,(), operator||(), output(), module::posedge(), rand(), ror(), rxor(), Signal(), and wire().

208  {
209 #ifdef VGEN
210  name = rname;
211  orname = rname;
212  lb = "";
213  rb = "";
214 #endif
215  if (!inited) {
216  h = high;
217  l = low;
218  makemask();
219  inited = 1;
220  }
221  source = this;
222 }
void makemask()
Definition: vlib.cc:202
int inited
Definition: vlib.h:163
int h
Definition: vlib.h:145
int l
Definition: vlib.h:145
Signal * source
Definition: vlib.h:159
const G4String rname[NREG]
void Signal::init ( const char *  rname)
inline

Definition at line 38 of file vlib.h.

References plotscripts::getname(), h, init(), l, makemask(), Skims_PA_cff::name, r, rname, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by init().

38 { init(0, 0, rname); };
void init(int, int, const char *)
Definition: vlib.cc:208
const G4String rname[NREG]
void Signal::init ( Signal shost,
int  h,
int  l,
const char *  rname 
)

Definition at line 224 of file vlib.cc.

References change, getl(), getr(), h, LaserClient_cfi::high, host, l, LaserClient_cfi::low, makemask(), mask, Skims_PA_cff::name, nedge, pedge, r, rc, rname, and source.

224  {
225  host = shost;
226 #ifdef VGEN
227  name = rname;
228  orname = rname;
229  lb = "";
230  rb = "";
231 #endif
232  h = high;
233  l = low;
234  makemask();
235  source = this;
236  if (host) {
237  rc = (host->getr() >> (l - host->getl())) & mask;
238  r = rc;
239  }
240  change = pedge = nedge = 0;
241 }
rval mask
Definition: vlib.h:147
rval r
Definition: vlib.h:140
int pedge
Definition: vlib.h:158
void makemask()
Definition: vlib.cc:202
rval getr()
Definition: vlib.h:52
int h
Definition: vlib.h:145
int nedge
Definition: vlib.h:158
int l
Definition: vlib.h:145
Signal * source
Definition: vlib.h:159
Signal * host
Definition: vlib.h:155
rval rc
Definition: vlib.h:144
const G4String rname[NREG]
int getl()
Definition: vlib.h:54
int change
Definition: vlib.h:158
void Signal::initreg ( int  high,
int  low,
const char *  rname 
)

Definition at line 766 of file vlib.cc.

References change, globcontrol::getparent(), init(), mode, mreg, nedge, obnames, pedge, r, rc, and module::setchange().

Referenced by inout(), and reg().

766  {
768  mode = mreg;
769 #ifdef VGEN
770  obname = obnames[mode];
771 #endif
772  change = (r != rc);
773  if (change)
774  glc.getparent()->setchange(1);
775  pedge = (rc == 1 && r == 0);
776  nedge = (rc == 0 && r == 1);
777  r = rc;
778 }
rval r
Definition: vlib.h:140
void init(int, int, const char *)
Definition: vlib.cc:208
int pedge
Definition: vlib.h:158
globcontrol glc
Definition: vlib.cc:5
char const * obnames[]
Definition: vlib.cc:7
void setchange(int c)
Definition: vlib.h:221
int nedge
Definition: vlib.h:158
module * getparent()
Definition: vlib.h:333
Definition: vlib.h:26
rval rc
Definition: vlib.h:144
const G4String rname[NREG]
int mode
Definition: vlib.h:165
int change
Definition: vlib.h:158
void Signal::inout ( int  high,
int  low,
const char *  rname 
)

Definition at line 717 of file vlib.cc.

References dbgmsg, TauDecayModes::dec, h, LaserClient_cfi::high, hostl, init(), l, LaserClient_cfi::low, minout, mode, Skims_PA_cff::name, obnames, and printable.

Referenced by output().

717  {
718 #ifdef VGEN
719  if (lb == "{")
720  glc.AddIO(lb + name + rb);
721  else
722  glc.AddIO(name);
723 #else
724 #ifdef _VDEBUG
725  if (h - l != high - low) {
726  dbgmsg("Different port length for inout argument: declared [" << high << ":" << low << "], passed: [" << h << ":"
727  << l << "]. ");
728  }
729 #endif
730 #endif
731  hostl = l;
733  if (high >= low) {
734  h = high;
735  l = low;
736  } else {
737  h = low;
738  l = high;
739  }
740  mode = minout;
741 #ifdef VGEN
742  obname = obnames[mode];
743  ostringstream ln;
744  glc.AddParameter(name);
745  if (h == l)
746  ln << obname << name << ";\n";
747  else
748  ln << obname << "[" << dec << h << ":" << l << "] " << name << ";\n";
749  glc.AddDeclarator(ln.str());
750  printable = 0;
751 #endif
752 }
void init(int, int, const char *)
Definition: vlib.cc:208
Definition: vlib.h:26
globcontrol glc
Definition: vlib.cc:5
int hostl
Definition: vlib.h:146
char const * obnames[]
Definition: vlib.cc:7
#define dbgmsg(a)
Definition: vlib.cc:9
int h
Definition: vlib.h:145
int printable
Definition: vlib.h:164
int l
Definition: vlib.h:145
const G4String rname[NREG]
int mode
Definition: vlib.h:165
void Signal::inout ( const char *  rname)
inline

Definition at line 132 of file vlib.h.

References initreg(), inout(), and reg().

Referenced by inout().

132 { inout(0, 0, rname); };
const G4String rname[NREG]
void inout(int, int, const char *)
Definition: vlib.cc:717
void Signal::input ( int  high,
int  low,
const char *  rname 
)

Definition at line 545 of file vlib.cc.

References module::AddOutReg(), change, dbgmsg, TauDecayModes::dec, getmask(), globcontrol::getparent(), getr(), h, LaserClient_cfi::high, host, init(), inited, l, LaserClient_cfi::low, minput, mode, Skims_PA_cff::name, nedge, obnames, outhost, outreg, pedge, printable, r, module::setchange(), setr(), and setrc().

Referenced by operator--().

545  {
546 #ifdef VGEN
547  if (lb == "{")
548  glc.AddIO(lb + name + rb);
549  else
550  glc.AddIO(name);
551 #else
552 #ifdef _VDEBUG
553  if (h - l != high - low &&
554  inited) // inited is analysed in case the passed parameter is a temp var. Actually, every operator should return temp with the proper mask,h,l inherited from operands
555  {
556  dbgmsg("Different port length for input argument: declared [" << high << ":" << low << "], passed: [" << h << ":"
557  << l << "]. ");
558  }
559 #endif
560 #endif
562  if (high >= low) {
563  h = high;
564  l = low;
565  } else {
566  h = low;
567  l = high;
568  }
569  mode = minput;
570 #ifdef VGEN
571  obname = obnames[mode];
572  ostringstream ln;
573  glc.AddParameter(name);
574  if (h == l)
575  ln << obname << name << ";\n";
576  else
577  ln << obname << "[" << dec << h << ":" << l << "] " << name << ";\n";
578  glc.AddDeclarator(ln.str());
579  printable = 0;
580 #else
581  outreg = glc.getparent()->AddOutReg((Signal)(*this));
582  r = r & outreg->getmask();
583  if (outreg->getr() != r) {
584  change = 1;
585  glc.getparent()->setchange(1);
586  if (r == 1 && outreg->getr() == 0)
587  pedge = 1;
588  else
589  pedge = 0;
590  if (r == 0 && outreg->getr() == 1)
591  nedge = 1;
592  else
593  nedge = 0;
594  } else
595  change = pedge = nedge = 0;
596  outreg->setr(r);
597  outreg->setrc(r);
598  outhost = host = nullptr;
599 #endif
600 }
rval r
Definition: vlib.h:140
void init(int, int, const char *)
Definition: vlib.cc:208
Signal * outhost
Definition: vlib.h:160
void setr(rval rv)
Definition: vlib.h:57
int pedge
Definition: vlib.h:158
globcontrol glc
Definition: vlib.cc:5
char const * obnames[]
Definition: vlib.cc:7
rval getr()
Definition: vlib.h:52
int inited
Definition: vlib.h:163
void setrc(rval rv)
Definition: vlib.h:58
void setchange(int c)
Definition: vlib.h:221
#define dbgmsg(a)
Definition: vlib.cc:9
int h
Definition: vlib.h:145
int nedge
Definition: vlib.h:158
Definition: vlib.h:26
Signal * AddOutReg(Signal arg)
Definition: vlib.cc:1034
int printable
Definition: vlib.h:164
int l
Definition: vlib.h:145
Signal * host
Definition: vlib.h:155
module * getparent()
Definition: vlib.h:333
const G4String rname[NREG]
Signal * outreg
Definition: vlib.h:161
int mode
Definition: vlib.h:165
rval getmask()
Definition: vlib.h:56
int change
Definition: vlib.h:158
Definition: vlib.h:28
void Signal::input ( const char *  rname)
inline

Definition at line 123 of file vlib.h.

References clock(), input(), and output().

Referenced by input().

123 { input(0, 0, rname); };
const G4String rname[NREG]
void input(int, int, const char *)
Definition: vlib.cc:545
void Signal::makemask ( )

Definition at line 202 of file vlib.cc.

References h, l, L1DTConfigBti_cff::LL, and mask.

Referenced by function::function(), init(), and function::init().

202  {
203  mask = (1LL << (h - l + 1)) - 1LL;
204  if (mask == 0LL)
205  mask = ~mask;
206 }
rval mask
Definition: vlib.h:147
int h
Definition: vlib.h:145
int l
Definition: vlib.h:145
Signal Signal::operator! ( )

Definition at line 274 of file vlib.cc.

Referenced by setprintable().

Definition at line 362 of file vlib.cc.

Referenced by setprintable().

365 {
Signal Signal::operator% ( Signal  arg)

Definition at line 305 of file vlib.cc.

Referenced by setprintable().

Signal Signal::operator& ( Signal  arg)

Definition at line 306 of file vlib.cc.

Signal * Signal::operator& ( )

Definition at line 276 of file vlib.cc.

References printable.

Referenced by setprintable().

276  {
277 #ifdef VGEN
278  printable = 0;
279 #endif
280  return this;
281 }
int printable
Definition: vlib.h:164
Signal Signal::operator&& ( Signal  arg)

Definition at line 306 of file vlib.cc.

Referenced by setprintable().

Signal Signal::operator() ( Signal  hn,
Signal  ln 
)

Definition at line 517 of file vlib.cc.

References getval(), init(), l, mask, Skims_PA_cff::name, printable, r, rc, and OrderedSet::t.

Referenced by operator--().

517  {
518  Signal t;
519 #ifdef VGEN
520  string bname;
521  if (hn.getname().compare(ln.getname()) != 0)
522  bname = name + "[" + hn.getname() + ":" + ln.getname() + "]";
523  else
524  bname = name + "[" + hn.getname() + "]";
525  hn.printable = ln.printable = 0;
526  t.init(this, 0, 0, bname.c_str());
527 #else
528  t.init(this, (unsigned)hn.getval(), (unsigned)ln.getval(), "");
529 #endif
530  t.rc = (getval() >> (t.l - l)) & t.mask;
531  t.r = t.rc;
532  return t;
533 }
rval mask
Definition: vlib.h:147
rval r
Definition: vlib.h:140
void init(int, int, const char *)
Definition: vlib.cc:208
rval getval()
Definition: vlib.cc:415
int printable
Definition: vlib.h:164
int l
Definition: vlib.h:145
rval rc
Definition: vlib.h:144
Definition: vlib.h:28
Signal Signal::operator() ( Signal  n)

Definition at line 535 of file vlib.cc.

References dqmiodumpmetadata::n.

535 { return (*this)(n, n); }
Signal Signal::operator* ( Signal  arg)

Definition at line 305 of file vlib.cc.

Referenced by setprintable().

Signal Signal::operator+ ( Signal  arg)

Definition at line 305 of file vlib.cc.

Referenced by setprintable().

Signal Signal::operator++ ( void  )
inline

Definition at line 104 of file vlib.h.

104 { return *this = *this + 1; };
Signal Signal::operator++ ( int  )
inline

Definition at line 106 of file vlib.h.

106  {
107  return *this = *this + 1;
108  }; // postfix operators require some work (different names for operations and assignment printing?)
Signal Signal::operator, ( Signal  arg)

Definition at line 324 of file vlib.cc.

References ca1, ca2, getval(), h, init(), l, mask, Skims_PA_cff::name, printable, r, source, and OrderedSet::t.

Referenced by operator--().

324  {
325  Signal t;
326 #ifdef VGEN
327  t.name = name + ", " + arg.name;
328  t.lb = "{";
329  t.rb = "}";
330  printable = arg.printable = 0;
331 #else
332  t.ca1 = this;
333  t.ca2 = arg.source;
334  t.init(h - l + arg.h - arg.l + 1, 0, "");
335 #endif
336  t.r = (((getval() << (arg.h - arg.l + 1)) & (~(arg.mask))) | arg.getval()) & t.mask;
337  return t;
338 }
rval mask
Definition: vlib.h:147
rval r
Definition: vlib.h:140
void init(int, int, const char *)
Definition: vlib.cc:208
rval getval()
Definition: vlib.cc:415
Signal * ca1
Definition: vlib.h:156
int h
Definition: vlib.h:145
int printable
Definition: vlib.h:164
int l
Definition: vlib.h:145
Signal * source
Definition: vlib.h:159
Signal * ca2
Definition: vlib.h:157
Definition: vlib.h:28
Signal Signal::operator- ( Signal  arg)

Definition at line 305 of file vlib.cc.

Referenced by setprintable().

Signal Signal::operator-- ( )
inline

Definition at line 105 of file vlib.h.

105 { return *this = *this - 1; };
Signal Signal::operator-- ( int  )
inline

Definition at line 109 of file vlib.h.

References input(), operator()(), operator,(), operator<<(), rand, ror, rxor, and alignCSCRings::s.

109 { return *this = *this - 1; };
Signal Signal::operator/ ( Signal  arg)

Definition at line 305 of file vlib.cc.

Referenced by setprintable().

Signal Signal::operator< ( Signal  arg)

Definition at line 361 of file vlib.cc.

Referenced by setprintable().

365 {
Signal Signal::operator<< ( Signal  arg)

Definition at line 306 of file vlib.cc.

Referenced by operator--(), and setprintable().

Signal Signal::operator<= ( Signal  arg)

Definition at line 361 of file vlib.cc.

Referenced by setprintable().

365 {
Signal Signal::operator= ( Signal  other)

Definition at line 417 of file vlib.cc.

References asgn(), dbgmsg, globcontrol::getalwaysn(), minout, minput, mode, moutput, mreg, mwire, NULL, trackingPlots::other, and outreg.

Referenced by parameter::operator int(), and setprintable().

417  {
418 #ifndef VGEN
419 #ifdef _VDEBUG
420  switch (mode) {
421  case moutput:
422  if (glc.getalwaysn() == -1 && outreg != NULL)
423  dbgmsg("Assigning output-reg outside always block.");
424  if (glc.getalwaysn() != -1 && outreg == NULL)
425  dbgmsg("Assigning non-reg output inside always block.");
426  break;
427 
428  case minout:
429  if (glc.getalwaysn() != -1)
430  dbgmsg("Assigning inout inside always block.");
431  break;
432 
433  case minput:
434  dbgmsg("Assigning to input is not allowed.");
435  return other;
436 
437  case mreg:
438  if (glc.getalwaysn() == -1)
439  dbgmsg("Assigning reg outside always block.");
440  break;
441 
442  case mwire:
443  if (glc.getalwaysn() != -1)
444  dbgmsg("Assigning wire inside always block.");
445  break;
446  }
447 #endif
448 #endif
449  return asgn(other);
450 }
Definition: vlib.h:26
globcontrol glc
Definition: vlib.cc:5
int getalwaysn()
Definition: vlib.h:328
#define NULL
Definition: scimark2.h:8
#define dbgmsg(a)
Definition: vlib.cc:9
Definition: vlib.h:26
Definition: vlib.h:26
Signal asgn(Signal)
Definition: vlib.cc:459
Definition: vlib.h:26
Definition: vlib.h:26
Signal * outreg
Definition: vlib.h:161
int mode
Definition: vlib.h:165
Signal Signal::operator== ( Signal  arg)

Definition at line 361 of file vlib.cc.

Referenced by setprintable().

365 {
Signal Signal::operator> ( Signal  arg)

Definition at line 361 of file vlib.cc.

Referenced by setprintable().

365 {
Signal Signal::operator>= ( Signal  arg)

Definition at line 361 of file vlib.cc.

Referenced by setprintable().

365 {
Signal Signal::operator>> ( Signal  arg)

Definition at line 306 of file vlib.cc.

Referenced by setprintable().

Signal Signal::operator^ ( Signal  arg)

Definition at line 305 of file vlib.cc.

Referenced by setprintable().

Signal Signal::operator| ( Signal  arg)

Definition at line 306 of file vlib.cc.

Referenced by setprintable().

Signal Signal::operator|| ( Signal  arg)

Definition at line 308 of file vlib.cc.

References change, getval(), h, init(), l, mask, Skims_PA_cff::name, printable, r, and OrderedSet::t.

Referenced by setprintable().

308  {
309  Signal t;
310 #ifdef VGEN
311  t.name = lb + name + rb + " || " + arg.lb + arg.name + arg.rb;
312  t.orname = orname + " or " + arg.orname;
313  printable = arg.printable = 0;
314 #else
315  int ln = h - l;
316  int aln = arg.h - arg.l;
317  t.init((ln > aln) ? ln : aln, 0, "");
318 #endif
319  t.r = t.mask & (getval() || arg.getval());
320  t.change = change || arg.change;
321  return t;
322 }
rval mask
Definition: vlib.h:147
rval r
Definition: vlib.h:140
void init(int, int, const char *)
Definition: vlib.cc:208
rval getval()
Definition: vlib.cc:415
int h
Definition: vlib.h:145
int printable
Definition: vlib.h:164
int l
Definition: vlib.h:145
int change
Definition: vlib.h:158
Definition: vlib.h:28
Signal Signal::operator~ ( )

Definition at line 274 of file vlib.cc.

Referenced by setprintable().

void Signal::output ( int  high,
int  low,
const char *  rname 
)

Definition at line 655 of file vlib.cc.

References dbgmsg, TauDecayModes::dec, h, LaserClient_cfi::high, hostl, init(), l, LaserClient_cfi::low, mode, moutput, mreg, Skims_PA_cff::name, obnames, and printable.

Referenced by input(), and output().

655  {
656 #ifdef VGEN
657  if (lb == "{")
658  glc.AddIO(lb + name + rb);
659  else
660  glc.AddIO(name);
661 #else
662 #ifdef _VDEBUG
663  if (h - l != high - low) {
664  dbgmsg("Different port length for output argument: declared [" << high << ":" << low << "], passed: [" << h << ":"
665  << l << "]. ");
666  }
667  if (mode == mreg) {
668  dbgmsg("Using reg as output.");
669  }
670 #endif
671 #endif
672  hostl = l;
674  if (high >= low) {
675  h = high;
676  l = low;
677  } else {
678  h = low;
679  l = high;
680  }
681  mode = moutput;
682 #ifdef VGEN
683  obname = obnames[mode];
684  ostringstream ln;
685  glc.AddParameter(name);
686  if (h == l)
687  ln << obname << name << ";\n";
688  else
689  ln << obname << "[" << dec << h << ":" << l << "] " << name << ";\n";
690  glc.AddDeclarator(ln.str());
691  printable = 0;
692 #endif
693 }
void init(int, int, const char *)
Definition: vlib.cc:208
globcontrol glc
Definition: vlib.cc:5
int hostl
Definition: vlib.h:146
char const * obnames[]
Definition: vlib.cc:7
#define dbgmsg(a)
Definition: vlib.cc:9
int h
Definition: vlib.h:145
Definition: vlib.h:26
int printable
Definition: vlib.h:164
int l
Definition: vlib.h:145
Definition: vlib.h:26
const G4String rname[NREG]
int mode
Definition: vlib.h:165
void Signal::output ( const char *  rname)
inline

Definition at line 127 of file vlib.h.

References LaserClient_cfi::high, inout(), LaserClient_cfi::low, output(), and class-composition::parent.

Referenced by output().

127 { output(0, 0, rname); };
const G4String rname[NREG]
void output(int, int, const char *)
Definition: vlib.cc:655
void Signal::output ( int  high,
int  low,
const char *  rname,
module parent 
)

Definition at line 695 of file vlib.cc.

References module::AddOutReg(), TauDecayModes::dec, getchange(), getnegedge(), getposedge(), getr(), h, l, Skims_PA_cff::name, output(), outreg, setchange(), setnegedge(), setposedge(), and setr().

695  {
696  output(high, low, rname);
697 #ifdef VGEN
698  ostringstream ln;
699  if (h == l)
700  ln << "reg " << name << ";\n";
701  else
702  ln << "reg [" << dec << h << ":" << l << "] " << name << ";\n";
703  glc.AddDeclarator(ln.str());
704 #else
705  outreg = parent->AddOutReg((Signal)(*this));
706  setr(outreg->getr());
710 #endif
711 }
void setr(rval rv)
Definition: vlib.h:57
void setnegedge(int ch)
Definition: vlib.h:71
globcontrol glc
Definition: vlib.cc:5
rval getr()
Definition: vlib.h:52
void setchange(int ch)
Definition: vlib.h:69
void setposedge(int ch)
Definition: vlib.h:70
int getposedge()
Definition: vlib.h:66
int h
Definition: vlib.h:145
Signal * AddOutReg(Signal arg)
Definition: vlib.cc:1034
int l
Definition: vlib.h:145
int getnegedge()
Definition: vlib.h:67
int getchange()
Definition: vlib.h:68
const G4String rname[NREG]
Signal * outreg
Definition: vlib.h:161
void output(int, int, const char *)
Definition: vlib.cc:655
Definition: vlib.h:28
void Signal::output ( const char *  rname,
module parent 
)

Definition at line 713 of file vlib.cc.

References output().

713 { output(0, 0, rname, parent); }
const G4String rname[NREG]
void output(int, int, const char *)
Definition: vlib.cc:655
void Signal::reg ( int  high,
int  low,
const char *  rname 
)

Definition at line 756 of file vlib.cc.

References gather_cfg::cout, TauDecayModes::dec, h, initreg(), l, and Skims_PA_cff::name.

Referenced by module::AddOutReg(), inout(), and memory::memory().

756  {
757  initreg(high, low, rname);
758 #ifdef VGEN
759  if (h == l)
760  cout << glc.getmargin() << obname << name << ";\n" << flush;
761  else
762  std::cout << glc.getmargin() << obname << "[" << dec << h << ":" << l << "] " << name << ";\n" << flush;
763 #endif
764 }
globcontrol glc
Definition: vlib.cc:5
int h
Definition: vlib.h:145
void initreg(int, int, const char *)
Definition: vlib.cc:766
int l
Definition: vlib.h:145
const G4String rname[NREG]
void Signal::reg ( const char *  rname)
inline

Definition at line 136 of file vlib.h.

References reg(), and wire().

Referenced by reg().

136 { reg(0, 0, rname); };
void reg(int, int, const char *)
Definition: vlib.cc:756
const G4String rname[NREG]
Signal Signal::set ( Signal  other)

Definition at line 452 of file vlib.cc.

References asgn().

Referenced by asgn().

452  {
453 #ifdef VGEN
454  glc.setprintassign(0);
455 #endif
456  return asgn(other);
457 }
globcontrol glc
Definition: vlib.cc:5
Signal asgn(Signal)
Definition: vlib.cc:459
void Signal::setalwaysn ( int  n)
inline

Definition at line 72 of file vlib.h.

References alwaysn.

Referenced by asgn().

72 { alwaysn = (n == -1) ? 0 : n; };
int alwaysn
Definition: vlib.h:162
void Signal::setchange ( int  ch)
inline

Definition at line 69 of file vlib.h.

References change.

Referenced by globcontrol::getalwaysn(), module::negedge(), output(), and module::posedge().

69 { change = ch; };
int change
Definition: vlib.h:158
void Signal::sethlmask ( int  high,
int  low,
rval  imask 
)
inline

Definition at line 59 of file vlib.h.

References LaserClient_cfi::high, LaserClient_cfi::low, and mask.

59  {
60  h = high;
61  l = low;
62  mask = imask;
63  };
rval mask
Definition: vlib.h:147
int h
Definition: vlib.h:145
int l
Definition: vlib.h:145
void Signal::setnegedge ( int  ch)
inline

Definition at line 71 of file vlib.h.

References nedge.

Referenced by output().

71 { nedge = ch; };
int nedge
Definition: vlib.h:158
void Signal::setposedge ( int  ch)
inline

Definition at line 70 of file vlib.h.

References pedge.

Referenced by output().

70 { pedge = ch; };
int pedge
Definition: vlib.h:158
void Signal::setprintable ( int  p)
inline
void Signal::setr ( rval  rv)
inline

Definition at line 57 of file vlib.h.

References mask.

Referenced by module::AddOutReg(), clock(), input(), and output().

57 { r = rv & mask; };
rval mask
Definition: vlib.h:147
rval r
Definition: vlib.h:140
void Signal::setrc ( rval  rv)
inline

Definition at line 58 of file vlib.h.

References mask, and rc.

Referenced by clock(), and input().

58 { rc = rv & mask; };
rval mask
Definition: vlib.h:147
rval rc
Definition: vlib.h:144
void Signal::wire ( int  high,
int  low,
const char *  rname 
)

Definition at line 808 of file vlib.cc.

References change, gather_cfg::cout, TauDecayModes::dec, globcontrol::getparent(), h, init(), l, mode, mwire, Skims_PA_cff::name, nedge, obnames, outhost, pedge, r, rc, and module::setchange().

Referenced by reg(), and wire().

808  {
810  mode = mwire;
811  outhost = this;
812  change = (r != rc);
813  if (change && glc.getparent())
814  glc.getparent()->setchange(1);
815  pedge = (rc == 1 && r == 0);
816  nedge = (rc == 0 && r == 1);
817  r = rc;
818 #ifdef VGEN
819  obname = obnames[mode];
820  if (h == l)
821  cout << glc.getmargin() << obname << name << ";\n" << flush;
822  else
823  std::cout << glc.getmargin() << obname << "[" << dec << h << ":" << l << "] " << name << ";\n" << flush;
824 #endif
825 }
rval r
Definition: vlib.h:140
void init(int, int, const char *)
Definition: vlib.cc:208
Signal * outhost
Definition: vlib.h:160
int pedge
Definition: vlib.h:158
globcontrol glc
Definition: vlib.cc:5
char const * obnames[]
Definition: vlib.cc:7
void setchange(int c)
Definition: vlib.h:221
int h
Definition: vlib.h:145
int nedge
Definition: vlib.h:158
Definition: vlib.h:26
int l
Definition: vlib.h:145
module * getparent()
Definition: vlib.h:333
rval rc
Definition: vlib.h:144
const G4String rname[NREG]
int mode
Definition: vlib.h:165
int change
Definition: vlib.h:158
void Signal::wire ( int  high,
int  low,
const char *  rname,
int  i 
)

Definition at line 827 of file vlib.cc.

References TauDecayModes::dec, mps_fire::i, and wire().

827  {
828 #ifdef VGEN
829  ostringstream instnamestream;
830  instnamestream << rname << dec << i;
831  // init(high, low, instnamestream.str().c_str());
832  wire(high, low, instnamestream.str().c_str());
833 #else
834  wire(high, low, rname);
835 #endif
836 }
void wire(int, int, const char *)
Definition: vlib.cc:808
const G4String rname[NREG]
void Signal::wire ( const char *  rname)
inline

Definition at line 140 of file vlib.h.

References r, and wire().

Referenced by wire().

140 { wire(0, 0, rname); };
void wire(int, int, const char *)
Definition: vlib.cc:808
const G4String rname[NREG]

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  stream,
Signal  s 
)
friend

Definition at line 538 of file vlib.cc.

538  {
539  stream << s.getr();
540  s.setprintable(0);
541  return stream;
542 }
rval getr()
Definition: vlib.h:52
void setprintable(int p)
Definition: vlib.h:74
Signal rand ( Signal  arg)
friend

Definition at line 379 of file vlib.cc.

Referenced by operator--().

379  {
380  Signal t;
381  rval tr;
382 #ifdef VGEN
383  t.name = "&" + arg.lb + arg.name + arg.rb;
384  arg.printable = 0;
385 #else
386  t.init("");
387 #endif
388  tr = (arg.getval()) & arg.mask;
389  t.r = (tr == arg.mask) ? 1 : 0;
390  return t;
391 }
rval mask
Definition: vlib.h:147
rval r
Definition: vlib.h:140
void init(int, int, const char *)
Definition: vlib.cc:208
rval getval()
Definition: vlib.cc:415
int printable
Definition: vlib.h:164
unsigned long long int rval
Definition: vlib.h:21
Definition: vlib.h:28
Signal ror ( Signal  arg)
friend

Definition at line 365 of file vlib.cc.

Referenced by operator--().

365  {
366  Signal t;
367  rval tr;
368 #ifdef VGEN
369  t.name = "|" + arg.lb + arg.name + arg.rb;
370  arg.printable = 0;
371 #else
372  t.init("");
373 #endif
374  tr = (arg.getval()) & arg.mask;
375  t.r = (tr != 0) ? 1 : 0;
376  return t;
377 }
rval mask
Definition: vlib.h:147
rval r
Definition: vlib.h:140
void init(int, int, const char *)
Definition: vlib.cc:208
rval getval()
Definition: vlib.cc:415
int printable
Definition: vlib.h:164
unsigned long long int rval
Definition: vlib.h:21
Definition: vlib.h:28
Signal rxor ( Signal  arg)
friend

Definition at line 393 of file vlib.cc.

Referenced by operator--().

393  {
394  Signal t;
395  rval tr;
396  int i;
397 #ifdef VGEN
398  t.name = "^" + arg.lb + arg.name + arg.rb;
399  arg.printable = 0;
400 #else
401  t.init("");
402 #endif
403  tr = (arg.getval()) & arg.mask;
404  t.r = 0;
405  for (i = 0; i < arg.h - arg.l + 1; ++i) {
406  t.r = ((tr & 1) != 0) ? !t.r : t.r;
407  tr = tr >> 1;
408  }
409  t.r = t.r & 1;
410  return t;
411 }
rval mask
Definition: vlib.h:147
rval r
Definition: vlib.h:140
void init(int, int, const char *)
Definition: vlib.cc:208
rval getval()
Definition: vlib.cc:415
int h
Definition: vlib.h:145
int printable
Definition: vlib.h:164
int l
Definition: vlib.h:145
unsigned long long int rval
Definition: vlib.h:21
Definition: vlib.h:28

Member Data Documentation

int Signal::alwaysn
protected
Signal* Signal::ca1
protected

Definition at line 156 of file vlib.h.

Referenced by asgn(), create(), and operator,().

Signal* Signal::ca2
protected

Definition at line 157 of file vlib.h.

Referenced by asgn(), create(), and operator,().

int Signal::change
protected
int Signal::h
protected
Signal* Signal::host
protected

Definition at line 155 of file vlib.h.

Referenced by asgn(), clock(), create(), init(), and input().

int Signal::hostl
protected

Definition at line 146 of file vlib.h.

Referenced by asgn(), create(), inout(), and output().

int Signal::inited
protected

Definition at line 163 of file vlib.h.

Referenced by clock(), create(), init(), input(), and Signal().

int Signal::l
protected
rval Signal::mask
protected
int Signal::mode
protected

Definition at line 165 of file vlib.h.

Referenced by asgn(), clock(), create(), initreg(), inout(), input(), operator=(), output(), Signal(), and wire().

int Signal::nedge
protected

Definition at line 158 of file vlib.h.

Referenced by asgn(), clock(), create(), getnegedge(), init(), parameter::init(), initreg(), input(), setnegedge(), and wire().

Signal* Signal::outhost
protected

Definition at line 160 of file vlib.h.

Referenced by asgn(), clock(), create(), input(), and wire().

Signal* Signal::outreg
protected
int Signal::pedge
protected

Definition at line 158 of file vlib.h.

Referenced by asgn(), clock(), create(), getposedge(), init(), parameter::init(), initreg(), input(), setposedge(), and wire().

int Signal::printable
protected
rval Signal::r
protected
rval Signal::rc
protected

Definition at line 144 of file vlib.h.

Referenced by asgn(), clock(), create(), getval(), init(), initreg(), operator()(), setrc(), Signal(), and wire().

Signal* Signal::source
protected

Definition at line 159 of file vlib.h.

Referenced by init(), and operator,().