I have tried to extract a resistor_with_bulk with an empty netlist. And ... KLayout extracts a resistor with only 2 terminals :'(
Furthermore, if I try to add the reference netlist with a 3 terminal resistor, it complains that a resistor should on…
If it is only in 1 cell, you can select all the shapes of a layer, size it by 0.0005 then size down by -0.0005 it will remove all holes and gaps smaller than 0.001µm = 1nm.
If you need it for all layers and all cells, you can write a script based on…
I had nearly the same problem under Windows7-x64, KLayout-64b was always crashing and I had to use KLayout-32.
Today, I found out the problem : I had Ruby-x64 installed in stand-alone = it makes KLayout crashing. I removed it and KLayout-64 was wor…
Hi Fatsie,
I use the same syntax as yours, but it works fine for me... I use the beta-version 0.27 from : https://www.klayout.org/downloads/master/
If it does not work, it is probably due to the "same_device_classes" syntax
BRgds,
Laurent
Sorry, here is the way to check it :
min_edge_aa_fourfive = 0.45um((aa.edges.with_angle(45.degree))+(aa.edges.with_angle(135.degree))).width(min_edge_aa_fourfive).output("AA_W with 45 degree : AAwidth 45 degree < 0.45 µm")
Laurent
You can find many DRC examples here :
https://github.com/laurentc2/SKY130_for_KLayout/blob/main/drc/drc_sky130.lydrc
https://github.com/laurentc2/FreePDK45_for_KLayout/blob/master/drc/drc_freepdk45.lydrc
For your 45 degree DRC :
edge_aa_fourfive …
A better link is : https://github.com/yuchsiao/caplet :
-. caplet_gds2geo is python script to change the .GDS file into a .geo file (ascii 3D file)
-. caplet_geo has to be compiled (C++) and is changing .geo file into .qui that can be read by F…
Sometimes, I directly edit the lyp file. But it not recommended, so a backup is mandatory before to do it. I find that method fast because I like to manipulate files. Takecare, good luck!
Here is an exemple of contact over Poly :smile:
# DRC scripts # Define a new custom function that selects polygons by their number of holes:# It will return a new layer containing those polygons with min to max holes.# max can be nil to omit the u…
Best to start : https://www.klayout.de/doc-qt5/about/drc_ref_layer.html
Then, you can look at examples such as : https://github.com/laurentc2/SKY130_for_KLayout/tree/main/drc
or : https://github.com/laurentc2/FreePDK45_for_KLayout/tree/master/drc
…
Austin, sorry for the error on Github, I also corrected it.
To fix the substrate node, I am using 2 tricks :
connect_global(pwell, "VSS")connect_global(nwell, "VDD")connect_global(bulk, "VSS")
and
connect_implicit(&…
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
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…
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…