In Post-silicon testing, we have a functional validation testing where C tests are developed to verify the functionality of the SoC, through a JTAG interface connected to the PCB TAP and controlled through some software like Code Composer Studio.

Also, there is structural testing where different types of fault models are tested like stuck-at, bridging, gate delay, path delay etc through Built in Self Test logic and some through ATE.

My question is, why two levels of testing are required? If a module deep inside the core has some fault, isn't functional validation sufficient to detect the error?

  • 1
    \$\begingroup\$ A functionally working device may be incorrect and reveal issues under different circumstances: temperature, voltage, etc. It is most of the time impossible to test all the combinations of variables, so a structural test may help to discover other types of issues. \$\endgroup\$ – Adrian Maire Aug 7 '17 at 7:51
  • \$\begingroup\$ @AdrianMaire I understand about temperature, voltage etc, but if the output of a module, say a gate is stuck at 1, it wont be functionally correct too, so a functional test can trace the tester to the issue. \$\endgroup\$ – Shankhadeep Mukerji Aug 8 '17 at 6:32
  • \$\begingroup\$ Seem correct, but the reverse is not: a functional test giving a correct result does not imply that the circuit is correct: You have to ensure that the circuit not only works, but that it work under all the claimed circumstances. I hope someone may give a more precise answer, my knowledge about that is mainly coming from software. \$\endgroup\$ – Adrian Maire Aug 8 '17 at 6:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.