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.

Question about C6670 VCP2 soft decision

Guru 15510 points

Hi,

I have a question about C6670 viterbi coprocessor(VCP2).

I'm trying to do WiMAX CC decode by using VCP2.

The input bit count is 288 bits.

The parameters of VCP2 are configured as follows:

////////////////////////////////////////////////////////////////////////////////

vcpParameters.constLen       = 7;                       // Constraint Length(K)

vcpParameters.decision       = VCP2_DECISION_SOFT;      // Decision: soft->1, hard->0

vcpParameters.frameLen       = 324;                     // NumInputBits(288)+2*PREFIX_SIZE(18)

vcpParameters.outOrder       = VCP2_OUTORDER_0_31;      // Hard decision output ordering 0:0to31, 1:31to0

vcpParameters.perf           = VCP2_PERF_MOST_CRITICAL; // Result in setting convergence distance

vcpParameters.rate           = VCP2_RATE_1_2;           // Coding Rate

vcpParameters.readFlag       = VCP2_OUTF_YES;           // Output parameters read flag

vcpParameters.stateNum       = 0;                       // StatNum

vcpParameters.tailBitEnable  = FALSE;                   // Tail Bit Disable

vcpParameters.tbConvrgMode   = TRUE;                    // Convergent mode

vcpParameters.traceBackIndex = 0;                       // Tailbiting traceback index mode

vcpParameters.yamTh          = 0;                       // Yamamoto threshold value

////////////////////////////////////////////////////////////////////////////////

The output memory area is as follows:

////////////////////////////////////////////////////////////////////////////////

Name of destination pointer = decisions

Start of address = 0x00819428(core0 L2SRAM)

Size= 334 bytes

////////////////////////////////////////////////////////////////////////////////

But the problem occured.

I thought vcpParameters.frameLen size of data will be replied. But decoding result from VCP2 replies only 256 bytes.

For details, 256 bytes was output to the destination pointer(decisions) of VCP2,

so that 240 bit of data(the amount of prefix(top 18bit) is excluded ) was decoded correctly.

By the way, if vcpParameters.decision was configured to hard decision, all bits of data was decoded correctly.

So, I have a question as follows:

////////////////////////////////////////////////////////////////////////////////

Is there any problems in my configuration of the vcpParameters when decoding with soft decision?

////////////////////////////////////////////////////////////////////////////////

best regards,

g.f.

  • Hi g.f,
    I am working with expert to answer this post and it seems that the expert is on time bank.

    Thank you for your patience. We will get back to you shortly.
  • Hello,
    Can you please check the VCP2 Error Register (VCPERR) and see if any error bits are set in the soft-decision decoding case?
    Regards-Nitin
  • Hi Nitin,

    I'm asking to my customer, so please wait.

    best regards,
    g.f.
  • Hi,

    The VCP2 Error Register value was all zero (0x00000000).

    And there are following additional information from my customer:

    1.about VCP2 output data size
    Allocate the area after stuffing the output area(decision) with zero
    and then stuff with 0xFF, and then execute the VCP2.
    After the 256bytes of data, the data was still 0xFF.

    From this result, the customer are guessing that
    VCP2 aren't responsing to the all zero after the 256bytes,
    but responsing against 256byte data only.

    2.The register value right afte VCP2 responsed
    ///////////////////////////////////////////////////////////
    <EDMA3 Bus Offsets>
    *VCP Input Configuration Register

    address : name : value
    0x22A00000 : VCPIC0 : 0x00006CE4
    0x22A00004 : VCPIC1 : 0x00000000
    0x22A00008 : VCPIC2 : 0x00420144
    0x22A0000C : VCPIC3 : 0x0000006C
    0x22A00010 : VCPIC4  : 0x00000400
    0x22A00014 : VCPIC5 : 0xEE1F0000

    *VCP Output Register

    address :name : value
    0x22A00048 : VCPOUT0 : 0x18291829
    0x22A0004C : VCPOUT0 : 0x00000000

    *VCP Branch Metrics Write FIFO Register

    address : name : value
    0x22A00080 : VCPWBM : 0x00000000

    *VCP decisions Read FIFO Register

    address : name : value
    0x22A000C0 : VCPRDECS : 0x7F7F7F7F

    <Configuration Bus Offsets>
    *VCP Peripheral ID Register

    address : name : value
    0x021D0000 : VCPPID : 0x480A0000

    *VCP Execution Register

    address name value
    0x021D0018 : VCPEXE : 0x00000000

    *VCP Endian mode Register

    address : name : value
    0x021D0020 : VCPEND : 0x00000000

    *VCP Status Register

    address : name : value
    0x021D0040 : VCPSTAT0 : 0x001B0002
    0x021D0044 : VCPSTAT1 : 0x0030000C

    *VCP Error Register

    address : name : value
    0x021D0050 : VCPERR : 0x00000000

    *VCP Emulation Control Register

    address : name : value
    0x021D0060 : VCPEMU : 0x00000000
    ///////////////////////////////////////////////////////////

    best regards,
    g.f.