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
Wisely spoken! :)
That is basically the way I'd appreciate it. Custom devices are actually meant as a prototyping feature. It won't give you best performance, but in the end it is a way to test an idea and contribute something that is easy to integ…
I'm not an expert on Calibre formats (and I should not be), but to my knowledge the LVS results are much different from the DRC results. LVS delivers a binary database as far as I know while DRC database files are plain text and easy to read.
Matth…
That leaves the question open how to define W and L in a non-ambiguous way. I have no clue. If there was a specification I could work with that. But guessing the definition is tedious trial-and-error work.
Matthias
You can try current master with "-without-qt". That should give you a binary (klayout) which you can use with "klayout -b ..." as usual, but without the Qt overhead.
There is not much that can be skipped without compromising vit…
Very good :)
On the other hand - sorry, there is only a single line. You can stash your query in the list below and restore it if that is helpful.
Basically, queries can also be issued from Python, like this:
pya.LayoutQuery("with shapes on …
No, sorry. KLayout can't do that.
To my knowledge the LVS format is not disclosed and can therefore not be implemented in Open Source software.
Matthias
@dai This is documented here: https://www.klayout.de/doc-qt5/about/drc_ref_global.html#width
The definition of the "==" operation is not trivial and eventually it is implemented as "<" check which strikes out the "closer…
Hi Thomas,
there is a function called "path_trans" which will give you the (DBU unit) transformation into the top cell.
I'd suggest this solution:
select var b=(path_trans*shape.bbox)*layout.dbu; cell_name, b.center.x, b.center.y, shape…
Hi Jim,
thanks for these thoughts.
You're right about the MOS Caps - in that case W and L may make sense if you consider the same geometry than a MOS transistor. Maybe that is what @atork has in mind?
The devices I know are sandwich (MIM, inter-m…
The DRC/LVS engine is not entirely independent of the lay module and the Qt-less build will provide enough functionality for supporting DRC+LVS. What is left are exactly the modules you mention. So this definitely is what you ask for.
But basically…
I see. I admit I cannot predict the orientation of the edges after they go through these operations. There are rules, but one gets lost after a couple of operations.
Your solution is a fair workaround as of now. I think this is motivation for a non…
Related question: how do you define W and L for a cap?
There is no current flow, so W does not qualify as "perpendicular to current" and L not as "length of current path". Is that rather W is the smaller side of a rectangle and …
You're lucky, Qt-less build is on it's way :)
The code for KLayout without Qt is in the "qtless-canvas2" branch: https://github.com/KLayout/klayout/tree/qtless-canvas2
I will merge that soon to master. In my case I am able to build a &qu…
Is this an enhancement request? There is the Issue tracker on GitHub for this purpose: https://github.com/KLayout/klayout/issues
As a workaround, it's basically possible to create custom device extractors using this class: https://www.klayout.de/do…
@dick_freebird and @sebastian,
Could you check if the macros are marked "autorun early"?
In this case please switch to "autorun" (without "early").
Background: "early autorun" means the scripts are execute…
I see, maybe that feature needs improvement ...
Basically, changes are applied immediately. So when you change one item, and after that enable "change all" the change is already made.
But if you first select "change all" and th…
You're calling the methods on the classes, but they are methods you need to call on objects.
So instead of
... = RBA::LayoutView::object_selection
you probably want to say
# gets the current LayoutView **object**layout_view = RBA::LayoutView::cu…
There is no specific check for detecting fillets with a specific radius, I'm sorry.
Spacing is easy to check, but filled radius is something that is not implemented.
Matthias
Hello @dai,
There is one important thing about edges: their orientation matters.
I have prepared a sample:
This is the code:
report("Discussion 2102")input1 = input(1, 0)input2 = input(2, 0)vedges1 = input1.edges.with_angle(90.0)vedges…
"Stream Unknown Format" is thrown by "win.load_layout(...)" if the file cannot be identified as a valid input file format (DXF, CIF, GDS, OASIS, ..). But this error should never be thrown by "js.load" or "open"…
Hi Andy,
Colors, names and display styles are managed in layer properties files. You can tell KLayout to load a display properties file together with a layout either on the command line:
klayout layout.gds -l layer_props.lyp
or you configure KLay…
Sorry, I do not fully understand.
What "elements" are you creating? Do you mean PCells? So you placed the PCell five times and now you want to change a parameter for all these instances at the same time?
Just select all of them, open the…
Yes, exactly. KLayout uses a Python interpreter the same way the Python shell does. So once imported, modules are not automatically re-imported again. You need to tell the interpreter to discard the loaded module and reload.
The solution actually d…
Sorry, I don't understand.
You want to apply fillets? Or you want to check something with fillets? Could you please explain the rule you're trying to check?
Matthias