Typing "cds" will disable the use of the mentor tools in the current terminal only. You are free to open a second terminal and start any mentor tools in there.

Projects

At the SIUE ECE site, designs are organized into projects. Each project can have one or more libraries associated with it (see the next section). Also, each project has exactly one process associated with it. A process refers to the IC fabrication process that the project will be implimented in. If the project is not planed to be fabricated then you still need to choose a process (AMIH is a good starter). After you have setup your cadence directory, you need to setup your project directory. To do this, open a new terminal and type type "add_project PROJECT_NAME PROCESS" where PROJECT_NAME is the name of your project (eg. "ece484" would be a good project name for your 484 class) and PROCESS is the name of the process you plan to use. Currently the following processes are supported

  • Native AMI half micron process -- AMIH
  • NCSU version of AMI half micron -- NAMH
  • Native XFAB one micron process -- XFAB
  • NCSU version of TSMC quarter micron -- NTQD

Once you have created a project, you need to set your current project to the new project by typing "sp PROJECT_NAME". You can switch between projects by using the "sp" command. There is also a default project that is automaticaly set on the execution of the "cds" command. The default project is the last project that you switched to. However you can keep sp from changing the default project by issuing a "lp" (think lock project) that will keep subsiquent "sp"'s from changing the default project. To unlock a project type "ulp".

Libraries

Cadence orginizes itself in terms of libraries. There are several system-wide libraries that hold generic parts such as transistors, resistors, and-gates, or-gates, etc. However the name of these libraries varies from process to process. These libraries are listed along side your own personal libraries where you will create schematics, layouts, HDL code, etc...

Each library contains several "parts" called cellviews. For instance, you could have a library called "my_digital_parts" and then a cellview called "two_to_one_MUX" for a multiplexer.

Each cellview has atleast one view associated with it. Each view is literaly a view of the part. For instance, you may have a schematic view, which is the physical schematic of the part. You may have a symbol view, which is what you would see if you included that part as a sub-part of another schematic. You could also have a functional view that is a verilog description of the part. When you simulate a design, you can use the heirarchy editor to tell the simulator which views to use when it simulates that perticular cell view. To create a new library, first start "icd" from the terminal. then goto

 
File->New->Library
               

In the "Name" field type in the name you want to give your new library. In the "Technology File" check box, choose "Don't need a tech file". In the Design Manager drop-down box, choose "No DM". Next click "OK" to create the library. After you have created the new library, you can create new cell-views. This can be done by starting "icd" then goto

 
File->New->CellView
               

In the "Library Name" box, choose the library that you want to create the new cell in. You must have read-write permision to this library. You cannot add new cellviews to system wide libraries, only to your personal libraries. In the "Cell Name" box, type in the name of the new cellview you want to create. For the "View Name" box, it is probably best to let the system determine this. In the "Tool" drop-down box, choose the tool you want to use to create the view for this cell. Choosing Composer-schematic will allow you to enter schematics in very much the same way you would enter them in Mentor's "da". You could also choose to enter a verilog description, VHDL description, etc. Next, click "Ok" to create the cellview. You can create new views for any perticular cell if you wanted to do so at a later time, eg. create a Verilog description and a symbol, then later create a transistor-level schematic.

The layout of your ~/cds/ directory

There is one critical file in your ~/cds/ directory, and several sub-directories. First there is a cds.lib file in this directory. This file tells cadence where to find libraries. It usualy has one INCLUDE line at the top of the file that tells cadence where to find the system-wide libraries. Following this line there may be several DEFINE lines that define your local libraries. You may edit this file by hand via "vi" or "pico", but it is sugested that you use the library path editor in "icd". This can be found under the tools menu.

There is also a log directory where cadence keeps some if it's logs, a work directory which acts as a scratch directory for cadence, an artist_states directory where simulation states are stored, a plot directory for GDS output that will be ploted, and a postscript directory for postscript output that will be printed. In addition to this there will be a directory for every local library that you have created.

Each local library directory that you create will have a cdsinfo.tag file. This file should not be modified. Also each library sub-directory will have sub-directories that coraspond to the cell-views that you have created. Each project directory will also have a verilog.src, a vhdl.src, and a data.pwl directory. In addition, it will have a number of sub-direcories that coraspond to the cell-views that you have created.

Using the built in documentation

The built in documentation can be found by clicking "Cadence documentation" under the help menu of "icd". This will bring up a window of available documentation for cadence products.

Converting existing libraries to the "project" way

To convert an existing library, you will need to first create a new project, then copy the library directory from your ~/cds directory to ~/cds/PROJECT/ directory (try something along the lines of "cp -a ~/cds/mylib ~/cds/myproject/mylib"). After this is done, you will need to go in and edit the ~/cds/PROJECT/cds.lib file by hand to add in the library. You will also want to edit the ~/cds/cds.lib file to remove the old traces of the project.