Line 49... |
Line 49... |
|
|
`include "timescale.v"
|
`include "timescale.v"
|
`include "xgiga_define.v"
|
`include "xgiga_define.v"
|
|
|
module rxReceiveEngine(rxclk_in, reset_in, rxd_in, rxc_in, rxStatRegPlus,
|
module rxReceiveEngine(rxclk_in, reset_in, rxd_in, rxc_in, rxStatRegPlus,
|
cfgRxRegData_in, rx_data, rx_data_valid, rx_good_frame,
|
cfgRxRegData_in, rx_data, rx_data_valid, rx_good_frame, rxclk_out,
|
rx_bad_frame, rxCfgofRS, rxTxLinkFault);//, fcTxPauseData, fcTxPauseValid);
|
rx_bad_frame, rxCfgofRS, rxTxLinkFault);//, fcTxPauseData, fcTxPauseValid);
|
input rxclk_in; //Input clock of receive engine
|
input rxclk_in; //Input clock of receive engine
|
input reset_in; //Globle reset of receive engine
|
input reset_in; //Globle reset of receive engine
|
input [31:0] rxd_in; //XGMII RXD
|
input [31:0] rxd_in; //XGMII RXD
|
input [3:0] rxc_in; //XGMII RXC
|
input [3:0] rxc_in; //XGMII RXC
|
output [18:0] rxStatRegPlus; //Signals for statistics
|
output [17:0] rxStatRegPlus; //Signals for statistics
|
input [64:0] cfgRxRegData_in; //Signals for configuration
|
input [64:0] cfgRxRegData_in; //Signals for configuration
|
output [63:0] rx_data; //Received data sent to upper layer
|
output [63:0] rx_data; //Received data sent to upper layer
|
output [7:0] rx_data_valid; //Receive data valid indicator
|
output [7:0] rx_data_valid; //Receive data valid indicator
|
output rx_good_frame; //Indicate that a good frame has been received
|
output rx_good_frame; //Indicate that a good frame has been received
|
output rx_bad_frame; //Indicate that a bad frame has been received
|
output rx_bad_frame; //Indicate that a bad frame has been received
|
output[2:0] rxCfgofRS; //
|
output[2:0] rxCfgofRS; //
|
output [1:0] rxTxLinkFault;
|
output [1:0] rxTxLinkFault;
|
|
output rxclk_out;
|
// output [31:0] fcTxPauseData;
|
// output [31:0] fcTxPauseData;
|
// output fcTxPauseValid;
|
// output fcTxPauseValid;
|
|
|
parameter TP =1;
|
parameter TP =1;
|
|
|
Line 207... |
Line 208... |
// assign fcTxPauseData = {16{1'b0},rxd64[15:0]};
|
// assign fcTxPauseData = {16{1'b0},rxd64[15:0]};
|
|
|
////////////////////////////////////////
|
////////////////////////////////////////
|
// Receive Clock Generator
|
// Receive Clock Generator
|
////////////////////////////////////////
|
////////////////////////////////////////
|
|
assign rxclk_out = rxclk;
|
rxClkgen rxclk_gen(.rxclk_in(rxclk_in),
|
rxClkgen rxclk_gen(.rxclk_in(rxclk_in),
|
.reset(reset_dcm),
|
.reset(reset_dcm),
|
.rxclk(rxclk), // system clock
|
.rxclk(rxclk), // system clock
|
.rxclk_180(rxclk_180), //reversed clock
|
.rxclk_180(rxclk_180), //reversed clock
|
.locked(locked)
|
.locked(locked)
|