Pictorial introduction to using Cadence & Subversion

I previously blogged about some scripts I use to help Cadence & Subversion be more compatible. I received some feedback that the scripts were incomplete and came without any usage model. So, I went through an excercise to document the scripts and to make sure they were complete.

Untar the CDSVN.tar file. It will create a directory called CDSVN

[wagh@porthos ~/example]$ tar xvf ~/cdsvn2.tar
  CDSVN/
  CDSVN/cdsLibMgr.il
  CDSVN/bin/
  CDSVN/bin/add
  CDSVN/bin/unlock
  CDSVN/bin/savesvn
  CDSVN/bin/fixtilde
  CDSVN/bin/unlockify
  CDSVN/bin/lock
  CDSVN/bin/lockify
  CDSVN/bin/cdsignore
  CDSVN/svnAddCV.il
  CDSVN/svnAddCell.il
  CDSVN/svnCopyCV.il
  CDSVN/svnCopyCell.il
  CDSVN/svnCopyTrigger.il
  CDSVN/svnLockCV.il
  CDSVN/svnLockCell.il
  CDSVN/menus/
  CDSVN/menus/schematic.menus
  CDSVN/menus/layEdit.menus
  CDSVN/README
  CDSVN/COPYING
  CDSVN/svn.cdsinit
  CDSVN/cadence_ignores.txt
  CDSVN/example.cdsinit

Set up Subversion with a new repository for Cadence

  [wagh@porthos CDSVN]$ svnadmin create ~/examplerepo

Modify svn.env script to point to your subversion repository

Change the line:

setenv SR file:///home/user/examplerepo

to list your

~/examplerepo

(for example)

Set up environment variables

cd CDSVN
[wagh@porthos CDSVN]$ source svn.env
What this script just did:
PATH = /usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/wagh/example/CDSVN/bin
If you haven't already, please edit this script to change the variable SR to point to a subversion repository
SR = file:///home/user/examplerepo
[wagh@porthos CDSVN]$ cd ..
[wagh@porthos ~/example]$

Import your work area (

CDSVN

) into the repos

[wagh@porthos CDSVN]$ svn import CDSVN $SR/trunk -m "Importing Cadence area into trunk"
Adding         CDSVN/svnLockCell.il
Adding         CDSVN/svnAddCell.il
Adding         CDSVN/cadence_ignores.txt
Adding         CDSVN/example.cdsinit
Adding         CDSVN/menus
Adding         CDSVN/menus/layEdit.menus
Adding         CDSVN/menus/schematic.menus
Adding         CDSVN/svnCopyTrigger.il
Adding         CDSVN/svn.env
Adding         CDSVN/README
Adding         CDSVN/svnCopyCV.il
Adding         CDSVN/svn.cdsinit
Adding         CDSVN/svnCopyCell.il
Adding         CDSVN/COPYING
Adding         CDSVN/bin
Adding         CDSVN/bin/lockify
Adding         CDSVN/bin/unlockify
Adding         CDSVN/bin/savesvn
Adding         CDSVN/bin/add
Adding         CDSVN/bin/fixtilde
Adding         CDSVN/bin/lock
Adding         CDSVN/bin/unlock
Adding         CDSVN/bin/cdsignore
Adding         CDSVN/cdsLibMgr.il
Adding         CDSVN/svnLockCV.il
Adding         CDSVN/svnAddCV.il

Committed revision 1.

Backup your CDSVN area and dump out a fresh copy

[wagh@porthos ~/example]$ mv CDSVN CDSVN.bak
[wagh@porthos ~/example]$ svn co $SR/trunk CDSVN
A    CDSVN/svnLockCell.il
A    CDSVN/svnAddCell.il
A    CDSVN/cadence_ignores.txt
A    CDSVN/menus
A    CDSVN/menus/layEdit.menus
A    CDSVN/menus/schematic.menus
A    CDSVN/example.cdsinit
A    CDSVN/svnCopyTrigger.il
A    CDSVN/svnCopyCV.il
A    CDSVN/svn.env
A    CDSVN/README
A    CDSVN/svn.cdsinit
A    CDSVN/svnCopyCell.il
A    CDSVN/bin
A    CDSVN/bin/lockify
A    CDSVN/bin/unlockify
A    CDSVN/bin/savesvn
A    CDSVN/bin/add
A    CDSVN/bin/fixtilde
A    CDSVN/bin/lock
A    CDSVN/bin/unlock
A    CDSVN/bin/cdsignore
A    CDSVN/COPYING
A    CDSVN/cdsLibMgr.il
A    CDSVN/svnLockCV.il
A    CDSVN/svnAddCV.il
Checked out revision 1.

cd CDSVN

and created/edit a

.cdsinit

to include the line

load("svn.cdsinit")

  [wagh@porthos ~/example]$ cd CDSVN/
  [wagh@porthos CDSVN]$ svn mv example.cdsinit .cdsinit
  A         .cdsinit
  D         example.cdsinit

Start cadence & create a new library

[wagh@porthos CDSVN]$ icfb &

Select no tech library (unless you explicitly have one defined already)

Menu pick for creating a new library

Select file->new->library to create a new library

Select no DM & No Tech Lib

Select no DM & No Tech Lib

Add the new library to subversion management

[wagh@porthos CDSVN]$ svn st
?      shared_design
?      cds.lib
D      example.cdsinit
A  +   .cdsinit
[wagh@porthos CDSVN]$ add shared_design/
svn add -N shared_design/
A         shared_design

property 'svn:ignore' set on 'shared_design'

A         shared_design/cdsinfo.tag

A  (bin)  shared_design/prop.xx
[wagh@porthos CDSVN]$ svn st
?      cds.lib
D      example.cdsinit
A      shared_design
A      shared_design/cdsinfo.tag
A      shared_design/prop.xx
A  +   .cdsinit
[wagh@porthos CDSVN]$ svn add cds.lib
A         cds.lib

[wagh@porthos CDSVN]$ svn ci -m "Got barebones libraries set up"
Adding         .cdsinit
Adding         cds.lib
Deleting       example.cdsinit
Adding         shared_design
Adding         shared_design/cdsinfo.tag
Adding  (bin)  shared_design/prop.xx
Transmitting file data ...
Committed revision 2.

Start library manger & create a new cell

(Optional) Edit the cell view

Edit the cell view as you wish

Edit the cell view as you wish

Edit it some more (if you wish)

Edit it some more (if you wish)

Back in library manager, add the cell view to subversion

Right click on the cell view in the Library Manager

Right click on the cell view in the Library Manager

Just hit OK

Just hit OK

Do a status on the command-line

[wagh@porthos CDSVN]$ svn st
?      libManager.log.1
?      libManager.log.1.cdslck
A      shared_design/top_level
A      shared_design/top_level/schematic
A      shared_design/top_level/schematic/sch.cdb
A      shared_design/top_level/schematic/master.tag
A      shared_design/top_level/schematic/pc.db
A      shared_design/top_level/schematic/prop.xx

Check in

[wagh@porthos CDSVN]$ svn ci -m "Adding shared_design"
Adding         shared_design/top_level
Adding         shared_design/top_level/schematic
Adding         shared_design/top_level/schematic/master.tag
Adding         shared_design/top_level/schematic/pc.db
Adding  (bin)  shared_design/top_level/schematic/prop.xx
Adding  (bin)  shared_design/top_level/schematic/sch.cdb
Transmitting file data ....
Committed revision 3.

Edit the cell some more

Edit the cell view some more (for example, add another resistor)

Edit the cell view some more (for example, add another resistor)

Example when you're done adding a resistor

Example when you're done adding a resistor

Try to check & save

Check and save won't work; cell view is locked

Check and save won't work; cell view is locked

Lock the cell view

Check & save again

cell view is locked for edit

This time it works: cell view is locked for edit

Do another svn status

[wagh@porthos CDSVN]$ svn st
?      libManager.log.1
?      libManager.log.1.cdslck
M    K shared_design/top_level/schematic/sch.cdb
     K shared_design/top_level/schematic/master.tag
M    K shared_design/top_level/schematic/pc.db
M    K shared_design/top_level/schematic/prop.xx

We can see that the schematic has been modified

Check in again

[wagh@porthos CDSVN]$ svn ci -m "Added another resistor"
Sending        shared_design/top_level/schematic/pc.db
Sending        shared_design/top_level/schematic/prop.xx
Sending        shared_design/top_level/schematic/sch.cdb
Transmitting file data ...
Committed revision 4.
This entry was posted in Analog Professional and tagged , , , , , , , , , , , . Bookmark the permalink. Comments are closed, but you can leave a trackback: Trackback URL.

One Comment

  1. Markus
    Posted September 16, 2008 at 6:49 am | Permalink

    Hi Poojan,

    thanks a lot for the update and for the nice tutorial :-) Everything is working now.

    Regards,
    Markus

One Trackback

  1. [...] is purely personal taste; others will (strongly) disagree. In fact, for many other purposes, I strongly prefer Subversion to [...]