#include <oagFpgaManager.h>
Collaboration diagram for oagFpga::Manager:
Public Member Functions | |
Informational queries | |
bool | isStructural () |
Returns true if a design is entirely structural. | |
void | print (ostream &os) |
Dumps information about the managed graph. | |
Maintaining links between OA objects and the AI graph | |
oa::oaModBitNet * | getNetToBBConnection (BBRef ref) |
Returns the net connected to a graph reference. | |
BBRef | getNetToBBConnection (oa::oaModBitNet *net) |
Returns the BB graph reference connected to this net. | |
void | setNetToBBConnection (oa::oaModBitNet *net, BBRef bbRef) |
Connects a net to an Black Box graph reference. | |
void | setNetToAiConnection (oa::oaModBitNet *net, oagAi::Ref aiRef) |
Connects a net to an Ai graph reference. | |
oa::oaModBitNet * | getNetToAiConnection (oagAi::Ref ref) |
Returns the net connected to a graph reference. | |
oagAi::Ref | getNetToAiConnection (oa::oaModBitNet *net) |
Returns the BB graph reference connected to this net. | |
void | removeNetToAiConnection (oa::oaModBitNet *net) |
Disconnections a net from the Ai graph. | |
const oagAi::Graph * | getAiGraph () const |
oagAi::Graph * | getAiGraph () |
Static Public Member Functions | |
bool | hasManager (oa::oaDesign *design) |
Manager * | get (oa::oaModule *module) |
Manager * | get (oa::oaDesign *design) |
Manager * | create (oa::oaDesign *design) |
Returns the preexisting Manager for the given design or creates a new one. | |
void | destroy (oa::oaDesign *design) |
Destroys a manager object and the functional description of a design. | |
Database operations | |
int | getSerializedSize (oa::oaDesign *design) |
Computes the number of bytes necessary for the serialized representation. | |
void | serialize (void *buf, oa::oaDesign *design) |
Serializes the functional description of a design. | |
int | unserialize (void *buf, oa::oaDesign *design) |
Unserializes the functional description of a design. | |
Protected Member Functions | |
Manager (oa::oaDesign *design) | |
~Manager () | |
Destructor for Manager object. | |
BBRef | prepareNetToBBConnection (oa::oaModBitNet *net) |
Creates an terminal node to represent the function of a net. | |
BBRef | prepareNetToAiConnection (oa::oaModBitNet *net) |
Creates an terminal node to represent the function of a net. | |
Protected Attributes | |
oagAi::Graph | ai |
USE WITH CAUTION. Returns the oagAi::Graph associated with the design that this Manager controls. Modifying the structure of this graph (and in particular the TERMINAL nodes) could invalid the links to OpenAccess design objects and result in errors or incorrect behavior. The const version of getGraph() is safer. Use with extreme caution. | |
RtlGraph | bbg |
oa::oaDesign * | design |
Static Protected Attributes | |
oa::oaDesign * | lastManagerDesign |
Manager * | lastManagerObject |
Friends | |
class | Synthesis |
class | ModGraph |
class | OccGraph |
class | AiModGraph |
class | ModuleCompiler |
Definition at line 28 of file oagFpgaManager.h.
|
Constructs a Manager for the given design. If it already has a Manager, an error is generated. All information about the function behavior of a design is stored and managed by this class. A Manager is required to describe any functional relationships between OpenAccess objects other than simple equivalence. Conversely, objects that are purely structural in nature (that is, do not have any complex behavior, other than simple connections) do not require a Manager.
Definition at line 41 of file oagFpgaManager.cpp. References hasManager(), and oagFpga::managerAppDef. Referenced by create(), and unserialize(). |
|
Destructor for Manager object. The Manager should only be deleted from a destroy() call. Definition at line 188 of file oagFpgaManager.cpp. |
|
Returns the preexisting Manager for the given design or creates a new one.
Definition at line 73 of file oagFpgaManager.cpp. References ai, oagFpga::AiRefAppDef, bbg, oagFpga::bbRefAppDef, oagFpga::RtlGraph::constantOne(), oagFpga::RtlGraph::constantZero(), DEBUG_PRINTLN, hasManager(), Manager(), oagFpga::managerAppDef, prepareNetToAiConnection(), prepareNetToBBConnection(), and oagFpga::RtlGraph::setTerminalDriver(). |
|
Destroys a manager object and the functional description of a design.
Definition at line 151 of file oagFpgaManager.cpp. References oagFpga::AiRefAppDef, oagFpga::bbRefAppDef, hasManager(), and oagFpga::managerAppDef. Referenced by oagFpga::Synthesis::createModule(). |
|
Definition at line 51 of file oagFpgaManager.h. References oagFpga::managerAppDef. |
|
Definition at line 48 of file oagFpgaManager.h. Referenced by oagFpga::Synthesis::assignMultiRef(), oagFpga::ModuleCompiler::compileBBNode(), oagFpga::Synthesis::createModule(), and prepareNetToBBConnection(). |
|
Definition at line 138 of file oagFpgaManager.h. |
|
Returns the oagAi::Graph associated with the design that this Manager controls. Definition at line 134 of file oagFpgaManager.h. |
|
Returns the BB graph reference connected to this net. A null BB graph reference is returned if this net is not connected to the graph.
Definition at line 654 of file oagFpgaManager.cpp. References ai, oagFpga::AiRefAppDef, and oagFpga::RtlGraph::getNull(). |
|
Returns the net connected to a graph reference. NULL is returned if this graph reference is not connected to any net.
Definition at line 571 of file oagFpgaManager.cpp. References ai, and oagFpga::RtlGraph::getExternalTerminalConnection(). Referenced by oagFpga::AiModGraph::getNetToAiConnection(). |
|
Returns the BB graph reference connected to this net. A null BB graph reference is returned if this net is not connected to the graph.
Definition at line 625 of file oagFpgaManager.cpp. References bbg, oagFpga::BBRef, oagFpga::bbRefAppDef, oagFpga::RtlGraph::getNull(), oagFpga::RtlGraph::isNull(), and oagFpga::RtlGraph::isTerminal(). |
|
Returns the net connected to a graph reference. NULL is returned if this graph reference is not connected to any net.
Definition at line 544 of file oagFpgaManager.cpp. References bbg, oagFpga::RtlGraph::getExternalTerminalConnection(), and oagFpga::RtlGraph::getNodeType(). Referenced by oagFpga::ModuleCompiler::compileBBNode(), oagFpga::OccGraph::getNetToBBConnection(), oagFpga::ModGraph::getNetToBBConnection(), and print(). |
|
Computes the number of bytes necessary for the serialized representation.
Definition at line 265 of file oagFpgaManager.cpp. |
|
Returns true if the given design has an associated Manager. Definition at line 42 of file oagFpgaManager.h. References oagFpga::managerAppDef. Referenced by create(), oagFpga::Synthesis::createModule(), destroy(), and Manager(). |
|
Returns true if a design is entirely structural. A structural module involves only interconnections between components. There are no non-equivalence functional relationships between any nets in the module.
Definition at line 599 of file oagFpgaManager.cpp. References bbg, design, and oagFpga::RtlGraph::getBBNodeNum(). |
|
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.
Definition at line 239 of file oagFpgaManager.cpp. References ai, oagFpga::AiRefAppDef, oagFpga::RtlGraph::newTerminal(), and setNetToAiConnection(). Referenced by create(), and oagFpga::AiModGraph::prepareNetToAiConnection(). |
|
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.
Definition at line 207 of file oagFpgaManager.cpp. References bbg, oagFpga::BBRef, oagFpga::bbRefAppDef, get(), oagFpga::RtlGraph::getNull(), oagFpga::RtlGraph::isTerminal(), oagFpga::RtlGraph::newTerminal(), and setNetToBBConnection(). Referenced by create(), and oagFpga::ModGraph::prepareNetToBBConnection(). |
|
Dumps information about the managed graph. Prints the graph node that every ModBitNet in the design is connected to (or if it is not connected), and prints information about every node in the graph. Definition at line 1073 of file oagFpgaManager.cpp. References bbg, oagFpga::BBRef, design, getNetToBBConnection(), oagFpga::RtlGraph::isNull(), oagFpga::RtlGraph::print(), and oagFpga::toBitNet(). Referenced by oagFpga::ModuleCompiler::compileModules(), and oagFpga::VerilogSynthesis::synthesizeModule(). |
|
Disconnections a net from the Ai graph.
Definition at line 461 of file oagFpgaManager.cpp. References ai, oagFpga::AiRefAppDef, and oagFpga::RtlGraph::setExternalTerminalConnection(). Referenced by oagFpga::AiModGraph::removeNetToAiConnection(). |
|
Serializes the functional description of a design.
Definition at line 302 of file oagFpgaManager.cpp. References DEBUG_PRINTLN. |
|
Connects a net to an Ai graph reference.
Definition at line 514 of file oagFpgaManager.cpp. References ai, oagFpga::AiRefAppDef, oagFpga::RtlGraph::print(), and oagFpga::RtlGraph::setExternalTerminalConnection(). Referenced by oagFpga::ModuleCompiler::busNet2Ai(), prepareNetToAiConnection(), oagFpga::ModuleCompiler::scalarNet2Ai(), and oagFpga::AiModGraph::setNetToAiConnection(). |
|
Connects a net to an Black Box graph reference.
Definition at line 487 of file oagFpgaManager.cpp. References bbg, oagFpga::bbRefAppDef, DEBUG_PRINTLN, oagFpga::RtlGraph::getNodeType(), and oagFpga::RtlGraph::setExternalTerminalConnection(). Referenced by oagFpga::Synthesis::createBusNet(), oagFpga::Synthesis::createScalarNet(), prepareNetToBBConnection(), and oagFpga::ModGraph::setNetToBBConnection(). |
|
Unserializes the functional description of a design.
Definition at line 359 of file oagFpgaManager.cpp. References DEBUG_PRINTLN, and Manager(). |
|
Definition at line 32 of file oagFpgaManager.h. |
|
Definition at line 30 of file oagFpgaManager.h. |
|
Definition at line 33 of file oagFpgaManager.h. |
|
Definition at line 31 of file oagFpgaManager.h. |
|
Definition at line 29 of file oagFpgaManager.h. |
|
|
|
Definition at line 154 of file oagFpgaManager.h. Referenced by isStructural(), and print(). |
|
Definition at line 20 of file oagFpgaManager.cpp. |
|
Definition at line 21 of file oagFpgaManager.cpp. |