From: adam Date: Mon, 10 Nov 2008 11:50:23 +0000 (+0100) Subject: add Value.invertBits() X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=30f7bb5b3132e52cf3a272cd14d9d3a1dd0f6c2a;p=fleet.git add Value.invertBits() --- diff --git a/src/edu/berkeley/fleet/fpga/verilog/Verilog.java b/src/edu/berkeley/fleet/fpga/verilog/Verilog.java index 711f107..9ad420d 100644 --- a/src/edu/berkeley/fleet/fpga/verilog/Verilog.java +++ b/src/edu/berkeley/fleet/fpga/verilog/Verilog.java @@ -19,6 +19,7 @@ public class Verilog { public Assignable getAssignableBits(int high, int low) { return new SimpleValue(s, high, low); } public String getVerilogName() { return s; } public String toString() { return s; } + public Value invertBits() { return new SimpleValue("~("+getVerilogName()+")"); } } public static class CatValue implements Value { @@ -45,6 +46,7 @@ public class Verilog { sb.append(" }"); return sb.toString(); } + public Value invertBits() { return new SimpleValue("~("+getVerilogName()+")"); } } public static interface Action { @@ -72,6 +74,7 @@ public class Verilog { public String getVerilogName(); public Value getBits(int high, int low); public Value getBits(Mask mask); + public Value invertBits(); } public static class ConditionalAction implements Action { @@ -105,6 +108,7 @@ public class Verilog { public SimpleAssignable(String s) { this.s = s; } public String getVerilogName() { return s; } public Assignable getAssignableBits(int high, int low) { return new SimpleValue(s, high, low); } + public Value invertBits() { return new SimpleValue("~("+getVerilogName()+")"); } } public static class AssignAction implements Action { @@ -223,6 +227,7 @@ public class Verilog { 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 Value invertBits() { return new SimpleValue("~("+getVerilogName()+")"); } public Assignable getAssignableBits(int high, int low) { return new SimpleValue(getVerilogName(), high, low); } public String doReset() { return name+"<="+initial+";"; } public void dump(PrintWriter pw) { @@ -346,6 +351,7 @@ public class Verilog { 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 Value invertBits() { return new SimpleValue("~("+getVerilogName()+")"); } 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;"; }