CMS 3D CMS Logo

Signal Class Reference

#include <L1Trigger/CSCCommonTrigger/interface/vlib.h>

Inheritance diagram for Signal:

parameter

List of all members.

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 (Signal *shost, int h, int l, const char *rname)
void init (const char *rname)
void init (int, int, const char *)
void initreg (int, int, const char *)
void inout (const char *rname)
void inout (int, int, const char *)
void input (const char *rname)
void input (int, int, const char *)
void makemask ()
Signaloperator & ()
Signal operator & (Signal)
Signal operator && (Signal)
Signal operator * (Signal)
Signal operator! ()
Signal operator!= (Signal)
Signal operator% (Signal)
Signal operator() (Signal)
Signal operator() (Signal, Signal)
Signal operator+ (Signal)
Signal operator++ (int)
Signal operator++ ()
Signal operator, (Signal)
Signal operator- (Signal)
Signal operator-- (int)
Signal operator-- ()
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 (const char *rname, module *parent)
void output (int high, int low, const char *rname, module *parent)
void output (const char *rname)
void output (int, int, const char *)
void reg (const char *rname)
void reg (int, int, const char *)
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 (int bits, rval value)
 Signal (const char *)
 Signal (unsigned int)
 Signal (int)
 Signal (rval)
 Signal ()
void wire (const char *rname)
void wire (int, int, const char *, int)
void wire (int, int, const char *)

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

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


Detailed Description

Definition at line 42 of file vlib.h.


Constructor & Destructor Documentation

Signal::Signal (  ) 

Definition at line 43 of file vlib.cc.

References create().

00044 {
00045         create();
00046 }

Signal::Signal ( rval  n  ) 

Definition at line 183 of file vlib.cc.

References create(), init(), inited, mnum, mode, r, rc, and Sizeofrval.

00184 {
00185         create();
00186         mode = mnum;
00187 #ifdef VGEN
00188         ostringstream ln;
00189         ln << dec << n;
00190         init (8*Sizeofrval - 1, 0, ln.str().c_str());
00191 #else
00192         init (8*Sizeofrval - 1, 0, "");
00193 #endif
00194         inited = 0;
00195         rc = n;
00196         r = n;
00197 }

Signal::Signal ( int  n  ) 

Definition at line 199 of file vlib.cc.

References create(), init(), inited, mnum, mode, r, rc, and Sizeofrval.

00200 {
00201         create();
00202         mode = mnum;
00203 #ifdef VGEN
00204         ostringstream ln;
00205         ln << dec << n;
00206         init (Sizeofrval * 8 - 1, 0, ln.str().c_str());
00207 #else
00208         init (Sizeofrval * 8 - 1, 0, "");
00209 #endif
00210         inited = 0;
00211         r = (rval)n;
00212         rc = r;
00213 }

Signal::Signal ( unsigned int  n  ) 

Definition at line 215 of file vlib.cc.

References create(), init(), inited, mnum, mode, r, rc, and Sizeofrval.

00216 {
00217         create();
00218         mode = mnum;
00219 #ifdef VGEN
00220         ostringstream ln;
00221         ln << dec << n;
00222         init (Sizeofrval * 8 - 1, 0, ln.str().c_str());
00223 #else
00224         init (Sizeofrval * 8 - 1, 0, "");
00225 #endif
00226         inited = 0;
00227         r = (rval)n;
00228         rc = r;
00229 }

Signal::Signal ( const char *  sval  ) 

Definition at line 61 of file vlib.cc.

References bits, create(), i, init(), mask, mnum, mode, r, rc, and value.

00062 {
00063         create();
00064         mode = mnum;
00065         string val = sval;
00066         int bits, i;
00067         char radix;
00068         rval value = 0;
00069         int dig;
00070 
00071         sscanf(val.c_str(), "%d'%c", &bits, &radix);
00072         switch (radix)
00073         {
00074         case 'h':
00075         case 'H': 
00076 //              sscanf (val.c_str(), "%d'%c%x", &bits, &radix, &value);
00077                 for (i = 0; val[i] != 'h' && val[i] != 'H'; i++);
00078                 for (; i < val.length(); i++)
00079                 {
00080                         switch (val[i])
00081                         {
00082                         case '0':
00083                         case '1':
00084                         case '2':
00085                         case '3':
00086                         case '4':
00087                         case '5':
00088                         case '6':
00089                         case '7':
00090                         case '8':
00091                         case '9':
00092                                 dig = val[i] - '0';
00093                                 break;
00094                         case 'a':
00095                         case 'b':
00096                         case 'c':
00097                         case 'd':
00098                         case 'e':
00099                         case 'f':
00100                                 dig = val[i] - 'a' + 10;
00101                                 break;
00102                         case 'A':
00103                         case 'B':
00104                         case 'C':
00105                         case 'D':
00106                         case 'E':
00107                         case 'F':
00108                                 dig = val[i] - 'A' + 10;
00109                                 break;
00110                         default: 
00111                                 dig = -1;
00112                                 break;
00113                         }
00114                         if (dig >= 0)
00115                         {
00116                                 value = value << 4;
00117                                 value = value | dig;
00118                         }
00119                 }
00120 
00121 
00122                 break;
00123         case 'd':
00124         case 'D': 
00125                 sscanf (val.c_str(), "%d'%c%d", &bits, &radix, &value);
00126                 break;
00127         case 'o': 
00128         case 'O': 
00129 //              sscanf (val.c_str(), "%d'%c%o", &bits, &radix, &value);
00130                 for (i = 0; val[i] != 'o' && val[i] != 'O'; i++);
00131                 for (; i < val.length(); i++)
00132                 {
00133                         switch (val[i])
00134                         {
00135                         case '0':
00136                         case '1':
00137                         case '2':
00138                         case '3':
00139                         case '4':
00140                         case '5':
00141                         case '6':
00142                         case '7':
00143                                 dig = val[i] - '0';
00144                                 break;
00145                         default: 
00146                                 dig = -1;
00147                                 break;
00148                         }
00149                         if (dig >= 0)
00150                         {
00151                                 value = value << 3;
00152                                 value = value | dig;
00153                         }
00154                 }
00155 
00156                 break;
00157 
00158         case 'b': 
00159         case 'B': 
00160                 
00161                 for (i = 0; val[i] != 'b' && val[i] != 'B'; i++);
00162                 for (; i < val.length(); i++)
00163                 {
00164                         switch (val[i])
00165                         {
00166                         case '0':
00167                                 value = value << 1;
00168                                 break;
00169                         case '1':
00170                                 value = value << 1;
00171                                 value = value | 1;
00172                                 break;
00173                         }
00174                 }
00175                 break;
00176         }
00177         Signal::init(bits - 1, 0, val.c_str());
00178         rc = value & mask;
00179         r = rc;
00180 
00181 }

Signal::Signal ( int  bits,
rval  value 
)

Definition at line 48 of file vlib.cc.

References create(), init(), mask, r, and rc.

00049 {
00050         create();
00051 #ifdef VGEN     
00052         ostringstream sval;
00053         sval << dec << bits << "'d" << value;
00054         Signal::init(bits - 1, 0, sval.str().c_str());
00055 #else
00056         Signal::init(bits - 1, 0, "");
00057 #endif
00058         r = rc = value & mask;
00059 }


Member Function Documentation

Signal Signal::asgn ( Signal   ) 

void Signal::clock ( const char *  rname  ) 

void Signal::create ( void   ) 

Definition at line 25 of file vlib.cc.

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

Referenced by Signal().

00026 {
00027 #ifdef VGEN
00028         name = "";
00029         orname = "";
00030         obname = "";
00031         lb = "(";
00032         rb = ")";
00033 #endif
00034 
00035         outhost = host = outreg = ca1 = ca2 = NULL;
00036         inited = printable = r = rc = l = pedge = nedge = change = alwaysn = mode = 0;
00037         h = 8*Sizeofrval - 1;
00038         mask = (rval)(- 1);
00039         hostl = -1;
00040 
00041 }

int Signal::getalwaysn (  )  [inline]

Definition at line 81 of file vlib.h.

References alwaysn.

00081 {return alwaysn;};

bool Signal::getbool (  )  [inline]

Definition at line 73 of file vlib.h.

References getval().

00073 {return (getval() != 0);};

int Signal::getchange (  )  [inline]

Definition at line 76 of file vlib.h.

References change.

00076 {return change;};

int Signal::geth (  )  [inline]

Definition at line 67 of file vlib.h.

References h.

00067 {return h;};

int Signal::getint (  )  [inline]

Definition at line 65 of file vlib.h.

References r.

00065 {return (unsigned int)r;};

int Signal::getl (  )  [inline]

Definition at line 66 of file vlib.h.

References l.

Referenced by init().

00066 {return l;};

rval Signal::getmask (  )  [inline]

Definition at line 68 of file vlib.h.

References mask.

00068 {return mask;};

int Signal::getnegedge (  )  [inline]

Definition at line 75 of file vlib.h.

References nedge.

00075 {return nedge;};

int Signal::getposedge (  )  [inline]

Definition at line 74 of file vlib.h.

References pedge.

00074 {return pedge;};

rval Signal::getr (  )  [inline]

Definition at line 64 of file vlib.h.

References r.

Referenced by init().

00064 {return r;};

rval Signal::getval (  ) 

Referenced by binop(), getbool(), and operator,().

void Signal::init ( Signal shost,
int  h,
int  l,
const char *  rname 
)

Definition at line 257 of file vlib.cc.

References change, getl(), getr(), h, host, l, makemask(), mask, name, nedge, pedge, r, rb, rc, and source.

00258 {
00259         host = shost; 
00260 #ifdef VGEN
00261         name = rname;
00262         orname = rname;
00263         lb = "";
00264         rb = "";
00265 #endif
00266         h = high;
00267         l = low;
00268         makemask();
00269         source = this;
00270         if (host) 
00271         {
00272                 rc = (host->getr() >> (l - host->getl())) & mask;
00273                 r = rc;
00274         }
00275         change = pedge = nedge = 0;
00276 }

void Signal::init ( const char *  rname  )  [inline]

Definition at line 53 of file vlib.h.

References init().

00053 {init(0, 0, rname);};

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

Reimplemented in parameter.

Definition at line 238 of file vlib.cc.

References h, inited, l, makemask(), name, rb, and source.

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

00239 {
00240         
00241 #ifdef VGEN
00242         name = rname;
00243         orname = rname;
00244         lb = "";
00245         rb = "";
00246 #endif
00247         if (!inited)
00248         {
00249                 h = high;
00250                 l = low;
00251                 makemask();
00252                 inited = 1;
00253         }
00254         source = this;
00255 }

void Signal::initreg ( int  ,
int  ,
const char *   
)

void Signal::inout ( const char *  rname  )  [inline]

Definition at line 139 of file vlib.h.

References inout().

00139 {inout(0, 0, rname);};

void Signal::inout ( int  ,
int  ,
const char *   
)

Referenced by inout().

void Signal::input ( const char *  rname  )  [inline]

Definition at line 130 of file vlib.h.

References input().

00130 {input(0, 0, rname);};

void Signal::input ( int  ,
int  ,
const char *   
)

Referenced by input().

void Signal::makemask (  ) 

Definition at line 231 of file vlib.cc.

References h, l, LL, and mask.

Referenced by init().

00232 {
00233         mask = (1LL << (h - l + 1)) - 1LL;
00234         if (mask == 0LL) mask = ~mask;
00235 }

Signal * Signal::operator & (  ) 

Definition at line 315 of file vlib.cc.

References printable.

00316 {
00317 #ifdef VGEN
00318         printable = 0;
00319 #endif
00320         return this;
00321 }

Signal Signal::operator & ( Signal   ) 

Signal Signal::operator && ( Signal   ) 

Signal Signal::operator * ( Signal   ) 

Signal Signal::operator! (  ) 

Signal Signal::operator!= ( Signal   ) 

Signal Signal::operator% ( Signal   ) 

Signal Signal::operator() ( Signal   ) 

Signal Signal::operator() ( Signal  ,
Signal   
)

Signal Signal::operator+ ( Signal   ) 

Signal Signal::operator++ ( int   )  [inline]

Definition at line 114 of file vlib.h.

00114 {return *this = *this + 1;};            // postfix operators require some work (different names for operations and assignment printing?)

Signal Signal::operator++ ( void   )  [inline]

Definition at line 112 of file vlib.h.

00112 {return *this = *this + 1;};

Signal Signal::operator, ( Signal  arg  ) 

Definition at line 378 of file vlib.cc.

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

00379 {
00380         Signal t;
00381 #ifdef VGEN
00382         t.name = name + ", " + arg.name;
00383         t.lb = "{";
00384         t.rb = "}";
00385         printable = arg.printable = 0;
00386 #else
00387         t.ca1 = this;
00388         t.ca2 = arg.source;
00389         t.init(h - l + arg.h - arg.l + 1, 0, "");
00390 #endif
00391         t.r = (((getval() << (arg.h - arg.l + 1)) & (~(arg.mask))) | arg.getval()) & t.mask;
00392         return t;
00393 }

Signal Signal::operator- ( Signal   ) 

Signal Signal::operator-- ( int   )  [inline]

Definition at line 115 of file vlib.h.

00115 {return *this = *this - 1;};

Signal Signal::operator-- ( void   )  [inline]

Definition at line 113 of file vlib.h.

00113 {return *this = *this - 1;};

Signal Signal::operator/ ( Signal   ) 

Signal Signal::operator< ( Signal   ) 

Signal Signal::operator<< ( Signal   ) 

Signal Signal::operator<= ( Signal   ) 

Signal Signal::operator= ( Signal   ) 

Reimplemented in parameter.

Signal Signal::operator== ( Signal   ) 

Signal Signal::operator> ( Signal   ) 

Signal Signal::operator>= ( Signal   ) 

Signal Signal::operator>> ( Signal   ) 

Signal Signal::operator^ ( Signal   ) 

Signal Signal::operator| ( Signal   ) 

Signal Signal::operator|| ( Signal   ) 

Signal Signal::operator~ (  ) 

void Signal::output ( const char *  rname,
module parent 
)

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

void Signal::output ( const char *  rname  )  [inline]

Definition at line 134 of file vlib.h.

References output().

00134 {output(0, 0, rname);};

void Signal::output ( int  ,
int  ,
const char *   
)

Referenced by output().

void Signal::reg ( const char *  rname  )  [inline]

Definition at line 143 of file vlib.h.

References reg().

00143 {reg(0, 0, rname);};

void Signal::reg ( int  ,
int  ,
const char *   
)

Referenced by reg().

Signal Signal::set ( Signal   ) 

void Signal::setalwaysn ( int  n  )  [inline]

Definition at line 80 of file vlib.h.

References alwaysn.

00080 {alwaysn = (n == -1) ? 0 : n;};

void Signal::setchange ( int  ch  )  [inline]

Definition at line 77 of file vlib.h.

References change.

00077 {change = ch;};

void Signal::sethlmask ( int  high,
int  low,
rval  imask 
) [inline]

Definition at line 71 of file vlib.h.

References h, l, and mask.

00071 {h = high; l = low; mask = imask;};

void Signal::setnegedge ( int  ch  )  [inline]

Definition at line 79 of file vlib.h.

References nedge.

00079 {nedge = ch;};

void Signal::setposedge ( int  ch  )  [inline]

Definition at line 78 of file vlib.h.

References pedge.

00078 {pedge = ch;};

void Signal::setprintable ( int  p  )  [inline]

Definition at line 82 of file vlib.h.

References printable.

00082 {printable = p;};

void Signal::setr ( rval  rv  )  [inline]

Definition at line 69 of file vlib.h.

References mask, and r.

00069 {r = rv & mask;};

void Signal::setrc ( rval  rv  )  [inline]

Definition at line 70 of file vlib.h.

References mask, and rc.

00070 {rc = rv & mask;};

void Signal::wire ( const char *  rname  )  [inline]

Definition at line 147 of file vlib.h.

References wire().

00147 {wire(0, 0, rname);};

void Signal::wire ( int  ,
int  ,
const char *  ,
int   
)

void Signal::wire ( int  ,
int  ,
const char *   
)

Referenced by wire().


Friends And Related Function Documentation

ostream& operator<< ( ostream &  stream,
Signal  s 
) [friend]

Signal rand ( Signal   )  [friend]

Signal ror ( Signal   )  [friend]

Signal rxor ( Signal   )  [friend]


Member Data Documentation

int Signal::alwaysn [protected]

Definition at line 170 of file vlib.h.

Referenced by create(), getalwaysn(), and setalwaysn().

Signal* Signal::ca1 [protected]

Definition at line 164 of file vlib.h.

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

Signal* Signal::ca2 [protected]

Definition at line 165 of file vlib.h.

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

int Signal::change [protected]

Definition at line 166 of file vlib.h.

Referenced by binop(), create(), getchange(), init(), and setchange().

int Signal::h [protected]

Definition at line 153 of file vlib.h.

Referenced by binop(), create(), geth(), init(), makemask(), operator,(), and sethlmask().

Signal* Signal::host [protected]

Definition at line 163 of file vlib.h.

Referenced by create(), and init().

int Signal::hostl [protected]

Definition at line 154 of file vlib.h.

Referenced by create().

int Signal::inited [protected]

Definition at line 171 of file vlib.h.

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

int Signal::l [protected]

Definition at line 153 of file vlib.h.

Referenced by binop(), create(), getl(), init(), makemask(), operator,(), and sethlmask().

rval Signal::mask [protected]

Definition at line 155 of file vlib.h.

Referenced by binop(), create(), getmask(), init(), makemask(), operator,(), sethlmask(), setr(), setrc(), and Signal().

int Signal::mode [protected]

Definition at line 173 of file vlib.h.

Referenced by create(), and Signal().

int Signal::nedge [protected]

Definition at line 166 of file vlib.h.

Referenced by create(), getnegedge(), init(), and setnegedge().

Signal* Signal::outhost [protected]

Definition at line 168 of file vlib.h.

Referenced by create().

Signal* Signal::outreg [protected]

Definition at line 169 of file vlib.h.

Referenced by create().

int Signal::pedge [protected]

Definition at line 166 of file vlib.h.

Referenced by create(), getposedge(), init(), and setposedge().

int Signal::printable [protected]

Definition at line 172 of file vlib.h.

Referenced by binop(), create(), operator &(), operator,(), and setprintable().

rval Signal::r [protected]

Definition at line 147 of file vlib.h.

Referenced by binop(), create(), getint(), getr(), init(), parameter::operator int(), operator,(), setr(), and Signal().

rval Signal::rc [protected]

Definition at line 152 of file vlib.h.

Referenced by create(), init(), setrc(), and Signal().

Signal* Signal::source [protected]

Definition at line 167 of file vlib.h.

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


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:31:32 2009 for CMSSW by  doxygen 1.5.4