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
Might be a solution too ... I need to investigate the options.
I have create a ticket for this: https://github.com/KLayout/klayout/issues/426
Kind regards,
Matthias
Hi Jim,
I'd suggest to start defining other technologies (use Tools/Manager Technologies): You better leave the "(Default)" technology empty and define two new technologies - e.g. "5um" and "12nm". You can then configu…
I think I see the issue. I need to look into this. I'd say it's a bug related to "simplify". The case of floating nets connected together apparently isn't captured yet.
I have created an issue for this: https://github.com/KLayout/klayout/…
Hi Carlos,
and this log is a rerun of the already built folder and skips the uic calls ...
Well, anyway - the chance of finding something there are small anyway. I assume there is a inconsistency between your uic and qmake/Qt installation.
So you…
No, I'm sorry - there is no such way right now.
I imagine this could be implemented by using a special notation in the technology description such as "Group title\tTechnology description" ("\t" = Tab character).
I just don't kn…
Hi Ege,
you mean from a script?
Did you create the layout objects yourself or do those live inside the main window?
Closing all views should basically release all layout objects. That's halfway true for libraries, but I don't assume that's your p…
You mean the names of the new cells are constructed by replacing the "A" prefix by "B"?
Here is such a custom query:
with instances of cells * where cell_name ~ "A(*)" do inst.cell_index = <<"B"+$1>…
Hi haru_f,
these floating nodes should be eliminated from the netlist if you use "netlist.simplify" before the compare step.
Such dummy pins are very common not only in dummy gates but also in filler cells or dummy pattern for uniform de…
What kind of programming language is "instance cell A into a 300x300 array" supposed to be?
"Code" goes like this:
ly = pya.CellView.active().layout()ly.top_cell().insert(pya.CellInstArray(ly.cell("A").cell_index(), p…
I have enhanced the solution somewhat:
* Less memory overhead when not using the properties
* The properties are persisted in L2N, if you want to write that to a file
* Properties are also written to layout in LayoutToNetlist#build_nets ... maybe t…
Hi Martin,
yes, that's the best option I can think of.
If your library is strictly of a discrete hierarchy type, like this:
TOP+ CELLA+ CELLB+ CELLC
then you can run the sizing on CELLA, CELLB and CELLC individually if you use a script (not DRC)…
Hi Laurent,
that would be the "connected" case vs. "non-connected" one, right?
That would require a net connectivity extraction in the first step. With this information, the check should basically feasible (although I assume th…
Hi,
I think there is something weird with your Qt installation. I'd need to first lines of the log, not the last ones. Up the point when compilation starts. Please include at least one compiler call.
Matthias
Hi Laurent,
currently, you cannot refer to variables in this path. It's possible to implement, but right now, this isn't there yet.
But essentially a file paths should be looked up relative to the location of the *.lyt file.
So if you simply ente…
I have created a ticket here: https://github.com/KLayout/klayout/issues/new
However, "DEdge" is difficult as there is no database unit in the general case. But "Edge" should be possible.
Matthias
Hi,
The method is "Cell#copy_tree":
ly = ... # a pya.Layoutnew_cell = ly.create_cell("NEW_CELL")new_cell.copy_tree(ly.cell("ORIGINAL_CELL"))
This will create a copy of "ORIGINAL_CELL" in "NEW_CELL"…
Hi Thomas,
Took me slightly more than half an hour, but you see the trial version in "netlist_properties" branch.
Use is like:
# set a property:obj.set_property(key, value)# get a propertyobj.property(key) -> value
"key"…
Yes, internally there is code for this.
Basically it's even available when you perform a boolean "AND" between two edge sets - one with the polygon's edges and one with the single edge. Right now, this feature is intended for coincident e…
Hi spi,
That's not possible with a DRC script. DRC always operates on full layers.
In general, operations on cells or rather cell subtrees are critical as modifying the sub-hierarchy of a cell may have undesired side effects for other instances of…
Maybe you can join the discussion on GitHub here: https://github.com/KLayout/klayout/issues/381
There are some links to installation files and I got some feedback these are working.
Regards,
Matthias
Hi Chris,
sorry to come back here ... actually, I can't confirm that the configuration isn't saved on "cm_exit()". At least not on 0.26.
Here is my test:
* Change something in the configuration
* Enter "pya.Application.instance().m…
Hi tok,
you mean, the intersection with the polygon outline?
If you want good performance, there is no real option currently. If you're happy with Python performance, you could iterate over the Polygon's edges and use Edge#intersect:
dbu = 0.001 …
Hi Chris,
you're right .. that even happens when using File/Exit (which essentially is the same than cm_exit) -> https://github.com/KLayout/klayout/issues/395
Matthias
Hello,
you can export the traced nets to a layout and save this layout as GDS.
Another option is to use "Trace All Nets" from 0.26 (Caution: still somewhat experimental). This will produce a "netlist database" you can save and …
Hello,
formally, in viewer mode, even insert should not be possible :)
The reason why erase isn't possible is not the mode, but the memory layout: in viewer mode, a compact memory layout is used and shapes may be stored as shape repetitions (speci…