- A Logic Circuit Simulation Library in C++





lcs::Xor< width, delay > Class Template Reference

#include <xor.h>

Inheritance diagram for lcs::Xor< width, delay >:

lcs::Module List of all members.

Detailed Description

template<unsigned int width = 1, unsigned int delay = 0>
class lcs::Xor< width, delay >

A template class which encapsulates a logical XOR gate. The template parameter width denotes the number of lines in the input data bus. In other words, the template parameter width denotes the number of inputs to the XOR gate. Hence, one can instantiate an N-input XOR gate by setting the template parameter value to N. The second template parameter indicates the propogation delay from the input to the output of the XOR gate.


Public Member Functions

 Xor (const Bus< 1 > &output, const InputBus< width > &input)
virtual ~Xor ()
virtual void onStateChange (int portId)

Static Public Attributes

static const int INPUT = 0
static const int OUTPUT = 1


Constructor & Destructor Documentation

template<unsigned int width, unsigned int delay>
lcs::Xor< width, delay >::Xor ( const Bus< 1 > &  output,
const InputBus< width > &  input 
)

The only meaningfull constructor for the class. A default constructor is not explicitly provided. Moreover, the one synthesized by the compiler is practically useless.

Parameters:
output The single line output bus of the gate.
input The multiline input bus to the gate.
width The number of lines in the input bus.

template<unsigned int width, unsigned int delay>
lcs::Xor< width, delay >::~Xor (  )  [virtual]

Destructor.


Member Function Documentation

template<unsigned int width, unsigned int delay>
void lcs::Xor< width, delay >::onStateChange ( int  portId  )  [virtual]

Propogates the input data line states to the output. This function is called by the input bus lines to notify the gate of a lcs::LINE_STATE_CHANGE event. When notified, an XOR operation is performed on the line states of the data lines of the input bus and the result is propogated to the single line output bus.

Reimplemented from lcs::Module.


Member Data Documentation

template<unsigned int width = 1, unsigned int delay = 0>
const int lcs::Xor< width, delay >::INPUT = 0 [static]

A constant integer which denotes the port id for the input port/bus.

template<unsigned int width = 1, unsigned int delay = 0>
const int lcs::Xor< width, delay >::OUTPUT = 1 [static]

A constant integer which denotes the port id for the output bus/port.


Copyright © 2006, 2007 Siva Chandra