laurent_c

About

Username
laurent_c
Joined
Visits
261
Last Active
Roles
Member

Comments

  • The DRC check minimum and maximum width, for example for Metal1 : Metal1.width(1.0 , euclidian).output("M1_min_width", "Metal1 minimum width : 1.0um")Metal1.not(Metal1.width(2.0 , euclidian).polygons).output("M1_max_width&q…
  • Hi Nam, Here is the way I have encoded it and used for some time in an other process, so I have adjusted the sizes to your process : cont_edges_with_less_enclosure = metal1.enclosing(cont, 0.025, projection).second_edges.extents(0.0125)contwithout…
  • I still have the problem to automatically rotate text shapes (the pins at the top or bottom of mycells). Any tricks to rotate many text shape ? Laurent
  • An example of DRC/LVS for FreePDK45 : https://github.com/laurentc2/FreePDK45_for_KLayout
  • Here is the way I check non-45 degree angles of the GDS layer (15,0) : M1 = polygons(15,0)M1.with_angle(0 .. 45).output("M1_angle", "Non 45 degree angle Metal1") You can probably check it using the command : YourLayer.with_ang…
  • I again have the same issue with that script to copy a box from 1 layer to another layer : app = RBA::Application.instance mw = app.main_window lv = mw.current_view if lv == nil raise "No view selected" end cv = lv.active_cellview…
  • I tried it, it work nearly fine except that the rounding gives : 0.999 and not 1.000 for instance. And the shape stay off grid :o I tried scle_and_snap : it work very well ! But all path are turned to polygons and all arrays are flattened, so the…
  • I tried it, it work nearly fine except that the rounding gives : 0.999 and not 1.000 for instance. And the shape stay off grid :o Laurent
  • Then the way to code this error is described in : https://www.klayout.de/forum/discussion/comment/5381 Laurent
  • Thank you Dick, I already sent it to Matthias, who found the bug and fixed it in the last preliminary version. BRgds, Laurent
  • Maybe you have an answer from that discussion : https://www.klayout.de/forum/discussion/comment/4953 Laurent
  • Hi Matthias, The layout I used comes from a digital circuit routed with a commercial Place&Route tool. I have sent you by email the test case. BRgds, Laurent
  • Thank you dick for your inputs, but it is not a rounding error. And if i merge the shape I still got the error 1. The error 1 is due to the fact the width of the metal is 0.8um and the space 1.0um. So if the 2 vertical shapes are separated by 0.9um…
  • Hi Matthias, I use the latest 0.26.4 version of last week-end, and both edit_menu.paste and paste_interactive react the way : paste + move No way for me to have only : paste But the worst, if I hit M then a target, KLayout crashes :'( , but it id…
  • Thank you Matthias, I found out my mistake, I tried to solved it having general resistors (and sometimes I have them) : same_device_classes("M1", "RES") same_device_classes("M2", "RES") same_device…
  • I finally used search and replace. It works like a charm for the size : with texts from instances of nd288.. where shape.text_string ~ "D<*>" do shape.text_size = 1 um But is does not work for the rotation : with texts fr…
  • Thank you Mathias, but I tried it and it does not work. The test case is fairly simple : connect 2 or 3 metals (M1, M2 ,M3) in series with proper vias and use a resistor marker : RM1 = M1 & ResMkr RM2 = M2 & ResMkr RM3 = M3 & ResMkr Th…
  • You are right : the best is to specify the type of device in the netlist. The syntax is obvious for active devices, but what is the correct syntax for a resistor ? Thank you, Laurent
  • Thank you Matthias. I tried it, but it is not compatible with deep (hierarchical) extraction. I works for a simple cell without hierarchy, but find different nets at higher level. The solution I use so far is a boundary layer for all cells includin…
  • You need to create a first cell with 8 points. When finished, you create your heptamer cell, add the first cell instance. Then, select that cell and edit its properties to create an array with N column and M rows. The 2 points on the left and right …
  • Maybe, you also have to add this line at the top : report("sample DRC runset", File.join(File.dirname(RBA::CellView::active.filename), "sample.txt")) Laurent
  • You can try : FCT1 = input(46,0)FCT1.width(22.um, euclidian).output("FCT.width", "Min FCT1 width : 22 micron") Laurent
  • Hi, From : https://github.com/klayoutmatthias/FreePDK45_for_KLayout you have the layer file, as well as the KLayout DRC and LVS technology files. Laurent
  • Ocasta, you are right for mask shops. But the foundries will refuse to process with such shapes on your circuit, because it does not pass their DRC. Laurent
  • For information, here is the way I solved it : # ---------------------------------# METAL1_Smin_metal1_s = 300.nmr_metal1_s = metal1.sized(-1.nm).space(min_metal1_s)r_metal1_s.output("METAL1_S: metal1 space < #{'%.12g' % min_metal1_s} µm&qu…
  • Thank you Ocasta. I was using the standard checks : # ---------------------------------# METAL1_Smin_metal1_s = 300.nmr_metal1_s = metal1.space(min_metal1_s, euclidian)r_metal1_s.output("METAL1_S: metal1 space < #{'%.12g' % min_metal1_s} µm…
  • If you watch this conference : https://peertube.f-si.org/videos/watch/97eb2aca-1df0-451d-a47f-98ae68c29f55 with the slides : https://wiki.f-si.org/images/4/49/CoriolisDesignFlow.pdf Corriolis is already a potential solution for auto-routing. BRgds…
  • Matthias, "projecting" does not exist, I guess you mean : (projection does not make the job properly) metal1 - metal1.width(1.0.um, square).polygons Laurent
  • You have several examples there : https://www.klayout.de/forum/discussion/comment/1528 Laurent
  • The main difference I have foreseen between the 2 methods is that the first one (multi_clip) will take in account the shapes of the subcells, while the second one (region) will only consider the shapes of the topcell. By the way, Matthias, Is there …