#include <SimInit.h>
Public Types | |
typedef NetlistParser::StimulusMapType | StimulusMapType |
typedef SimObject::Graph | Graph |
typedef SimObject::GNode | GNode |
typedef SimObject::EventTy | EventTy |
Public Member Functions | |
SimInit (Graph &graph, const char *netlistFile) | |
Instantiates a new simulation initializer. | |
~SimInit () | |
const Graph & | getGraph () const |
Gets the graph. | |
const std::vector< EventTy > & | getInitEvents () const |
Gets the inits the events. | |
const std::vector< std::string > & | getInputNames () const |
Gets the input names. | |
const std::vector< SimObject * > & | getInputObjs () const |
Gets the input objs. | |
const std::vector< std::string > & | getOutputNames () const |
Gets the output names. | |
const std::vector< SimObject * > | getOutputObjs () const |
Gets the output objs. | |
const std::map< std::string, LogicVal > & | getOutValues () const |
Gets the out values. | |
size_t | getNumEdges () const |
Gets the number edges. | |
size_t | getNumNodes () const |
Gets the number of nodes. | |
const std::vector< GNode > & | getInputNodes () const |
Gets the input nodes. | |
Private Member Functions | |
void | createInputObjs () |
Creates the input simulation objs. | |
void | createOutputObjs () |
Creates the output simulation objs. | |
void | createInitEvents () |
Creates the initial events. | |
void | createGateObjs () |
Creates the gate objs. | |
void | createGraphNodes (const std::vector< SimObject * > &simObjs) |
helper function, which creates graph nodes corresponding to any simulation object and add the node to the graph. | |
void | createConnections () |
Creates the connections i.e. | |
void | initialize () |
Initialize. | |
void | destroy () |
destructor helper | |
Static Private Member Functions | |
static const std::map < std::string, OneInputFunc * > | oneInputFuncMap () |
A mapping from string name (in the netlist) to functor that implements the corresponding functionality. | |
static const std::map < std::string, TwoInputFunc * > | twoInputFuncMap () |
A mapping from string name (in the netlist) to functor that implements the corresponding functionality. | |
static std::string | addInPrefix (const std::string &name) |
static std::string | addOutPrefix (const std::string &name) |
template<typename T > | |
static void | destroyVec (std::vector< T * > &vec) |
freeing pointers in a vector before the vector itself is destroyed | |
Private Attributes | |
Graph & | graph |
The graph. | |
NetlistParser | parser |
The netlist parser. | |
std::vector< SimObject * > | inputObjs |
The input simulation objs. | |
std::vector< GNode > | inputNodes |
The input nodes. | |
std::vector< SimObject * > | outputObjs |
The output simulation objs. | |
std::vector< EventTy > | initEvents |
The initial events. | |
std::vector< SimObject * > | gateObjs |
The gates i.e. | |
size_t | numEdges |
The num edges. | |
size_t | numNodes |
The num nodes. | |
size_t | simObjCntr |
Counter for SimObject's. |
typedef SimObject::EventTy SimInit::EventTy |
typedef SimObject::GNode SimInit::GNode |
typedef SimObject::Graph SimInit::Graph |
SimInit::SimInit | ( | Graph & | graph, | |
const char * | netlistFile | |||
) | [inline] |
Instantiates a new simulation initializer.
graph | the graph | |
netlistFile | the netlist file |
SimInit::~SimInit | ( | ) | [inline] |
static std::string SimInit::addInPrefix | ( | const std::string & | name | ) | [inline, static, private] |
static std::string SimInit::addOutPrefix | ( | const std::string & | name | ) | [inline, static, private] |
void SimInit::createConnections | ( | ) | [inline, private] |
Creates the connections i.e.
edges in the graph An edge is created whenever a gate's output is connected to another gate's input.
void SimInit::createGateObjs | ( | ) | [inline, private] |
Creates the gate objs.
void SimInit::createGraphNodes | ( | const std::vector< SimObject * > & | simObjs | ) | [inline, private] |
helper function, which creates graph nodes corresponding to any simulation object and add the node to the graph.
No connections made yet
void SimInit::createInitEvents | ( | ) | [inline, private] |
Creates the initial events.
void SimInit::createInputObjs | ( | ) | [inline, private] |
Creates the input simulation objs.
void SimInit::createOutputObjs | ( | ) | [inline, private] |
Creates the output simulation objs.
void SimInit::destroy | ( | ) | [inline, private] |
destructor helper
static void SimInit::destroyVec | ( | std::vector< T * > & | vec | ) | [inline, static, private] |
freeing pointers in a vector before the vector itself is destroyed
const Graph& SimInit::getGraph | ( | ) | const [inline] |
Gets the graph.
const std::vector<EventTy >& SimInit::getInitEvents | ( | ) | const [inline] |
Gets the inits the events.
const std::vector<std::string>& SimInit::getInputNames | ( | ) | const [inline] |
Gets the input names.
const std::vector<GNode>& SimInit::getInputNodes | ( | ) | const [inline] |
Gets the input nodes.
const std::vector<SimObject*>& SimInit::getInputObjs | ( | ) | const [inline] |
Gets the input objs.
size_t SimInit::getNumEdges | ( | ) | const [inline] |
Gets the number edges.
size_t SimInit::getNumNodes | ( | ) | const [inline] |
Gets the number of nodes.
const std::vector<std::string>& SimInit::getOutputNames | ( | ) | const [inline] |
Gets the output names.
const std::vector<SimObject*> SimInit::getOutputObjs | ( | ) | const [inline] |
Gets the output objs.
const std::map<std::string, LogicVal>& SimInit::getOutValues | ( | ) | const [inline] |
Gets the out values.
void SimInit::initialize | ( | ) | [inline, private] |
Initialize.
Processing steps create the input and output objects and add to netlistArrays create the gate objects connect the netlists by populating the fanout lists create a list of initial events
static const std::map<std::string, OneInputFunc* > SimInit::oneInputFuncMap | ( | ) | [inline, static, private] |
A mapping from string name (in the netlist) to functor that implements the corresponding functionality.
Helps in initialization
static const std::map<std::string, TwoInputFunc*> SimInit::twoInputFuncMap | ( | ) | [inline, static, private] |
A mapping from string name (in the netlist) to functor that implements the corresponding functionality.
Helps in initialization
std::vector<SimObject*> SimInit::gateObjs [private] |
The gates i.e.
other than input and output ports.
Graph& SimInit::graph [private] |
The graph.
std::vector<EventTy > SimInit::initEvents [private] |
The initial events.
std::vector<GNode> SimInit::inputNodes [private] |
The input nodes.
std::vector<SimObject*> SimInit::inputObjs [private] |
The input simulation objs.
size_t SimInit::numEdges [private] |
The num edges.
size_t SimInit::numNodes [private] |
The num nodes.
std::vector<SimObject*> SimInit::outputObjs [private] |
The output simulation objs.
NetlistParser SimInit::parser [private] |
The netlist parser.
size_t SimInit::simObjCntr [private] |
Counter for SimObject's.