Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members

stilscanchain.h

Go to the documentation of this file.
00001 /*******************************************************************************
00002  * Copyright (c) 2006 International Business Machines Corporation
00003  * All rights reserved. This program and the accompanying materials
00004  * are made available under the terms of the Common Public License v1.0
00005  * which accompanies this distribution, and is available at
00006  * http://www.opensource.org/licenses/cpl1.0.php
00007  *
00008  * Contributors:
00009  *    Douglas Sprague, Joel Wheeler - initial API and implementation
00010  *
00011  *****************************************************************************/
00012 
00013 #ifndef STILScanChain_H
00014 #define STILScanChain_H
00015 
00016 #include "stilcom.h"             // Common
00017 #include "stilcomstr.h"
00018 #include "stilblock.h"           // STIL Block common base class
00019 #include "stilnamelist.h"
00020 
00021 
00022 //---------------------------------------------------------------------------
00028 //---------------------------------------------------------------------------
00029 class STILScanChain : public STILBlock {
00030 
00031   public:
00032 
00033     // - The scan inversion type, may be 0 or 1 (-1 if undefined)
00034     typedef BOOLEAN STILScanInversionType;
00035 
00036     // - Default Constructor
00037     STILScanChain();
00038 
00039     // - Copy Constructor
00040     STILScanChain(const   STILScanChain &);
00041 
00042     // - Destructor which frees storage associated to a STILScanChain object
00043     virtual ~STILScanChain();
00044 
00045     // - Assignment operator
00046     STILScanChain & operator=(const STILScanChain &);
00047 
00048     // - Member function to initialize an object (default is global domain name)
00049     void                        init(const sstring& domain="");
00050 
00051     // - Member function to write the object
00052     virtual void write(FILE * pOutFile, LONG indentation=0) const;
00053 
00054     // - Member functions to set/get ScanLength
00055     void setScanLength(LONG);
00056     LONG getScanLength() const;
00057 
00058     // - Member functions to set/get ScanOutLength
00059     void setScanOutLength(LONG);
00060     LONG getScanOutLength() const;
00061 
00062     // - Member functions to set/get ScanCells
00063     void setScanCells(const STILNameList&);
00064     const STILNameList& getScanCells() const;
00065 
00066     // - Member functions to set/get ScanIn
00067     void setScanIn(const sstring&);
00068     const sstring& getScanIn() const;
00069 
00070     // - Member functions to set/get ScanOut
00071     void setScanOut(const sstring&);
00072     const sstring& getScanOut() const;
00073 
00074     // - Member functions to set/get ScanMasterClock
00075     void setScanMasterClock(const STILNameList&);
00076     const STILNameList& getScanMasterClock() const;
00077 
00078     // - Member functions to set/get ScanSlaveClock
00079     void setScanSlaveClock(const STILNameList&);
00080     const STILNameList& getScanSlaveClock() const;
00081 
00082     // - Member functions to set/get ScanInversion
00083     void setScanInversion(STILScanInversionType);
00084     STILScanInversionType getScanInversion() const;
00085 
00086   private:
00087 
00088     LONG m_scanLen;
00089     LONG m_scanOutLen;
00090     STILNameList m_scanCells;
00091     sstring m_scanIn;
00092     sstring m_scanOut;
00093     STILNameList m_scanMasterClk;
00094     STILNameList m_scanSlaveClk;
00095     STILScanInversionType m_scanInv;
00096 
00097 
00098 }; //end class STILScanChain
00099 
00100 // Inlines: ///////////////////////////////////////////////////////////////////
00101 //--------------------------------------------------------------------------
00109 //--------------------------------------------------------------------------
00110 inline void STILScanChain::setScanLength(LONG sl)            { m_scanLen = sl; }
00111 
00112 //--------------------------------------------------------------------------
00120 //--------------------------------------------------------------------------
00121 inline LONG STILScanChain::getScanLength() const             { return m_scanLen; }
00122 
00123 //--------------------------------------------------------------------------
00131 //--------------------------------------------------------------------------
00132 inline void STILScanChain::setScanOutLength(LONG sol)        { m_scanOutLen = sol; }
00133 
00134 //--------------------------------------------------------------------------
00142 //--------------------------------------------------------------------------
00143 inline LONG STILScanChain::getScanOutLength() const          { return m_scanOutLen; }
00144 
00145 //--------------------------------------------------------------------------
00153 //--------------------------------------------------------------------------
00154 inline void STILScanChain::setScanCells(const STILNameList& sc)    { m_scanCells = sc; }
00155 
00156 //--------------------------------------------------------------------------
00164 //--------------------------------------------------------------------------
00165 inline const STILNameList& STILScanChain::getScanCells() const     { return m_scanCells; }
00166 
00167 //--------------------------------------------------------------------------
00175 //--------------------------------------------------------------------------
00176 inline void STILScanChain::setScanIn(const sstring& si)       { m_scanIn = si; }
00177 
00178 //--------------------------------------------------------------------------
00186 //--------------------------------------------------------------------------
00187 inline const sstring& STILScanChain::getScanIn() const        { return m_scanIn; }
00188 
00189 //--------------------------------------------------------------------------
00197 //--------------------------------------------------------------------------
00198 inline void STILScanChain::setScanOut(const sstring& so)       { m_scanOut = so; }
00199 
00200 //--------------------------------------------------------------------------
00208 //--------------------------------------------------------------------------
00209 inline const sstring& STILScanChain::getScanOut() const        { return m_scanOut; }
00210 
00211 //--------------------------------------------------------------------------
00219 //--------------------------------------------------------------------------
00220 inline void STILScanChain::setScanMasterClock(const STILNameList& smc) { m_scanMasterClk = smc; }
00221 
00222 //--------------------------------------------------------------------------
00230 //--------------------------------------------------------------------------
00231 inline const STILNameList& STILScanChain::getScanMasterClock() const   { return m_scanMasterClk; }
00232 
00233 //--------------------------------------------------------------------------
00241 //--------------------------------------------------------------------------
00242 inline void STILScanChain::setScanSlaveClock(const STILNameList& ssc)  { m_scanSlaveClk = ssc; }
00243 
00244 //--------------------------------------------------------------------------
00252 //--------------------------------------------------------------------------
00253 inline const STILNameList& STILScanChain::getScanSlaveClock() const    { return m_scanSlaveClk; }
00254 
00255 //--------------------------------------------------------------------------
00263 //--------------------------------------------------------------------------
00264 inline void STILScanChain::setScanInversion(STILScanChain::STILScanInversionType si) { m_scanInv = si; }
00265 
00266 //--------------------------------------------------------------------------
00274 //--------------------------------------------------------------------------
00275 inline STILScanChain::STILScanInversionType STILScanChain::getScanInversion() const  { return m_scanInv; }
00276 
00277 #endif

This page last updated on 6 Jul 2007

SourceForge.net Logo