package edu.berkeley.fleet.fpga.verilog;
import edu.berkeley.fleet.api.*;
import edu.berkeley.fleet.two.*;
+import edu.berkeley.fleet.util.*;
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.two.FleetTwoFleet.*;
public SimpleValue(String s) { this.s = s; }
public SimpleValue(String s, int high, int low) { this.s = s+"["+high+":"+low+"]"; }
public Value getBits(int high, int low) { return new SimpleValue(s, high, low); }
+ public Value getBits(Mask mask) { return getBits(mask.valmaskmax, mask.valmaskmin); }
public Assignable getAssignableBits(int high, int low) { return new SimpleValue(s, high, low); }
public String getVerilogName() { return s; }
public String toString() { return s; }
public static class CatValue implements Value {
private final Value[] values;
public CatValue(Value[] values) { this.values = values; }
+ public Value getBits(Mask mask) { return getBits(mask.valmaskmax, mask.valmaskmin); }
public Value getBits(int high, int low) {
throw new RuntimeException();
}
public static interface Value extends Assignable {
public String getVerilogName();
public Value getBits(int high, int low);
+ public Value getBits(Mask mask);
}
public static class ConditionalAction implements Action {
}
public String getVerilogName() { return name; }
public Value getBits(int high, int low) { return new SimpleValue(getVerilogName(), high, low); }
+ public Value getBits(Mask mask) { return getBits(mask.valmaskmax, mask.valmaskmin); }
public Assignable getAssignableBits(int high, int low) { return new SimpleValue(getVerilogName(), high, low); }
public String doReset() { return name+"<="+initial+";"; }
public void dump(PrintWriter pw) {
public SourcePort(String name, int width, boolean external) {
super(name, width, external); }
public Value getBits(int high, int low) { return new SimpleValue(getVerilogName(), high, low); }
+ public Value getBits(Mask mask) { return getBits(mask.valmaskmax, mask.valmaskmin); }
public Assignable getAssignableBits(int high, int low) { return new SimpleValue(getVerilogName(), high, low); }
public String getVerilogTrigger() { return " && " + getReq() + " && !"+getAck(); }
public String getVerilogAction() { return getAck() + " <= 1;"; }