From 836b25222d4573f6b8a7b31c12c6877bdf2f7c34 Mon Sep 17 00:00:00 2001 From: Adam Megacz Date: Thu, 19 Nov 2009 22:42:42 -0800 Subject: [PATCH] merge MarinaFleet and Marina --- src/edu/berkeley/fleet/marina/Marina.java | 68 +++++++++++++++----- .../berkeley/fleet/marina/MarinaDestination.java | 4 +- src/edu/berkeley/fleet/marina/MarinaFleet.java | 43 ------------- src/edu/berkeley/fleet/marina/MarinaPath.java | 4 +- src/edu/berkeley/fleet/marina/MarinaShip.java | 4 +- 5 files changed, 59 insertions(+), 64 deletions(-) delete mode 100644 src/edu/berkeley/fleet/marina/MarinaFleet.java diff --git a/src/edu/berkeley/fleet/marina/Marina.java b/src/edu/berkeley/fleet/marina/Marina.java index 5b74b5a..1956bce 100644 --- a/src/edu/berkeley/fleet/marina/Marina.java +++ b/src/edu/berkeley/fleet/marina/Marina.java @@ -1,9 +1,44 @@ package edu.berkeley.fleet.marina; -import edu.berkeley.fleet.api.*; import com.sun.electric.tool.simulation.test.*; -import com.sun.electric.tool.simulation.test.BitVector; +import edu.berkeley.fleet.api.*; +import edu.berkeley.fleet.api.BitVector; +import edu.berkeley.fleet.two.*; +import edu.berkeley.fleet.*; +import java.util.*; + +public class Marina extends FleetTwoFleet { -public class Marina extends MarinaFleet { + MarinaShip fakeShip = new MarinaShip(this); + MarinaDock onlyDock = new MarinaDock(fakeShip, true); + + public BitVector encodeInstruction(Dock dispatchFrom, Instruction instruction) { + return encodeInstruction(instruction, dispatchFrom); + } + + public Iterator iterator() { + HashSet hs = new HashSet(); + hs.add(fakeShip); + return hs.iterator(); + } + + public Ship getShip(String type, int ordinal) { + throw new RuntimeException("not implemented"); + } + + public FleetProcess run(Instruction[] instructions) { + throw new RuntimeException("not implemented"); + } + + public BitVector getDestAddr(Path path) { + if (path==null) return new BitVector(0); + return ((MarinaPath)path).bv; + } + + public Dock getOnlyDock() { + return onlyDock; + } + + //////////////////////////////////////////////////////////////////////////////// JtagLogicLevel mc0; JtagLogicLevel mc1; @@ -27,6 +62,9 @@ public class Marina extends MarinaFleet { ChipModel model, boolean clockHack, Indenter indenter) { + // use "internal encoding" + super(true); + this.controlChain = controlChain; this.dataChain = dataChain; this.dukeChain = dukeChain; @@ -86,9 +124,9 @@ public class Marina extends MarinaFleet { private int value; private Ilc() { reportChain.shift(REPORT_CHAIN, true, false); - BitVector odd = reportChain.getOutBits(REPORT_CHAIN+"."+ILC_PATH_ODD).bitReverse().not(); - BitVector even = reportChain.getOutBits(REPORT_CHAIN+"."+ILC_PATH_EVEN).bitReverse().not(); - BitVector ret = new BitVector(8, "olc"); + com.sun.electric.tool.simulation.test.BitVector odd = reportChain.getOutBits(REPORT_CHAIN+"."+ILC_PATH_ODD).bitReverse().not(); + com.sun.electric.tool.simulation.test.BitVector even = reportChain.getOutBits(REPORT_CHAIN+"."+ILC_PATH_EVEN).bitReverse().not(); + com.sun.electric.tool.simulation.test.BitVector ret = new com.sun.electric.tool.simulation.test.BitVector(8, "olc"); for(int i=0; i<4; i++) { ret.set(i*2+1, odd.get(i)); ret.set(i*2, even.get(i)); @@ -278,9 +316,9 @@ public class Marina extends MarinaFleet { public int getOLC() { reportChain.shift(REPORT_CHAIN, true, false); if (omegaCounter) { - BitVector bits = null; + com.sun.electric.tool.simulation.test.BitVector bits = null; for(int i=0; i<4; i++) { - BitVector x = reportChain.getOutBits(REPORT_CHAIN+"."+OLC_PATH_KESSEL+i); + com.sun.electric.tool.simulation.test.BitVector x = reportChain.getOutBits(REPORT_CHAIN+"."+OLC_PATH_KESSEL+i); //System.out.println("bits are: " + x); bits = bits==null ? x : bits.cat(x); } @@ -313,9 +351,9 @@ public class Marina extends MarinaFleet { System.out.println(); return ret; } else if (kesselsCounter) { - BitVector bits = null; + com.sun.electric.tool.simulation.test.BitVector bits = null; for(int i=0; i<4; i++) { - BitVector x = reportChain.getOutBits(REPORT_CHAIN+"."+OLC_PATH_KESSEL+i); + com.sun.electric.tool.simulation.test.BitVector x = reportChain.getOutBits(REPORT_CHAIN+"."+OLC_PATH_KESSEL+i); //System.out.println("bits are: " + x); bits = bits==null ? x : bits.cat(x); } @@ -352,11 +390,11 @@ public class Marina extends MarinaFleet { ); return (first+second); } else { - BitVector odd = reportChain.getOutBits(REPORT_CHAIN+"."+OLC_PATH_ODD).bitReverse(); - BitVector even = reportChain.getOutBits(REPORT_CHAIN+"."+OLC_PATH_EVEN).bitReverse(); + com.sun.electric.tool.simulation.test.BitVector odd = reportChain.getOutBits(REPORT_CHAIN+"."+OLC_PATH_ODD).bitReverse(); + com.sun.electric.tool.simulation.test.BitVector even = reportChain.getOutBits(REPORT_CHAIN+"."+OLC_PATH_EVEN).bitReverse(); odd = odd.not(); even = even.not(); - BitVector bv = new BitVector(6, "olc"); + com.sun.electric.tool.simulation.test.BitVector bv = new com.sun.electric.tool.simulation.test.BitVector(6, "olc"); for(int i=0; i<3; i++) { bv.set(i*2, odd.get(i)); bv.set(i*2+1, even.get(i)); @@ -382,12 +420,12 @@ public class Marina extends MarinaFleet { public int getNumTokens() { reportChain.shift(REPORT_CHAIN, true, false); // get the token successor and token FIFO wires - BitVector bv = reportChain.getOutBits(REPORT_CHAIN+"."+TOK_FIFO_PATH); + com.sun.electric.tool.simulation.test.BitVector bv = reportChain.getOutBits(REPORT_CHAIN+"."+TOK_FIFO_PATH); int sz = bv.getNumBits(); MarinaTest.fatal(sz!=3, "wrong token FIFO size: "+sz+" expected: 3"); // get the token predecessor wire - BitVector pred = reportChain.getOutBits(REPORT_CHAIN+"."+TOK_PRED_PATH); + com.sun.electric.tool.simulation.test.BitVector pred = reportChain.getOutBits(REPORT_CHAIN+"."+TOK_PRED_PATH); sz = pred.getNumBits(); MarinaTest.fatal(sz!=1, "wrong token predecessor size: "+sz+" expected: 1"); diff --git a/src/edu/berkeley/fleet/marina/MarinaDestination.java b/src/edu/berkeley/fleet/marina/MarinaDestination.java index 8e1d032..7bd872b 100644 --- a/src/edu/berkeley/fleet/marina/MarinaDestination.java +++ b/src/edu/berkeley/fleet/marina/MarinaDestination.java @@ -5,9 +5,9 @@ import edu.berkeley.fleet.two.*; public class MarinaDestination extends Destination { private final BitVector bv; - private final MarinaFleet marina; + private final Marina marina; - public MarinaDestination(MarinaFleet marina, BitVector bv) { + public MarinaDestination(Marina marina, BitVector bv) { super(marina.onlyDock); this.marina = marina; bv.setImmutable(); diff --git a/src/edu/berkeley/fleet/marina/MarinaFleet.java b/src/edu/berkeley/fleet/marina/MarinaFleet.java deleted file mode 100644 index 22c7a86..0000000 --- a/src/edu/berkeley/fleet/marina/MarinaFleet.java +++ /dev/null @@ -1,43 +0,0 @@ -package edu.berkeley.fleet.marina; -import edu.berkeley.fleet.api.*; -import edu.berkeley.fleet.two.*; -import edu.berkeley.fleet.*; -import java.util.*; - -public class MarinaFleet extends FleetTwoFleet { - - MarinaShip fakeShip = new MarinaShip(this); - MarinaDock onlyDock = new MarinaDock(fakeShip, true); - - public MarinaFleet() { - // use "internal encoding" - super(true); - } - - public BitVector encodeInstruction(Dock dispatchFrom, Instruction instruction) { - return encodeInstruction(instruction, dispatchFrom); - } - - public Iterator iterator() { - HashSet hs = new HashSet(); - hs.add(fakeShip); - return hs.iterator(); - } - - public Ship getShip(String type, int ordinal) { - throw new RuntimeException("not implemented"); - } - - public FleetProcess run(Instruction[] instructions) { - throw new RuntimeException("not implemented"); - } - - public BitVector getDestAddr(Path path) { - if (path==null) return new BitVector(0); - return ((MarinaPath)path).bv; - } - - public Dock getOnlyDock() { - return onlyDock; - } -} diff --git a/src/edu/berkeley/fleet/marina/MarinaPath.java b/src/edu/berkeley/fleet/marina/MarinaPath.java index 84cb47f..e3d5b63 100644 --- a/src/edu/berkeley/fleet/marina/MarinaPath.java +++ b/src/edu/berkeley/fleet/marina/MarinaPath.java @@ -6,10 +6,10 @@ public class MarinaPath extends FleetTwoPath { public static final int SIGNAL_BIT_INDEX = 13; - private final MarinaFleet marina; + private final Marina marina; final BitVector bv; - public MarinaPath(MarinaFleet marina, BitVector bv) { + public MarinaPath(Marina marina, BitVector bv) { this.marina = marina; this.bv = bv; bv.setImmutable(); diff --git a/src/edu/berkeley/fleet/marina/MarinaShip.java b/src/edu/berkeley/fleet/marina/MarinaShip.java index c2b8aad..ebb148e 100644 --- a/src/edu/berkeley/fleet/marina/MarinaShip.java +++ b/src/edu/berkeley/fleet/marina/MarinaShip.java @@ -9,11 +9,11 @@ public class MarinaShip extends FleetTwoShip { public Iterator iterator() { return (Iterator)(Object)docks.iterator(); } - private MarinaFleet fleet; + private Marina fleet; /*package*/ void addDock(MarinaDock dock) { docks.add(dock); } - public MarinaShip(MarinaFleet fleet) { + public MarinaShip(Marina fleet) { super(fleet, null); this.fleet = fleet; } -- 1.7.10.4