[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
Re: gEDA-user: Some kind of library manager and hierarchical netlisting
On Nov 19, 2008, at 7:11 PM, r wrote:
> On Thu, Nov 20, 2008 at 1:09 AM, John Doty <jpd@xxxxxxxxx> wrote:
>>
>>> Agreed. I didn't mean gnetlist doesn't work with hierarchical
>>> designs
>>> at all - it just didn't produce any useful results last time I tried
>>> it.
>>
>> You haven't clearly stated what your problem was. I've done both
>> hierarchical VLSI designs (SPICE style: generate a hierarchical
>> netlist with a Makefile and let the downstream tools flatten it), and
>> circuit boards (use source= and let gnetlist do the flattening).
>> Works great for me. Nobody can fix a problem you can't clearly
>> articulate.
>
> Can you explain in detail how do you generate the hierarchical
> netlist?
Here's a simplified version of my current flow.
1. Don't use source= in your symbols. Prepare schematics and symbols
according to http://www.brorson.com/gEDA/SPICE/t1.html.
2. Put a list of the component subcircuits in the makefile:
SUBCIRCUITS= foo.cir bar.cir ...
Note that I import some subcircuits from OpenIP (http://
research.kek.jp/people/ikeda/openIP/) as SPICE netlists: as there are
already schematics in the OpenIP documentation there I don't redraw
them in gschem. Just put the imported subcircuit netlists in the
project directory: if there's no explicit rule to create them and
no .sch file for them, make will be content to use them as is.
3. A macro for gnetlist is handy:
GNET= gnetlist -q -g spice-sdb -I --nomunge -o $@ $^
4. A generic rule for netlisting single page schematics is handy:
%.cir : %.sch
$(GNET)
5. For multipage schematics the generic rule won't work, need to make
an explicit rule, but it's easy:
foo.cir : foo.1.sch foo.2.sch
$(GNET)
6. The hierarchical netlist is then just the concatenation of the
subcircuit netlists, so one more rule makes it:
project.cir : $(SUBCIRCUITS)
cat $(SUBCIRCUITS) >project.cir
So now, I can type "make project.cir" and get a hierarchical netlist.
> Although using Makefile doesn't seem particularly appealing
> to me (I keep all my design data in a single place - schematics)
Huh? Schematics are a graphical representation of a netlist. There is
so much more that goes into a design. Requirements, high level
simulation and optimization code, descriptive documentation, etc.
Even for netlists, schematics are sometimes a second-rate
representation. A drawing of a backplane that has nothing but a bunch
of 100 pin connectors on it is pretty useless, but connector pinlists
are nice "source files" both for netlists and text documentation.
> it
> could potentially make the flow working until the "proper" netlister
> is done.
>
>>> I've looked into the scheme code but I couldn't find any obvious
>>> errors. This single error broke my workflow, I think it is important
>>> enough to inform others that they should not rely on this particular
>>> feature.
>>
>> What error?
>
> We discussed several issues here:
> http://archives.seul.org/geda/user/Jan-2008/msg00249.html
>
> Please accept my appologies if those have already been fixed - I
> haven't used gnetlist since that time.
Let me address the first one:
> Is it possible to setup gnetlist (gnetlist -g spice-sdb) so that it
> won't add ".END" at the end of the spice netlist?
Yes. Make your schematic a subcircuit. Or use. "sed -e '$d'".
>
> In my flow, I usually prepare a testbench file manually and from here
> I include a (clean, without simulation commands) netlist. However,
> that ".END" makes this flow awkward. Sure, I can do it the other way
> around or postprocess the netlist but it's an additional hassle.
It's a *trivial* hassle. It's like the engineer who wouldn't use the
signal generator because its output was a type N, and he would only
use BNC's. Get over it. Get an adapter. gEDA is an extremely flexible
toolkit, adaptable to many flows. It's your job to do the tiny amount
of thinking needed to adapt it to *your* flow. The alternative is
something too inflexible to adapt at all. But with gEDA, as with many
good things, a little resourcefulness goes a long way.
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