kppc.drc.cleanermaster module¶
Wrapper Class for CleanerMaster.cpp
This Class creates a managed shared memory space. Polygon data for cleaning are streamed into this memory space. A slave process (cleanermain, which is a little loop for CleanerSlave.cpp).
Python Class¶
-
class
PyCleanerMaster¶ -
add_edge(self, x1 : int, x2 : int, y1 : int, y2 : int)¶ Add an edge to the cleaner.
- Parameters
x1 – first x coordinate
x2 – second x coordinate
y1 – first y coordinate
y2 – second y coordinate
-
done(self)¶ Indicates whether there is data still in the buffer from the last read or not.
- Returns
false if the buffer is empty and the data has been read by the slave.
- Return type
-
get_layer(self)¶ Read the next processed layer in the memory space and returns it in per line style (x coordinates per line (y coordinate)). This is considerably slower than returning the polygons.
-
polygons(self)¶ Reads the next processed layer in the memory and assembles the line style to polygons.
-
set_box(self, layer : int, datatype : int, violation_width : int, violation_space : int, x1 : int, x2 : int, y1 : int, y2 : int)¶ Allocate enough space in the shared memory to stream the cell and its polygons in.
- Parameters
layer – layer number
datatype – datatype number
viospace (minimum space violation in database units) – minimum space violation in database units
viowidth (minimum width violation in database units) – minimum width violation in database units
x1 – left bound of box
x2 – right bound of box
y1 – bottom bound of box
y2 – top bound of box
-
C++ Class¶
-
class
CleanerMaster¶ -
CleanerMaster(int nlayers)¶ Creates the shared memory space and resizes the vectors for nlayers
-
void
set_box(int layer, int datatype, int violation_width, int violation_space, int x1, int x2, int y1, int y2)¶ Allocate enough space in the shared memory to stream the cell and its polygons in.
-
void
add_edge(int x1, int x2, int y1, int y2)¶ Add an edge to the cleaner.
-
bool
done()¶ Indicates whether there is data still in the buffer from the last read or not.
-
std::vector<std::vector<int>>
get_layer()¶ Read the next processed layer in the memory space and returns it in per line style (x coordinates per line (y coordinate)).
-
std::vector<std::vector<std::pair<int, int>>>
get_polygons()¶ Reads the next processed layer in the memory and assembles the line style to polygons.
-
C++ Source Code: CleanerMaster Source