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
Well, 0.24.6 is pretty old. I'm not going to scan four years of commits to answer the last question. Maybe the changed behaviour is a consequence of the auto-measure feature or some other request. I simply don't remember.
I'm using the ruler featur…
@Man
1.) please read the documentation. Flatten with one argument takes a single "bool" which is the "prune" parameter. "flatten" with a level is "flatten(level, prune)".
2.) you impose a specific interpretat…
Well, my suggestion is: if you're a beginner about EDA, you shouldn't start by looking into the abyss of C++ source code. It's like trying to get familiar with Linux by reading the Kernel sources.
Get yourself good text books about semiconductor te…
Come on, you're pulling my leg, are you?
I bet you guys were sitting together with a beer and tried to come up with the strangest request ever posted to this forum. I'd bet no one ever printed a Mandelbrot set on silicon!
But it's fun, so I give y…
Sorry, I can't confirm 0.26 doesn't snap the first vertex. It's working nicely for me.
Maybe there is a configuration issue. Try with a fresh configuration (rename "c:\users\your_name.klayout\klayoutrc" to something else and start again).…
Hard to say from the stack trace ...
The crash may have different reasons. It's not difficult to product a crash when using wrong layer indexes etc. I'm trying to turn them into meaningful messages when I find one, but there are still too many ways…
Hi Jim,
I see you're optimistic, so you just reserved 4 digits for the question count :)
Regarding log file etc:
* Log files are not quite useful - currently they just list the execution times, not error counts
* Logs can be seen in the log vie…
Hi Jim,
There are two ways actually: single quotes or double backslash:
> puts 'foo\bar'foo\bar> puts "foo\\bar"foo\bar
There is a third option actually: on Windows, you will also be able to use forward slashes for the path separa…
I might be wrong, but there was a bug fix for this already: https://github.com/KLayout/klayout/issues/486. It should have made it into 0.26.4.
You need to right-click on the script in the file list. "Save as" is the last entry.
Matthias
Hi Jim,
KLayout looks up DRC's and macros in various paths - the default one (you mentioned), technology specific ones, more listed in the "KLAYOUT_PATH" variable, package installations etc.
You can add any other path yourself by using &…
Hi Jim,
here is the difference:
1. Without errors:
Collapsed:
(Image)
Expanded:
Without "Show all" (right-click on categories list):
(Image)
2. With errors:
Collapsed:
Expanded:
(Image)
Without "Show all" (righ…
Hi Jim,
I'm sorry for the bad error message.
The problem is: "output" will expect something else when you send output to a report:
1.) When you use "report", the argument of "output" needs to be the name of a check a…
Hi Cristian,
You can use custom queries to achieve this.
For example this query will give you all boxes on layer 15/0 whose center (as seen from the top cell) is in a vertical band between 10 and 20 µm on the horizonal axis. Please not that you ca…
Hi Jim,
sorry, I went into the future already. I'm upgrading the DRC engine currently. "with_text" is a new enhancement as the DRC engine is going to support text layers as native objects.
So far, texts are kind of "hidden" obj…
Hi,
first of all there isn't a much better alternative.
But you can code the search in a loop and end the loop as soon as the condition isn't satisfied. With a loop you can check as many layers as you like.
In your code "size() < 0" …
Hi,
thanks for sharing this solution!
The code is correct, I just think you wanted to use "box_in_cell" in the following expression like this:
box_in_cell = iter.shape().box box_in_initial_cell = iter.trans() * box_in_cell
Regards,
…
Hi Nam,
please use Markdown formatting for verbatim code printing: a line with three backticks before and after your code. Your post is hardly readable.
But from what I understand there is still no solution as the circuit parameters are not read a…
So next question: standard package (-> KLayout will use the system Python) or did you build it yourself (-> KLayout will use the packages from the Python installation you built against).
Hi,
this script will give you the cell bounding boxes, not layout boxes. Cell boundary boxes are not layer specific, hence you cannot obtain a layer for them.
Matthias
Hi,
maybe you need to check the log for "bad_alloc" errors (File/Log Viewer).
Basically errors during the computation should make the density computation fail, but I cannot rule out entirely that errors get unnoticed. In this case, a til…
Yes, the solution basically is to use "cv.cell" rather than "cv" itself.
"CellView" is identifying a particular layout shown in a "LayoutView" in terms of layout, cell shown etc. Use the "cell" prop…
I see ... but I guess that's Windows.
Windows compilers traditionally keep "long int" at 32bit even for 64bit (which makes "int" and "long int" the same length). Linux compilers instead make "long int" 64bit.…
Hi,
The second case is lacking the symmetry requirement: there are basically two separate nodes in the low-side branch on the nand (the two serial transistors). But they are not interchangeable as one node is between two 3x transistors while the ot…
Thanks for all your inputs!
@dick_freebird The assertion-based extraction would be my last resort. I know this is thin ice as some users will regard that highly risky and heresy against the teaching of agnostic LVS. But for some devices such as coi…
Hi,
there is no DRC feature for breaking polygons into smaller parts, but you can use a low-level feature for doing so.
l = input(1, 0)l.data.break(8)l.output(10, 0)
For the description of the "break" method see: https://www.klayout.de/…
Hi Michael,
"bad_alloc" means there isn't enough memory available. If you're using 32bit, the available 2G are easily exhausted. On 64bit, you should see the memory peaking in top.
I wonder what's wrong with the smaller tiles. Memory con…
Hi jpk,
thanks for bringing up this issue.
There actually isn't a spec limit on OASIS, but there is one on GDS. GDS can only represent a maximum of 32767x32767 (or 65535x65535 if you read 16bit numbes as unsigned ones). But OASIS does not have suc…