6b8b RMII encoder/decoder verification data

Citation Author(s):
Alexey
Romanov
RTU MIREA, Moscow, Russia
Francesco
Gringoli
Università degli Studi di Brescia, Brescia, Italy
Submitted by:
Alexey Romanov
Last updated:
Fri, 04/10/2020 - 08:10
DOI:
10.21227/rrdy-bx38
Data Format:
License:
0
0 ratings - Please login to submit your rating.

Abstract 

Encoding and decoding tables for 6b8b encoder/decoder for sefl-syncrhonized improved RMII protocol. Proposed encoder/decoder garantee that 2-bit TXD/RXD will change each data transmission cycle, making it possible for RMII interface to work without REF_CLK, TX_EN and CRS_DV lines.

Instructions: 

To run test:

Step 1. Put 6b8b_encdec.mat and test6b8b.m in one folder.

Step 2. Run test6b8b.m in Octave v.4.2.2 or higher (should be possible to run also in MATLAB)

 

To encode your own data:

Step 1. Load enc_data lookup table from 6b8b_encdec.mat

Step 2. Devide your data on 6b data blocks If you data length is not multiple of 6 add additional zeros to make last data block length be equal to 6 bit.

Step 3. To encode each data block you should read value from enc_data lookup table cell with address ((nb<<6)||db)+1, where nb - is first bit pair of the next data block and db - is 6 bit data block.  For the last data block nb = 0;

 

To decode your own data:

Step 1. Load dec_data lookup table from 6b8b_encdec.mat

Step 2. Devide your encoded data on 8b data blocks

Step 3. To decode each data block you should read value from dec_data lookup table cell with address ((nb<<8)||eb)+1, where nb - is first bit pair of the next encoded data block and eb - is 8 bit encoded data block.  For the last data block nb = 0;