[Xcircuit-dev] Cadence DFII to XCircuit translator

Satya Mishra snmishra at hotpop.com
Wed Jul 19 06:20:09 PDT 2006


Dear Tim,

R. Timothy Edwards wrote:
> I made a great deal of headway with an EDIF-to-XCircuit translator, which
> I can now use to port Cadence schematics to XCircuit (I don't have the
> process going the other way, yet).  The newest version (3.6.42) has the
> Tcl script for EDIF reads in the "File" menu.  From Cadence ICFB, I just
> need to do "File->Export->EDIF 200...", choose the schematic view of the
> cell I want, and otherwise accept the defaults.
> 
> I did a Skill dump with dbWriteSkill() that looks something like the
> following:
> 
>   dbWriteSkill(dbOpenCellView("lib" "cell" "schematic") "filename" "a" 
> "4.4.3")
> 
> but the output is inscrutable with references to database hex addresses,
> stuff like:
> 
>   dbD_0xd51b9e0 = dbCreateNet(dbD_0xca17c2c "downn" nil)
> 

The hex names are just variable names. The Skill file is fairly simple 
actually and most operations in it map to XCircuit concepts.

> The EDIF output seems to be much more thorough (e.g., it produces all
> of the information necessary to draw each of the library components).

I think dbWriteSkill is at least as thorough as EDIF (I haven't done any 
tests to prove this) as the program generated by it can reproduce the 
schematic (or any other database) exactly.

> Am I missing something in the Skill output?  I get the feeling I would
> have to separately dump each library with a dbWriteSkill() call.  I did

Actually, you would have to do dbWriteSkill for each cell view. But 
Skill is a decent enough programming language. So a short program will 
do that for you.

> notice that not everything in Cadence translates perfectly through EDIF;
> for example, the voltage and current sources are drawn with ellipses,
> which EDIF (at least not EDIF 2.0.0) doesn't support.  I also couldn't
> figure out how the instance properties relate to the text that shows
> up in the Cadence schematic---it dumps a bunch of text lines with
> text values like "cdsParam(1)", where it is clear from looking at the
> schematic that the device width (for example) gets substituted there,
> but this cannot be derived from anything in the EDIF output.

cdsParam is a skill function that translates to the parameters defined 
for display in the CDF (component description format) of the cell at 
runtime.

It is interesting how two people can find different things to be 
inscrutable. I found the EDIF format rather complicated for my taste. 
Lisp is far more straight forward for me.

On my end, I have been working on the Skill to TCL converter off and on 
for a few weeks. Right now, I am stuck with trying to find mapping 
between the concepts of libraries in Cadence and XCircuit. DFII has the 
Cells in Libraries and Views within Cells. Correct me if I am wrong, but 
XCircuit only has objects in numbered library pages. I haven't yet 
figured out how to make an instance of an object in a library known only 
by name using XCircuit TCL. If you can give me some pointers in that 
regard, I think I can get further along in the translation process.

Satya








More information about the Xcircuit-dev mailing list