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

Comments

  • Hi Marbs, here's a sample code cv = RBA::CellView::activecv.cell.shapes(cv.layout.layer(104, 0)).insert(RBA::Box::new(0, 0, 100000, 150000)) This code requires KLayout >= 0.23 (previous versions did not have the convenience methods used herein…
  • Hi Rakesh, if you use SCMOS rules, the scaling is intended. That is implied by "scalable" CMOS. The idea is that you draw your layout on a technology independent scale and scale it down according to your target technology. I assume that 2…
  • Hi Geev, but maybe there are system-wide environment variables? Maybe inside some user profile? I though that the kernel architecture of MacOS is based on BSD and environment variables are available somehow. I found something about "/etc/launc…
  • Hi David, that was actually the intention of "close" and "far" style (See "Display/Background" in the setup dialog). The "close" style is used when zooming into enough so that displaying the original grid mak…
  • Hi David, yes there is, although not directly: RBA::Application::instance.set_config("grid-micron", 0.1.to_s) The set_config method is pretty generic. You can basically set every parameter that is stored in the configuration file (you'l…
  • It's actually fixed - 0.23.2 uses micron units. Thanks for mentioning this. Matthias
  • Hi Francois, I think there is a closing round bracket missing at the end of your text (copy/past issue?). I changed the Ruby version - maybe the older one was less picky. Could you add the bracket and try again? Matthias
  • Hi Rakesh, you don't need any technology setup in KLayout to get the dimensions right. GDS is specifying dimensions inside the format through "database unit" and "user units". Maybe there is something wrong with that in your cas…
  • Hi Geev, frankly I don't know. It's an environment variable. Is there anything like that on MacOS? Matthias
  • Hi Max, you're right. Thanks for mentioning that. It should be micron, not database units. I'll fix that in 0.23.2. Best regards, matthias
  • Hi Geev, KLayout is on Qt4 still. Qt5 is a major step and not necessarily compatible with Qt4. I did not port the code yet and would rather wait it to become somewhat more stable. Apart of that I know of some build issues with the clang compiler v…
  • Hi Max, yes, it's possible to programmatically place PCell's. There already was a forum entry about that http://klayout.de/forum/comments.php?DiscussionID=230&page=1#Item_4. Regards, Matthias
  • Hi, Maybe the technology isn't attached to the layout yet. Let me explain: The "T" icon is just a selector for a technology out of a list. It indicates the technology a new layout or a layout which is loaded will be attached to. A layo…
  • Hi Rakesh, you'll need a DRC script to run the DRC. The script maps the design rules to KLayout's DRC language. KLayout's DRC language differs from Calibre's ruledeck format for various reasons, so you cannot simply load the Calibre ruledeck. But u…
  • Hi chhung, thank you for the code. It's correct, but let put a note here for other readers: in the general case this approach is likely to produce incorrect results because it does not take into account inter-cell interactions. If the cells are non…
  • Hi Geev, is there any error message in AutoCAD which could be helpful? The documentation of the DXF format is extremely poor. Specifically there is no information about what records are actually required and which aren't. KLayout writes a subset of…
  • Hi Laurent, OASIS does not offer particular support for PCells. There are custom extensions you could use to store PCells, but their interpretation is not standardised. OASIS has a somewhat more elaborate annotation scheme, so it's possible to add …
  • Hi Chhung, basically, KLayout's DRC implementation is flat, not hierarchical. So it will pull all shapes to top level and process them there. Your approach however is correct - if you happen to know that you can process these cells separately. &qu…
  • Hi Max, you're basically right - except that the PCell code itself is not stored in the GDS files. Instead, KLayout stores the parameter values of the PCells in the GDS file. If you read a GDS file and a PCell library is installed, KLayout will try…
  • Hi Laurent, KLayout DRC is based on immediate execution of the commands, rather than collecting the information. Specifically the .output method runs after the actual operation, so it's not possible to determine the output a specific operation lead…
  • Hi, two options come into my mind, although there is not a single simple one: * copy, paste and change layer (select new layer in layer list, then choose Edit/Selection/Change Layer) * duplicate the whole layer with Edit/Layer/Copy layer - you can…
  • Hi Laurent, That's right - intersection of edges and polygons are not allowed currently. But it should be possible to emulate that with (layer1.and(layer2)).edges.not(layer2.edges) This will leave only those edges of layer1 which are inside laye…
  • Hi Laurent, I'm not sure - 2x3 should not be detected, because "with_holes(9, nil)" should detect all clusters with at least 9 vias. However, in the case of 2x5 for example you're right - since those are more than 9 vias, a 2x5 array will…
  • Hi Graeme, You may be right about the merging, but in the case of "not" it won't be effective. It's rather the output which is already a giant polygon. In general, performance is not the primary scope of KLayout's DRC engine, so there are…
  • Hi Laurent, counting functions are missing yet - but if performance does not count, it's fairly simple to add a custom method to select polygons by their number of holes: # Define a new custom function that selects polygons by their# number of hol…
  • Hi Graeme, thanks for asking that. Your observation is correct, but the intention of raw/clean is actually a different one. The difference is not in the output of an operation but in the interpretation of the input. In "clean" mode, poly…
  • Hi, I sorry, but there isn't. GDS already is the final format in the VLSI world and KLayout is supposed to be a viewer and editor for that format. It's not quite common to use PDF/Postscript or similar, specifically since those formats are pretty i…
  • Hi, the print function is intended to produce a printout document in the sense of a screenshot, not a mask. So there is no functionality related to your requirements. You may be able to reuse the screenshot functionality for your purpose - using a …
  • Hi, the code above illustrates how to create a shape and how to instantiate a cell so it becomes a cell array. This is one way to create an array. The two codes above combine like this: # create a new view (mode 1) with an empty layoutmain_window …
  • Hi friendx, That error typically happens if you have a recursive hierarchy, i.e. cell "A" calls "B" and "B" itself calls "A". The recursion in your case may be more subtle, but it's quite likely that this is …