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,420
Last Active
Roles
Member

Comments

  • You can basically try later - maybe there is an issue with the server. Right now, everything is working fine. If you have trouble downloading, that is often a Firewall issue. Maybe you organization is blocking GitHub? In that case you should talk …
  • You're right. I can reproduce the problem with "troublesome_taper", but not with other files. Maybe it is only happening with a single cell per layout. I will debug the problem. I have created a ticket for that issue: https://github.com/K…
  • The Shape class does not have a "position" method. "Shape" is not a base class of "Text". Instead "Shape" is a generic shape. You can turn it into a Text object, and then use "position": shape.text…
  • Hi @Ege_Bey, "Cell#set_properties" has an effect for me: (Image) gives: What is your KLayout version? Regarding the shape properties: you should not modify the shapes in the loop as changing the property may change the order of ite…
  • I see. But then you can't differentiated the two pads and dev's of Chip_C, right? Matthias
  • Hi @hkl_quint, Did you maybe run the script from the IDE? When a script is run from there, some events are suppressed to avoid interference of the IDE UI with script-implemented event handlers. This will change in the next minor release, but so far…
  • Hi @dick_freebird, yes, you're probably right with "merging gone too far". I have started some experimental branch where I tried extracting "semi-formed" devices on lower hierarchy levels and leaving them there unless the devic…
  • Hi @mtnhomecad, About the debugger: it should stop at 484, unless you do not have any layers in your view: (Image) The "select_from" example is simple: x = 0.0x = 10.0view.select_from(RBA::DPoint::new(x, y), RBA::LayoutView::Selection…
  • Hi @barlow, The problem is not a "fault mode". It is actually a logic thing. It applies to devices only, not to wiring. Looking at a planar FET, the device is complete when you know the entire gate region and all source and drain regions…
  • Hi Lukas, problem is that the Python module does not come with a Ruby interpreter and that is the basis of DRC scripts. Obviously it is not a good idea to embed Ruby into a Python module. Apart from being freaky, this will not work as Ruby wants t…
  • Hi @mtnhomecad, What exactly is the problem? You mention that the 4 lines do not work. Does it mean that layer are not made invisible or visible? I can't confirm this is not working. Matthias
  • Hi @Haruti, Optimizing performance starts with measurements, so first thing to do is to identify the bottleneck operation. You can do so by putting logger and timer statements into your code. The optimization options depend on the bottleneck you i…
  • Sigh ... This is why I abondoned XSection. It suffers from a lot of simplifications. It is a smart painting tool, nothing else. People simply expect too much. "delta" is some cleanup distance and XSection is free to apply variations of t…
  • Well, you're right. The helper class is actually singleton-style and not re-entrant. Recursive PCells sound freaky though. You can code the PCell based on the underlying PCellDeclaration object instead of PCellDeclarationHelper. This class is stat…
  • Hi @blueman_44, Thanks for the test case. I had to remove the "deep" statement to see the comments you mention, but then it is getting pretty slow ... I don't know if that the right approach, as the netlist is made from nodes only. There…
  • Ah, you're right. The number is not memory, it is some counter. I don't know what is going on exactly without knowing the design, but LVS compare may be elaborating on ambiguities. Matthias
  • Hi @barlow, I think that @laurent_c is pointing in the right direction. The following happens: when devices overlap across hierarchies, they are not be "complete" in the context of their own cell. This means: their footprint - including …
  • Hi @barlow, that is a two-level progress. I assume the 0% is something first level and 3% second level (i.e. analyzing the ambiguous nets). But the last number is memory. You process takes 107GB? You can help LVS by adding labels on the nets - un…
  • Hi @dick_freebird, there are some additional options that control display of layers: (Image) There is also this option which adds missing layers to the layer table, even if not in the .lyp file: If you "rename" a layer to "empt…
  • No, right now there is no such way. Making the guiding shape parameter readonly could be such an option. But currently, this flag does not have the desired effect. Matthias
  • Very good, thanks for letting me know! I provided a comment in the issue tracker (https://github.com/KLayout/klayout/issues/1721), maybe that will help others to find it too :) Thanks, Matthias
  • Hi @dick_freebird, There is not really a particular documentation I'm afraid. The "texts" function is described here: https://www.klayout.de/doc-qt5/about/drc_ref_layer.html#h2-3353 The (somewhat) new thing is that texts form a special k…
    in with_text Comment by Matthias July 2024
  • Hi Laurent, "decompose_trapezoids" is not available as a DRC or LVS function (yet). It is a method the of "Region" class. But there is a workaround: every DRC or LVS layer has a member called "data" which is the inter…
  • Hi @tomas2004, this is a bug that has been resolved in 0.29.2: https://github.com/KLayout/klayout/issues/1709 Matthias
  • First, my understanding of Ruby threads is that they do not use multiple cores. It is just a way to provide asynchronous execution. Second, real multi-core thread enabling is higher art (MT safety, synchronization etc.). This is not as simple as th…
  • Thanks a lot :) I checked my monitoring log and response times for the repository index are typically at 0.5s with a few excursions, but with one exception below 10s. But no 500 errors :) Matthias
  • So you mean the PCells did not have a layer set? That explains why you do not see anything for them :) Matthias
  • Hi @blueman_44, sorry, I don't get it ... so does you chip have a single top cell? So there is one circuit with multiple subcircuits and you want them to become combined? You're saying you want to distinguish, but then you say you want to combine …
  • Hi @deacon19062, The number is added to make the cell name unique. GDS has a strict requirement of unique cell names - you cannot use the same name for multiple cells. So the "$n" number is not related to hierarchy. It simply happens to …
  • Hi @yearningmare, No, you cannot create "subtractive" geometries by PCells. GDS/KLayout is an "additive" database, so every cell can only add shapes, not remove anything from shapes outside the cell context. A PCell is not diffe…