235349c60b470e3bdf7c505ffccb0ede9b671e30
[fleet.git] / src / edu / berkeley / fleet / slipway / fifo.v
1 `include "macros.v"
2
3 // fifo *ship*: a 16-deep word-wide fifo
4 module fifo (clk, 
5              in_r,  in_a, in_d,
6              out_r, out_a, out_d);
7
8   input  clk;
9   input  in_r;
10   input  out_a;
11   output in_a;
12   output out_r;
13   input  [(`DATAWIDTH-1):0] in_d;
14   output [(`DATAWIDTH-1):0] out_d;
15
16   wire   [(`DATAWIDTH-1):0] d12;
17   wire   [(`DATAWIDTH-1):0] d23;
18   wire   [(`DATAWIDTH-1):0] d34;
19
20   fifo4 s1(clk, in_r, in_a, in_d, r12, a12,     d12);
21   fifo4 s2(clk, r12,  a12,  d12,  r23, a23,     d23);
22   fifo4 s3(clk, r23,  a23,  d23,  r34, a34,     d34);
23   fifo4 s4(clk, r34,  a34,  d34,  out_r, out_a, out_d);
24
25 endmodule