--- /dev/null
+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();
+ }
+}