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.

TMS320F28035: TMS320F28035 memory architecture

Part Number: TMS320F28035

Hi,

This might seem like a very simple question, but looking at the technical reference manual (SPRUI10) it's not conclusively clear. Maybe is exists in the documentation for a near identical device, but I wouldn't know where to start looking.

I want to know what is the RAM architecture of the TMS320F28035 device, and specifically which blocks are shared between the CLA and CPU, and what access restrictions/arbitration applies.

As I understand it, then there are the following RAM blocks:

  • M0 SARAM (1K x 16) - accessible only by the C28 CPU
  • M1 SARAM (1K x 16) - accessible only by the C28 CPU
  • L0 SARAM (2K X 16) - the block diagram suggests this is shared between CLA and CPU.
  • L1 DPSARAM (1K X 16)- CLA Data RAM 0
    • When MMEMCFG[RAMxE] == 0, only CPU accesses are permitted
    • When MMEMCFG[RAMxE] == 1, only CLA (plus CPU debug) accesses are permitted
  • L2 DPSARAM (1K X 16) - CLA Data RAM 1
    • operation as for L1 block
  • L3 DPSARAM (4K X 16) - CLA Program RAM
  • During initialisation (when MMEMCFG[PROGE] == 0) only CPU has access
  • Following initialisation (when MMEMCFG[PROGE] == 1) only CLA fetches are permitted

Do I have this correct?

Where are the two CLA message RAM blocks located?

Thanks,

Karl

  • Karl Stewart1 said:

    This might seem like a very simple question, but looking at the technical reference manual (SPRUI10) it's not conclusively clear. Maybe is exists in the documentation for a near identical device, but I wouldn't know where to start looking.

    I want to know what is the RAM architecture of the TMS320F28035 device, and specifically which blocks are shared between the CLA and CPU, and what access restrictions/arbitration applies.

    Hi Karl,

    The TRM (technical reference manual) has information on peripherals without much about how they are glued together on the device.  The datasheet shows how the peripherals are connected together (clocking, memory blocks, etc). 

    For the info you are looking for, take a look at the memory map section of the TMS320F28035 datasheet (figure 6-1).  The message RAMs are at 0x1400 and 0x1500.  Blocks that the CLA can use are indicated (i.e. "CLA Data RAM 0" or "CLA Prog RAM").

    I hope this helps.  If it resolves your question please let me know by pressing the "verified answer" button.  If not, please provide additional details.

    Click here for more CLA FAQs and resources.

    Regards

    Lori

      

  • Thanks for the info Lori.

    Okay, so I now know the location of the CLA/CPU message RAM (I was expecting it see it in the block diagram). But surely there is an arbitration scheme to manage concurrent accesses (for example when the CLA wants to read and the CPU wants to write). What are the rules in this case?

    L1, L2 and L3 are described as DPSARAM (dual port SARAM), whereas L0 is merely SARAM, so I assume then that it's single port? But who has access to it, the CPU or the CLA?

    Karl

  • Karl Stewart1 said:
    But surely there is an arbitration scheme to manage concurrent accesses (for example when the CLA wants to read and the CPU wants to write). What are the rules in this case?

    Karl,

    Please refer to the TRM section 10.3 which describes the CPU and CLA arbitration when accessing message RAM, program memory and data RAM.

    Karl Stewart1 said:
    L1, L2 and L3 are described as DPSARAM (dual port SARAM), whereas L0 is merely SARAM, so I assume then that it's single port? But who has access to it, the CPU or the CLA?

     

    All blocks on the device are accessible by the main C28x CPU. Only blocks that have the CLA mentioned are accessible by the CLA.  Yes, SARAM is a single port single access RAM.  DPSARAM is dual port (one for C28x and one for CLA) single access RAM. 

    Regards

    Lori

  • Lori,

    Sorry, don't know how I missed the TRM details, totally obvious!

    Thanks for the clarification about block L0.

    I'm all good now.

    Regards,

    Karl