second massive overhaul of slipway; now it works on all ps1 problems
[fleet.git] / src / edu / berkeley / fleet / slipway / inbox.v
index 6ba27c5..0f59415 100644 (file)
@@ -1,28 +1,50 @@
 `include "macros.v"
 
 module inbox(clk,
-             instr_r,       instr_a_,      instr_d,
-             fabric_in_r,   fabric_in_a_,  fabric_in_d,
-             fabric_out_r_, fabric_out_a,  fabric_out_d_,
-             ship_r_,   ship_a,    ship_d_);
+                  instr_r,       instr_a_,      instr_d,
+                  fabric_in_r,   fabric_in_a_,  fabric_in_d,
+                  fabric_out_r_, fabric_out_a,  fabric_out_d_,
+                  ship_r_,       ship_a,        ship_d_
+                 );
+
   input clk;
 
-  `input(instr_r,     instr_a,     instr_a_,         [(`INSTRUCTION_WIDTH-1):0], instr_d)
-//  `input(fabric_in_r, fabric_in_a, fabric_in_a_,     [`DATAWIDTH:0],  fabric_in_d)
-  `output(fabric_out_r, fabric_out_r_, fabric_out_a, [(`PACKET_WIDTH-1):0],  fabric_out_d_)
+  output fabric_in_a_;
+  input  fabric_in_r;
+  input  [(`DATAWIDTH-1):0] fabric_in_d;
+  //`input(fabric_in_r,    fabric_in_a,   fabric_in_a_,   [(`DATAWIDTH-1):0],          fabric_in_d)
+  `output(fabric_out_r,  fabric_out_r_, fabric_out_a,   [(`PACKET_WIDTH-1):0],       fabric_out_d_)
+  `defreg(fabric_out_d_,                                [(`PACKET_WIDTH-1):0],       fabric_out_d)
+  `output(ship_r,         ship_r_,        ship_a,        [(`DATAWIDTH-1):0],          ship_d_)
+  reg [(`PACKET_WIDTH-1):0] ship_d;
+  assign ship_d_ = `packet_data(ship_d);
+
+  `input(instr_r,        instr_a,       instr_a_,       [(`INSTRUCTION_WIDTH-1):0],  instr_d)
+
+  wire fabric_in_a0_;
+  reg fabric_in_a0;
+  assign fabric_in_a0_ = fabric_in_a0;
+
+  `define token_in_r fabric_in_r0
+  `define token_in_a fabric_in_a0
+  `define token_in_d fabric_in_d0
+
+  `define data_out_r ship_r
+  `define data_out_a ship_a
+  `define data_out_d ship_d
 
-  input   fabric_in_r;
-  output  fabric_in_a_;
-  input   [(`PACKET_WIDTH-1):0] fabric_in_d;
+  `define token_out_r fabric_out_r
+  `define token_out_a fabric_out_a
+  `define token_out_d fabric_out_d
 
-  output ship_r_;
-  input  ship_a;
-  output [(`DATAWIDTH-1):0] ship_d_;
-  wire [(`DATAWIDTH-1):0] fabric_in_data;
+  `define data_in_d `packet_data(fabric_in_d0)
+  `define data_in_a fabric_in_a0
+  `define data_in_r fabric_in_r0
 
-  assign fabric_in_data = `packet_data(fabric_in_d);
+  wire  [(`PACKET_WIDTH-1):0] fabric_in_d0;
 
-  fifo4 dfifo(clk, fabric_in_r, fabric_in_a_, fabric_in_data,
-                   ship_r_,     ship_a,      ship_d_);
+  fifo4 dfifo(clk, fabric_in_r,  fabric_in_a_,  fabric_in_d,
+                   fabric_in_r0, fabric_in_a0_, fabric_in_d0);
 
+  `include "box.inc"
 endmodule