Friday 14th May 2021
I’m trying to understand if LE is suited to our needs.
I would like to use OA format for our design, using libraries either in OA or LEL format and I’m encountering some issues with parametric cells.
1 - Parametric cell from a LEL library into an OA design
I’m using cells from your OpelCellLibrary (e.g. NMOS). I can add the cell to my OA library, both in schematic and in layout. Parameters adjustment works as well. However as soon as I save the OA library, close it and then reopen the layout cell, I got errors like “Open of testlib/NMOS~1781888de94ee526c2148752471813af/layout failed - cellView for the design was not found. ()”. I guess this means that LE is not saving the parametric cell in OA library as a reference to the script, but as a fixed layout that is not saved along.
2 - Parametric cell from an OA library into an OA design
I’m using cells form IPL_cni130 sample library provided with Pycell Studio. Also in this case I can add the cell to my OA library, both in schematic and in layout and parameters adjustment works. I can move a step further, since the saved OA layout cell can be opened without errors. However, while the connectivity between schematic and layout seems preserved (highlighting in schematics also highlights in layout an viceversa), LVS is broken, reporting for each component both a missing and an additional cell. I found out that the LVS issue is fixed as soon as I change any parameters in the layout cell, which apparently forces a regeneration of the parametric cell, whose reference is also changed from the format “Nmos~IPL_cni130~ed964b08564762a950a1b0fb97a9fb3b” to “Nmos~ed964b08564762a950a1b0fb97a9fb3b”. Maybe is the different name in the saved cell that confuses LVS?
Are these issues related to how the components library and/or the parametric script are built? Or is it simply an LE bug? In both cases, is there a solution?
Jürgen LayoutEditorFull Friday 14th May 2021
1) OpenAccess has an interface for parametric cell that is used by PyCell. The macro parametric cells used in the OpenCellLibrary are independent from OpenAccess and cannot be connected via the mentioned interface to OpenAccess. Storing a link to the external macro would be possible, but is currently not implemented. If you or somebody else would need it, we will implement it. However, the resulting OpenAccess database would be locked to the LayoutEditor and no other OpenAccess tool would be able to read the parametric cells via the OpenAccess database. So storing to OpenAccess did not really give any benefits and I would recommend to use GDS instead to store the layout.
2) Yes, the different names causes the LVS violation. The name difference must be the result of a unfavorable setup. I was not able to reproduce it. PyCell comes without a schematic and without any CDF data. How did you create the OpenAccess cell? The typical application of the OpenAccess support in the LayoutEditor is that you get a PDK with parametric cells, symbols and all the further component description in a OpenAccess database from the foundry. Your data with schematic and layout will be stored in a second OpenAccess database and is linked to components of the PDK database. This scenario is tested and approved. Your application is very similar, so it should work as well. If you can share your data, I can review that to analyze what happened.
Monday 17th May 2021
Thanks for your feedback.
1) I understand your point. Right now we are just experimenting, and we found out that is easier to implement a parametric cell using LE scripting language than using Pycell. On the other hand, we found OA library more easy to manage. For instance I can edit a schematic and automatically the library symbol is updated, instead using LEL it seems that in order to keep a schematic editable I have to save it also independently from the library, as a schematic file, and then to update the library I have to do it manually. However you are absolutely right that going into the path "LEL on OA" means sticking to LE.
2) Yes, this is exactly the scenario you described. Our idea is to create our own OA (Pycell based) components library translating from a SKILL PDK. Right now, just for testing, I'm using the OA components library provided as an example with the latest version of PyCell Studio (library IPL_cn130), and I'm seeing the issue I described with the different names and LVS. Is it possible for you to check if it is an issue specific to this example library? I don't know if I'm allowed to share IPL_cn130 library with you, but I suppose it should be easy for you to retrieve it. I'm attaching here the lib I created using components from IPL_cn130. There is a single cell "cell1", using a single Nmos. If I perform LVS after openining the cell, I got both a missing and a additional component errors, but as soon as I update parameters of the MOS (even just opening the parameters dialog and clicking OK without actually modifying anything) the errors disappear.
Monday 17th May 2021
I tried to upload a zip file with the library, but it did not show up. How can I share it to you?
Friday 21st May 2021
Hi, any feedback on this? Thanks