Matthias Koefferlein
aad52b77ba
Netlist compare: added the ability to filter small caps and high resistance devices
2019-04-06 19:46:13 +02:00
Matthias Koefferlein
da5680ef24
Netlist compare: configurable device parameter compare scheme.
2019-04-06 15:19:43 +02:00
Matthias Koefferlein
43f65e4d29
Added tests for GSI binding of dbNetlistCompare
2019-04-06 00:18:37 +02:00
Matthias Koefferlein
c5a56dbc5f
WIP: GSI binding for netlist comparer.
2019-04-04 23:41:46 +02:00
Matthias Koefferlein
52fb8b0f65
Merge remote-tracking branch 'remotes/origin/master' into dvb
2019-04-04 07:35:43 +02:00
Matthias Koefferlein
eacd5fc19d
Fixed some spelling errors (allow to, allows to)
2019-04-03 19:15:09 +02:00
Matthias Koefferlein
8e9f15669f
WIP: utilizing netlist compare for DRC checks as well
...
+ Some enhancements (e.g. enable pin swapping for pins
without names and devices or subcircuits)
2019-04-02 22:39:29 +02:00
Matthias Koefferlein
89ffd7e3da
WIP: Simple SPICE reader.
2019-04-01 22:46:33 +02:00
Matthias Koefferlein
9613ad72c8
WIP: netlist compare - using it for more tests
...
Issue solved: some circuit pins may not have a net - these
need to be ignored.
Requirement: all pins with a net must be mapped.
Detached pins are not present in the mapping table.
A dummy mapping table was introduced to allow dropping
of pins in the second circuit too.
Output of compare should not depend on memory location
anymore and pin mismatch reporting should include all
pins.
2019-03-31 23:59:43 +02:00
Matthias Koefferlein
06e326dfd9
WIP: netlist compare - some more tests by netlist compare. Needs fixing.
2019-03-31 19:00:42 +02:00
Ruben Undheim
5d26cf4c77
Spelling errors in code and comments fixed
2019-03-31 15:25:18 +00:00
Matthias Koefferlein
b391b4510f
WIP: can compare empty circuits now
...
Empty circuits play a role as abstracts. They
are compared by using the pin names the nets
are attached to. The implementation change is:
* nodes without device terminals or subcircuit pins
are compared through their net properties (count
and name of pins attached)
* some enhancements of the net string serializer
have been made to account for pin name mismatches.
2019-03-31 09:53:51 +02:00
Matthias Koefferlein
2452c72d2d
WIP: netlist compare deployed for netlist extractors
...
Some enhancements were required:
* Clusters left over from joined clusters must not be
turned into nets: this leads to dummy nets.
* null Nets can happen as targets of edges. Don't assert
in this case but treat null nets as identical for both
netlists.
* Don't resolve ambiguous nets if there are options to
do this non-ambiguously.
* logger can be null
* Added compare_netlists to dbTestSupport
2019-03-30 23:04:57 +01:00
Matthias Koefferlein
f06d435b05
WIP: netlist comparer - moved into it's own files.
2019-03-29 00:37:45 +01:00
Matthias Koefferlein
e8d59504dd
WIP: netlist compare - forced matching of circuits.
2019-03-29 00:13:13 +01:00
Matthias Koefferlein
d255617051
WIP: netlist compare - tests for device class equivalence mapping, added Netlist#device_class_by_name
2019-03-28 18:01:22 +01:00
Matthias Koefferlein
cefd6e91cf
WIP: some refactoring, netlist compare. Goal: support explicit device class and circuit mapping.
2019-03-27 23:17:35 +01:00
Matthias Koefferlein
b44a55d901
WIP: netlist compare - pin swapping.
2019-03-26 23:38:36 +01:00
Matthias Koefferlein
46cd80d606
WIP: netlist compare - terminal swapping of devices.
2019-03-26 22:05:08 +01:00
Matthias Koefferlein
e0cb3f6303
WIP: netlist compare - subcircuit matching enhanced.
2019-03-26 20:54:49 +01:00
Matthias Koefferlein
93d2341bc7
WIP: netlist compare
2019-03-26 00:10:10 +01:00
Matthias Koefferlein
fec2348d97
WIP: Net compare.
2019-03-25 23:26:46 +01:00
Matthias Koefferlein
1a30a3919d
WIP: Net compare with subcircuits.
2019-03-25 22:14:16 +01:00
Matthias Koefferlein
55052038ea
WIP: netlist compare
2019-03-24 21:14:08 +01:00
Matthias Koefferlein
bb2d3765b8
WIP: netlist compare, ambiguous net resolution, device mapping.
2019-03-24 00:45:58 +01:00
Matthias Koefferlein
25b7ab9dab
WIP: netlist comparer
2019-03-23 10:31:29 +01:00
Matthias Koefferlein
7042cdb98b
Ported netlist normalization for #246 merge (unit test compatibility windows/linux)
2019-03-22 21:54:45 +01:00
Matthias Köfferlein
d1acd722ad
Merge pull request #246 from KLayout/issue-245
...
Issue 245
2019-03-22 21:49:39 +01:00
Matthias Koefferlein
4e63b38092
Further normalization of Spice test files (unit tests)
2019-03-22 21:47:52 +01:00
Matthias Köfferlein
85808527c6
Merge pull request #244 from KLayout/issue-241
...
Fixed issue-241 (no TextGenerator.default_generator for pymod)
2019-03-22 17:52:22 +01:00
Matthias Koefferlein
5dfc609724
Normalize netlists before compare for windows/linux compatibility.
2019-03-22 17:51:37 +01:00
Matthias Koefferlein
522156b467
Renamed generated .cc files (fonts, glyphs) so they don't need to be excluded in pymod builds.
2019-03-22 07:26:51 +01:00
Matthias Koefferlein
e545d6af3f
Refined solution for issue-245 by providing a better name mapping (checked with ngspice)
2019-03-22 00:05:17 +01:00
Matthias Koefferlein
9356f32026
Fixed issue-245 (support Spice netlist with names instead of numbers)
...
The option is in the Spice writer (writer.use_net_names=true).
2019-03-21 23:34:16 +01:00
Matthias Koefferlein
69282f8fef
Fixed issue-241 (no TextGenerator.default_generator for pymod)
...
The issue was there because the fonts got imported
through Qt Resources. But in pymod there is no Qt.
The solution is to import them though compiled-in
blobs.
2019-03-21 23:11:52 +01:00
Matthias Koefferlein
e424a88c90
WIP: netlist compare algo
...
1.) Can identify transistor netlists without subcircuits
2.) Ambiguities stay unresolved
Next steps: assign ambiguous nets one by one and continue
in case of ambiguitites.
2019-03-21 22:13:23 +01:00
Matthias Koefferlein
c568838bbe
WIP: netlist compare
2019-03-20 23:00:43 +01:00
Matthias Koefferlein
2d4f23abd1
Updated tests.
2019-03-19 00:08:47 +01:00
Matthias Koefferlein
d7eb9162ce
WIP: unified to_string/to_parsable_string of db::Netlist, step 1
2019-03-18 19:28:20 +01:00
Matthias Koefferlein
e4078ca750
String serialization for netlists.
2019-03-18 02:00:33 +01:00
matthias
e361a528a9
DRC layer's flatten now returns a proper DRCLayer object, enabled flat layers to become input also for deep mode L2N
2019-03-13 16:14:27 +01:00
Matthias Koefferlein
57fb764f16
Removed ambiguity for 64bit coordinate builds.
2019-03-12 00:09:52 +01:00
Matthias Koefferlein
01ff0684f2
Tried to fix a compiler issue on CentOS6
2019-03-11 21:33:33 +01:00
Matthias Koefferlein
21f8ba6f35
Tried to fix CentOS6 build fails.
2019-03-11 07:38:51 +01:00
Matthias Koefferlein
6e93942c5b
Fixed build for CentOS6
2019-03-11 07:15:58 +01:00
Matthias Koefferlein
41fdd74189
Custom devices for device extractor - tests in the DRC framework
2019-03-10 22:37:32 +01:00
Matthias Koefferlein
510c675d21
Test cases for DRC-based net extraction and flat extraction
...
Flat extraction requires that texts of subcells are not
considered. Otherwise they pollute the net namespace of
the top cell.
2019-03-10 19:35:13 +01:00
Matthias Koefferlein
ab8107de2d
Bugfix: Spice writer needs 'P' suffix for source/drain area of MOS
2019-03-10 01:26:52 +01:00
Matthias Koefferlein
5ea8c56db3
A minor doc fix.
2019-03-09 23:23:45 +01:00
Matthias Koefferlein
37cc84908e
Updated test because of edge pair normlization
2019-03-09 20:25:45 +01:00
Matthias Koefferlein
6932977273
A few bug fixes and test 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
2019-03-09 19:40:38 +01:00
Matthias Koefferlein
745696507f
Two bug fixes in DRC related to flatten:
...
- Merge semantics wasn't transferred to flat region
- Merge semantics wasn't set at all in deep region
2019-03-09 09:59:23 +01:00
Matthias Koefferlein
b30a9278d6
WIP: updated test cases.
2019-03-06 07:41:44 +01:00
Matthias Koefferlein
8b29b30ff9
WIP: more consistent text handling
...
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.
2019-03-06 00:34:56 +01:00
Matthias Koefferlein
c07d7e92d4
Fixed three compiler warnings.
2019-03-04 17:58:40 +01:00
Matthias Koefferlein
bacd565d05
Bugfix: Spice writer added one pin too much to MOS4 transistors.
2019-03-04 17:26:35 +01:00
Matthias Koefferlein
604a634bf1
Generalization of layout index for LayoutToNetlist
2019-03-03 18:10:52 +01:00
Matthias Koefferlein
49621aa13a
Fixed some documentation issues, DRC doc updated.
2019-03-03 10:17:54 +01:00
Matthias Koefferlein
261fb027fd
GSI binding of antenna check function + tests.
2019-03-02 00:38:51 +01:00
Matthias Koefferlein
8d3b94201e
Antenna check: tests added, 'catchall' diode protection
2019-03-01 23:07:28 +01:00
Matthias Koefferlein
9f4f2d58d7
First version of antenna check.
2019-02-28 23:56:49 +01:00
Matthias Koefferlein
f83278207c
WIP: don't keep a reference to DeepLayer inside DeepShapeStore - that's against the design.
2019-02-28 22:42:40 +01:00
Matthias Koefferlein
4035c804b7
WIP: fixed bugs, added tests.
2019-02-28 22:23:20 +01:00
Matthias Koefferlein
fccdee5186
WIP: provisions for DRC/network extractor integration.
2019-02-28 00:55:06 +01:00
Matthias Koefferlein
36a3540e16
Allow empty regions for device extractor.
2019-02-25 23:51:21 +01:00
Matthias Koefferlein
21ea37f747
Updated test golden data.
2019-02-25 22:52:37 +01:00
Matthias Koefferlein
9b31bd3214
Fixed crash by introducing a new scheme for storing cluster refs
...
The previous implementation was based on the Instance
pointers, but these got invalidated during device cell
construction. Now an explicit copy of the instance is
kept.
2019-02-25 22:36:24 +01:00
Matthias Koefferlein
d4ed21f42a
Just new tests
2019-02-25 22:34:06 +01:00
Matthias Koefferlein
3c6aafcc0c
Region: hierarchical text object detection implementated.
2019-02-23 00:56:55 +01:00
Matthias Koefferlein
c7b17fb65a
Merged master into dvb branch
2019-02-22 23:16:44 +01:00
Matthias Koefferlein
792de1e0e9
'break' function for regions (split polygons into pieces if required)
2019-02-22 23:10:26 +01:00
Matthias Koefferlein
18f74bac1e
Enabled transformations for deep regions/edges/edge pairs - important for handling layouts with different DBUs in DRC
2019-02-22 01:02:48 +01:00
Matthias Koefferlein
03d744cc5b
Further Windows build fixes.
2019-02-20 23:20:40 +01:00
Matthias Koefferlein
0f86e0c8aa
Further Windows build fixes.
2019-02-20 22:56:01 +01:00
Matthias Koefferlein
5d222690bd
Further Windows build fixes.
2019-02-20 22:50:19 +01:00
Matthias Koefferlein
e787a18be2
Attempt to fix Windows build
2019-02-20 22:03:53 +01:00
Matthias Koefferlein
91407ddaa9
Added tests for region processors.
2019-02-20 21:40:43 +01:00
Matthias Koefferlein
503707f361
Refactoring: based results of edge/polygon operations on delegates entirely
2019-02-20 10:10:54 +01:00
Matthias Koefferlein
124c4eb61c
Refactoring: generalization of filter/processor for edges, region
2019-02-20 09:45:38 +01:00
Matthias Koefferlein
0f2d0605a9
Some more refactoring - generalized polygon processing in region.
2019-02-20 01:17:14 +01:00
Matthias Koefferlein
dbe8c62177
Fixed a bug introduced during refactoring: hulls/holes spoiled deep regions and produced Polygons rather than PolygonRefs
2019-02-20 00:33:46 +01:00
Matthias Koefferlein
3dd1ed4c4d
Refactoring of edges processor.
2019-02-19 23:10:14 +01:00
Matthias Koefferlein
496b695ef0
Refactoring of the polygon processing in Region
2019-02-19 22:11:55 +01:00
Matthias Koefferlein
90c1d212a4
Refactoring: new concept for edge/polygon filters
2019-02-19 20:19:10 +01:00
Matthias Koefferlein
7143e75310
Some refactoring: cell variant collector isn't a big template anymore
2019-02-19 19:16:55 +01:00
Matthias Koefferlein
3918172c6a
Fixed a nasty issue with editable mode.
2019-02-18 23:34:46 +01:00
Matthias Koefferlein
7f71cc3a56
Some bug fixes, added tests for hier DRC (at least for what is there yet)
2019-02-18 22:24:34 +01:00
Matthias Koefferlein
9ec6b44c93
Added some tests for the previous commit.
2019-02-18 00:15:26 +01:00
Matthias Koefferlein
b91edbabde
Enabled deep mode for DRC
2019-02-17 23:21:23 +01:00
Matthias Koefferlein
311318c578
Ported edge/edge DRC functions to hierarchical mode.
2019-02-17 18:54:33 +01:00
Matthias Koefferlein
c40f147dc7
Edge/edge and edge/polygon interaction test ported to hierarchical mode.
2019-02-17 18:36:15 +01:00
Matthias Koefferlein
7ef0451ca8
Partial segments of edges converted to hierarchical operations.
2019-02-17 17:53:21 +01:00
Matthias Koefferlein
74006b6208
Hierarchical implementation of extended method for edges
2019-02-17 17:34:31 +01:00
Matthias Koefferlein
ae783a2245
Hiearchical implementation of edge filter.
2019-02-17 16:18:24 +01:00
Matthias Koefferlein
61d766bd4c
Hierarchical implementation of edge to region operations.
2019-02-17 16:05:39 +01:00
Matthias Koefferlein
e6ee1c064e
Hierarchical implementation of edge/edge booleans.
2019-02-17 15:07:16 +01:00
Matthias Koefferlein
8e5bffcf18
Hierarchical angle check.
2019-02-17 11:42:30 +01:00
Matthias Koefferlein
a7bfaac424
Cell variant resolution by propagation, grid check now implementation hierarchically (with propagation)
2019-02-17 10:59:04 +01:00
Matthias Koefferlein
5dc833970b
Hierarchical implementation DRC functions (measurements)
2019-02-16 22:34:36 +01:00
Matthias Koefferlein
5a994fef6d
First steps towards hiearchical DRC - needs testing.
2019-02-16 00:35:29 +01:00
Matthias Koefferlein
6e35e80963
Hierarchical implementation of polygon vs. edge interact
2019-02-15 23:43:45 +01:00
Matthias Koefferlein
78617930dd
Hierarchical implementation of self-overlap merge.
2019-02-13 22:41:12 +01:00
Matthias Koefferlein
ddcfda8761
Some optimization: keep merged state in deep region.
2019-02-13 17:17:03 +01:00
Matthias Koefferlein
b0fc2be96e
Deep regions: some more operations implemented hierarchically
...
- snap (!) - but only for gx == gy
- filtering
- interact/inside/outside/overlap + not_... variants
- edges
2019-02-13 01:07:32 +01:00
Matthias Koefferlein
10f9de8b66
Added test for edge-based clusters, edge connectivity modes
2019-02-12 22:14:50 +01:00
Matthias Koefferlein
98864b1eda
Some refactoring (removed code copies)
2019-02-12 21:27:17 +01:00
Matthias Koefferlein
4b5736ba6a
Added result type template parameter to local hier processor.
2019-02-12 20:32:07 +01:00
Matthias Koefferlein
6404ca6b1d
WIP: Deep edge pairs
2019-02-12 00:08:47 +01:00
Matthias Koefferlein
2d9a3aaaa6
WIP: Hierarchical production of error db's. Needs testing.
2019-02-11 00:11:03 +01:00
Matthias Koefferlein
dd4fcd9e36
WIP: templatized local hierarchical processor.
2019-02-10 18:39:32 +01:00
Matthias Koefferlein
a81a8cdbc8
Modified edge transformation to maintain the orientation paradigm
...
When the transformation is mirroring, edges now swap their
points to maintain the right-is-inside paradigm.
2019-02-10 16:03:46 +01:00
Matthias Koefferlein
a14ca01bac
WIP: more on deep edge collections.
2019-02-10 15:33:14 +01:00
Matthias Koefferlein
f22217b6c4
WIP: deep edges and edge pairs.
2019-02-10 10:22:47 +01:00
Matthias Koefferlein
4abc38a5cc
Test for deep/flat collaboration
2019-02-10 08:28:48 +01:00
Matthias Koefferlein
e8e45b7272
Some tests, smooth and round method of deep region
2019-02-09 23:51:35 +01:00
Matthias Koefferlein
7a86f0d878
Bugfix: size method needs to produce polygon refs so the output is usable as input for booleans too.
2019-02-09 22:55:34 +01:00
Matthias Koefferlein
b6dd149f53
Changed variant suffix to to be consistent with cell name suffix generation in KLayout.
2019-02-09 19:21:14 +01:00
Matthias Koefferlein
1f3af7bbfe
Hierarchical area and perimeter and sizing
...
Area and perimeter computation happens hierarchically
now. Magnified instances are supported.
Sizing is implemented hierarchically.
For anisotropic sizing, orientation variants may be
generated. For both isotropic and anisotropic
magnification variants will be created.
2019-02-09 19:13:54 +01:00
Matthias Koefferlein
bbf7b2768b
WIP: cell variant collecting and building.
2019-02-09 16:29:34 +01:00
Matthias Koefferlein
50c8c067d5
WIP: cell variant formation utility class.
2019-02-07 23:13:23 +01:00
Matthias Koefferlein
decc5ede13
Robustification of Region
...
- Tests for merge
- Locking the layout when writing back the data for
performance improvement
2019-02-05 23:39:31 +01:00
Matthias Koefferlein
7c043dbb99
WIP: fixed DeepRegion implementation somewhat. Needs testing.
2019-02-05 00:25:32 +01:00
Matthias Koefferlein
981d668161
WIP: introduced hierarchical merge and some other hierarchical operations.
2019-02-04 23:43:19 +01:00
Matthias Koefferlein
9c0123df20
Implemented implicit joining of nets with the same label.
2019-02-03 21:34:23 +01:00
Matthias Koefferlein
3f1cd226a5
Made net name optional in l2n format.
2019-02-03 13:33:58 +01:00
Matthias Koefferlein
f9c33733b9
l2n format writer and reader: more compact output
2019-02-03 01:49:48 +01:00
Matthias Koefferlein
1ea687d7b7
More details control over verbosity of region ops
...
Plus: the region op control attributes (threads,
min_coherence etc.) got lost when replacing the
delegate of a region. Now they are maintained in
most cases.
2019-02-03 01:48:14 +01:00
Matthias Koefferlein
99f111fe01
Attempt to achieve reproducibility between MSVC and gcc
...
Applies to dbHierProcessor.cc:
The issue was related to std::unordered_set/map which
(as the name says) is not ordered. The output of the
boolean core computation step is currently dependent
on the order (it's single pass), hence the order of
the contexts matters.
Using ordered sets where possible and explicit
sorting might help.
2019-02-02 22:43:42 +01:00
Matthias Koefferlein
5daf34ed76
Merge remote-tracking branch 'origin/windows-compat' into dvb
2019-02-02 02:36:14 +01:00
klayoutmatthias
1a080cc4d7
Windows build compatibility.
2019-02-02 02:33:48 +01:00
Matthias Koefferlein
c90f7e4af9
Introduced perimeter parameters for MOS3/MOS4
2019-02-02 01:29:28 +01:00
Matthias Koefferlein
11cfe36ed1
Some MSVC build issues fixed (hopefully)
2019-02-01 23:18:54 +01:00
Matthias Koefferlein
f2fff5cca1
Fixed compile issue.
2019-02-01 00:00:10 +01:00
Matthias Koefferlein
efe06046aa
Bugfixes (dbu, global nets)
...
1.) Fixed bug on build_nets when DBU's of target
and source layout were different
2.) Global nets of subcircuits need to be considered
also when they are already connected through other
connections.
2019-01-31 23:50:34 +01:00
Matthias Koefferlein
57305977a4
Spice writer delegate fix
...
- Changed to const & objects in the Spice writer delegate
to non-const & for Ruby/Python reimplementation (as const/non-const
ambiguity is an issue for Ruby/Python we cannot efficiently
work with const refs)
- Updated test data because the previous implementation wasn't
using refs but rather copies of device and device class
objects.
2019-01-31 22:23:58 +01:00
Matthias Koefferlein
4068478887
Implemented SPICE writer + tests.
2019-01-31 00:07:10 +01:00
Matthias Koefferlein
7d06ea83c1
Bugfix: a segfault happened during net cluster formation because make_path was messing up the memory layout of the cluster collections.
2019-01-28 21:29:34 +01:00
Matthias Koefferlein
7e42ff83cd
More fine-tuning of verbosity of log output for local processor.
2019-01-28 21:28:23 +01:00
Matthias Koefferlein
da8b2854de
Some fine-tuning of the timer output verbosity of the edge processor.
2019-01-28 21:27:41 +01:00
Matthias Koefferlein
2da7b218b4
Print errors on log when running device extractor.
2019-01-27 22:01:29 +01:00
Matthias Koefferlein
794c31329a
Bugfix: internal error when running netlist extraction.
2019-01-27 22:00:30 +01:00
Matthias Koefferlein
458d00969c
Fixed issue #228
...
Reason for the problem: the interaction test
has to keep separate "inside" records for both
below and above the scanline, not just once.
With the single record, the step in the
left polygon erased the "inside" condition.
2019-01-27 00:04:15 +01:00
Matthias Koefferlein
fe0d3e28ba
Fixed issue #228
...
Reason for the problem: the interaction test
has to keep separate "inside" records for both
below and above the scanline, not just once.
With the single record, the step in the
left polygon erased the "inside" condition.
2019-01-26 23:59:22 +01:00
Matthias Koefferlein
863c6ba8de
Fixed a hierarchy traversal bug in the hier processor.
2019-01-26 21:53:44 +01:00
Matthias Koefferlein
4712ee0f29
Activated DeviceAbstract for GSI.
2019-01-25 22:40:41 +01:00
Matthias Koefferlein
29264013b0
WIP: more consistent handling of polygon splitting parameters.
2019-01-25 22:28:25 +01:00
Matthias Koefferlein
12aaa2db20
Refactoring: unified handling of splitting parameters.
2019-01-25 21:48:56 +01:00
Matthias Koefferlein
6da9bc5e85
Updated tests after switching to boolean core.
2019-01-25 21:38:45 +01:00
Matthias Koefferlein
707c761bac
WIP: local hierarchical operations: take boolean core rather than shape ref core -> better hierarchical quality. Tests need to be fixed.
2019-01-25 00:21:01 +01:00
Matthias Koefferlein
a635435899
Moved some code
2019-01-23 23:39:43 +01:00
Matthias Koefferlein
1cfa3251ce
Better reproducibility of results in hier processor: hash function of shape ref takes object hash, not pointer hash
2019-01-23 22:19:28 +01:00
Matthias Koefferlein
fba5bed2a3
Performance improvement of device extractor (taking out a O(N**2) loop)
2019-01-23 01:02:22 +01:00
Matthias Koefferlein
68fe668567
WIP: performance improvement.
2019-01-22 07:42:44 +01:00
Matthias Koefferlein
81bf47688e
Renamed device model -> device abstract
2019-01-21 22:37:13 +01:00
Matthias Koefferlein
d79a448eaa
Some performance improvement by eliminating empty objects in the box scanner.
2019-01-21 22:37:02 +01:00
Matthias Koefferlein
f83e1dae43
Refactoring, some bugfixes, GSI bindings for L2N methods.
2019-01-20 23:12:27 +01:00
Matthias Koefferlein
4c7f43d749
More l2n reader tests.
2019-01-20 17:31:58 +01:00
Matthias Koefferlein
dd39168dc8
WIP: Enabled layout generation from read l2n data.
2019-01-20 02:50:23 +01:00
Matthias Koefferlein
a5e2cf58c3
l2n dump format is leaner (device terminal shapes dropped from nets as they are contained in the device abstracts). Some refactoring.
2019-01-19 23:00:19 +01:00
Matthias Koefferlein
8213e71a79
WIP: l2n reader implementation, some bug fixes, refactoring.
2019-01-19 22:19:08 +01:00
Matthias Koefferlein
56bb39a273
LayoutToNetlist enhancements in the area of the dumper.
2019-01-16 22:45:58 +01:00
Matthias Koefferlein
438f50091f
WIP: Refined output format for l2n
2019-01-16 00:49:51 +01:00
Matthias Koefferlein
4cb8982ca2
WIP: added concept of device model.
2019-01-15 23:03:25 +01:00
Matthias Koefferlein
5962d66940
WIP: major enhancements with respect to device handling
...
The device handling in the netlist extractor was now
entirely moved to device cells. New options are introduced
for exporting these cells. Tests have been updated.
2019-01-15 21:33:41 +01:00
Matthias Koefferlein
1af81b74d2
WIP: refactoring - turning devices into cells for better backannotation.
2019-01-14 00:59:47 +01:00
Matthias Koefferlein
3b0f4b3d78
WIP: fixed some compiler issues on certain systems.
2019-01-12 00:27:55 +01:00
Matthias Koefferlein
baf50bd0b1
WIP: refactoring - singularization of classes in separate files.
2019-01-10 23:36:52 +01:00
Matthias Köfferlein
1144899976
Merge pull request #221 from KLayout/issue-200
...
Fixed #200 by introducing layout locking during iteration
2019-01-09 01:11:49 +01:00
Matthias Koefferlein
aeeb6d7c87
Fixed #200 by introducing layout locking during iteration
...
The cause for the problem was that the layout got updated
while iterating causing the mess within the iterator.
This solution is to lock the layout while an iterator
is present. This happens for various Cell and Shapes
iterator, so it's a major enhancement.
2019-01-09 01:06:11 +01:00
Matthias Koefferlein
9fa5618034
Added test for device combination.
2019-01-08 23:49:12 +01:00
Matthias Koefferlein
14cb9090ec
Provide operator-- on SortedCellIndexIterator to fix #220
2019-01-08 21:53:10 +01:00
Matthias Koefferlein
d4d7ea8022
Updated copyright.
2019-01-08 01:09:25 +01:00
Matthias Koefferlein
b0d7f5f7f5
Updated copyright.
2019-01-08 00:58:45 +01:00
Matthias Koefferlein
feb2b69aa9
Merge remote-tracking branch 'origin/master' into dvb
2019-01-08 00:49:16 +01:00
Matthias Koefferlein
fb4048d317
Added RBA tests for four-terminal MOS extraction plus global nets.
2019-01-08 00:17:58 +01:00
Matthias Koefferlein
294f1701b5
Added a test for joining of layers through multiple global net assignment.
2019-01-07 23:57:52 +01:00
Matthias Koefferlein
315bcdd016
WIP: bugfixed netlist extractor with global nets.
2019-01-07 23:33:57 +01:00
Matthias Koefferlein
c80e335cd6
WIP: global nets integration in cluster builder.
2019-01-07 02:08:59 +01:00
Matthias Koefferlein
a4f0fd665e
Provided a solution for connectivity through global nets.
2019-01-06 17:50:51 +01:00
Matthias Koefferlein
6cf7558384
WIP: preparations for global net extraction
2019-01-06 17:04:13 +01:00
Matthias Koefferlein
64c2548ab8
WIP: first steps towards global nets.
2019-01-06 15:28:40 +01:00
Matthias Koefferlein
eb435d5d85
WIP: refactoring - separated pins of net into outgoing and subcircuit.
2019-01-06 12:53:22 +01:00
Matthias Koefferlein
261b14a260
WIP: GSI binding of LayoutToNetlist::build_nets
2019-01-06 02:15:04 +01:00
Matthias Koefferlein
8d51d1e4bb
WIP: better optimization of hierarchical net output.
2019-01-06 01:54:36 +01:00
Matthias Koefferlein
ec3a3b0f8c
WIP: added ability to export nets to layouts.
2019-01-06 01:32:20 +01:00
Matthias Koefferlein
bc4f9efa5d
One more test for probing with a slightly more complex hierarchy.
2019-01-05 23:21:37 +01:00
Matthias Koefferlein
f86f8149eb
Fixed a bug that caused a segfault in the Layout2Netlist object (array repo references to original layout rather than to the working layout)
2019-01-05 22:40:53 +01:00
Matthias Koefferlein
15b79c9ddb
IMPORTANT BUGFIX: array repo handling
...
The issue: when cloning an array, the
"in_repository" flag might be left set. This
makes the system think the array is kept in
a repo. In the best case this creates a
memory leak.
2019-01-05 21:55:06 +01:00
Matthias Koefferlein
6e468b43e0
WIP: bugfix - local to instance interaction did shortcut too early.
2019-01-05 10:12:55 +01:00
Matthias Koefferlein
c31c87916c
WIP: bugfix - array reference were not always considered correctly.
2019-01-05 01:34:10 +01:00
Matthias Koefferlein
ad6d9b5715
WIP: provide a less memory intensive way to deliver shapes from nets.
2019-01-04 17:41:09 +01:00
Matthias Koefferlein
e439d50111
WIP: hier netlist processort: performance improvement in instance-to-instance checking, leaner output of net shapes.
2019-01-04 08:03:31 +01:00
Matthias Koefferlein
72f838f8ee
WIP: performance improvement, maximum confinement of interactions by local search area.
2019-01-04 01:22:24 +01:00
Matthias Koefferlein
3fd99407a3
WIP: bugfix - hierarchical net extractor wasn't considering self-interactions between instance array elements.
2019-01-03 23:25:28 +01:00
Matthias Koefferlein
62d9941c4a
WIP: Bugfix - hierarchy was dropping instances.
2019-01-03 22:09:19 +01:00
Matthias Koefferlein
20799026d1
WIP: bugfix in net extraction (wrong hierarchy treatment)
2019-01-03 18:26:18 +01:00
Matthias Koefferlein
76330bea3a
Save some memory on net shape retrieval.
2019-01-02 23:23:04 +01:00
Matthias Koefferlein
ec3198c466
Netlist extraction performance improvement by taking a shortcut for local cluster/child cell cluster interactions.
2019-01-01 22:39:22 +01:00
Matthias Koefferlein
6a710a9efb
Fixed an internal error that happened if additional layers got added to the working shape set.
2019-01-01 19:19:53 +01:00
Matthias Koefferlein
7898ec37cd
Bugfix: netlist extractor did loose some connections.
2019-01-01 17:23:11 +01:00
Matthias Koefferlein
fed7a4bfed
Some performance improvement for the net extractor.
2019-01-01 13:07:40 +01:00
Matthias Koefferlein
060abc056e
Fixed a memory corruption issue from the Netlist destructor.
2018-12-31 17:33:14 +01:00
Matthias Koefferlein
37d8f0bfca
Added hierarchical progress reporting for more detailed progress.
2018-12-31 16:41:32 +01:00
Matthias Koefferlein
509de593e6
Removed a compiler warning.
2018-12-31 01:42:55 +01:00
Matthias Koefferlein
0cc340cf4f
Once more being nice to picky compilers ...
2018-12-31 01:09:13 +01:00
Matthias Koefferlein
b75125f7c2
Please picky compilers (once more) ..
2018-12-31 00:50:43 +01:00
Matthias Koefferlein
e3279b754b
Please picky compilers ..
2018-12-31 00:00:15 +01:00
Matthias Koefferlein
9c607d7663
Added a first version of the layout to netlist extraction feature
...
The main entry point is RBA::LayoutToNetlist which is the
GSI binding for the layout to netlist extractor. For a first
impression about the abilities of this extractor see the
Ruby tests in testdata/ruby/dbLayoutToNetlist.rb.
The framework itself consists of many classes, specifically
- RBA::Netlist for the netlist representation
- RBA::DeviceClass and superclasses (e.g. RBA::DeviceClassResistor and
RBA::DeviceClassMOS3Transistor) for the description of devices.
- RBA::DeviceExtractor and superclasses (i.e. RBA::DeviceExtractorMOS3Transistor or
the generic RBA::GenericDeviceExtractor) for the implementation of the
device extraction.
- RBA::Connectivity for the description of inter- and intra-layer connections.
2018-12-30 22:43:56 +01:00
Matthias Koefferlein
f989a85642
WIP: introduced Circuit::is_external_net
2018-12-30 18:44:30 +01:00
Matthias Koefferlein
72a140957d
WIP: added test for recursive net shape retrieval
2018-12-30 18:22:45 +01:00
Matthias Koefferlein
16a2b1982d
WIP: added one more level of abstraction to layout-to-netlist extraction (db::LayoutToNetlist) for easier use.
2018-12-30 17:53:46 +01:00
Matthias Koefferlein
b512f628bc
WIP: specific device extractor and GSI binding.
2018-12-30 14:54:59 +01:00
Matthias Koefferlein
ec7ab8e01d
WIP: moved code.
2018-12-30 14:15:58 +01:00
Matthias Koefferlein
c841b84867
WIP: some minor refactoring.
2018-12-30 13:37:52 +01:00
Matthias Koefferlein
a787204e77
WIP: connect and disconnect terminal by name in GSI
2018-12-30 13:28:11 +01:00
Matthias Koefferlein
293c6f496e
WIP: more query functions for netlist classes (i.e. net by name, device by name etc.), some refactoring, GSI bindings, tests.
2018-12-30 13:00:03 +01:00
Matthias Koefferlein
425acda31a
WIP: GSI binding of device extractor classes.
2018-12-30 11:32:33 +01:00
Matthias Koefferlein
c571535e55
WIP: standard device classes, added GSI binding plus tests.
2018-12-29 23:48:31 +01:00
Matthias Koefferlein
44b5b2742e
WIP: tests for specialized device classes and device combination
2018-12-29 22:58:29 +01:00
Matthias Koefferlein
45b35f3aae
WIP: to_string for netlist, tests, some bugfixes on device combination.
2018-12-29 22:18:58 +01:00
Matthias Koefferlein
edbafae43e
WIP: make top level pins for named nets and netlist purging. Tests.
2018-12-29 20:50:35 +01:00
Matthias Koefferlein
54adb84e27
WIP: locking of netlist for better performance.
2018-12-29 01:04:48 +01:00
Matthias Koefferlein
d57ede441c
WIP: netlist topology - children, parents, top-down and bottom-up iteration.
2018-12-29 00:48:28 +01:00
Matthias Koefferlein
2f48479838
WIP: a bit of simplification, renaming of methods, parents for subcircuits, devices. References for circuits pointing to subcircuits.
2018-12-28 22:51:11 +01:00
Matthias Koefferlein
a5b9cbfe5b
WIP: device extractor now declares it's layers, passing layers by name supported now.
2018-12-28 01:53:27 +01:00
Matthias Koefferlein
c665d6aceb
WIP: introduced error messaging for device extractor.
2018-12-28 01:06:17 +01:00
Thomas Ferreira de Lima
fcc05d5b9d
Bugfix: gsi method db Technology.load pointing to save
2018-12-27 16:26:46 -05:00
Matthias Koefferlein
411c18cdb4
WIP: also test parameter extraction in device extraction test.
2018-12-27 21:06:35 +01:00
Matthias Koefferlein
473c90f99d
WIP: some refactoring: splitting of big methods, documentation
2018-12-27 19:06:16 +01:00
Matthias Koefferlein
1c41c43b95
WIP: rename netlist extractor test.
2018-12-27 10:58:48 +01:00
Matthias Koefferlein
d6473b4d84
WIP: moved netlist extractor into right place.
2018-12-27 10:57:46 +01:00
Matthias Koefferlein
8b2902c31b
WIP: introduced expanded net name
2018-12-27 10:43:25 +01:00
Matthias Koefferlein
639b0026d3
WIP: some refactoring for better consistency and easier usage of the device extractor.
2018-12-27 10:33:08 +01:00
Matthias Koefferlein
bfae347ffb
WIP: renaming sub_circuit->subcircuit for consistency
2018-12-27 02:02:17 +01:00
Matthias Koefferlein
f0f620b1cd
WIP: added subcircuit IDs for easier referencing.
2018-12-27 01:58:34 +01:00
Matthias Koefferlein
795a77f7ce
WIP: take care of the property name used for device terminal annotation.
2018-12-27 01:39:28 +01:00
Matthias Koefferlein
62ffcd38e6
WIP: refactoring of the netlist property thing. Now it's internal and there is only the device terminal property. The property also does not store device pointers but just IDs
2018-12-27 01:27:58 +01:00
Matthias Koefferlein
f5071d3254
WIP: some more refactoring.
2018-12-27 01:03:52 +01:00
Matthias Koefferlein
2171b98bd8
WIP: introduced device IDs
2018-12-27 00:59:44 +01:00
Matthias Koefferlein
724d1bc255
WIP: some small refactoring.
2018-12-27 00:32:40 +01:00
Matthias Koefferlein
7e4868dcf8
WIP: some small refactoring.
2018-12-27 00:28:44 +01:00
Matthias Koefferlein
8f568641e0
WIP: some refactoring, added label recognition to net extraction, test enhancements.
2018-12-27 00:20:21 +01:00
Matthias Koefferlein
024907e7ef
WIP: first test for device extraction.
2018-12-26 10:02:34 +01:00
Matthias Koefferlein
1db5ad016c
WIP: added first tests for device extraction.
2018-12-26 00:39:46 +01:00
Matthias Koefferlein
f342bdd83a
WIP: added some convenience methods.
2018-12-26 00:39:34 +01:00
Matthias Koefferlein
ec65d293e3
WIP: moved some GSI specific methods into the C++ classes because they are of general use.
2018-12-26 00:38:35 +01:00
Matthias Koefferlein
bfc0e24d50
WIP: fixed some compiler warnings.
2018-12-26 00:36:34 +01:00
Matthias Koefferlein
5c18424c10
WIP: fixed a comment typo.
2018-12-26 00:36:19 +01:00
Matthias Koefferlein
c75a41a1a4
WIP: fixed verbosity of some output.
2018-12-26 00:34:57 +01:00
Matthias Koefferlein
88c60420d0
WIP: fixed verbosity of some output.
2018-12-26 00:34:34 +01:00
Matthias Koefferlein
195324295d
WIP: tests for new net predicates.
2018-12-25 20:56:08 +01:00
Matthias Koefferlein
3d9712c53a
WIP: implementation of device class and GSI bindings. Added some network attributes and predicates (is_floating, is_internal, pin_count, terminal_count)
2018-12-25 20:46:06 +01:00
Matthias Koefferlein
4f8416766c
WIP: renamed port -> terminal for devices. This is correct technical term. A port is a two-terminal entity.
2018-12-25 20:19:37 +01:00
Matthias Koefferlein
9c9d99da7c
WIP: introduced device combination support hints.
2018-12-25 19:45:34 +01:00
Matthias Koefferlein
a7a2eea905
WIP: MOS3 and MOS4 devices
2018-12-25 19:41:29 +01:00
Matthias Koefferlein
33e2fb8dc1
WIP: refinement of device extraction algorithm
2018-12-25 02:17:41 +01:00
Matthias Koefferlein
97a1abb73f
WIP: implementation of basic device classes, device extractor.
2018-12-25 02:02:18 +01:00
Matthias Koefferlein
792a420e23
WIP: purge_nets and combine_devices for db::Netlist, GSI bindings.
2018-12-25 00:25:07 +01:00
Matthias Koefferlein
d9b0b2f775
WIP: Ability to redefine device combination in Ruby (GenericDeviceClass)
2018-12-24 17:22:59 +01:00
Matthias Koefferlein
764667d8e8
WIP: added algorithm for combining devices - needs testing.
2018-12-24 16:55:22 +01:00
Matthias Koefferlein
e3b795e334
Unique ID of device class objects, netlist reference in device class.
2018-12-24 13:52:17 +01:00
Matthias Koefferlein
eb6b043c3b
Parameter values of db::Device/db::DeviceClass
2018-12-24 13:39:19 +01:00
Matthias Koefferlein
c5222c26e3
Added DevicePortProperty class with tests and GSI binding
2018-12-24 01:31:06 +01:00
Matthias Koefferlein
aa5e885215
Added Ruby tests for GSI binding of db::Netlist classes
2018-12-24 00:08:34 +01:00
Matthias Koefferlein
3c2c72d9ed
WIP: GSI binding of db::Netlist at al
2018-12-23 22:31:26 +01:00
Matthias Koefferlein
9a9482d7c7
Added netlist editing features.
2018-12-22 23:12:45 +01:00
Matthias Koefferlein
e51a3a9ed9
Dual netlist representation (nets attached to pins and ports).
2018-12-22 00:29:44 +01:00
Matthias Koefferlein
654afa3ec2
Upward references for db::Net and db::Circuit.
2018-12-21 22:13:37 +01:00
Matthias Koefferlein
83a38037e5
Added cluster_id property to db::Net
2018-12-21 21:53:48 +01:00
Matthias Koefferlein
80999475f4
Added trans and name attributes to db::SubCircuit
2018-12-21 21:47:27 +01:00
Matthias Koefferlein
4dd17c3cd4
WIP: added tests for dbNetlist classes.
2018-12-20 23:29:01 +01:00
Matthias Koefferlein
18346945df
WIP: some refactoring.
2018-12-20 22:11:20 +01:00
Matthias Koefferlein
d78a25efe4
WIP: new classes for netlist representation.
2018-12-19 23:41:39 +01:00
Matthias Koefferlein
2c4e84fdf2
WIP: netlist property framework
...
- NetlistProperty is the base class for objects that can
be attached to shapes for annotation
- First property type implemented: net name is a way
to annotate net names
2018-12-18 23:56:01 +01:00
Matthias Koefferlein
c10dfee984
Merge branch 'dvb' of https://github.com/klayoutmatthias/klayout into dvb
2018-12-17 20:31:34 +01:00
Matthias Koefferlein
7ceb4ed076
Fixed an issue with the deep region: the layout pointer is not a good key for the backannotation cache. So we better use the unique ID - a concept introduced herein.
2018-12-17 20:31:24 +01:00
Matthias Koefferlein
69d75e233d
Enabled build without qt, Ruby and Python
2018-12-16 23:50:34 +00:00
Matthias Koefferlein
ef0e0d38c2
WIP: property collection in net clusters, more tests.
2018-12-09 23:24:32 +01:00
Matthias Koefferlein
eb8abaf5a5
Some refactoring of net processor
...
- introduced concept of root cluster
- recursive shape iterator for clusters
2018-12-09 00:54:08 +01:00
Matthias Koefferlein
df44c364ea
WIP: network processor: net backannotation into original hierarchy.
2018-12-08 01:55:02 +01:00
Matthias Koefferlein
6a2ddcda82
Net processor: Added timing, rearrangement as preparation for parallelization
2018-12-07 23:21:38 +01:00
Matthias Koefferlein
e894724605
Some more debugging and more test cases. Net processor starts getting stable ...
2018-12-05 23:14:06 +01:00
Matthias Koefferlein
6849a2723d
WIP: added test cases for multi-level cross-hierarchy interactions.
2018-12-04 23:33:04 +01:00
Matthias Koefferlein
10f7750a89
WIP: more tests, some debugging.
2018-12-04 23:21:19 +01:00
Matthias Koefferlein
37fad6da97
WIP: hier network processor - some debugging, more tests.
2018-12-04 22:30:18 +01:00
Matthias Koefferlein
42f153672b
WIP: proceed with debugging of hier network processor
2018-12-03 23:02:01 +01:00
Matthias Koefferlein
5a48ac3974
WIP: some refactoring, joining of clusters by child clusters. Needs testing.
2018-12-03 22:05:54 +01:00
Matthias Koefferlein
e8c86834cb
WIP: hier network - a first testcase.
2018-12-03 00:17:04 +01:00
Matthias Koefferlein
1e4b2b414e
WIP: built test bench
2018-12-02 23:58:47 +01:00
Matthias Koefferlein
7e36018356
WIP: hierarchical net clusters - some testing
2018-12-02 23:05:58 +01:00
Matthias Koefferlein
22651b83c0
WIP: hierarchical net clusters - needs testing
2018-12-02 22:39:53 +01:00
Matthias Koefferlein
0e4eab2dce
WIP: hierarchical net clusters.
2018-12-02 22:26:03 +01:00
Matthias Koefferlein
f7f9f4f1fc
WIP: hier network processor: local cluster set
2018-12-02 12:55:54 +01:00
Matthias Koefferlein
e918cc74b0
WIP: tests for cluster in hierarchical network processor.
2018-12-02 10:41:37 +01:00
Matthias Koefferlein
59d1aead59
WIP: new classes for hier network processor.
2018-12-02 01:30:56 +01:00
Matthias Koefferlein
3609bdda81
WIP: first steps for network processor.
2018-12-01 09:38:16 +01:00
Matthias Koefferlein
970f22960f
WIP: enabled tests in editable mode too.
2018-11-28 00:00:06 +01:00
Matthias Koefferlein
6e52c37a1e
WIP: Fixed another build issue (ambiguous overload)
2018-11-26 22:28:29 +01:00
Matthias Koefferlein
345ff27854
Fixed a small build issue (ambiguous parameters)
2018-11-26 21:29:09 +01:00
Matthias Koefferlein
5c7cd02af3
Merge remote-tracking branch 'remotes/origin/pymod' into net-extract
2018-11-25 23:16:56 +01:00
Matthias Koefferlein
0352a450b7
Refined solution for #198
2018-11-25 22:43:13 +01:00
Matthias Koefferlein
f4b2a015dc
Fixed #198 (DXF contour stitching renders fuzzy polygons)
2018-11-22 22:19:46 +01:00
Matthias Koefferlein
7073a74aa5
WIP: More on deep regions & hier processor
...
- Splitting of shapes on output of booleans
- A bugfix: error happened when pulling intruders from second-next hier level
- Tests added
- Some TODO comments added
2018-11-22 01:26:03 +01:00
Matthias Koefferlein
06c11d0096
WIP: Deep region XOR implemented.
2018-11-21 00:32:14 +01:00
Matthias Koefferlein
712a390f52
WIP: added ref counting for deep shape layers and layouts
2018-11-21 00:17:14 +01:00
Matthias Koefferlein
fc729fc830
WIP: DeepRegion::add implemented.
2018-11-18 09:58:10 +01:00
Matthias Koefferlein
cfa0e8431c
WIP: implemented AND/NOT in deep region, added tests.
2018-11-17 01:33:58 +01:00
Matthias Koefferlein
a438dfd6f0
WIP: deep region debugged, GSI binding, tests.
2018-11-17 00:16:13 +01:00
Matthias Koefferlein
f5cc8b6018
WIP: added DeepRegion
2018-11-16 01:11:28 +01:00
Matthias Koefferlein
f29fd3dfc6
WIP: moved hierarchical processor into db.
2018-11-15 23:41:44 +01:00
Matthias Koefferlein
04256a2753
WIP: fixed RecursiveShapeIterator unit tests.
2018-11-15 22:59:38 +01:00
Matthias Koefferlein
3f8825cfd1
WIP: Improved design of HierarchyBuilder, added tests.
2018-11-15 22:50:02 +01:00
Matthias Koefferlein
6f4988a764
WIP: first version hierarchy builder
2018-11-14 02:22:53 +01:00
Matthias Koefferlein
2bfccca462
WIP: enhanced recursive shape iterator's push mode.
2018-11-13 23:40:08 +01:00
Matthias Koefferlein
f346e70746
RecursiveShapeIterator now features a push mode
...
This will eventually enable catching a hierarchy
skeleton (with shapes) from a RecursiveShapeIterator.
2018-11-12 23:44:26 +01:00
Matthias Koefferlein
c91f54569a
Provide GSI bindings for the new edge pair support
...
This affects Shapes and Shape. New methods from EdgePairs are added
and minor enhancements of Region and Edges. Ruby tests added
2018-11-10 22:41:40 +01:00
Matthias Koefferlein
255abc5534
Provided new explicit template instantiations required for DRC
2018-11-10 00:44:30 +01:00
Matthias Koefferlein
7a37da91e0
EdgePairs refactoring
...
- Uses a db::Shapes container
- Aligned with db::Edges and db::Region
- With original layer delegate
2018-11-10 00:07:53 +01:00
Matthias Koefferlein
8e19474095
Introduced edge pairs as valid shapes for db::Shapes
2018-11-09 22:59:26 +01:00
Matthias Koefferlein
b9b00a08b5
Many bug fixes after refactoring.
2018-11-09 01:14:22 +01:00
Matthias Koefferlein
ec638c87b4
Refactoring of Edges - compiles again.
2018-11-09 00:39:00 +01:00
Matthias Koefferlein
0a9ab32f81
WIP: fixed initialization code.
2018-11-07 23:08:52 +01:00
Matthias Koefferlein
de6045fdf0
Fixed an initialization issue.
2018-11-07 22:20:57 +01:00
Matthias Koefferlein
009492a2a6
Fixed a linker issue.
2018-11-07 22:19:05 +01:00
Matthias Koefferlein
8107e1bb51
Refactoring: separated sources for db::Region
2018-11-07 22:17:51 +01:00
Matthias Koefferlein
885a440089
Further refactoring: provide adressable polygons.
2018-11-07 02:44:15 +01:00
Matthias Koefferlein
9c92a9c72e
Region refactoring: many unit tests are passing again.
2018-11-07 00:45:29 +01:00
Matthias Koefferlein
e595c32fe1
WIP: made first unit tests functional again.
2018-11-06 00:51:39 +01:00
Matthias Koefferlein
f604d149b5
WIP: next part of region refactoring.
2018-11-05 00:32:04 +01:00
Matthias Koefferlein
7062c4acf5
WIP: next part of region refactoring.
2018-11-05 00:25:16 +01:00
Matthias Koefferlein
5a5051b0dd
WIP: second part of region refactoring.
2018-11-04 23:26:08 +01:00
Matthias Koefferlein
54945105ef
WIP: first part of region refactoring.
2018-11-04 22:56:08 +01:00
Matthias Koefferlein
3392c08d36
Merge branch 'pymod' into net-extract
2018-10-09 23:43:58 +02:00
Matthias Koefferlein
a7846ead9f
Add-on to previous commit: fixes some Python issues
...
The comments for LoadLayoutOptions#layer_map, #cif_layer_map
and #dxf_layer_map have been updated to reflect the new status
of these properties (which have been methods). The tests
are updated accordingly (layer_map() -> layer_map).
2018-10-09 00:18:45 +02:00
Matthias Koefferlein
db981b0f7d
A huge patch to make Windows build functional again after recent updates
...
The issue was: for MacOS/clang, the virtual format-specific
option structs had to be embedded in one compile unit (for RTTI).
In Windows this will lead to link errors since the DLL is not
reachable at build time for the generic reader/writer configuration in
the buddy tools.
The solution is to use GSI methods (provided for scripting) to
set the reader/writer options in a generic way that does not
require linking against the plugin DLLs.
2018-10-08 23:31:22 +02:00
Matthias Koefferlein
121ec46390
Attempt to introduce multithreading into hierarchical processor
...
However, performance does not scale well currently.
2018-10-08 00:10:54 +02:00
Matthias Koefferlein
f7c4aa0348
(Partial) attempt to fix the plugin detection issue on MacOS
2018-10-02 17:36:30 -07:00
Matthias Koefferlein
c75e67268b
Merge branch 'pymod' into net-extract
2018-09-26 21:40:23 +02:00
Matthias Koefferlein
6795de1dbb
Merge remote-tracking branch 'remotes/origin/master' into pymod
...
Provides fixes for issue #166 and #172 .
2018-09-26 21:15:08 +02:00
Matthias Koefferlein
a551300e0d
WIP: Some refactoring (hier processing in extra file), unit tests, bug fixes
2018-09-22 22:32:36 +02:00
Matthias Koefferlein
3214200e17
WIP: code factory
2018-09-22 02:45:56 +02:00
Matthias Koefferlein
b25401c254
Added twofold-typed box scanner.
2018-09-20 23:44:51 +02:00
Matthias Koefferlein
6efdb3a9e1
Added testcase for #166 .
2018-09-17 01:51:23 +02:00
Matthias Koefferlein
f72fda7bae
Added test case for #166 .
2018-09-17 01:48:31 +02:00
Matthias Koefferlein
e9de4252fb
Fixed #166 (internal error when writing GDS file)
...
This fix consists of computing the intersection
points in the split procedure with higher resolution
to avoid topology changes due to snapping on the cut
line.
2018-09-17 01:29:31 +02:00
Matthias Koefferlein
c46bed0785
Some update to fix build issues (this time, Linux)
...
- All platforms support native hash values for long long etc.
with the TR1 containers
- Use non-static, function symbols to force linking.
- Debian package is picky about dates so give them some
in Changelog.
2018-09-10 21:56:20 +02:00
Matthias Koefferlein
ad03533a7b
OASIS tests made robust against hash implementation
...
The text writer was made "normalizing": it will introduce
a certain element order (string sorting). This way, OASIS
files can be compared against golden data without
changes in the order due to different implementation of
hash containers.
2018-09-10 01:16:49 +02:00
Matthias Köfferlein
28f8a1ee7d
Merge branch 'pymod' into pymod-msvc
2018-09-07 22:56:22 +02:00
Matthias Köfferlein
a4562bee71
Also fixed issue with hash value of LayerProperties
2018-09-07 22:39:12 +02:00
Matthias Köfferlein
c53c3ae7cf
Hash value issue with db::Text fixed.
2018-09-07 22:29:54 +02:00
Matthias Köfferlein
1bf4d95388
Further MSVC compatibility
...
String assertions fixed, numerical issue with dbTrans fixed, iterator
assertions fixed.
2018-09-02 19:18:42 +02:00
Matthias Köfferlein
356a468d66
A couple of changes to make MSVC work - not done yet.
2018-09-02 00:40:35 +02:00
Matthias Koefferlein
c9771f54eb
Merge branch 'master' into pymod
2018-09-01 09:37:08 +02:00
Matthias Köfferlein
af50c0f0c3
Many warnings fixed for MSVC
2018-08-29 01:46:18 +02:00
Matthias Köfferlein
860014e3ae
MSVC builds for the first time - still a lot of patches required
...
Some suspicious compiler warnings remain.
2018-08-28 23:19:58 +02:00
Matthias Koefferlein
bcd6c466fb
Fixed #152 (shape count wrong)
2018-08-13 09:30:46 +02:00
Matthias Köfferlein
23d715001b
First steps towards enablement of MSVC2017 for pymod. A lot of things to TODO yet ...
2018-08-04 18:02:39 +02:00
Thomas Ferreira de Lima
cfbcc158bf
adding / and /= operators to Point and Vector types in db [ci skip]
2018-08-02 00:45:34 -04:00
Thomas Ferreira de Lima
a3234e2645
changing dbHash macro from __APPLE__ to __EXT_HASH_DEPRECATED
2018-08-01 22:31:09 -04:00
Thomas Ferreira de Lima
f6d3995d6b
changing ext/hash_(set|map) to unordered_(set|map) to avoid deprecation warning on mac.
2018-08-01 15:51:05 -04:00
Matthias Koefferlein
ddfb084a8d
Bugfix: also recognize plugins when the main binary is installed in a different place than the libs.
2018-07-29 14:56:19 +02:00
Matthias Koefferlein
98ecc9e47b
Fixed a typo, force update of unit tests on Jenkins.
2018-07-29 14:07:02 +02:00
Matthias Koefferlein
3fb568671d
A little refactoring - central place for DLL/.so path detection
2018-07-29 10:20:48 +02:00
Matthias Koefferlein
11627486d6
More verbose messages on plugin loading.
2018-07-29 02:36:25 +02:00
Matthias Koefferlein
c9859b4f8f
Fixed some issues with long int emulation. Using long int as substitute for __int128
2018-07-24 22:08:30 +02:00
Matthias Koefferlein
8578918764
Updated PolygonTools test with recent edge processor update.
2018-07-23 20:28:01 +02:00
Matthias Koefferlein
6b48b2bb3d
Fixed Edge unit tests.
2018-07-23 19:37:36 +02:00
Matthias Koefferlein
f05b3249ca
Fixed fast EdgeProcessor unit tests with recent update.
2018-07-23 19:36:00 +02:00
Matthias Koefferlein
2178b72704
Refined test for 74 issue for different orientations.
2018-07-23 19:12:12 +02:00
Matthias Koefferlein
5741a120e9
More precise point/edge interaction for scanner
2018-07-22 22:52:04 +02:00
Matthias Koefferlein
efd9e47c1f
Attempt to fix a scanline issue.
2018-07-22 18:49:17 +02:00
Matthias Koefferlein
20d1d0500f
Fixed #142 (Issue with RBA::RecursiveShapeIterator#region=)
2018-07-12 21:16:14 +02:00
klayoutmatthias
616c2942e1
WIP: made pymod functional on Windows (without Qt). Tests pass.
2018-07-10 23:34:30 +02:00
Matthias Koefferlein
772062e33e
WIP: fixed path generation in db::init in non-Qt case.
2018-07-09 00:43:49 +02:00
Matthias Koefferlein
260243a6d9
WIP: Fixed PCB import for non-Qt builds, added missing file.
2018-07-08 23:44:36 +02:00
Matthias Koefferlein
3acb7b6920
Fixed documentation (XML parser error) of RBA::TextGenerator.
2018-07-06 00:58:26 +02:00
Matthias Koefferlein
2b64c4bf82
Bugfix: multithread-safety for gsi::Proxy (required for the tiling processor use case).
2018-07-06 00:56:34 +02:00
Matthias Koefferlein
803a29037a
Added test for reproducing threading issue on TP
2018-07-06 00:09:22 +02:00
Matthias Koefferlein
bbfcd9cf9e
Made normal build work again.
2018-07-03 01:49:06 +02:00
Matthias Koefferlein
a82adbbe83
Massive reduction of Qt dependencies, but also massive refactoring.
2018-07-03 00:51:36 +02:00
Matthias Koefferlein
239b7ca3ff
First (major) steps towards a Qt-less basic build.
2018-07-02 18:20:20 +02:00
Matthias Koefferlein
94387529d6
Fixed #134
...
The issue was caused by an internal error in the edge processor.
Effectively the weak attractor scheme was causing this problem.
As the weak attractors are making things worse rather than
better I dropped them.
In theory, the weak attractors render an edge undisturbed by
neighboring intersection points, but in cases or parallel edges
this lead to problems: omitting cut points violates the output
edge configuration warranties the the polygon stitcher fails.
In addition, to maintain the solution for bug #74 , the cut point
capture condition was relaxed, so that edge crossing the exact
corner of the snapping rectangle of a point are not considered
captured.
2018-06-26 01:04:20 +02:00
Matthias Koefferlein
da65851ee2
Public declaration of path::to_string
2018-06-24 14:11:23 +02:00
Matthias Koefferlein
f7843410a0
Public declaration of path template instantiation
2018-06-24 14:08:31 +02:00
Matthias Koefferlein
4c90d98750
WIP: Fixed windows build.
2018-06-17 10:27:54 +02:00
Matthias Koefferlein
7e56ce23e5
WIP: Moved net tracer into plugin, GSI is now in db module.
2018-06-16 00:56:35 +02:00
Matthias Koefferlein
9e972876fe
WIP: correctly assigned db module to technology in GSI
2018-06-15 01:02:26 +02:00
Matthias Koefferlein
41cedf4b45
WIP: fixed the technology refactoring part
2018-06-15 00:59:38 +02:00
Matthias Koefferlein
10cfac3d42
WIP: fixed linker issues.
2018-06-15 00:31:46 +02:00
Matthias Koefferlein
c360f6d4a7
WIP: first steps for making technology a db component.
2018-06-14 23:38:23 +02:00
Matthias Koefferlein
5421f77e61
WIP: finished refactoring to plugins for CIF, DXF & OASIS too.
2018-06-13 22:23:27 +02:00
Matthias Koefferlein
9883ea5679
WIP: added streamers plugin structure (partially)
2018-06-13 21:39:39 +02:00
Matthias Koefferlein
77f0197f8a
WIP: fixed test framework.
2018-06-13 00:43:54 +02:00
Matthias Koefferlein
409392d561
WIP: started refactoring the plugin structure. Goal: standalone db module with it's own plugins like LEF/DEF, Gerber, MEBES including GSI bindings.
2018-06-13 00:33:43 +02:00
Matthias Koefferlein
3b5e84a5b2
Fixed documentation of RBA::TextGenerator.
2018-06-04 23:11:02 +02:00
Matthias Koefferlein
655e59d11a
WIP: Fixed build dependencies and code dependencies for Python modules (Qt5)
2018-06-03 19:54:18 +02:00
Matthias Koefferlein
0e29c997f6
WIP: refactoring, fixed documentation and some mistakes.
2018-05-31 01:11:24 +02:00
Matthias Koefferlein
c30d52c801
WIP: fixed a lot of compiler issues after last refactoring.
2018-05-30 01:00:13 +02:00
Matthias Koefferlein
f74f2d3416
Fixed bug #121 (reopening of PCell's in GDS and - partially - in OASIS)
2018-05-17 22:24:32 +02:00
Matthias Koefferlein
89b4397aa4
Fixed some doc typos.
2018-04-28 00:32:23 +02:00