Matthias Koefferlein
f289fa9483
A small enhancement (dbu argument in LayoutToNetlist#evaluate_nets), maybe fixing issues on old Ruby versions
2025-08-03 22:11:59 +02:00
Matthias Koefferlein
b6fba7bb69
Bug fixes, new test details
2025-08-03 21:31:55 +02:00
Matthias Koefferlein
381baf7453
Merge remote-tracking branch 'origin/master' into feature/measurements
2025-08-03 19:53:06 +02:00
Matthias Koefferlein
8a5e83bf5d
Consistently differenting between double and int values as property keys (otherwise there may be a confusing mix present in the property repository)
2025-08-03 19:46:31 +02:00
Matthias Koefferlein
4773bb3227
Added a test for cumulative antenna ratio
2025-08-03 18:00:25 +02:00
Matthias Koefferlein
c8568e8aed
DRC binding for property computation, filtering
2025-08-03 13:55:14 +02:00
GavinAnderberg
55b58a20cc
Correct typo gsiDeclDbNetlist.cc
...
Corrected a typo that has the docs say the Netlist.read method 'Writes the netlist to the given file'. It now accurately matches the function behavior.
2025-08-02 19:55:31 -04:00
Matthias Koefferlein
73681755ed
Rename some functions, DRC binding for 'evaluate_nets'
2025-08-02 23:06:22 +02:00
Matthias Koefferlein
61aa08cd64
Added tests for more features
2025-08-02 22:23:03 +02:00
Matthias Koefferlein
a224c11833
WIP: bugfix
2025-08-02 22:14:53 +02:00
Matthias Koefferlein
c3ba0acc02
Added unit test
2025-08-02 21:43:39 +02:00
Matthias Koefferlein
8151feac56
Some debugging, skipping clusters without shapes on primary layer for example
2025-08-02 21:28:48 +02:00
Matthias Koefferlein
d001f7fa04
Introducing variables to property filters, computation functions, generalizing net function for net measurement
2025-08-02 19:50:11 +02:00
Matthias Koefferlein
e82ebf6733
WIP: measure_net function for LayoutToNetlist
2025-08-02 19:17:23 +02:00
Matthias Koefferlein
8e95f6a8e1
Fixing a few doc issues, updating DRC doc.
2025-08-02 16:19:12 +02:00
Matthias Koefferlein
ffafebcaae
Adding 'merge_props' and 'merged_props' to DRC
2025-08-02 16:12:49 +02:00
Matthias Koefferlein
f9ea9af466
Fixed unit tests
2025-08-02 15:13:23 +02:00
Matthias Koefferlein
d1e1f626c7
WIP (join properties on merge for flat regions)
2025-08-02 13:36:17 +02:00
Matthias Koefferlein
4b79c4c362
Fixing backward compatibility issue with pseudo-labels
...
Problem: pseudo-labels are represented by polygons with
properties. If those get merged onto normal polygons
with "join_properties_on_merge", these are regarded
labels and translated to texts later. We avoid this
by skipping all objects with pseudo-label properties
on region merge in "join_properties_on_merge" mode.
2025-08-01 22:59:38 +02:00
Matthias Koefferlein
786c60a28e
Fixing unit tests
2025-07-31 23:54:55 +02:00
Matthias Koefferlein
37f9feaadd
WIP: joining of properties in deep region
2025-07-31 22:38:48 +02:00
Matthias Koefferlein
653384fce5
WIP
2025-07-31 21:16:35 +02:00
Matthias Koefferlein
b89ff76a84
Fixing issue #2102 (internal error on R extraction)
...
Problem was a conceptual problem: the triangulation for
Hertel-Mehlhorn decomposition must not contain internal
vertexes. So we need a different solution for including
vertex ports.
2025-07-30 23:24:34 +02:00
Matthias Koefferlein
1ff6f36076
Shapes#insert(region) now supports properties
2025-07-29 23:10:15 +02:00
Matthias Koefferlein
c0bdc2874a
'put' function is property computation processors
2025-07-29 21:11:34 +02:00
Matthias Koefferlein
792c06b3a2
WIP: unit tests for new features
2025-07-28 23:40:01 +02:00
Matthias Koefferlein
3a612f9b04
WIP: integration of new features
2025-07-28 23:11:21 +02:00
Matthias Koefferlein
8d7919e054
WIP
2025-07-28 22:38:44 +02:00
Matthias Koefferlein
2a50c87969
WIP
2025-07-27 22:49:21 +02:00
Matthias Koefferlein
5b3ce9ff30
[consider merging] tl::Variant now considers byte arrays and strings equivalent for sloppy compare. This is important for Ruby string property keys as they are often kept as byte arrays when not UTF-8 encoded.
2025-07-27 22:15:52 +02:00
Matthias Koefferlein
ede15ffcc0
WIP
2025-07-27 19:48:38 +02:00
Matthias Koefferlein
427ac0ae16
WIP
2025-07-27 17:43:01 +02:00
Matthias Koefferlein
1c1555f31c
Fixed unit tests
2025-07-26 18:25:36 +02:00
Matthias Koefferlein
80276f8799
Refactoring: shape processors now allow modifying properties
2025-07-26 18:09:31 +02:00
Matthias Koefferlein
2369c69f69
Implemented feature request: a method to clear properties on shapes, instances, cells and layout
2025-07-26 15:26:47 +02:00
Matthias Koefferlein
1a9c12ce18
Merge branch 'master' into devel
2025-07-19 21:27:52 +02:00
Matthias Koefferlein
9d4a578a5e
Merge branch 'bugfix/issue-2088'
2025-07-19 19:00:33 +02:00
Matthias Köfferlein
71202ea9d3
Merge pull request #2098 from KLayout/bugfix/issue-2094
...
Fixing issue #2094 (slow insert into Shapes)
2025-07-19 18:58:04 +02:00
Matthias Köfferlein
ff7d7f20ee
Merge pull request #2089 from KLayout/bugfix/issue-2087
...
Bugfix/issue 2087
2025-07-19 18:57:25 +02:00
Matthias Köfferlein
131f36a4e0
Merge pull request #2084 from KLayout/feature/issue-2044
...
Feature/issue 2044
2025-07-19 18:57:10 +02:00
Matthias Koefferlein
4ab64ca5d3
Fixing issue #2094 (slow insert into Shapes)
...
Solution is to use a temporary container instead
of locking (only if needed).
2025-07-19 15:08:09 +02:00
Matthias Koefferlein
d0b935d9e5
Fixed issue #2088 in reader and writer
...
Reader fix: the reader will not error out duplicate cell
names, but rename the cells.
Writer fix: the writer will uniquify cell names *after*
illegal character substitution.
2025-07-15 22:52:49 +02:00
Matthias Koefferlein
1dc0a56633
Bugfix on layout query
...
The following query did not render the correct box
for top-level objects:
select path_dtrans*shape.dbbox.center,cell_name from shapes on layer 1/0 from instances of .*..
Reason was that "path_dtrans" returned a ICplxTrans for top
level instead of a DCplxTrans object.
2025-07-13 21:42:35 +02:00
Matthias Koefferlein
e7bc997e9f
Further compressing fill cell arrays in x direction
2025-07-12 14:28:42 +02:00
Matthias Koefferlein
76f7c620f6
[consider merging] Enabling Shapes-based RecursiveShapeIterators for MT-use
...
This fixes a crash when using DRC fill in tiled mode with multiple
threads.
2025-07-12 13:59:06 +02:00
Matthias Koefferlein
70a609e995
[consider merging] Bugfix in polygon rasterizer
2025-07-11 23:57:03 +02:00
Matthias Koefferlein
46f9fba0ab
Generalizing fill tool code
2025-07-11 23:56:40 +02:00
Matthias Koefferlein
7a06bfd66a
Bugfix
2025-07-10 23:32:19 +02:00
Matthias Koefferlein
d5f1017f83
More efficient computation of remaining fill area
2025-07-10 00:24:24 +02:00
Matthias Koefferlein
7dafdb2316
Fixing bug in first place. Needs testing.
2025-07-08 23:36:44 +02:00
Matthias Koefferlein
d382629e8e
Proposal for a fix of issue #2044 and #2066
...
The solution is to separate the meaning of "," and "+" layout
file combination operators in strm2x tools:
* "+" does "blending"
* "," does merge
"+" has priority over "," ('a+b,c' acts as '(a+b),c').
NOTE: LEF caching only happens across "+".
2025-07-05 22:48:05 +02:00
Matthias Koefferlein
9e9344fdfa
Introducing a check whether DBU is compatible with a given one in most readers (except PCB)
2025-07-05 21:13:19 +02:00
Matthias Koefferlein
fbca4e6c18
Fixing layout text writer for 'long long' property names on Windows
2025-06-29 22:16:46 +02:00
Matthias Koefferlein
733a0ec4cf
Proper solution for bug fix - wasn't done in the right order before.
2025-06-29 20:23:47 +02:00
Matthias Koefferlein
abeab280a3
[consider merging] fixed a crash happening while blending two OASIS files with ghost cells
2025-06-28 15:50:27 +02:00
Matthias Koefferlein
f2172d8e2a
Extension of the L2N/LVSDB format to support deleted terminals and parameters
...
Previously, when deleting parameters or terminals from device
definitions, these parameters or terminals re-appeared in the
netlist browser, because they were generated from the
template class (e.g. "A" and "B" from "RES").
An additional token is added that indicates whether to
remove all entries before adding new ones.
This feature is backward-compatible and LVSDB/L2N files have to
be generated from new KLayout versions to make use of that
feature.
2025-05-31 17:33:44 +02:00
Matthias Köfferlein
45fdaf0a6d
Merge pull request #2049 from KLayout/devel
...
Devel
2025-05-29 09:43:23 +02:00
Matthias Köfferlein
3ce50679fa
Merge pull request #2050 from KLayout/dev-polygon-graph
...
Dev polygon graph
2025-05-29 09:43:06 +02:00
Matthias Köfferlein
6ae3737cd5
Merge pull request #2065 from KLayout/feature/issue-2041
...
Feature/issue 2041
2025-05-29 09:42:46 +02:00
Matthias Koefferlein
9917978566
Merge branch 'master' into dev-polygon-graph
2025-05-28 19:01:42 +02:00
Matthias Koefferlein
0cb5f35659
Allowing the polygon neighborhood visitor to specify a variant type for deep mode
2025-05-27 21:07:28 +02:00
Matthias Köfferlein
dfd7d8ec1f
Merge pull request #2061 from KLayout/bugfix/issue-2060
...
Bugfix/issue 2060
2025-05-27 19:17:45 +02:00
Matthias Koefferlein
125e06bd49
Added doc, added a warning about no pins found at top level.
2025-05-25 17:53:11 +02:00
Matthias Koefferlein
094e11897a
Added the new feature: 'flag_missing_ports'
2025-05-24 22:33:18 +02:00
Matthias Koefferlein
aba912107b
Refined solution, so it would allow a larger coordinate range.
2025-05-24 00:09:52 +02:00
Matthias Koefferlein
6d28c78eeb
Fixed issue #2060 - the precision of the check was too low.
2025-05-22 22:48:48 +02:00
Matthias Koefferlein
e96f20a106
Introducing case sensitivity in circuit and netlist queries, makeing 'same_nets' more case sensitivity-aware in case of mixed sensitivity
2025-05-22 22:25:49 +02:00
Matthias Koefferlein
57c2add00a
API enhancement for NetlistCrossReference: obtaining information from one object only (net, circuit), does not need a pair anymore
2025-05-22 20:54:21 +02:00
Matthias Koefferlein
90c4f654b6
API for adding log entries to LVS and L2N databases
2025-05-22 19:57:06 +02:00
Matthias Koefferlein
4dd4524da9
Fixed typo
2025-05-22 19:47:39 +02:00
Matthias Koefferlein
6b8c79c488
Fixed a segfault (thanks, Martin\!)
2025-05-22 18:50:25 +02:00
Matthias Koefferlein
5c27fedfe5
Debugging and bug fixes. The 'big example' from issue 2014 now works
2025-05-17 00:44:15 +02:00
Matthias Koefferlein
113c701345
Trying explicit member template instantiation to solve linker issue
2025-05-16 23:23:11 +02:00
Matthias Koefferlein
6cd4b97cd3
Including internal net names in LVS DB
...
Problem: so far, these names have not been conveyed.
But after the net IDs changed in the LVS DB (renumbering),
the names should be retained. Otherwise it is difficult to
relate log level entries or Spice netlists to them.
2025-05-15 21:17:15 +02:00
Matthias Koefferlein
f7c7e8b0be
Fixed unit tests
2025-05-04 15:41:26 +02:00
Matthias Koefferlein
aca3095efa
WIP: allowing multiple vertex ports on the same location
2025-05-04 15:38:45 +02:00
Matthias Koefferlein
80ad38f81b
WIP: debugging, tests. Triangulation should be safer now against linear chains of vertexes.
2025-05-04 14:36:34 +02:00
Matthias Koefferlein
f83cd61843
WIP: debugging, tests.
2025-05-04 13:11:46 +02:00
Matthias Köfferlein
e76e9b7d0b
Merge pull request #2017 from KLayout/bugfix/issue-2014
...
Fixed issue #2014 (strm2oas lef/def/gds collect drops cells reference…
2025-04-27 20:53:47 +02:00
Matthias Köfferlein
c7514ba24d
Merge pull request #2031 from KLayout/bugfix/issue-2011
...
Bugfix/issue 2011
2025-04-27 14:35:37 +02:00
Matthias Koefferlein
5efcf83640
Bugfix: Deep mode XOR needs to maintain the layout origin of the first argument even if it is empty
2025-04-26 23:24:26 +02:00
Matthias Koefferlein
ffa42653fe
Addressing issue #2011
...
- "report" can now be late in DRC without internal error
Yet, the report will only capture the output layers
after the report statement has been called.
- Text objects don't create zero-area polygons in deep mode
XOR now.
2025-04-26 22:04:50 +02:00
Matthias Koefferlein
9bf03390de
More robust output for tests, some debugging
2025-04-20 21:23:01 +02:00
Matthias Koefferlein
7f0b2d532d
Bugfixes
2025-04-20 20:07:47 +02:00
Matthias Koefferlein
f71210c64a
WIP, more testcases, debugging
2025-04-20 19:09:24 +02:00
Matthias Koefferlein
88a1ccbcfb
TriangulationRExtractor, some debugging, tests
2025-04-20 16:20:35 +02:00
Matthias Koefferlein
1379d30502
Debugging, Tests
2025-04-19 20:55:15 +02:00
Matthias Koefferlein
8a122c8a7d
WIP: bug fixes, one more test
2025-04-18 23:29:29 +02:00
Matthias Koefferlein
71620445ee
Polygon#triangulate now returns a 'raw' region, same for SimplePolygon#triangulate. Working on hm_decomposition (tests, bug fixes etc.)
2025-04-18 15:13:29 +02:00
Matthias Koefferlein
e764716bda
Preserving the hull of simple polygons during insert in a Region, hence skipping the compression
2025-04-18 15:12:30 +02:00
Matthias Koefferlein
c6a4b6aba0
Added a new utility function
2025-04-18 00:15:43 +02:00
Matthias Koefferlein
3ed39e8a4a
Internal vertex ID added, cleanup
2025-04-17 23:40:58 +02:00
Matthias Koefferlein
a2ef7a28f8
WIP
2025-04-17 23:20:37 +02:00
Matthias Koefferlein
94396da117
Fixed problem of on-edge internal vertex/precious vertex
2025-04-16 23:43:27 +02:00
Matthias Koefferlein
4f1b03496b
Handling of points in Convex decomposition
2025-04-16 01:15:18 +02:00
Matthias Koefferlein
60d1fb0685
Porting HM decomposition to new PLC framework
2025-04-16 00:02:25 +02:00
Matthias Koefferlein
76e039bd2a
Removing obsolete dbTriangle/dbTriangles
2025-04-13 23:06:49 +02:00
Matthias Koefferlein
802cf99521
Porting dbTriangleTests
2025-04-13 22:58:37 +02:00
Matthias Koefferlein
627e244443
Refactoring: generalization of Triangles into db::plc::Graph in dbPLC.h
2025-04-13 22:44:14 +02:00
Matthias Koefferlein
291c91fcaa
Merge branch 'dev-polygon-graph' into wip
2025-04-13 17:16:16 +02:00
Matthias Koefferlein
d7193e972c
WIP
2025-04-12 23:59:43 +02:00
Matthias Koefferlein
7b069d17c3
WIP
2025-04-12 22:30:00 +02:00
Matthias Koefferlein
6f9a2da04a
WIP
2025-04-10 23:33:50 +02:00
Matthias Koefferlein
910f697d0b
WIP
2025-04-10 19:15:12 +02:00
Matthias Koefferlein
fa618a5b76
Fixing the strict weak ordering issue inside the edge processor
2025-04-09 23:35:09 +02:00
Matthias Koefferlein
3bd9a96f67
Merge branch 'bugfix/strmxor' into bugfix/issue-2014
2025-04-08 22:55:45 +02:00
Matthias Koefferlein
8150e732af
Hopefully fixing strm2xor finally, added a test
2025-04-08 19:14:01 +02:00
Matthias Koefferlein
789e183be9
Shortcutting hierarchy in case of skipped shapes, this restores the original performance
2025-04-08 00:04:21 +02:00
Matthias Koefferlein
41e9cb5893
Maybe fixing basic issues with strmxor
...
1. Output of shape countsi in deep mode was hierarchical with
output file, flat without
2. Refactoring of XOR (for_merged optimization) needed to
create cover cell variants
2025-04-07 00:53:43 +02:00
Matthias Koefferlein
bcf14ede3e
Fixed issue #2014 (strm2oas lef/def/gds collect drops cells referenced by sky130 spare)
...
Problem was that there was the implicit assumption that
substitution cells would be top cells (or at least: not
child cells of other substitution cells).
2025-04-05 22:06:29 +02:00
Matthias Koefferlein
b0f05b5327
WIP
2025-03-29 23:18:16 +01:00
Matthias Koefferlein
40a0113ce5
Fixing Texts[], EdgePairs[] and Edges[] operators - both in terms of returning xWithProperties and objects with properties at all
2025-03-27 00:27:53 +01:00
Matthias Koefferlein
3aebf90ecd
Texts[n] now also provides a TextWithProperties object. Bugfix: this method was not delivering any objects with properties at all.
2025-03-26 01:22:54 +01:00
Matthias Koefferlein
a24d5388d7
Region[] now returns a PolygonWithProperties object or nil
2025-03-26 00:56:54 +01:00
Matthias Koefferlein
db66a6ee74
Base class of DEdgePairWithProperties was EdgePair, not DEdgePair
2025-03-25 23:43:14 +01:00
Matthias Koefferlein
efeb2c061b
Layout queries support diff as placeholder for the current cell
2025-03-23 16:51:47 +01:00
Matthias Koefferlein
a22f48d87a
Texts#polygons now has an argument to specify a property key that receives the text string
2025-03-23 15:54:18 +01:00
Matthias Koefferlein
f977973b85
RecursiveShapeIterator#property and RecursiveShapeIterator#properties
2025-03-23 15:23:19 +01:00
Matthias Koefferlein
71644fa56c
Implementing additional vertexes for triangulation
2025-03-23 11:34:13 +01:00
Matthias Koefferlein
8727c31d36
Merge branch 'bugfix/issue-1996' into wip
2025-03-23 11:11:20 +01:00
Matthias Koefferlein
16be7bf8c1
Merge branch 'bugfix/issue-2002' into wip
2025-03-23 11:10:54 +01:00
Matthias Koefferlein
593678e228
WIP: Polygon#delaunay and variants
2025-03-23 09:55:08 +01:00
Matthias Koefferlein
986474d465
Added one more testcase
2025-03-23 08:57:06 +01:00
Matthias Koefferlein
73364ee406
Solving issue #2002 by allowing variable widths on the path segments due to 45 degree segment snapping.
2025-03-23 00:57:25 +01:00
Matthias Koefferlein
6228668fa1
Fixing issue #1996 : Providing a more robust triangulation
2025-03-22 21:47:22 +01:00
Matthias Koefferlein
a727ed0b1d
Fixed a compiler warning
2025-03-22 20:47:28 +01:00
Matthias Koefferlein
2668b42d29
Separating tl::hfunc from std namespace. Needed to support int128 in tl::Variant for 64bit coordinate builds.
2025-03-22 20:35:15 +01:00
Matthias Koefferlein
6f69efd427
WIP
2025-03-20 23:30:30 +01:00
Matthias Koefferlein
d9343ee530
WIP
2025-03-18 17:28:12 +01:00
Matthias Koefferlein
1f5c2b5132
Marked one test as long runner
2025-03-18 14:44:27 +01:00
Matthias Koefferlein
df631aa970
Some minor refactoring
2025-03-18 00:19:15 +01:00
Matthias Koefferlein
6596008826
instrumenting triangles implementation with Quad Tree, but without effect
2025-03-18 00:10:00 +01:00
Matthias Koefferlein
cd62f62140
WIP (quad tree)
2025-03-16 23:24:06 +01:00
Matthias Koefferlein
4e65b96cb7
WIP (quad tree)
2025-03-16 21:10:15 +01:00
Matthias Koefferlein
f3037d11f3
WIP (quad tree)
2025-03-16 18:16:15 +01:00
Matthias Koefferlein
4aeb94d42e
WIP (quad tree)
2025-03-16 17:13:06 +01:00
Matthias Koefferlein
477e2b5a31
WIP (quad tree)
2025-03-16 16:43:56 +01:00
Matthias Koefferlein
4369835e8b
WIP (quad tree)
2025-03-16 16:36:49 +01:00
Matthias Koefferlein
f1f35ae2a4
WIP (quad tree)
2025-03-16 14:46:03 +01:00
Matthias Koefferlein
5c8e0539ee
WIP (quad tree)
2025-03-16 13:56:16 +01:00
Matthias Koefferlein
54b5d9f5d6
WIP (quad tree)
2025-03-16 13:35:51 +01:00
Matthias Koefferlein
f136fdcde6
WIP
2025-03-16 00:52:57 +01:00
Matthias Koefferlein
d60b296417
Improvement: Device#terminal_ref to get a NetTerminalRef from a Device.
2025-03-14 23:29:09 +01:00
Matthias Koefferlein
930e09809b
Added an argument name
2025-03-09 23:20:57 +01:00
Matthias Koefferlein
2baaf322eb
Fixed a few doc typos and default values for 'lmap' on build_nets
2025-03-09 23:20:18 +01:00
Matthias Koefferlein
da88973df9
A number of new methods and variants in LayoutToNetlist
...
The goal is to support texts as native objects in
LayoutToNetlist.
Primarily this means, that instead of using a Region
to identify a layer, it is encouraged to use a
layer index instead. Also, Region is not longer the
only way to represent a layer, Texts is available
too.
It is possible now to retrieve the texts of a net
using "texts_of_net".
Also, the "lmap" parameter of "build_nets" became
optional. If "nil", a layer map is created based
on the layer info attribute of the layers.
2025-03-09 23:07:46 +01:00
Matthias Koefferlein
86202fa23c
WIP: refactoring of LayoutToNetlist for more consistent support of Texts for layers
2025-03-09 19:22:04 +01:00
Matthias Koefferlein
903bd70223
Fixed merge issues
2025-03-06 22:24:05 +01:00
Matthias Koefferlein
87e7d8e493
Merge branch 'master' into devel
2025-03-06 19:35:32 +01:00
Matthias Koefferlein
605fa44ca6
Another refinement for DSS bug fix.
2025-03-05 10:26:45 +01:00