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
Hi @CMeyer,
the netlist tracer is a different thing than LVS. Technically the netlist tracing is a part of the first step of LVS, but LVS is more than that: it needs to extract devices and trigger the compare step which compares against the schemat…
Hi @Mustafacc,
no, the script features are not intended to automate UI functions. That's a different level (the script API acts on the database level) and architecture wise, there are no hooks to support that. Maybe native Qt object hacking is an o…
I see. I feels a bit hacky as you need to act on the internal widget hierarchy, but basically that is possible.
It should be easy to provide that access. I just wasn't aware of the need to have it. I have created a ticket to remind me: https://gith…
Thanks @dick_freebird, that's exactly the point :)
Instead of flattening, you can also use Edit/Selection/Convert to Static cell. Then you'll get a normal cell and you can copy/paste as you like. Of course then you can no longer change PCell parame…
@CMeyer You're in the wrong place here. This is not about GDSFactory or the Skywater PDK. This place is for the core application, these other projects are independent add-ons.
If you seek qualified assistance, you should go to these projects. I did…
Hello @kazzz,
specifically the tolerances are not available when you load a LVS database. Recording the tolerances is kind of difficult as the compare operator can be a complex class beyond simple numeric tolerances.
The problem with device mismat…
Hi Eugene,
LayoutView used to be a QWidget, but that turned out no longer to be feasible with the upcoming of a Qt-less LayoutView for the klayout Python module.
Instead there is LayoutViewWidget if you want to embed a LayoutView into your own use…
@Sneha_123 your code becomes more readable if you add code block Markdown markup (a single line with triple backticks before and after the code - same as on github for example).
One way to achieve the desired behavior is by putting an annotated rec…
@dick_freebird Thanks for these insights.
I found some cases, where parametrized circuits are used to wrap devices - passing down the parameters to the actual "M" elements for example after manipulation. These parametric cells are never t…
I think you're confusing PyQt with KLayout's Qt binding, which is not PyQt (although similar).
In KLayout, the notation is "add" instead of "connect". There are a number of other differences and in general, KLayout's Qt bindings…
@mrg You can attach any file type to the forum if you put it inside a .zip archive.
In your case, first it is important to change the devices to "M" in the reference netlist:
.subckt sky130_fd_sc_hd__inv_1 A VGND VNB VPB VPWR YM0 VGND A …
@dick_freebird Thank you for this hint. I did know this either.
It may be possible to use a SpiceReaderDelegate to implement this feature, but in general I'd like to support SPICE natively if possible. Although I fixed a number of issues recently (…
@thor No, "$" disambiguators are only added if you create two or more cells with the same name. So I assume your code is not just creating a cell instance ("place it"), but somehow creating new cells, all called "AAA".
…
Hi,
I see such an issue, but only when running scripts from the IDE and with the debugger on. I also do not see the effect when I open the dialog in modal mode (using exec_). Also in my case, when I close the IDE, the dialog starts behaving normal.…
@LaserJon For (1) to work, you will need to draw the blanking rectangle. Then first select the things you want to cut. Use a rectangle select, so everything you want to cut is selected in one step. Then shift+click on the blanking rectangle to make …
Hi Vincent,
no, that is not related. The HAlign and VAlign classes are used to represent text alignment in ruler definitions for example.
In order to align shapes, you have to code the shape positions accordingly when you create them.
Matthias
@tomas2004 Yes, you're right. I'm asking myself however whether overlapping circles should be treated as errors. In that case, not using "raw" is the the right approach.
Matthias
@ashkan No, there is no "diameter" check. "Line width" is defined not in terms of radius, but in terms of edges facing each other. You can narrow down the interactions by using projection metrics - this means that only opposite e…
Hi Thomas,
according to the Qt documentation (Qt5 and later) that should work by assigning a QScreen object to the dialog before you show it:
dialog.screen = the_screen_you_want_to_show_it
However, I have never used that feature myself, not even …
@nairica Python is very hard to read when not formatted as code. Please use three backticks in one line before and after the code like described here: https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/creating…
That feels more like it should go into a technology option.
The code changes will affects many places, so that isn't a straightforward change, but manageable. Some functions such as the Fill (tiling) or the Adjust cell origin function already allow…
Understood - I need to add "Scale and snap" as a UI feature :)
Side note: "scale and snap" is too heavy - and has side effects such as generating cell variants - to become included in the writer. I'll deprecate downscaling / sn…
@dick_freebird I understood (from @kazzz's slides) that the original confusion came from the fact, that all permutations - also the incorrect schematics - matched with MOS. Right?
I guess me swapping S and D in the Spice reader (https://github.com/…
I see. Problem is that there is no annotation in GDS that allows me differentiating a layer for a specific purpose. So this can only work with a specific layer properties file.
I think of allowing layers to adopt some special purpose - maybe also i…