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

oagFpga::ModGraph Class Reference

Object for manipulating graphs in the module domain view. More...

#include <oagFpgaModGraph.h>

List of all members.

Static Public Member Functions

RtlGraphgetGraph (oa::oaDesign *design)
RtlGraphgetGraph (oa::oaModule *module)
 Returns the graph of a design.
RtlGraphgetGraph (const ModRef &x)
 Returns the graph of a module's design.
void failIfInDifferentModules (oa::oaModule *x, oa::oaModule *y)
 Generates an error if the two modules are not identical.
void failIfInDifferentModules (ModRef x, ModRef y)
oa::oaModule * convertModRefListToRefList (const list< ModRef > &source, list< BBRef > &result)
 Converts a list of ModRefs in a given module into a list of Refs.
void convertRefListToModRefList (const list< BBRef > &source, oa::oaModule *module, list< ModRef > &result)
 Converts a list of BBRefs in a given module into a list of ModRefs.
void convertRefVectorToModRefVector (const vector< BBRef > &source, oa::oaModule *module, vector< ModRef > &result)
 Converts a vector of Refs in a given module into a vector of ModRefs.
Functional operations
ModRef getNull (oa::oaModule *module)
bool isNull (ModRef x)
 Returns a null reference inside the given module.
ModRef constantOne (oa::oaModule *module)
 Tests a reference to see if it is null.
ModRef constantZero (oa::oaModule *module)
 Returns a reference in the given module to the function that is always true.
void setTerminalDriver (ModRef terminal, ModRef driver)
 Sets the driver of a given terminal.
Intra-module incremental graph traversal
RtlNode::FuncType getNodeType (ModRef x)
RtlNode::OptType getNodeOptType (ModRef x)
 Returns the type of the referenced graph node.
RtlNode::SeqType getNodeSeqType (ModRef x)
 Returns the operator type of the referenced graph node.
int getNumOutputBits (ModRef x)
 Returns the sequential type of the referenced graph node.
BBRef getPrimaryBBID (ModRef x)
 Returns the number of bits of the output bus, return one if it's a single bit output.
ModRef getTerminalDriver (ModRef terminal)
 Returns the primary ID (ie. the first position in bbNodes in a RTL of a RtlNode).
bool isTerminal (ModRef x)
 Returns the driver of a TERMINAL node.
bool isFunctional (ModRef x)
 Tests if a reference is to a TERMINAL node.
ModRef getNextState (ModRef sequential)
bool isSequential (ModRef x)
 Returns the next state input of a SEQUENTIAL node.
list< ModRefgetFanin (ModRef x)
 Returns the fan-ins of a node that lie within the same module.
list< ModRefgetFanout (ModRef x)
 Returns the fan-outs of a node that lie within the same module.
void getFanout (ModRef x, list< ModRef > &result)
 Returns the fan-outs of a node that lie within the same module.
bool hasFanout (ModRef x)
Explicitly managing graph-to-net connections
Returns the fanout of a node.

ModRef prepareNetToBBConnection (oa::oaModBitNet *net)
 Creates an terminal node to represent the function of a net.
oa::oaModBitNet * getNetToBBConnection (ModRef ref)
 Returns the OpenAccess net connected to a given graph TERMINAL.
ModRef getNetToBBConnection (oa::oaModBitNet *net)
 Returns the graph node connected to a given OpenAccess net.
void setNetToBBConnection (oa::oaModBitNet *net, ModRef ref)
 Creates a logical connection between an OpenAccess net and a graph TERMINAL node.
void removeNetToBBConnection (oa::oaModBitNet *net)
oa::oaModBitNet * findDriverOfEquivalentNets (oa::oaModBitNet *net)
 Returns the equivalent net that is driving a net.
void connectEquivalentNetsInGraph (oa::oaModule *module)
 Connects the TERMINAL nodes of equivalent nets.
Advanced graph traversal
bool hasCombinationalCycle (oa::oaModule *module)
 Tests if there are any combinational cycles in a module's design.
void getTransitiveFanin (ModRef x, list< ModRef > &transitiveFanin, bool includeRoots=true, bool crossSequential=false)
 Returns a list of all nodes in the transitive fan-in of one node.
void getTransitiveFanin (ModRef x, vector< ModRef > &transitiveFanin, bool includeRoots=true, bool crossSequential=false)
 Returns a vector of all nodes in the transitive fan-in of one node.
void getTransitiveFanin (list< ModRef > x, list< ModRef > &transitiveFanin, bool includeRoots=true, bool crossSequential=false)
 Returns a list of all nodes in the transitive fan-in of several nodes.
void getTransitiveFanin (list< ModRef > x, vector< ModRef > &transitiveFanin, bool includeRoots=true, bool crossSequential=false)
 Returns a vector of all nodes in the transitive fan-in of several nodes.
void getTransitiveFanout (ModRef x, list< ModRef > &transitiveFanout, bool includeRoots=true, bool crossSequential=false)
 Returns a list of all nodes in the transitive fan-out of one node.
void getTransitiveFanout (ModRef x, vector< ModRef > &transitiveFanout, bool includeRoots=true, bool crossSequential=false)
 Returns a vector of all nodes in the transitive fan-out of one node.
void getTransitiveFanout (list< ModRef > x, list< ModRef > &transitiveFanout, bool includeRoots=true, bool crossSequential=false)
 Returns a list of all nodes in the transitive fan-out of several nodes.
void getTransitiveFanout (list< ModRef > x, vector< ModRef > &transitiveFanout, bool includeRoots=true, bool crossSequential=false)
 Returns a vector of all nodes in the transitive fan-out of several nodes.
Global graph queries
void getOutputs (oa::oaModule *module, list< ModRef > &result)
 Gets all output terminals inside a module.


Detailed Description

Object for manipulating graphs in the module domain view.

The ModGraph class is not a data structure on its own, but instead provides an interface for manipulating functionality graphs in the folded module domain view. All methods in the ModGraph class are static. The ModRef structure provides the mechanism for referring to graph nodes within this view, and most ModGraph methods operate on ModRefs.

The module view is appropriate for making modifications to the local functional descriptions of design objects. The functional graphs describe the local behavior of each logical object (module), with every instantiation (occurrence) of a given object type (module) behaving identically. Every occurrence inherits its local functional behavior from the module type that it implements. This is analagous to the role that physical descriptions play in the block domain.

The module view is not appropriate for working with the global functionality of hierarchical designs. Two different instantiations (occurrences) may implement the same local behavior, but the global functions being implemented on each of their pins depends on their connectivity and context in the larger design. To manipulate global functionality, it does not suffice to traverse the folded (module) design view; the unfolded (occurrence) hierarchy is better suited. The OccGraph class provided the interface for manipulating graphs in this view.

Definition at line 48 of file oagFpgaModGraph.h.


Member Function Documentation

void oagFpga::ModGraph::connectEquivalentNetsInGraph oa::oaModule *  module  )  [static]
 

Connects the TERMINAL nodes of equivalent nets.

Functionally identical nets can also be marked equivalent in the OpenAccess database itself. The semantics of this are unfortunately very unclear as to whether this means either (1) the two nets already both implement the same functionality or (2) the nets don't already implement the same functionality but they should (for example by physical connection).

For example, the verilog2oa imports continuous assignments by marking the nets as equivalent. In Verilog, this construct implies (2). In such cases, it may be convenient and/or necessary to reflect this functional dependency in the graph, this routine provides the means to do so.

For a group of nets that are marked equivalent, the one that is being driven (as an input or in the graph) is first discovered. The TERMINAL node of this net is then set as the driver as the TERMINAL nodes of the other nets.

If no driver is found, the nets are left as is.

If there are multiple equivalent nets that are being driven, the existing drivers will not be modified. This should only be the case if the equivalent nets feature in the OpenAccess database is being used in the manner of (1). Because only the undriven nets are modified, this should be compatible with such as use case as well.

Parameters:
module 

Definition at line 1195 of file oagFpgaModGraph.cpp.

References findDriverOfEquivalentNets(), getNetToBBConnection(), getTerminalDriver(), isNull(), oagFpga::ModRef::printName(), setTerminalDriver(), and oagFpga::toBitNet().

ModRef oagFpga::ModGraph::constantOne oa::oaModule *  module  )  [inline, static]
 

Tests a reference to see if it is null.

Parameters:
module 
Returns:
a reference to a function that is always true

Definition at line 86 of file oagFpgaModGraph.h.

ModRef oagFpga::ModGraph::constantZero oa::oaModule *  module  )  [inline, static]
 

Returns a reference in the given module to the function that is always true.

Parameters:
module 
Returns:
a reference to a function that is always false

Definition at line 92 of file oagFpgaModGraph.h.

oa::oaModule * oagFpga::ModGraph::convertModRefListToRefList const list< ModRef > &  source,
list< BBRef > &  result
[static]
 

Converts a list of ModRefs in a given module into a list of Refs.

Parameters:
source the list of original Refs
result the list of resulting ModRefs

Definition at line 57 of file oagFpgaModGraph.cpp.

Referenced by getTransitiveFanin(), and getTransitiveFanout().

void oagFpga::ModGraph::convertRefListToModRefList const list< BBRef > &  source,
oa::oaModule *  module,
list< ModRef > &  result
[static]
 

Converts a list of BBRefs in a given module into a list of ModRefs.

Parameters:
source the list of original BBRefs
module the module
result the list of resulting ModRefs

Definition at line 39 of file oagFpgaModGraph.cpp.

Referenced by getFanin(), getFanout(), getTransitiveFanin(), and getTransitiveFanout().

void oagFpga::ModGraph::convertRefVectorToModRefVector const vector< BBRef > &  source,
oa::oaModule *  module,
vector< ModRef > &  result
[static]
 

Converts a vector of Refs in a given module into a vector of ModRefs.

Parameters:
source the vector of oagAI Refs
module the module
result the vector of resulting ModRefs

Definition at line 79 of file oagFpgaModGraph.cpp.

Referenced by getTransitiveFanin(), and getTransitiveFanout().

void oagFpga::ModGraph::failIfInDifferentModules ModRef  x,
ModRef  y
[inline, static]
 

Parameters:
x 
y 

Definition at line 486 of file oagFpgaModGraph.h.

References oagFpga::ModRef::module.

void oagFpga::ModGraph::failIfInDifferentModules oa::oaModule *  x,
oa::oaModule *  y
[inline, static]
 

Generates an error if the two modules are not identical.

Parameters:
x 
y 

Definition at line 20 of file oagFpgaModGraph.cpp.

Referenced by setNetToBBConnection(), and setTerminalDriver().

oa::oaModBitNet * oagFpga::ModGraph::findDriverOfEquivalentNets oa::oaModBitNet *  net  )  [static]
 

Returns the equivalent net that is driving a net.

The driving net is the first equivalent net that satisfies one of these conditions: 1. connected to an input Term 2. connected to a TERMINAL node that is not driven by NULL

In the case where the given net is itself the driver for the group, NULL be returned.

Parameters:
net 
Returns:
driver driving net

Definition at line 1089 of file oagFpgaModGraph.cpp.

References DEBUG_PRINT, DEBUG_PRINTMORE, getNetToBBConnection(), getTerminalDriver(), isNull(), and isTerminal().

Referenced by connectEquivalentNetsInGraph().

list< ModRef > oagFpga::ModGraph::getFanin ModRef  x  )  [static]
 

Returns the fan-ins of a node that lie within the same module.

Parameters:
x 
Returns:
the fanout list

Definition at line 360 of file oagFpgaModGraph.cpp.

References convertRefListToModRefList(), getGraph(), oagFpga::ModRef::module, and oagFpga::ModRef::ref.

void oagFpga::ModGraph::getFanout ModRef  x,
list< ModRef > &  result
[static]
 

Returns the fan-outs of a node that lie within the same module.

Parameters:
x 
result the resulting list of nodes in the fan-out

Definition at line 393 of file oagFpgaModGraph.cpp.

References convertRefListToModRefList(), getFanout(), getGraph(), oagFpga::ModRef::module, and oagFpga::ModRef::ref.

list< ModRef > oagFpga::ModGraph::getFanout ModRef  x  )  [static]
 

Returns the fan-outs of a node that lie within the same module.

Parameters:
x 
Returns:
the fanout list

Definition at line 376 of file oagFpgaModGraph.cpp.

References convertRefListToModRefList(), getGraph(), oagFpga::ModRef::module, and oagFpga::ModRef::ref.

Referenced by getFanout().

RtlGraph* oagFpga::ModGraph::getGraph const ModRef x  )  [inline, static]
 

Returns the graph of a module's design.

Parameters:
x 

Definition at line 479 of file oagFpgaModGraph.h.

References oagFpga::ModRef::module.

RtlGraph* oagFpga::ModGraph::getGraph oa::oaModule *  module  )  [inline, static]
 

Returns the graph of a design.

This module's functional description will be contained within this graph, along with the functional descriptions of other modules in the same design.

Parameters:
module 
Returns:
the graph of a module's design

Definition at line 469 of file oagFpgaModGraph.h.

RtlGraph* oagFpga::ModGraph::getGraph oa::oaDesign *  design  )  [inline, static]
 

All design modules' functional descriptions will be contained within this graph.

Parameters:
design 
Returns:
the graph of a design

Definition at line 460 of file oagFpgaModGraph.h.

Referenced by getFanin(), getFanout(), getTransitiveFanin(), getTransitiveFanout(), hasCombinationalCycle(), and setTerminalDriver().

ModRef oagFpga::ModGraph::getNetToBBConnection oa::oaModBitNet *  net  )  [static]
 

Returns the graph node connected to a given OpenAccess net.

Parameters:
net 
Returns:
a reference to the connected graph TERMINAL node, or a null ModRef if none exists

Definition at line 781 of file oagFpgaModGraph.cpp.

References oagFpga::Manager::getNetToBBConnection().

oa::oaModBitNet * oagFpga::ModGraph::getNetToBBConnection ModRef  x  )  [static]
 

Returns the OpenAccess net connected to a given graph TERMINAL.

Parameters:
x 
Returns:
the module net, or NULL if there is none

Definition at line 765 of file oagFpgaModGraph.cpp.

References oagFpga::Manager::getNetToBBConnection(), oagFpga::ModRef::module, and oagFpga::ModRef::ref.

Referenced by connectEquivalentNetsInGraph(), and findDriverOfEquivalentNets().

ModRef oagFpga::ModGraph::getNextState ModRef  sequential  )  [inline, static]
 

If the reference is not to a SEQUENTIAL node, an error will be generated.

Parameters:
sequential 
Returns:
the reference to the next state, or null if none exists

Definition at line 243 of file oagFpgaModGraph.h.

References oagFpga::ModRef::module, and oagFpga::ModRef::ref.

RtlNode::OptType oagFpga::ModGraph::getNodeOptType ModRef  x  )  [inline, static]
 

Returns the type of the referenced graph node.

Parameters:
x 
Returns:
the type of the referenced node

Definition at line 189 of file oagFpgaModGraph.h.

References oagFpga::ModRef::ref.

RtlNode::SeqType oagFpga::ModGraph::getNodeSeqType ModRef  x  )  [inline, static]
 

Returns the operator type of the referenced graph node.

Parameters:
x 
Returns:
the type of the referenced node

Definition at line 196 of file oagFpgaModGraph.h.

References oagFpga::ModRef::ref.

RtlNode::FuncType oagFpga::ModGraph::getNodeType ModRef  x  )  [inline, static]
 

Parameters:
x 
Returns:
the type of the referenced node

Definition at line 182 of file oagFpgaModGraph.h.

References oagFpga::ModRef::ref.

ModRef oagFpga::ModGraph::getNull oa::oaModule *  module  )  [inline, static]
 

There is a no global ModGraph null reference; one unique null reference exists for each module. This function returns the unique null reference for the given module. Some ModGraph operations are dependent on the module context of their parameters, even if they are null.

Parameters:
module 
Returns:
a null reference inside the given module

Definition at line 66 of file oagFpgaModGraph.h.

int oagFpga::ModGraph::getNumOutputBits ModRef  x  )  [inline, static]
 

Returns the sequential type of the referenced graph node.

Definition at line 202 of file oagFpgaModGraph.h.

References oagFpga::ModRef::ref.

void oagFpga::ModGraph::getOutputs oa::oaModule *  module,
list< ModRef > &  result
[static]
 

Gets all output terminals inside a module.

An output terminal is a TERMINAL node that is connected to an output oaModTerm.

If the bit net attached to the oaModTerm does not have a connection to the graph, one is created.

Parameters:
module 
result the list of all output terminals inside the module

Definition at line 838 of file oagFpgaModGraph.cpp.

References prepareNetToBBConnection(), and oagFpga::toBitNet().

BBRef oagFpga::ModGraph::getPrimaryBBID ModRef  x  )  [inline, static]
 

Returns the number of bits of the output bus, return one if it's a single bit output.

Definition at line 207 of file oagFpgaModGraph.h.

References oagFpga::BBRef, and oagFpga::ModRef::ref.

ModRef oagFpga::ModGraph::getTerminalDriver ModRef  terminal  )  [inline, static]
 

Returns the primary ID (ie. the first position in bbNodes in a RTL of a RtlNode).

This function only returns the graph reference that is driving this terminal. If the node is driven by a connected OpenAccess net, a null reference is returned.

If the reference is not to a TERMINAL node, an error will be generated.

Parameters:
terminal 
Returns:
the reference to the driver, or null if none exists

Definition at line 215 of file oagFpgaModGraph.h.

References oagFpga::ModRef::module, and oagFpga::ModRef::ref.

Referenced by connectEquivalentNetsInGraph(), and findDriverOfEquivalentNets().

void oagFpga::ModGraph::getTransitiveFanin list< ModRef x,
vector< ModRef > &  transitiveFanin,
bool  includeRoots = true,
bool  crossSequential = false
[static]
 

Returns a vector of all nodes in the transitive fan-in of several nodes.

The nodes in the transitive fan-in are appended to the provided vector in forward topological order. The initial node is not included. All references will be non-inverted.

See RtlGraph::getTransitiveFanin() for more details.

Parameters:
x 
transitiveFanin the resulting vector of nodes in the transitive fan-in
includeRoots true if root nodes should be included
crossSequential true if the traversal should cross sequential nodes

Definition at line 581 of file oagFpgaModGraph.cpp.

References convertModRefListToRefList(), convertRefVectorToModRefVector(), getGraph(), and oagFpga::RtlGraph::getTransitiveFanin().

void oagFpga::ModGraph::getTransitiveFanin list< ModRef x,
list< ModRef > &  transitiveFanin,
bool  includeRoots = true,
bool  crossSequential = false
[static]
 

Returns a list of all nodes in the transitive fan-in of several nodes.

The nodes in the transitive fan-in are appended to the provided list in forward topological order. The initial node is not included. All references will be non-inverted.

See RtlGraph::getTransitiveFanin() for more details.

Parameters:
x 
transitiveFanin the resulting list of nodes in the transitive fan-in
includeRoots true if root nodes should be included
crossSequential true if the traversal should cross sequential nodes

Definition at line 521 of file oagFpgaModGraph.cpp.

References convertModRefListToRefList(), convertRefListToModRefList(), getGraph(), and oagFpga::RtlGraph::getTransitiveFanin().

void oagFpga::ModGraph::getTransitiveFanin ModRef  x,
vector< ModRef > &  transitiveFanin,
bool  includeRoots = true,
bool  crossSequential = false
[static]
 

Returns a vector of all nodes in the transitive fan-in of one node.

The nodes in the transitive fan-in are appended to the provided vector in forward topological order. The initial node is not included. All references will be non-inverted.

See RtlGraph::getTransitiveFanin() for more details.

Parameters:
x 
transitiveFanin the resulting vector of nodes in the transitive fan-in
includeRoots true if root nodes should be included
crossSequential true if the traversal should cross sequential nodes

Definition at line 467 of file oagFpgaModGraph.cpp.

References convertRefVectorToModRefVector(), getGraph(), oagFpga::RtlGraph::getTransitiveFanin(), oagFpga::ModRef::module, and oagFpga::ModRef::ref.

void oagFpga::ModGraph::getTransitiveFanin ModRef  x,
list< ModRef > &  transitiveFanin,
bool  includeRoots = true,
bool  crossSequential = false
[static]
 

Returns a list of all nodes in the transitive fan-in of one node.

The nodes in the transitive fan-in are appended to the provided list in forward topological order. The initial node is not included.

See RtlGraph::getTransitiveFanin() for more details.

Parameters:
x 
transitiveFanin the resulting list of nodes in the transitive fan-in
includeRoots true if root nodes should be included
crossSequential true if the traversal should cross sequential nodes

Definition at line 414 of file oagFpgaModGraph.cpp.

References convertRefListToModRefList(), getGraph(), oagFpga::RtlGraph::getTransitiveFanin(), oagFpga::ModRef::module, and oagFpga::ModRef::ref.

void oagFpga::ModGraph::getTransitiveFanout list< ModRef x,
vector< ModRef > &  transitiveFanout,
bool  includeRoots = true,
bool  crossSequential = false
[static]
 

Returns a vector of all nodes in the transitive fan-out of several nodes.

The nodes in the transitive fan-out are appended to the provided vector in forward topological order. The initial node is not included. All references will be non-inverted.

See RtlGraph::getTransitiveFanout() for more details.

Parameters:
x 
transitiveFanout the resulting vector of nodes in the transitive fan-out
includeRoots true if root nodes should be included
crossSequential true if the traversal should cross sequential nodes

Definition at line 611 of file oagFpgaModGraph.cpp.

References convertModRefListToRefList(), convertRefVectorToModRefVector(), getGraph(), and oagFpga::RtlGraph::getTransitiveFanout().

void oagFpga::ModGraph::getTransitiveFanout list< ModRef x,
list< ModRef > &  transitiveFanout,
bool  includeRoots = true,
bool  crossSequential = false
[static]
 

Returns a list of all nodes in the transitive fan-out of several nodes.

The nodes in the transitive fan-out are appended to the provided list in forward topological order. The initial node is not included. All references will be non-inverted.

See RtlGraph::getTransitiveFanout() for more details.

Parameters:
x 
transitiveFanout the resulting list of nodes in the transitive fan-out
includeRoots true if root nodes should be included
crossSequential true if the traversal should cross sequential nodes

Definition at line 551 of file oagFpgaModGraph.cpp.

References convertModRefListToRefList(), convertRefListToModRefList(), getGraph(), and oagFpga::RtlGraph::getTransitiveFanout().

void oagFpga::ModGraph::getTransitiveFanout ModRef  x,
vector< ModRef > &  transitiveFanout,
bool  includeRoots = true,
bool  crossSequential = false
[static]
 

Returns a vector of all nodes in the transitive fan-out of one node.

The nodes in the transitive fan-out are appended to the provided vector in forward topological order. The initial node is not included. All references will be non-inverted.

See RtlGraph::getTransitiveFanout() for more details.

Parameters:
x 
transitiveFanout the resulting vector of nodes in the transitive fan-out
includeRoots true if root nodes should be included
crossSequential true if the traversal should cross sequential nodes

Definition at line 494 of file oagFpgaModGraph.cpp.

References convertRefVectorToModRefVector(), getGraph(), oagFpga::RtlGraph::getTransitiveFanout(), oagFpga::ModRef::module, and oagFpga::ModRef::ref.

void oagFpga::ModGraph::getTransitiveFanout ModRef  x,
list< ModRef > &  transitiveFanout,
bool  includeRoots = true,
bool  crossSequential = false
[static]
 

Returns a list of all nodes in the transitive fan-out of one node.

The nodes in the transitive fan-out are appended to the provided list in forward topological order. The initial node is not included. All references will be non-inverted.

See RtlGraph::getTransitiveFanout() for more details.

Parameters:
x 
transitiveFanout the resulting list of nodes in the transitive fan-out
includeRoots true if root nodes should be included
crossSequential true if the traversal should cross sequential nodes

Definition at line 440 of file oagFpgaModGraph.cpp.

References convertRefListToModRefList(), getGraph(), oagFpga::RtlGraph::getTransitiveFanout(), oagFpga::ModRef::module, and oagFpga::ModRef::ref.

bool oagFpga::ModGraph::hasCombinationalCycle oa::oaModule *  module  )  [static]
 

Tests if there are any combinational cycles in a module's design.

All modules in the same design will be checked.

Parameters:
module 
Returns:
true, if one or more combinational cycles exist

Definition at line 291 of file oagFpgaModGraph.cpp.

References getGraph(), and oagFpga::RtlGraph::hasCombinationalCycle().

bool oagFpga::ModGraph::hasFanout ModRef  x  )  [inline, static]
 

Parameters:
x 
Returns:
true, if the node has any fanout

Definition at line 298 of file oagFpgaModGraph.h.

References oagFpga::ModRef::ref.

bool oagFpga::ModGraph::isFunctional ModRef  x  )  [inline, static]
 

Tests if a reference is to a TERMINAL node.

Tests if a reference is to a functional node (CONTROL,

Parameters:
x 
Returns:
true, if the reference is to a functional node

Definition at line 235 of file oagFpgaModGraph.h.

References oagFpga::ModRef::ref.

bool oagFpga::ModGraph::isNull ModRef  x  )  [inline, static]
 

Returns a null reference inside the given module.

The module that the reference is in is irrelevant.

Parameters:
x 
Returns:
true, if the reference is null

Definition at line 78 of file oagFpgaModGraph.h.

References oagFpga::ModRef::ref.

Referenced by connectEquivalentNetsInGraph(), and findDriverOfEquivalentNets().

bool oagFpga::ModGraph::isSequential ModRef  x  )  [inline, static]
 

Returns the next state input of a SEQUENTIAL node.

Parameters:
x 
Returns:
true, if the reference is to a SEQUENTIAL node

Definition at line 252 of file oagFpgaModGraph.h.

References oagFpga::ModRef::ref.

bool oagFpga::ModGraph::isTerminal ModRef  x  )  [inline, static]
 

Returns the driver of a TERMINAL node.

Parameters:
x 
Returns:
true, if the reference is to a TERMINAL node

Definition at line 229 of file oagFpgaModGraph.h.

References oagFpga::ModRef::ref.

Referenced by findDriverOfEquivalentNets().

ModRef oagFpga::ModGraph::prepareNetToBBConnection oa::oaModBitNet *  net  )  [static]
 

Creates an terminal node to represent the function of a net.

If an terminal node is already associated with the net, then the existing one is returned.

If a new terminal node is created, it will implement a null function.

Parameters:
net 
Returns:
the terminal node attached to this net

Definition at line 749 of file oagFpgaModGraph.cpp.

References oagFpga::Manager::prepareNetToBBConnection().

Referenced by getOutputs().

void oagFpga::ModGraph::removeNetToBBConnection oa::oaModBitNet *  net  )  [static]
 

void oagFpga::ModGraph::setNetToBBConnection oa::oaModBitNet *  net,
ModRef  x
[static]
 

Creates a logical connection between an OpenAccess net and a graph TERMINAL node.

Parameters:
net 
x 

Definition at line 797 of file oagFpgaModGraph.cpp.

References failIfInDifferentModules(), oagFpga::ModRef::module, oagFpga::ModRef::ref, and oagFpga::Manager::setNetToBBConnection().

void oagFpga::ModGraph::setTerminalDriver ModRef  terminal,
ModRef  driver
[static]
 

Sets the driver of a given terminal.

The reference must be to a TERMINAL node. The terminal and driver must be in the same module.

Parameters:
terminal 
driver 

Definition at line 147 of file oagFpgaModGraph.cpp.

References failIfInDifferentModules(), getGraph(), oagFpga::ModRef::ref, and oagFpga::RtlGraph::setTerminalDriver().

Referenced by connectEquivalentNetsInGraph().


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