Built-In Self Test

질문 게시판에 질문해 주신 분이 계셔서 적습니다.

제가 DFT쪽의 전공은 아니라서 개론적인 사항만 간략히 설명드리겠습니다. 더 자세한 부분은 책을 참고하시는 것이 좋을 것 같습니다.

BIST는 말 그대로 Built-in self-test를 통하여 block을 check하는 방법을 의미합니다. 말 그대로 test vector generator와 result checker가 logic으로 내장되어 있어서 외부의 동작 없이 해당 블럭에 대한 검사를 수행하는 방법입니다.

이 방법은 대부분의 SoC에서 많이 사용하는 full scan과 같은 방법을 통한 functional check가 test vector를 scan chain을 통과시켜서 입력시키고, 그 결과를 역시 scan chain을 통과시켜 비교하는 방법을 사용하는 것과 비교하면, scan chain 통과에 걸리는 시간이 없기 때문에 해당 블럭에 대하여 in-speed test가 가능하고, 비교적 빠르게 검사할 수 있다는 장점이 있습니다.

하지만, 장점이 있으면 단점이 있는 것이 이 세상사는 이치라.. ^^;

입력 시켜야 하는 test vector의 복잡도와 checking logic의 복잡도에 따라 built-in 시켜야 하는 로직이 엄청 커질 수도 있다는 점이 단점이지요. 그래서, test vector generation과 checking이 간단한 메모리 검사등에는 널리 사용되나 일반적인 logic에는 잘 사용되지 않고 있습니다. (물론, 일반적인 로직들에서 이러한 test vector generation과 checking을 어떻게 하면 효율적으로 수행할 수 있을 것이냐?? 하는 것이 재미있는 주제로 많이 연구되고 있고.. 후배 중에 한명이 arithmetic BIST와 같은 알고리즘을 시도해본 적도 있습니다만..^^;)

Scan과의 연관은 뭐 간단히 생각하실 수 있어요.

BIST를 제어하고, 결과에 문제가 없는지 체크하기 위해서는 적어도 입/출력이 필요한데 이걸 scan chain에 엮어서 제어하는 거죠. 그렇게 안해도 관계는 없습니다만.. ^^;

일반적으로 많이 사용하는 Memory BIST의 경우 대부분 CAD tool에서 생성시켜 주거나 공정에서 같이 제공해주고요.. 다른 것은 만들어야 겠지요? (이건 일반적으로 사용되는 방법이 아니라 전 잘 모르겠습니다. ^^;)

DFT쪽에 재미난 주제들이 많지요. 특히 재미있는 알고리즘과 엮이기도 하구요. 공부하시기 좋은 분야라 생각됩니다.


Technorati : ,

Leave a Reply