gEDA-dev: Fwd: google soc

al davis ad136 at freeelectron.net
Tue May 29 15:22:40 EDT 2007


On Tuesday 29 May 2007, John Doty wrote:
> It is very important to me that the gEDA tools remain
> separate. I   work with customers who use a variety of tools:
> it is *very* useful to be able to insert gEDA as needed into
> a foreign design flow. That's why I'm interested in seeing
> flexible translators like gnetlist rather than an integrated
> plugin system.
>
> Of course, gnetlist can surely be improved, and other sorts
> of   translation could be handy.

gnetlist is a plugin system, with plugins written in scheme.  It 
has a single input and multiple outputs.

What I was talking about is to handle multiple input formats, 
and can easily be a standalone translator.  My starting point 
really was gnetlist.  Take it a step further and make the input 
pluggable too.  That program will exist. 

The original target of the whole thing was to move in foreign 
formats.  My original proposal was exactly a stand-alone 
flexible translator that generalizes both ends of the path, in 
both directions.

It could be built on the gnetlist code, with scheme plugins.  
That was my original intent.  If at the time someone stepped up 
to do that, it would have gone that way.  As it turns out, it 
is being built a different way, with C++ plugins instead of 
scheme plugins.  Development is going well, but there are still 
some hacks.

Actually, my original proposal was to make a gnetlist like 
program, possibly derived from gnetlist, that would use VHDL (a 
language with a published standard document that is not tied to 
any particular tool) as the source format, and essentially keep 
the gnetlist output plugins.  Then make another specifically 
the other way, everything to VHDL. There is requirement that 
the two steps of translating a format to itself must be 
lossless, as correctness check.

If you imagine what these two programs do, it becomes apparent 
that they have data structures in common.  So, why bother with 
the intermediate format?  Use two plugins, one for in, one for 
out.

The point that seems to be the tripping point is to take it 
another step further and make that program provide a linkable 
interface, so I can link to that and eliminate the need for the 
simulator to deal with files at all.  Originally, I didn't want 
to go this far, but it turns out to be the easiest way for 
gnucap to deal with things like the multitude of Spice formats, 
which have been a major headache.

I did consider just adopting Verilog-AMS as the format for 
gnucap, and translating everything in, including the "dot" 
commands, reverse gnetlist style.  Perhaps I am wrong here, but 
I don't think Spice users would like this system.  Actually a 
few spoke up rather loudly.  I also heard from those who 
thought VHDL, not Verilog, should be the native language.

> Redesigning gEDA around a particular simulator would be bad.

I agree absolutely.  It's even worse that you think!  Designing 
around a particular simulator really means either designing 
around a particular version of it or everyone keeping in sync 
for years to come.

Take it a step further and substitute anything else (schematic, 
layout, synthesis, ...) for "simulator" in that statement.


More information about the geda-dev mailing list