[Xcircuit-dev] blobs and entities

R. Timothy Edwards tim at stravinsky.jhuapl.edu
Wed Feb 27 08:25:21 PST 2002


Dear Bob,

> Actually a double indexed normal array might work.
>	"part[entity][blob]={x/y,pins}"
> kind of thing.  You can now rename/renumber the entities
> because they are independent of the blob/pin info.

That makes sense.  I think the way to handle that is to
expand on the "infolabel" so that an object can be
declared to belong to a specific entity without assigning
it a part number.  It would probably be a good idea to
start standardizing the methods used by the "infolabel",
as this is where all the bookkeeping happens.  But the
general idea is that you would have

	"pcb:U<param1>-<param2>"

which declares actual part numbers, but also

	"pcb:entity[<param3>]"

which declares the object as belonging to a particular
chip, or entity.  If <param1> is changed in this
object, it will be similarly changed in all objects
having the same <param3>.  When you grab one "quad
part" component from the library, you will get all
four transferred to the page, and all of them
automatically assigned the same <param3>.  More
bookkeeping can be dealt with by

	"pcb:parts[DIP7400-1,DIP7400-2,DIP7400-3,DIP7400-4]"
	"pcb:pin[7]=GND"
	"pcb:pin[14]=Vdd"

The first one declares that there are four parts to
the entity, so that any missing parts can be added
to the PCB netlist output as unconnected entities.
The parts are listed by name, so that they don't have
to be the same, as in your relay example.  Because
my "libinst" parts all have the same name, I have to
think more about how the "-1", "-2", etc., should be
specified both in the infolabel and in the library part
name.  The last two deal with the Vdd and GND pins, or
any other pins not belonging to any of the parts
themselves.  The netlist generator would know to
generate a netlist entry for only one of these per
entity.

I'm making up syntax as I go along, which is why I
say I should be "standardizing the methods".  But
regardless, do these ideas seem to you like a good
way of implementing multi-part entities?  Any ideas
you have on syntax?  Standards would probably
require something like:

	"pcb1:entityname=U"
	"pcb2:entityparts[DIP7400-1,DIP7400-2,DIP7400-3,DIP7400-4]"
	"pcb3:entity=<param3>"
	"pcb4:part=<param1>"
	"pcb5:subpart=<param2>"
	"pcb6:pin[7]=GND"
	"pcb7:pin[14]=Vdd"

Warnings will pop up if you do something inconsistent, like a
duplicated part or subpart.  Otherwise you would be free to
show unused parts on the schematic, or not, as you please,
and you're free to (re)number the part or let auto-numbering
do its thing.

Since this involves standards and opinions, I'll CC this email
to the xcircuit-dev mailing list so anybody listening in can
weigh in on the issue.

					Regards,
					Tim

_______________________________________________
Xcircuit-dev mailing list
Xcircuit-dev at lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/xcircuit-dev



More information about the Xcircuit-dev mailing list