Limbo
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
test_adapt.cpp
Go to the documentation of this file.
1 
8 #include <iostream>
9 #include <fstream>
10 
12 
13 using std::cout;
14 using std::cin;
15 using std::endl;
16 using std::string;
17 
21 {
22  public:
25  {
26  cout << "DefDataBase::" << __func__ << endl;
27  }
30  virtual void set_def_dividerchar(string const& token)
31  {
32  cout << __func__ << " => " << token << endl;
33  }
35  virtual void set_def_busbitchars(string const& token)
36  {
37  cout << __func__ << " => " << token << endl;
38  }
40  virtual void set_def_version(string const& token)
41  {
42  cout << __func__ << " => " << token << endl;
43  }
45  virtual void set_def_design(string const& token)
46  {
47  cout << __func__ << " => " << token << endl;
48  }
50  virtual void set_def_unit(int token)
51  {
52  cout << __func__ << " => " << token << endl;
53  }
55  virtual void set_def_diearea(int t1, int t2, int t3, int t4)
56  {
57  cout << __func__ << " => " << t1 << "," << t2 << "," << t3 << "," << t4 << endl;
58  }
60  virtual void add_def_row(DefParser::Row const&)
61  {
62  cout << __func__ << endl;
63  }
66  virtual void add_def_component(DefParser::Component const& c)
67  {
68  cout << __func__ << ": " << c.comp_name << ": status = " << c.status << endl;
69  }
71  virtual void resize_def_component(int token)
72  {
73  cout << __func__ << " => " << token << endl;
74  }
77  virtual void add_def_pin(DefParser::Pin const& p)
78  {
79  cout << __func__ << ": " << p.pin_name << endl;
80  }
83  virtual void resize_def_pin(int token)
84  {
85  cout << __func__ << " => " << token << endl;
86  }
89  virtual void add_def_net(DefParser::Net const& n)
90  {
91  cout << __func__ << ": " << n.net_name << ": weight " << n.net_weight << endl;
92  }
95  virtual void resize_def_net(int token)
96  {
97  cout << __func__ << " => " << token << endl;
98  }
101  virtual void resize_def_blockage(int n)
102  {
103  cout << __func__ << " => " << n << endl;
104  }
107  virtual void add_def_placement_blockage(std::vector<std::vector<int> > const& vBbox)
108  {
109  cout << __func__ << " => ";
110  for (std::vector<std::vector<int> >::const_iterator it = vBbox.begin(); it != vBbox.end(); ++it)
111  cout << "(" << (*it)[0] << ", " << (*it)[1] << ", " << (*it)[2] << ", " << (*it)[3] << ") ";
112  cout << endl;
113  }
115  virtual void end_def_design()
116  {
117  cout << __func__ << endl;
118  }
119 };
120 
122 void test1(string const& filename)
123 {
124  cout << "////////////// test1 ////////////////" << endl;
125  DefDataBase db;
126  DefParser::read(db, filename);
127 }
128 
130 void test2(string const& filename)
131 {
132  cout << "////////////// test2 ////////////////" << endl;
133  DefDataBase db;
134  DefParser::Driver driver (db);
135  //driver.trace_scanning = true;
136  //driver.trace_parsing = true;
137 
138  driver.parse_file(filename);
139 }
140 
145 int main(int argc, char** argv)
146 {
147 
148  if (argc > 1)
149  {
150  test1(argv[1]);
151  test2(argv[1]);
152  }
153  else
154  cout << "at least 1 argument is required" << endl;
155 
156  return 0;
157 }
net to describe interconnection of netlist
Definition: DefDataBase.h:158
pin of node/cell
Definition: DefDataBase.h:121
string status
placement status
Definition: DefDataBase.h:99
virtual void set_def_design(string const &token)
Definition: test_adapt.cpp:45
int main(int argc, char **argv)
main function
Definition: test_adapt.cpp:145
string pin_name
pin name
Definition: DefDataBase.h:123
virtual void add_def_placement_blockage(std::vector< std::vector< int > > const &vBbox)
add placement blockages
Definition: test_adapt.cpp:107
virtual void add_def_component(DefParser::Component const &c)
add component
Definition: test_adapt.cpp:66
virtual void add_def_pin(DefParser::Pin const &p)
add pin
Definition: test_adapt.cpp:77
void test2(string const &filename)
test 2: use class wrapper DefParser::Driver
Definition: test_adapt.cpp:130
virtual void resize_def_blockage(int n)
set number of blockages
Definition: test_adapt.cpp:101
DefDataBase()
constructor
Definition: test_adapt.cpp:24
virtual void resize_def_pin(int token)
set number of pins
Definition: test_adapt.cpp:83
virtual void set_def_busbitchars(string const &token)
Definition: test_adapt.cpp:35
virtual void add_def_net(DefParser::Net const &n)
add net
Definition: test_adapt.cpp:89
virtual void end_def_design()
end of design
Definition: test_adapt.cpp:115
Custom class that inheritates DefParser::DefDataBase with all the required callbacks defined...
Definition: test_adapt.cpp:20
Base class for def database. Only pure virtual functions are defined. User needs to inheritate this c...
Definition: DefDataBase.h:187
virtual void resize_def_net(int token)
set number of nets
Definition: test_adapt.cpp:95
virtual void set_def_diearea(int t1, int t2, int t3, int t4)
Definition: test_adapt.cpp:55
placement row
Definition: DefDataBase.h:65
string comp_name
component name
Definition: DefDataBase.h:97
virtual void set_def_unit(int token)
Definition: test_adapt.cpp:50
virtual void resize_def_component(int token)
Definition: test_adapt.cpp:71
virtual void set_def_dividerchar(string const &token)
Definition: test_adapt.cpp:30
bool read(DefDataBase &db, const string &defFile)
API for DefParser. Read DEF file and initialize database by calling user-defined callback functions...
string net_name
net name
Definition: DefDataBase.h:160
void test1(string const &filename)
test 1: use function wrapper DefParser::read
Definition: test_adapt.cpp:122
int32_t net_weight
net weight
Definition: DefDataBase.h:161
Driver for Def parser.
cell in placement
Definition: DefDataBase.h:95
virtual void add_def_row(DefParser::Row const &)
add row
Definition: test_adapt.cpp:60
virtual void set_def_version(string const &token)
Definition: test_adapt.cpp:40
bool parse_file(const string &filename)