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.

C64x Viterbi Coprocessor example



Hello,

I'm newbie with DSP C64x. I'm developing a convolutional channel coding using Viterbi decoder. More precisely, it is the NASA code (171,133).

I want to use the Viterbi Coprocessor. I did have the SPRU533D and SPRA750D, but I am not familiar with register declaration and configuration in Code Composer Studio. I am looking for a simple example source code for VCP (in C for example) so that I can modify it for my project.

Looking forward to your help.

Thanks a lot,

Nguyen

 

  • Hello,

    I followed your articles.

    But when I run VCP_Start(), the program is blocked and I did not receive any output.

    this is my program:

    ===============================================================================================

        EDMA_resetAll();    

        IRQ_enable(IRQ_EVT_EDMAINT);          /* Enable EDMA -> CPU interrupt   */

        IRQ_nmiEnable();                      /* Enable non-maskable interrupt  */

        IRQ_globalEnable();                   /* Globally enable all interrupts */

       vcpSubmitEdma(hVcpUserData, hVcpConfigParms, hVcpConfigIc, hVcpDecisions, hVcpOutParms);

       asm(" nop");

       VCP_start();

       asm(" IDLE");

    ===============================================================================================


    The pointer stopped at : asm(" IDLE");

    And the value of VCPic register waschanged. This is the value before VCP_start() :

     

    ===============================================================================================

     

    hVcpConfigIc 0x0001F918 VCP_ConfigIc * hex

    ic0 0x0000E46C Uint32 hex

    ic1 0x10640000 Uint32 hex

    ic2 0x00000070 Uint32 hex

    ic3 0x00000000 Uint32 hex

    ic4 0x00000400 Uint32 hex

    ic5 0x411E0000 Uint32 hex

    ===============================================================================================

     

     

    And after  VCP_start(); (pointer is blocked at asm(" IDLE")) :

     

    ===============================================================================================

    hVcpConfigIc 0x00005F74 VCP_ConfigIc * hex

    ic0 0x00100FD8 Uint32 hex

    ic1 0xD009A120 Uint32 hex

    ic2 0x002A8120 Uint32 hex

    ic3 0x0204A358 Uint32 hex

    ic4 0x023C22E6 Uint32 hex

    ic5 0x00006000 Uint32 hex

    ===============================================================================================

    Please tell me what is the problem.

    Thanks a lot.

    Nguyen

  • Nguyen,

     

    Did you get this working?  What device are you using, I want to make sure you are using the right code.

     

    Regards,

    Travis