Hello,
I'm trying to configurate the Viterbi Co-Processor (VCP2) of the DSP TSM320C6455.
Here are my input symbols :
char symbols[240] =
{
7,0,7,4,3,3,2,3,0,4,0,0,1,0,0,4,6,2,4,0,0,0,0,5,6,1,0,2,0,7,2,2,2,5,6,7,0,7,3,0,6,7,4,5,2,0,0,6,3,4,0,4,4,0,0,7,7,0,0,4,0,2,0,4,4,0,1,4,0,2,4,2,0,6,6,4,7,7,5,3,5,0,7,3,2,7,4,7,4,2,3,0,3,2,2,5,4,7,5,6,5,0,3,6,4,3,5,1,6,2,5,7,4,2,0,4,6,1,7,7,0,4,7,1,5,7,3,4,0,2,0,4,6,0,2,7,2,0,0,1,0,7,5,5,5,3,0,2,0,4,1,0,0,0,7,5,7,7,3,0,0,1,0,0,7,5,0,4,0,1,7,7,3,0,4,7,7,4,0,0,7,7,4,7,1,7,2,0,7,4,7,3,0,3,4,0,0,3,1,7,2,2,5,5,4,5,5,2,1,2,3,0,0,1,2,3,0,5,0,0,1,6,5,2,6,0,0,7,7,0,0,1,0,0,0,7,3,4,0,0
};
I center and scale them between -7 and 7 (symbols[i] = symbols[i]*2-7)
Then I compute my metrics :
t_char r1 = symbols[i+1];
metrics[i+1] = r0 - r1;
80 C2 E2 67 3D 64 1B 8C D7 8D 4F 3B C0 66 40 (hexa) (114 bits + 6 tail bits)
instead I receive :
CE DF A9 BE 00 40 C8 CE 92 9E 8D 8B B1 B6 DF (hexa) (114 bits + 6 tail bits)
Here are the details of configuration of my configuration :
- dsp in little endian
- poly0 = 0171 (octal)
- poly1 = 0133 (octal)
- rate 1/2
- constraint length K = 7
- 6 tail bits
- metrics table is aligned on 8 bytes
- everything is in ISRAM
- vcpic0 0x6ce4
- vcpic1 0x0
- vcpic2 0x72
- vcpic3 0x10000000
- vcpic4 0x400
- vcpic5 0x101f0000
- vcpend 0x3
- vcpemu 0x1
- vcpstat0 after decoding 0x78008
- vcpstat1 after decoding 0x4
- option 0x8001D004
- srcAddr 0xE2002148
- aCntbCnt 0x00010018
- dstAddr 0x58000000
- srcDstBidx 0x00180018
- linkBcntrld 0x00005FE0 --> link to metrics transfert
- srcDstCidx 0x00180018
- cCnt 0x00000001
edma config to send metrics
- option 0x8001D306
- srcAddr 0xE2109018
- aCntbCnt 0x00010100
- dstAddr 0x58000080
- srcDstBidx 0x01000100
- linkBcntrld 0x00005FC0 --> link to a dummy transfert
- srcDstCidx 0x01000100
- cCnt 0x00000001
edma config to receive decoded bits
- option 0x8011D00C
- srcAddr 0xE2109018
- aCntbCnt 0x00010000
- dstAddr 0x58000080
- srcDstBidx 0x00000000
- linkBcntrld 0x0000FFFF
- srcDstCidx 0x00000000
- cCnt 0x00000001