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
@Tristian The solution strongly depends how you define "orientation" and how your polygons are defined. If the bounding box is a good approximation, "with_bbox_height" or "with_bbox_width" may be useful for differentiat…
Very good you figured out yourself! :)
Actually
l1 = layout.layer(1,0)
already generates the layer while
mw.current_view().add_missing_layers()
makes it visible.
Matthias
Well it can ... but I'm so proud of the compass!
And my impression is that without these items, you'll get lost quickly.
Or are you looking for screenshots without the KLayout "watermark"? :)
Matthias
@Tristian When you rotate a path like this, the angles are never exactly 90 degree due to rounding of the corners to database units. KLayout will only check "opposing corners" which form edge pairs facing each other. The angle included by …
Thanks ... but I could reproduce the problem in the cap cell inside your sample layout. So no external connection. I still think the analysis is correct.
But if you found a short the LVS did it's job :)
Matthias
@cboude I'm afraid there is no true explanation.
Please consider the PCell "stateless". This means, there is no warranty which state the PCell is in or when certain methods are called. KLayout will cache PCell evaluation results, hence it…
Hi Jim,
I saw in some design systems that the contacts are logically separated in different layers, but physically joined on the mask.
If that is not the case, one needs to define the priority and the "stopping nature" of certain layers:…
Thanks for the analysis and the test case! Very good! :)
This time (I think) it's not a bug :)
Here is my working code:
area_cap = 1.65e-15model_name = "CAP"Cap_P1 = cap_ID & poly1Cap_P2 = cap_ID & poly2# classify contacts into …
Yes, there is.
In Python this is __file__. In Ruby, it's __FILE__.
So in Ruby, to address a file called "additional.file" relative to the .lym file you can use:
File.join(File.dirname(__FILE__), "additional.file")
I Python I'…
You mean real product layouts?
The SkyWater130 MPW one (https://foss-eda-tools.googlesource.com/third_party/shuttle/mpw-one/) is a huge source of open sourced, real layouts. But these are not simple ones.
Matthias
I see. Thank you for this feedback.
This basically means you have other places which are incorrectly recognized as NPN bases (with fake "emitters"). I hope the previous explanation helped with that - a marker layer is definitely helpful a…
@Weiling_Zheng The tutorial is here: https://www.klayout.de/doc-qt5/manual/lvs.html
"bbdevices.net" is the schematic netlist (in SPICE format) you want to compare against.
To run the sample interactively, replace the first three lines by…
@dick_freebird Well, there is some logic, but it's built-in.
It's basically possible to code a device extractor, but that's slightly tedious, so some standard device extractors are provided. The "bjt3" device extractor works this way:
* …
@eeterry11 I tried the code of yours with the sample layout and it works for my 0.27.3 version - until it cannot read the netlist. But no error :(
BTW: I have fixed the issue and the extraction script you proposed initially should work in 0.27.5. S…
Hi @eeterry11,
I'm afraid there seems to be a bug related to collector region. Looks like my test base is too weak on this spot.
I need to debug the problem.
But there is a workaround. I think it's not required to include the collector into the d…
Yes, you're right. Negative values are not intuitive.
I have created a ticket: https://github.com/KLayout/klayout/issues/920
Thanks for reporting this.
Matthias
@andyL Thanks for sharing your code
Since 0.26.7, KLayout has a method which should simplify that code:
layoutB.top_cell().transform(trans)
should do the job of the instance and shape loops.
Matthias
Hi Lidia,
Well, you're operating outside the scope of the tool so there is limited warranty.
My comment about "Collecting all the nodes connected to a given original net" is pretty general. You can basically do this on two netlist object…
I single line with backticks with code looks this way:
(Image)
And without your layout I cannot debug the problem either.
BTW: why using "enlarged(0, 0)"?
Matthias
Ruby version is:
RBA::MainWindow::menu_symbols
and the shorter (and better) Python version (menu_symbols actually is a class method):
pya.MainWindow.menu_symbols()
Matthias
Honestly, this is weird, but I guess I cannot convince you not to do that. I feels like delegating an architecture problem to a configuration. I rarely have seen such things doing good. In my experience such a scheme just adds obfuscation at the vir…
@eeterry11 I think you should think simple. Without a sample, it's quite difficult to debug, but I'd propose to change the collector connection to simply:
# instead of:connect(emitter, contact)connect(collector_contact, nwell)connect(nwell, nplus)c…
You cannot access layers from the application from a PCell. Instead, the PCell will give you a layout object which is not the application's layout.
PCell layer parameters are given as LayerInfo structures. But the PCell helper class will provide th…
Hi Lidia,
so you actually want to do parasitic extraction.
The problem is that you are creating internal nodes which need to be named in some way. What you want to have in some way is a twofold extraction: once without the internal nodes and once …