Commit Graph

200 Commits

Author SHA1 Message Date
Matthias Koefferlein 3a7d9d0b0f Fixed copyright/license topic. 2020-04-25 23:30:48 +02:00
Matthias Koefferlein 061e5d7286 Added LEF reading timer (LEF next to DEF) 2020-04-25 22:05:01 +02:00
Matthias Koefferlein c602871e0e Implemented Stefan's solution #3 for FOREIGN != MACRO in LEF 2020-04-25 21:08:11 +02:00
Matthias Koefferlein f6140055d6 Modified reader scheme for FOREIGNCELL 2020-04-24 23:21:27 +02:00
Matthias Koefferlein c7de542070 Some more refactoring of DEF layer mapping 2020-04-19 20:14:12 +02:00
Matthias Koefferlein 71906a5681 WIP: some further refactoring of the layer mapping scheme. 2020-04-19 19:12:03 +02:00
Matthias Koefferlein 040af426dc WIP: refactoring of map file reading. 2020-04-19 16:54:41 +02:00
Matthias Koefferlein e51f15b116 New layer flavors: special nets, LEF pins. 2020-04-19 14:38:14 +02:00
Matthias Koefferlein 9825245e0c Implemented LEF MACRO FOREIGN 2020-04-19 12:16:55 +02:00
Matthias Koefferlein d93ef3ff97 Timing reports for stream writers too, reporting file names for reader and writer timing. 2020-04-19 10:39:27 +02:00
Matthias Koefferlein 9a7f0a9c2a Fixed a LEF/DEF reader bug (was '+ RECT' or '+ POLYGON' in SPECIALNETS) 2020-04-18 18:48:25 +02:00
Matthias Koefferlein 70d8334f8c Merge branch 'lefdef-enhancments' of https://github.com/KLayout/klayout into lefdef-enhancments 2020-04-18 18:00:54 +02:00
Matthias Koefferlein 54cf57c772 LEF/DEF enhancements (via cellname suffix configurable, group separation disabled by default)
Two new reader options:
1.) via cell name prefix (default is "VIA_"). This name is put in front of the via name to form the cell cell name
2.) group separation disabled by default. Groups are not put into individual parent cells by default.
2020-04-18 17:58:50 +02:00
Matthias Koefferlein 921af52643 DEF reader bugfix: wasn't reading SPECIALNETS + ROUTED + RECT 2020-04-14 23:15:08 +02:00
Matthias Koefferlein 61714090e3 Maybe fixed performance issue: usually it's not a good idea to iterate the layout's hierarchy while deleting something from it. 2020-04-14 22:48:18 +02:00
Matthias Koefferlein 9c62bb015f Include BLOCKAGE in map file LEF/DEF, becoming case insensitive for purpose 2020-04-05 23:56:43 +02:00
Matthias Koefferlein 3ada29d606 Some bugfixes for LEF/DEF reader for special nets (extension handling) 2020-04-05 23:49:19 +02:00
Matthias Koefferlein df7c530013 Bugfix for the net reader of DEF - wasn't properly reading diagonal parts. 2020-04-05 22:56:04 +02:00
Matthias Koefferlein cd801206bc Some refactoring - DEF scanner more modular (5) 2020-04-05 21:49:36 +02:00
Matthias Koefferlein 4757ad5044 Some refactoring - DEF scanner more modular (4) 2020-04-05 21:49:36 +02:00
Matthias Koefferlein dea3743d59 Some refactoring - DEF scanner more modular (3) 2020-04-05 21:49:36 +02:00
Matthias Koefferlein 9df6d29761 Some refactoring - DEF scanner more modular (2) 2020-04-05 21:49:36 +02:00
Matthias Koefferlein 99af144d98 Some refactoring - DEF scanner more modular 2020-04-05 21:49:36 +02:00
Matthias Koefferlein f11a3a0dd5 Bugfix: MINWIDTH ... WRONGDIRECTION wasn't considering DIRECTION VERTICAL
Added/updated some tests, some refactoring.
2020-04-05 21:49:36 +02:00
Matthias Koefferlein 4a24b727d5 Tried to implement MINWIDTH .. WRONGDIRECTION in LEF58_MINWIDTH property 2020-04-05 21:49:36 +02:00
Matthias Koefferlein bcaf28c94c Bugfix LEF/DEF reader: via needs to change the layer also if it's inside a DEF. Added more test cases. 2020-04-05 21:49:36 +02:00
Matthias Koefferlein 2c60338ae8 Added DO .. BY .. STEP to vias in SPECIALNETS in DEF reader, added one more private testcase 2020-04-05 21:49:36 +02:00
Matthias Koefferlein 0ae97279d8 Added optional MASK specification to VIA's RECT and POLYGON elements 2020-04-05 21:49:36 +02:00
Matthias Koefferlein 8796b65ddb DEF reader patched: after via continue with the new metal layer with the width given by the rule. 2020-04-05 21:49:36 +02:00
Matthias Koefferlein ee3ee5bd8e Another update of the map file reader for LEF/DEF 2020-04-05 21:49:36 +02:00
Matthias Koefferlein dd63b727f8 Another update of the map file reader for LEF/DEF 2020-04-05 21:49:36 +02:00
Matthias Koefferlein 67a1c0ba25 Updated implementation of mapping file reader for LEF/DEF. 2020-04-05 21:49:36 +02:00
Matthias Koefferlein e15d99e4da LEF reader fix: determine routing layers for vias without VIARULE from involved layers 2020-04-05 21:49:36 +02:00
Matthias Koefferlein d328901799 DEF reader fix: TAPER has to disable NONDEFAULTRULE for the segment 2020-04-05 21:49:36 +02:00
Matthias Koefferlein 44503facea Attempt to auto-import .map files for LEF/DEF reader. Probably needs adjustment. 2020-04-05 21:49:36 +02:00
Matthias Koefferlein 99d3610a6a 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:49:57 +01:00
Matthias Koefferlein c10ccccdf7 Merge branch 'app-refactoring' into doc-args 2020-03-15 21:32:39 +01:00
Matthias Koefferlein 53c81cc572 Got rid of most of the @args 2020-03-14 21:50:47 +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 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 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 Koefferlein 68472e6e14 WIP: refactoring ongoing. 2020-02-07 01:27:24 +01:00
Matthias Koefferlein 0f69c24e79 WIP: avoids a segfault because of missing manager 2020-02-04 20:50:46 +01:00
Matthias Koefferlein cc37ecfd17 Fixed titles of file dialogs. 2020-01-28 23:45:40 +01:00
Matthias Koefferlein b8c82c4f8b Updated copyright notice to 2020 2020-01-05 00:59:43 +01:00
Matthias Koefferlein 91b7d6a2df Fixed compatibility issue of MAG reader on Windows 2019-12-08 22:06:47 +01:00
Matthias Koefferlein 8916dd12a9 Small bugfix for MAG writer + tests. 2019-12-08 20:25:25 +01:00
Matthias Köfferlein 2fa545d80b
Merge pull request #435 from KLayout/issue-429
Issue 429
2019-12-02 21:15:05 +01:00
Matthias Köfferlein e061a0a932
Merge pull request #433 from KLayout/wip
Some enhancements
2019-12-02 21:14:35 +01:00
Matthias Koefferlein 904bbf15a1 Refinement of tech management and MAG reading
- The MAG reader now has access to the details of the proposed
  technology (set in KLayout), specifically inside library paths
  ($(tech_name), $(tech_dir)). This allows setting the MAG reader
  path relative to the technology path.
- If no specific technology is set before MAG files are read and
  the technology listed there is found in KLayout, KLayout will
  attach the layout to this technology.
2019-12-01 18:19:55 +01:00
Matthias Koefferlein baffb940d1 Implemented #429: final touches to doc and tests for RBA/pya API. 2019-12-01 16:41:27 +01:00
Matthias Koefferlein 152dc87682 Implemented a dummy arrangement of cells when the MAG output file isn't corresponding to a existing cell - useful for obtaining a cell overview 2019-12-01 10:13:11 +01:00
Matthias Koefferlein c49bc17e6a CIF writer: only layer names should be forced to upper case. Cell names don't need this. 2019-11-30 22:53:29 +01:00
Matthias Koefferlein 9eb09c3a5d Enhancements to implementation
- OASIS layers are turned into pure layer name (not lxdy_name) for
  MAG output
- Boxes of instances had been incorrect
- consistent naming of cell files in presence of special chars
2019-11-30 22:30:28 +01:00
Matthias Koefferlein f8743e7411 Added PearlRiver die Magic files as test case. 2019-11-30 21:16:31 +01:00
Matthias Koefferlein f16a5085c5 WIP: some implementation refinement
- MAG writer output name does not need to match a cell name
  (this file is not written in this case, but the path and extension
  are taken from it). A warning is issued in this case.
- Strings for layer and cell names are normalized (special chars, UTF8)
- Cell duplicates won't be produced but existing cells are reused.
  This enables "incremental reads".
2019-11-30 19:04:54 +01:00
Matthias Koefferlein c6ede46fd0 WIP: substantial changes
- force lower-case layer names to allow CIF/MAG loop (CIF needs
  upper-case layer names, MAG doesn't)
- reverted CIF reader to standard
- new options for writer: tech, "zero timestamp".
- file name MUST be consistent with one cell name.
  Reason: it's not possible to derive the initial
  cell from the given options, so without the file name
  being consistent, we can't know what to write there.
  Basically the file name rather supplies the path.
2019-11-30 00:09:44 +01:00
Matthias Koefferlein 9fb73a3928 A small enhancement for CIF / less ignorant reader
The change is to allow lower-case cell and layer names when they
are separated from the command with a blank. So

"Layername XZY;": "L" is the command, "ayername" is ignored

BUT:

"L xyz;": "xyz" is not part of the command, but the layername.

Same for "DS".

This is a deviation from the "standard", but a useful one. Otherwise
case sensitivity cannot be maintained anymore in a CIF/Magic loop.
2019-11-29 01:15:06 +01:00
Matthias Koefferlein 0796b20c2d Added a first test for Magic reader/writer 2019-11-29 01:14:41 +01:00
Matthias Koefferlein 3f9dd59593 WIP: MAG reader now is compliant with writer (and Magic I hope) 2019-11-29 00:25:28 +01:00
Matthias Koefferlein 3283219b0f WIP: writer functionality debugged and enhanced (triangles, correct arrays etc.) 2019-11-28 23:58:19 +01:00
Matthias Koefferlein cef868d774 WIP: ongoing development. 2019-11-28 01:03:25 +01:00
Matthias Koefferlein 11e3209d4a WIP: removed traces of CIF copy 2019-11-28 00:45:47 +01:00
Matthias Koefferlein 4ac5801cc7 WIP: Implementation draft of MAG file writer. 2019-11-28 00:20:30 +01:00
Matthias Koefferlein 5c217b90b5 WIP: starting MAG writer. 2019-11-27 22:33:50 +01:00
Matthias Koefferlein a980332c76 Fixed MAG reader (rlabels) 2019-11-26 23:38:23 +01:00
Matthias Koefferlein 6399f4693a Bugfixed MAG reader. 2019-11-26 23:03:55 +01:00
Matthias Koefferlein 211524a0c0 WIP: reader starts becoming functional. 2019-11-26 01:03:24 +01:00
Matthias Koefferlein aece8b299f WIP: generalized code. 2019-11-25 19:54:24 +01:00
Matthias Koefferlein 2acb66182a WIP: basic framework 2019-11-25 00:07:56 +01:00
Matthias Koefferlein 6648b53822 Fixed issue #419 (multiple top circuits after flatten of netlist)
The problem is solved by always producing subcircuits for cell
instances, even if there are no connections.

The netlist comparer had to be adjusted too because subcircuits
without pins were used for representing "unknown" subcircuit pairing.

In addition, this patch should lead to a better matching of
parallel subcircuit configurations where two different subcircuits
are entirely parallel.
2019-11-20 21:56:12 +01:00
Matthias Koefferlein 181d5b48e6 Fixed consistent typo: PCell's -> PCells 2019-11-17 21:47:11 +01:00
Matthias Koefferlein 56084b6b59 Merge branch 'dvb' 2019-09-08 20:07:16 +02:00
Matthias Koefferlein c95a0652cc First implementation of deep mode for XOR tool. 2019-09-07 22:30:10 +02:00
Matthias Koefferlein e2cc0c48b1 Provide flat and hierarchical 'trace all nets' feature, added Netlist#flatten. 2019-09-06 23:13:21 +02:00
Matthias Koefferlein f6492c80c5 Stream import: support multiple files
Multiple files can now be selected for "File/Import/Other Files into current".

NOTE: performance for many files may not be excellent
due to re-sorting of hierarchy and bounding box re-computation.
2019-08-26 22:28:35 +02:00
Matthias Koefferlein bceccd7ac0 Fixed issue #330 2019-08-21 00:38:57 +02:00
Matthias Koefferlein e9eed3842b Fix for layout query performance improvement: needs to check for qualified cell name (with lib), not pure cellname 2019-08-18 19:09:07 +02:00
Matthias Koefferlein 4f9208577b Added option to configure capture range. 2019-07-25 00:06:50 +02:00
Matthias Koefferlein 8f21cdf449 Fixed issue #305 (CIF reader issue with rotated boxes) 2019-07-21 22:57:02 +02:00
Matthias Koefferlein a4d2be7fbf Merge remote-tracking branch 'origin/master' into dvb 2019-06-19 23:14:27 +02:00
Matthias Koefferlein c7fe1cb189 Fixed #275 (don't write PCell context with OASIS)
The ability to disable PCell context on OASIS output
with the "write_context_info" option was added.
2019-06-16 16:48:30 +02:00
Matthias Koefferlein 13f4547789 More progress reporting, performance enhancements
Main performance enhancement: don't update layouts
between make_layer in DeepRegion
2019-06-09 09:40:45 +02:00
Matthias Koefferlein 9c6ed3e956 Merge remote-tracking branch 'origin/master' into dvb 2019-05-29 22:32:05 +02:00
Matthias Koefferlein 7b7e35d3d5 Fixed some compiler warnings. 2019-05-27 18:05:38 +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 30fdb0089b Integration of netlist extractor with net tracer plugin (-> "trace all nets") 2019-05-05 22:30:07 +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 4e15b3df92 Netlist browser: detailed info box. 2019-04-30 00:18:11 +02:00
Matthias Koefferlein eacd5fc19d Fixed some spelling errors (allow to, allows to) 2019-04-03 19:15:09 +02:00
Ruben Undheim 5d26cf4c77 Spelling errors in code and comments fixed 2019-03-31 15:25:18 +00:00
Matthias Koefferlein 5dc833970b Hierarchical implementation DRC functions (measurements) 2019-02-16 22:34:36 +01:00
Matthias Koefferlein d4d7ea8022 Updated copyright. 2019-01-08 01:09:25 +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 643e58f856 Merged PR #199 into pymod branch 2018-11-24 00:53:23 +01:00
Matthias Koefferlein f4b2a015dc Fixed #198 (DXF contour stitching renders fuzzy polygons) 2018-11-22 22:19:46 +01:00
Matthias Koefferlein 19a3f19378 Removed some misleading comments. 2018-10-09 21:24:23 +02:00