dsd13-gos / dsd-14=pdk / Lect07_08
.pdf
Library CDF’s
|
/****************************************************/ |
|
|
|
LIBRARY = "gpdk" |
|
|
|
/****************************************************/ |
|
|
|
let( ( libId cellId cdfId ) |
|
|
|
unless( libId = ddGetObj( LIBRARY ) |
|
|
|
error( "Could not get library %s." LIBRARY ) |
|
|
|
) |
|
|
|
when( cdfId = cdfGetBaseLibCDF( libId ) |
|
|
|
cdfDeleteCDF( cdfId ) |
|
|
|
) |
|
|
|
cdfId = cdfCreateBaseLibCDF( libId ) |
|
|
|
;;; Parameters |
|
|
|
cdfCreateParam( cdfId |
|
|
|
?name |
"lxComponentType" |
|
|
?prompt |
"Virtuoso XL Component Types" |
|
|
?defValue |
"(((\"cells\" (\"gpdk nmos3\" \"gpdk nmos\")) (\"type\" \"nmos\") |
|
|
(\"lxActiveLayer\" \"Oxide drawing\") (\"lxMOSDeviceType\" \"NMOS\") (\"lxDeviceWidth\" |
|
|
|
\"w\") (\"lxMaxWidth\" 1e-05)) ((\"cells\" (\"gpdk pmos3\" \"gpdk pmos\")) (\"type\" \"pmos\") |
|
|
|
(\"lxActiveLayer\" \"Oxide drawing\") (\"lxMOSDeviceType\" \"PMOS\") (\"lxDeviceWidth\" |
|
|
|
\"w\") (\"lxMaxWidth\" 1e-05)))" |
|
|
|
?type |
"string" |
|
|
?display |
"nil" |
|
|
?dontSave |
"nil" |
|
|
) |
|
|
|
|
|
|
|
|
|
|
11 |
CADENCE CONFIDENTIAL |
||
Library CDF’s (cont.)
cdfId->instNameType |
= "schematic" |
cdfId->instDisplayMode |
= "instName" |
cdfId->netNameType |
= "schematic" |
cdfId->termSimType |
= "DC" |
cdfId->termDisplayMode |
= "netName" |
cdfId->paramSimType |
= "DC" |
cdfId->paramEvaluate |
= "t nil nil nil nil“ |
cdfId->paramDisplayMode |
= "parameter" |
12 |
CADENCE CONFIDENTIAL |
Library CDF’s (CDF setting display)
13 |
CADENCE CONFIDENTIAL |
Library CDF’s (cont)
• VXL component type can be set for the library. cdfCreateParam( cdfId
?name |
"lxComponentType" |
?prompt |
"Virtuoso XL Component Types" |
?defValue |
"(((\"cells\" (\"gpdk nmos3\" \"gpdk nmos\")) |
(\"type\" \"nmos\") (\"lxActiveLayer\" \"Oxide drawing\") (\"lxMOSDeviceType\" \"NMOS\") (\"lxDeviceWidth\" \"w\") (\"lxMaxWidth\" 1e-05)) ((\"cells\" (\"gpdk pmos3\" \"gpdk pmos\")) (\"type\" \"pmos\") (\"lxActiveLayer\" \"Oxide drawing\") (\"lxMOSDeviceType\" \"PMOS\") (\"lxDeviceWidth\" \"w\") (\"lxMaxWidth\" 1e-05)))"
?type "string“)
14 |
CADENCE CONFIDENTIAL |
Library CDF’s (CDF setting VXL)
15 |
CADENCE CONFIDENTIAL |
Cell’s CDF
/****************************************************/ LIBRARY = "gpdk"
CELL = "nmos" /****************************************************/
cdfCreateParam( cdfId
?name |
"model" |
?prompt |
"Model name" |
?defValue |
"nmos1" |
?type |
"string" |
?editable |
"nil" |
?parseAsCEL "yes"
)
cdfCreateParam( cdfId
?name |
"l" |
?prompt |
"l (M)" |
?units |
"lengthMetric" |
?defValue |
"180.0n" |
?type |
"string" |
?callback |
"gpdk_mosCB(\"l\")" |
?parseAsNumber "yes" ?parseAsCEL "yes"
)
cdfCreateParam( cdfId
?name |
"w" |
?prompt |
"w (M)" |
?units |
"lengthMetric" |
?defValue |
"2u" |
?type |
"string" |
?callback "gpdk_mosCB(\"w\")"
?parseAsNumber "yes" ?parseAsCEL "yes"
)
16 |
CADENCE CONFIDENTIAL |
Cell’s CDF (cont.)
17 |
CADENCE CONFIDENTIAL |
Levels of CDF Data
Cadence defines the following description levels:
•The base-level CDF is the description that is permanently attached to a cell or library. When the system reads in a cell or library, any base-level CDF attached to it is also read. The creator of a baselevel CDF must have write permission on the object to which the description is being attached.
•The user-level CDF is a user-specific overlay description on top of the base-level CDF for a cell or a library (although the base level does not have to exist). The system never saves a user-level CDF, so you must save it to a file and reload this level on startup. You do not need write permission to attach user-level CDF information to an object.
•The effective-level CDF is an overlay of a user-level CDF description on top of a corresponding base-level CDF description.
18 |
CADENCE CONFIDENTIAL |
CDF Worksheet
•Before you start to build a component, you need to decide how you intend to use it, in which applications, and with what requirements.
19 |
CADENCE CONFIDENTIAL |
CDF Worksheet example
1. What applications will you use?
•Design Entry
•Simulation
•Layout
•Design Checking
2.What views are required by the applications you will use?
• Design Entry — symbol
• Layout — layout, flat, or pcell
• Simulation — spectre, spectreS, etc.
• Design Checking — auLvs, lvs
3.What parameters are required by the applications?
•Layout — pcell parameters, view names
•Simulation — model parameters
20 |
CADENCE CONFIDENTIAL |
