October 5, 2004 1 Schematic pcell implementation in Virtuoso ® platform Presenter –Umesh Sisodia On behalf of: Pranav Bhushan Cadence Design System September 2004
October 5, 2004 1
Schematic pcell implementation in Virtuoso® platform
Presenter –Umesh SisodiaOn behalf of: Pranav Bhushan
Cadence Design System
September 2004
October 5, 2004 2
Content
• What are parameterized cells ?• Motivation • Creating a schematic pcell• Pcell architecure• Examples from Virtuoso® analogLib• Future work
October 5, 2004 3
What are parameterized cells ?
• Graphic, programmable, generic cell• Allows customized instances• Layout pcells are in use since many years• Schematic pcell is a relatively new concept• Required for changes in :
– Pins– Size– Structure/Shape
• Independent of underlying database• Open Simulation System (OSS) supports pcells
October 5, 2004 4
Advantages
• Faster library development• Compact and efficient libraries• Less maintenance• Reduces chances of errors• Eliminates hierarchy explosion for small changes
October 5, 2004 5
Creating a schematic pcell
•Steps to create a pcell
•Create and edit skill code
•Compile pcell
•Define CDF parameter(s)
•Test pcell
•Netlisting support
•Post processing support
October 5, 2004 6
Defining a pcellskill code
pcDefnePcell (list( ddGetObj(“libName”) “cellName”
“viewName” “viewType”
)
( ( param1 “defaultValue” )( param2 10 ) ….
)
( ;; Create symbol shape & connectivity)
)
•Compiled skill function < 64 K
•You can call your own functions within pcells
•pcCellView is an internal variable automatically created
•Should be compiled in PD workbenches ( icfb, layoutPlus etc. )
Cell Identifier section
Formal Parameters
Body of pcell
October 5, 2004 7
Specifying parameter values
The order in which system looks for value of parameters
1. On the instance2. In the CDF for cell3. In the CDF for library4. In the pcDefinePcell function ( default values )
October 5, 2004 8
Pcell architecure
•You cannot descend into submaster from an instance of pcell.
•Edits to master does not reflect on instances unless you compile.
October 5, 2004 9
Examples from Virtuoso®
analogLib
• ${CDS_INST_DIR}/tools/dfII/etc/cdslib/artist/analogLib• Some pcells in Virtuoso® analogLib:
– ibis_buffer– mtline– nport– scasubckt– vccsp– vcvsp
October 5, 2004 10
Virtuoso® analogLib:ibis_buffer
• Formal Parameters:– Buffer Variant ( buffervariant )– Buffer Type ( bufferType )
October 5, 2004 11
ibis_buffer cont…
Buffer Type
October 5, 2004 12
Virtuoso® analogLib:mtline
• Formal Parameters:– Number of lines (n)– Use LMG subckt (uselmg )
October 5, 2004 13
Setting Instance Parameters
October 5, 2004 14
Setting Instance Parameters …
October 5, 2004 15
Setting Instance Parameters …
October 5, 2004 16
Setting Instance Parameters …
October 5, 2004 17
Setting Instance Parameters …
October 5, 2004 18
Setting Instance Parameters …
October 5, 2004 19
Setting Instance Parameters …
October 5, 2004 20
Setting Instance Parameters …
October 5, 2004 21
Setting Instance Parameters …
October 5, 2004 22
Setting Instance Parameters …
October 5, 2004 23
Setting Instance Parameters …
October 5, 2004 24
Setting Instance Parameters …
October 5, 2004 25
Setting Instance Parameters …
October 5, 2004 26
Setting Instance Parameters …
October 5, 2004 27
Future work
• Virtuoso® AMS designer does not fully support pcells• Dynamic simInfo (Netlister support)• Dynamic termOrder, termMapping (Post-processing)• New components in Virtuoso® analogLib (on need basis)