59bf57d43a760b92e71e78a0df2f44f6b27f10a4
[fleet.git] / src / edu / berkeley / fleet / slipway / outbox.v
1 `include "macros.v"
2
3 module outbox(clk,
4                   instr_r,       instr_a_,      instr_d,
5                   fabric_in_r,   fabric_in_a_,  fabric_in_d,
6                   fabric_out_r_, fabric_out_a,  fabric_out_d_,
7                   ship_r,        ship_a_,       ship_d
8                  );
9
10   input clk;
11
12   output fabric_in_a_;
13   input  fabric_in_r;
14   input  [(`DATAWIDTH-1):0] fabric_in_d;
15   //`input(fabric_in_r,    fabric_in_a,   fabric_in_a_,   [(`DATAWIDTH-1):0],          fabric_in_d)
16   `output(fabric_out_r,  fabric_out_r_, fabric_out_a,   [(`PACKET_WIDTH-1):0],       fabric_out_d_)
17   `defreg(fabric_out_d_,                                [(`PACKET_WIDTH-1):0],       fabric_out_d)
18   `input(ship_r,         ship_a,        ship_a_,        [(`DATAWIDTH-1):0],          ship_d)
19   `input(instr_r,        instr_a,       instr_a_,       [(`INSTRUCTION_WIDTH-1):0],  instr_d)
20
21   wire fabric_in_a0_;
22   reg fabric_in_a0;
23   assign fabric_in_a0_ = fabric_in_a0;
24
25   `define token_in_r fabric_in_r0
26   `define token_in_a fabric_in_a0
27   `define token_in_d fabric_in_d0
28
29   `define data_out_r fabric_out_r
30   `define data_out_a fabric_out_a
31   `define data_out_d fabric_out_d
32
33   `define token_out_r fabric_out_r
34   `define token_out_a fabric_out_a
35   `define token_out_d fabric_out_d
36
37   `define data_in_d ship_d
38   `define data_in_a ship_a
39   `define data_in_r ship_r
40
41   wire  [(`PACKET_WIDTH-1):0] fabric_in_d0;
42
43   fifo4 dfifo(clk, fabric_in_r,  fabric_in_a_,  fabric_in_d,
44                    fabric_in_r0, fabric_in_a0_, fabric_in_d0);
45
46   `include "box.inc"
47 endmodule