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는 자동화된 자가 테스트 방식으로 신속하게 결함을 검출하는 반면, 스캔 테스트는 더 많은 정보와 결함 위치를 제공하는 방법으로 두 테스트가 보완적으로 사용됩니다.
'IT > ASIC | FPGA' 카테고리의 다른 글
타이밍 기초 - Clock clock1 is missing an asynchronous definition CGR_0004 (0) | 2024.10.28 |
---|---|
반도체 기초 - FMEDA 란? (1) | 2024.10.28 |
반도체 기초 - DA, BIST, 테스트 관련 (0) | 2024.10.25 |
반도체 기초 - BIRA 테스트 (0) | 2024.10.25 |
반도체 기초 - ASCII database db 파일 (0) | 2024.10.25 |