[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 20, 2008, at 4:07 PM, r wrote:
> On Thu, Nov 20, 2008 at 6:33 PM, John Doty <jpd@xxxxxxxxx> wrote:
>>
>>> Can you explain in detail how do you generate the hierarchical
>>> netlist?
>>
>> Here's a simplified version of my current flow.
>
> Thanks! I'll try it. This method looks pretty good.
>
>> 1. Don't use source= in your symbols.
>
> That's bad and good.
>
> Bad because it disables "hierarchical design support" in gschem (= you
> no longer can navigate to subcircuits in gschem).
A trivial inconvenience. One of these days, one of the gnetlist front
end gurus will put in a flag disabling hierarchy, and things will be
slightly nicer. In the mean time, it's not a blight on my life ;-).
> Good because all the
> design configuration is stored in only one place (Makefile).
>
>> 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)
>
> No problem here. Out of curiosity, what do you use multi-page
> schematics for in the IC design?
Sometimes the subcircuit's too big for a page, and doesn't factor
easily. Sometimes a revision adds stuff that won't fit on the
original page, and it isn't worth the trouble to refactor. In one
case, netlisting page 1 by itself yields a fixed gain amplifier,
netlisting it with page 2 yields a variable gain amplifier.
I don't like schematic pages that are difficult to read in letter or
A4 format: monster pages get in the way of creating a nice combined
documents.
>
>>> 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.
>
> I keep all these, except maybe for optimization code, separately from
> design data. The only exception is end-user documentation that itself
> is a part of the product/design.
OK, so how do you create that document? I use make.
>
>> 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.
>
> I agree. However, the tools I use at my job, handle such a mixed
> design environment quite well.
>
>> 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.
>
> I feel I need to explain something. There is nothing wrong with
> scripting the design flow. In fact, I do this all the time. However,
> scripting is only good at the development stage when people want to
> streamline their own "boring" job. Once they are done with this, the
> result must be as "self-contained" as possible.
That's precisely what scripting achieves. Check out the design
sources from the archive, type "make", and get all of the data products.
> If there is a build
> script used it must be tested, documented etc., because it becomes a
> part of the product.
Indeed. But if there isn't a script, a manual procedure to do the
build must be created, tested, documented, etc. That's more work than
a script, and it's more likely to cause trouble down the road.
> This Makefile-based flow is not different,
> although it's simpler than I expected.
>
> Finally, there is no magic in netlisting.
Exactly. It's the automated creation of a data product from a set of
data sources. This is precisely what make is good for.
> This, except for drawing
> schematics, is a basic function users normally expect from any design
> entry tool.
But they all expect it to work *differently*, and some complain
bitterly if the tool doesn't match their prejudices. The narrow
perspectives of the complaints on this forum are amazing. gEDA's
strength is flexibility, not pushbutton conformity.
> Netlisting the design really is not the place where
> Makefile should be _required_.
If you're doing a straight schematic to flat netlist flow, it *isn't*
required. If you want something trickier, you're going to have to
tell the tools exactly what it is you want (they can't read your
mind). A makefile is a very good way to communicate this.
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