FreePDK45:Developer Getting Started
The steps below will help you to setup your environment to be a developer of the FreePDK. These pages assume that you are familiar with using Subversion (SVN) and with the add and myadd commands for environment setup. See the Using SVN and Setup pages for more information.
Check out the Kit
WARNING: THIS SVN REPO NO LONGER EXISTS!!!
Check out the repository with command
svn co https://svn.unity.ncsu.edu/osi/freepdk45/trunk freepdk45/trunk
This will check out the entire kit and put it in the subdirectory "freepdk45/trunk". This is your Private Source Directory. If you want to check out a subtree (such as "ncsu_basekit" or "osu_soc"), I would suggest appending the directory name to the last argument above, so that the directory structure of your checked-out copy matches the repository directory structure.
If you need to be able to check changes in to the kit, then your NCSU Unity ID must be added to the list of developers. Contact firstname.lastname@example.org to add your name to the list.
Modify the Setup Scripts
- Edit the freepdk45/trunk/ncsu_basekit/cdssetup/setup.csh file and change the PDK_DIR variable to the absolute path to your freepdk45/trunk private source directory.
- Add the freepdk45/trunk/ncsu_basekit/cdssetup/setup.csh script to your myadd.csh script. Use the identifier myfp.
- Edit the freepdk45/trunk/ncsu_basekit/gentech/sshaft/setup.csh file and set the PDK_DIR variable again, just as you did above. This is redundant, but the ultimate goal is for users of the kit to modify only the cdssetup/setup.csh script. Having two separate files allows us to see things from the user's perspective more easily.
With this setup, you should now be able to setup your private version of the kit with the command myadd myfp. To setup your private version of the technology compilation script (gentech.py), source the gentech/sshaft/setup.csh script.
Compile the Technology
- Change to the freepdk45/trunk/ncsu_basekit/gentech/sshaft/src/py directory.
- Type make. This will add the latest python scripts into the freepdk45/trunk/ncsu_basekit/gentech/sshaft/bin directory.
- Change to the freepdk45/trunk/ncsu_basekit/gentech directory.
- Source the sshaft/setup.csh script.
- Type the command
gentech.py -log gen.log &The gentech.py script is written in the SSHAFT framework and writes its log messages to the filename you specify. When complete, the last line of the gen.log file should say "finished gentech.py", and the directory freepdk45/trunk/ncsu_basekit/lib/NCSU_TechLib_FreePDK45 should be created.
- Type the command
genlitho.py -log litho.log &The genlitho.py script creates the optical models used by the Litho-Friendly Design deck. It requires around 10-15 MB of disk space in your area, so if you are short on quota and don't plan on using LFD, you might want to skip this step.
With this setup, you should be able to use the command 'gentech.py to re-compile the technology whenever you update your private source directory. Remember that you may need to type make if the gentech.py script itself changes.
Start Cadence Virtuoso
- Open a new Unix session window. The Cadence setup has conflicted with the SSHAFT setup in the past (mainly because the PATH variable became too long), so it's best to run Cadence tools and the SSHAFT flow in separate sessions.
- Change to the directory where you want to start Cadence Virtuoso. The FreePDK setup script will copy the files .cdsinit, cds.lib, and lib.defs into this directory if they do not already exist, so it's best to get in the habit of changing the directory before sourcing the setup script.
- Setup the environment and start Cadence Virtuoso with the following commands:
add calibre20073 myadd ic61 myadd myfp icfb &