From: Adam Megacz Date: Tue, 24 Mar 2009 17:55:48 +0000 (+0000) Subject: updates to MarinaPacket X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=0ee12e91716131c749744d3b76b0f365226b4121;p=fleet.git updates to MarinaPacket --- diff --git a/testCode/com/sun/vlsi/chips/marina/test/MarinaPacket.java b/testCode/com/sun/vlsi/chips/marina/test/MarinaPacket.java index e8bfd07..f92e528 100644 --- a/testCode/com/sun/vlsi/chips/marina/test/MarinaPacket.java +++ b/testCode/com/sun/vlsi/chips/marina/test/MarinaPacket.java @@ -14,13 +14,15 @@ public class MarinaPacket { public final boolean tokenhood; public final BitVector path; - /** "parse" a token from the raw 37+1+14 bits in the north proper stopper */ + /** "parse" a token from the raw 1+14+37 bits in the north proper stopper */ public MarinaPacket(BitVector singleBitVector) { + if (singleBitVector.getNumBits()!=1+14+37) + throw new RuntimeException("wrong number of bits!"); this.data = new BitVector(37, "marina packet data"); this.path = new BitVector(14, "marina packet path"); - this.tokenhood = singleBitVector.get(37); - for(int i=0; i<37; i++) data.set(i, singleBitVector.get(i)); - for(int i=38; i<38+14; i++) path.set(i-38, singleBitVector.get(i)); + this.tokenhood = !singleBitVector.get(0); + for(int i=0; i<14; i++) path.set(i, singleBitVector.get(i+1)); + for(int i=0; i<37; i++) data.set(i, singleBitVector.get(i+15)); } /** manually assemble a packet */ @@ -32,22 +34,17 @@ public class MarinaPacket { /** convert a packet into a single BitVector, suitable for insertion in the north proper stopper */ public BitVector toSingleBitVector() { - BitVector bv = new BitVector(37+1+14, "marina packet"); - for(int i=0; i<37; i++) bv.set(i, data.get(i)); - bv.set(37, !tokenhood); - for(int i=38; i<38+14; i++) bv.set(i, path.get(i-38)); + BitVector bv = new BitVector(1+14+37, "marina packet"); + bv.set(0, !tokenhood); + for(int i=0; i<14; i++) bv.set(i+1, path.get(i)); + for(int i=0; i<37; i++) bv.set(i+15, data.get(i)); return bv; } public String toString() { - StringBuffer ret = new StringBuffer(); - ret.append("MarinaPacket("); - ret.append(data.toString()); - ret.append(","); - ret.append(tokenhood); - ret.append(","); - ret.append(path); - ret.append(")"); - return ret.toString(); + return + "tokenhood="+(tokenhood ? "token" : "data") + + ", path[14:1]=" + path.bitReverse().getState() + + ", data[37:1]=" + data.bitReverse().getState(); } } \ No newline at end of file