[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