[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