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.

CLA on TMS320F28035 task duration

Other Parts Discussed in Thread: TMS320F28035

Hello to everybody.

 I have a question about the CLA of the TMS320F28035:

 how many clock cycles the CLA has to wait from the end of a task to the start of the next task ?

From "SPRUGE6A on page 135" I read you have to wait pipeline empty.

 

I think I'm not clear,

so I explain the question in other words:

 suppose you have load on the CLA the following snippet

 

_task1:

                 INSTRUCTION of type MOV, MPY, "cast float/int"

               INSTRUCTION of type MOV, MPY, "cast float/int"

                MSTOP

 _task2:

                INSTRUCTION of type MOV, MPY, "cast float/int"

               INSTRUCTION of type MOV, MPY, "cast float/int"

                MSTOP

 

when task1 starts, its duration is

 

DURATION = (NUMBER OF INSTRUCTIONS)/(CLA CLOCK)

 

How many cycles (after the end of task1) task2 can start ?

I have to wait pipeline empty (other 3 cycles) or  DURATION is enough?

 greetings to everybody.

  • Hi Mauro

    If you single step through code in the CLA the program counter always points to the D2 phase of the instruction its currently at.

    So for e.g. if your pointer is at MSTOP, you are in the D2 phase of MSTOP, 3 cycles after that MSTOP is cleared from the pipeline ,the new task can begin filling the pipeline (i.e. I1 of task2 is in the Fetch phase). This is assuming that task 2 was triggered while task1 was running. If not the MSTOP will get cleared from the pipeline and the CLA waits till the next task is triggered. But the minimum wait between tasks is the 3 cycles it takes to clear out the MSTOP instruction from the pipeline after its D2 phase

  • Thankyou very much.