expand leaf FIFOs from 4 elements to 8 elements
[fleet.git] / src / edu / berkeley / fleet / fpga / FabricElement.java
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.*;
10 import java.util.*;
11 import java.io.*;
12 import static edu.berkeley.fleet.two.FleetTwoFleet.*;
13 import static edu.berkeley.fleet.fpga.verilog.Verilog.*;
14
15
16 public interface FabricElement {
17
18     public FpgaPath getPath(FpgaDestination dest, BitVector signal);
19
20     public void addInput(FabricElement in, Module.Port inPort);
21     public void addOutput(FabricElement out, Module.Port outPort);
22
23     public Module.SourcePort getOutputPort();
24     public Module.Port getInputPort();
25
26     public static abstract class AbstractFabricElement implements FabricElement {
27         public abstract FpgaPath getPath(FpgaDestination dest, BitVector signal);
28         public void addInput(FabricElement in, Module.Port inPort) { throw new RuntimeException(); }
29         public void addOutput(FabricElement out, Module.Port outPort) { throw new RuntimeException(); }
30         public Module.SourcePort getOutputPort() { throw new RuntimeException(); }
31         public Module.Port getInputPort() { throw new RuntimeException(); }
32     }
33
34 }