cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Observer
Observer
535 Views
Registered: ‎02-15-2019

LDPC IP Loopback problem

Jump to solution

I want to encode one data with LDPC IP, then decode the encoded data so recover my data.

the settings of encode and decode IP are in below images.

bashid_0-1602488091888.png

bashid_1-1602488115263.png

bashid_2-1602488238383.pngbashid_3-1602488257723.png

encode:

s_axis_ctrl_tdata <= x"0f43000000";

s_axis_din_tdata <= x"251dbb6bcbd0287e5ae402cc7817d55e";

m_axis_status_tdata => "0f43006000";

m_axis_dout_tdata => "0000000000000054e1e6c2cc7817d55e";


decode:

s_axis_ctrl_tdata <= x"0f43000000";

s_axis_din_tdata <= x"0000000000000054e1e6c2cc7817d55e";

m_axis_status_tdata => "00000000";

m_axis_dout_tdata => "0000000000000000000000000000000";

 

as you can see i can't recover my data, Why?

I also check IP example but i can't find my mistake.

could you help me with a simple config of both decode and encode side for simple loopback.

 

Tags (3)
0 Kudos
Reply
1 Solution

Accepted Solutions
Highlighted
Xilinx Employee
Xilinx Employee
323 Views
Registered: ‎09-18-2018

Hi @bashid ,

Column 1 of table 44 indicates LLR values obtained for demodulated data which is further quantized to format in Columm 4 of Table 44.

In your example, since modulation process is not used, each encoded bit is directly converted to 8-bit LLR data.

Convert encoded bits as follows - '0' value to -7.75 and '1' to 7.75 , represented in Fix_6_2 format and sign extended to Fix_8_2.

The decoder input needs more cycles to feed the LLR data because each encoded bit is represented as 8-bit LLR value.

View solution in original post

7 Replies
Highlighted
Xilinx Employee
Xilinx Employee
524 Views
Registered: ‎09-18-2018

Hi @bashid ,

The input data to the decoder should be LLR data and not hard encoded input. The decoder accepts 8-bit LLR input data. The requirements of input data "DIN" are mentioned on Page 55, PG281 v2.0 (Dec4,2019).

Highlighted
Observer
Observer
501 Views
Registered: ‎02-15-2019

@vkanchan  Ok, but i can't understand the datasheet table.

So for loop back, i should convert each encoded 8-bits to equal llr. is it?

Is there any ip or codes that help me for this?

can tell me for example what is equal llr for x"5e".

0 Kudos
Reply
Highlighted
Xilinx Employee
Xilinx Employee
452 Views
Registered: ‎09-18-2018

Hi @bashid ,

Every encoded bit needs to be converted into a 8-bit LLR value for this loopback example. The IP generates C-model which has both C and MATLAB based example model that has loopback. Please refer Chapter6 in PG281, I think this should be good starting point for the loopback example.

Highlighted
Observer
Observer
394 Views
Registered: ‎02-15-2019

@vkanchan  I am completely confused. I check MATLAB C model and also run it, it's map every 0's to -16 and 1's to 16. Then pass it to mex file. means, it's convert one encoded bits to 16 or -16. then pass it to LDPC.

but how it's possible! Ok, Let see what is my understanding:

we convert one bits to 5bits, so for converting 128 encoded bits to LLR, we need 128*5 = 640 bits.

is it true?

0 Kudos
Reply
Highlighted
Xilinx Employee
Xilinx Employee
362 Views
Registered: ‎09-18-2018

Hi @bashid ,

The LDPC MATLAB example directly converts the encoded data to LLR values as required by the LDPC IP.

This is because in real systems, LLR demodulated data is used as input to the decoder. LDPC requires 6-bit LLR data for decoder input, in format Fix_6_2 and which is sign extended to 8-bits (Fix_8_2). 

LDPC IP's MATLAB example simply uses the extreme LLR values for '0' and '1' for each encoded bit and these are provided to the decoder input.

Highlighted
Observer
Observer
351 Views
Registered: ‎02-15-2019

One more thing @vkanchan,

So i should convert each 5-bits (column two of table 44 in PG281) of my encoded data to corresponding 8-bit LLR data (column four of table 44 in PG281). is it? 

 

0 Kudos
Reply
Highlighted
Xilinx Employee
Xilinx Employee
324 Views
Registered: ‎09-18-2018

Hi @bashid ,

Column 1 of table 44 indicates LLR values obtained for demodulated data which is further quantized to format in Columm 4 of Table 44.

In your example, since modulation process is not used, each encoded bit is directly converted to 8-bit LLR data.

Convert encoded bits as follows - '0' value to -7.75 and '1' to 7.75 , represented in Fix_6_2 format and sign extended to Fix_8_2.

The decoder input needs more cycles to feed the LLR data because each encoded bit is represented as 8-bit LLR value.

View solution in original post