Xilinx RocketIO X User Manual page 71

Hide thumbs Also See for RocketIO X:
Table of Contents

Advertisement

Block Level Functions
RocketIO™ X Transceiver User Guide
UG035 (v1.5) November 22, 2004
if (DCM_LOCKED_N) begin
pointerDiff_valid <=
cbSkew_valid
end
else if ((status_bus == STATUS_INDICATOR_C) & ~RXCLKCORCNT[2] &
~RXCLKCORCNT[1] ) begin
pointerDiff_valid <=
cbSkew_valid
end
else if (status_bus == STATUS_DATA_C) begin
pointerDiff_valid[1] <=
pointerDiff_valid[0] <=
cbSkew_valid[1]
cbSkew_valid[0]
end
else begin // clear the valid signal if the status is interrupted
by an event.
pointerDiff_valid <=
cbSkew_valid
end
end
always @(posedge RXUSRCLK2 or posedge DCM_LOCKED_N)
begin
if (DCM_LOCKED_N || ~PMARXLOCK) begin // reset the value to neutral
position
pointerDiff <=
pointerDiff_hi <= 4;
cbSkew
<=
cbSkew_hi
<=
end
else if (status_bus == STATUS_DATA_C) begin
if (pointerDiff_valid[0])
pointerDiff_hi
else if (pointerDiff_valid[1]) // update entire register when all
6 bits are acquired.
pointerDiff
if (cbSkew_valid[0])
cbSkew_hi
else if (cbSkew_valid[1]) // update entire register when all 6
bits are acquired.
cbSkew
end
end
//////////////////////////////////////////////////////////////////////
// Generate RX Elastic Buffer almost error
//////////////////////////////////////////////////////////////////////
always @(posedge RXUSRCLK2 or posedge DCM_LOCKED_N)
begin
if (DCM_LOCKED_N)
rxbuf_almost_err <= 1'b0;
else
rxbuf_almost_err <= (pointerDiff < 6) | (pointerDiff > 57);
end
www.xilinx.com
1-800-255-7778
2'b00;
<=
2'b00;
{1'b0, ~RXCLKCORCNT[0]};
<=
{1'b0,
RXCLKCORCNT[0]};
pointerDiff_valid[0];
1'b0;
<=
cbSkew_valid[0];
<=
1'b0;
2'b00;
<=
2'b00;
32;
32;
4;
// register higher 3 bits
<=
RXCLKCORCNT;
<=
{pointerDiff_hi , RXCLKCORCNT};
// register higher 3 bits
<=
RXCLKCORCNT;
<=
{cbSkew_hi , RXCLKCORCNT};
R
71

Advertisement

Table of Contents
loading

Table of Contents