8 #ifndef DEFPARSER_DATABASE_H
9 #define DEFPARSER_DATABASE_H
17 #include <limbo/thirdparty/lefdef/5.8/def/def/defrReader.hpp>
18 #include <limbo/thirdparty/lefdef/5.8/def/def/defiAlias.hpp>
31 using std::ostringstream;
33 typedef unsigned int uint32_t;
42 virtual void print(ostringstream&)
const {};
49 std::ostringstream ss;
76 row_name = macro_name = orient =
"";
77 origin[0] = origin[1] = -1;
78 repeat[0] = repeat[1] = -1;
79 step[0] = step[1] = -1;
83 virtual void print(ostringstream& ss)
const
85 ss <<
"//////// Row ////////" << endl
86 <<
"row_name = " << row_name << endl
87 <<
"macro_name = " << macro_name << endl
88 <<
"origin = " << origin[0] <<
" " << origin[1] << endl
89 <<
"orient = " << orient << endl
90 <<
"repeat = " << repeat[0] <<
" " << repeat[1] << endl
91 <<
"step = " << step[0] <<
" " << step[1] << endl;
105 comp_name = macro_name = status = orient =
"";
106 origin[0] = origin[1] = -1;
110 virtual void print(ostringstream& ss)
const
112 ss <<
"//////// Component ////////" << endl
113 <<
"comp_name = " << comp_name << endl
114 <<
"macro_name = " << macro_name << endl
115 <<
"status = " << status << endl
116 <<
"origin = " << origin[0] <<
" " << origin[1] << endl
117 <<
"orient = " << orient << endl;
135 pin_name = net_name = direct = status = orient =
"";
136 origin[0] = origin[1] = -1;
143 virtual void print(ostringstream& ss)
const
145 ss <<
"//////// Pin ////////" << endl
146 <<
"pin_name = " << pin_name << endl
147 <<
"net_name = " << net_name << endl
148 <<
"direct = " << direct << endl
149 <<
"status = " << status << endl
150 <<
"origin = " << origin[0] <<
" " << origin[1] << endl
151 <<
"orient = " << orient << endl;
152 for (uint32_t i = 0; i < vLayer.size(); ++i)
153 ss <<
"layer " << vLayer[i] <<
" " << vBbox[i][0] <<
" " << vBbox[i][1] <<
" " << vBbox[i][2] <<
" " << vBbox[i][3] << endl;
154 ss <<
"use = " << use << endl;
172 virtual void print(ostringstream& ss)
const
174 ss <<
"//////// Net ////////" << endl
175 <<
"net_name = " << net_name << endl
176 <<
"net_weight = " << net_weight << endl;
177 for (uint32_t i = 0; i < vNetPin.size(); ++i)
178 ss <<
"(" << vNetPin[i].first <<
", " << vNetPin[i].second <<
") ";
net to describe interconnection of netlist
friend std::ostream & operator<<(std::ostream &os, Item const &rhs)
string status
placement status
virtual void resize_def_net(int)=0
set number of nets
friend ostringstream & operator<<(ostringstream &ss, Item const &rhs)
virtual void set_def_unit(int)=0
set DEF unit
void reset()
reset all data members
virtual void print(ostringstream &ss) const
print data members
virtual void resize_def_blockage(int)
set number of blockages
void def_user_cbk_reminder(const char *str) const
remind users to define some optional callback functions at runtime
virtual void set_def_version(string const &)=0
set DEF version
Temporary data structures to hold parsed data. Base class for all temporary data structures.
int32_t repeat[2]
do x by y
vector< vector< int32_t > > vBbox
bounding box on each layer
virtual void set_def_busbitchars(string const &)=0
set BUS bit characters
void reset()
reset all data members
virtual void end_def_design()
end of design
virtual void print(ostringstream &ss) const
print data members
virtual void set_def_diearea(int, int, int, int)=0
set die area xl, yl, xh, yh
virtual void add_def_component(Component const &)=0
add component/cell
virtual void print(ostringstream &) const
print data members
virtual void add_def_placement_blockage(std::vector< std::vector< int > > const &)
add placement blockages, array of boxes with xl, yl, xh, yh
virtual void resize_def_pin(int)=0
set number of pins
virtual void print(ostringstream &ss) const
print data members
Base class for def database. Only pure virtual functions are defined. User needs to inheritate this c...
void reset()
reset all data members
void reset()
reset all data members
virtual void add_def_pin(Pin const &)=0
add pin
string comp_name
component name
string macro_name
macro name of component, standard cell type
string status
placement status
virtual void set_def_design(string const &)=0
set design name
int32_t origin[2]
offset to node origin
vector< string > vLayer
layers
int32_t net_weight
net weight
string macro_name
macro name of row
int32_t origin[2]
x, y of origin
virtual void print(ostringstream &ss) const
print data members
virtual void set_def_dividerchar(string const &)=0
set divider characters
virtual void add_def_net(Net const &)=0
add net
virtual void add_def_row(Row const &)=0
add row
vector< std::pair< string, string > > vNetPin
int32_t origin[2]
x, y of origin
virtual void resize_def_component(int)=0
add component/cell