Commit Graph

1677 Commits

Author SHA1 Message Date
Matthias Koefferlein 65ea72c569 WIP: netlist cross reference - refactoring of sorting, more robust 2019-05-16 23:26:49 +02:00
Matthias Koefferlein 95caca1dd5 WIP: netlist cross reference - tests and bugfixes 2019-05-16 22:43:28 +02:00
Matthias Koefferlein 924daa65b7 WIP: tests for netlist cross ref. 2019-05-16 00:09:06 +02:00
Matthias Koefferlein a46d991c6f WIP: netlist cross-reference 2019-05-15 23:00:02 +02:00
Matthias Koefferlein 67e68e9e4f WIP: fixed net colorizer 2019-05-13 23:56:49 +02:00
Matthias Koefferlein 829e337462 WIP: prepared dual mode for netlist browser. 2019-05-13 23:50:16 +02:00
Matthias Koefferlein a433361c53 WIP: prepared dual mode for netlist browser. 2019-05-13 23:36:59 +02:00
Matthias Koefferlein 6b7e4c2713 Netlist browser: tree items are sorted now. 2019-05-12 10:13:00 +02:00
Matthias Koefferlein cd34eb19f1 WIP: some refactoring. 2019-05-12 08:52:47 +02:00
Matthias Koefferlein 590f078d6a WIP: cleanup. 2019-05-11 22:37:24 +02:00
Matthias Koefferlein f72790e808 WIP: glob pattern - GSI binding to enable compatible implementations. 2019-05-11 22:35:50 +02:00
Matthias Koefferlein dfb9cdad4f WIP: refactoring of glob pattern 2019-05-11 18:31:42 +02:00
Matthias Koefferlein b171ee5ae1 WIP: refactoring of glob pattern (goal is to support more pattern) 2019-05-11 18:23:31 +02:00
Matthias Koefferlein 72cadf6d5d WIP: more powerful glob pattern 2019-05-11 02:29:38 +02:00
Matthias Koefferlein 252b1551dc Bugfix: strmrun issues
- strmrun did not support x[rb] notation for file type
- x.y.py was rejected because y.py was taken as the suffix
- reason was extension() function for which there is
  an extension_last() now
- but this function is no longer used as the lym::Macro
  object is used now
2019-05-10 23:43:57 +02:00
Matthias Koefferlein 56f6143e4f Added RBA::Technology#clear_technologies 2019-05-10 23:24:04 +02:00
Matthias Koefferlein bfe5c7c2b9 Fixed #265: put CIF at the end of the detection chain
The CIF format is kind of fuzzy and supports a high
degree of syntactic freedom. Hence the format detection
is not quite reliable. Do CIF as last resort.
2019-05-10 23:10:14 +02:00
Matthias Koefferlein 6f689863b6 Fixed MSVC build, fixed unit tests. 2019-05-10 21:09:19 +02:00
Matthias Koefferlein 0f0dd42b4d Refactoring and GSI binding for combined device interface. 2019-05-10 18:32:05 +02:00
Matthias Koefferlein 675a96eb9e WIP: some refactoring. 2019-05-10 00:40:49 +02:00
Matthias Koefferlein dda7ee8b60 WIP: a small refactoring. 2019-05-10 00:18:58 +02:00
Matthias Koefferlein ea28530c55 L2N: combined device persistance (complex concept - needs simplification?) 2019-05-10 00:15:51 +02:00
Matthias Koefferlein db1e813635 WIP: combined devices and geometry/L2N DB representation. Yet to do: device cell transformation beyond vector? 2019-05-09 01:07:54 +02:00
Matthias Koefferlein 9a361ee234 WIP: Support for combined devices 2019-05-08 00:14:08 +02:00
Matthias Koefferlein 2302036d6f Fixed a compiler warning, build compatibility with Qt5 2019-05-06 19:06:06 +02:00
Matthias Koefferlein 1dbb25b2e8 Some refactoring (reuse cell context cache) 2019-05-06 01:54:10 +02:00
Matthias Koefferlein a3da8231a2 Netlist browser fixes
- Reverted sorting of circuits top-down because the solution
  was inconsistent -> needs to be solved by proxy
- Provide a sample transformation for subcircuits without connections
  (potential for refactoring!)
2019-05-06 01:20:00 +02:00
Matthias Koefferlein 99b47f732a Netlist browser enhancements
- better performance when changing layer properties (by deferred
  execution of the callback)
- coloring of nets (net color has precedence)
- sorting of circuits top-down
2019-05-06 00:09:31 +02:00
Matthias Koefferlein 30fdb0089b Integration of netlist extractor with net tracer plugin (-> "trace all nets") 2019-05-05 22:30:07 +02:00
Matthias Koefferlein a48f190bcb Merge remote-tracking branch 'origin/master' into dvb 2019-05-05 01:31:41 +02:00
Matthias Koefferlein c33fd40ec9 Switched l2n format to relative mode by default (relative mode is an option and maybe shorter) 2019-05-04 23:06:18 +02:00
Matthias Koefferlein 655d4bccdd Netlist browser: command line option -mn to open netlist DB from command line. 2019-05-04 22:18:15 +02:00
Matthias Koefferlein 20eb53d626 Netlist browser: Esc now clears the selection rather than closing the browser window. 2019-05-04 22:09:23 +02:00
Matthias Koefferlein 6cf4df1cb1 BUGFIX (general): closing a cellview did not adjust the hidden cell flags properly. 2019-05-04 21:54:06 +02:00
Matthias Koefferlein 4c31d5ed1b Netlist browser: some refactoring, fixed unit tests. 2019-05-04 21:46:25 +02:00
Matthias Koefferlein 00bd297e3b WIP: netlist browser - highlighting of devices, subcircuits 2019-05-04 20:43:21 +02:00
Matthias Koefferlein ceb3d39ddb WIP: netlist browser - device links 2019-05-04 19:39:58 +02:00
Matthias Koefferlein 7e9e0dd5e6 WIP: netlist browser 2019-05-04 19:24:17 +02:00
Matthias Koefferlein bc26e32a68 WIP: netlist browser 2019-05-04 18:48:57 +02:00
Matthias Koefferlein 548f16f1df WIP: tried to provide a more consistent net building feature (here: building hierarchical nets with properties as net annotation - needs cell variants if properties are assigned to subcells too) 2019-05-04 00:37:38 +02:00
Matthias Koefferlein 2aaec56adb WIP: netlist browser - extended the net export scheme of build_net to support net annotation and flattening. 2019-05-03 23:33:37 +02:00
Matthias Koefferlein 062b74aad7 WIP: net export feature, first part 2019-05-02 23:30:44 +02:00
Matthias Koefferlein 18bbc24484 Netlist browser: allow different database units between storage layout and original layout 2019-05-01 23:17:01 +02:00
Matthias Koefferlein 08d1cff797 DRC documentation images updated - have not been made with full hierarchy. Fixed script. 2019-05-01 23:03:14 +02:00
Matthias Koefferlein 71d1f4567c Netlist browser: net icons for connections. 2019-05-01 22:26:05 +02:00
Matthias Koefferlein 086ddeace7 Netlist browser bugfix: show subcircuit nets in coordinate system of subcircuit 2019-05-01 21:42:10 +02:00
Matthias Koefferlein 60216ee3f6 Netlist browser: some bug fixes in search, probe net feature. 2019-05-01 00:24:43 +02:00
Matthias Koefferlein 4e15b3df92 Netlist browser: detailed info box. 2019-04-30 00:18:11 +02:00
Matthias Koefferlein e661bac0a7 Netlist browser: fixed a segfault on 'unload all' 2019-04-28 22:57:06 +02:00
Matthias Koefferlein 0983ebc854 Fixed unit tests. 2019-04-28 21:19:08 +02:00
Matthias Koefferlein c4b5c648b7 Netlist browser: warning if not all shapes are highlighted. 2019-04-28 19:40:55 +02:00
Matthias Koefferlein d68c61394a Netlist browser: find text feature. 2019-04-28 19:22:39 +02:00
Matthias Koefferlein bfea3fdc2f Netlist browser - some bugfixes, multiple selection of nets, colorizing 2019-04-28 16:28:39 +02:00
Matthias Koefferlein f8d09a642b WIP: netlist browser - coloring 2019-04-28 00:41:47 +02:00
Matthias Koefferlein dc3f200119 Aligned net browser config with net tracer. 2019-04-27 00:30:45 +02:00
Matthias Koefferlein c613ddb633 WIP: netlist browser: context menu. 2019-04-26 23:32:26 +02:00
Matthias Koefferlein 97fb852579 WIP: some refactoring. 2019-04-26 23:27:16 +02:00
Matthias Koefferlein b4d5fcbf16 Netlist browser: full information display for single netlist. 2019-04-26 21:51:52 +02:00
Matthias Koefferlein c19dc41506 WIP: netlist browser 2019-04-25 01:47:16 +02:00
Matthias Koefferlein 9ee58b161f WIP: netlist browser 2019-04-25 01:23:36 +02:00
Matthias Koefferlein 5500ca45d8 Icons for netlist browser 2019-04-23 23:34:07 +02:00
Matthias Koefferlein 13cd80376a Fixed a segfault when closing the netlist browser. 2019-04-23 19:52:22 +02:00
Matthias Koefferlein 7f9da5e8de Introduced concept of device class templates
This concept allows to persist at least the standard
(built-in) device classes into L2N DB files. This way
device classes are persisted.
2019-04-23 19:44:07 +02:00
Matthias Koefferlein 46b47ff0d9 WIP: netlist browser - removed self test, is unit test now. 2019-04-22 22:00:47 +02:00
Matthias Koefferlein 0410ae765e WIP: netlist browser - some debugging 2019-04-22 21:53:53 +02:00
Matthias Koefferlein 611cf9eb7b WIP: some refactoring 2019-04-22 21:28:19 +02:00
Matthias Koefferlein 969d4e80cd WIP: netlist browser. 2019-04-22 09:28:26 +02:00
Matthias Koefferlein 5b8a9cf49c WIP: netlist browser 2019-04-22 01:25:48 +02:00
Matthias Koefferlein 59aa5758f5 WIP: netlist browser. 2019-04-21 10:54:25 +02:00
Matthias Koefferlein ae9064021c WIP: netlist browser. 2019-04-21 10:41:20 +02:00
Matthias Koefferlein 20b984cc50 Naming of layers isn't required anymore for connect et al: names are given automatically now. 2019-04-20 20:30:12 +02:00
Matthias Koefferlein 767f6a7c48 WIP: first code pieces 2019-04-20 10:33:56 +02:00
Matthias Koefferlein 8121f70e65 Netlist compare: Net mismatches reported if nets don't match but we still will proceed 2019-04-18 00:01:21 +02:00
Matthias Köfferlein e42b731e41
Merge pull request #262 from KLayout/issue-261
Fixed #261 (iterator must not be incremented while value is used)
2019-04-17 22:15:36 +02:00
Matthias Koefferlein 567769f13d More robust WebDAV test by sorting the order of collection items 2019-04-17 22:01:56 +02:00
Matthias Koefferlein e73c853873 Another fix for CenOS6 builds. 2019-04-17 07:24:31 +02:00
Matthias Koefferlein 0bde41446a Fixed #261 (iterator must not be incremented while value is used) 2019-04-16 23:54:11 +02:00
Matthias Koefferlein 42cb95188d Fixed build issue on CentOS6 2019-04-16 20:48:58 +02:00
Matthias Koefferlein 197d99ab62 Unit test fixed. 2019-04-16 07:10:34 +02:00
Matthias Koefferlein b5d21dadd0 Fixed a segfault in an application test. 2019-04-16 00:09:41 +02:00
Matthias Koefferlein eabf558186 netlist exaction: selective net joining with labels
Now, a glob pattern can be used to identify the labels
which implicitly join nets. Also, net joining now
only happens on top level.
2019-04-15 23:24:27 +02:00
Matthias Koefferlein 3ebdfa83f9 Netlist compare: successfully applied the netlist compare to a bigger example. 2019-04-14 19:38:31 +02:00
Matthias Koefferlein 9f3bea92fb WIP: less strict pin matching (for top levels with/without pins). Fixed tests. 2019-04-14 19:22:07 +02:00
Matthias Koefferlein 699e94a45f WIP: added configuration options (complexity, depth) for net compare 2019-04-14 19:11:42 +02:00
Matthias Koefferlein 92524dcf57 WIP: netlist compare - bugfixed latest version and updated tests. 2019-04-13 19:56:08 +02:00
Matthias Koefferlein 4e85ae7db0 WIP: netlist compare (better backtracking) 2019-04-13 02:48:10 +02:00
Matthias Koefferlein e855d8df35 WIP: fixed unit tests. 2019-04-12 00:31:48 +02:00
Matthias Koefferlein 187baf2941 WIP: enhanced backtracking of netlist compare. 2019-04-12 00:15:36 +02:00
Matthias Koefferlein e03a524fcf WIP: netlist compare, bug fixes. 2019-04-11 00:47:36 +02:00
Matthias Koefferlein c0b1c4f775 WIP: enhanced backtracking for netlist compare 2019-04-11 00:13:19 +02:00
Matthias Koefferlein f34d161e2f WIP: new backtracking algorithm for net matching. 2019-04-09 23:13:40 +02:00
Matthias Koefferlein a3edd95f94 WIP: new backtracking algorithm for net matching. 2019-04-09 22:31:03 +02:00
Matthias Koefferlein 6b6cc5a34f WIP: network compare, debugging output. 2019-04-09 16:44:47 +02:00
Matthias Koefferlein 2e9422a753 Netlist compare: a little less freedom when picking derived net pairs ... 2019-04-08 21:32:41 +02:00
Matthias Koefferlein 7cdd40dabb Netlist compare: more detailed derivation of net assignments from known nets (pairing by deduction) 2019-04-08 21:21:34 +02:00
Matthias Koefferlein be35646c24 Spice reader/writer: more consistent with respect to allowed characters now. 2019-04-08 21:20:22 +02:00
Matthias Koefferlein c0bf5d955c Removed a debug statement. 2019-04-07 11:49:59 +02:00
Matthias Koefferlein c474fa6550 Bugfix: Spice reader needs to transform length units to micrometer 2019-04-07 11:09:08 +02:00
Matthias Koefferlein f6836b96a2 WIP: some enhancements
Spice writer: don't prefix model name with "M"
Added "device_class_mismatch" message to netlist compare
Assertion if device classes or circuits are nil on
"same_..."
2019-04-07 10:15:57 +02:00
Matthias Koefferlein df2bd5e80a Netlist: flatten subcircuits, circuits 2019-04-06 23:36:08 +02:00
Matthias Koefferlein 18ee59023e Speedup of Spice format netlist reader 2019-04-06 21:14:25 +02:00
Matthias Koefferlein 8f1db684c0 Fix: account for rounding errors when doing default compare of device parameters. 2019-04-06 20:33:29 +02:00
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 Köfferlein 6be05609e8
Merge pull request #255 from KLayout/issue-252
Issue 252
2019-04-04 07:31:51 +02:00
Matthias Köfferlein a1bac382dc
Merge pull request #256 from KLayout/issue-251
Fixed #251 - exit handler missing? [skip ci]
2019-04-04 07:30:13 +02:00
Matthias Köfferlein 053db73e85
Merge pull request #257 from KLayout/spell-fixes
Fixed some spelling errors (allow to, allows to)
2019-04-04 07:30:02 +02:00
Matthias Koefferlein 5310a37f75 Fixed #251 - exit handler missing? [skip ci]
RBA::MainWindow::instance.destroyed do
  RBA::MessageBox::info("It's Over!", "The main window was destroyed", RBA::MessageBox::Ok)
end

at_exit do
  puts "It's over!"
end

RBA::Application::instance.aboutToQuit do
  RBA::MessageBox::info("It's Over!", "The main window was destroyed", RBA::MessageBox::Ok)
end
2019-04-03 23:29:40 +02:00
Matthias Koefferlein eacd5fc19d Fixed some spelling errors (allow to, allows to) 2019-04-03 19:15:09 +02:00
Ruben Undheim d287b6958b A few more spelling fixes 2019-04-03 08:23:27 +02:00
Matthias Koefferlein 61a61a2a5a WIP: added lib module to qmake-based python module build
This works:

  import klayout.db
  import klayout.lib
  print(klayout.db.Library.library_names())   # says ["Basic"]

Also works:

  from klayout import *

Does not work:

  # import klayout.lib needs to be done before the libraries
  # are used initially
  import klayout.db
  print(klayout.db.Library.library_names())   # says []
  import klayout.lib
  print(klayout.db.Library.library_names())   # says []
2019-04-03 01:07:22 +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 5fe67e802f Applied Qt binding fix to qt5 as well. 2019-03-23 01:10:01 +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 Koefferlein 8f34a93891 Fixed RBA unit tests (load font from resource) 2019-03-22 21:42:40 +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 Köfferlein 0a3b068443
Merge pull request #239 from KLayout/pointer-to-temp-in-qtbinding
Bugfix: crash on Ubuntu in pya:qtbinding
2019-03-22 07:34:36 +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 Koefferlein de85058ecf Bugfix: crash on Ubuntu in pya:qtbinding
Reason: a reference to a temporary object was passed
to a function. This happened for a default value.
The solution is to create a heap object to such default values.
2019-03-17 18:22:19 +01:00
matthias 4db632b799 Maxbe fixed issue-236
At least it's no longer reproducible with valgrind.
2019-03-13 17:36:30 +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 566746823c Merge remote-tracking branch 'origin/dvb' 2019-03-10 23:08:46 +01:00
Matthias Koefferlein 15040101ec Fixed a small issue in the adjust cell origin dialog. 2019-03-10 22:38:27 +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 bcc506adc6 Updated DRC doc. 2019-03-06 07:55:20 +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 b9127a93bf Build issue fixed. 2019-03-02 17:35:15 +01:00
Matthias Koefferlein d7cb2913c9 Fixed a problem with the documentation generator. 2019-03-02 17:22:27 +01:00
Matthias Koefferlein 32c44a8693 Fixed some unit tests by cleaning up resources properly. 2019-03-02 12:10:10 +01:00
Matthias Koefferlein 9c75ee8c92 Added DRC tests for antenna check. 2019-03-02 11:23:40 +01:00
Matthias Koefferlein 5c9b652771 Integration of LayoutToNetlist into DRC framework ('Netter')
First steps are made towards providing an antenna check
2019-03-02 10:41:16 +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 adc21b43d8 Another fix for Windows build (for gcc) 2019-02-24 00:17:33 +01:00
Matthias Koefferlein 50c73dbae8 Merge branch 'issue-234' 2019-02-23 18:16:01 +01:00
Matthias Koefferlein 60a2ce6037 Another fix for issue-234: linewidth parameter of save_image_with_options did not have any effect. 2019-02-23 18:13:49 +01:00
Matthias Koefferlein fc486062d8 Fixed issue-234 by enhancing the drawing algorithm. 2019-02-23 10:23:47 +01:00
Matthias Koefferlein f40d437a96 Fixed #232 by limiting the allowed number of string to the maximum supported stipple height (32). 2019-02-23 09:52:14 +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 d830318a1f Further Windows build fixes. 2019-02-20 23:59:23 +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 2e9fb9fe9a DRC bugfix: layer wasn't overwritten but added on output. 2019-02-20 00:41:24 +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 a69e27b769 Clean up resources in DRC. 2019-02-18 23:44:14 +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 0bed4615aa Fixed unit tests. 2019-02-18 21:01:19 +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 43014d6923 WIP: some testing and bug fixes for hierarchical report db generation. 2019-02-11 00:22:19 +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 8ad6da0281 Fixed a build issue on MSVC 2019-02-01 07:43:24 +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 30e26c4f96 Avoid an issue with virtual functions
Reimplementing virtual functions with
"const &" arguments wasn't behaving as
expected because these arguments were
copied.

Now, "const &" for arguments (in virtual
function reimplementation) is not implemented
as a copy.

In addition, now it's possible to declare
results as references always (also if const &).

See gsiTest.cc:1078 for example:

  //  gsi::arg_make_reference makes the function's return value
  //  always being taken as a reference
  gsi::method<C_P, const CopyDetector &, const CopyDetector &, gsi::arg_make_reference> ("pass_cd_cref_as_ref", &C_P::pass_cd_cref)
2019-01-31 01:07:15 +01:00
Matthias Koefferlein 7b07782cdf Avoid an issue with virtual functions
Reimplementing virtual functions with
"const &" arguments wasn't behaving as
expected because these arguments were
copied.

Now, "const &" for arguments (in virtual
function reimplementation) is not implemented
as a copy.

In addition, now it's possible to declare
results as references always (also if const &).

See gsiTest.cc:1078 for example:

  //  gsi::arg_make_reference makes the function's return value
  //  always being taken as a reference
  gsi::method<C_P, const CopyDetector &, const CopyDetector &, gsi::arg_make_reference> ("pass_cd_cref_as_ref", &C_P::pass_cd_cref)
2019-01-31 00:36:44 +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 74b6341425 Fixed unit tests, added swap function to tl::list 2019-01-25 23:19:12 +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 b6eeb4bef3 Fixed #225 by fixing the READER. 2019-01-16 23:12:47 +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 cbca1fb530 Cleaned up a namespace mess (db::Net was duplicated in NetTracer and db itself) - renamed to db::NetTracerNet, but better solution would be to rename db to something else in the plugin. 2019-01-05 22:39:52 +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 bcac78235b Fixed a testsuite fail after last commit. 2019-01-04 01:59:52 +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 e3b8d3635c Small bugfix: object._destroy wasn't working for directly passed objects. 2019-01-02 23:18:14 +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 923e4075da Added an intrinsic linked list implementation. 2018-12-31 15:25:45 +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 Köfferlein d726afb189
Merge pull request #215 from lightwave-lab/bugfix/technology-load
Bugfix: gsi method db Technology.load pointing to save
2018-12-30 22:57:58 +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