( ESNUG 478 Item 3 ) -------------------------------------------- [12/18/08]

From: Oliver Ling <oling=user domain=zerogwireless not calm>
Subject: A user-written tutorial on how to use IC Manage on your projects

Hi John,

At my company, we use IC Manage's design management system for our wireless
designs for the embedded market.  We've had 7 tapeouts using IC Manage.

IC Manage's Project Manager (ICMPM) is an application within the IC Manage
Global Design Platform (GDP).  We run the Project Manager via a GUI or
command line interface to easily configure client workspaces and project
library configurations for a given project and its many revisions and
tapeouts.  Furthermore, the team that starts the project may not be the
same one that actually sees the project through to completion.

IC Manage allows us to manage these aspects of our project:

    1. Cadence DFII databases (i.e. Virtuoso schematic capture,
       Virtuoso IC layout, etc.)

    2. RTL, digital verification, gate-level simulation (Mentor
       Modelsim and Cadence AMS).

    3. Engineers' workspaces for the project and it's many
       revisions (planned or ECO).

IC Manage Project Manager SETUP

The Project Manager setup time is minimal... ease of use is where the money
is at.  Let's take an example project called "Alpha".  Alpha has 3 scheduled
tapeouts, which we will designate as A, B and C.  Using IC Manage from the
ground up, these are the steps that we take to use the Project Manager to
create the Alpha project:

  1. Define and create library types (working databases) for the Alpha
     project.  For example, we could create a library type called "Analog"
     which manages Cadence's DFII libraries, which are binary format.  We
     could also create a library type called "Digital" which manages RTL,
     verification environments, etc. and are generally ASCII (text) format.

  2. Create the libraries.

       - Under the "Analog" library type, I could create the following
         libraries: "PLL", "IO", "ADC", "DAC", "Top".  Since these are
         all "Analog" libraries, these libraries would be created in
         ICMPM but would be pre-formatted for Cadence DFII.  (Details
         below under "Cadence Integration".)

       - The "Digital" libraries would be created as well (e.g. "RTL",
         "DFT", "SYNTHESIS", "SIMULATION").  All of these created
         libraries are versioned and managed by the Perforce server
         working in the background.

     Creating the above libraries would have taken the same amount of time
     to implement in IC Manage's Project Manager as it took for me to write
     this description - about 5 minutes.   Doing this without ICMPM would've
     taken far longer (either manually or via writing your own scripts)
     and would be more prone to errors.

  3. Create client workspaces with library configurations.

     Each engineer will work from a "client workspace" (UNIX file structure
     containing directories and files) that allows him/her to check-out
     files from the libraries for editing, make the edits, then check-in
     edits to the libraries.  Configurations are basically include/exclude
     tables for all the available project libraries.

     A "client workspace" is essentially a working copy (sandbox). IC Manage
     allows us to create a custom configuration for every user or team.
     When creating these "client workspaces" for engineers, it is important
     to configure the workspaces to only contain the libraries that the
     engineer will work on.  For example, an analog circuit designer
     probably wouldn't have much interest in seeing the "Digital" libraries
     nor the other analog blocks that he's not working on.  This custom
     configuration is a huge savings in disk space for us as it avoids using
     unnecessary disk space due to every "client workspace" contain all of
     the libraries defined for the project when the engineers won't actually
     be accessing that data.

     New workspaces and configuration table can be custom created quite
     easily by selecting the appropriate configuration with a simple click
     in the Project Manager.  Moreover, existing workspaces can easily be
     reconfigured by changing its configuration & updating it within ICMPM.

     To clarify this, let me give another example.  Analog circuit designer
     has a workspace created and has the configuration called "PLL-Only",
     so the workspace is configured to only see the "PLL" library.  He finds
     that he has some extra bandwidth and is asked to work on the top level
     of analog block.  All we have to do is simply change his workspace
     configuration from "PLL-Only" to "Analog-All" (which is a configuration
     that includes all the analog libraries) and hit "update workspace".  It
     is that simple.

     IC Manage will automatically populate his workspace with all the analog
     libraries.  Of course, there is network traffic delay and disk write
     time, but essentially, the engineer only has to wait for the update to
     complete before he begins work on the latest versions of all the analog
     blocks.  Undoing this change is just as simple, just change the
     configuration and click "update workspace".

For a team of about 20 engineers, I can create a project, define the library
types, create the libraries, and 20 custom configured workspaces in about
30 minutes using ICMPM.

If a new engineer joins the team, I simply create a workspace for him,
configure it based on his tasks, and he's up and running within minutes. 
Likewise, I simply delete workspaces for engineers who are no longer on
the project.  The new engineer simply logs in to the network, navigates to
his workspace and will see all the libraries available.


Cadence Integration

The Cadence interface is also easy to use & obvious to non-IC Manage users.
Contractors with no previous experience with IC Manage have had no problems
learning how to use it and become productive in our environment quickly.

For our engineers that are Cadence users, the libraries created under
"Analog" library type are all preformatted during ICMPM set up to be Cadence
format.  So all the engineer has to do is launch "icfb" (Cadence's Custom
IC Design Tools or more commonly known as "Virtuoso") and open up the
Cadence Library Manager to see the managed libraries.

With fresh libraries created by ICMPM, you just attach a technology file to
the libraries, then either stream-in data (e.g. GDSII) or start creating
new cells.  ICMPM manages the Cadence .cdsinit file and mirrors it to the
"configuration file", so that the user's Cadence Library Manager only shows
those DFII libraries that are included in the configuration file.  ICMPM
also allows you to add the Cadence reference library as part of the
configuration, so that reference libs (managed or not) can automatically
be added to the .cdsinit file.  This is very handy.

Cadence's Virtuoso Library Manager browser has been customized by IC Manage
to be easier to use:

  - Engineers can simply check-out, check-in, and synchronize their Cadence
    libraries via simple buttons with "mouse over" descriptions.

  - Other handy buttons are "Check Outs", which show Cadence DFII cells
    that have been checked-out by anyone.)

  - "Defect Tracker" tracks defects (self-explanatory, I think).

  - On individual DFII cells in Virtuoso, we can right click cells (i.e.
    layout, schematic, symbol, etc) and check-out, check-in, and see its
    version history as well.  Our engineers can find out which cells are
    checked out and the history of each cell with a simple button click.


Tapeout A

Ok, back to the original example.  Our design teams have progressed towards
the first tapeout.  On the digital side, the RTL is frozen and all
verification/simulation has passed.  On the analog side, all layout has been
completed (LVS, DRC, ANT, ERC clean).  The full chip layout is done and
ready for tapeout to the foundry.

IC Manage can change the permissions/accessibility for some or all of the
project libraries.  The engineer can also change permission/accessibility
for individual clients or users in the project.

Generally, we like to "lock" the libraries as we get closer to tapeout, so
there are no accidental "edits".  A common scenario is that we find DRC
violations at the top-level; depending on the layout fix required, an
accidental "edit-in-place" command could lead to additional verification
runs to ensure that the accidental edits did not compromise anything, which
is time and resource costly.  In any case, the ability to "lock" libraries
and to "lock out" users during a project is invaluable.

Because we are a small company, it is common for us to use contractors in
our project.  So, an additional benefit of "locking out" users via the
"protection table" is "protecting" our IP.  This is invaluable to us
because it offers peace of mind, stability, and protection.


ECO To Tapeout A

Tapeout A silicon has arrived and naturally has led to some design changes.
Although these changes could be minor (i.e. a METAL2 layer change), we must
get the ECO completed and taped-out quickly while maintaining versioning.

We can "clone" the Tapeout A library set or "variant" into a "Tapeout A+"
variant.  The "A+" variant is identical to "A" except that it's version
history shows that it was a clone.  We can make the changes in "A+" "PLL"
and "Top Level" libraries and tapeout A+.  In ICMPM, now I have two
separate variants of the same project "A" and "A+" which are totally
independent from each other.  Why do this?  Why not just unlock "A",
make the changes in "A" and re-tapeout from "A"?  Well, there are occasions
where we may want to preserve "A".  What if "A+" is just an experimental
or a performance "what-if" ECO and not necessarily needed for production?
Maybe the plan is for Tapeout B to be a spin from "A" and not "A+"?  There
are numerous reasons for keeping "A" separate from "A+".

Another option is to create variant "A+" with links (references) to the
non-ECO libraries in "A" and integrating (branching) the ECO libraries
(i.e. PLL and Top Level) only.   The "A+" variant will be significantly
smaller in size (data wise) since it's not a clone and it's version history
will show that it is a branch-off of "A".  It is also quite easy to see what
libraries were affected (i.e. PLL, Top Level) because those libraries are
the only ones that are not "references" or links in the variant to "A".
For a natural progression to Tapeout B, we use this option quite frequently.
This also allows us to preserve "A" in case "A+" doesn't turn out right and
is not needed.

There are several options in managing the project database for ECOs, but in
all cases, using ICMPM makes it easier.  The additional variants (i.e. A+,
A++, etc.) can all have their own configurations and protection tables that
are independent of "A".  This is also important for project managers.


Tapeout B, C, and Production

As you can see from the ECO/A+ example above, further revisions are easy to
implement, manage, and secure.  For a given project, we can easily launch
ICMPM and quickly see all the project versions, ECOs, configurations, and
"who worked on what" over a project lifetime within seconds.  This is
invaluable.  Our project history is essentially built-into ICMPM project.


Change Propagation

IC Manage also lets us synchronize parent and child libraries.  In my
example, if ONLY the "PLL" from A+ (variant with the integrated libraries,
not the clone variant ) turns out to be a positive change that we would
want to keep going forward (i.e. Tapeout B), I can click on the "PLL"
library in ICMPM, right click and select "Update Parent".  This will do
just as it says... "updates the parent library" in Tapeout "A" as long
as the protection table allows.  As you recall, A+ was a change for the
PLL and Top Level, so if we just want the PLL change going forward, we can
create the Tapeout B variant from either cloning the updated Tapeout A
or just integrating (branching) all the libraries from Tapeout A.

Our methodology requires us to never "update a parent" as we prefer to
maintain databases for any silicon that we produce, but the option is
there for companies that have different methodologies.  Another benefit
from "update parent" is that we can see all the changes made since the
last released version of the library.  It's also handy for documenting
and tracking ECO changes for a given cell or library.

For example, if I want to see all the layout changes made for the "PLL"
from IC Manage, "update parent" will also show all the edits made and ask
for confirmation before the update.  If all you want to do is see the
differences, just cancel out.


Worst part about IC Manage:

I've come across some minor bugs, vut IC Manage's support is responsive
and there are frequent updates.  I think I've seen 8-10 patches/updates
over the last 1.5 years.  Bad part is that the tool was still maturing
quite a bit over the last 1.5 years; good part is it's getting better.

I have had no major bugs though, and the majority of my support tickets
were because I didn't read the manual (haha!).  

I did have one bug that I came across, where I did a configuration change
on an engineer's workspace.  While that person did an "update" or a sync,
I changed the configuration mid-sync.  This led to the engineer not being
able to correctly update their workspace to either configuration after
the initial update completed.  Worked with Shiv Sikand to work around the
issue.  No data lost, just a few hours of time.

I've NEVER had a unrecoverable database collapse with IC Manage.


Quantifying Time Savings

It is quite hard to quantify how much we've saved over the 1.5 years of
using IC Manage.  My best guess:

  - Setup (projects, variants, library types, libraries, ECO variants,
    versions): 3 - 5 weeks

  - Scripting (to replace configurations, protection tables): 1 - 2 weeks

  - Convenience (creating, maintaining workspaces): 5-7 days

  - Cadence Library Manager Interface (Virtuoso GUI): countless

Version control always requires an investment to go through "check-out" and
"check-in" with detailed comments for revisions.  However, our engineers
save time by having a detailed version history and the ability to back
-track if needed, which could be priceless.  

If I had to put down a number, I'd say that each user would invest about 2%
of their work week for revision control, but with IC Manage they could
save 5-20% of their time if they needed to back-track.

    - Oliver Ling
      ZeroG Wireless                             Fremont, CA
Index    Next->Item









   
 Sign up for the DeepChip newsletter.
Email
 Read what EDA tool users really think.


Feedback About Wiretaps ESNUGs SIGN UP! Downloads Trip Reports Advertise

"Relax. This is a discussion. Anything said here is just one engineer's opinion. Email in your dissenting letter and it'll be published, too."
This Web Site Is Modified Every 2-3 Days
Copyright 1991-2024 John Cooley.  All Rights Reserved.
| Contact John Cooley | Webmaster | Legal | Feedback Form |

   !!!     "It's not a BUG,
  /o o\  /  it's a FEATURE!"
 (  >  )
  \ - / 
  _] [_     (jcooley 1991)