AR# 10475


3.1i COREGEN - 8b/10b Decoder outputs incorrect symbol disparity when SINIT is active.


Keywords: coregen, 8b, 10b, decoder, encoder, symbol, disparity,
sinit, sym_disp, sys_disp, run_disp, disp_err

Urgency: Standard

General Description:
The 8b/10b Decoder will give incorrect output on "sym_disp" when SINIT
is active. This problem exists only in Virtex, Virtex-E and Spartan-II (not in Virtex-II).

The problem is in the structural netlist, which means you will see the incorrect
output on SYM_DISP[1:0] during functional and timing simulation, as well as
in the actual device. The behavioral simulation will always give the correct
SYM_DISP[1:0] output even when SINIT is active.

The core compensates, causing the RUN_DISP and DISP_ERR outputs to
respond correctly in most cases, despite the incorrect symbol disparity.
However, during start-up, the internal running disparity (not the run_disp output)
initializes to an incorrect state. If the input symbols to the decoder have a zero
symbol disparity, or are an invalid symbol, then the running disparity will remain
at its previous state. Since the initial value of this running was incorrect, these
zero or error disparity symbols will cause the core to output incorrect values for
run_disp and disp_err.


To correct the RUN_DISP and DISP_ERR output, initialize the core's internal
running disparity by clocking through it a valid input symbol with a positive or
a negative disparity. Once the internal running disparity is properly initialized,
the core will work properly. (However, the SYM_DISP output will be still be
incorrect while SINIT is active.)

AR# 10475
Date 08/23/2002
Status Archive
Type General Article
People Also Viewed