bug-gnu-electric
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

ImmutablePortInst.getExports()


From: Adam Megacz
Subject: ImmutablePortInst.getExports()
Date: Tue, 07 Jul 2009 15:25:45 -0700
User-agent: Gnus/5.110006 (No Gnus v0.6) Emacs/21.4 (gnu/linux)

Gilda suggested reposting this here for broader discussion.

After talking a bit more with Steve, it looks like this is a feature
which ought to be in ImmutablePortInst, but simply hasn't been
implemented yet.  Moreover, it should be possible to reconstruct the
necessary data without changing the on-disk format.  I will start
looking into how that can be done.

  - a

______________________________________________________________________________
From: Adam Megacz <address@hidden>
Subject: 
To: address@hidden
Date: Mon, 6 Jul 2009 19:24:01 -0700

Hi Dmitry!

I don't think we've met.  I'm Adam; I'm a student in the VLSI group at
Sun Labs.  We just finished taping out a test chip (Marina), and now
I've got time to work on Electric a bit.  In order to familiarize
myself with the code, I'm implementing a few simple features we
thought of while working on Marina.

One thing that caused us some problems was the fact that many of our
tools insist that the PortCharacteristics on Exports be set correctly
(mostly input/output/bidirectional).  Because design and testing are
done [mostly] by different people it helps if we can make any mistakes
as visually obvious as possible, to minimize the number of "round
trips" between QA and design.  If it's possible, I would like to
modify the visual rendering of the "off page connection" primitive in
the schematic technology so that it is drawn with one pointy end and a
small mark on the flat side if its PortCharacteristic is OUTPUT, on
the pointy side if its PortCharacteristic is INPUT, and with two
pointy ends when its PortCharacteristic is BIDIRECTIONAL.

Anyways, this was all sort of a long-winded way of explaining my
situation: I've implemented all the code necessary to do this, except
for one problem.  I added a field to Technology.NodeLayer so a
NodeLayer can be designated "invisible unless PortCharacteristic=X",
and added additional layers with this designation to
Schematics.offpageNode.  Then I modified
AbstractShapeBuilder.genShapeOfNode() so that it would refrain from
producing Poly(gons) for certain layers.  The problem arose when I
tried to add the logic to determine which layers it should refrain
from producing Polys for.  Unfortunately, genShapeOfNode() is passed
an ImmutableNodeInst.  From that ImmutableNodeInst I can get an
ImmutablePortInst, but unfortunately the ImmutablePortInst doesn't let
me get to the ImmutableExport objects -- unlike PortInst, which lets
me call getExports().  Also, ImmutableExport doesn't include a field
of type PortCharacteristic (although I didn't have much trouble adding
one).

Can you advise me on how to proceed here?  Is there a way to get the
ImmutableExports that go with an ImmutablePortInst?  I tried modifying
the ImmutablePortInst() constructor to take an ImmutableExport[] as an
argument (much like ImmutableNodeInst takes an ImmutablePortInst[] as
an argument), but then it seems that ImmutablePortInst.read() would
have to be changed, including the serialization format -- which is
probably not a wise idea.

Also, Steve mentioned that my plan might run into trouble with the
VectorCache.  Is the cache cleared when a node's port's export's
PortCharacteristic is changed?  If it is not, would clearing the cache
under these circumstances cause problems?

Hope your vacation was enjoyable,

  - a





reply via email to

[Prev in Thread] Current Thread [Next in Thread]