[maryh@node1 ~]$ mkdir project1 [maryh@node1 ~]$ cd project1
[maryh@node1 ~/project1]$ cp -R /net/sw/mosis/IBM_PDK/cmrf8sf/V1.6.0.3DM/cdslib51/examples/* . [maryh@node1 ~/project1]$ cp -R /net/sw/mosis/IBM_PDK/cmrf8sf/V1.6.0.3DM/cdslib51/examples/.cds* . [maryh@node1 ~/project1]$ ll -a total 48 drwxr-xr-x 2 maryh edg 4096 Aug 4 2009 . drwxr-xr-x 88 maryh edg 8192 Aug 4 14:55 .. -r--r--r-- 1 maryh edg 1007 Aug 4 2009 .cdsenv -r--r--r-- 1 maryh edg 17441 Aug 4 2009 .cdsinit -r--r--r-- 1 maryh edg 419 Aug 4 2009 cds.lib -r--r--r-x 1 maryh edg 419 Aug 4 2009 cds.lib.bck [maryh@node1 ~/project1]$ chmod 644 .cds* [maryh@node1 ~/project1]$ chmod 644 * [maryh@node1 ~/project1]$ ll -a total 48 drwxr-xr-x 2 maryh edg 4096 Aug 4 2009 . drwxr-xr-x 88 maryh edg 8192 Aug 4 14:55 .. -rw-r--r-- 1 maryh edg 1007 Aug 4 2009 .cdsenv -rw-r--r-- 1 maryh edg 17441 Aug 4 2009 .cdsinit -rw-r--r-- 1 maryh edg 419 Aug 4 2009 cds.lib -rw-r--r-- 1 maryh edg 419 Aug 4 2009 cds.lib.bckOur setup has all these files as read-only so no one accidentally overwrites them. This requires running the chmod 644 command to allow the owner to write to these files.
Note that the .cds* files can also be located in the user's home directory. However, those in the project directory take presidence over ones in the home directory.
Here is the end of our .cdsinit file. I edited this and saved it in the examples directory so everyone would get the changes. I don't remember exactly how it looked before I edited it, so here's the bit that's important.
ibmPdkPath="/net/sw/mosis/IBM_PDK/" cond( ( index(getVersion() "5.1") loadContext(strcat( ibmPdkPath "cmrf8sf/V1.6.0.3DM/cdslib51/Skill/ibmPdkProc s510.cxt")) hiRegTimer("ibmPdkInit()" 1)) ( t warn("ibmPdkProcs file not loaded. \n")) );cond load(strcat( ibmPdkPath "cmrf8sf/V1.6.0.3DM/cdslib51/Skill/ibmPdkBindkeys.il")) ;; Calibre setup ;; Load Calibre Skill Interface if environment var is set mgc_home=getShellEnvVar("MGC_HOME") if( mgc_home!=nil && isDir(mgc_home) && isReadable(mgc_home) then ; Load calibre.skl for Cadence versions 4.4 and greater load(strcat(mgc_home "/shared/pkgs/icv/tools/queryskl/calibre.skl")) else ; MGC_HOME is not set printf("Calibre Skill Interface not loaded.\n") ) ;; End of Calibre Skill Interface
AMSPath="/nfs/net/sw/mosis/IBM_PDK/" cond( ( rexMatchp("4.4.5" getVersion()) warn( "4.4.5 not supported") ) ( rexMatchp("4.4.6" getVersion()) warn( "4.4.6 is not supported") ) ( rexMatchp(" 5[.]0" getVersion()) loadContext(strcat( AMSPath "cmrf8sf/V1.4.0.12DM/cdslib/Skill/proc AMS500.cxt")) hiRegTimer("trInsertMenu()" 1)) ( rexMatchp(" 5[.]1" getVersion()) loadContext(strcat( AMSPath "cmrf8sf/V1.4.0.12DM/cdslib/Skill/proc AMS510.cxt")) hiRegTimer("trInsertMenu()" 1)) ) AMSutils() ;;Uncomment the following lines to override AMS utils DIVA switch settings ;;ams->DIVAdrcSwitches = "GridCheck" ;;ams->DIVAextSwitches = "resimulate_extracted" ;;load(strcat( AMSPath "cmrf8sf/V1.4.0.12DM/cdslib/Skill/bindkeyAMS.il")) load(strcat( AMSPath "cmrf8sf/V1.4.0.12DM/cdslib/Skill/bindkeyCDS.il")) ;; Integrate Calibre menu load( strcat( getShellEnvVar("CALIBRE_HOME") "/shared/pkgs/icv/tools/queryskl/calibre.skl" ))
We were using the V1.4.0.12DM file mostly and the one sort of big problem was in using bindkeyAMS.il vs. bindkeyCDS.il. The problem was that with the AMS bindkey file, users could select something, but they could not unselect it. It was weird. This strange problem went away after we started using the CDS bindkey file.
The other thing to note is that if you want to use Calibre (later to run DRC), you need to either set MGC_HOME or CALIBRE_HOME. Since our Calibre was not located in our Mentor Graphics tree, we set CALIBRE_HOME. And I edited the .cdsinit file so that it looked for CALIBRE_HOME instead of MGC_HOME.