out.hasLatch = false;
torpedo.hasLatch = false;
- addPreCrap("assign out = `packet_data(in);");
+ addPreCrap("assign out = "+PACKET_DATA.verilogVal("in")+";");
addPreCrap("assign out_r = in_r && !("+PACKET_TOKEN.verilogVal("in")+");");
addPreCrap("assign torpedo_r = in_r && "+PACKET_TOKEN.verilogVal("in")+";");
addPreCrap("assign in_a = out_a || torpedo_a;");
fanout_module_out0.connect(requeue_ondeck);
Module.SourcePort ondeck = fanout_module_out1;
- addPreCrap("assign data_latch_output = " + (inbox ? data_out.getName() : "`packet_data("+data_out.getName()+")")+";");
+ addPreCrap("assign data_latch_output = " + (inbox ? data_out.getName() : PACKET_DATA.verilogVal(data_out.getName()))+";");
addPreCrap("wire ["+(Math.max(ilc.width,olc.width)-1)+":0] decremented;");
addPreCrap("assign decremented = ("+SET_OLC_FROM_OLC_MINUS_ONE.verilog(ondeck.getName())+" ? {1'b0, olc} : ilc)-1;");
addPreCrap("assign "+requeue_olc_in.getName()+" = olc;");
- Assignable data_latch = new SimpleAssignable(inbox ? data_out.getName() : "`packet_data("+data_out.getName()+")");
+ Assignable data_latch = new SimpleAssignable(inbox ? data_out.getName() : PACKET_DATA.verilogVal(data_out.getName()));
String data_latch_input = inbox ? data_in.getName() : data_in.getName();
String magic_standing_value = "(1<<"+SET_ILC_FROM_IMMEDIATE.valmaskwidth+")";
new ConditionalAction(TI.verilog(ondeck.getName()), token_in),
new ConditionalAction(TO.verilog(ondeck.getName()), token_out),
new ConditionalAction(DC.verilog(ondeck.getName()), new AssignAction(data_latch, data_latch_input)),
- new AssignAction(new SimpleAssignable("`packet_token("+token_out.getName()+")"), "("+TO.verilog(ondeck.getName())+")?1:0"),
+ new AssignAction(new SimpleAssignable(PACKET_TOKEN.verilogVal(token_out.getName())), "("+TO.verilog(ondeck.getName())+")?1:0"),
new ConditionalAction(PATH_DATA.verilog(ondeck.getName()),
new AssignAction(new SimpleAssignable("{ "+PACKET_SIGNAL.verilogVal(token_out.getName())+", "+
PACKET_DEST.verilogVal(token_out.getName())+" }"),
public static class Module {
public void dump(String prefix) throws IOException {
- PrintWriter pw = new PrintWriter(new OutputStreamWriter(new FileOutputStream(prefix+"/bitfields.v")));
+ PrintWriter pw = new PrintWriter(new OutputStreamWriter(new FileOutputStream(prefix+"/"+name+".v")));
+ /*
pw.println("`define DATAWIDTH "+WIDTH_WORD);
pw.println("`define CODEBAG_SIZE_BITS "+CBD_SIZE.valmaskwidth);
- pw.println("`define INSTRUCTION_WIDTH "+WIDTH_WORD);
- pw.println("`define packet_token(p) "+PACKET_TOKEN.verilogVal("p"));
- pw.println("`define packet_data(p) "+PACKET_DATA.verilogVal("p"));
- pw.println("`define packet_dest(p) "+PACKET_DEST.verilogVal("p"));
- pw.println("`define instruction_dest(p) "+DISPATCH_PATH.verilogVal("p"));
- pw.flush();
- pw.close();
- pw = new PrintWriter(new OutputStreamWriter(new FileOutputStream(prefix+"/"+name+".v")));
+ */
dump(pw, true);
pw.flush();
for(InstantiatedModule m : instantiatedModules)
}
public void dump(PrintWriter pw, boolean fix) {
- pw.println("`include \"bitfields.v\"");
pw.println("module "+name+"(clk, rst ");
for(String name : portorder) {
Port p = ports.get(name);