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.

TMS570 PBIST

Other Parts Discussed in Thread: HALCOGEN

I have a problem with the PBIST that HALCoGen generates for TMS570 and maybe someone cam help me.

  1. The PBIST fails on ESRAM (RAM Group 6, or 15) for 20 times and then passes on the 21st time. I am using March13N algorithm (I didn't try others). I noticed that when the test passes the CMS register changes from 0 to 1 (it is not changed by the application code). Any idea why the test fails for 20 times, then CMS is changed and it passes?
  2. When the test fails the RDS field in the RAMT register contains 0x96 for RAM Group 6 and 0x94 for RAM Group 15, but in the Data Sheet, Table 2-8 it sais that the value should be 20 -22. Is there a mistake in the manual? Also, the failure is for Port0 and Port1, while this RAM group is a single port. Why is that? 
  3. In the TRM, Figure 6-2 PBIST Memory Self Test Flow Diagram there is an infinite loop, repeating the same test, when the test fails. What is the purpose for that? Is the algorithm retrying with different settings? Shouldn’t it be limited to some number of tries? The assembly code implements that diagram.
  4. Why the code generated with HALCoGen doesn’t execute RAM Group 15 (only 6)? What is the difference between those two groups?
  5. In TRM it is stated that FSRF0 and FSRF1 can only be cleared when the test is restarted using MSTGCR register, but the test retry loop of the generated code does not write to this register, yet somehow those bits get cleared on the 21st retry. Is the TRM inaccurate?
  • Hi Alex,

    Can you please clarify which TMS570 device you are using?  There are some differences in the PBIST implementation for the different devices and we'd like to ensure we give you proper information.

     

    Thanks and Regards,

    Karl

  • I assume you are using TMS570LS20xxxx.

    Are you using the code from HalCoGen to do the PBIST test? PBIST test failure is very rare. Can I have your code? I would like to run your code on my bench before going further.

    Port0 and Port1 is nothing to do with the 2 port RAM, . We test our RAM us 64 bit width bus, calling 32 bit as one port.

    Both RAM group 15 and RAM ground 6 test the same 160K SRAM. Executing either one will test all the 160k SRAM. However, Group 15 runs faster and consumes more current.

    I don't think you have to run the PBIST once more if it fails.

  • Hi Karl,

     

    I'm using the processor that comes with the MVBTMS570 (KAIL) development board. It sis TMS570LS20216SZWT.

     

    Alex

  • Hi Haixiao,

    I attached my file. It is basically the HLCoGen code. I just commented out the call to TestFailNotofication and I used a4 to count the number of failures.

    I don't rerun the test, but the provided algorithm does. Like I said, it is in the flowchart. The program reaches "port0", "port1" and "resume" labels when the algorithm fails. It counts 0x14 on a4 then the test passes and performs the next test March13N on dual ported RAMs (which is the last one in my program). 

    PBIST.asm
  • I run your code on my bench and did not find any issue. But the problem you report looks very weired to me.

    Could you please Run the code in this post:  PBIST Example? Please let me know what happens.

    Please set the hypertermal to:

    19.2K baud, no parity, one stop bit.

    Regards,

    Haixiao

  • I ran yor code and executed test #3 for ESRAM only. It failed, but the results don't make sense. Could be my chip is bad?

    Still why is there an infinite loop in the suggested algorithm when the test fails?


    -Please input a character to start PBIST testing:-
    -Run all algorithms on all RAM/ROMs      ------------ 1
    -Run March 13 on all Single/Dual Port RAM------------ 2
    -Run March 13 on 160K ESRAM only         ------------ 3
    ----------------------------------------------------
     **** PBIST TEST STARTED ****

     **** PBIST TEST ITERATION ÿÿÿÿÿÿÿÿ FAILED ****

          RGS = 0xÿÿÿÿÿÿÿÿ
          RDS = 0xÿÿÿÿÿÿÿÿ
          FSCP0 = 0xÿÿÿÿÿÿÿÿ
          FSCP1 = 0xÿÿÿÿÿÿÿÿ
          FSADDRP0 = 0xÿÿÿÿÿÿÿÿ
          FSADDRP1 = 0xÿÿÿÿÿÿÿÿ
          FSDATAP0 = 0xÿÿÿÿÿÿÿÿ

     **** PBIST TEST RESTARTED ****

     **** PBIST TEST ITERATION ÿÿÿÿÿÿÿÿ FAILED ****

          RGS = 0xÿÿÿÿÿÿÿÿ
          RDS = 0xÿÿÿÿÿÿÿÿ
          FSCP0 = 0xÿÿÿÿÿÿÿÿ
          FSCP1 = 0xÿÿÿÿÿÿÿÿ
          FSADDRP0 = 0xÿÿÿÿÿÿÿÿ
          FSADDRP1 = 0xÿÿÿÿÿÿÿÿ
          FSDATAP0 = 0xÿÿÿÿÿÿÿÿ

     **** PBIST TEST RESTARTED ****

     **** PBIST TEST ITERATION          FAILED ****

          RGS = 0x
          RDS = 0x
          FSCP0 = 0x
          FSCP1 = 0x
          FSADDRP0 = 0x
          FSADDRP1 = 0x
          FSDATAP0 = 0x

     **** PBIST TEST RESTARTED ****

     **** PBIST TEST ITERATION          FAILED ****

          RGS = 0x
          RDS = 0x
          FSCP0 = 0x
          FSCP1 = 0x
          FSADDRP0 = 0x
          FSADDRP1 = 0x
          FSDATAP0 = 0x

     **** PBIST TEST RESTARTED ****

  • I guess so. Your chip has some problem in SRAM.

    I don't think it is necessary to run it over and over. Run it once, get pass/fail should be good enough.

    Regards,

    Haixiao