Migration: Migrating Old FreePDK15 to new FreePDK15

From NCSU EDA Wiki
Jump to: navigation, search

// Quick initial notes from a forum post on how to migrate old designs.

So, this should easily allow you to migrate over to the new PDK.

To convert between libraries and came up with the following:

On the cadence support website (http://support.cadence.com) there is the following file: SKILL: Copy value of one property to other property for instances of a given list of cells in entire library

source code referenced: $PDK_DIR/cdslib/skill/CCScopyProp.il

First and foremost MAKE A BACKUP!

Go to your project directory

add cadence2017
add synopsys2017
virtuoso &

The CIW and Library manager pop up (CIW is where you can launch the tools like CDF and such). Near the bottom, you can type commands that the CIW will execute. I assume the CCScopyProp.il is in the location that you launched Virtuoso from.

In the CIW you can type commands (or copy and paste them one at a time!):

deviceList='("nmos" "pmos")
propMapList='(("m" "nfin") (as "asej") (ad "adej") (ps "psej") (pd "pdej"))
CCScopyProp("LIBRARYNAME" deviceList propMapList)

Replace the LIBRARYNAME with the name of your own library (this is where all of your schematics are) And the properties will be copied. As you see "m" gets copied to "nfin", etc etc etc.

In the above command you will see the deviceList states pmos and nmos as those are the cell names in the PDK and not the model name.

Now, you need to update the model names. So, after you run the previous commands (or before it) you do the recursive find and replace from the top level cell in virtuoso schematic editor. Select "other value" and typing in model. Then model=pmos and replace with to model=pfet. Do the same for nmos naming the model nfet. You will need to recheck and save the hierarchy in order to run ADE L. Make sure you you do hierarchy for the find and replace so it descends the entire structure. Here is how you check and save. Virtuoso -> Check -> Hierarchy Make sure you save schematics and hit apply.

If you see something in the model that says model=string("pfet") then you have an old .cdsinit file (back it up, exit virtuoso, and then run the setup_freepdk15 again) you should now have a .cdsinit file that corrects for this model error. If you still see this when you netlist. Then you need to go to the Simulation->Netlist->Recreate should fix things.