fdhwlib
2.0.25
|
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