Simulating 8b/10b Encoder/Decoder

A

ALuPin@web.de

Guest
Hello newsgroup,

I am trying to understand the Xilinx reference design (XAPP391:
Design
of a 16b/20b Encoder/Decoder Using a CoolRunner-II CPLD)).
When performing the functional simulation (which is included in the
download files) the error detection signal of the decoder becomes
active
on decoding of 10bit words 0x1C7, 0x1BE, 0x13E, 0x0BE
and 0x2BE.


The testbench provided with the design connects the encoder
and the decoder, so that only legal 10bit words get into the decoder.
8bit --> enc --> 10bit --> dec --> 8bit

I think that there is no error injection in the testbench. In the
error cases
the 8bit words presented by the decoder are OK.



So why does these errors occur ? Has someone
already used that reference design and has met
difficulties in simulation or real hardware implementation ?


Thank you.
Best regards
Andre
 
"ALuPin@web.de" <ALuPin@web.de> writes:

Hello newsgroup,

I am trying to understand the Xilinx reference design (XAPP391:
Design
of a 16b/20b Encoder/Decoder Using a CoolRunner-II CPLD)).
When performing the functional simulation (which is included in the
download files) the error detection signal of the decoder becomes
active
on decoding of 10bit words 0x1C7, 0x1BE, 0x13E, 0x0BE
and 0x2BE.
I haven't used the Xilinx appnote, but since they are using the
standard 8B/10B encoding, I can say that:
- Definitely 0x1BE and 0x2BE are illegal 10b-codewords, as they have 7
ones in the codework.
- The other codewords have a positive disparity, which would lead me
to guess that the receiver has a positive running disparity while
receiving these symbols, and that would lead to a disparity error.

Have you tried a different order of the codewords in your simulation,
to force a negative disparity before sending the 0x1C7 and 0x13E
codewords?

Both point to possible errors in the encoding block.


Kai
--
Kai Harrekilde-Petersen <khp(at)harrekilde(dot)dk>
 
Hi,

when changing the order of 8bit words (integer) into the encoder from
a)...236 - 237 - 238 - 239... to
b)...236 - 8 - 238 ... (encoded word of 8 has negative
disparity)


the error detection module does not show an error for
the 0x1C7 (encoded word of 238).

The question is how to find the error in the encoder description ...

Rgds
Andre
 

Welcome to EDABoard.com

Sponsor

Back
Top