fdhwlib  2.0.25
/home/kopmann/git-mirror/fdhwlib/fdhwlib/hw4/fltperiphregister.h
Go to the documentation of this file.
00001 /***************************************************************************
00002     fltperiphregister.h  -  description
00003 
00004     begin                : Thu Mar 29 2001
00005     copyright            : (C) 2001 by A Kopmann
00006     email                : kopmann@hpe.fzk.de
00007     status               :
00008     test                 :
00009     history              :
00010  ***************************************************************************/
00011 
00012 
00013 #ifndef _HW4_FLTPERIPHREGISTER_H_INCLUDED
00014 #define _HW4_FLTPERIPHREGISTER_H_INCLUDED
00015 
00016 #include <hw4/baseregister.h>
00017 
00018 namespace hw4 {
00019 
00030 class FltPeriphRegister : public BaseRegister  {
00031 public: 
00032   FltPeriphRegister(const char * name, int slotID, int regID, int r, int w, int len = 1, int addrShift = 1);
00033 
00034   
00036   int fpgaToPixelNo(int no);
00037 
00038   //using hw4::BaseRegister::read; ALL reads should be rewritten (reason: adressing cache!) -tb-
00039   
00042   virtual unsigned long read();
00043   
00046   virtual unsigned long read(int elem);
00047 
00051   virtual unsigned long read(int elem, int line );
00052 
00053   //using hw4::BaseRegister::readBlock;  see above -tb-
00054   
00057   virtual void readBlock(unsigned long * data);
00058   
00061   virtual void write(unsigned long data);
00062   
00064   virtual void write(int elem, unsigned long data);
00065 
00067   virtual void write(int elem, int line, unsigned long data);
00068   
00070   virtual void write(unsigned long *data);
00071 
00072   virtual void writeBits(unsigned long data, unsigned long mask, int shift);
00073 
00074   virtual void writeBits(int elem, unsigned long data, unsigned long mask, int shift);
00075 
00076   virtual void writeBits(int elem, int line, unsigned long data, unsigned long mask, int shift);
00077 
00078   virtual void setBitsToHigh(unsigned long mask);
00079 
00080   virtual void setBitsToHigh(int elem, unsigned long mask);
00081 
00082   virtual void setBitsToLow(unsigned long mask);
00083 
00084   virtual void setBitsToLow(int elem, unsigned long mask);
00085 
00087   void setCache(unsigned long data);
00088 
00089   void setCache(int elem, unsigned long data);
00090 
00091   void setCache(unsigned long *data);
00092 
00093   //getCache from BaseRegister can be used -tb-
00094 
00096   virtual void setCacheBits(unsigned long data, unsigned long mask, int shift);
00097 
00098   virtual void setCacheBits(int elem, unsigned long data, unsigned long mask, int shift);
00099   
00100   using hw4::BaseRegister::writeCache;
00101   
00103   virtual void writeCache(int elem = 0);
00104 };
00105 
00106 } // namespace hw4
00107         
00108 #endif // _HW4_FLTPERIPHREGISTER_H_INCLUDED