[Xcircuit-dev] Cadence DFII to XCircuit translator

R. Timothy Edwards tim.edwards at multigig.com
Wed Jul 19 14:29:03 PDT 2006


Dear Satya,

> 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.

I think dbWriteSkill() is *more* thorough than the EDIF output, if one
could write a script to automatically ask for a dump of libraries from
Cadence.

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

I'm pretty sure that there is no way to determine from the EDIF output
how the cdsParam function maps parameters to the positions marked on
the display.

> 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.

I never said that EDIF *wasn't* inscrutable!  In fact, I think it's a
horrible format that combines the unreadability of binary code with
the lack of conciseness of ASCII.  The worst of both worlds.  But I
don't know how to drive Cadence from the command line very well, so
the only way I could find to dump the contents of a schematic was
through Export->EDIF.

> 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.

Download the lastest xcircuit-3.6 code and look at the file lib/tcl/edif.tcl.
If you have access to "edifout" from Cadence, then it would be instructive
to write EDIF out from Cadence and read it into XCircuit to see how I
handled the libraries.  XCircuit puts symbol views in the libraries and
schematic views on the pages.  The schematic views are not grouped into
libraries.  I started to address that once recently but didn't get very
far with it before I got sucked into another project.

What I did for the EDIF reader is to create a new library page upon
encountering a library definition.  The symbol views all go into this
library page.  Each schematic view goes on the first empty page available.
To make a new library, I use "library make $libname".  To make a new
symbol in that library, I use "object make $cellname $libname -force".
The "-force" I just added to the latest revision of XCircuit, because
otherwise you can't create an empty object;  you would have to create
some dummy element, select it and use that to make the object, then
delete the dummy element out of the object.  Alternatively, you could
always place the object contents on an empty page, then select
everything and make the object, but being able to create an empty
object is the more obvious solution.

If you find functions in the Tcl command-line interface that are either
missing or broken, please let me know.  Feel free to use any part of
"edif.tcl" that you find useful.

					Regards,
					Tim

+--------------------------------+-------------------------------------+
| Dr. R. Timothy Edwards (Tim)   | email: tim.edwards at multigig.com     |
| MultiGiG, Inc.                 | web:   http://www.multigig.com      |
| 100 Enterprise Way, Suite A-3  | phone: (831) 621-3283               |
| Scotts Valley, CA 95066        | cell:  (240) 401-0616               |
+--------------------------------+-------------------------------------+



More information about the Xcircuit-dev mailing list