Commit Graph

1310 Commits

Author SHA1 Message Date
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
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
Thomas Ferreira de Lima 6b37e67de6
fixing pya module. adding tests 2018-12-20 16:10:55 -05: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 31a9598c35 Merge branch 'master' of https://github.com/klayoutmatthias/klayout 2018-12-16 23:44:57 +01:00
Matthias Koefferlein db3b1d8eee Ported #209 fix to master. 2018-12-16 23:44:26 +01:00
Matthias Koefferlein 3ed9e63480 Fixed a typo 2018-12-16 23:39:45 +01:00
Matthias Koefferlein b75681a333 Fixed #207 (integer rounding happens on text bias and spacing values for Basic.TEXT PCell) 2018-12-11 21:55:30 +01: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
Anthony J. Bentley 2bad812953 OpenBSD doesn't have sa_restorer. 2018-12-07 06:07:40 -07: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 f57e7c734e Merge remote-tracking branch 'remotes/origin/master' into dvb 2018-11-26 21:30:01 +01:00
Matthias Koefferlein 345ff27854 Fixed a small build issue (ambiguous parameters) 2018-11-26 21:29:09 +01:00
Matthias Koefferlein a588751c27 Fixed a bug introduced with the plugin refactoring: some tool menu items were not functional. 2018-11-26 21:08:17 +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 643e58f856 Merged PR #199 into pymod branch 2018-11-24 00:53:23 +01:00
Matthias Koefferlein 72127a302d Updated Python highlighter files and highlighter bugfix. 2018-11-23 07:20:55 +01:00
Matthias Koefferlein f4b2a015dc Fixed #198 (DXF contour stitching renders fuzzy polygons) 2018-11-22 22:19:46 +01:00
Matthias Koefferlein 9539e36bc9 Fixed #195 2018-11-22 22:19:37 +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 edae71b0a8 0.25.5 to 0.25.6 delta ported to pymod
- Bugfix for klayoutmatthias/issue-191
- Consistent configuration for layout views
2018-11-18 23:54:41 +01:00
Matthias Koefferlein a36cf6a2e5 Force relink of pymod/tl to trigger correct build for MSVC 2018-11-18 22:57:17 +01:00
Matthias Koefferlein 7ade9cf079 Added standard Python tests to pymod too
This will include the normal Python tests also
in pymod, hence aligning the test base for pymod
and pya.

This feature requires the pya compatibility module.
2018-11-18 22:42:13 +01:00
Matthias Koefferlein e47584460b Merge branch 'pymod-pyacompat' into pymod 2018-11-18 22:22:19 +01:00
Matthias Koefferlein 934bed7b94 Fixed #197 (reimplemented methods are not getting called) 2018-11-18 19:59:17 +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 b192417809 Merge branch 'pymod' into net-extract 2018-11-10 22:42:48 +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 17f53cf54e WIP: some performance improvements, cronology debugging support (experimental) 2018-11-03 12:28:27 +01:00
Matthias Koefferlein 00a124ce64 Added pya compatibility module 2018-10-23 23:43:52 +02:00
Matthias Koefferlein 863144603c Fixed MSVC builds ... 2018-10-22 23:48:15 +02:00
Matthias Koefferlein 58239650aa Fixed pymod initialization for Python 2
Python 2 is a bit more picky with respect to
the correct name of the module. If passing "db"
to a module called dbcore, it will exit with
a SystemError.
2018-10-22 23:28:55 +02:00
Matthias Koefferlein a25db86046 Fixed pymod.pri for Linux builds. 2018-10-22 21:25:53 +02:00
Matthias Koefferlein b80ce12c12 Some refactoring to fix qmake-based pymod builds
- Unify structure of Python module sources so the pymod.pri can be used for all modules
- switch to tlcore, dbcore and rdbcore + distutils_src wrapper modules
2018-10-22 20:53:49 +02:00
Matthias Köfferlein 1150ffbbb1
Merge branch 'pymod' into pymod-splitting 2018-10-22 18:15:02 +02:00
Matthias Koefferlein d67a50bd1d Fixed #176 by introducing a separate bitmap for text drawing optimization. 2018-10-20 09:53:25 +02:00
Matthias Koefferlein dc9267d61e WIP: updated solution
* Reverted first solution partially because it lead to drawing errors.
* Redraw thread will fire workers only for layers that really need
  to be drawn
2018-10-20 09:53:07 +02:00
Matthias Koefferlein 46116f4828 Basic performance improvement in the bitmap to image area
Empty bitmaps are skipped now
2018-10-20 09:52:35 +02:00
Thomas Ferreira de Lima c1dbb023ae
fixing editable install 'python setup.py develop' 2018-10-19 19:09:20 -04:00
Thomas Ferreira de Lima c3ab951c8a
passing python unit tests 2018-10-19 19:02:38 -04:00
Thomas Ferreira de Lima 87a49007ff
Fixing distutils_src folder structure due to setuptools bug
Also: adding PCellDeclarationHelper to klayout.db
2018-10-19 18:53:37 -04:00
Thomas Ferreira de Lima d3fa4465f6
Renaming core modules to klayout.dbcore, klayout.rdbcore and klayout.tlcore 2018-10-19 17:55:56 -04:00
Matthias Koefferlein 8ab4868d76 Fixed build on Windows (tl::InputPipe::wait was missing) 2018-10-16 23:00:28 +02:00
Matthias Koefferlein 62224b0d91 Merge branch 'pymod' into net-extract 2018-10-14 23:57:18 +02:00
Matthias Koefferlein 90c03140b3 Fixed #185 for pymod branch 2018-10-14 23:42:10 +02:00
Matthias Koefferlein dd9d46da38 Activated stream unit tests. 2018-10-14 23:34:25 +02:00
Matthias Koefferlein 3392c08d36 Merge branch 'pymod' into net-extract 2018-10-09 23:43:58 +02:00
Matthias Koefferlein 904a12c11e Added a way to get the exit code from InputPipe
The method is to call wait() on the pipe object
which returns the exit code.

Some tests have been added for this.
2018-10-09 23:40:28 +02:00
Matthias Koefferlein 7df9242efb Merge remote-tracking branch 'origin/pymod' into pymod 2018-10-09 23:00:30 +02:00
Matthias Koefferlein 222b98fd70 Some fixes for the testsuite
With these fixes, unit tests pass with MacOS
(set DYLD_LIBRARY_PATH!)

1.) MacOS takes popen vs. pclose seriously
By using fopen we basically spoil the system and other popen
won't work.

2.) For system integrity, MacOS does not propagate DYLD_LIBRARY_PATH
to child processes such as sh. This has to be done explictly.

3.) Search the klayout binary in the right path (klayout.app/...)

4.) Reset KLAYOUT_HOME for less intervention by installed macros
2018-10-09 13:57:26 -07:00
Matthias Koefferlein 19a3f19378 Removed some misleading comments. 2018-10-09 21:24:23 +02:00
Matthias Koefferlein 70778e9414 Now also fixed the bd unit tests - there are also independent from the streamer plugins now. 2018-10-09 01:12:58 +02:00
Matthias Koefferlein f0661ba0b3 Some wrong header includes fixed. 2018-10-09 00:35:03 +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