Line 42... |
Line 42... |
// Outputs
|
// Outputs
|
rxdfifo_wdata, rxdfifo_wstatus, rxdfifo_wen, rxhfifo_ren,
|
rxdfifo_wdata, rxdfifo_wstatus, rxdfifo_wen, rxhfifo_ren,
|
rxhfifo_wdata, rxhfifo_wstatus, rxhfifo_wen, local_fault_msg_det,
|
rxhfifo_wdata, rxhfifo_wstatus, rxhfifo_wen, local_fault_msg_det,
|
remote_fault_msg_det, status_crc_error_tog,
|
remote_fault_msg_det, status_crc_error_tog,
|
status_fragment_error_tog, status_rxdfifo_ovflow_tog,
|
status_fragment_error_tog, status_rxdfifo_ovflow_tog,
|
status_pause_frame_rx_tog, status_good_frame_rx_tog,
|
status_pause_frame_rx_tog, rxsfifo_wen, rxsfifo_wdata,
|
status_good_frame_rx_size,
|
|
// Inputs
|
// Inputs
|
clk_xgmii_rx, reset_xgmii_rx_n, xgmii_rxd, xgmii_rxc, rxdfifo_wfull,
|
clk_xgmii_rx, reset_xgmii_rx_n, xgmii_rxd, xgmii_rxc, rxdfifo_wfull,
|
rxhfifo_rdata, rxhfifo_rstatus, rxhfifo_rempty,
|
rxhfifo_rdata, rxhfifo_rstatus, rxhfifo_rempty,
|
rxhfifo_ralmost_empty
|
rxhfifo_ralmost_empty
|
);
|
);
|
Line 86... |
Line 85... |
output status_fragment_error_tog;
|
output status_fragment_error_tog;
|
output status_rxdfifo_ovflow_tog;
|
output status_rxdfifo_ovflow_tog;
|
|
|
output status_pause_frame_rx_tog;
|
output status_pause_frame_rx_tog;
|
|
|
output status_good_frame_rx_tog;
|
output rxsfifo_wen;
|
output [13:0] status_good_frame_rx_size;
|
output [13:0] rxsfifo_wdata;
|
|
|
|
|
|
|
|
|
/*AUTOREG*/
|
/*AUTOREG*/
|
// Beginning of automatic regs (for this module's undeclared outputs)
|
// Beginning of automatic regs (for this module's undeclared outputs)
|
Line 103... |
Line 101... |
reg [7:0] rxdfifo_wstatus;
|
reg [7:0] rxdfifo_wstatus;
|
reg rxhfifo_ren;
|
reg rxhfifo_ren;
|
reg [63:0] rxhfifo_wdata;
|
reg [63:0] rxhfifo_wdata;
|
reg rxhfifo_wen;
|
reg rxhfifo_wen;
|
reg [7:0] rxhfifo_wstatus;
|
reg [7:0] rxhfifo_wstatus;
|
|
reg [13:0] rxsfifo_wdata;
|
|
reg rxsfifo_wen;
|
reg status_crc_error_tog;
|
reg status_crc_error_tog;
|
reg status_fragment_error_tog;
|
reg status_fragment_error_tog;
|
reg [13:0] status_good_frame_rx_size;
|
|
reg status_good_frame_rx_tog;
|
|
reg status_pause_frame_rx_tog;
|
reg status_pause_frame_rx_tog;
|
reg status_rxdfifo_ovflow_tog;
|
reg status_rxdfifo_ovflow_tog;
|
// End of automatics
|
// End of automatics
|
|
|
/*AUTOWIRE*/
|
/*AUTOWIRE*/
|
Line 247... |
Line 245... |
status_fragment_error_tog <= 1'b0;
|
status_fragment_error_tog <= 1'b0;
|
status_rxdfifo_ovflow_tog <= 1'b0;
|
status_rxdfifo_ovflow_tog <= 1'b0;
|
|
|
status_pause_frame_rx_tog <= 1'b0;
|
status_pause_frame_rx_tog <= 1'b0;
|
|
|
status_good_frame_rx_tog <= 1'b0;
|
rxsfifo_wen <= 1'b0;
|
status_good_frame_rx_size <= 14'b0;
|
rxsfifo_wdata <= 14'b0;
|
|
|
end
|
end
|
else begin
|
else begin
|
|
|
|
rxsfifo_wen <= 1'b0;
|
|
rxsfifo_wdata <= curr_byte_cnt + {11'b0, frame_end_bytes};
|
|
|
//---
|
//---
|
// Link status RC layer
|
// Link status RC layer
|
// Look for local/remote messages on lower 4 lanes and upper
|
// Look for local/remote messages on lower 4 lanes and upper
|
// 4 lanes. This is a 64-bit interface but look at each 32-bit
|
// 4 lanes. This is a 64-bit interface but look at each 32-bit
|
// independantly.
|
// independantly.
|
Line 406... |
Line 407... |
if (good_pause_frame) begin
|
if (good_pause_frame) begin
|
status_pause_frame_rx_tog <= ~status_pause_frame_rx_tog;
|
status_pause_frame_rx_tog <= ~status_pause_frame_rx_tog;
|
end
|
end
|
|
|
if (frame_end_flag) begin
|
if (frame_end_flag) begin
|
status_good_frame_rx_tog <= ~status_good_frame_rx_tog;
|
rxsfifo_wen <= 1'b1;
|
status_good_frame_rx_size <= curr_byte_cnt + {11'b0, frame_end_bytes};
|
|
end
|
end
|
|
|
end
|
end
|
|
|
end
|
end
|