SSHAFT Chip Assembly

last updated 12/26/2001


Topics:

Quick Links (coming soon):


Introduction

This page details the usage of the SSHAFT chip-assembly flow as automated by ICMake.  The dependency graph above shows the major steps of the flow.  The hyperlinks in the graph connect to the primary documentation for each step.  Each step has a green oval which represents the program that is to be run.  Each step also has a file or group of files associated with it that represents the output of the step.  These files are called the targets of each step and are represented by the white squares.  Likewise, the files associated with earlier steps in the design flow are called the dependencies of the step.

The goal of ICMake is to relieve designers of the burdens of file, directory, and dependency management during the execution of this flow and to eliminate the need for tool expertise as much as possible.  Furthermore, it is the goal of ICMake to guarantee functionality of any chip which passes through the entire flow.  This is accomplished with the SSHAFT API which provides the basic tools needed create a flow.  ICMake is simply a design management program based on the SSHAFT API.  ICMake imposes a directory structure and provides a user-interface for directing the flow.


Tutorials


Using ICMake

To use ICMake, first follow the setup instructions on the SSHAFT Setup Page.   Then create a run directory and copy an ICMakefile into it.  If you don't have an ICMakefile from a previous execution of the program, then grab one from one of the reference designs below.  The ICMakefile defines the design-flow as illustrated in the dependency graph above.  You are free to define your own steps or re-define the existing steps as needed.  You probably won't need to modify the ICMakefile much at first, but it tends to become a necessity for the later steps of the flow.

Invoke ICMake with the following command: icmake [step name].  ICMake will run the design flow from the beginning up to the step you specify (or to the step all, if no step is specified).  Certain steps along the way will be skipped if the dependencies are up-to-date with respect to the targets.

ICMakefile Syntax

Comming soon...

Directory Structure

All paths are relative with SSHAFT API.  All paths in ICMake are relative to the ICMake run directory.  Any paths specified in a sub-step are relative to the run-directory for that sub-step.  In order to make it possible to write the various steps of the design-flow independently, a directory tree structure must be assumed.  These directories can be created with the icmDirSetup command in the icmake.pm, or with the dirSetup.pl script.

Because many programs require a run-directory with a certain structure, ICMake assumes that a sub-directory called run exists in the ICMake run-directory.  This directory contains sub-directories tailored to the different tools invoked during execution of the design flow.

ICMake produces designs with arbitrary hierarchical depth.  The format of these hierarchies are described in the documentation for each step.  ICMake assumes that a sub-directory called data exists in the ICMake run-directory to collect these files. The data directory contains the following sub-directories:

Each one of these directories contains sub-directories of the format library_name/cell_name to collect the data associated with each cell in the design hierarchy.

Lastly, the log sub-directory in the ICMake run-directory is used for collecting the log files of various steps not associated with a specific cell in the hierarchy.


Debugging Programs

dirSetup.pl

createLib.pl

getTechVar.pl

bjcGenSchematic

listterm, listnet, & listinst


maintained by Rhett Davis
wrdavis@eecs.berkeley.edu