blob: 2fe967c8d68056bc8def0a88c87989e2a77df1a1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
module serdes_fc_tx
(input clk, input rst,
input xon_rcvd, input xoff_rcvd, output reg inhibit_tx);
// XOFF means stop sending, XON means start sending
// clock domain stuff happens elsewhere, everything here is on main clk
reg [15:0] state;
always @(posedge clk)
if(rst)
state <= 0;
else if(xoff_rcvd)
state <= 255;
else if(xon_rcvd)
state <= 0;
else if(state !=0)
state <= state - 1;
always @(posedge clk)
inhibit_tx <= (state != 0);
endmodule // serdes_fc_tx
|