Professional Documents
Culture Documents
Solutions
Product Version 5.0
September 2003
1990-2002 Cadence Design Systems, Inc. All rights reserved.
Printed in the United States of America.
Cadence Design Systems, Inc., 555 River Oaks Parkway, San Jose, CA 95134, USA
Trademarks: Trademarks and service marks of Cadence Design Systems, Inc. (Cadence) contained in
this document are attributed to Cadence with the appropriate symbol. For queries regarding Cadence’s
trademarks, contact the corporate legal department at the address shown above or call 1-800-862-4522.
All other trademarks are the property of their respective holders.
Restricted Print Permission: This publication is protected by copyright and any unauthorized use of this
publication may violate copyright, trademark, and other laws. Except as specified in this permission
statement, this publication may not be copied, reproduced, modified, published, uploaded, posted,
transmitted, or distributed in any way, without prior written permission from Cadence. This statement grants
you permission to print one (1) hard copy of this publication subject to the following conditions:
1. The publication may be used solely for personal, informational, and noncommercial purposes;
2. The publication may not be modified in any way;
3. Any copy of the publication or portion thereof must include all original copyright, trademark, and other
proprietary notices and this permission statement; and
4. Cadence reserves the right to revoke this authorization at any time, and any such use shall be
discontinued immediately upon written notice from Cadence.
Disclaimer: Information in this publication is subject to change without notice and does not represent a
commitment on the part of Cadence. The information contained herein is the proprietary and confidential
information of Cadence or its licensors, and is supplied subject to, and may be used only by Cadence’s
customer in accordance with, a written agreement between Cadence and its customer. Except as may be
explicitly set forth in such agreement, Cadence does not make, and expressly disclaims, any
representations or warranties as to the completeness, accuracy or usefulness of the information contained
in this document. Cadence does not warrant that use of such information will not infringe any third party
rights, nor does Cadence assume any liability for damages or costs of any kind that may result from use of
such information.
Restricted Rights: Use, duplication, or disclosure by the Government is subject to restrictions as set forth
in FAR52.227-14 and DFAR252.227-7013 et seq. or its successor.
Technology File Known Problems and Solutions
Contents
Technology File Known Problems and Solutions . . . . . . . . . . . . . . 5
PCR 158888: Layer property types not supported . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
PCR 173447: Edit Layers prompts you to check out if file is already checked out . . . . 5
PCR 190539: Errors in the Design – Summary report . . . . . . . . . . . . . . . . . . . . . . . . . 6
PCR 216810: Software allows user to load technology file without write permission . 6
PCR 260469: Technology library not removed from virtual memory when edited out of
cds.lib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
PCR 299798: Technology file device change cannot be replaced after modify . . . . . . 8
tfcDeleteCDSDeviceClass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
tfcDeleteSymContactDevice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
tfcDeleteRuleContactDevice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
tfcDeleteSymEnhancementDevice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
tfcDeleteSymDepletionDevice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
tfcDeleteSymPinDevice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
tfcDeleteSymRectPinDevice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
tfcDeleteDeviceClass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
tfcDeleteDevice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
tcDeleteDevice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
PCR 586702: Test the use of 232 layers and 232 purposes and fix . . . . . . . . . . . . . . 26
September 2003
This Known Problems and Solutions document describes important Product Change
Requests (PCRs) for the technology file and tells you how to solve or work around these
problems. For information about PCRs that are fixed for this release, see the Product Notes
for Technology File. The pcr’s in this document are listed in numerical order.
Important: Only the problems and solutions that were known at release time are available
in this document. An up-to-date list of known problems for the technology file is published on
the SourceLinkSM online customer support system available at http://
sourcelink.cadence.com.
Description: The technology file does not support the following layer property types:
■ ILExpr
■ NLPExpr
■ hierProp
PCR 173447: Edit Layers prompts you to check out if file is already checked out
Description: In a TDM environment, if one of your coworkers has checked out a technology
file and your CDS_AUTO_CKOUT environment variable is set to all or views, the system still
attempts to check out the technology file if you choose Edit Layers from the Technology File
Tool Box. The checkout fails. You can make changes in virtual memory, but you cannot save
your changes to disk.
Solution: None.
Solution: When you copy cells from one library to another, make sure both libraries use the
same technology file, or verify the layers in the copied cell against the new library’s layer
selection window (LSW). Do not use Design – Summary to verify that the layers in the
copied cell exist in the technology file for the new library.
PCR 216810: Software allows user to load technology file without write permission
For example, assume that the techPermissions inside the techfile.cds file are set as
follows:
techPermissions(
) ;end techPermissions
According to the permission setting, user login does not have write permission for the
electricalRules class. The software, however, does allow user login to merge or
replace the electricalRules from the Technology File Tool Box Load command.
Solution: None.
PCR 260469: Technology library not removed from virtual memory when edited out of
cds.lib
Description: Removing a technology library from the search path in the cds.lib file does
not remove that technology library from virtual memory if it is already loaded. When symbolic
devices are defined in that technology library, the system issues warnings about missing
symbolic devices when you open cellviews in read mode. Warnings continue even when you
open a cellview that does not contain instances of symbolic devices defined in that technology
library.
In DFII, you can close the technology library through the Close & Purge Data form as follows:
1. From the Command Interpreter Window, choose File – Close Data.
The software displays the Close & Purge Data form. For details about this form, see the
Cadence Design Framework II User Guide.
2. Highlight the line containing the Library/Library File for the technology library you want
to close.
3. Click OK.
PCR 299798: Technology file device change cannot be replaced after modify
Description: When you edit an ASCII technology file and delete devices, then recompile the
ASCII technology file in replace mode (Load – Replace), devices are not always deleted
from the technology library.
Solution: Edit the ASCII technology file again and add deletion subclasses to the Devices
class to explicitly delete the device classes and/or devices you want deleted, then recompile
the technology file into a new technology library. The following functions, when added to the
Devices class in the technology file, explicitly delete device classes and devices:
Subclass Function
tfcDeleteCDSDeviceClass Deletes all Cadence-predefined class definitions.
tfcDeleteSymContactDevice Deletes specified devices of the Cadence-
predefined contact device class.
tfcDeleteRuleContactDevice Deletes specified devices of the Cadence-
predefined rule contact device class.
tfcDeleteSymEnhancementDevice Deletes specified devices of the Cadence-
predefined enhancement device class.
tfcDeleteSymDepletionDevice Deletes specified devices of the Cadence-
predefined depletion device class.
tfcDeleteSymPinDevice Deletes specified devices of the Cadence-
predefined pin device class.
tfcDeleteSymRectPinDevice Deletes specified devices of the Cadence-
predefined rectangular pin device class.
tfcDeleteDeviceClass Deletes a specified custom, user-defined device
class definition.
tfcDeleteDevice Deletes a specified custom, user-defined device.
tcDeleteDevice Deletes a specified custom, user-defined device.
tfcDeleteCDSDeviceClass
tfcDeleteCDSDeviceClass()
Description
Technology file subclass deleting the definitions of all of the Cadence-predefined device
classes previously added to the technology file by tcCreateCDSDeviceClass. You must
place this subclass in the Devices class somewhere after the tcCreateCDSDeviceClass
subclass and the various device definitions.
Example
After the Cadence-predefined device classes have been added to the technology file with
tcCreateCDSDeviceClass, specifying the following deactivates them:
tfcDeleteCDSDeviceClass()
tfcDeleteSymContactDevice
tfcDeleteSymContactDevice(
( t_deviceName )
...
)
Description
Arguments
Example 1
Assume that the following contact device has been declared earlier in the technology file
Devices class:
symContactDevice(
;( deviceName viaLayer viaPurpose
( M1_P cont drawing
Example 2
The following deletes three contact devices (named M1_P, M2_P, and con1) previously
declared with symContactDevice from the technology library:
tfcDeleteSymContactDevice(
(M1_P)
(M2_P)
(con1)
)
tfcDeleteRuleContactDevice
tfcDeleteRuleContactDevice(
( t_deviceName )
...
)
Description
Arguments
Example 1
Assume that the following contact device has been declared earlier in the technology file
Devices class:
ruleContactDevice(
;( deviceName
( "VIABIGPOWER12"
Example 2
The following deletes three contact devices (named RULE_1, RULE_2, and RULE_3)
previously declared with ruleContactDevice from the technology library:
tfcDeleteRuleContactDevice(
(RULE_1)
(RULE_2)
(RULE_3)
)
tfcDeleteSymEnhancementDevice
tfcDeleteSymEnhancementDevice(
( t_deviceName )
...
)
Description
Arguments
Example 1
Assume that the following enhancement device has been declared earlier in the technology
file Devices class:
symEnhancementDevice(
;( deviceName sdLayer sdPurpose
( PTR diff drawing
; [ implantEnclosure ]
( pimplant drawing 0.3 )
; gateLayer gatePurpose
poly1 drawing
; [ implantEnclosure ]
; gateLayer gatePurpose
poly1 drawing
)
; end of symEnhancementDevice
Example 2
The following deletes two enhancement devices (named Enh_1 and Enh_2) previously
declared with symEnhancementDevice from the technology library:
tfcDeleteSymEnhancementDevice(
(Enh_1)
(Enh_2)
)
tfcDeleteSymDepletionDevice
tfcDeleteSymDepletionDevice(
( t_deviceName )
...
)
Description
Arguments
Example 1
Assume that the following enhancement device has been declared earlier in the technology
file Devices class:
symDepletionDevice(
;( deviceName sdLayer sdPurpose
( D_NTR diff drawing
; [ implantEnclosure ]
; [ legalRegion ] )
( outside pwell drawing ) )
)
; end of symDepletionDevice
Example 2
The following deletes two depletion devices (named D_NTR and depl_1) previously declared
with symDepletionDevice from the technology library:
tfcDeleteSymDepletionDevice(
(D_NTR)
(depl_1)
)
tfcDeleteSymPinDevice
tfcDeleteSymPinDevice(
( t_deviceName )
...
)
Description
Technology file subclass deleting declared devices of the Cadence-predefined pin device
class previously added to the technology file by tcCreateCDSDeviceClass and declared
by symPinDevice. This subclass must be placed in the Devices class of the technology file
somewhere after tcCreateCDSDeviceClass and the symPinDevice declaration of the
device being deleted.
Arguments
Example 1
Assume that the following pin device has been declared earlier in the technology file Devices
class:
symPinDevice(
;( deviceName maskable
( poly1_T t
Example 2
The following deletes two pin devices (named poly1_T and poly2_t) previously declared
with symPinDevice from the technology library:
tfcDeleteSymPinDevice(
(poly1_T)
(poly2_T)
)
tfcDeleteSymRectPinDevice
tfcDeleteSymRectPinDevice(
( t_deviceName )
...
)
Description
Arguments
Example 1
Assume that the following rectangular pin device has been declared earlier in the technology
file Devices class:
symRectPinDevice(
;( deviceName maskable
( nplus_P nil
Example 2
The following deletes two rectangular pin devices (named rectp_1 and rectp_2)
previously declared with symRectPinDevice from the technology library:
tfcDeleteSymRectPinDevice(
(rectp_1) (rectp_2)
)
tfcDeleteDeviceClass
tfcDeleteDeviceClass(
t_viewName
t_className
)
Description
Arguments
t_viewName The name of the view of the cellview that is generated when you
compile the technology file.
Valid Values: the view defined for the device class
Example
Assume that the following device class has been defined earlier in the technology file Devices
class:
;
; Create "syMGEnhancement" device class
;
tcCreateDeviceClass("symbolic" "syMGEnhancement"
; class parameters
( (sdLayer "hilite") (gateLayer "hilite")
(sdExt 0.0) (gateExt 0.0)
(sdImpLayer nil) (sdImpEnc 0.0) )
; formal parameters
( (width 0.0) (length 0.0) )
; geometry
W2 = width/2 L2 = length/2
netId = dbMakeNet(tcCellView "G")
dbId = dbCreateDot(tcCellView gateLayer -W2-gateExt:0)
dbId = dbCreatePin(netId dbId "gl")
dbSetq(dbId list("left") accessDir)
dbId = dbCreateDot(tcCellView gateLayer W2+gateExt:0)
dbId = dbCreatePin(netId dbId "gr")
dbSetq(dbId list("right") accessDir)
dbId = dbCreateRect(tcCellView gateLayer
list(-W2-gateExt:-L2 W2+gateExt:L2))
dbAddFigToNet(dbId netId)
;
netId = dbMakeNet(tcCellView "S")
dbId = dbCreateDot(tcCellView sdLayer 0:L2)
dbId = dbCreatePin(netId dbId "s")
dbSetq(dbId list("top") accessDir)
dbId = dbCreateRect(tcCellView sdLayer list(-W2:0 W2:L2+sdExt) )
dbAddFigToNet(dbId netId)
) ; end of syMGEnhancement
The following deletes the device class syMGEnhancement (view name symbolic) from the
technology library:
tfcDeleteDeviceClass(
"symbolic" "syMGEnhancement"
)
tfcDeleteDevice
tfcDeleteDevice(
t_viewName
t_className
t_deviceName
[l_classParam
l_formalParam]
)
Description
Technology file subclass deleting a device of a defined device class previously created using
tcCreateDeviceClass and tcDeclareDevice. This subclass must be placed in the
Devices class of the technology file somewhere after tcCreateDeviceClass and the
tcDeclareDevice declaration of the device being deleted.
Arguments
t_viewName The name of the view of the cellview that is generated when you
compile the technology file.
Valid Values: the view defined for the device
l_classParam A list of the class parameters defined for the device class and the
values used for this device. The syntax is as follows:
l_formalParam A list of the formal parameters defined for the device class and
the values used for this device. The syntax is the same as for
class parameters.
Example
Assume that the following device class has been defined and device has been declared
earlier in the technology file Devices class:
;
; Create "syMGEnhancement" device class
;
tcCreateDeviceClass("symbolic" "syMGEnhancement"
; class parameters
( (sdLayer "hilite") (gateLayer "hilite")
(sdExt 0.0) (gateExt 0.0)
(sdImpLayer nil) (sdImpEnc 0.0) )
; formal parameters
( (width 0.0) (length 0.0) )
; geometry
W2 = width/2 L2 = length/2
netId = dbMakeNet(tcCellView "G")
dbId = dbCreateDot(tcCellView gateLayer -W2-gateExt:0)
dbId = dbCreatePin(netId dbId "gl")
dbSetq(dbId list("left") accessDir)
dbId = dbCreateDot(tcCellView gateLayer W2+gateExt:0)
dbId = dbCreatePin(netId dbId "gr")
dbSetq(dbId list("right") accessDir)
dbId = dbCreateRect(tcCellView gateLayer
list(-W2-gateExt:-L2 W2+gateExt:L2))
dbAddFigToNet(dbId netId)
;
netId = dbMakeNet(tcCellView "S")
dbId = dbCreateDot(tcCellView sdLayer 0:L2)
dbId = dbCreatePin(netId dbId "s")
dbSetq(dbId list("top") accessDir)
dbId = dbCreateRect(tcCellView sdLayer list(-W2:0 W2:L2+sdExt) )
dbAddFigToNet(dbId netId)
) ; end of syMGEnhancement
tcDeclareDevice( "symbolic" "syMGEnhancement" "MGPTR"
( (gateLayer "poly1") (sdLayer "diff")
(sdExt 1.200000) (gateExt 0.300000) )
( (w 1.8) (l 0.6)
)
The following deletes the device MGPTR (view name symbolic, class name
syMGEnhancement) from the technology library:
tfcDeleteDevice(
"symbolic" "syMGEnhancement" "MGPTR"
)
tcDeleteDevice
tcDeleteDevice(
t_viewName
t_className
t_deviceName
[l_classParam
l_formalParam]
)
Description
Technology file subclass deleting a device of a defined device class previously created using
tcCreateDeviceClass and tcDeclareDevice. This subclass must be placed in the
Devices class of the technology file somewhere after tcCreateDeviceClass and the
tcDeclareDevice declaration of the device being deleted. This subclass is identical to the
tfcDeleteDevice subclass
PCR 586702: Test the use of 232 layers and 232 purposes and fix
Description: The number of user-defined layers is being increased for both CDBA and
OpenAccess:
■ Formerly, you could define only layers 0 through 127.
■ As of a Monthly Stream Release (MSR) for 5.0 (and backported to the 4.4.6 release
stream), you can define layers numbered 0 through 194 for both CDBA and
OpenAccess.
■ In addition to layers 0 through 194, OpenAccess has extended the number of user-
defined layers to include layer number 256 through layer number 232 - 1026.
■ The DFII applications have not yet been enhanced to support the larger number of layers
supported by OpenAccess. Currently, the DFII applications support layers numbered 0
through 255. In the future, you will be able to define layers 0 through 194 and layers 256
through 232 - 1026.
The number of purposes has not changed for CDBA. You can still define purposes 1 through
255, while Cadence reserves purposes 129 through 255 for system use.
For OpenAccess, the number of purposes has been increased dramatically, as follows:
■ The total number of purposes is 0 through 232 - 1.
■ You can define purposes numbered 1 through 128, and if you need additional purpose
numbers, you can begin again with purpose number 256.
Cadence reserves purpose numbers 129 through 255 and 232 -1025 through 232 - 1, as
follows:
■ OpenAccess defines purpose numbers 232 - 1 through 232 - 6.
■ DFII on OpenAccess reserves purpose numbers 232 - 7 through 232 - 1025 for future
system use.
These enhancements are still being tested. For a detailed description, see “Changes for
Layers, Purposes, and typedefs” in the DFII on OpenAccess Adoption Guide.
Solution: Until testing is completed and this PCR is closed, do not define user-defined layer
numbers above 194 or user-defined purpose numbers above 128.