Matthias

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

About

Username
Matthias
Joined
Visits
1,513
Last Active
Roles
Member

Comments

  • Hi @dick_freebird Are those monitors of a different quality - specifically one is "high DPI" (e.g. 4K) and the other isn't? In that case, resolution switching must happen. Maybe there is an issue with the Qt5 I am using as of now. I do li…
  • Of course :) In most cases, "stuck LVS" comes from ambiguities - manifold parallel nets that share the same signature. This is typical for buses for example. In that case, helping LVS with proper net labels helps. But I will check if tha…
  • No, you cannot do that. Boolean layers have to be computed, for example through a DRC script. Matthias
  • I don't know if that helps, but the net names are taken from the topmost level in the hierarchy. The names from the lower levels are ignored. The reality is slightly more complex, but that is the basic idea. Nets are considered "full" alwa…
  • Dear all, thanks for this discussion. Actually KLayout has support for net classes, because you can form nets and filter names by glob pattern. So here is a solution if you name your HV nets like "...!HV". This sample is assume three lay…
  • Hi Johan, If you are happy with the QR code the PCell delivers, you can use Python to place a PCell. Here is an example how to do that. I places a QR code PCell in the current layout on layer 1/0: import pyacell = pya.CellView.active().cellly = c…
  • You can run "klayout -z -r script.py" for a mode that does not launch the application's main window. Still it will need a display connection on Linux. Matthias
  • Update: it's actually not that bad ... you don't need to metal5 patches to form real pins. KLayout will ignore schematic pins that are not connected from outside. I have attached a version that does not need these patches. What is left is the subst…
  • Hi @tnt, I have attached a version that passes LVS. It is based on the current version of the IHP PD with a few hacks and adding a section with the blank_circuit calls. grep for "PATCHED_FOR_DISCUSION_2602" to find the changes. Use "…
  • I took a look at the last sample. I had some trouble figuring out what was hacked in LVS, so I started from scratch with the LVS from IHP: https://github.com/IHP-GmbH/IHP-Open-PDK. I'm not finished yet, but there are a number of issues I see alread…
  • Hi @dick_freebird, thanks for the explanation. You're right, something like this was more intuitive. Maybe it is possible to use specific labels to mark a layout cell as "abstract". Unfortunately there are no views in GDS one could use fo…
  • No, I have not. I think those are builds you did yourself as I don't provide RH8 images. So please approach the guys who supply the builds. Maybe they built against a different Qt version or a different gtk version or whatever. I cannot debug somet…
  • Hi @shadowmaster, The Python API shares some concepts with C++ - namely the constness of certain objects. In C++, the cell delivered by "RecursiveShapeIterator#cell" is a "const reference". This means you should not manipulate i…
  • I am not sure what you mean. I used your script (after adding "import time" at the front) and to me these images seem to share the same magnification. Matthias
  • Hi Thomas, regarding 3a.): for a real netlist with devices, there is such a way, but not without devices. With devices, nets not attached to a device (except inside black box macros) are eliminated by "Netlist#purge_nets". Without devices…
  • I am not sure if the problem is on my server itself, or whether it is a load balancing problem on my hoster side. I am using a virtual instance and maybe it is sharing CPU time with someone malicious or a parallel instance is being under attack. The…
  • Perfect. Thanks a lot! :) I was able to debug the problem and here is my conclusion: the problem comes from the computation of the recognition layers for dantenna and dpantenna devices. They are computed this way (lines 3532++ in the XML file): # …
  • Yes, exactly. The bug is known and I will try to release a new version soon. Sorry for the inconvenience. Matthias
  • Hi @tnt, This is basically possible, but you need to configure it properly. I think the "substitute cell by a simple version" is the most promising approach. Again, some test case is required. You can supply it through my private mail if…
  • Hi @tnt, I would need a simple example to debug the issue. There is a specific issue with extracting devices that may make devices appear on the wrong hierarchy level. Here is one related discussion: https://www.klayout.de/forum/discussion/comment…
  • Hi Sebastian, yes, there are attacks, I assume, and they seem to intensify. The 500 is not generated by my application - they seem to come from some proxy or firewall around my virtual server instance. Specifically access from Asia appears to suffe…
  • Hello, if you have a KLayout technology file (*.lyt), you can simply import the file using "Tools/Manage Technologies". The right-click on the technology list (left panel) and choose "Import Technology". To produce a technology …
  • At least on my Ubuntu 24 GNOME the file dialog opens in the current directory as expected. On Windows for example, the file browser has some smartness built in to remember recent places, but that is not something I can change. Matthias
  • There are a number of options: 1.) Use a technology. This technology is stored as a .lyt file in <klayout-home>/tech/<name of tech>. This folder is a package that can be given to others including companion files such as layer properties…
  • I don't know what "myscript.rb" is in your case, but this works for me: myscript.rb: mw = RBA::Application::instance.main_windowmenu = mw.menumenu.action("file_menu.save").visible = falsemenu.action("file_menu.save_all&quo…
  • This is a feature of the system file dialog. It's not a KLayout feature. Your Window manager provides this dialog and there should be some documentation somewhere. On the GNOME desktop that comes with my Ubuntu 24 I can pick "Add to bookmarks&…
  • Are you maybe trying to run KLayout in batch mode? "MainWindow" will not have an instance in that case. Hence RBA::Application::instance.main_window returns nil. In normal GUI mode, this should return the main window object. Matthias
  • Hi @Bigb, That is difficult to debug then. There is no obvious issue. Maybe your organization has firewall rules in place which do not allow access to external servers? The first level of access is plain https, but in the next level - when downloa…
  • Hi @neil, here is my solution. The script is Python and can be run on the sample layout you provided. If you don't see the layer 100 generated use "Add Other Layer Entries" from the layer list's context menu. The idea is to combine two v…
  • I just confirmed everything is working fine currently. The error does not indicate a particular issue. What is your KLayout version and OS? Is the problem reproducible?