[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: gEDA-user: Slot naming improvement methods.



On Jan 14, 2009, at 2:52 PM, John Doty wrote:
>
>> When adding a slotted or multi part component it should have an
>> attribute of an unique instantiation ID (UIID) that gets matched With
>> the other symbols of that device instance.
>
> The way gnetlist works, the refdes is the identifier. Changing this
> will break all of the back ends.

i did not say remove refdes.
each part has an additional identifier for its brethren slotted parts,  
it UIID

so if one gets renamed, they all have to be renamed.
	- if you edit the refdes attribute on a part with an UIID, gschem  
would want to rename all refdes's on the devices with the same UIID,   
a scheme hook could search the project for parts with the same UIID  
and rename them,  asking the user of course.

only users that wanted that hook loaded would get the additional  
feature.

>> This works into deeper capabilities,  assisted slotting and multi
>> symbol verification.
>
> It breaks the paradigm: "a program should do one thing well".

gschem should make schematics well,  since multiple slot/part symbols  
are in schematics, and they are broken,  we don't do this part of  
schematics well, therefore we don't do schematic capture well.  yea we  
have external renumber scripts, but when the renumber built into the  
gui breaks, it leaves a bad impression.

> Very complex. Stefan's simpler idea seems better to me.


sounds complex, cause I gave lots of details, justifications, and  
examples.
it should not be complex in implementation

using the existing device attribute,  we make a matching <device>.msym  
file

each sub symbol would have to have the same device attribute.

the msym file has the contents that explains the rules.
it could even use Stefan's notation of  "SubParts=Bank0, Bank1, Power"


or wrap it into each symbol instead of the .msym
SubParts="Bank0, Bank1, Power"
SubPart="Bank0"
UIID=unassigned

but putting it into each symbol leads to an issue of mismatched  
constraints and affects everyones symbols who may not care for the new  
system.  the new system would be scheme hooks and an additional msym  
file  and can use old symbols with out editing

Now that the meta data is stored.

When we place a component we call the place component scheme hook to  
check the for other parts of that device type, check for other UIIDs,   
if we find others, we either add to one of the found UIIDs, or make a  
new one.  we then check to see if adding that part would break rules.   
e.g. only one BANK1 on a FPGA etc...

when we rename a part, have a hook there that calls the script to  
check for the UIIDs  if there are matching UIIDs ask if we want to  
renumber all of the UIIDs or split the part.

with an attribute edit,  i have an attribute that specifies if pick  
and place should be skipped for a part,  that attribute should be the  
same on all of the symbols.  the UIID isn't required, but helps.

in gnetlist,  stuff to check the refdes, UIID, and <device>.msym would  
go there as well.

All of this could be done with out the UIID,  but then there is no  
book keeping for gEDA. The UIID is to be set by tools, not by human  
entry, the whole point  of the UIID is to allow the tool to track that  
instance of a device.

in other words,  the hooks and scripts could check refdes,device, and  
UIID or just refdes and device; but it breaks when the designer  
changes only one of the refdeses.  A UIID being a managed attribute is  
robust against oversight.  except in a text editor ;-)

Hardkrash


_______________________________________________
geda-user mailing list
geda-user@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user