- A Logic Circuit Simulation Library in C++ |
#include <bitbuff.h>
Inheritance diagram for lcs::BitBuff< bits >:
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 > ®) | |
virtual | ~BitBuff () |
template<int w> | |
const BitBuff< w > | partSelect (int s) |
void | notify (Module *mod, int bit=-1) |
void | stopNotification (Module *mod, int bit=-1) |
int | width (void) |
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>) |
lcs::BitBuff< bits >::BitBuff | ( | void | ) |
Default constructor.
lcs::BitBuff< bits >::BitBuff | ( | const BitBuff< bits > & | reg | ) |
Copy constructor.
lcs::BitBuff< bits >::~BitBuff | ( | ) | [virtual] |
Destructor.
void lcs::BitBuff< bits >::notify | ( | Module * | mod, | |
int | bit = -1 | |||
) |
Registers the module which has to be notified about a bit state change.
mod | Pointer to the module object which seeks to be notified about a bit state change. | |
bit | The index of the bit whose state change should be notified to the module. |
BitBuff< bits > & lcs::BitBuff< bits >::operator= | ( | const InputBus< rbits > & | rhs | ) |
Assignment operator to facilitate assignment using a lcs::InputBus
object.
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.
BitBuff< bits > & lcs::BitBuff< bits >::operator= | ( | const BitBuff< rbits > & | rhs | ) |
Assignment operator.
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.
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.
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.
w | The width of the part-buffer. | |
s | The start bit from where the part-buffer should be accumulated. |
void lcs::BitBuff< bits >::stopNotification | ( | Module * | mod, | |
int | bit = -1 | |||
) |
De-registers a module from the list of modules which have to be notified of bit state changes.
mod | Pointer to the module object which seeks to de-register. | |
bit | The index of the bit whose state change was being notified to the module. |
int lcs::BitBuff< bits >::width | ( | void | ) | [inline] |
Returns the width of the buffer.