[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
Re: gEDA-user: Getting symbols from ASIC libraries into gschem: one approach
On Jun 11, 2007, at 10:55 PM, 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:
I once attempted to use EDIF as an interchange format between
commercial tools that supported it. It was a disaster: it would have
been cheaper to chisel the design info into stone tablets and
translate the result by hand. But gEDA doesn't support EDIF: why try
*that* path?
> ...
> 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.
Be sure to use the spice-sdb netlister, not the old spice netlister.
See http://www.brorson.com/gEDA/SPICE/t1.html.
I don't know the Verilog netlister, but I think this should be a
solvable problem. If I were doing Verilog, I'd want to associate
ports by name (pinlabel=) rather than position (pinseq=). This seems
clearer and less error prone to me. SPICE can only do this by
position, so the methods would be independent.
Other things might need tweaking, I don't know. But even this greying
physicist whose Lisp is as rusty as the Titanic finds gnetlist back
ends easy to work on. The gEDA project welcomes improvements.
>
> So that's what I did. I wouldn't be surprised if there are better
> approaches - would anyone care to comment?
Symbol creation is boring, but if you keep track of time, you'll find
it's not a big part of the job. There are some tools (tragesym,
djboxsym, ...) in gEDA for partially automating it. I rarely draw a
symbol from scratch in gschem: I often modify an existing symbol.
> I'd also be interested in hearing
> from anyone else out there who's tried to apply gEDA to ASIC design.
>
I have, for one. See http://noqsi.com/images/
DeltaSigmaDigitization_SPIE.pdf for a description of a chip I
designed with gEDA. I used OpenIP (http://research.kek.jp/people/
ikeda/openIP/) for the digital and interface blocks. Made HSPICE
netlists, simulated with a spicepp-ngspice flow. The layout
contractor worked from the HSPICE netlists (mine and OpenIP). The
folks at Osaka also ran simulations in a commercial HSPICE (Tanner).
Fab by TSMC through MOSIS.
John Doty Noqsi Aerospace, Ltd.
http://www.noqsi.com/
jpd@xxxxxxxxx
_______________________________________________
geda-user mailing list
geda-user@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user