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.

TMS320F280025C: about RAM ECC algorithm

Part Number: TMS320F280025C

hi,experts

I am doing  a RAM ECC test for chip communication,  now have one question about this part:

TRM says" ECC/Parity is computed for 16-bit data; hence, for each 32-bit of data, there will be three 7-bit ECC codes (or 3-bit parity), two of which are for data and a third one for the address."

why the ECC codes of 16-bit data be 7-bits? could any expert share me the bit definitions or the algorithm?

 

thank you very much~~

  • Hi,

    why the ECC codes of 16-bit data be 7-bits? could any expert share me the bit definitions or the algorithm?

    This was just an implementation thing. Once can generate same number of ECC bits for 16/32 or 84bit data. Do you see any issue with this? 

    Regards,

    Vivek Singh

  • thank your answer, Vivek!

    By setting DxTEST.TEST_M0 bit,  I can watch the data bit memory and ECC bit memory, and I manually calculate the EEC code for the data,  but the  result didnot match  ECC bit memory.

    for example, for data 0x0040 0xA8EE  in M0, below is the result on 280025C

    1. I think: for 16bit data,  6-bit ECC code(with P5 as extra parity bit) is enough,  what's the definition of the 7th ECC code?

    2.My manual calculation result is different, But can not find the reason

    best wishes~~

  • add:

    by setting DxTEST.INT_M0 = 1, this can initialized M0, then I found: the ECC code of ALL_0 data is NONZERO, 

    so I guess that maybe this is not based on traditional hamming code arithmetic.

  • so I guess that maybe this is not based on traditional hamming code arithmetic.

    There are different ECC algorithm used so yes, it could be different. Let me check on this and get back to you in 1-2 days.

    Regards,

    Vivek Singh

  • Hi Vivek, thank you very much, looking forward to good news.

  • Hi, I got confirmation that the ECC algorithm in hardware is indeed different than usual hamming code hence we have 7bit ECC instead of 6bit. In your usecase are you just trying to calculate the golden ECC and compare it later ? Since we have error detection and correction in hardware itself, you don't have to do this in SW, which will consume significant CPU MIPS. Right ?

    Regards,

    Vivek Singh 

  • Hi, thank you.

    I am designing a ECC check for the communication between 280025C and other MCU.

    In 280025 this error detection is helpful, but the data receiver MCU don't have the same function.  if the RAM ECC code of 280025c could be used, this will save many CPU resources, at least I hope so. then  I only need to calculate the code on the receiver MCU. this why I need to kown the the ECC algorithm.

    if not,  I have to calculate it  on both side by my algorithm. after all, ECC codes can indicate one error bit number.

    Have a nice day~~

  • Ok, understood. Let me continue the discussion with my team on this.

  • Sorry, we are unable to provide this info at this movement. If your company has NDA with TI, please let us know. 

    Regards,

    Vivek Singh

  • we don't have NDA with TI, that's a pity.

    but thank you very much for your long attention to my question, best wishes, Vivek!