본문 바로가기

LBIST스캔 테스트는 구조와 구현 방식에서 차이가 있으며, 이를 간단한 예제를 통해 설명해 보겠습니다.

예제 1: LBIST (Logic Built-In Self Test) 구현

LBIST는 칩 내부에 자가 테스트 회로를 추가하여, 외부 장비 없이 결함을 검출할 수 있습니다. LBIST는 패턴 생성기결과 분석기로 구성됩니다.

LBIST 간단한 구조

module LBIST (
    input clk,               // 클럭 신호
    input reset,             // 초기화 신호
    output reg [7:0] result  // 테스트 결과
);

    reg [7:0] pattern_gen;   // 패턴 생성기
    reg [7:0] circuit_under_test;  // 테스트 회로 (가정)

    // 패턴 생성기: 랜덤 또는 고정된 패턴을 생성
    always @(posedge clk or posedge reset) begin
        if (reset)
            pattern_gen <= 8'hAA; // 초기 패턴 예제 (고정 패턴)
        else
            pattern_gen <= {pattern_gen[6:0], pattern_gen[7]}; // 쉬프트 패턴 생성
    end

    // 테스트 회로 예제
    always @(posedge clk) begin
        circuit_under_test <= pattern_gen ^ 8'h3C; // 예시 회로 (XOR 처리)
    end

    // 결과 분석기: 기대값과 비교하여 결함 여부 판단
    always @(posedge clk) begin
        if (circuit_under_test == 8'h5A)  // 골든 패턴 예시
            result <= 8'hFF;  // 정상
        else
            result <= 8'h00;  // 결함 발생
    end

endmodule

설명

  • pattern_gen: 고정된 패턴이나 랜덤 패턴을 생성하여 테스트 회로에 입력합니다.
  • circuit_under_test: 테스트 대상 회로로, 간단히 XOR 회로로 예시를 들었습니다.
  • result: circuit_under_test의 출력이 기대값(8'h5A)과 일치하면 정상(8'hFF), 그렇지 않으면 결함(8'h00)을 나타냅니다.

LBIST는 이처럼 패턴을 칩 내부에서 생성하고 비교하여 결함을 자동으로 감지하는 구조입니다.

예제 2: 스캔 테스트 (Scan Test) 구현

스캔 테스트는 회로 내부에 있는 모든 플립플롭을 연결하여 스캔 체인을 형성하고, 외부에서 특정 패턴을 주입하여 회로의 상태를 분석합니다.

스캔 체인 구성 예제

module ScanTest (
    input clk,               // 클럭 신호
    input reset,             // 초기화 신호
    input scan_in,           // 스캔 입력
    output scan_out          // 스캔 출력
);

    reg [7:0] scan_chain;    // 스캔 체인 (8개의 플립플롭 연결)

    // 스캔 체인: 스캔 입력을 순차적으로 체인에 삽입
    always @(posedge clk or posedge reset) begin
        if (reset)
            scan_chain <= 8'b0;
        else
            scan_chain <= {scan_chain[6:0], scan_in};  // 입력을 시프트하여 체인에 저장
    end

    assign scan_out = scan_chain[7]; // 스캔 체인의 마지막 출력

endmodule

설명

  • scan_in: 외부 테스트 장비에서 패턴을 주입하는 스캔 입력.
  • scan_chain: 연결된 플립플롭 체인으로, 스캔 입력이 순차적으로 시프트되며 회로 상태를 저장합니다.
  • scan_out: 체인 끝에서 나온 출력으로, 외부 장비가 이를 읽어 결함 여부를 분석합니다.

LBIST vs. 스캔 테스트 요약

  • LBIST는 내부에서 자동으로 패턴을 생성하고 결함을 검출하여 빠르게 테스트할 수 있습니다.
  • 스캔 테스트는 외부에서 패턴을 제어하고 체인 끝에 도달한 출력을 확인하여 더 정확한 결함 위치를 찾을 수 있지만, 시간이 오래 걸립니다.

이와 같이 LBIST는 자동화된 자가 테스트 방식으로 신속하게 결함을 검출하는 반면, 스캔 테스트는 더 많은 정보와 결함 위치를 제공하는 방법으로 두 테스트가 보완적으로 사용됩니다.

B로그0간

개발 관련 글과 유용한 정보를 공유하는 공간입니다.