Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

oagFpga::RtlNode Class Reference

The intermediate data structure for storing the structural netlist with black boxes. More...

#include <oagFpgaRtlGraph.h>

Collaboration diagram for oagFpga::RtlNode:

Collaboration graph
[legend]
List of all members.

Public Types

enum  FuncType {
  NULL_FUNC, TERMINAL, CONTROL, OPERATOR,
  SEQ, CONSTANT0, CONSTANT1
}
 The functional type of a RtlNode. More...
enum  OptType {
  UNKNOWN, PRIMARY, BUNDLE, BITWISE_AND,
  BITWISE_NAND, BITWISE_OR, BITWISE_NOR, BITWISE_XOR,
  BITWISE_XNOR, BITWISE_NOT, LOGICAL_AND, LOGICAL_NOT,
  LOGICAL_OR, REDUCTION_AND, REDUCTION_OR, REDUCTION_XOR,
  REDUCTION_NAND, REDUCTION_NOR, REDUCTION_XNOR, LESS_THAN,
  LESS_THAN_EQUAL, GREATER_THAN, GREATER_THAN_EQUAL, EQUAL,
  NOTEQUAL, IF_ELSE, LEFT_SHIFT, RIGHT_SHIFT,
  ADD, SUBTRACT, MULTIPLY, DIVIDE,
  MODULO, NEGATE
}
 The OptType is the type of operator represented by a RtlNode. More...
enum  SeqType { DFF, LATCH }

Public Member Functions

 RtlNode ()
 RtlNode (FuncType ft)
 RtlNode (FuncType ft, OptType ot)
 RtlNode (FuncType ft, SeqType st)
 ~RtlNode ()

Public Attributes

FuncType funcType
BBRef self
unsigned int traversalID
list< BBReffanin
list< BBReffanout
vector< oagAi::Ref > aiRef
void * externalTerminalConnection
int numOutputBits
OptType optType
SeqType seqType
RtlOptNodeInfooptInfo
RtlMuxNodeInfomuxInfo
RtlSeqNodeInfoseqInfo

Static Public Attributes

const char * funcTypeName []
const char * optTypeName []
const char * seqTypeName []

Friends

class RtlGraph

Detailed Description

The intermediate data structure for storing the structural netlist with black boxes.

Definition at line 29 of file oagFpgaRtlGraph.h.


Member Enumeration Documentation

enum oagFpga::RtlNode::FuncType
 

The functional type of a RtlNode.

Each RtlNode may be either *control* node, *operator* node or "seq" node,

  • *terminal* node is a node without any associated functionality, it is used to build a link between RtlNode and oa::ModBitNet
  • *control* node is a mux (with various inputs and selects)
  • *operator* node is an operator which is defined as following (see OptType)
  • *seq" node is a sequential element, which can be FF or latch
Enumeration values:
NULL_FUNC 
TERMINAL 
CONTROL 
OPERATOR 
SEQ 
CONSTANT0 
CONSTANT1 

Definition at line 92 of file oagFpgaRtlGraph.h.

enum oagFpga::RtlNode::OptType
 

The OptType is the type of operator represented by a RtlNode.

Each RtlNode may be involve one operator from the following classes:

  • arithmetic: +, -, *, /,
  • bit-wise: ~, &, |, ^, ~&, ~|, ~^, ^~
  • logical: !, &&, ||
  • shift: <<, >>
  • conditional: ?/:
  • reduction: &, |, ^, ~&, ~|, ~^, ^~
  • equality: ==, !=, ===, !==
  • comparison: <, >, <=, >=
  • bundle
  • primary
Enumeration values:
UNKNOWN 
PRIMARY 
BUNDLE 
BITWISE_AND 
BITWISE_NAND 
BITWISE_OR 
BITWISE_NOR 
BITWISE_XOR 
BITWISE_XNOR 
BITWISE_NOT 
LOGICAL_AND 
LOGICAL_NOT 
LOGICAL_OR 
REDUCTION_AND 
REDUCTION_OR 
REDUCTION_XOR 
REDUCTION_NAND 
REDUCTION_NOR 
REDUCTION_XNOR 
LESS_THAN 
LESS_THAN_EQUAL 
GREATER_THAN 
GREATER_THAN_EQUAL 
EQUAL 
NOTEQUAL 
IF_ELSE 
LEFT_SHIFT 
RIGHT_SHIFT 
ADD 
SUBTRACT 
MULTIPLY 
DIVIDE 
MODULO 
NEGATE 

Definition at line 115 of file oagFpgaRtlGraph.h.

enum oagFpga::RtlNode::SeqType
 

Enumeration values:
DFF 
LATCH 

Definition at line 125 of file oagFpgaRtlGraph.h.


Constructor & Destructor Documentation

oagFpga::RtlNode::RtlNode  )  [inline]
 

Definition at line 167 of file oagFpgaRtlGraph.h.

oagFpga::RtlNode::RtlNode FuncType  ft  )  [inline]
 

Definition at line 176 of file oagFpgaRtlGraph.h.

oagFpga::RtlNode::RtlNode FuncType  ft,
OptType  ot
[inline]
 

Definition at line 179 of file oagFpgaRtlGraph.h.

oagFpga::RtlNode::RtlNode FuncType  ft,
SeqType  st
[inline]
 

Definition at line 183 of file oagFpgaRtlGraph.h.

oagFpga::RtlNode::~RtlNode  )  [inline]
 

Definition at line 188 of file oagFpgaRtlGraph.h.


Friends And Related Function Documentation

friend class RtlGraph [friend]
 

Definition at line 31 of file oagFpgaRtlGraph.h.


Member Data Documentation

vector<oagAi::Ref> oagFpga::RtlNode::aiRef
 

Definition at line 158 of file oagFpgaRtlGraph.h.

Referenced by oagFpga::ModuleCompiler::BBRef2AiRef(), oagFpga::ModuleCompiler::compileBBNode(), oagFpga::ModuleCompiler::compileFunctionalBBNode(), oagFpga::ModuleCompiler::compileFunctionalMuxBBNode(), oagFpga::ModuleCompiler::compileFunctionalOptBBNode(), oagFpga::ModuleCompiler::compileFunctionalSeqBBNode(), and oagFpga::RtlGraph::RtlGraph().

void* oagFpga::RtlNode::externalTerminalConnection
 

Definition at line 161 of file oagFpgaRtlGraph.h.

Referenced by oagFpga::RtlGraph::getExternalTerminalConnection(), and oagFpga::RtlGraph::setExternalTerminalConnection().

list<BBRef> oagFpga::RtlNode::fanin
 

Definition at line 153 of file oagFpgaRtlGraph.h.

Referenced by oagFpga::RtlGraph::binaryBusInputOutputOpt(), oagFpga::RtlGraph::binaryBusOpt(), oagFpga::RtlGraph::binaryOpt(), oagFpga::RtlGraph::bitMux(), oagFpga::RtlGraph::bitSeq(), oagFpga::RtlGraph::busMux(), oagFpga::RtlGraph::getFanin(), oagFpga::RtlGraph::getTerminalDriver(), oagFpga::RtlGraph::getTransitiveFanin_recursive(), oagFpga::RtlGraph::hasCombinationalCycle_recursive(), oagFpga::RtlGraph::newTerminal(), oagFpga::RtlGraph::print(), oagFpga::RtlGraph::setTerminalDriver(), oagFpga::RtlGraph::unaryBusInputOutputOpt(), oagFpga::RtlGraph::unaryBusOpt(), and oagFpga::RtlGraph::unaryOpt().

list<BBRef> oagFpga::RtlNode::fanout
 

Definition at line 154 of file oagFpgaRtlGraph.h.

Referenced by oagFpga::RtlGraph::binaryBusInputOutputOpt(), oagFpga::RtlGraph::binaryBusOpt(), oagFpga::RtlGraph::binaryOpt(), oagFpga::RtlGraph::bitMux(), oagFpga::RtlGraph::bitSeq(), oagFpga::RtlGraph::busMux(), oagFpga::RtlGraph::getFanout(), oagFpga::RtlGraph::newTerminal(), oagFpga::RtlGraph::print(), oagFpga::RtlGraph::removeFromFanout(), oagFpga::RtlGraph::setTerminalDriver(), oagFpga::RtlGraph::unaryBusInputOutputOpt(), oagFpga::RtlGraph::unaryBusOpt(), and oagFpga::RtlGraph::unaryOpt().

FuncType oagFpga::RtlNode::funcType
 

Definition at line 131 of file oagFpgaRtlGraph.h.

Referenced by oagFpga::RtlGraph::binaryBusInputOutputOpt(), oagFpga::RtlGraph::binaryBusOpt(), oagFpga::RtlGraph::binaryOpt(), oagFpga::RtlGraph::bitMux(), oagFpga::RtlGraph::bitSeq(), oagFpga::RtlGraph::busMux(), oagFpga::ModuleCompiler::compileFunctionalBBNode(), oagFpga::ModuleCompiler::compileFunctionalMuxBBNode(), oagFpga::ModuleCompiler::compileFunctionalOptBBNode(), oagFpga::ModuleCompiler::compileFunctionalSeqBBNode(), oagFpga::RtlGraph::getExternalTerminalConnection(), oagFpga::RtlGraph::getNextState(), oagFpga::RtlGraph::getNodeType(), oagFpga::RtlGraph::getTerminalDriver(), oagFpga::RtlGraph::getTransitiveFanin_recursive(), oagFpga::RtlGraph::hasCombinationalCycle_recursive(), oagFpga::RtlGraph::isFunctional(), oagFpga::RtlGraph::isSequential(), oagFpga::RtlGraph::isTerminal(), oagFpga::RtlGraph::newNode(), oagFpga::RtlGraph::newTerminal(), oagFpga::RtlGraph::print(), oagFpga::RtlGraph::RtlGraph(), oagFpga::RtlGraph::setExternalTerminalConnection(), oagFpga::RtlGraph::setTerminalDriver(), oagFpga::RtlGraph::unaryBusInputOutputOpt(), oagFpga::RtlGraph::unaryBusOpt(), and oagFpga::RtlGraph::unaryOpt().

const char * oagFpga::RtlNode::funcTypeName [static]
 

Initial value:

 {"NULL_FUNC", "TERMINAL", "CONTROL",
    "OPERATOR", "SEQ", "CONSTANT0", "CONSTANT1"}

Definition at line 10 of file oagFpgaRtlGraph.cpp.

RtlMuxNodeInfo* oagFpga::RtlNode::muxInfo
 

Definition at line 141 of file oagFpgaRtlGraph.h.

Referenced by oagFpga::RtlGraph::bitMux(), oagFpga::RtlGraph::busMux(), and oagFpga::ModuleCompiler::compileFunctionalMuxBBNode().

int oagFpga::RtlNode::numOutputBits
 

Definition at line 163 of file oagFpgaRtlGraph.h.

Referenced by oagFpga::RtlGraph::binaryBusInputOutputOpt(), oagFpga::RtlGraph::busMux(), oagFpga::RtlGraph::getNumOutputBits(), and oagFpga::RtlGraph::unaryBusInputOutputOpt().

RtlOptNodeInfo* oagFpga::RtlNode::optInfo
 

Definition at line 140 of file oagFpgaRtlGraph.h.

Referenced by oagFpga::RtlGraph::binaryBusInputOutputOpt(), oagFpga::RtlGraph::binaryBusOpt(), oagFpga::RtlGraph::binaryOpt(), oagFpga::ModuleCompiler::compileFunctionalOptBBNode(), oagFpga::RtlGraph::unaryBusInputOutputOpt(), oagFpga::RtlGraph::unaryBusOpt(), and oagFpga::RtlGraph::unaryOpt().

OptType oagFpga::RtlNode::optType
 

Definition at line 133 of file oagFpgaRtlGraph.h.

Referenced by oagFpga::RtlGraph::binaryBusInputOutputOpt(), oagFpga::RtlGraph::binaryBusOpt(), oagFpga::RtlGraph::binaryOpt(), oagFpga::ModuleCompiler::compileFunctionalOptBBNode(), oagFpga::RtlGraph::getNodeOptType(), oagFpga::RtlGraph::print(), oagFpga::RtlGraph::unaryBusInputOutputOpt(), oagFpga::RtlGraph::unaryBusOpt(), and oagFpga::RtlGraph::unaryOpt().

const char * oagFpga::RtlNode::optTypeName [static]
 

Initial value:

 {
    "UNKNOWN", "PRIMARY", "BUNDLE", "BITWISE_AND", "BITWISE_NAND", "BITWISE_OR", "BITWISE_NOR",
    "BITWISE_XOR", "BITWISE_XNOR", "BITWISE_NOT", "LOGICAL_AND", "LOGICAL_NOT", "LOGICAL_OR",
    "REDUCTION_AND", "REDUCTION_OR", "REDUCTION_XOR", "REDUCTION_NAND", "REDUCTION_NOR",
    "REDUCTION_XNOR", "LESS_THAN", "LESS_THAN_EQUAL", "GREATER_THAN", "GREATER_THAN_EQUAL",
    "EQUAL", "NOTEQUAL", "IF_ELSE", "LEFT_SHIFT", "RIGHT_SHIFT", "ADD", "SUBTRACT", "MULTIPLY",
    "DIVIDE", "MODULO", "NEGATE"
}

Definition at line 12 of file oagFpgaRtlGraph.cpp.

BBRef oagFpga::RtlNode::self
 

Definition at line 147 of file oagFpgaRtlGraph.h.

Referenced by oagFpga::RtlGraph::addNode(), oagFpga::RtlGraph::binaryBusInputOutputOpt(), oagFpga::RtlGraph::binaryBusOpt(), oagFpga::RtlGraph::binaryOpt(), oagFpga::RtlGraph::bitMux(), oagFpga::RtlGraph::bitSeq(), oagFpga::RtlGraph::busMux(), oagFpga::RtlGraph::getOutputBit(), oagFpga::RtlGraph::getPrimaryBBID(), oagFpga::RtlGraph::hasCombinationalCycle(), oagFpga::RtlGraph::newNode(), oagFpga::RtlGraph::newTerminal(), oagFpga::RtlGraph::print(), oagFpga::RtlGraph::RtlGraph(), oagFpga::RtlGraph::unaryBusInputOutputOpt(), oagFpga::RtlGraph::unaryBusOpt(), and oagFpga::RtlGraph::unaryOpt().

RtlSeqNodeInfo* oagFpga::RtlNode::seqInfo
 

Definition at line 142 of file oagFpgaRtlGraph.h.

Referenced by oagFpga::RtlGraph::bitSeq(), oagFpga::ModuleCompiler::compileFunctionalSeqBBNode(), and oagFpga::RtlGraph::getNextState().

SeqType oagFpga::RtlNode::seqType
 

Definition at line 134 of file oagFpgaRtlGraph.h.

Referenced by oagFpga::RtlGraph::bitSeq(), oagFpga::ModuleCompiler::compileFunctionalSeqBBNode(), oagFpga::RtlGraph::getNodeSeqType(), and oagFpga::RtlGraph::print().

const char * oagFpga::RtlNode::seqTypeName [static]
 

Initial value:

 {
    "DFF", "LATCH"
}

Definition at line 20 of file oagFpgaRtlGraph.cpp.

unsigned int oagFpga::RtlNode::traversalID
 

Definition at line 150 of file oagFpgaRtlGraph.h.

Referenced by oagFpga::RtlGraph::hasCombinationalCycle_recursive(), oagFpga::RtlGraph::isVisited(), oagFpga::RtlGraph::markVisited(), oagFpga::RtlGraph::newTraversalID(), and oagFpga::RtlGraph::unmarkVisited().


The documentation for this class was generated from the following files:
Generated on Mon Jul 9 14:17:22 2007 for OA Gear Fpga by  doxygen 1.3.9.1