x393  1.0
FPGAcodeforElphelNC393camera
fifo_2regs.v
Go to the documentation of this file.
1 
40 `timescale 1ns/1ps
41 
42 module fifo_2regs #(
43  parameter WIDTH =16)
44  (
45  input mrst,
46  input clk,
47  input [WIDTH-1:0] din,
48  input wr,
49  input rd,
50  input srst,
51  output [WIDTH-1:0] dout
52 );
53  reg full_out;
54  reg full_in;
55  reg [WIDTH-1:0] reg_out;
56  reg [WIDTH-1:0] reg_in;
57 
58  assign dout=reg_out;
59  always @ (posedge clk) begin
60  if (mrst) full_out <=0;
61  else if (srst) full_out <=0;
62  else if (wr || rd) full_out <= !(!wr && rd && !full_in);
63 
64  if (mrst) full_in <=0;
65  else if (srst) full_in <=0;
66  else if (wr ^rd) full_in <= wr && (full_out || full_in);
67  end
68  always @ (posedge clk) begin
69  if (wr) reg_in <= din;
70 
71  if (wr && (!full_out || rd)) reg_out <= din;
72  else if (rd) reg_out <= reg_in;
73  end
74 
75 endmodule
76 
10391full_inreg
Definition: fifo_2regs.v:54
[WIDTH-1:0] 10385din
Definition: fifo_2regs.v:47
10382WIDTH16
Definition: fifo_2regs.v:43
10393reg_inreg[WIDTH-1:0]
Definition: fifo_2regs.v:56
10390full_outreg
Definition: fifo_2regs.v:53
[WIDTH-1:0] 10389dout
Definition: fifo_2regs.v:51
10392reg_outreg[WIDTH-1:0]
Definition: fifo_2regs.v:55