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
6003727561
Added strm2mag tool and support for Magic options
2019-11-30 20:54:15 +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
814b8df516
DRC enhancement: allow @+ to create a new layout for output.
2019-11-26 23:03:44 +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
a8cace399e
Added some private tests to LVS tests for better coverage.
2019-11-24 18:25:56 +01:00
Matthias Koefferlein
0f1dc1d191
Refine pin mismatch handling so that only 'not used' nets will make a pin match against null.
2019-11-24 16:40:45 +01:00
Matthias Koefferlein
afacf7c0b5
WIP: fixed a segfault in the netlist browser.
2019-11-24 01:28:07 +01:00
Matthias Koefferlein
20976d7521
Avoid an error message on startup when Python/Ruby isn't enabled.
2019-11-24 00:36:46 +01:00
Matthias Koefferlein
64bb01d80d
Dropped attempt to remove dummy nodes from spice reader netlist as this wasn't effective anyway.
2019-11-24 00:23:19 +01:00
Matthias Koefferlein
ed00503d41
Fixed Spice reader: must not use Netlist::purge_nets to remove dummy nets. Updated golden test data.
2019-11-23 23:36:52 +01:00
Matthias Koefferlein
aa28aa807a
Unit tests fixed and a bugfix in the netlist compare
...
One unit test was failing because the netlist compare did not
properly consider dropped pins:
* A severe bug ("g1" should be "g2")
* Incomplete detection of dropped pins upwards in the hierarchy
The general pin and net mapping scheme has been enhanced so that
net mapping to "0" is valid (this will happen in case of dropped
pins) and this condition is used to detect pins without match
requirement.
2019-11-23 22:04:25 +01:00
Matthias Koefferlein
1309aa59cb
Merge branch 'master' into issue-425
2019-11-23 01:55:28 +01:00
Matthias Koefferlein
7de90ae595
Merge branch 'issue-417'
2019-11-23 01:46:38 +01:00
Matthias Koefferlein
79f4f8bc57
Update unit test for issue-417 branch.
2019-11-23 01:45:56 +01:00
Matthias Koefferlein
d5506a176a
WIP: first implementation - needs testing.
2019-11-23 01:20:22 +01:00
Matthias Koefferlein
2757b22da6
Resolved conflicts for issue-419 merge
2019-11-22 23:34:03 +01:00
Matthias Koefferlein
4fe5a96596
Implemented #426 (feature request: group techs)
...
The tech group is a new XML tag "<group>...</group>".
This tag is editable in the tech "general" page as "Group".
If non-empty, a submenu will be created in the tech selector
menu for all techs with the same group.
2019-11-22 23:23:11 +01:00
Matthias Köfferlein
a792cf4c1e
Merge pull request #424 from KLayout/issue-407
...
Issue 407
2019-11-22 23:12:44 +01:00
Matthias Köfferlein
c5dc7c9fa8
Merge pull request #423 from KLayout/issue-415
...
Fixed #415 (text mode for XML reader and stream writer to avoid macro format confusion)
2019-11-22 23:12:31 +01:00
Matthias Köfferlein
ac7e17ffcb
Merge pull request #422 from KLayout/issue-406
...
Issue 406
2019-11-22 23:12:16 +01:00
Matthias Köfferlein
9200e5037d
Merge pull request #421 from KLayout/issue-417
...
Fixed #417 : look up the net in the parent hierarchy of the net shape …
2019-11-22 23:11:59 +01:00
Matthias Köfferlein
c8cf8122b6
Merge pull request #414 from KLayout/issue-411
...
Issue 411
2019-11-22 23:11:24 +01:00
Matthias Köfferlein
319c73e6c0
Merge pull request #413 from KLayout/issue-408
...
Fixed issue #408 (internal error after EdgePairs#polygon)
2019-11-22 23:11:05 +01:00
Matthias Köfferlein
967e8dc5b1
Merge pull request #412 from KLayout/issue_410
...
Fixed issue #410
2019-11-22 23:10:52 +01:00
Matthias Köfferlein
b6869e4deb
Merge pull request #409 from KLayout/netlist_properties
...
Netlist properties
2019-11-22 23:10:39 +01:00
Matthias Koefferlein
e4596e4971
Fixed #428 (hide edit buttons for user properties in viewer mode)
2019-11-22 22:40:01 +01:00
Matthias Koefferlein
d37a744322
Build issue fixed on Windows.
2019-11-21 22:03:01 +01:00
Matthias Koefferlein
215ce8812b
More consistent handling of Windows/Linux switch in output stream and unit tests.
2019-11-21 21:57:49 +01:00
Matthias Koefferlein
247bfa9ac5
Implemented #407 (variables in technology base path)
...
The implementation uses extrapolation of strings in the
"Expressions" framework.
There is how:
* $(tech_name) -> substituted by the technology name
* $(tech_dir) -> substituted by the directory the technology file is stored in
* $(tech_file) -> substituted by the absolute path to the tech file
* $(appdata_path) -> substituted by KLayout's home directory (e.g. ~/.klayout)
* $(env('X')) -> substituted by the environment variable $X
2019-11-21 21:37:00 +01:00
Matthias Koefferlein
72a3528e55
WIP: implementation of a fix (explicit text mode for XML reader and stream writer)
2019-11-20 23:52:37 +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
f28b8e60c1
Fixed #417 : look up the net in the parent hierarchy of the net shape clusters to find the net for the flattened netlist.
2019-11-19 23:22:40 +01:00
Matthias Koefferlein
6c7ceb74dc
Enhanced intersections algorithm so that the generated points won't overlay with finite edges from the AND part
2019-11-19 21:19:36 +01:00
Matthias Koefferlein
9af662a512
WIP: try to avoid duplicate intersection points by eliminating those. Problem persists: intersection points may be duplicates of edges arising from AND
2019-11-18 23:14:24 +01:00
Matthias Koefferlein
24759c7174
WIP: first implementation. Testing needed.
2019-11-18 19:14:06 +01:00
Matthias Koefferlein
990961e5f4
Fixed #411 (multiple device extractors for same class)
2019-11-17 23:12:50 +01:00
Matthias Koefferlein
1131532e4f
First implementation, needs testing.
2019-11-17 22:45:36 +01:00
Matthias Koefferlein
68c6941318
Fixed issue #408 (internal error after EdgePairs#polygon)
2019-11-17 22:32:02 +01:00
Matthias Koefferlein
147f2c1168
Fixed issue #410
2019-11-17 22:18:55 +01:00
Matthias Koefferlein
181d5b48e6
Fixed consistent typo: PCell's -> PCells
2019-11-17 21:47:11 +01:00
Matthias Koefferlein
6d8f56194b
Edge enhancements
...
New binding: Edge#d (distance vector), Edge#clipped and Edge#clipped_line.
"intersection_point" returns nil in case of no intersection.
Documentation error fixed (Edge#distance).
2019-11-17 21:30:08 +01:00
Matthias Koefferlein
595075a88a
Let the background ruler's size scale with the font size - otherwise it gets quite small on high-res screens.
2019-11-14 02:07:50 +01:00
Matthias Koefferlein
8dddc4000f
Also write the net properties to GDS or OASIS
...
"build_nets" will now write the net's properties
to the generated net shapes.
This might enable interesting applications.
2019-11-13 23:09:09 +01:00
Matthias Koefferlein
bb3aed5773
Merge branch 'master' of https://github.com/KLayout/klayout into netlist_properties
2019-11-13 00:59:29 +01:00
Matthias Koefferlein
876487edde
Added persistency of the netlist object properties into L2N/LVSDB files
2019-11-13 00:06:29 +01:00
Matthias Koefferlein
d060147713
Enhancements for the netlist object properties
...
- more memory efficient (single pointer only)
- iterator for properties
- NetlistObject#property_keys in GSI
2019-11-12 23:00:49 +01:00
Matthias Koefferlein
6d6ac23f50
Fixed a build issue (const iterator cannot be used in std::map::erase)
2019-11-12 20:55:28 +01:00
Matthias Koefferlein
7309688944
More robustness of snap algorithm for unit tests
2019-11-12 20:13:35 +01:00
Matthias Koefferlein
6b5c951088
Fixed string unit test on MinGW 32bit
2019-11-12 19:11:21 +01:00
Matthias Koefferlein
3bf45f3638
Fixed MSVC build error.
2019-11-11 23:23:47 +01:00
Matthias Koefferlein
86e041cd51
Updated test data.
2019-11-11 23:03:40 +01:00
Matthias Koefferlein
b7094affa4
Fixed a dummy error message on Windows/Python 3.7 and really ignore
2019-11-11 21:53:19 +01:00
Matthias Koefferlein
47efb9d11b
WIP: fixed compiler warning
2019-11-11 07:08:37 +01:00
Matthias Koefferlein
0ce06125ca
Introducing netlist object properties.
2019-11-11 07:02:02 +01:00
Matthias Koefferlein
b220374bd1
Fixed gcc builds with stdc++0x (math.h issue)
2019-11-10 01:30:45 +01:00
Matthias Koefferlein
817bbf81f1
Fixed gcc builds with stdc++0x (M_PI no longer available)
2019-11-09 23:20:43 +01:00
Matthias Koefferlein
994c8b8484
Removed superfluous file from lay.pro.
2019-11-09 16:53:17 +01:00
Matthias Koefferlein
4a212e8db6
Added tests for Region#scale_and_snap and Region#snap
2019-11-07 23:33:54 +01:00
Matthias Koefferlein
988b1e563f
Added unit test for DeepRegion::snap
2019-11-07 23:11:34 +01:00
Matthias Koefferlein
318efbf7b0
Fixed 'scale_and_snap' feature
2019-11-07 22:54:16 +01:00
Matthias Koefferlein
4924d0269c
Fixed #400 , added tests.
2019-11-06 23:28:16 +01:00
Matthias Koefferlein
1e2a8b264d
WIP: because the fixed scheme works nicely, add a new scale_and_snap function.
2019-11-06 01:11:40 +01:00
Matthias Koefferlein
895206dfa1
WIP: bugfix in case of clip variants.
2019-11-06 01:11:40 +01:00
Matthias Koefferlein
51676376e6
WIP: Variant building bug fixed. Needs testing.
2019-11-06 01:11:40 +01:00
Matthias Köfferlein
990f01adec
Merge pull request #398 from KLayout/issue-393
...
Issue 393
2019-11-06 01:01:48 +01:00
Matthias Köfferlein
3476e40e79
Merge pull request #397 from KLayout/issue-394
...
Issue 394
2019-11-06 01:01:36 +01:00
Matthias Köfferlein
65b0752c5c
Merge pull request #396 from KLayout/issue-387
...
Implemented issue-387 (python version in grain.xml)
2019-11-06 01:01:23 +01:00
Matthias Köfferlein
9fffd03ad3
Merge pull request #390 from KLayout/issue-382
...
Implemented #382 : text editor view for user props
2019-11-06 01:01:09 +01:00
Matthias Köfferlein
b920e057a3
Merge pull request #389 from KLayout/issue-386
...
Fixed issue #386 by mapping 'None' to 'None_' in Python
2019-11-06 01:00:58 +01:00
Matthias Köfferlein
6e02f1f93e
Merge pull request #388 from KLayout/issue-368
...
Implemented #368 : no segfault but exception if accessing invalid laye…
2019-11-06 01:00:47 +01:00
Matthias Köfferlein
a351bc8085
Merge pull request #385 from KLayout/dvb
...
Dvb
2019-11-06 01:00:33 +01:00
Matthias Koefferlein
fe9e808d61
Fixed implementation: cannot change definition of tl::Extractor::read_word and need a new method to read a word.
2019-11-03 21:50:47 +01:00
Matthias Koefferlein
41ab2d6d79
Enhanced #387 fix with pseudo-features
...
To restrict the requirements to a specific Python, Ruby or Qt
major version it's now possible to use "python2", "python3", "ruby1",
"ruby2", "qt4" and "qt5" features.
Like this:
<api-version>python2 2.7</api-version>
will require python >=2.7.0, but Python 3 is not allowed.
2019-11-03 19:36:10 +01:00
Matthias Koefferlein
4f49447fe8
Fixed #393 (properly show DRC syntax errors)
2019-11-03 19:01:46 +01:00
Matthias Koefferlein
078aa36974
Issue #394 fixed: at least the toolbox layout should be fixed now
2019-11-03 18:16:26 +01:00
Matthias Koefferlein
5ba657b790
Implemented #394 : now there is 'XLarge', 'XXLarge' and 'XXXLarge' for default fonts as well.
2019-11-03 17:34:25 +01:00
Matthias Koefferlein
5a288b7224
WIP: trying to use Libration Mono from Ubuntu 16.04
2019-11-03 16:29:26 +00:00
Matthias Koefferlein
37e402e9bd
WIP: new fixed font bitmaps - needs improvement
2019-11-03 17:22:57 +01:00
Matthias Koefferlein
50e8f334d1
Implemented issue-387 (python version in grain.xml)
...
The solution is to extend the api-version field.
"0.26.1" is KLayout API >= 0.26.1
"ruby" means: Ruby required
"python 2.6.0" means: Python required with at least 2.6.0
"0.26.1; ruby; python 2.6.0" means: all of this together
In addition, the version has been set to 0.26.1 now.
2019-11-03 02:12:05 +01:00
Matthias Koefferlein
861a6fdfcc
Fixed a typo in the DRC documentation.
2019-11-02 22:35:19 +01:00
Matthias Koefferlein
7910ddc6a3
Fixed a compiler warning, testcase update (part 1)
2019-11-02 20:39:59 +01:00
Matthias Koefferlein
cd353219ce
Implemented #382 : text editor view for user props
...
This view is an alternative view to the table and
allows copy/paste and faster editing.
2019-11-02 12:36:02 +01:00
klayoutmatthias
627b248f7e
Enhanced compatibility between platforms (problem was: order of execution of argument expressions)
2019-11-02 01:26:37 +01:00
Matthias Koefferlein
9e4bd31010
Fixed issue #386 by mapping 'None' to 'None_' in Python
2019-11-01 17:53:31 +01:00