import slipway (fpga-fleet) code
[fleet.git] / src / edu / berkeley / fleet / slipway / fifostage.v
1 `include "macros.v"
2
3 module fifostage (clk, 
4                       in_r,   in_a_, in_d,
5                       out_r_, out_a, out_d_);
6
7   input  clk;
8   `input( in_r,   in_a,   in_a_, [(`DATAWIDTH-1):0], in_d)
9   `output(out_r,  out_r_, out_a, [(`DATAWIDTH-1):0], out_d_)
10   `defreg(out_d_,                [(`DATAWIDTH-1):0], out_d)
11
12   reg full;
13
14   always @(posedge clk) begin
15     if (!full) begin
16       `onread(in_r, in_a)
17         out_d = in_d;
18         full = 1;
19       end
20     end else begin
21       `onwrite(out_r, out_a)
22         full = 0;
23       end
24     end
25   end
26
27 endmodule