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

Comments

  • 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).
  • Is this the Windows version? 32bit? 64bit?
  • 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/…
  • Hello dai, I'm sorry, but parameterized circuits are not supported currently. You need to write "w=0.3u" instead of "w=wna". Matthias
  • 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…
  • Hello, what precisely do you mean by "path result"? You can basically have the output as "edges". An edge is a line connecting two points. Edge output of a boolean operation means, the contour of the output polygons will be reso…
  • Hi Michael, use tiles: tiles(1000, 1000) This will split your layout into tiles of 1000x1000µm and run the operations on these tiles only. That takes only as much memory as a single tile needs. Plus you can utilize multiple cores: threads(16) t…
  • Hi, My example was Python, hence the "self". For a discussion of how to call a PCell inside another one, please see: https://www.klayout.de/forum/discussion/comment/5948#Comment_5948 This problem has been addressed a couple of times her…
  • Hi Jim, Regarding 1: I wonder why no one has asked this before ... Actually there is a way to include files, but it's slightly clumsy currently. It should be as simple as this: include "include_me.drc" However, it's not. Ruby, like mo…
  • Very good :) I hope it does what it's supposed to. Matthias
  • Hi Freda, GDS can't represent holes and cannot write polygons with more than 8191 points. So maybe GDS isn't the right format to use at all? Have you tried DXF? Matthias
  • Hi Jim, well, the main issue is the non-scaling font (which I personally use a lot). This means that one cannot assign a fixed dimension to a text which itself means the database (which does not know about the zoom factor) can't store that and so t…
  • Wow! thanks a lot. That's almost too much to digest :) My initial trigger was the HEMT FET discussion in this forum. This one is a symmetric device, but I'd need a JFET model simply to be able to print it to SPICE. I think I get an impression of t…
  • Hi, such a discussion is far easier if you paste script code to show what you've done. On the other hand, I'd just try a DRC script. Here is a sample: geo = input(1, 0)# inner radius, outer radius, number of points/full circlerounded = geo.rounde…
  • I did not solve, just suggest a solution path.
  • Hi Freda, It's quite usual in layouts to have touching polygons forming bigger connected regions. These polygons don't act individually but form virtual bigger polygons. That's called "merged semantics" in KLayout (or "clean" mo…
  • You mean you have imported into KLayout, not Cadence, right? I have never seen such a thing, I'm sorry. Maybe there is an empty string (label without text) inside your file, but technically that's just empty, not "null". I'd be able to h…
  • There was another post recently where I tried to explain the background of this problem as well: https://www.klayout.de/forum/discussion/1589/f2-cuts-off-some-text-features#latest I guess I need to think up a smarter way of handling texts with resp…
  • Snap to grid is a good suggestion, could be used for partial mode too. Snapping of paths is kind of difficult. In the general case I'd say snapping should be applied to the vertices. If path width is a multiple of twice the grid and the extensions …
  • Hi Laurent, These lines layer_info = LayerInfo.new(15,0) layer_index = lv.layer(layer_info) need to be written as: layer_info = RBA::LayerInfo.new(15,0) layer_index = cv.layout.layer(layer_info) LayoutInfo needs to be qualified with the R…
  • I see ... Maybe there is a basic thing I need to explain: unlike Cadence for example, KLayout does not assign a box to a text but just the text's origin. So eventually, a text is just a dot and the text's bounding box is also just a dot. When you p…
  • Hi Dave, I see your point. First problem is that KLayout currently only has MOS device, no FET. If you can live with the implications, you can try to go ahead. The problem is basically to map your problem to the (symmetric) MOSFET device template…
  • Hi, if you're using the 64bit version, there is no file size limit but you'll need some memory. For GDS, the memory requirements are roughly 2..3x GDS file size more or less independent of the mode. For OASIS, the memory requirements may be quite …