mirror of https://github.com/KLayout/klayout.git
Updated Enhanced Verification Base (markdown)
parent
79e51e6f36
commit
f59b156382
|
|
@ -26,8 +26,40 @@ The basic plan is this:
|
|||
* Provide readers and writers for the netlist to and from external file formats (initially SPICE)
|
||||
* Provide netlist vs. netlist compare rendering an LVS
|
||||
|
||||
In contrast to the flat operations provided so far, the new verification base operates in "deep" mode. Hence the name "Deep Verification Base" (DVB).
|
||||
|
||||
# Detailed plan for the hierarchical enhancements of the layout engine
|
||||
|
||||
The
|
||||
The layout engine is based on the Region, Edges and EdgePairs classes. Currently those are monolithic structures, but after some refactoring they can be used as providers for the hierarchical algorithms.
|
||||
|
||||
* Implement delegates to represent empty, flat, as-if-flat original and (new) deep collections
|
||||
* The deep collections utilize temporary layouts to store the shapes, edges and edge pairs away from the original layouts. This is required, as some operations will modify or optimize the original shapes and we don't want to destroy the original data. The temporary layouts are kept in the "deep shape store".
|
||||
* Operations acting on the new deep collections will utilize a hierarchical processor instead of the flat one. Not all operations will be migrated to hierarchical processing mode initially. Top priority are boolean polygon-vs-polygon and polygon-vs-edge operations as they are required mainly for device recognition.
|
||||
* When writing the deep collection data back to the original layout, hierarchy mapping from the temporary store to the original layout's hierarchy has to happen. KLayout already provides several methods to implement this mapping.
|
||||
* Not all operations will be
|
||||
|
||||
Finally, the suggested use model can be
|
||||
|
||||
```
|
||||
# A sample DRC script using deep mode
|
||||
|
||||
l1 = input(1, 0)
|
||||
l2 = input(2, 0)
|
||||
|
||||
# enable deep mode
|
||||
deep
|
||||
|
||||
(l1 - l2).output(100, 0)
|
||||
```
|
||||
|
||||
Deep mode can basically be combined with tiling. In this case, the tiles form hierarchical clips. In other words, tiling will happen before the hierarchical processor comes into play.
|
||||
|
||||
## The hierarchical engine
|
||||
|
||||
...
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue