Limbo 3.5.4
Loading...
Searching...
No Matches
test_adapt.cpp
Go to the documentation of this file.
1
7
8#include <iostream>
9#include <fstream>
10
12
13using std::cout;
14using std::cin;
15using std::endl;
16using std::string;
17
21{
22 public:
25 {
26 cout << "DefDataBase::" << __func__ << endl;
27 }
28
30 virtual void set_def_dividerchar(string const& token)
31 {
32 cout << __func__ << " => " << token << endl;
33 }
34
35 virtual void set_def_busbitchars(string const& token)
36 {
37 cout << __func__ << " => " << token << endl;
38 }
39
40 virtual void set_def_version(string const& token)
41 {
42 cout << __func__ << " => " << token << endl;
43 }
44
45 virtual void set_def_design(string const& token)
46 {
47 cout << __func__ << " => " << token << endl;
48 }
49
50 virtual void set_def_unit(int token)
51 {
52 cout << __func__ << " => " << token << endl;
53 }
54
55 virtual void set_def_diearea(int t1, int t2, int t3, int t4)
56 {
57 cout << __func__ << " => " << t1 << "," << t2 << "," << t3 << "," << t4 << endl;
58 }
59
60 virtual void add_def_row(DefParser::Row const&)
61 {
62 cout << __func__ << endl;
63 }
64
67 {
68 cout << __func__ << ": " << c.comp_name << ": status = " << c.status << endl;
69 }
70
71 virtual void resize_def_component(int token)
72 {
73 cout << __func__ << " => " << token << endl;
74 }
75
77 virtual void add_def_pin(DefParser::Pin const& p)
78 {
79 cout << __func__ << ": " << p.pin_name << endl;
80 }
81
83 virtual void resize_def_pin(int token)
84 {
85 cout << __func__ << " => " << token << endl;
86 }
87
89 virtual void add_def_net(DefParser::Net const& n)
90 {
91 cout << __func__ << ": " << n.net_name << ": weight " << n.net_weight << endl;
92 }
93
95 virtual void resize_def_net(int token)
96 {
97 cout << __func__ << " => " << token << endl;
98 }
99
101 virtual void resize_def_blockage(int n)
102 {
103 cout << __func__ << " => " << n << endl;
104 }
105
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 }
114
115 virtual void resize_def_region(int n)
116 {
117 cout << __func__ << " => " << n << endl;
118 }
119
120 virtual void add_def_region(DefParser::Region const& region)
121 {
122 cout << __func__ << "\n" << region;
123 }
124
125 virtual void resize_def_group(int n)
126 {
127 cout << __func__ << " => " << n << endl;
128 }
129
130 virtual void add_def_group(DefParser::Group const& group)
131 {
132 cout << __func__ << "\n" << group;
133 }
134
135 virtual void end_def_design()
136 {
137 cout << __func__ << endl;
138 }
139};
140
142void test1(string const& filename)
143{
144 cout << "////////////// test1 ////////////////" << endl;
145 DefDataBase db;
146 DefParser::read(db, filename);
147}
148
150void test2(string const& filename)
151{
152 cout << "////////////// test2 ////////////////" << endl;
153 DefDataBase db;
154 DefParser::Driver driver (db);
155 //driver.trace_scanning = true;
156 //driver.trace_parsing = true;
157
158 driver.parse_file(filename);
159}
160
165int main(int argc, char** argv)
166{
167
168 if (argc > 1)
169 {
170 test1(argv[1]);
171 test2(argv[1]);
172 }
173 else
174 cout << "at least 1 argument is required" << endl;
175
176 return 0;
177}
Driver for Def parser.
Custom class that inheritates DefParser::DefDataBase with all the required callbacks defined.
virtual void add_def_region(DefParser::Region const &region)
add region
virtual void resize_def_blockage(int n)
set number of blockages
virtual void add_def_pin(DefParser::Pin const &p)
add pin
virtual void resize_def_net(int token)
set number of nets
virtual void set_def_unit(int token)
virtual void resize_def_pin(int token)
set number of pins
virtual void add_def_net(DefParser::Net const &n)
add net
virtual void set_def_dividerchar(string const &token)
virtual void end_def_design()
end of design
virtual void resize_def_region(int n)
set number of regions
virtual void set_def_version(string const &token)
virtual void resize_def_component(int token)
virtual void add_def_placement_blockage(std::vector< std::vector< int > > const &vBbox)
add placement blockages
DefDataBase()
constructor
virtual void set_def_design(string const &token)
virtual void add_def_row(DefParser::Row const &)
add row
virtual void resize_def_group(int n)
set number of groups
virtual void add_def_group(DefParser::Group const &group)
add group
virtual void add_def_component(DefParser::Component const &c)
add component
virtual void set_def_busbitchars(string const &token)
virtual void set_def_diearea(int t1, int t2, int t3, int t4)
Base class for def database. Only pure virtual functions are defined. User needs to inheritate this...
bool parse_file(const string &filename)
void test2(string const &filename)
test 2: use class wrapper DefParser::Driver
bool read(DefDataBase &db, const string &defFile)
API for DefParser. Read DEF file and initialize database by calling user-defined callback functions.
cell in placement
string status
placement status
string comp_name
component name
group to describe cells corresponding to region
net to describe interconnection of netlist
int32_t net_weight
net weight
string net_name
net name
pin of node/cell
string pin_name
pin name
region to describe regions like fence
placement row
Definition DefDataBase.h:71
int main()
void test1()
test function API