Hi Jim,
you can use master or any other branch, but without warranty.
The usual approach (and the one favoured by GitHub) is: features are developed in branches. When they are considered stable enough they are integrated into the master (pull request). Hence the master is kind of "latest greatest", but with a certain risk of being spoiled. There are also forks from other user with their own masters and branches. Don't confuse them with the ones from the KLayout project.
But eventually, when the master is considered to have a sufficient quality, a release is made by creating a release tag (https://github.com/KLayout/klayout/releases). A release is a snapshot which is then turned into Windows binaries, Linux packages, PyPI wheels etc. This this is a lengthy process and I don't want to do this too often.
Matthias
@rambir Thank you for this nice feedback :)
The usual way of naming a net is to place a label (a text object). If you include for example a layer called metal1, you can place labels on this layer. These labels will be used to derive a net name.
Yo…
@cgelinek_radlogic
Your request makes sense and basically it's possible to extend the frameworks towards that flexibility, but the path will be a different one and there are a couple of extensions required toward more flexibility - which is essenti…
Maybe the file got copy/pasted?
I feel like the XML elements are missing. So instead of
<description>Technology XH035</description>
There is only the text.
Matthias
Bad luck ... that's Windows again.
There is no package manager on Windows. Hence there is no way, KLayout can reliably link against some "system installation" of Python. KLayout uses the build chain from MSYS2, hence you can make Python m…
@LaserJon
The DRC scripts you're using are performing flat by default.
You can enable hierarchical processing by using the "deep" command right at the beginning of the script.
Deep mode however does not simply iterate over the cells. Th…
@allonpa Yes, the expectation is exactly that. Everything else would be a bug :)
I mean there maybe tiny differences such as "when two polygons touch in only one point are the still considered connected?", but in general there should not …
@cgelinek_radlogic
From 0.27.1 on, "equal" will simply be ignored. I thought about the performance issue too, but I cannot make STL's std::map to use "equal" anyway, so there is no use in having it. I called it outside std::map …
@mikamar This code is comes from Qt, so it's not in my hands.
On Linux I can use as many characters in the tabs without impact on the layer panel's width.
(Image)
but also on Windows I don't see a problem:
Matthias
@jiunnweiyeh
The usual way I do that is to sort all center values (bbox.center()) by y coordinate, pick all with the same y coordinate, sort by x and take x[n+1] - x[n] as the pitch. Then look for the smallest pitch.
Matthias
I have a proposal:
# reads patternpattern = pya.Layout()pattern.read("pattern.gds")# assumes the shapes are on layer 1/0l1_pattern = pattern.layer(1, 0)# gets the original pattern + merge to normalize areasr_pattern = pya.Region(pattern.…
@garry I have release 0.27.1 with this feature:
Python / Ruby:
edge_pairs = region.corners_edge_pairs()
DRC:
edge_pairs = layer.corners(as_edge_pairs)
Matthias
@allonpa Did you try the "Trace All Nets" approach? The netlist database is the best I can offer and it's the basis of the LVS feature. So I guess it's no longer experimental.
Matthias
@Grandement The DRC feature was implemented to provide an easy density check. For getting the actual density data, you can use a separate script like the one from this discussion: https://www.klayout.de/forum/discussion/comment/6759#Comment_6759
Th…
Proof of the contrary:
$ cat x.drcputs "hello, world!"$ klayout -b -r x.drc >x.txt$ cat x.txthello, world!
There is no "writing to tty" inside KLayout.
Green text comes from ANSI codes KLayout inserts when connected to a tt…
@mikamar You mean the tab names are very long? Maybe the problem is that all tabs want to fit in the layer panel. Could you confirm this?
Thanks
Matthias
@tagger5896 Thanks for this link!
You can try to flatten and save to OASIS. This should remove all redundant shapes.
BTW: you can do decomposition into "trapezoids" (boxes for Manhattan geometry) with this small DRC script:
# read layer…
Maybe you could show me your full code? The one above will not execute and it's not a sample.
But I see that layer isn't a pya.LayerInfo object but a layer index. That is wrong. Please take a look at the original discussion here: https://www.klayou…
@SBKev I'm not using onedrive for myself. What does a onedrive path look like?
One additional comment: the idea is to store all related information in the technology folder (which is given by the "base path"). In this case, you can use re…
Hi @garry,
there is no such function yet, but it should be easy to add. Thanks for this suggestion. I have created a ticket for this: https://github.com/KLayout/klayout/issues/808
Matthias
@cgelinek_radlogic Thanks for providing the test case.
I debugged the problem and actually the cause is still the strict weak ordering, but this time it's not the fault of your code :(
I have created an issue on GitHub: https://github.com/KLayout/…
Hi,
I had once created a PCell with such a code.
I'll share it here:
import pyaimport math"""This Code implements a Serpentine PCell It will generate a path starting from 0,0 and produce a serpentine thisway: +->+ +-> …
@EugeneZelenko Thanks for providing this answer.
I should add that you can set up "technologies" to switch between your favorite setups or install your best one as the default in File/Setup, Application/Layer Properties page.
Matthias
I see.
So maybe you layer properties file contains some very long layer name - like a hundred characters? Or many blanks?
The layer properties file is XML, so you can open it in a text editor and take a look.
Matthias
@MartinKP You discovered a new feature of 0.27 :)
Until 0.26, there was no covering and no count selector. I have added this just to make single-via discovery easier :)
Matthias
@cgelinek_radlogic Yes, the second solution clearly is better :)
For the internal error, it's very important to provide an implementation ensuring "strict weak ordering" as internally the algorithms are based on C++ STL sets and maps.
Fo…
@dick_freebird
I like you nice real silicon photos. Much better than polygons :)
I should explain what I mean by "tW": when KLayout extracts a device, it creates pins on layers you specify in the "extract_devices" call. This ca…