[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
Re: gEDA-user: Getting symbols from ASIC libraries into gschem: one approach
Jeff Trull wrote:
> Hi all,
>
> I'm consulting for a small ASIC startup that is interested in gEDA. They have
> a handful of licenses for expensive commercial tools but were looking for a
> low-overhead way to do some semi-custom work and asked me to investigate. I
> just went through the process of figuring out how to make symbols for the
> third-party standard cell libraries they've licensed, and I thought I'd share
> my experiences since I couldn't find this described on the net anywhere.
>
> Among the provided views of this library are ones for Cadence's Composer
> product. It turns out Cadence supplies a tool called "edifout", which will
> produce an EDIF (text) version of any cell view. You need to supply a
> template file, which Cadence helpfully provides an example of
> (tools/dfII/samples/xlUI/edifOut.il). I wrote a Perl script that just runs
> this once for every cell in the library, although some people recommend
> building a huge schematic with every cell in it, and then running edifout
> just once. With my approach you do need to generate a new template file each
> time, specifying a different cell (and you want the "symbol" view).
>
> Now you have EDIF for each cell's symbol view. From here I tried to find some
> kind of public-domain parser, but everything was a dead end. Then I realized
> that EDIF looked kind of like Lisp - i.e., an "s-expression". It turns out
> there's a CPAN module for parsing s-expressions called Data::SExpression, so
> I could suck in the whole file and treat it as a data structure (lists of
> lists). I did have to do a few day's worth of coding on top of this to
> generate the gschem symbols - the EDIF can be complex and the vendor
> libraries are quirky. Here are a few difficulties I encountered:
>
> 1) gschem wants pins to always be "pins" - i.e., a single line segment with a
> connection point at one end. EDIF has a "connection point" concept, but that
> point can be anywhere on a line segment or arc.
>
> 2) converting arcs was a challenge for me. gEDA wants (center, radius, start
> angle, sweep angle) while EDIF supplies three points known to be on the arc.
> You have to convert. I found the Wikipedia article called "Circle" to be the
> most helpful reference.
>
> 3) It seems like the gnetlist backends for Spice and Verilog have different
> concepts of how ports (for example) are specified, and possibly other things
> as well. It's desirable to have a single schematic netlistable to either
> format, but I don't think that works right now.
>
> So that's what I did. I wouldn't be surprised if there are better
> approaches - would anyone care to comment? I'd also be interested in hearing
> from anyone else out there who's tried to apply gEDA to ASIC design.
The good thing about edif is it may provide a path to migration from
other tools (except edif is never a portable as it claims).
That said, I'd bet it would be easier to write some skill code to
directly export the symbols from cadence.
-Dan
_______________________________________________
geda-user mailing list
geda-user@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user