Plus: added some missing files
Implementation details:
* scaling factor was introduced in DeviceExtractor::extract
* for easy implementation this is available in "sdbu"
* "sdbu" is made available in GSI
* to test this, the db::compare_netlist had to be enhanced to
exactly check device parameters
* enhancement of LVS script framework and doc updates
- edge pairs are normalized before turning them into polygons.
This makes flat and deep implementation more consistent.
- deep region and flat regions were not cooperating in geo
checks
- unnamed layers are not registered in make_layer - this
does not make sense and will just hold a fake ref
- tests now use GDS to represent texts after transformation
(with orientation, OASIS can't do this)
- texts are more consistently handled in the tests
- test debug output is not written in the same format
than golden data unless special normalization is
requested.
- a non-orientable polygon was converted to orientable in
a text because this can be represented in GDS consistently
- DRC testsuite uses "polygons" instead of "input" to achieve
identical behavior for deep and flat mode with respect to
texts
- dbRegionTests are updated because texts are not allowed
for non-original layers too
Texts are not only kept inside original layers, but
also inside deep layers. This enables using texts
from DRC.
However, texts in deep layers are kept as markers.
Mostly they are converted back to texts, but the
orientation will be lost.
The change eliminates the need to using Iterators
in DRC instead of original layers and use of
label layers in deep mode.
A drawback is the presence of marker shapes in
deep mode (unless polygon layers are created).
Also, text output to RDB is not supported from
deep layers currently.
Refactoring:
* more consistent behavior of output redirection
* ut library was refactored and split into several
.h/.cc
* concept of long runners introduced
* long runners can be skipped with "test_is_long_runner()"
* same for editable/non-editable mode tests
- modified definition of texts with the ability to produce
point-like edge objects
- middle and extent_refs methods for center point and other
references.
RBA now provides a hash method for Box, Edge, EdgePair, Trans,
Polygon, SimplePolygon, CellInstArray, LayerInfo, Path, Text,
Point and Vector.
eql? is mapped to ==.
==, != and < act "fuzzy" for the double-typed variants.
Hence, these objects can be used as hash keys now.
- A new constructor for RBA::Region has been provided to
create text markers from a shape iterator
- The DRC framework has been enhanced with a "text" function