The Class NetlistParser parses an input netlist file. More...
#include <NetlistParser.h>
Public Types | |
| typedef std::map< std::string, std::vector< std::pair < SimTime, LogicVal > > > | StimulusMapType |
Public Member Functions | |
| NetlistParser (const char *netlistFile) | |
| Instantiates a new netlist parser. | |
| void | parse (const char *fileName) |
| Parses the netlist contained in fileName. | |
| const SimTime & | getFinishTime () const |
| Gets the finish time. | |
| const char * | getNetlistFile () const |
| Gets the netlist file. | |
| const std::vector< std::string > & | getInputNames () const |
| Gets the input names. | |
| const std::vector< std::string > & | getOutputNames () const |
| Gets the output names. | |
| const std::map< std::string, LogicVal > & | getOutValues () const |
| Gets the out values. | |
| const StimulusMapType & | getInputStimulusMap () const |
| Gets the input stimulus map. | |
| const std::vector< GateRec > & | getGates () const |
| Gets the gates. | |
Static Public Attributes | |
| static const char * | DELIM = " \n\t,;()=" |
| following is the list of token separators; characters meant to be ignored | |
| static const char * | COMMENTS = "//" |
| beginning of a comment string | |
Static Private Member Functions | |
| static const std::set < std::string > | oneInputGates () |
| A set of names of valid logic gates with one input. | |
| static const std::set < std::string > | twoInputGates () |
| A set of names of valid logic gates with two inputs. | |
| static void | parsePortList (NetlistTokenizer &tokenizer, std::vector< std::string > &portNames) |
| Parses the port list i.e. | |
| static void | parseOutValues (NetlistTokenizer &tokenizer, std::map< std::string, LogicVal > &outValues) |
| Parses the out values, which are the expected values of the circuit outputs at the end of simulation. | |
| static void | parseInitList (NetlistTokenizer &tokenizer, StimulusMapType &inputStimulusMap) |
| Parses the initialization list for all the inputs. | |
| static void | parseNetlist (NetlistTokenizer &tokenizer, std::vector< GateRec > &gates) |
| Parses the actual list of gates. | |
Private Attributes | |
| const char * | netlistFile |
| The netlist file. | |
| std::vector< std::string > | inputNames |
| The input names. | |
| std::vector< std::string > | outputNames |
| The output names. | |
| std::map< std::string, LogicVal > | outValues |
| The out values. | |
| StimulusMapType | inputStimulusMap |
| The input stimulus map has a list of (time, value) pairs for each input. | |
| std::vector< GateRec > | gates |
| The gates. | |
| SimTime | finishTime |
| The finish time. | |
The Class NetlistParser parses an input netlist file.
| typedef std::map<std::string, std::vector<std::pair<SimTime, LogicVal> > > NetlistParser::StimulusMapType |
| NetlistParser::NetlistParser | ( | const char * | netlistFile | ) | [inline] |
Instantiates a new netlist parser.
| netlistFile | the netlist file |
| const SimTime& NetlistParser::getFinishTime | ( | ) | const [inline] |
Gets the finish time.
| const std::vector<GateRec>& NetlistParser::getGates | ( | ) | const [inline] |
Gets the gates.
| const std::vector<std::string>& NetlistParser::getInputNames | ( | ) | const [inline] |
Gets the input names.
| const StimulusMapType& NetlistParser::getInputStimulusMap | ( | ) | const [inline] |
Gets the input stimulus map.
| const char* NetlistParser::getNetlistFile | ( | ) | const [inline] |
Gets the netlist file.
| const std::vector<std::string>& NetlistParser::getOutputNames | ( | ) | const [inline] |
Gets the output names.
| const std::map<std::string, LogicVal>& NetlistParser::getOutValues | ( | ) | const [inline] |
Gets the out values.
| static const std::set<std::string> NetlistParser::oneInputGates | ( | ) | [inline, static, private] |
A set of names of valid logic gates with one input.
| void NetlistParser::parse | ( | const char * | fileName | ) | [inline] |
Parses the netlist contained in fileName.
Parsing steps parse input signal names parse output signal names parse finish time parse stimulus lists for each input signal parse the netlist
| fileName | the file name |
| static void NetlistParser::parseInitList | ( | NetlistTokenizer & | tokenizer, | |
| StimulusMapType & | inputStimulusMap | |||
| ) | [inline, static, private] |
Parses the initialization list for all the inputs.
| tokenizer | the tokenizer | |
| inputStimulusMap | the input stimulus map |
| static void NetlistParser::parseNetlist | ( | NetlistTokenizer & | tokenizer, | |
| std::vector< GateRec > & | gates | |||
| ) | [inline, static, private] |
Parses the actual list of gates.
| tokenizer | the tokenizer | |
| gates | the gates |
| static void NetlistParser::parseOutValues | ( | NetlistTokenizer & | tokenizer, | |
| std::map< std::string, LogicVal > & | outValues | |||
| ) | [inline, static, private] |
Parses the out values, which are the expected values of the circuit outputs at the end of simulation.
| tokenizer | the tokenizer | |
| outValues | the expected out values at the end of the simulation |
| static void NetlistParser::parsePortList | ( | NetlistTokenizer & | tokenizer, | |
| std::vector< std::string > & | portNames | |||
| ) | [inline, static, private] |
Parses the port list i.e.
inputs and outputs
| tokenizer | the tokenizer | |
| portNames | the net names for input/output ports |
| static const std::set<std::string> NetlistParser::twoInputGates | ( | ) | [inline, static, private] |
A set of names of valid logic gates with two inputs.
const char * NetlistParser::COMMENTS = "//" [static] |
beginning of a comment string
const char * NetlistParser::DELIM = " \n\t,;()=" [static] |
following is the list of token separators; characters meant to be ignored
SimTime NetlistParser::finishTime [private] |
The finish time.
std::vector<GateRec> NetlistParser::gates [private] |
The gates.
std::vector<std::string> NetlistParser::inputNames [private] |
The input names.
The input stimulus map has a list of (time, value) pairs for each input.
const char* NetlistParser::netlistFile [private] |
The netlist file.
std::vector<std::string> NetlistParser::outputNames [private] |
The output names.
std::map<std::string, LogicVal> NetlistParser::outValues [private] |
The out values.
1.6.3