Matthias

About

Username
Matthias
Joined
Visits
16
Last Active
Roles
Member

Comments

  • 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 …
  • Hello, Could you please be more specific? What's your input and what is the expected output? Both pieces of code refer to a specific problem, and I don't think they easily combine to solve yours. If you need more information about writing scripts…
  • Have you sent something? I have not seen any mail ... Matthias
  • Hi azmaolier, If you still need to scale the layout - starting with version 0.23 there is a whole-layout scaling function in edit mode: "Edit/Layout/Scale". And if you want to change database units you do so with "File/Layout Proper…
  • Hi arided, "cell_by_name" returns the cell for a given name. The correct code to get the top cell name would be top_cell = ly.top_cellfn = "trial"+top_cell.name+".OAS.gz" And the active layout can now be obtained so…
  • Hi arided, thank you for mentioning this :-) Matthias
  • Hi Max, the difference between a scripted layout generator and PCells is basically the ability to interact with the results of the generator algorithm. PCells can be adjusted quickly as used as components inside some other, manually created, layout…
  • Hi romaxx, you mean "EdgeProcessor", right? I think it's the way the edge processor is used. Could you give some sample code? Matthias
  • Hi Laurent, thank you for mentioning that bug. Regarding the request: it's very difficult to output the name of the test, but I thought that adding the source line behind the command might provide enough information to associate the timing with th…
  • Hello, the intention of sessions is to save state of the program and since the files given in a session can be loaded from anywhere the session file uses absolute paths to address them. I understand that you like to use sessions for providing pack…
  • Hi Laurent, Tiling is a method built into the DRC language and you can enable tiling by adding certain commands to the script. Please see http://www.klayout.de/doc/manual/drc_runsets.html#h2-639 for details. Regards, Matthias P.S. have you had a…
  • Hello, DXF support in general suffers from the bad documentation of DXF. I don't know which flavor of GDS is written by Ledit and DXF is in unit-less, so you have to set the right unit in the reader options. If you send a sample file to the mail a…