Commit Graph

2048 Commits

Author SHA1 Message Date
Matthias Köfferlein d49689078a Netlist compare: Ambiguity resolution through name matching now default (can be turned off) (#594)
* WIP: some refactoring

* WIP: some refactoring

* Netlist compare: introducing ambiguity resolution by net names

By default now net names are used for resolving ambiguities.
If net names match, they will be used to associate nets if the
choice is ambiguous. This is usually much faster and more reliable
than trying to resolve ambiguities through topology analysis.

This feature can be disabled using "consider_net_names(false)" in
the LVS script.

* Some refactoring, Jenkinsfile modified for better test coverage
2020-06-29 20:52:04 +02:00
Matthias Koefferlein f31803f332 Golden test data for Ubuntu 20 and Windows, pipe output stream for Windows. 2020-06-27 20:52:01 +02:00
Matthias Koefferlein a66cd2a5fc Provide a new option -o for unit test runner which sends the log to a file. This way we don't capture qWarning in the XML JUnit logs. 2020-06-27 20:50:22 +02:00
Matthias a4c02357c3 Pipe streams supported for MacOS too. 2020-06-26 16:09:46 -07:00
Matthias 91eca19b3a Merge remote-tracking branch 'origin/netlist-compare-hardening' into macos-fixes 2020-06-26 08:00:13 -07:00
Matthias Koefferlein acdca4bc73 Updated testdata, added tests for breadth-first compare mode 2020-06-26 16:54:26 +02:00
Matthias Koefferlein f3c549ca73 Net compare algorithm enhancement (pre-analsysis of node connections for shortcut) 2020-06-26 16:33:16 +02:00
Matthias Koefferlein 3a680eb167 WIP: preserving the order of device and subcircuit assignments for test data reuse 2020-06-26 01:01:11 +02:00
Matthias Koefferlein b4732d818d WIP: proper checking of device and subcircuit topologiy - don't entirely rely on the equivalence deduction. 2020-06-26 00:22:30 +02:00
Matthias Koefferlein 08e6df238b WIP: bugfixes, enhancements for netlist compare 2020-06-25 00:53:56 +02:00
Matthias Koefferlein fed563c6d4 Finalization of the net compare algorithm change
This patch will allow the algorithm to consider
device and subcircuit equivalences during tentative
evaluation too.
2020-06-23 22:43:31 +02:00
Matthias Koefferlein 5cb1f63c63 Updated testdata 2020-06-23 21:56:04 +02:00
Matthias Koefferlein 783f3e08df Enhanced ambiguity resolution in netlist compare
The solution consists of considering device and subcircuit
equivalences during the evaluation of the node equivalence.
This will block certain paths and help resolving ambiguities
without creating contradictions.
2020-06-23 00:51:52 +02:00
Matthias Koefferlein d65888fcd9 WIP: better handling of ambiguity resolution 2020-06-22 21:07:29 +02:00
Matthias Koefferlein 408a0b571d Updated test cases 2020-06-22 21:07:16 +02:00
Matthias 29e8e148c9 Merge remote-tracking branch 'origin/netlist-compare-hardening' into macos-fixes 2020-06-21 14:46:51 -07:00
Matthias Koefferlein b742542286 Remove net sorting which is not required and partially based on net pointers 2020-06-21 23:41:16 +02:00
Matthias 338e7ff862 Fixed GSI class registration under the conditions of unreliable RTTI information. 2020-06-20 14:17:13 -07:00
Matthias ae2152eeda Fixed a segfault happening because default-constructed iterators aren't null pointers on MacOS 2020-06-20 13:47:44 -07:00
Matthias 41dcb43a99 Fixed #493 (assertion in MacOS build)
Problem was: default-constructed iterators are not the same in clang's STL
2020-06-20 13:47:06 -07:00
Matthias Koefferlein e71c0dcb23 Fixed a potential segfault. 2020-06-06 10:27:12 +02:00
Matthias Köfferlein 3898810760 Implemented #522 (skip // lines in RVE reader) (#583) 2020-06-05 12:11:44 +02:00
Matthias Köfferlein cb199a489c Implemented #560 (multiple technologies on libraries) (#576)
* First implementation.

* PORT BACK: fixed a few flaws (fixed-width side panel ..)

1. On "save as" the filename displayed in the cell view selection box
   was not updated
2. The width of the library and cellview panel could not be reduced
   below the width of the combo boxes in the headers. So the
   panels might have become pretty wide without being able to reduce
   them.

* Implemented #560 (multiple techs on libraries)
2020-06-05 10:59:10 +02:00
Matthias Köfferlein 96ec395a33 Fixed issue #578 (CIF writer issue with arbitrary angle) (#581)
* Fixed isse #578 (CIF writer issue with arbitrary angle)

* Added missing files.
2020-06-05 10:57:43 +02:00
Matthias Köfferlein ba9cc8820d Implemented #579 (perimeter_only mode for antenna check) (#582)
* WIP: added basic feature and tests.

* WIP: provide tests are GSI binding of new antenna check

* Fixed issue #579 (perimeter_only mode for antenna check)

* Updated DRC doc for 'perimeter_only'
2020-06-05 10:55:38 +02:00
Matthias Koefferlein c0f7e5deb3 PORT BACK: fixed a few flaws (fixed-width side panel ..)
1. On "save as" the filename displayed in the cell view selection box
   was not updated
2. The width of the library and cellview panel could not be reduced
   below the width of the combo boxes in the headers. So the
   panels might have become pretty wide without being able to reduce
   them.
2020-06-01 10:22:54 +02:00
Matthias Köfferlein 6ed321c05f Implemented #570 (perimeter included in antenna check) (#572)
* First implementation of the perimeter factor for antenna check, unit tests.

* Bugfix and unit tests for GSI binding of new antenna check version.

* DRC integration of perimeter-enabled antenna check.

* Enhanced DRC doc for antenna rule
2020-05-30 21:46:41 +02:00
Matthias Köfferlein 5126c6f761 Fixed #565 (SPICE global nets must not produce pins if not present) (#567)
* Fixed #565 (SPICE global nets must not produce pins if not present)

* Fixed unit tests.
2020-05-26 23:48:31 +02:00
Matthias Köfferlein e45037a76a Fixed bug #568 (CIF writer issue with small rotation angles) (#569)
* Fixed bug #568 (CIF writer issue with small rotation angles)

* Fixed the reader bug too which created the rounding issue.
2020-05-25 22:14:02 +02:00
Matthias Köfferlein d503b8e4c8 Fixed #547 (better error messages on some Shape methods, fixed doc). (#550) 2020-05-11 19:25:22 +02:00
Matthias Köfferlein 7a40d36daa Fixed #554: using 64bit coordinates for RVE reader (#555) 2020-05-11 19:25:18 +02:00
Matthias Köfferlein 76c3175576 Fixed #548 (shield issue on space) (#549) 2020-04-30 22:05:17 +02:00
Matthias Köfferlein c08d2f0684 Fixed #544 (ignore duplicate global nets in SPICE reader) (#545) 2020-04-26 16:55:29 +02:00
Matthias Köfferlein 2cb1df74f7 Fixed #539 (internal error on circuit flatten) (#542)
Previously, circuits which connected two pins through
a net could not be flattened. This capability now has
been added.
2020-04-26 16:55:16 +02:00
Matthias Koefferlein eb774c08ab Adjusted unit tests for latest fix. 2020-04-26 16:52:40 +02:00
Matthias Koefferlein a6b4e46ca3 Fixed an issue in the strmxor implementation (output_cell wasn't initialized) 2020-04-26 16:52:31 +02:00
Matthias Koefferlein 75f7b10d35 Fixed a layout diff bug (compare of paths) 2020-04-26 16:52:17 +02:00
Matthias Köfferlein 6526ac0c24 Fixed #524 (failed query leaves layout in invalid state) (#528) 2020-04-05 15:20:10 +02:00
Matthias Köfferlein 17ed8d7d89 Fixed issue #530 (events are mentioned as getters two times) (#531) 2020-04-05 15:20:00 +02:00
Matthias Koefferlein 2ffe3f2fbd MERGE: fixed a typo in the undo title. 2020-04-04 20:34:55 +02:00
Matthias Koefferlein e56aac2859 MERGE: added Spice reader testcase for resistors with model names. 2020-04-04 20:33:44 +02:00
Matthias Koefferlein f5bb371961 MERGE: Enhanced DRC and LVS documentation somewhat 2020-04-04 20:33:37 +02:00
Matthias Koefferlein 0e201f4ddb MERGE: strmxor could not identify layers when one has a name and the other does not (but both have numbers) 2020-04-04 20:31:30 +02:00
Matthias Koefferlein bccc7ee458 Updated unit test 2020-03-29 09:23:52 +02:00
Matthias Koefferlein b4030a3781 Fixed a merge issue. 2020-03-29 00:37:21 +01:00
Matthias Koefferlein 2de479c3b1 Implemented #527 (wildcard layer mapping targets)
commit d77702cd86066f3a97d740a95923fa598c2ff07b
Author: Matthias Koefferlein <matthias@koefferlein.de>
Date:   Sat Mar 28 21:28:39 2020 +0100

    Wildcard expansion feature on layer mapping

    Finished feature, added doc and test.

    The solution is to use placeholder indexes for the
    layer mapping which are substituted by the real
    layers when they are encountered.

commit af60b5f18acfe3c5e2f1d4e6bc6ee752a246dc0d
Author: Matthias Koefferlein <matthias@koefferlein.de>
Date:   Sat Mar 28 19:11:32 2020 +0100

    Preparations for new feature: introduce relative and wildcard target layer specs
2020-03-28 22:54:00 +01:00
Matthias Koefferlein 7f7c7b607a MERGE: documentation enhancements for LVS/DRC 2020-03-28 12:33:09 +01:00
Matthias Koefferlein 3411eeea4c Added one more testcase for join_symmetric_nets 2020-03-28 12:33:07 +01:00
Matthias Koefferlein 8170177608 Fixed #526 - Make scripe debugging more reliable
Problem: the debugger was printing an object's value as string.
The effect is that for big objects "to_s" will deliver huge strings
(e.g. polygons, netlists ...). "inspect" is better (already used
for Python), but it's aliased to "to_s" in Python and Ruby.
Huge strings will stall the debugger.

The solution is to stop this aliasing (Ruby 2.x doesn't do it
itself anymore) and use "inspect" consistently for Python and
Ruby.

Details can still be printed in the console.
2020-03-28 12:33:05 +01:00
Matthias Koefferlein 39bf2a1b38 Provide timing information for Spice reader/writer 2020-03-28 12:33:03 +01:00
Matthias Koefferlein 251220558c Fixed #525 - report true source line in DRC and LVS verbose mode 2020-03-28 12:32:58 +01:00
Matthias Koefferlein c6b48acc76 Some small enhancements
LVS: max_branch_complexity was wrong and missing from doc.

Updated test cases so MSVC 2017 builds should pass.

Windows build.bat updated so debug builds can be made.
2020-03-04 21:48:00 +01:00
Matthias Köfferlein ef4c9313ab Fixed a severe bug in join_symmetric_nets 2020-03-03 22:24:03 +01:00
Matthias Köfferlein 7a60f5957b Enable Qt-less build of unit tests on Windows in debug mode and without iterator assertions 2020-03-03 22:19:31 +01:00
Matthias Koefferlein 6721cb9c5b Merge branch 'issue-482-update' 2020-03-02 18:57:40 +01:00
Matthias Köfferlein 91226230aa
Merge pull request #518 from KLayout/issue-517
Fixed #517 (VIARULE issue in DEF reader)
2020-03-02 18:56:55 +01:00
Matthias Koefferlein 8d665bd456 Fixed a minor segfault (DXF reader while having log level verbose), updated Changelog 2020-03-02 18:56:29 +01:00
Matthias Koefferlein 04ae4d5d28 Updated fix (wasn't correctly representing some via pattern) 2020-03-02 00:20:15 +01:00
Matthias Koefferlein cec1910bf0 Added tests. 2020-03-02 00:13:44 +01:00
Matthias Koefferlein c9955d39a6 Fixed issue-517 2020-03-02 00:09:41 +01:00
Matthias Koefferlein a5a4ae511d Some more tests, a (unlikely) segfault fixed 2020-02-28 23:19:27 +01:00
Matthias Köfferlein 82686b307c
Merge pull request #515 from KLayout/issue-471
Implemented #471 (leaner way to specify compare tolerances)
2020-02-27 18:46:15 +01:00
Matthias Köfferlein 56868eda85
Merge pull request #514 from KLayout/issue-482
Implemented #482 (split gate option aka join_symmetric_nets)
2020-02-27 18:46:02 +01:00
Matthias Köfferlein d824956a4f
Merge pull request #510 from KLayout/issue-486
Fixed #486 ('save as' feature for macros)
2020-02-27 18:45:50 +01:00
Matthias Koefferlein 78050b1e5f Implemented #471: Updated doc. 2020-02-27 17:30:23 +01:00
Matthias Koefferlein 02e38a2cd1 Merge branch 'issue-482' into issue-471 2020-02-27 15:49:35 +01:00
Matthias Koefferlein d315f84cab Attempt to fix Windows build error. 2020-02-27 15:46:34 +01:00
Matthias Koefferlein 8b73dffcfe Implementation done. Added tests. 2020-02-27 15:40:06 +01:00
Matthias Koefferlein 4cfe6ba2b9 Implemented #482: updated documentation. 2020-02-27 14:34:16 +01:00
Matthias Koefferlein 75e936bd64 Added one more test case. 2020-02-27 13:46:52 +01:00
Matthias Koefferlein 76f5e19ed8 Enhanced LVS with 'join_symmetric_nets'. Updated doc. Added test. 2020-02-27 13:35:36 +01:00
Matthias Koefferlein 3b31109367 Added GSI binding for join_symmetric_nets, added method to get circuits by name pattern. 2020-02-27 12:17:35 +01:00
Matthias Koefferlein 25d1a65b21 Small enhancement: unit tests work also with verbosity >0 now. 2020-02-27 01:29:10 +01:00
Matthias Koefferlein a46cd305c6 WIP: bug fix for symmetry detection (should consider different pins to break symmetry). Added tests. 2020-02-27 00:52:06 +01:00
Matthias Koefferlein b35429291e WIP: join_nets implemented, join_symmetric_nets: enhanced detection of symmetric nets. 2020-02-27 00:52:03 +01:00
Matthias Koefferlein 08af8d85c4 WIP: first algorithm - is capable of deriving the 'resistor cube' symmetry. 2020-02-27 00:52:00 +01:00
Matthias Koefferlein 58de38739a WIP: some refactoring, debugging output for netlist compare
Abstraction: a central getenv() feature to wrap all the system-specific things

Netlist compare debug and options can be enabled through environment variables:

KLAYOUT_NETLIST_COMPARE_DEBUG_NETCOMPARE=1: print netlist compare debug info
KLAYOUT_NETLIST_COMPARE_DEBUG_NETGRAPH=1: print net grapg
KLAYOUT_NETLIST_COMPARE_CASE_SENSITIVE=1: make netlist compare case sensitive
2020-02-27 00:51:55 +01:00
Matthias Koefferlein 7d7c9aecc6 Fixed #486 ('save as' feature for macros) 2020-02-23 14:10:26 +01:00
Matthias Koefferlein 2564b11da3 Fixed #478 (shapes method can't be used in queries) 2020-02-23 13:36:20 +01:00
Matthias Koefferlein d01759aa60 Implemented #500 (limit number of shapes in net tracer) 2020-02-23 11:02:15 +01:00
Matthias Köfferlein 1992fc762a
Issue #489 (Pin names as shape properties) (#507)
* Fixed #489 (LEF/DEF reader provides pin names as properties)

* Removed vi swap file

* #489 fixed (LEF pins also get properties, added tests)
2020-02-23 00:29:12 +01:00
Matthias Köfferlein 946af71f2f
Fixed issue #473 (fast accessors to image pixel and mask data through… (#503)
* Fixed issue #473 (fast accessors to image pixel and mask data through arrays)

* Updated Jenkinsfile to not publish a PR build

* Updated Jenkinsfile to not publish a PR build
2020-02-21 18:38:08 +01:00
Matthias Köfferlein 7c89192ad8
Fixed #502 (issues with AbsoluteProgress) (#504)
* Fixed #502 (issues with AbsoluteProgress)

* Updated Jenkinsfile to not publish a PR build
2020-02-21 18:37:50 +01:00
Matthias Köfferlein 69e7704430
Issue 501 (#505)
* Fixed #501 (more Qt ownership management) - this commit contains some more changes because I had to regenerate the Qt binding sources.

* Fixed #501 (Qt object ownership transfer) - repairs, added tests

* Updated Jenkinsfile to not publish a PR build

* Update Jenkinsfile - exclude PR's from build
2020-02-21 18:25:22 +01:00
Matthias Köfferlein 161068c70a
Merge pull request #492 from KLayout/issue-491
Issue #491 fixed (maybe)
2020-02-16 10:15:53 +01:00
Matthias Koefferlein 961a36a7ad Issue #491 fixed (maybe) 2020-02-03 22:38:45 +01:00
Matthias Köfferlein aba55148db
Merge pull request #483 from KLayout/issue-481
Fixed issue #481 (duplicate DRC markers)
2020-01-28 23:48:33 +01:00
Matthias Köfferlein 607cdbd71b
Merge pull request #484 from KLayout/issue-476
Issue 476
2020-01-28 23:48:21 +01:00
Matthias Koefferlein de5f092d37 Merge branch 'master' of https://github.com/KLayout/klayout 2020-01-28 23:46:42 +01:00
Matthias Koefferlein cc37ecfd17 Fixed titles of file dialogs. 2020-01-28 23:45:40 +01:00
Matthias Koefferlein 21397283f3 Fixed #477 2020-01-23 18:38:41 +01:00
Matthias Koefferlein eeadfcea7b Fixed #476 2020-01-23 17:56:20 +01:00
Matthias Koefferlein b1716fc8c4 Fixed issue #481 2020-01-23 17:26:12 +01:00
Matthias Koefferlein 925b7c2f33 Removed incorrect regexp substitution. 2020-01-23 17:22:58 +01:00
Matthias Koefferlein fb0d06602e Attempt to fix the issue
In additon, some actions like display of the netlist
browser are suppressed until "final" is true for
"_finish".

TODO: Layout#get_info should never segfault.
2020-01-12 23:41:03 +01:00
Matthias Köfferlein 80b0eae937
Merge pull request #469 from KLayout/issue-464
Fixed #464 (problems building a layer node tree with 'add_child')
2020-01-05 01:03:29 +01:00
Matthias Köfferlein db1d05282d
Merge pull request #467 from KLayout/issue-466
Issue 466
2020-01-05 01:03:10 +01:00
Matthias Köfferlein 6a996b6f5b
Merge pull request #465 from KLayout/issue-462
Implemented #462 (Generalize MOS transistor extraction to other gate …
2020-01-05 01:02:54 +01:00
Matthias Köfferlein b012e90def
Merge pull request #470 from KLayout/issue-463
Issue 463
2020-01-05 01:02:32 +01:00
Matthias Koefferlein b8c82c4f8b Updated copyright notice to 2020 2020-01-05 00:59:43 +01:00