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.

TMS320C6678: Device Speed

Expert 1800 points
Part Number: TMS320C6678


Hi,

Is that possible to read the actual device speed?

As per SPRS691E, the device speed register (DEVSPEED) register 0x026203F8 has 

31-23 DEVSPEED Indicates the speed of the device (read only)

0000 0000 0b = 800 MHz

0000 0000 1b = 1000 MHz

0000 0001 xb = 1200 MHz

0000 001x xb = 1250 MHz

0000 01xx xb = 1400 MHz

0000 1xxx xb = 1400 MHz

0001 xxxx xb = 1250 MHz

001x xxxx xb = 1200 MHz

01xx xxxx xb = 1000 MHz

1xxx xxxx xb = 800 MHz

The description says "The Device Speed Register depicts the device speed grade", this may not be the actual device speed but the capability if I understand correctly.

Why there are two bits for same speed?

Is there any register that will show the actual speed?

Please clarify

Thanks

  • Hello!

    I guess actual clock speed could be derived from PLL settings you program knowing input clock speed.

  • That is fine.  It would be nice to clarify the question on DEVSPEED registers. 

    We program the PLL setting for 1.25GHz.  How can we confirm  that the DSP is running at that speed? 

    We have some issues with few devices that are graded as 1.25GHz device and PLLs programmed to run at 1.25GHz.  But we see some performance issues on some devices.  We are debugging the cases.  The part number for production also confirms that it is 1.25GHz device.   We wanted to make sure that device actually runs at 1.25GHz

  • For the logic behind DEVSPEED register bits we better wait till TI engineer chimes in.

    As to device clock confirmation, if your board has SYSCLKOUT routed to some probe point, probe it with the scope. It should run at 1/6 of core clock. At least on EVM we could do so.

  • Thanks a lot.  It was very useful information.  

    The SYSCLKOUT  measurement shows that the core is running at 1 GHz.  It is supposed to run at 1.25GHz.  We are setting up the PLLs correctly, it works on all other devices except few.  We don't know why the core speed is 1 GHz while PLL is programmed to run @1.25GHz

  • Hi,

    You can look at the TI GEL for C6678: ccs_base\emulation\boards\evmc6678l\gel====> Init_PLL() to see how the DSP clock is set and do the math for your setup. Is it 1.25GHz or 1.0 GHz? 

    Besides measuring at SYSCLK which is core PLL/6, you can also use software to introduce a delay routine for several minutes and check against a wall clock to see how fast you CPU runs, the code snippet like: 

    #include <c6x.h>

    TSCL = 0;

    void cycleDelay (unsigned int count)
    {
    unsigned int start = TSCL;
    while ((TSCL- start) < count);
    }

    for (i = 0; i < 300; i++)  { // 300 seconds loop

    cycleDelay(1250000000);   //1 seconds, assuming 1.25GHz CPU

    }

    Regards, Eric

  • Hi Ramasubramanian,

    I assume you would have found out the core speed with measuring the TSCH/TSCL cycle values against wall clock timer, as proposed by Eric before.

    Meanwhile I am checking with internal HW team to provide updates on your other question on why there are duplicated speeds (for 800MHz)? 

    As per SPRS691E, the device speed register (DEVSPEED) register 0x026203F8 has 

    31-23 DEVSPEED Indicates the speed of the device (read only)

    0000 0000 0b = 800 MHz

    0000 0000 1b = 1000 MHz

    0000 0001 xb = 1200 MHz

    0000 001x xb = 1250 MHz

    0000 01xx xb = 1400 MHz

    0000 1xxx xb = 1400 MHz

    0001 xxxx xb = 1250 MHz

    001x xxxx xb = 1200 MHz

    01xx xxxx xb = 1000 MHz

    1xxx xxxx xb = 800 MHz

     

    -Thanks,
    Aravind

  • Thanks, we have found the core speed using Eric's method.

    It would be nice if you could clarify the reason for duplication of speeds.

    Thanks

    Ram

  • Hi Ram,

    Glad to hear your issue is resolved.

    I am working with internal teams to see if I can get the reason for two values for 800MHz speed.