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.

TMS320F28379D: Purpose of CLA FFT Table

Part Number: TMS320F28379D
Other Parts Discussed in Thread: C2000WARE

I've been looking through the TMS320F2837xD Technical Reference Manual (SPRUHM8G) and found that the CLA ROM contains something called FFT Tables:

What are they for?

I can't find any FFT routines for the CLA.

Are they designed to be loaded and somehow used by the main CPU?

The source code for this table ( c:\ti\c2000\C2000Ware_1_00_06_00\libraries\boot_rom\f2837xd\revB\rom_sources\F2837x_bootROM\cpu01-bootROM\Cla_Data_Rom\source\fft_twiddle_bit_reverse.asm ) contains the following comments in it:

;;//! For N = 1024-pt Complex FFT there are 10 stages
;;//! requiring 256 complex twiddle factors for the CLA implementation

This mentions a "CLA implementation". So is there an FFT available on the CLA?

  • Hello,

    Yes, you could use the FFT on the F28379D devices. As mentioned in the following link, VCU is present on this device family and FFT is a part of the VCU.
    www.ti.com/.../TMS320F28379D

    To use the FFT, you could use the examples in the C2000Ware package: {C2000Ware}\dsp\VCU\c28\examples\fft\

    Regards,
    Sudhakar
  • The VCU is part of the main C28x CPU, not the CLA.
    The table we are discussing is in the CLA ROM, so how can the FFT table be used by the CLA?
  • Alex,

    I'll get back to you on this on Wednesday.

    Thanks,
    Sira
  • Hi Alex,

    You raise a good point. The TRM doesn't describe this in more detail. The CLAMath library in C2000Ware also doesn't contain an FFT implementation.

    I did find the following, which is a hands on workshop demonstrating how to migrate over an FIR and FFT from the C28x to the CLA. Project files are also available for download. I looked through the solution files, and there are calls to a CLA_CFFT_run512Pt() inside freq_proc.cla, which is declared in cla_fft.h. However, the definition is not something I could find. I'm wondering if it is calling into one of the library files the project is linked to.

    FYI, I launched the project F28379D_CLAHandsOn_Solution and chose the CLA_CODE build configuration. There is a link to a library file c28x_cla_dsp_library_datarom.lib that I have not seen before.

    Also, I am not sure whether this project utilizes the CLA FFT ROM tables. These would be things I invite you to investigate.

    training.ti.com/cla-hands-workshop-part-3-workshop

    This training was put together by my predecessor, who is on vacation for a month. I'll shoot him an email asking for details, and will share any details I find (as soon as I hear back).

    Interestingly, this same person made a comment on FFT on CLA implementation (see below), indicating it as not feasible, but this was many years ago.

    e2e.ti.com/.../198374

    Please share what you find as well.

    Thanks,
    Sira
  • Hi Alex,

    Any updates?

    What I've found is that FFT on CLA is doable (hence the workshop above), but it has limitations - limited RAM, only 2 registers available for addressing etc. Therefore this wasn't officially released. Probably the tables in ROM were left in case a user absolutely wanted to use the CLA for FFT, and use the main CPU for other operations.

    Please click on Resolved if this answers your question.

    Thanks,
    Sira
  • Alex,

    I haven't heard back from you, so I'm going to go ahead and mark this issue as "TI Thinks Resolved".

    I would appreciate you marking it as Answer Verified against my reply. Or let me know if you want to continue the discussion.

    Thanks,
    Sira