1 package edu.berkeley.fleet.fpga;
2 import edu.berkeley.fleet.api.*;
3 import edu.berkeley.fleet.two.*;
4 import edu.berkeley.fleet.*;
5 import java.lang.reflect.*;
6 import edu.berkeley.sbp.chr.*;
7 import edu.berkeley.sbp.misc.*;
8 import edu.berkeley.sbp.meta.*;
9 import edu.berkeley.sbp.util.*;
12 import static edu.berkeley.fleet.two.FleetTwoFleet.*;
13 import static edu.berkeley.fleet.fpga.verilog.Verilog.*;
14 import edu.berkeley.fleet.api.*;
15 import edu.berkeley.fleet.api.Dock;
19 public class FpgaDestination extends Destination implements FabricElement {
20 private Module.Port port;
21 private FpgaDock dock;
23 public FpgaDestination(FpgaDock dock, Module.Port port, boolean isInstructionDestination) {
29 public Module.SourcePort getOutputPort() { throw new RuntimeException(); }
30 public Module.Port getInputPort() { throw new RuntimeException(); }
31 public void addOutput(FabricElement out, Module.Port outPort) { throw new RuntimeException(); }
33 public long getAddr() {
34 return ((Fpga)dock.getShip().getFleet()).top_horn.getPath(this,null).toLong();
36 public FpgaPath getPath(FabricElement dest, BitVector signal) {
37 if (dest==this) return FpgaPath.emptyPath(this, signal);
40 public void addInput(FabricElement in, Module.Port inPort) {
41 inPort.connect((Module.SinkPort)port);
43 public String toString() {
44 return dock.toString();