Hello everyone,
I'd like to package a recently created pCell and share it with someone so they can beta test the pCell and make sure it has the functionality they desire. I have created a library which has all the code needed to evaluate the pCell. This is the library structure:
- Library Name
- tech.db, a folder with the pCell name, and a libInit.il file that loads the SKILL file containing the callback code --> load("./path_to_callback/callback_file.il")
- Within the pCell folder is a folder called "layout" which contains the compiled pCell layout, "data.dm" which I presume contains the compiled CDF code, and a folder called "skillCode" which contains my pCell SKILL code, CDF file, and the callback SKILL file (this callback SKILL file is called by libInit.il two directories up.
- tech.db, a folder with the pCell name, and a libInit.il file that loads the SKILL file containing the callback code --> load("./path_to_callback/callback_file.il")
I'm currently simply providing my library path to other users. The process I used to create this directory structure and load the pCell is based primarily on this resource: https://support.cadence.com/apex/ArticleAttachmentPortal?id=a1O3w000009xxXdEAI&pageName=ArticleContent#attachment_link
I also looked at the pCell reference manual (chapter 3 - How to package a pCell) but the only gap in my understanding lies with the location of the libInit.il file. Should it reside at the top level of the library I'm sharing or in the pCell folder. And, should the libInit.il file load the pCell code every time the library is invoked (by loading the CDF and the pcDefinePcell code)? In general, I'd really appreciate if someone can also point me to references on best practices re: packaging pCells, and PDK structure - how does Virtuoso load a PDK and what files does it look for and where?
Regards,
Nishant.