[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
Re: gEDA-user: gnetlist and hierarchy
Hi,
@Ales:
Thanks for the statement, alone the certainty helped me a lot, really.
@Steve:
Thank you very much for your interest (sorry for my late reply, I've
been experiencing trouble with my email account).
I am still very interested in a non standard netlister, although I
already solved my problem another way (see below).
The whole matter is a bit tricky to describe, since I'm not dealing with
"normal" electric circuits, but I am using gEDA for a special task
roughly located in the area of dataflow programming.
I think it's best I mail you some more details, because I don't want to
annoy the whole mailing list here.
Unfortunately I lost all my gEDA-user mails due to the mentioned trouble
with my email account, and email addresses are hidden in the web
archive, so could you please send me an email?
Oliver
---------------------------------------------------------------------------------
/** You may stop reading here, unless you're interested in a solution of
the very same problem **/
However, let me give another short overview of my problem, so that
people might understand the below solution better:
As should be clear by now, I've got a hierarchical design, and there are
"subsheet symbols" that represent a certain subsheet by carrying a
"source" attribute pointing to the subsheet .sch file.
(Keep in mind that I am dealing with a special task, not standard
electric circuits, so don't wonder _why_ I want to do something.
Explaining that would require a very, very long discussion, believe me.)
1)
I need to get the attributes attached to the subsheet symbol, attributes
like "source" and some special ones specific to my task. This can be
done with hierarchy traversal disabled, because that way the netlister
backend can "see" the subsheet symbols and therefore query attributes.
2)
On the other hand, I need to process all the components, the ones in the
subsheet as well, as possible with hierarchy traversal on.
And I was hoping I could combine both somehow, so that I could do all
the work straightforward in one single call of the gnetlister.
But as Ales confirmed, this is not possible.
=> Here goes my solution:
I disabled the hierarchy traversal (can be done in
/etc/gEDA/system-gnetlistrc or at runtime with a little modification,
see: http://archives.seul.org/geda/user/Nov-2008/msg00489.html).
and processed the subsheets myself, by recursively calling the
gnetlister with scheme's (actually guile's) OS interface.
I could then read the (temporary) output files and aggregate them all
together step by step on the way up returning form the recursive calls.
in pseudocode:
for each subsheet
do
recursive call of gnetlister on sub sheet
read produced output file and append it to current sheet's outfile
od
process components in current sheet and append output to outfile
This works well for me, I can do all I need: getting the subsheet
symbols' attributes on each level since hierarchy is disabled _and_
processing all the subsheet components later in each recursive call.
(Of course, for the pin interface between sub sheet and higher level
sheet, you have to use some sort of convention, because in the higer
level sheet you only see the pins of the sub sheet symbol, and inside
the recursive call for the according sub sheet you only see the INPUT /
OUPUT devices. In other words you can't simply move a step up or down
the hierarchy. I used the convention <pinlabel of the sub sheet symbol>
:= <INPUT/OUTPUT refdes>.)
Drawbacks are:
- this produces an outfile for each subsheet not just one for the top
level (I know they could be deleted after reading, but still...)
- and memory performance is probably not the best due to the
recursive calls. Although this doesn't really matter as long as there
isn't a horrendous amount of subsheets, still the shell output of
gnetlist looks a bit obfruscated.
If anyone needs more information on this: you're welcome to email me
about it.
_______________________________________________
geda-user mailing list
geda-user@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user