Introduction
A technology file is an ASCII text file that allows the Cadence CAD toolset to be customized for specific technology processes. The technology file defines layers and devices that are available for a particular fabrication process. The layer, physical, and electrical rules for the technology are also contained in the technology file. Some Cadence applications rely on their own specific rules being defined in the technology file.
The goal of this tutorial is not to define the intricate details in creating a technology file. To this end the full online documentation is provided for reference. Rather, the objective of this tutorial is to provide a broad overview of the technology class framework as well as a demonstration in compiling a new technology file for use at the University of Utah's HEDCO microfabrication facility.
The Technology class framework
The technology file is organized into a series of classes and subclasses that describe the rules and properties of the technology. Each class can be categorized as a definition, generic rule, orapplication-specific rule class. The outline below groups all available classes and their associated subclasses into these three categories:
Definition Classes
- controls
- techParams
- techPermissions
- layerDefinitions
- techLayers
- techPurposes
- techLayerPurposePriorities
- techDisplays
- techLayerProperties
- devices
- tcCreateCDSDeviceClass
- symContactDevice
- ruleContactDevice
- symEnhancementDevice
- symDepletionDevice
- symPinDevice
- symRectPinDevice
- tcCreateDeviceClass
- tcDeclareDevice
- tcCreateCDSDeviceClass
Generic Rules Classes
- layerRules
- viaLayers
- equivalentLayers
- streamLayers
- physicalRules
- spacingRules
- orderedSpacingRules
- mfgGridResolution
- electricalRules
- characterizationRules
- orderedCharacterizationRules
Application-Specific Rules Classes
- leRules
- leLswLayers
- lxRules
- lxExtractLayers
- lxMPPTemplates
- compactorRules
- compactorLayers
- symWires
- symRules
- lasRules
- lasLayers
- lasDevices
- lasWires
- lasProperties
- prRules
- prRoutingLayers
- prViaTypes
- prStackedVias
- prMastersliceLayers
- prViaRules
- prGenViaRules
- prTurnViaRules
- prRoutingPitch
- prRoutingOffset
- prOverlapLayers
To create a technology file, then, is to assign values to the relevant classes and subclasses. The techfile user manual is an excellent resource for determining the arguments and values that should be specified for each (sub)class. You can download the techfile template to get you started.
A custom technology file is typically accompanied with a custom display file. The display resource file describes how the layers and devices described in the technology file should be displayed.
Next, select Technology File->New... from the icfb menubar.
If you're sucessful in compiling the techfile, you will see something similar in the icfb window:
(icfb) Syncing library list with the Library Manager. Compiling class 'controls'.... Compiling class 'layerDefinitions'.... Compiling class 'devices'.... Compiling class 'layerRules'.... Compiling class 'physicalRules'.... Compiling class 'electricalRules'.... Compiling class 'leRules'.... Compiling class 'lsRules'.... Compiling class 'compactorRules'.... Compiling class 'lasRules'.... Compiling class 'prRules'.... Technology file loaded sucessfully.
If there are any errors or warnings, correct the errors and restart the compilation process.
Once the techfile compiles without errors, you can attach it to a libaray, cell, or cellview and begin designing with it. (Note: You should also merge a custom display resource file at this point -- if you have one.)