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
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
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 …
Hi Dirk,
I nearly had the same problem and solved it with a macro. See :
https://klayout.de/forum/discussion/1129/search-and-select-cells-in-a-given-area
BRgds,
Laurent
Thank you Matthias !
Collecting the instances before also allows to add a very useful Progress bar :
lv = RBA::Application.instance.main_window.current_viewtop = lv.active_cellview.cellinsts_to_flatten = []top.each_inst do |ci| cname = ci.cell.na…
I tried to write a macro, but I don't know how to flatten an instance :
Best regards,
Laurent
include RBAlv = RBA::Application.instance.main_window.current_viewlay = lv.cellview(lv.active_cellview_index).layouttop = lay.cell("toplevel")t…
Matthias,
I have tried to modify your script to select the cells but my syntax is not accepted, although you suggest it in another post.
Where is my mistake ?
# Batch run: klayout -b -r test.drc -rd gds1=a.gds -rd gds2=b.gds …
I have tried and it works fine, but I need to use the symbolic layers, otherwise the connections between layers is not done.
Beside, it would be nice to have the complete list of labels conflicting : a very nice feature for layout debug :)
Regards…