DFT

Memory BIST on tessent tool [1]

asicmoonie 2025. 1. 21. 10:54

Memory BIST를 알아보기 전에 먼저 BIST가 어떤 역할을 하는지부터 확인할 필요가 있다

 

BIST는 Built-In Self-Testing의 약자로 내부에서 자체적으로 test 할 수 있게 하는 logic이다.

이 BIST는 전체 로직 중 Memory 만 Test하는 MBIST가 있고

Memory를 제외한 모든 Scanned Logic을 Test 하는 LBIST가 있다.

 

BIST는 Physical 적인 부분에서 Logic이 추가되어 생기는 side effect은 존재하지만, Design For Test(DFT)가 중요해지면서 꼭 들어가야한다.

 

현업에서는 이 Memory에 대한 BIST logic을 Tessent라는 Tool을 이용해 진행한다.

 

Memory BIST의 전체적인 flow를 한번 알아보기 이전에 이번 포스트에서는 MBIST의 동작 및 구조에 대해 알아보자

 

- MBIST의 동작

MBIST의 Test 동작 방식

 

MBIST는 MBISTPG_DONE과 MBISTPG_GO라는 port를 통해 simulation 중 pass/fail을 확인할 수 있다.

1. DONE = 1, GO = 1

    - 모두 1일 경우 simulation이 모두 완료되었으며 pass

2. DONE = 0, GO = 1

    - Simulation이 완료되지는 않았으나, error는 존재하지 않음

    - 이 경우 clock frequency를 낮추면 simulation이 완료될 수 있음

3. DONE = 1, GO = 0

    - Simulation이 완료되었으나, error가 검출됨. 제일 위험한 경우로 Waveform을 보고 Debugging을 해야 함 (ㅠㅠ)

4. DONE = 0. GO = 0

    - Simulation이 완료되지고 않고 error도 발생한 경우. 오히려 simulation이 완료되지 않아 해당 원인 Debugging 후 해결될 가능성도 있음.

 

- MBIST 구조

Bist가 insertion 전 / Insertion 후

BIST를 Insertion 하게 되면 BIST라는 하나의 Instance만 insertion 되는 게 아니라, TAP, SIB, BAP 등 여러 가지 logic이 들어가게 된다.

 

해당 Instance 들은 Design level에 따라 다르게 배치되며 또한 Requirements 도 다르다.

여기에 해당하는 부분은 이후 포스팅에 기술하도록 하겠다.

 

이 BIST는 IJTAG(IEEE1687) 표준 기반으로 하고 있어 IJTAG이 어떻게 동작하는지 알게 되면 MBIST의 구조와 Data flow를 확인하기 쉽다.

SIB 가 Bypass 하는 경우
SIB가 Signal을 TDR에 전달 하는 경우

 

위 사진들과 같이 SIB ( Segment Interconnect Bit )가 TDR을 통해 뒤에 연결된 내부 Instrument에 data 전달을 하거나 Bypass를 할 수 있어, SIB로 인해 Test time이 감소되고 원하는 logic만 신호를 보낼 수 있게 된다.

(Tessent BIST에서는 TDR이 아닌 BAP (Bist Access Port)로 naming 되어 insertion 된다.)

 

즉, TAP - SIB - BAP까지의 interface는 IEEE1687의 표준을 따라 test point를 memory 별로 나누고

controller-interface-memory의 flow로 메모리 개별의 test를 진행하게 된다.

 

IEEE1687 표준에 대해 정확히 알고 싶다면 하기 Link에서 확인

https://www.design-reuse.com/articles/47233/internal-jtag.html

 

다음은 전체적인 Tessent에서 Memory BIST insertion에 필요한 Input과 전체 flow에 대해 설명하겠다.