This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

VCP Questions



Hi,

I am also facing same problem as mentioned by Sezer. First byte of ouput for some input data are decoded wrong in VCP2.
I am using EVM 6670.

VCP2 Configuration parameters for LTE are as below,

    VcpConfigParms.poly0             = 0x6C;
    VcpConfigParms.poly1             = 0xE4;
    VcpConfigParms.poly2             = 0xD4;
    VcpConfigParms.poly3             = 0x00;
    VcpConfigParms.constLen         = 7;
    VcpConfigParms.frameLen         = 43;/*In bits*/
    VcpConfigParms.rate             = 3;
    VcpConfigParms.decision         = 0;
    VcpConfigParms.bmBuffLen        = 7;
    VcpConfigParms.convDist            = 0;
    VcpConfigParms.decBuffLen         = 0;
    VcpConfigParms.maxSm             = 1024;
    VcpConfigParms.minSm             = 0;
    VcpConfigParms.numBmFrames         = 2;
    VcpConfigParms.numDecFrames     = 1;
    VcpConfigParms.outOrder         = 1;
    VcpConfigParms.readFlag         = 1;
    VcpConfigParms.relLen             = 0;
    VcpConfigParms.stateNum         = 0;
    VcpConfigParms.traceBack         = 1;
    VcpConfigParms.traceBackEn         = 0;
    VcpConfigParms.traceBackIndex     = 0;
    VcpConfigParms.yamTh             = 0;
        
    Do I have to change any config parameters? Looking forward for reply.

I have attached Branch Metrics(input to VCP2), VCP2 output, Expected output.
    

18
44
-14
12
8
38
-16
14
27
47
-7
13
28
6
36
14
-9
-33
3
-21
-16
16
10
42
-12
10
26
48
-16
20
8
44
-15
9
-41
-17
19
-3
-11
-33
-40
-22
-24
-6
-11
-27
-17
-33
-37
-7
-23
7
-20
14
-44
-10
-9
15
-45
-21
-9
-41
1
-31
16
-14
-14
-44
-44
-12
-18
14
47
25
19
-3
33
15
25
7
35
3
23
-9
39
11
13
-15
42
18
12
-12
44
18
20
-6
45
17
15
-13
-39
-3
-11
25
-4
14
34
52
-35
-19
-25
-9
-7
-31
5
-19
-11
-41
15
-15
-46
-24
-12
10
-45
-9
-27
9
16
-18
48
14
7
-21
39
11
26
44
-4
14
-1
25
9
35
-44
-10
-18
16
-20
12
10
42
2
-20
-26
-48
-17
15
-41
-9
42
18
12
-12
-31
-11
-3
17
-30
-8
-40
-18

+4 
+62 
-128   
+2  
+47 
-118 

+0  
+62 
-128   
+2  
+47 
-118 


Dear Sezer,

If you have got solution for this problem, Please do reply.
        
Thanks,
Shabrin

  • According to VCP2 User's Guide section 7.2 Hint(1):
    The polynomial generators are 9-bit values defined as G(z) = b8z-8 + b7z-7 + b6z-6 + b5z-5 + b4z-4 + b3z-3 + b2z-2 + b1z-1 + b0, but only 8 bits are passed in the POLYn bitfields so that b1 is the most significant bit and b8 is the least significant bit (b0 is not passed, but set by the internal VCP hardware).

    Actual Generator polynomial for LTE:
    G0 = 133(octal) -> 0x5B
    G1 = 171(octal) -> 0x79
    G2 = 165(octal) -> 0x75

    Bit reversed form:
    G0 = 664(octal) -> 0x1B4
    G1 = 474(octal) -> 0x13C
    G2 = 534(octal) -> 0x15C

    After Masking bit b0:
    G0 = 0x1B4 & 0xFF = 0xB4
    G1 = 0x13C & 0xFF = 0x3C
    G2 = 0x15C & 0xFF = 0x5C

    But if I give above mentioned polynomial, then VCP2 output is wrong for every branch matrics input.

    Instead if I give below mentioned polynomial:
    VcpConfigParms.poly0 = 0x6C;
    VcpConfigParms.poly1 = 0xE4;
    VcpConfigParms.poly2 = 0xD4;
    VcpConfigParms.poly3 = 0x00;

    Passing for few branch matrics input and for some first byte is decoded wrong.

    Please let me know, whether I am using right generator polynomial?

    Regards,
    Shabrin

  • Hi Shabrin,

    This thread was split from below post and moved to keystone forum. I am working expert to answer your query.

    http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/439/t/239378.aspx

    Thank you for your patience.

  • Hi Shabrin,

    The correct polynomial configuration is:

    VcpConfigParms.poly0 = 0x6C;
    VcpConfigParms.poly1 = 0xE4;
    VcpConfigParms.poly2 = 0xD4;
    VcpConfigParms.poly3 = 0x00;

    As per 36.212 sub-clause 5.1.3.1, the LTE convolutional encoder performs tail biting encoding. I couldn't find a reference to the "tail-biting" part in your query which is the key here. VCP2 doesn't support tail-biting decoding in hardware but that doesn't mean that it cannot be used for tail-biting decoding at all. However some reformatting of the input block is needed in order to achieve this.

    Please refer to the following thread which provides an example along-with a document that presents the method to perform decoding for tail-biting encoded data. The document also provides performance data for this approach. I have attached the same document here for your convenience.

    http://e2e.ti.com/support/dsp/tms320c6000_high_performance_dsps/f/112/t/69928.aspx

    0268.wi-wimax-tn001-0 0 1-public.pdf

    Regards
    -Nitin

  • Hi Rajasekaran and Nitin,

    Thank you very much for your support :).

    VCP2 is working. After I made changed Input branch metrics. I made 3 copies of the input branch metrics back to back and set the VCP2 frame length to 3 times actual size. I pull the middle 1/3 of the output bits as actual output.

    Is there any other way VCP2 tail biting for LTE can be made work other than above mentioned?


    Thanks and regards,

    Shabrin

  • Hi Firdose,

    Which code did you use, is it the one in this link?https://gforge.ti.com/gf/download/frsrelease/260/3132/TCI6488TCP2VCP2BER_1_0_0_TurboLTE.zip

    I am trying this code but not working, can you help me in this. BTW I am also using this for LTE (PDCCH decoding). parameters you listed above are correct? or do we need to change any?

    Thanks & Regards,

    Anjibabu