Hi Adam, Glad to hear you.
Neither ImmutableNodeInst nor ImmutablePortInst know about their Exports. Exports are contained in CellBackup. AbstractShapeBuilder has field CellBackup.Memoization m; The method m.getExports(originalNodeId) will return an Iterator over ImmutableExports connected to this NodeId in the CellBackup. The m.getExports method is rather expensive. So I suggest to put your code into Schematics.genShapeOfNode instead of AbstractShapeBuilder.genShapeOfNode. Let keep code in AbstractShapeBuilder simple and fast. Sorry for late answer. I will be more accessible after July 13. -Dima ----- Original Message ----- From: Adam Megacz <[email protected]> Date: Wednesday, July 8, 2009 2:25 am Subject: ImmutablePortInst.getExports() > > 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 <[email protected]> > Subject: > To: [email protected] > 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 > > > > _______________________________________________ > Bug-gnu-electric mailing list > [email protected] > http://lists.gnu.org/mailman/listinfo/bug-gnu-electric > _______________________________________________ Bug-gnu-electric mailing list [email protected] http://lists.gnu.org/mailman/listinfo/bug-gnu-electric
