- A Logic Circuit Simulation Library in C++





lcs::BitBuff< bits > Class Template Reference

#include <bitbuff.h>

Inheritance diagram for lcs::BitBuff< bits >:

lcs::Array1D< T, len > List of all members.

Detailed Description

template<int bits = 1>
class lcs::BitBuff< bits >

A utility class which encapsulates a group of lcs::Bit objects. Objects of this class should typically be used as temporary/intermediate data storage buffers.


Public Member Functions

 BitBuff (void)
 BitBuff (const BitBuff< bits > &reg)
virtual ~BitBuff ()
template<int w>
const BitBuff< w > partSelect (int s)
template<int rbits>
BitBuff< bits > & operator= (const BitBuff< rbits > &rhs)
template<int w, ExprType Type, typename LExprType, typename RExprType>
BitBuff< bits > & operator= (const Expression< w, Type, LExprType, RExprType > &expr)
template<int rbits>
BitBuff< bits > & operator= (const InputBus< rbits > &rhs)
const Expression< 1, BITBUFF_EXPR,
void, void > 
operator[] (int index) const throw (OutOfRangeException<int>)
Expression< 1, BITBUFF_EXPR,
void, void > 
operator[] (int index) throw (OutOfRangeException<int>)


Constructor & Destructor Documentation

template<int bits>
lcs::BitBuff< bits >::BitBuff ( void   ) 

Default constructor.

template<int bits>
lcs::BitBuff< bits >::BitBuff ( const BitBuff< bits > &  reg  ) 

Copy constructor.

template<int bits>
lcs::BitBuff< bits >::~BitBuff (  )  [virtual]

Destructor.


Member Function Documentation

template<int bits>
template<int rbits>
BitBuff< bits > & lcs::BitBuff< bits >::operator= ( const InputBus< rbits > &  rhs  ) 

Assignment operator to facilitate assignment using a lcs::InputBus object.

template<int bits>
template<int w, ExprType Type, typename LExprType, typename RExprType>
BitBuff< bits > & lcs::BitBuff< bits >::operator= ( const Expression< w, Type, LExprType, RExprType > &  expr  ) 

Assignment operator to facilitate assignment using an lcs::Expression object. ie., the operator facilitates assignment with an expression of bitwise operations on the right hand side of the assignment operator.

template<int bits>
template<int rbits>
BitBuff< bits > & lcs::BitBuff< bits >::operator= ( const BitBuff< rbits > &  rhs  ) 

Assignment operator.

template<int bits>
Expression< 1, BITBUFF_EXPR, void, void > lcs::BitBuff< bits >::operator[] ( int  index  )  throw (OutOfRangeException<int>)

Returns a the suitable expression object when a bitselect is requested. An expression object is returned so that a bitselect can be used in a normal expression of bitwise operations.

template<int bits>
const Expression< 1, BITBUFF_EXPR, void, void > lcs::BitBuff< bits >::operator[] ( int  index  )  const throw (OutOfRangeException<int>)

Returns a the suitable constant expression object when a bitselect is requested. An expression object is returned so that a bitselect can be used in a normal expression of bitwise operations.

template<int bits>
template<int w>
const BitBuff< w > lcs::BitBuff< bits >::partSelect ( int  s  ) 

Returns a part-buffer formed from a set of consecutive bits of the original BitBuffer object. If s+w goes beyond the range of the original bus width, then, only the bits within range are assigned to the bits of the new bus object.

Parameters:
w The width of the part-buffer.
s The start bit from where the part-buffer should be accumulated.


Copyright © 2006, 2007 Siva Chandra