/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package datapath.graph; import datapath.graph.modlib.IO; import datapath.graph.modlib.Module; import datapath.graph.modlib.Parameter; import java.util.Iterator; import java.util.Set; /** * * @author Jens */ public class Modlib { @Deprecated public static String nary_op(String op, int id, int WR, int SIGN, String VALUE, int DEPTH, int QDEPTH, int STATIC_CT, int START_CTRL_IN, String R, String RESET, String CLK, String CE, String START, String START_RFD, String START_CTRL, String START_CTRL_RFD, String CANCEL, String CANCEL_ACCEPT, String CANCEL_STATE, String CANCEL_STATE_RESET, String CANCEL_STATE_CTRL, String CANCEL_STATE_CTRL_RESET, String RESULT_READY, String RESULT_ACCEPT) { return String.format( "%s #(.WR(%d), .SIGN(%d), .VALUE(%s), .DEPTH(%d), .QDEPTH(%d))" + " %s%d (.R(%s), .RESET(%s), .CLK(%s), .CE(%s), .START(%s), .START_RFD(%s)," + " .START_CTRL(%s), .START_CTRL_RFD(%s), .CANCEL(%s), .CANCEL_ACCEPT(%s)," + " .CANCEL_STATE(%s), .CANCEL_STATE_RESET(%s), .CANCEL_STATE_CTRL(%s)," + " .CANCEL_STATE_CTRL_RESET(%s), .RESULT_READY(%s), .RESULT_ACCEPT(%s));", op, WR, SIGN, VALUE, DEPTH, QDEPTH, op, id, R, RESET, CLK, CE, START, START_RFD, START_CTRL, START_CTRL_RFD, CANCEL, CANCEL_ACCEPT, CANCEL_STATE, CANCEL_STATE_RESET, CANCEL_STATE_CTRL, CANCEL_STATE_CTRL_RESET, RESULT_READY, RESULT_ACCEPT); } @Deprecated public static String binary_op(String op, int id, int WA, int WB, int WR, int DEPTH, int QDEPTH, int STATIC_CT, int START_CTRL_IN, int SIGN, String A, String B, String R, String RESET, String CLK, String CE, String START, String START_RFD, String START_CTRL, String START_CTRL_RFD, String CANCEL, String CANCEL_ACCEPT, String CANCEL_STATE, String CANCEL_STATE_RESET, String CANCEL_STATE_CTRL, String CANCEL_STATE_CTRL_RESET, String RESULT_READY, String RESULT_ACCEPT) { return String.format( "%s #(.WA(%d), .WB(%d), .WR(%d), .SIGN(%d), .DEPTH(%d), .QDEPTH(%d))" + " %s%d (.A(%s), .B(%s), .R(%s), .RESET(%s), .CLK(%s), .CE(%s), .START(%s), .START_RFD(%s)," + " .START_CTRL(%s), .START_CTRL_RFD(%s), .CANCEL(%s), .CANCEL_ACCEPT(%s)," + " .CANCEL_STATE(%s), .CANCEL_STATE_RESET(%s), .CANCEL_STATE_CTRL(%s)," + " .CANCEL_STATE_CTRL_RESET(%s), .RESULT_READY(%s), .RESULT_ACCEPT(%s));", op, WA, WB, WR, SIGN, DEPTH, QDEPTH, op, id, A, B, R, RESET, CLK, CE, START, START_RFD, START_CTRL, START_CTRL_RFD, CANCEL, CANCEL_ACCEPT, CANCEL_STATE, CANCEL_STATE_RESET, CANCEL_STATE_CTRL, CANCEL_STATE_CTRL_RESET, RESULT_READY, RESULT_ACCEPT); } @Deprecated public static String ary_op(String op, int id, int WA, int NIN, int WR, int ONEHOT, int DEPTH, int QDEPTH, int STATIC_CT, int START_CTRL_IN, int SIGN, String A, String B, String R, String RESET, String CLK, String CE, String START, String START_RFD, String START_CTRL, String START_CTRL_RFD, String CANCEL, String CANCEL_ACCEPT, String CANCEL_STATE, String CANCEL_STATE_RESET, String CANCEL_STATE_CTRL, String CANCEL_STATE_CTRL_RESET, String RESULT_READY, String RESULT_ACCEPT) { return String.format( "%s #(.WA(%d), .NIN(%d), .WR(%d), .ONEHOT(%d), .DEPTH(%d), .QDEPTH(%d)," + " .STATIC_CT(%d), .START_CTRL_IN(%d), .SIGN(%d))" + " %s%d (.A(%s), .B(%S), .R(%s), .RESET(%s), .CLK(%s), .CE(%s), .START(%s), .START_RFD(%s)," + " .START_CTRL(%s), .START_CTRL_RFD(%s), .CANCEL(%s), .CANCEL_ACCEPT(%s)," + " .CANCEL_STATE(%s), .CANCEL_STATE_RESET(%s), .CANCEL_STATE_CTRL(%s)," + " .CANCEL_STATE_CTRL_RESET(%s), .RESULT_READY(%s), .RESULT_ACCEPT(%s));", op, WA, NIN, WR, ONEHOT, DEPTH, QDEPTH, STATIC_CT, START_CTRL_IN, SIGN, op, id, A, B, R, RESET, CLK, CE, START, START_RFD, START_CTRL, START_CTRL_RFD, CANCEL, CANCEL_ACCEPT, CANCEL_STATE, CANCEL_STATE_RESET, CANCEL_STATE_CTRL, CANCEL_STATE_CTRL_RESET, RESULT_READY, RESULT_ACCEPT); } public static String module(Module module) { StringBuffer buf = new StringBuffer(); buf.append(module.getType()); if (module.getParams().size() > 0) { buf.append(" #("); for (Iterator<Parameter> iter = module.getParams().iterator(); iter.hasNext();) { Parameter p = iter.next(); buf.append(" .").append(p.getName()).append('(').append( p.getValue()).append(')'); if (iter.hasNext()) { buf.append(','); } } buf.append(")"); } buf.append(' '); buf.append("op").append(module.getId()).append('_').append( module.getName() != null ? module.getName() : module.getType()); buf.append(" ("); for (Iterator<IO> iter = module.getIos().iterator(); iter.hasNext();) { IO io = iter.next(); buf.append(" .").append(io.getName()).append('(').append( io.getValue()).append(')'); if (iter.hasNext()) { buf.append(','); } } buf.append(");"); return buf.toString(); } @Deprecated public static String module(String name, int id, Set<Parameter> parameters, Set<IO> ios) { Module m = new Module(name, id); for (Parameter p : parameters) { m.addParameter(p); } for (IO io : ios) { m.addIO(io); } return module(m); } }