total overhaul: fleetcode-1.0 api finished
[fleet.git] / src / edu / berkeley / fleet / fpga / FpgaDestination.java
diff --git a/src/edu/berkeley/fleet/fpga/FpgaDestination.java b/src/edu/berkeley/fleet/fpga/FpgaDestination.java
new file mode 100644 (file)
index 0000000..a57910c
--- /dev/null
@@ -0,0 +1,47 @@
+package edu.berkeley.fleet.fpga;
+import edu.berkeley.fleet.api.*;
+import edu.berkeley.fleet.ies44.*;
+import edu.berkeley.fleet.*;
+import java.lang.reflect.*;
+import edu.berkeley.sbp.chr.*;
+import edu.berkeley.sbp.misc.*;
+import edu.berkeley.sbp.meta.*;
+import edu.berkeley.sbp.util.*;
+import java.util.*;
+import java.io.*;
+import static edu.berkeley.fleet.ies44.InstructionEncoder.*;
+import static edu.berkeley.fleet.verilog.Verilog.*;
+import edu.berkeley.fleet.api.*;
+import static edu.berkeley.fleet.verilog.Verilog.*;
+import edu.berkeley.fleet.api.Dock;
+import java.util.*;
+
+
+public class FpgaDestination extends Destination implements FabricElement {
+    private Module.Port port;
+    private FpgaDock dock;
+
+    public FpgaDestination(FpgaDock dock, Module.Port port, boolean isInstructionDestination) {
+        super(dock);
+        this.port = port;
+        this.dock = dock;
+    }
+
+    public Module.Port getOutputPort() { throw new RuntimeException(); }
+    public Module.Port getInputPort()  { throw new RuntimeException(); }
+    public void addOutput(FabricElement out, Module.Port outPort) { throw new RuntimeException(); }
+
+    public long getAddr() {
+        return ((Fpga)dock.getShip().getFleet()).top_horn.getPath(this,null).toLong();
+    }
+    public FpgaPath getPath(FabricElement dest, BitVector signal) {
+        if (dest==this) return FpgaPath.emptyPath(this, signal);
+        return null;
+    }
+    public void addInput(FabricElement in, Module.Port inPort) {
+        inPort.connect((Module.SinkPort)port);
+    }
+    public String toString() {
+        return dock.toString();
+    }
+}