public interface FabricElement {
public FpgaPath getPath(FpgaDestination dest, BitVector signal);
+ public int getPathLength(FpgaDestination dest);
public void addInput(FabricElement in, Module.Port inPort);
public void addOutput(FabricElement out, Module.Port outPort);
public static abstract class AbstractFabricElement implements FabricElement {
public abstract FpgaPath getPath(FpgaDestination dest, BitVector signal);
+ public abstract int getPathLength(FpgaDestination dest);
public void addInput(FabricElement in, Module.Port inPort) { throw new RuntimeException(); }
public void addOutput(FabricElement out, Module.Port outPort) { throw new RuntimeException(); }
public Module.SourcePort getOutputPort() { throw new RuntimeException(); }