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#include <string>
11
13
14using std::cout;
15using std::endl;
16using std::string;
17
26{
27 public:
30
33 {
34 cout << "constructing LefDataBase" << endl;
35 }
36
39 virtual void lef_version_cbk(string const& v)
40 {
41 cout << "lef version = " << v << endl;
42 }
43
45 virtual void lef_version_cbk(double v)
46 {
47 cout << "lef version = " << v << endl;
48 }
49
51 virtual void lef_dividerchar_cbk(string const& v)
52 {
53 cout << "lef dividechar = " << v << endl;
54 }
55
57 virtual void lef_units_cbk(LefParser::lefiUnits const& v)
58 {
59 v.print(stdout);
60 }
61
63 virtual void lef_manufacturing_cbk(double v)
64 {
65 cout << "lef manufacturing = " << v << endl;
66 }
67
69 virtual void lef_useminspacing_cbk(lefiUseMinSpacing const& v)
70 {
71 v.print(stdout);
72 }
73
75 virtual void lef_clearancemeasure_cbk(string const& v)
76 {
77 cout << "lef clearancemeasure = " << v << endl;
78 }
79
81 virtual void lef_busbitchars_cbk(string const& v)
82 {
83 cout << "lef busbitchars = " << v << endl;
84 }
85
87 virtual void lef_layer_cbk(LefParser::lefiLayer const& v)
88 {
89 v.print(stdout);
90 }
91
93 virtual void lef_via_cbk(LefParser::lefiVia const& v)
94 {
95 v.print(stdout);
96 }
97
99 virtual void lef_viarule_cbk(LefParser::lefiViaRule const& v)
100 {
101 v.print(stdout);
102 }
103
105 virtual void lef_spacing_cbk(LefParser::lefiSpacing const& v)
106 {
107 v.print(stdout);
108 }
109
111 virtual void lef_site_cbk(LefParser::lefiSite const& v)
112 {
113 v.print(stdout);
114 }
115
117 virtual void lef_macrobegin_cbk(std::string const& v)
118 {
119 cout << __func__ << " => " << v << endl;
120 }
121
123 virtual void lef_macro_cbk(LefParser::lefiMacro const& v)
124 {
125 v.print(stdout);
126 }
127
129 virtual void lef_prop_cbk(LefParser::lefiProp const& v)
130 {
131 v.print(stdout);
132 }
133
135 virtual void lef_maxstackvia_cbk(LefParser::lefiMaxStackVia const& v)
136 {
137 v.print(stdout);
138 }
139
141 virtual void lef_obstruction_cbk(LefParser::lefiObstruction const& v)
142 {
143 v.print(stdout);
144 }
145
147 virtual void lef_pin_cbk(lefiPin const& v)
148 {
149 v.print(stdout);
150 }
151};
152
154void test1(std::string const& filename)
155{
156 cout << "////////////// test1 ////////////////" << endl;
157 LefDataBase db;
158 if (LefParser::read(db, filename))
159 cout << "read successfully" << endl;
160 else cout << "read failed" << endl;
161}
162
167int main(int argc, char** argv)
168{
169
170 if (argc > 1)
171 {
172 for (int i = 1; i < argc; ++i)
173 test1(argv[i]);
174 }
175 else
176 cout << "at least 1 argument is required" << endl;
177
178 return 0;
179}
180
Driver for Lef parser.
Custom class that inheritates LefParser::LefDataBase with all the required callbacks defined....
virtual void lef_pin_cbk(lefiPin const &v)
pin callback, describe pins in a standard cell
virtual void lef_spacing_cbk(LefParser::lefiSpacing const &v)
spacing callback
virtual void lef_dividerchar_cbk(string const &v)
set divider characters
virtual void lef_version_cbk(string const &v)
set LEF version
virtual void lef_site_cbk(LefParser::lefiSite const &v)
site callback
virtual void lef_layer_cbk(LefParser::lefiLayer const &v)
add layer
virtual void lef_units_cbk(LefParser::lefiUnits const &v)
set unit
LefDataBase()
constructor
virtual void lef_version_cbk(double v)
set LEF version
virtual void lef_obstruction_cbk(LefParser::lefiObstruction const &v)
obstruction callback
virtual void lef_busbitchars_cbk(string const &v)
set bus bit characters
LefParser::LefDataBase base_type
base type
virtual void lef_prop_cbk(LefParser::lefiProp const &v)
property callback
virtual void lef_macro_cbk(LefParser::lefiMacro const &v)
macro callback, describe standard cell type
virtual void lef_clearancemeasure_cbk(string const &v)
set clearance measure
virtual void lef_viarule_cbk(LefParser::lefiViaRule const &v)
add via rule
virtual void lef_useminspacing_cbk(lefiUseMinSpacing const &v)
set use min space
virtual void lef_maxstackvia_cbk(LefParser::lefiMaxStackVia const &v)
noise margin callback
virtual void lef_macrobegin_cbk(std::string const &v)
macro begin callback, describe standard cell type
virtual void lef_via_cbk(LefParser::lefiVia const &v)
add via
virtual void lef_manufacturing_cbk(double v)
set manufacturing entry
Base class for lef database. Only pure virtual functions are defined. User needs to inheritate this...
bool read(LefDataBase &db, const string &lefFile)
API for LefParser. Read LEF file and initialize database by calling user-defined callback functions.
int main()
void test1()
test function API