I am a new Cadence user who is very (probably too) familiar with the Mentor tool set and the way in which AMPLE code gets automatically loaded into Mentor's schematic or layout windows. Now that I am transitioning to Cadence 6.1.X and SKILL, I am trying to familiarize myself with how SKILL gets loaded into the various windows. Although I do have SKILL class in my future, I am trying to jumpstart things by learning various aspects of SKILL in advance of such a class. I am trying to go through the Cadence documentation to discern the mechanism by which userware is automatically loaded for the tool in which it is intended. In Mentor-land, for example, userware locations are defined by the AMPLE_PATH environemental variable and files are loaded into the appropriate tool by filename, for example $AMPLE_PATH/da_ic/schematic.ample when a schematic window is opened. Is there a Cadence equivalent?
As Andrew pointed out, the main user customization SKILL syntax file that is automatically loaded is the .cdsinit file which typically can reside in your current, home or <cds_install_dir>/tools/dfII/local directory - the latter location does not exist by default, but if the .cdsinit file is found there then the search mechanism stops (although the .cdsinit file itself can load other SKILL syntax files, including $HOME/.cdsinit or from the current directory). There is a Cadence Search File mechanism (CSF) which is worth reading about in the documentation, the search mentioned above is a default, but the CSF can be customized to search in a different order or in different locations. In addition to this, if a file named libInit.il exists in a library, when the library is first accessed this file will be automatically loaded. Typically this is used as part of a PDK, e.g. the library initialization may load PCell SKILL code etc.
For doing something specific to a schematic window, the easiest way to do this is to define a SKILL trigger such that when a schematic view is opened, the code specified by the trigger is loaded. For example:
deRegUserTriggers("schematic" nil nil 'CADCustomizationFunction)
If you just want to modify the menus in the schematic, then another way to do this is to use the menus files mechanism. Here are a few solutions related to the menus file approach:Solution 11182358Solution 11208974Solution 11536610Hope this helps you!
In reply to skillUser:
Thank you Andrew and Lawrence for your help on this -- given the nearly 27 years I have had my mind in Mentor Graphics-mode, I suppose I could be forgiven a bit of denseness (or mental-inertia if you want to be nice) on my part. It appears that Cadence chose to implement all this in what seems to be a far simpler scheme than Mentor does things. Thank you once again.