|
- 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) |
| unsigned long | toInt (void) const |
| std::string | toStr (void) const |
| 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. |
| unsigned long lcs::BitBuff< bits >::toInt | ( | void | ) | const |
Converts the binary bit value in the buffer to a decimal integer.
| std::string lcs::BitBuff< bits >::toStr | ( | void | ) | const |
Converts the binary bit value in the buffer to a string representation.
| int lcs::BitBuff< bits >::width | ( | void | ) | [inline] |
Returns the width of the buffer.