KR20210153079A - 집적 회로들의 이상 검출 및 특성화를 위한 시스템 및/또는 방법 - Google Patents

집적 회로들의 이상 검출 및 특성화를 위한 시스템 및/또는 방법 Download PDF

Info

Publication number
KR20210153079A
KR20210153079A KR1020217036434A KR20217036434A KR20210153079A KR 20210153079 A KR20210153079 A KR 20210153079A KR 1020217036434 A KR1020217036434 A KR 1020217036434A KR 20217036434 A KR20217036434 A KR 20217036434A KR 20210153079 A KR20210153079 A KR 20210153079A
Authority
KR
South Korea
Prior art keywords
circuit
pulse
signal path
path
active signal
Prior art date
Application number
KR1020217036434A
Other languages
English (en)
Other versions
KR102399629B1 (ko
Inventor
제이슨 디킨스
Original Assignee
그램마테크, 아이엔씨.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 그램마테크, 아이엔씨. filed Critical 그램마테크, 아이엔씨.
Priority to KR1020227007671A priority Critical patent/KR20220035277A/ko
Publication of KR20210153079A publication Critical patent/KR20210153079A/ko
Application granted granted Critical
Publication of KR102399629B1 publication Critical patent/KR102399629B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318516Test of programmable logic devices [PLDs]
    • G01R31/318519Test of field programmable gate arrays [FPGA]
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31706Testing of digital circuits involving differential digital signals, e.g. testing differential signal circuits, using differential signals for testing
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31725Timing aspects, e.g. clock distribution, skew, propagation delay
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3177Testing of logic operation, e.g. by logic analysers
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318328Generation of test inputs, e.g. test vectors, patterns or sequences for delay tests
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/319Tester hardware, i.e. output processing circuits
    • G01R31/3193Tester hardware, i.e. output processing circuits with comparison between actual response and known fault free response
    • G01R31/31937Timing aspects, e.g. measuring propagation delay

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

본 명세서에 설명된 시스템, 방법 및 컴퓨터 판독 가능 매체는 FPGA들 및 ASIC들과 같은 집적 회로들의 특성화 및/또는 이상 검출을 위한 기술들에 관한 것이다. 특정한 예시적인 실시예들의 예시적인 양태에서, 완전한 디지털 기술은 테스트 대상인 경로를 통해 전파되는 신호들의 펄스 폭을 사용한다. 다른 예시적인 양태에서, 집적 회로의 재구성 가능성은 특정 유형의 트로이 목마 등의 더 나은 검출을 산출하기 위해 펄스 전파 기술과 지연 특성화 기술을 결합하기 위해 활용된다. 다른 예시적인 양태는 비정상적인 회로 요소들을 분리하고 식별하기 위해 재구성 가능한 경로들을 통해 테스트를 실행하는 것을 제공한다. 또 다른 예시적인 양태는 골든 레퍼런스들 등을 요구하지 않고 특성화 및 이상 검출을 수행하는 것을 제공한다.

Description

집적 회로들의 이상 검출 및 특성화를 위한 시스템 및/또는 방법
본 출원은 2019년 4월 15일자로 출원된 미국 출원 일련 번호 16/384,188의 이익을 주장하고, 그 전체 내용은 본 명세서에 참조로 포함된다.
본 발명은 미 공군이 수여한 계약 FA9453-17-P-0441에 따른 정부 지원으로 이루어졌다. 정부는 발명에 대한 특정한 권리를 갖는다.
본 명세서에 설명된 특정한 예시적인 실시예들은 장치 회로의 특성화(characterizing) 및 이상 검출에 관한 것이다. 보다 구체적으로, 특정한 예시적인 실시예들은 필드 프로그램 가능 게이트 어레이(field programmable gate array; FPGA) 및 주문형 집적 회로(application-specific integrated circuit; ASIC)의 특성화 및 이상 검출에 관한 것이다.
다양한 복잡성의 집적 회로들(ICs)은 거의 모든 현대 사용 분야의 수많은 장치들에 있다. 모든 환경에서 IC가 널리 퍼져 있기(prevalence) 때문에 악의적인 행위자들(malicious actors)은 IC를 은밀하게(surreptitiously) 변경하는 것에 매우 동기 부여되어 있을 수 있다. 이러한 은밀한 변경들은 해당 IC를 포함하는 장치가 IC 설계자에 의해 의도되지 않은 방식으로 동작하게 할 수 있다. IC에 대한 한 가지 유형의 은밀한 변경은 IC의 하나 이상의 신호 경로들에 악의적인 변경(일반적으로 "트로이 목마(Trojan)"라고 함)을 도입하는 것이다. IC들은 종종 전 세계의 다양한 위치들에서 생산되기 때문에 설계 및 제조 프로세스(manufacturing process) 및/또는 인력(personnel)의 신뢰성(trustworthiness)에 의존하기 어렵다. 따라서 제조업체로부터 수령 시 IC들에 대한 악의적인 변경들을 검출할 수 있는 것이 바람직할 것이다.
IC들의 설계 및 기능을 검증하기 위해 현재 많은 기술들이 사용되고 있다. 어떤 경우들에는 "신뢰를 위한 설계"(design for trust; DfT)로 알려진 기술들을 사용하여 제작(fabrication) 전에 IC를 검증한 다음 "테스트를 위한 설계"(design for test; DFT) 기술들 및 IC에 제작된 구성요소들을 사용하여 제작 후 기능을 검증한다. 미국 특허 번호 9,081,991은 회로 경로 지연들(circuit path delays), 전력 사용 부채널 정보(power usage side-channel information), 링 오실레이터(ring oscillator)의 변동들(variations) 등에 기초한 IC에 대한 아이덴티티(identity) 생성과 같은 DfT 기술들을 설명한다. 미국 공개 번호 2017/0161485는 지문 채취 기술들(fingerprinting techniques) 및 서명 분석 기술들(signature analysis techniques)을 설명하고 미리 결정된 코드들의 세트를 실행하는 IC에 의해 발생된 모니터링 부채널 정보도 설명한다. 미국 특허 번호 8,850,608은 IC에서 위협 검출(threat detection)을 위해 온-칩 구조(on-chip structure)와 외부 전류 측정값들을 결합하는 것을 설명한다. 미국 특허 번호 8,386,990은 IC의 고유한 특성(intrinsic characteristic)에 기초하여 IC에 대한 고유 식별자를 생성하고 해당 고유 식별자를 사용하여 악의적인 변경들을 검출하는 방법을 설명한다. 이들 특허 문서들 각각의 전체 내용들은 본 명세서에 참조로 포함된다.
현재 이용 가능한 기술들은 IC들에서 트로이 목마 및 기타 악의적인 변경들을 검출하는 데 가변적인 성공 수준들을 가지고 있지만, 광범위한 위협들과 잠재적으로 위험에 처한 IC들의 광범위한 관점에서 이상들을 테스트하고 검출하기 위한 추가 기술들을 제공하는 것이 바람직할 것이다.
본 명세서에 설명된 시스템, 방법 및 컴퓨터 판독 가능 매체는 FPGA들 및 ASIC들과 같은 집적 회로들의 특성화 및/또는 이상 검출을 위한 기술들에 관한 것이다. 특정한 예시적인 실시예들의 예시적인 양태에서, 완전한 디지털 기술(fully digital technique)은 테스트 대상인 경로를 통해 전파되는 신호들의 펄스 폭을 사용한다. 다른 예시적인 양태에서, 집적 회로의 재구성 가능성(re-configurability)은 특정 유형의 트로이 목마 등의 더 나은 검출을 산출하기 위해 펄스 전파 기술(pulse propagation technique)과 지연 특성화 기술을 결합하기 위해 활용된다(leveraged). 다른 예시적인 양태는 비정상적인 회로 요소들을 분리(isolate)하고 식별하기 위해 재구성 가능한 경로들을 통해 테스트를 실행하는 것을 제공한다. 또 다른 예시적인 양태는 골든 레퍼런스들(golden references) 등을 요구하지 않고 특성화 및 이상 검출을 수행하는 것을 제공한다.
특정한 예시적인 실시예들은 회로를 특성화 및/또는 테스트(testing)하기 위한 시스템에 관한 것이다. 펄스 발생기는 회로에 포함되고 회로의 적어도 하나의 능동 신호 경로의 신호 입력 포인트(signal input point)에 연결되고(coupled), 적어도 하나의 능동 신호 경로(active signal path)를 통한 전파(propagation)를 위해 가변 펄스 폭들(varying pulse widths)의 펄스들의 시퀀스(sequence of pulses)를 발생시키도록 구성된다. 펄스 검출기는 회로에 포함되고 적어도 하나의 능동 신호 경로의 신호 출력 포인트에 연결되고 적어도 하나의 능동 신호 경로를 통해 전파되는 펄스들의 시퀀스 내의 각 펄스들을 검출하도록 구성된다.
특정한 예시적인 실시예들에 따르면, 펄스 발생기는 시퀀스 내의 각 펄스들의 펄스 폭들이 미리 결정된 분포(predetermined distribution)에 따라 변경되도록 가변 폭들(varied widths)의 펄스들을 시퀀스에 포함하도록 더 구성될 수 있다. 회로에서, 적어도 하나의 능동 신호 경로의 하나 이상의 요소들(elements)은 특성 펄스 폭(characteristic pulse width)보다 큰 펄스 폭을 가지는 펄스들을 증폭하고 특성 펄스 폭보다 작은 폭을 가지는 펄스들을 감쇠(attenuate)시킬 수 있다.
특정한 예시적인 실시예들에 따르면, 프로세서는 특정한 예시적인 실시예들에서 미리 결정된 분포 및 검출된 펄스들에 기초하여 적어도 하나의 신호 경로를 특성화하도록 구성될 수 있고, 예를 들어, 특성화는, 발생된 펄스들의 시퀀스에 기초하여 시퀀스의 펄스로부터 특성 펄스 폭보다 작은 폭을 가지는 펄스가 펄스 검출기로 전파되지 않고, 특성 폭 이상의 폭을 가지는 펄스가 펄스 검출기로 전파되도록 특성 펄스 폭을 결정하는 것을 포함한다. 프로세서는 검출된 펄스들의 펄스 폭에 기초하여 적어도 하나의 능동 신호 경로에서 회로 용량성 부하(circuit capacitive loading)의 차이들(differences)을 검출; 적어도 하나의 능동 신호 경로에서 회로 용량성 부하의 차이들, 적어도 하나의 능동 신호 경로에서 하나 이상의 논리 게이트들의 형태 변경들(modifications) 및/또는 적어도 하나의 능동 신호 경로에서 회로 노후화(circuit aging)의 형태 변경들을 검출; 및/또는 이와 유사한 것을 하도록 더 구성된다.
특정한 예시적인 실시예들에 따르면, 시스템은 일부 경우들에 FPGA를 포함할 수 있고, FPGA는 회로를 포함한다. 그러한 시스템들에서, 예를 들어, 펄스 발생기, 펄스 검출기 및 적어도 하나의 능동 신호 경로는 전적으로 FPGA 상에 위치한 디지털 논리(digital logic)을 포함할 수 있다. 일부 예들에서, 시스템은 ASIC를 더 포함할 수 있고, ASIC는 회로를 포함한다.
특정한 예시적인 실시예들에 따르면, 회로는 회로 내의 모든 논리 요소, 네트 및 프로그램 가능한 상호연결 포인트들이 펄스 발생기와 펄스 검출기 사이의 능동 신호 경로에 포함되도록 재프로그램 가능할 수 있다.
특정한 실시예들에 따르면, 펄스 검출기는 수신된 펄스들의 수를 카운트하기 위해 플립-플롭 장치(flip-flop device)의 에지 검출 기능들(edge detection capabilities)을 사용하도록 더 구성될 수 있고, 리플 카운터(ripple counter) 내의 제1 플립-플롭 장치는 에지 검출을 위해 사용될 수 있다.
특정한 실시예들에 따르면, 펄스 발생기는 회로의 온칩 클록 발생 회로(on-chip clock generation circuitry)에 의해 발생된 두 클록 신호들을 논리적으로 결합하여 펄스들을 발생시키도록 더 구성될 수 있고, 예를 들어, 두 클록 신호들은 다른 클록 주파수들을 가짐으로써 각 클록 주기(clock period)가 논리적 결합으로부터 다른 펄스 폭(pulse width)을 발생시키도록 한다. 일부 예들에서, 펄스 발생기는 논리적으로 결합된 클록들의 주파수들의 차이를 변경하는 것에 의해 시퀀스의 각 펄스들의 펄스 폭들을 제어하도록 더 구성될 수 있고, 펄스 발생기는 두 극단들(two extremes) 사이에서 고정된 양만큼 증가 및 감소 사이에서 교대(alternating)하는 시퀀스의 펄스들의 폭들을 변경하도록 더 구성될 수 있다.
특정한 실시예들에 따르면, 하나 이상의 지역 측정 회로들은 회로에 포함될 수 있고, 예를 들어, 지연 측정 회로들(delay measuring circuits)은 적어도 하나의 능동 신호 경로에서 지연을 측정하도록 구성될 수 있다. 일부 예들에서, 지연 측정 회로들은 적어도 하나의 능동 신호 경로 상의 신호의 런치(launch)와 검출 사이의 시간의 검출을 제공하도록 구성된 에지 런치 회로(edge launch circuit) 및 에지 캡처 회로(edge capture circuit)를 포함할 수 있다. 일부 예들에서, 회로는 펄스 발생기 및 에지 런치 회로가 적어도 하나의 능동 신호 경로를 통해 송신할 수 있도록 교대로(alternately) 재구성이 가능(reconfigurable)한 것일 수 있다. 일부 예들에서, 적어도 하나의 능동 신호 경로는 다수의 경로 세그먼트들(multiple path segments)을 포함할 수 있고, 회로는 적어도 하나의 능동 신호 경로의 모든 세그먼트들보다 적은 세그먼트들을 포함하는 대체 경로들(alternate paths)을 통해 펄스 발생기 또는 에지 런치 회로로부터 신호들을 전파하도록 더 재구성 가능한 것일 수 있다. 일부 예들에서, 프로세서는 펄스 검출기 및/또는 에지 검출기에서 검출된 신호들에 기초하여 회로의 비정상적인 요소들(anomalous elements)를 식별하도록 더 구성될 수 있고, 예를 들어, 검출된 신호들은 적어도 하나의 능동 신호 경로를 통해 전파되는 신호들 및 대체 경로들을 통해 전파되는 신호들을 잠재적으로(potentially) 포함할 수 있다. 일부 예들에서, 회로는 회로 상에 선택된 위치의 다수의 요소들이 경로들 각각에 교대로 포함되도록 펄스 발생기와 에지 런처가 신호 경로들을 따라 신호들을 송신할 수 있도록 재구성이 가능하고, 프로세서는 신호 경로들을 따라 송신된 신호들로부터 검출된 데이터에 기초하여 테스트 대상인 경로에 대한 기대 값(expected value) 및 선택된 위치에 대한 하나 이상의 기대 값들을 결정하도록 더 구성될 수 있다.
특정한 예시적인 실시예들에서, 회로를 특성화 및/또는 테스트하기 위한 방법이 제공되고, 방법은 회로에 펄스 발생기를 구성하는 단계 - 펄스 발생기는 회로 내의 적어도 하나의 능동 신호 경로의 신호 입력 포인트에 연결되고 적어도 하나의 능동 신호 경로를 통한 전파를 위해 가변 펄스 폭들의 펄스들의 시퀀스를 발생시키도록 구성됨 -; 및 회로에 펄스 검출기를 구성하는 단계 - 펄스 검출기는 적어도 하나의 능동 신호 경로의 신호 출력 포인트에 연결되고, 적어도 하나의 능동 신호 경로를 통해 전파되는 펄스들의 시퀀스 내의 각 펄스들을 검출하도록 구성됨 -를 포함한다.
특정한 예시적인 실시예들에서, 명령어들이 저장된 비-일시적인 컴퓨터-판독 가능 저장 매체(non-transitory computer-readable storage medium)가 제공되고, 명령어들은 컴퓨터의 적어도 하나의 프로세서에 의해 실행되는 경우에 컴퓨터가,
회로에 펄스 발생기를 구성하는 단계 - 펄스 발생기는 회로 내의 적어도 하나의 능동 신호 경로의 신호 입력 포인트에 연결되고 적어도 하나의 능동 신호 경로를 통한 전파를 위해 가변 펄스 폭들의 펄스들의 시퀀스를 발생시키도록 구성됨 -; 및
회로에 펄스 검출기를 구성하는 단계 - 펄스 검출기는 적어도 하나의 능동 신호 경로의 신호 출력 포인트에 연결되고, 적어도 하나의 능동 신호 경로를 통해 전파되는 펄스들의 시퀀스 내의 각 펄스들을 검출하도록 구성됨 -를 포함하는 동작을 수행하게 한다.
예시적인 방법 및 비-일시적인 컴퓨터 판독 가능 저장 매체의 특징들에 추가로, 이전의 두 단락들에 요약된 바와 같이, 이전 단락들에 설명된 것들을 포함하는 특징들은 이러한 실시예들과 관련하여 사용될 수 있다.
이러한 양태들, 특징들 및 예시적인 실시예들은 본 발명의 또 다른 실시예들을 달성하기 위해 개별적으로 및/또는 다양한 결합들로 적용될 수 있다.
이들 및 다른 특징들 및 이점들은 도면들과 함께 예시적으로 실례가 되는 실시예들의 다음의 상세한 설명을 참조하여 더 양호하고 완전하게 이해될 수 있다:
도 1은 특정한 예시적인 실시예들에 따른 테스트 픽스처(fixture)를 포함하는, 예를 들어 FPGA와 같은 집적 회로의 개략적인 블록도이다.
도 2는 특정한 예시적인 실시예들에 따른, 도 1에 도시된 것과 같은 집적 회로의 이상 검출을 특성화하고 수행하기 위한 시스템을 개략적으로 도시한다.
도 3은 특정한 예시적인 실시예들에 따른, 도 1에 도시된 것과 같은 집적 회로의 이상 검출을 특성화 및/또는 수행하기 위한 프로세스의 흐름도를 제공한다.
도 4a는 특정한 예시적인 시나리오들에 따라 테스트 대상인 경로 내에 삽입된 트로이 목마를 갖고 그 안에 펄스 발생기, 펄스 검출기, 에지 런치 회로, 및 에지 검출기 회로를 구성한 FPGA를 도시한다.
도 4b는 도 4a에 도시된 것과 유사한 FPGA를 도시하지만, 트로이 목마는 특정한 예시적인 시나리오들에 따라 도 4a에서와 다른 방식으로(즉, 테스트 대상인 경로에 첨부됨) 삽입된 것을 도시한다.
도 5는 특정한 예시적인 실시예들에 따른, 도 3에서와 같은 펄스 전파 테스트 및 테스트 대상인 동일한 경로에서 수행될 지연 특성화 테스트를 제공하는 프로세스의 흐름도이다.
도 6은 특정한 예시적인 실시예들에 따른, 상이한 등가 경로 구성들에 경로 세그먼트를 포함함으로써 다수의 다양한 방식들로 경로 세그먼트를 테스트하도록 구성된 FPGA를 도시한다.
도 7은 특정한 예시적인 실시예들에 따른, 다수의 다양한 방식들로 경로 세그먼트를 테스트하기 위한 구성에서 펄스 전파 테스트 및 지연 특성화 테스트 대상 하나 또는 둘 모두가 수행될 수 있게 하는 프로세스의 흐름도이다.
도 8은 특정한 예시적인 실시예들에 따른, 위치 평균 및 경로 평균을 추출하는 데 사용되는 예시적인 논리 구성을 가지는 FPGA를 도시한다.
도 9는 특정한 예시적인 실시예들에 따른 골든 레퍼런스들을 사용하지 않고 이상들의 검출을 수행하기 위한 프로세스에 대한 흐름도이다. 및
도 10은 특정한 예시적인 실시예들에 따른, 도 3에 도시된 프로세스의 펄스 전파를 지연 특성화, 대안적인 물리적으로 등가 경로들의 테스트, 위치 평균 및 경로 평균 추출 중 하나 이상과 결합하는 특성화 및 이상 검출을 위한 프로세스에 대한 흐름도를 도시한다.
특정한 예시적인 실시예들은 이상들을 고감도(highly-sensitive)로 검출할 수 있는 하이브리드(hybrid) 집적 회로(integrated circuit; IC) 특성화 및 데이터 분석 기술을 제공한다. 특정한 예시적인 기술들에는 하드웨어 변경 및/또는 골든 레퍼런스 없이 장치들의 디지털 회로들(예: FPGA)의 커패시턴스 변동(capacitance variation)을 특성화하고 분리하는 모든-디지털 접근 방식(all-digital approach)이 포함된다. 모든-디지털 테스트 기술은 회로 용량성 부하, 논리 게이트 변경 및 회로 노후화의 아주 작은 차이들을 검출할 수 있다.
특정한 예시적인 실시예들의 기술들은 기존 회로 경로들 및 논리를 사용하여 테스트 대상인 장치 내의 소스 장치들(source devices)과 목적지 장치들(destination devices) 사이에서 가변 폭들의 펄스들을 전파한다. 이러한 경로들을 따라 있는 장치들은 폭들이 특성 최솟값(characteristic minimum value) 이상인 경우에 이러한 펄스들의 강도를 증폭한다. 이 임계 폭(critical width) 아래의 펄스들은 경로 전체에 전파되지 않을 때까지 경로의 각 연속적인 논리 게이트(each successive logic gate)에 의해 감쇠된다. 경로의 특성화는 테스트 경로를 통해 송신된 반복된 펄스들의 폭을 변경하고 펄스들이 통과하지 못하는 임계값(threshold)을 기록하여 수행된다. 특정한 예시적인 실시예들의 기술들은 무엇보다도 표준 FPGA들(예: Xilinx Virtex5??, Xilinx Zynq??, Xilinx UltraScale??, Xilinx Kintex??, Altera Stratix??, Altera Arria??, Altera Cyclone??) 등에서 이용 가능한 디지털 논리만을 사용하여 테스트를 수행하는 것이 가능해진다는 점에서 기존의 집적 회로 특성화 및 테스트 기술들을 개선한다.
기술에 대한 추가 개선들은 검출을 강화하기 위해 보완적인 지연-기반 특성화 접근 방식(complimentary delay-based characterization approach)을 포함하여 일부 경우들에 달성된다. 일부 실시예들에서, 지연-기반 특성화 접근 방식은 펄스-폭 기반 특성화 접근 방식에 대한 대안으로서 사용될 수 있다. 또한, 특정한 예시적인 실시예들에서, 장치의 계통적 변동의 혁신적인 특성화 및 이상 검출 기능을 향상시키기 위해 측정값들(measurements)로부터 특성화된 변동의 제거를 통해 접근 방식 또는 두 접근 방식들 모두의 조합(combination)이 더욱 개선된다.
예시적인 실시예들의 기술들은 장치에 존재하는 하드웨어 리소스만을 사용하여 상용 기성품(commercial off-the-shelf) FPGA 장치에서 악의적인 회로 변경, 신뢰성 문제 및 구성요소 노후화 효과와 같은 이상을 검출하는 데 사용될 수 있지만 이에 국한되지 않는다. 이 기술들은 또한 장치 인스턴스의 신뢰성을 검증하기 위해 신뢰 기술들을 위한 설계를 포함하는 ASIC 장치들에 사용될 수 있다. 특정한 예시적인 실시예들의 기술들로부터 생성된 데이터는 또한 회로 특성들의 장치별 변동(device-specific variation)을 이해하고 및/또는 FPGA/ASIC들에 배치된 설계를 개선하는 데 사용될 수 있다.
특정한 예시적인 실시예들은 FPGA 신호 경로 변경 없이 용량성 부하의 특성화를 제공하고, 기존 FPGA 기능들만을 활용하는 모든-디지털 접근 방식들을 사용한다. 특정한 예시적인 실시예들의 기술들은 예측 가능한(predictable) 분포(distribution) 및 디지털 펄스 존재 검출(digital pulse presence detection)과 함께 디지털 접근 방식으로 발생된 펄스 폭 변동을 사용한다. 특정한 예시적인 실시예들은 집적 회로들에 삽입된 모든 클래스들의 하드웨어 트로이 목마에 대해 증가된 검출 감도를 제공하고, 특정한 실시예들은 이상들의 검출을 강화하기 위해 하이브리드 검출을 제공한다. 특정한 예시적인 실시예들은 또한 회로 이상들의 상세한 로컬리제이션(localization)을 제공하고, 골든 레퍼런스 없이 이상 검출을 제공하고, 및/또는 체계적 장치 변동들(systematic device variations)의 추출을 위한 기술을 제공할 수 있다.
도 1은 특정한 예시적인 실시예들에 따른 IC(100)의 개략적인 블록도이다. 이 예에서 FPGA인 IC(100)의 재프로그램 가능성(re-programmability)을 활용하여, 다수의 테스트 경로들(102)이 생성된다. 이를 통해 FPGA(100) 내에서 논리 요소들, 네트들(nets) 및 프로그램 가능한 상호연결 포인트들의 특성화를 수행할 수 있다. 특정한 실시예들에 따르면, 테스트 경로(102)는 FPGA(100) 상의 모든 논리 요소들, 네트, 프로그램 가능한 상호연결들, 및/또는 다른 논리 요소들을 포함할 수 있다. 특정한 예시적인 실시예들에서, 테스트 경로(102)는 FPGA(100) 상의 논리 요소들, 네트들, 프로그램 가능한 상호연결들 등의 선택된 서브세트(subset)를 포함할 수 있다. 테스트 경로(102)는 FPGA(100) 상에 구성된 수많은(예를 들어, 수천 또는 수백만) 신호 경로들 중 하나일 수 있다.
도 1에서, 3개의 논리 게이트들(예를 들어, 논리 게이트(108)), 3개의 프로그램 가능한 상호연결들(예를 들어, 상호연결(110)), 및 네트(예를 들어, 네트(112))를 포함하는 하나의 경로는 경로를 따라 다양한 논리 요소를 연결한다. 경로에 따른 논리 요소들의 유형들은 논리 게이트들 및 프로그램 가능한 상호연결들을 포함할 수 있지만, 이에 제한되지는 않는다. 도 1에 도시된 테스트 대상인 경로(102)는 단순화된 경로이다. 테스트 대상인 각 경로에는 여러 인스턴스들의 모든 유형들의 논리 요소들이 포함될 수 있다.
특정한 예시적인 실시예들에 따르면, 펄스 발생기(104) 및 펄스 검출기(106)는 펄스 발생기(104)에 의해 발생된 신호들이 테스트 대상인 하나 이상의 경로들(102)을 통해 송신되고 펄스 검출기(106)에서 수신될 수 있도록 테스트 대상인 하나 이상의 경로들에 연결된다. 사용되는 네트, 논리 게이트들, 프로그램 가능한 상호-연결 등의 종류와 수는 다양할 수 있지만, 특정한 예시적인 실시예들은 펄스 발생기와 펄스 검출기 사이의 능동 신호 경로를 사용하여 충분한 폭의 펄스(예를 들어, 펄스 폭들의 미리 결정된 범위 내의 폭을 갖는 펄스)가 펄스 발생기로부터 검출기로 전파되도록 한다.
알려진 바와 같이 신호 경로의 게이트 상의 추가 용량성 부하는 게이트를 통한 연속적인(successful) 전파에 필요한 펄스-폭을 증가시킨다. 따라서 논리 게이트들에 대한 변경들은 연속적인 전파에 필요한 펄스 폭의 변화를 초래할 수 있다. 이것은 관찰된 임계 펄스 폭이 경로 내의 게이트들의 설계와 용량성 부하의 척도(measure)라는 인식으로 이어진다. 또한 테스트 대상인 경로를 통과하는 알려진 펄스 폭들의 분포의 결과들을 관찰하는 것에 의해 경로의 변화들이 특성화될 수 있다.
미국 특허 번호 9,081,991("Ring oscillator based design-for-trust") 및 미국 특허 번호 8,850,608("Embedded ring oscillator network for integrated circuit security and threat detection")은 모두 신뢰를 위한 설계 기술들을 설명한다. 두 특허들에 따르면 테스트를 위한 회로들이 칩 설계(ASIC 또는 FPGA)에 추가된다. 전자는 테스트 대상인 경로 주변에 링 오실레이터(ring oscillator)를 구축하고 골든 레퍼런스 값과 관련된 주파수 변화들을 검출하는 것으로 나타난다. 후자는 과도 전력 사용량(transient power usage)(예: 지연 또는 펄스가 아님)에 대한 영향 측정에 기초하는 부-채널 접근 방식(side-channel approach)을 제안하는 것으로 나타나고, 부품(part)에 배치된 링 오실레이터의 주파수는 과도 전력 사용량의 척도로 사용된다. 일부 다른 기존 접근 방식들은 발생된 각 펄스의 폭을 직접 제어할 수 있으므로 선택된 폭들의 범위에 걸쳐 이 값을 스위핑(sweeping)하여 전파 임계값(propagation threshold)을 설정할 수 있다. 위에서 언급한 종래 기술들과 대조적으로, 특정한 예시적인 실시예들은 IC, 아날로그 펄스 발생기 또는 아날로그 검출기에 대한 추가 회로의 도입을 필요로 하지 않는다. 특정한 예시적인 실시예들은 또한 테스트될 장치에 이미 존재하지 않는 회로의 추가를 요구하지 않는다. 예를 들어, 특정한 예시적인 실시예들은 표준 상업적으로 이용 가능한 FPGA(standard commercially available FPGA)에 존재하지 않는 회로를 필요로 하지 않는다.
위에서 언급한 미국 특허들과 대조적으로, 특정한 예시적인 실시예들은 펄스 폭들의 알려진 분포를 가지는 펄스 시퀀스를 발생시키기 위해 완전한 디지털 접근 방식을 사용하면서 각 펄스의 폭에 대한 특정 제어를 포기한다. 예를 들어, 특정한 예시적인 실시예들에서, 각각의 후속 펄스(subsequent pulse)의 펄스 폭은 선택된 분포에 따라 설정되고, 개별 펄스의 폭은 펄스 폭들의 선택된 분포와 일치하지 않는 방식으로 조정되지 않는다. 추가적으로, 특정한 예시적인 실시예들에서, 펄스 검출은 수신되는 펄스들의 수를 카운트하기 위해 표준 플립-플롭 장치의 에지 검출 기능을 사용함으로써 달성된다. 정의된 시간 동안 수신된 펄스들의 수를 기록하고 해당 기간 동안 발생된 펄스 폭의 분포를 알면 임계 펄스 폭이 계산될 수 있다. 특정한 예시적인 실시예들에서, 임계 펄스 폭은 펄스 발생기에 의해 송신된 펄스에 대응하는 신호로서 펄스 검출기에 의해 검출될 만큼 충분한 신호 강도가 남아 있는 상태에서 펄스 발생기로부터 펄스 검출기로 테스트 대상인 경로를 통해 전파되는 가장 작은 펄스 폭이다.
특정한 예시적인 실시예들에서, 펄스 발생은 테스트되는 집적 회로 내의 기존 클록 발생 회로에 의해 발생된 2개의 클록 신호들을 논리적으로 결합(예를 들어, 논리적 AND)하는 것에 의해 달성된다. FPGA들과 같은 집적 회로들에는 온-칩 위상 고정 루프들(on-chip phase locked loops ; PLL), 온-칩 디지털 클록 제어 모듈들(on-chip digital clock control modules; DCM) 및 오실레이션(oscillation)을 생성하기 위한 논리 피드백을 비롯한 다양한 주파수들에서 클록들을 발생시키기 위한 다수의 접근 방식들이 존재한다. 특정한 예시적인 실시예들은 상이한 주파수의 2개의 클록들을 생성하는 임의의 이러한 기술들을 사용할 수 있다. 두 클록 주파수들의 발생된 주파수들이 동일하지 않은 경우, 각 클록 주기는 AND 회로에서부터 다른 펄스 폭을 발생시킨다. 서로 가까운 클록 주파수들을 선택하는 것에 의해, 각 주기 후에 폭이 약간 증가(increment)하거나 감소(decrement)하면서 매우 좁은 펄스 폭들을 발생시킬 수 있다. 특정한 예시적인 실시예들은 테스트 대상인 경로(path under test; PUT)를 자극하기 위해 두 극단들 사이에서 고정된 양만큼 증가 및 감소 사이에서 교대하는 펄스 폭들의 시퀀스를 사용한다.
더욱이, 종래의 접근 방식들과 대조적으로, 특정한 예시적인 실시예들은 테스트 대상인 경로의 끝까지 전파하는 펄스들의 수에 대한 완전한 디지털 검출기를 제공하기 위해 리플 카운터를 사용할 수 있다. 수신된 펄스들은 더 이상 클록과 동기화되지 않으며 반드시 최대 강도(full strength)도 아니기 때문에, 카운터에 있는 제1 플립-플롭의 에지 검출 기능은 펄스 검출기에서 수신된 각 펄스들을 검출하기 위해 사용된다. 제1 플립-플롭을 사용하여 수신된 펄스를 검출한 후 다양한 동기화 접근 방식들이 나머지 카운트 및 데이터 수집 회로를 동기적으로 구현하기 위해 적용될 수 있다.
도 2는 특정한 예시적인 실시예들에 따른 IC의 이상 검출을 특성화하고 수행하기 위한 시스템을 개략적으로 도시한다. 시스템(200)은 테스트 대상인 IC(202)와, IC(202)에 연결(또는 착탈 가능(detachably connected))되는 프로세서(210)를 포함하는 호스트 시스템(host system)을 포함한다.
특정한 실시예들에 따르면, IC(202)는 전원이 켜질 때마다 구성되는 FPGA 등일 수 있다. 특정한 예시적인 실시예들에서, IC(202)는 또한 전원이 켜져 있는 동안 부분적으로 또는 완전히 재프로그래밍될 수 있다. IC(202)는, 예를 들어, IC(202)의 전원이 꺼질 때 소거되는(erased) 구성 메모리(204)를 포함할 수 있다. 구성 메모리(204)는 IC(202)에 대한 구성 정보를 수신하고 저장할 수 있는 정적 RAM(static RAM; SRAM) 등을 포함할 수 있다. 구성 정보는 예를 들어 신호 경로의 구성, 신호 경로를 따른 논리 요소들, 입력 논리 블록들, 출력 논리 블록들, 클록들, 카운터들, 레지스터들 등을 IC(202)에 지정할 수 있다. 전원이 켜질 때, 구성 정보는 호스트(210)로부터 구성 메모리(204)에 수신될 수 있고, IC(202)는 수신된 구성 정보에 따라 구성될 수 있다. 예를 들어, IC(202)가 펄스 발생기, 펄스 검출기, 및 FPGA(100)에 도시된 테스트 대상인 경로를 포함하는 특정한 예시적인 실시예들에서, 구성 정보는 테스트 대상인 경로(102), 펄스 발생기(104) 및 펄스 검출기(106)일 수 있는 신호 경로들 각각에 대한 경로 구성을 포함할 수 있다.
호스트(210)는 IC(202)의 구성을 제어할 수 있는 프로세서(212)를 포함한다. 호스트(210)는 장치 인터페이스(214), 메모리(216), 스토리지(storage)(218), 네트워크 인터페이스(들)(220), 입력 인터페이스(들)(224), 디스플레이 인터페이스(들)(226)와 같은 요소들을 포함할 수 있으며, 이는 하나 이상의 상호통신 버스들(intercommunication buses)(228)에 의해 상호연결된다. 특정한 예시적인 실시예는 위에 나열된 것 외에 요소를 가질 수 있고, 하나 이상의 나열된 요소는 특정한 다른 실시예에서 호스트(210)에 존재하지 않을 수 있다. 도시된 IC(202)에서, 클록(들)(206) 및 카운터(들)(208)도 구성된다. 위에서 설명된 바와 같이, 특정한 예시적인 실시예들에서, 펄스 발생기는 펄스 시퀀스를 발생시키기 위해 IC(202)에서 이용 가능한 2개의 클록 신호들을 이용할 수 있고, 펄스 검출기는 수신된 펄스를 검출하기 위해 IC(202)에 이미 존재하는(예를 들어, FPGA에 이미 존재하는 회로를 사용하여 구성된) 리플 카운터와 같은 카운터를 사용할 수 있다.
호스트(210)는 구성 정보(230)를 휘발성 메모리(216) 및/또는 영구 메모리(218)(예를 들어, FLASH, 하드 디스크 등)에 저장할 수 있다. 구성 정보(230)는 장치 인터페이스(214)를 통해 IC(202)에 다운로드될 수 있으며, 이는 IC(202) 상의 호스트 인터페이스에 연결할 수 있는 직렬 인터페이스(serial interface), 병렬 인터페이스(parallel interface), 또는 JTAG 인터페이스 중 하나 이상을 포함할 수 있다. 다운로드된 구성 정보(230)는 IC(202)의 회로를 구성하는 데에 사용하기 위해 구성 메모리(204)에 저장된다.
메모리(216) 및/또는 스토리지(218)는 또한 IC(202)의 특성화 및 이상 검출 구성요소들에 의해 수집된 결과들을 분석하기 위해 프로세서(212)에 의해 실행될 수 있는 이상 검출 프로그램(232)을 포함할 수 있다. 예를 들어, 프로그램(232)은 테스트 대상인 경로(102)의 특성화를 결정하고 및/또는 테스트 대상인 경로(102)의 이상들을 검출하기 위해 펄스 검출기(106)에 의해 수집된 펄스 검출 정보를 분석할 수 있다. 펄스 검출기(106)에 의해 수집된 펄스 검출 정보는 IC(202) 상의 메모리(204)와 같은 메모리에 저장될 수 있다. 그러나, 특정한 예시적인 실시예들에서, 펄스 검출 정보는 IC(202)에 저장되지 않고 호스트(210)로 통신될 수 있다. 이상 검출 프로그램(232)은 사용자 입력을 수신하기 위해 입력 인터페이스(224)를 통해 연결된 입력 장치들(예를 들어, 키보드, 마우스 등) 및/또는 사용자에게 분석 결과들을 표시하기 위해 디스플레이 인터페이스(display interface)(226)를 통해 연결된 디스플레이를 사용할 수 있다.
호스트 구성요소들(212-228)은 임의의 특정한 유형들의 하드웨어로 제한되지 않으며, IC(202)의 구성을 가능하게 하는 구성요소들의 임의의 조합을 포함할 수 있고, 적어도 특정한 예시적인 실시예들에서 이상 검출 프로그램(232)의 실행을 포함할 수 있는 것이 이해될 것이다. 구성 정보는 예를 들어, VHDL, Verilog 등과 같은 하드웨어 설명 언어로 지정될 수 있다.
특정한 실시예들에서, IC(202) 및 호스트(210)는 각각 독립형(standalone) 장치일 수 있다. 그러나, 특정한 다른 실시예들에서, 시스템(200)은 마이크로프로세서(예를 들어, 프로세서(212)) 및 IC(202)와 같은 회로를 포함하는 SoC(system-on-a-chip)로서 형성될 수 있다. IC(202) 또는 SoC(200)는 임의의 유형의 디지털 전자 장치에 포함될 수 있다.
도 3은 특정한 예시적인 실시예들에 따른 집적 회로의 이상 검출을 특성화 및/또는 수행하기 위한 프로세스(300)의 흐름도이다. 프로세스(300)에 대한 프로그램 명령어들은 예를 들어 구성 정보(230) 및/또는 이상 검출 프로그램(232)에 포함될 수 있다. 특정한 예시적인 실시예들에 따르면, 프로세스(300)는 시스템(200) 상에서 수행될 수 있다. 보다 구체적으로, 테스트 대상인 IC는 펄스 발생기, 펄스 검출기, 및 도 1에 도시된 것과 같은 테스트 대상인 경로를 또한 포함하는 FPGA(202)일 수 있다.
프로세스(300)에 진입한 후, 동작(302)에서, 테스트 대상인 IC에서 하나 이상의 신호 경로들이 식별된다. 예를 들어, 하나 이상의 경로들로부터의 특정 신호 경로는 이 동작에서 테스트 대상인 경로(102)로서 결정될 수 있다. 결정은 이미 생성된 회로 구성(예를 들어, FPGA(202)의 구성 정보(230))에 기초하거나 회로 구성(230)의 생성 동안에 이루어질 수 있다.
특정한 예시적인 실시예들에서, 테스트 대상인 IC 상의 하나 이상의 신호 전파 경로들은 애플리케이션에서 활성화될 수 있는 모든 논리 요소들이 테스트 대상인 적어도 하나의 신호 경로에 있도록 결정된다. 특정한 다른 예시적인 실시예들에서, 하나 이상의 신호 경로들은 애플리케이션 동안 활성화될 수 있는 복수의 경로들로부터 테스트 대상인 경로들로서 선택될 수 있다.
동작(304)에서, 펄스 발생기는 테스트 대상인 IC에 구성된다. 예를 들어, 펄스 발생기(104)는 테스트 대상인 IC에 구성될 수 있다. 전술한 바와 같이, 펄스 발생기는 펄스 폭들의 알려진 분포를 갖는 신호들의 시퀀스를 생성하도록 구성된다. 펄스들은 특정한 예시적인 실시예들에서 테스트 대상인 IC에 있는 2개의 클록 신호들(예를 들어, 클록(206))을 AND하는 것에 의해 생성될 수 있다. 서로 가까이 있는 두 개의 클록들은 알려진 분포로 가변 펄스 폭들의 시퀀스를 생성한다. 특정한 예시적인 실시예들에서, 주파수에서 서로 가까운 클록 신호들의 AND는 좁은 펄스 폭들을 생성하기 위해 사용될 수 있고, 더 큰 펄스 폭들을 생성하기 위해 선택된 클록 신호들 사이의 주파수 차이가 증가될 수 있다. 위에서 설명한 바와 같이, 펄스 폭들의 시퀀스는 테스트 대상인 경로를 자극하기 위해 두 극단들 사이에서 고정된 양만큼 펄스 폭을 증가 및 감소 사이에서 교대할 수 있다. 예를 들어, 100Mhz와 100.01Mhz의 한 쌍의 클록들은 주기가 1ps만큼 다르다. 따라서 100Mhz 클록의 각 사이클(cycle)에 대해 100.01Mhz는 상대 위상(relative phase)에서 1ps씩 진행된다. 이 클록 신호들을 AND하면 이 두 구형파 클록들(square-wave clocks)이 겹치는 펄스가 생성된다. 각 사이클 동안 겹치는 시간은 표시된 대로 100Mhz 클록 사이클(10ns)마다 1ps씩 변경되는 상대적 위상들에 의존한다. 이것은 상대적 위상이 클록 사이클(펄스 폭이 생성되는)의 1/2 이상으로 증가함에 따라 신호들이 다시 증가하는 양과 겹치기 시작할 수 있으므로 주기적인 관계(cyclic relationship)라는 점에 유의해야 한다. 따라서 최대 약 5ns(100.01Mhz 클록 주기의 1/2)와 1ps 증가들로 0ns 사이에서 앞뒤로 램프(ramp back and forth)하는 펄스 폭들의 시퀀스가 생성될 수 있다.
동작(306)에서, 펄스 검출기가 테스트 대상인 IC에 구성된다. 예를 들어, 펄스 검출기(106)는 테스트 대상인 IC에 구성될 수 있다. 특정한 예시적인 실시예들에 따르면, 펄스 검출기는 예를 들어 표준 FPGA들에서 이용 가능한 논리로 구현되는 표준 리플 카운터와 같은 카운터(208)를 사용하도록 구성될 수 있다. 위에서 설명한 바와 같이, 리플 카운터의 제1 플립-플롭의 에지 검출 기능은 검출의 견고성(robustness)을 향상시키기 위해 각각의 펄스들을 검출하는데 사용될 수 있다.
동작(308)에서, 펄스들의 시퀀스는 테스트 대상인 하나 이상의 경로들을 통해 펄스 발생기로부터 펄스 검출기로 송신된다. 예를 들어, 펄스 발생기(104)는 테스트 대상인 경로(102)를 통해 가변 펄스 폭들을 갖는 신호들의 시퀀스들을 송신한다. 송신된 신호들은 테스트 대상인 경로(각 논리 요소 및 테스트 대상인 경로를 따라 네트를 통해)를 통해 전파되고 테스트 대상인 경로(102)를 통해 전파된 후 펄스 검출기(106)에서 수신된다.
동작(310)에서, 펄스 검출기들에서 검출된 신호들이 분석된다. 분석은 테스트 대상인 경로들(102)의 경로들 중 하나 이상의 특성화를 산출할 수 있다. 분석은 또한 하나 이상의 신호 경로들에서 이상들을 검출하는 기능을 제공할 수 있다. 위에서 설명된 바와 같이, 특정한 예시적인 실시예들은 테스트 대상인 경로를 따라 논리 요소들을 통해 전파할 수 있는 펄스 폭을 사용한다. 경로의 논리 게이트에 추가 용량성 부하는 게이트를 통한 연속적인 전파에 필요한 펄스 폭을 증가시키므로, 테스트 대상인 경로를 통해 전파되는 펄스 폭 분포의 특성화는 테스트 대상인 경로에 대한 추가 논리의 변경 및/또는 부착(attaching)을 검출할 수 있다. 특정한 예시적인 실시예들에서, 특성화 및 이상 검출은 테스트 대상인 경로의 각 신호 경로, 알려진 송신된 펄스 시퀀스, 테스트 대상인 선택된 경로 및 검출된 펄스 시퀀스를 따라 다양한 논리 요소들의 각 유형의 알려진 용량성 임계값들에 기초할 수 있다. 하나의 예시적인 구현에서, 펄스-폭들의 공통 분포의 펄스들의 시퀀스는 테스트 대상인 등가 경로들(equivalent paths)의 세트를 통해 전파된 다음 검출기에서 카운트된다. 이러한 카운트 값들을 사용하여 카운트 값들 모음(collection)의 평균 및 표준 편차(standard deviation)가 결정된다. 이러한 통계 값들은 테스트 대상인 경로 설계의 특징이다. 그런 다음 계산된 평균에서 지정된 편차 이상으로 변하는 개별 카운트 값들은 테스트된 경로가 기대 경로(expected path)가 아니며 수정되었을 수 있음을 나타낸다.
동작(312)에서, 결정이 출력된다. 예를 들어, 프로그램(232) 등은 디스플레이 인터페이스(226)에 부착된 디스플레이(예를 들어, 디스플레이 장치 등)에 결과를 출력할 수 있다. 출력은 송신된 펄스 시퀀스의 식별(identification) 및/또는 설명, 펄스 검출기에서 검출된 펄스 시퀀스에 관한 정보, 검출된 펄스 폭 특성들, 테스트 대상인 경로의 하나 이상의 신호 경로에 대한 식별 및/또는 설명을 나타낼 수 있다. 동작(312) 이후에, 프로세스(300)는 종료된다.
특정한 예시적인 실시예들에 따르면, 동작들(302, 310, 312)은 프로세서(212) 상에서 실행되는 프로그램(232) 및/또는 다른 소프트웨어에 의해(또는 이를 사용하여) 수행될 수 있다. 그러나, 동작들(304, 306, 308)은 테스트 대상인 IC의 구성 메모리(204)에 호스트(210)로부터 제공된 구성 정보를 사용하여 테스트 대상인 IC에 대한 특정한 예시적인 실시예들에서 수행될 수 있다.
특정한 예시적인 실시예들은 검출에서 일부 회로 변동들의 이탈(escape)을 방지(또는 최소한 그 가능성을 줄임)하기 위해, 보상 지연 기반 검출 테스트 접근 방식(compensating delay-based detection test approach)과 도 1 및 3과 관련하여 설명된 펄스 전파 테스트 접근 방식의 결합 및 테스트 대상인 IC(예: FPGA)의 재프로그램 가능성 활용을 포함하는 것에 의해 도 1 및 3과 관련하여 설명된 기술들의 특성화 및 이상 검출 기능들을 개선한다. 도 4a 및 도 4b는 개선된 기능을 가지는 특정한 예시적인 실시예들에 따른 예시적인 FPGA 구성들을 도시한다.
도 1 및 3과 관련하여 전술한 바와 같이 펄스 전파 기술은 테스트 대상인 경로에서 임계 단(critical stage)의 펄스 폭 임계값을 검출한다. 즉, 연속적인 전파를 위해 가장 큰 펄스 폭이 필요한 테스트 대상인 경로의 게이트 및 게이트 부하가 검출된다. 위에서 언급된 바와 같이, FPGA 내의 논리 게이트들, 네트들 및 프로그램 가능한 상호연결이 실질적으로 균일하도록 설계되었기 때문에 경로를 따라 각 단에 대한 펄스 폭 임계값은 동일한 유형의 단에서 매우 유사해야 한다. 그러나, 도 1 및 3과 관련하여 논의된 펄스 전파 기술만으로, 악의적인 사용자가, 임계 단이 아니므로 검출되지 않는 추가적인 악의적인 경로 단(예: 트로이 목마)을 특별히 설계할 수 있다. 즉, 펄스 전파 기술은 트로이 목마의 영향을 받는 임계 단 논리 요소가 있는 테스트 대상인 경로를 검출할 수 있는 반면, 임계 단의 용량성 임계값(capacitive threshold)에 기여하지 않는 트로이 목마는 검출하지 못할 수 있다.
삽입된 추가 악의적인 단은 이전 경로 단에 추가 부하를 제공하지 않고 펄스를 전달해야 하기 때문에(예: 악의적인 단이 이전 경로 단에 추가 부하를 제공하는 경우 펄스 전파에 의해 검출될 수 있음), 삽입된 악의적인 단은 악의적인 사용자가 자체 이득(gain)을 갖도록 구성해야 하므로 경로에 상당한 지연이 추가된다. 펄스-전파 검출 접근 방식과 지연 측정 접근 방식(예: 클록 스위핑)을 결합하는 것에 의해, 결합된 하이브리드 접근 방식은 조작된(crafted) 악의적인 단들의 삽입 또는 경로 네트들에 작은 트로이 목마 첨부와 같은 특수한 경우들을 검출하는 기능을 포함하여 개선된 이상 검출을 제공할 수 있다.
트로이 목마 검출을 위한 지연 특성화 접근 방식들이 존재한다(예를 들어, " Detection of Recovered Integrated Circuits"라는 제목의 미국 공개 번호 2014/0103344 참조, 이의 전체 내용들은 본 명세서에 참조로 포함됨). 그러나 기존 기술들은 보다 포괄적인 검출 기능들을 위해 지연 특성화 접근 방식과 용량성 부하 기반 접근 방식(예: 펄스 전파)을 결합하지 않는다. 도 4a 및 도 4b는 보다 포괄적인 이상 검출 기능들을 산출하기 위해 지연 특성화와 함께 펄스 전파를 사용하기 위해 테스트 대상인 경로를 따른 요소들이 다수의 구성들 동안 재사용되는 예시적인 실시예를 도시한다.
도 4a는 펄스 발생기(404), 펄스 검출기(406), 에지 런치 회로(414), 및 에지 검출기 회로(416), 및 테스트 대상인 경로(402)가 내부에 구성된 IC(400)(예를 들어, FPGA)를 예시한다. 위의 IC(100)와 관련하여 설명된 바와 같이, 테스트 대상인 경로(402)는 IC의 하나 이상의 신호 경로들로부터의 특정 경로를 나타낼 수 있으며, 각 경로는 논리 게이트들, 네트들, 및 프로그램 가능한 상호연결들과 같은 요소들의 조합을 포함한다. IC(400)는 또한 IC(202)와 관련하여 설명된 것과 같은 구성 메모리, 클록(들) 및 카운터(들)(예를 들어, 구성 메모리(204), 클록들(206) 및 카운터들(208))를 포함할 수 있다.
도 4a(및 도 4b)에 도시된 바와 같이, 주어진 구성에서, 펄스 검출기(406)와 함께 펄스 발생기(404), 또는 에지 캡처 회로(416)와 함께 에지 런치 회로(414)만이 구성되고 테스트 대상 경로(402)에 연결된다. 도 4a에 도시된 대체 연결들(alternate connections)(예를 들어, 펄스 발생기/검출기 쌍에 대한 커넥터(connector) 또는 에지 런치/검출 회로 쌍에 대한 커넥터)은 테스트 대상인 동일한 경로를 따라 펄스 전파 또는 지연 특성화를 유연하게 구성하는 옵션을 나타낸다. 에지 런치 및 에지 캡처 접근 방식은 사용할 수 있는 많은 기존 지연 측정 기술들 중 하나이다. 런치와 검출 사이의 시간을 검출하는 것에 의해, 회로를 통한 지연은 특정한 예시적인 실시예들에서 특성화된다. 두 구성들 모두 테스트 대상인 각 경로에 대해 테스트된다.
트로이 목마 단(418)이 테스트 대상인 경로(402)에 인라인(inline)으로 삽입된 도 4a에 도시된 제1 예시적인 시나리오에서, 트로이 목마(418)의 추가된 지연은 펄스-전파 기술로부터 조심스럽게 숨겨져 있더라도 지연 측정값에 의해 검출된다. 도 4b에 도시된 제2 예시적인 시나리오에서, IC(400')의 테스트 대상인 경로(402')에 첨부된 트로이 목마(418')는 논리 게이트 H에 부하를 추가하므로 펄스 전파 기술로 검출될 수 있다. 도시되지는 않았지만 펄스 전파 기술은 파라미터 트로이 목마(parametric Trojans) 또는 네트로부터의 신호들의 연결도 검출한다. 따라서 하이브리드 조합 접근 방식을 사용하면 알려진 하드웨어 트로이 목마 삽입 방법들을 보다 광범위하게 검출할 수 있다.
테스트를 위해 IC(예: FPGA)를 여러 번 재구성하기 위해 도 4a 및 4b에 도시된 것과 같은 IC 구성들의 예시적인 실시예들에서 제공되는 기능은 펄스 전파 테스트와 동일한 테스트 대상 경로에서 지연 테스트가 수행되는 것을 가능하게 한다. 위에서 언급했듯이 펄스 전파 테스트는 종종 두 가지 유형들의 트로이 목마(418 및 418')를 모두 검출하지만 신중하게 조작된 트로이 목마 418을 놓칠 수 있다. 지연 테스트는 종종 트로이 목마(418')를 놓치는 반면 펄스 전파 테스트는 이를 검출할 가능성이 높다. 그들은 보완적인 접근 방식들로 사용하기에 적합하다.
도 5는 위의 도 3과 관련하여 설명된 펄스 전파 테스트 및 지연 특성화 테스트가 테스트 대상인 동일한 경로에서 실행되도록 하는 프로세스(500)를 도시한다. 특정한 예시적인 실시예들에 따르면, 프로세스(500)는 호스트(210) 상에서 실행되는 프로그램(232)에 의해 수행될 수 있다. 재구성 및 테스트는 FPGA(202)와 같은 호스트(210)에 연결된 IC 상에서 수행될 수 있고, 이는 또한 도 4a 및/또는 4b와 관련하여 설명된 구성을 포함할 수 있다.
프로세스(500)에 진입한 후, 동작(502)에서, 테스트 대상인 경로가 하나 이상의 신호 경로들로부터 선택된다. 테스트 대상인 경로를 선택하는 것은 예를 들어, 도 3에 도시된 동작(302)과 관련하여 위에서 설명된 바와 같이 수행될 수 있다.
동작(504)에서, 펄스 발생기 및 펄스 검출기가 구성된다. 펄스 발생기 및 펄스 검출기 구성은 도 3과 관련하여 전술한 바와 같이 수행될 수 있다.
동작(506)에서, 에지 런처 및 에지 검출기가 구성된다. 에지 런처와 에지 검출기는 테스트 대상 경로의 한쪽 끝에서 신호의 런치와 테스트 대상인 경로의 다른 쪽 끝에서 해당 신호의 검출 사이의 시간 간격을 쉽게 검출할 수 있는 방식으로 구성할 수 있다. 지연 측정의 알려진 기술이 사용될 수 있다.
동작(508)에서, IC는 펄스 발생기/펄스 검출기 쌍 또는 에지 런처/에지 검출기 쌍을 테스트 대상인 경로에 연결하도록 선택적으로 재구성된다. 특정한 실시예들에 따르면, FPGA(400)는 도 4a에 도시된 바와 같이 테스트 대상인 경로를 펄스 발생기 및 펄스 검출기에 연결하도록 구성될 수 있다. 선택되지 않은 페어링은 테스트 대상인 경로에 연결되지 않을 수 있다.
동작(510)에서, 선택된 테스트는 테스트 대상인 경로에서 실행된다. 예를 들어, 펄스 발생기/펄스 검출기 쌍이 연결될 때, 펄스 전파 테스트는 도 3과 관련하여 전술한 바와 같이 실행된다.
펄스 발생기/펄스 검출기 및 에지 런처/에지 검출기 쌍들을 테스트 대상 경로에 개별적으로 연결하고 각 테스트들을 수행하도록 IC를 재구성하기 위해 동작(508-510)이 반복된다. 지연 특성화 테스트를 위해 재구성되는 경우, 에지 런처 및 에지 검출기는 도 4b에 도시된 바와 같이 테스트 대상인 경로에 연결될 수 있다.
동작(512)에서, 동일한 테스트 대상 경로에 대한 펄스 전파 테스트 및 지연 특성화 테스트로부터 획득된 결과 데이터는 경로 특성화들 및 존재하는 임의의 이상들을 결정하기 위해 분석된다.
동작(514)에서, 검출된 정보의 일부는 디스플레이 등에 출력될 수 있다. 동작(514) 후에, 프로세스(500)가 종료된다.
테스트 대상인 동일한 경로에서 펄스 전파 및 지연 특성화 테스트들을 실행하는 기능 외에도, 특정한 예시적인 실시예들에서, FPGA들 등과 같은 IC들의 재구성 가능성은 또한 다수의 상이한 방식들로 경로 세그먼트들을 테스트하는 것에 의해 검출을 강화하는 기능(ability)을 제공한다. 특정한 예시적인 실시예들에서, 여러 다른 방식들로 경로 세그먼트를 테스트하는 것은 테스트 대상인 대체 등가 경로들에 경로 세그먼트를 포함하여 수행된다. 이를 구현하기 위한 몇 가지 예시적인 경로 구성들 도 6에 도시되어 있다.
도 6의 IC(600)(예를 들어, FPGA)에 도시된 논리 요소들에 대해 많은 상이한 경로들이 구성될 수 있다. 예를 들어, 신호 경로는 경로가 통과하는 게이트들의 문자들로 표현될 수 있다. 예를 들어, 경로 ABC(즉, 게이트들 A, B 및 C를 포함하는 경로)는 이 경로에 대한 펄스 폭 제한을 결정하는 게이트를 가질 수 있다. 그러나 다른 경로들은 이 제한을 설정하는 경로 ABC의 게이트를 분리(및 식별)하기 위해 사용될 수 있다. 예를 들어, 일반성(generality)을 잃지 않고 경로 ABC에 필요한 최소 펄스 폭이 경로 DEF 및 경로 GHI의 펄스 폭보다 작다고 가정한다. 그런 다음 테스트 경로 AEF는 게이트 A가 경로 ABC에 대한 제한 경우인지 여부를 결정한다. 그렇다면 이 새 경로들의 값은 경로 ABC와 동일한 제한을 가져야 한다. 유사하게, 게이트들의 다른 조합들을 사용하여 지연 측정값들을 결정하고 펄스 폭 제한들을 결정하기 위해 경로 세그먼트들을 분리할 수 있다.
각 경로 세그먼트를 특성화하는 이러한 기능과 IC 논리 패브릭(예를 들어, FPGA 논리 패브릭)의 모든 요소들을 개별적으로 포함하도록 테스트를 재구성하는 기능은 특정한 예시적인 실시예들이 IC 내의 이상 또는 트로이 목마의 상세한 위치를 식별할 수 있게 한다.
도 7은 특정한 예시적인 실시예들에 따른, 도 6과 관련하여 위에서 설명된 이상 식별을 수행하기 위한 예시적인 프로세스(700)를 도시한다. 특정한 예시적인 실시예들에 따르면, 프로세스(700)는 호스트(210) 상에서 실행되는 프로그램(232)에 의해 수행될 수 있다. 재구성 및 테스트는 도 6과 관련하여 설명된 구성을 또한 포함할 수 있는 FPGA(202)와 같은 호스트(210)에 연결된 IC에서 수행될 수 있다. 필요한 구성 정보는 프로그램(232)에 의해 발생되고 구성 정보(230)를 통해 FPGA(202)로 송신될 수 있다.
프로세스(700)에 진입한 후, 동작(702)에서 이상이 존재하는 관심 경로(path of interest)가 식별된다. 관심 경로는 펄스 전파 테스트와 지연 특성화 테스트 대상 하나 또는 모두를 거친 테스트 대상인 경로일 수 있다. 하나 또는 두 가지 유형들의 테스트들에서 관심 경로에 대해 얻은 결과 데이터와 관련하여 이상이 검출되었을 수 있다. 식별된 관심 경로는 펄스 발생기 및/또는 에지 런처에서 펄스 검출기 및/또는 에지 검출기까지의 완전한(complete) 경로이다. 예를 들어, 도 6에서 관심 경로는 ABC일 수 있다.
동작 704에서, 식별된 관심 경로는 다수의 세그먼트들로 분할된다. 세그먼트는 검출된 이상을 유발하는 논리 요소 또는 요소들의 분리 및 식별로 이어질 수 있는 방식으로 식별된다. 따라서, 세그먼트들은 동일하거나 상이한 길이들을 가질 수 있고/있거나 동일하거나 상이한 수 및 유형들의 논리 요소들을 포함할 수 있다. 일 예에서, 각 세그먼트는 하나의 논리 게이트와 하나의 프로그램 가능한 상호연결을 포함한다. 관심 경로 ABC의 선택된 예에서, 각 세그먼트들은 게이트 A만을 포함하는 제1 세그먼트, 게이트 B만을 포함하는 제2 세그먼트, 및 게이트 C만을 포함하는 제3 세그먼트일 수 있다.
동작(706)에서, IC(예를 들어, FPGA)는 다른 경로의 일부와 관심 경로의 세그먼트를 결합하는 새로운 경로를 라우팅하도록 재구성된다. 예를 들어, 새로운 경로는 ABC 경로의 일부를 DEF 경로의 경로와 결합하는 AEF일 수 있다.
동작(708)에서, 펄스 전파 테스트 및 지연 특성화 테스트 대상 하나 또는 둘 모두가 새로운 경로(즉, 테스트 대상인 새로운 경로)에서 실행되고 결과 데이터가 수집된다. 테스트들의 실행 및 데이터 수집은 도 3 및 5와 관련하여 설명된 것과 유사한 방식으로 수행될 수 있다.
동작들(706-708)은 테스트 대상인 다수의 새 경로들에 대해 반복될 수 있다. 예를 들어, 관심 경로의 세그먼트들 각각은 테스트 대상인 적어도 하나의 새로운 경로에 포함될 수 있으므로 이상이 관심 경로의 특정한 세그먼트에 대해 분리되고 식별될 수 있다. 선택된 예에서, 동작들(706-708)은 테스트 AEF, DBF, 및 DEC 하에서 각각의 새로운 경로에 대해 반복될 수 있다.
동작(710)에서, 테스트 대상인 다양한 재구성된 경로들에 대해 획득된 결과 데이터는 이전에 검출된 이상을 관심 경로의 특정 세그먼트로 분리하기 위해 분석된다. 세그먼트들이 적절하게 선택되면 비정상적인 논리 요소를 식별할 수 있다.
동작(712)에서 이상 검출 결과 및 이상 위치 등의 결과를 디스플레이 등에 출력할 수 있다. 동작(712) 후에, 프로세스(700)가 종료된다.
특정한 예시적인 실시예들에서, 전술한 실시예들의 하이브리드 펄스 전파 및 지연 특성화는 기대 값들 또는 소위 "골든 레퍼런스들"을 사용하지 않고 이상들을 검출하도록 추가로 개선될 수 있다. 이와 관련하여, 특정한 예시적인 실시예들은 등가 경로들의 어레이를 측정한 다음 테스트 대상인 IC에서 식별된 체계적 변동을 사용하여 값을 정규화할 수 있다. 동등하게 취급될 수 있도록 값을 정규화하면 이상 검출에 대한 다양한 수학적 접근 방식들을 적용할 수 있다. 또한 골든 레퍼런스들이라고도 하는 미리 결정된 기대 값 없이 트로이 목마 검출을 가능하게 한다. 대신, 기대 값은 정규화된 측정값들의 평균으로 도출된다.
골든 레퍼런스들 없이 동작하는 특정한 예시적인 실시예들은 전체 IC에 동등하게 영향을 미치는 어떠한 변동도 무시할 수 있다. 이러한 글로벌 오프셋들(global offsets)은 다이-투-다이(die-to-die) 변동 또는 테스트의 온도(temperature of the test)일 수도 있다. 이는 결정된 모든 값들을 정규화하고 모든 값들의 이러한 변동을 포함하는 평균 값을 제거하기 때문이다. 이것은 물리적으로 로컬 변동(local variation)이 칩에서 관찰된 글로벌 변동(global variation)보다 작다고 가정함으로써 달성된다.
IC는 여러 위치들로 분할된다. 테스트 대상인 등가 경로는 각 위치에서 테스트된다. 각 위치에 대해 위에 설명된 테스트 대상들 하나의 여러 변동들을 사용하여 이 위치에 대한 평균 값을 설정한다. 그런 다음 이 위치에 대해 수행된 모든 측정값들은 데이터를 정규화하고 이 위치에 대해 관찰된 체계적 변동을 제거하기 위해 이 평균에 의해 조정된다. 사용된 경로들이 정확히 동일할 수 없기 때문에 해당 위치에서 수행된 개별 테스트들은 자체적으로 체계적 변동을 가진다. 그러나 이 변동은 칩의 모든 위치들에서 모든 등가 경로 변동들의 경로 평균을 사용하여 추출될 수 있다. 따라서 이 데이터의 정규화를 제공하기 위해 경로 변동이 제거될 수도 있다. 결과는 동등한 데이터 값들의 어레이다. 이러한 데이터 값들은 그들과 연관된 평균 및 표준 편차를 갖는다. 이상들 또는 트로이 목마는 평균 값에서부터 선택된 분산(selected variance) 이상(above)의 정규화된 값들로 관찰될 수 있다.
접근 방식을 설명하기 위해 이 프로세스의 예가 설명된다. 위치 평균을 추출하기 위해 사용되는 예시적인 논리 구성이 도 8에 도시되어 있다. 이 논리 구성은 동등한 회로 위치들에서 모두 또는 실질적으로 모든 IC에서 복제될 수 있다. 예시 목적들로 사용된 모델은 논리 슬라이스들(804)의 어레이를 가지는 FPGA(800)일 수 있다. 각각의 논리 슬라이스(804)는 테스트 대상 경로(802)를 제공하기에 충분한 룩업 테이블들(look-up tables; LUT)(806)을 포함할 수 있다. 도 8의 예에서 각각의 LUT(806)는 도 4 및 6과 관련하여 위의 설명들에서 논리 게이트의 기능을 제공하는 것으로 간주될 수 있다. 그러나 각 LUT에는 다수의 입력들(808)이 있다. 구체성을 위해, LUT당 6개의 입력들과 슬라이스당 4개의 LUT들의 비제한적인 예가 지정될 수 있다. 정의된 위치는 테스트 대상인 경로의 제1 슬라이스 위치로 간주될 수 있다.
예시된 시나리오에서, 각 테스트는 24번 실행될 수 있다 - 제1 슬라이스(즉, 가장 왼쪽 슬라이스(804))에서 LUT 입력 및 LUT의 선택의 각 조합에 대해 한 번. 참고로 각 입력 및 LUT 조합은 경로 번호 1~24로 분류될(labeled) 수 있다. 제1 슬라이스의 모든 LUT들이 칩의 거의 같은 위치에 있기 때문에 24개의 선택된 경로들은 신호 라우팅의 체계적인 변경(vary)에서만 다르다. 또한 이 24개 경로의 동등한 버전들이 IC의 다른 위치들에서 측정되기 때문에 이러한 체계적 변화를 결정할 수 있다. 각 경로 번호에 대해 IC에서 측정된 이 번호를 가진 모든 경로들은 경로 평균을 생성하기 위해 평균화된다. 그런 다음 이 경로 평균을 각 값에서 빼서 데이터로부터 경로 변동으로 인한 체계적인 변동을 제거한다.
이후 각 위치의 24개 경로들에 대한 조정 데이터의 평균을 사용하여 위치 평균을 추정할 수 있다. 테스트는 위치 평균들의 완전한 세트를 제공하기 위해, 테스트 대상인 경로의 모든 슬라이스들(804)과 IC의 모든(또는 실질적으로 모든) 동등한 위치들에 대해 반복된다.
이 프로세스의 결과로 위치 평균과 경로 평균이 모든 값으로부터 제거되고 골든 레퍼런스 없는 검출(golden reference free detection)에 필요한 정규화된 데이터가 생성되었다.
모든 정규화된 결과 값들은 물리적 위치와의 연관성(association)을 유지하기 때문에, 칩 내에서, 검출된 모든 이상으로부터 직접 상세한 로컬리제이션이 이루어진다.
도 9는 특정한 예시적인 실시예들에 따른, 골든 레퍼런스들을 사용하지 않고 이상들의 검출을 수행하기 위한 프로세스(900)를 도시한다. 특정한 예시적인 실시예들에 따르면, 프로세스(900)는 호스트(210) 상에서 실행되는 프로그램(232)에 의해 수행될 수 있다. 재구성 및 테스트는 도 8과 관련하여 설명된 구성을 또한 포함할 수 있는 FPGA(202)와 같은 호스트(210)에 연결된 IC에서 수행될 수 있다.
프로세스(900)에 진입한 후, 동작(902)에서 IC는 관심 경로가 다수의 슬라이스들에 걸쳐 확장되도록 다수의 논리적 슬라이스들로 분할된다. 도 8은 테스트 대상인 경로(802)가 3개의 개별 슬라이스들(804)로 분할되는 것을 도시한다.
동작(904)에서, IC를 반복적으로 재구성하고, 각각의 다중 논리 요소들(및 각 논리 요소의 다중 입력들 각각)을 각각 포함하는 테스트 대상인 각 경로들에 대해 펄스 전파 테스트 및 지연 특성화 테스트 대상 하나 또는 둘 다를 실행한다. 예를 들어, 반복된 재구성은 펄스 발생기/펄스 검출기 쌍 또는 에지 런처/에지 검출기 쌍이 테스트 대상인 각각의 구성된 경로에 교대로 연결되도록 제공하는 것을 포함할 수 있고, 테스트 대상인 경로는 시간이 지남에 따라 각 슬라이스의 여러 논리 요소들을 활용하도록 재구성된다. 위에서 언급한 바와 같이, 도 8에 도시된 구성에서, 테스트들은 24개의 다른 경로들에 대해 반복되어 제1 슬라이스의 각 논리 요소들의 입력들 각각을 활용한다.
동작(906)에서, 각 테스트 유형에 대한 각 슬라이스에 대한 평균 위치 값은 해당 슬라이스에 대해 반복되는 특정 유형의 테스트의 모든 테스트들에 대한 결과 값의 평균을 계산하는 것에 의해 결정된다. 예를 들어, 도 8에 도시된 예시적인 구성에서, 펄스 전파 테스트를 위한 제1 슬라이스에 대한 위치 값은 제1 슬라이스에 있는 각각의 입력/논리 요소 쌍을 포함하는 모든 24개 경로들의 평균이 될 것이다.
동작(908)에서, 각 경로에 대해, 모든 슬라이스들에 대한 테스트 값들을 평균화하고, 각 경로에 대한 경로 값에서 경로 평균을 뺀다.
동작(910)에서, 정규화된 슬라이스 및 경로 값들에 기초하여 로컬화된 이상들을 결정한다. 이상들 또는 트로이 목마는 평균 값으로부터 미리-선택된 선택된 분산 이상의 정규화된 값으로 관찰될 수 있다.
동작(912)에서, 결과가 출력되고, 그 후에 프로세스(900)가 종료될 수 있다.
도 10은 도 3에 예시된 프로세스(300)의 펄스 전파를 특정한 예시적인 실시예들에 따른 지연 특성화, 다수의 대체 등가 경로들을 테스트하는 것에 의해 비정상적인 경로 세그먼트들을 식별 또는 위치 평균 및 경로 평균의 추출 중 하나 이상과 결합하는 특성화 및 이상 검출을 위한 프로세스(1000)에 대한 흐름도이다.
프로세스(1000)에 진입한 후, 동작(1002)에서 하나 이상의 신호 경로들이 테스트 대상인 경로들로서 결정된다. 테스트 대상인 경로를 선택하는 것은 예를 들어, 도 3에 도시된 동작(302)과 관련하여 위에서 설명된 바와 같이 수행될 수 있다.
동작(1004)에서 펄스 발생기 및 펄스 검출기가 구성되고, 동작(1006)에서 에지 런처 및 에지 검출기가 구성된다. 동작들(1004 및 1006)은 도 3 및 도 5와 관련하여 위에서 설명된 것과 유사한 방식으로 수행될 수 있다.
동작(1008)에서, 테스트들을 실행하기 위해 테스트 대상인 경로의 특정한 구성이 선택된다. 예를 들어, (1) 표준 모드, (2) 예를 들어 도 6에서와 같은 경로 세그먼트 테스트 모드, 또는 (3) 예를 들어 도 8에서와 같은 경로 슬라이스 테스트 모드 중 하나가 선택된다. 표준 모드에서, 테스트 대상 경로는 펄스 발생기/에지 런처에서 펄스 검출기/에지 검출기로 확장되도록 도 1 및 4에서와 같이 구성된다. 경로 세그먼트 테스트 모드에서, 특정한 신호 경로는 신호 경로를 다중 세그먼트들로 분해하고 도 6과 관련하여 설명된 것과 같은 개별 조합들로 세그먼트들을 테스트함으로써 테스트된다. 경로 슬라이스 테스트 모드에서, 테스트 대상인 선택된 경로는 도 8과 관련하여 도시된 바와 같이 IC를 슬라이스하고 개별 슬라이스들을 테스트함으로써 테스트된다.
동작(1010)에서, 펄스 발생기 및 펄스 검출기는 테스트 대상 경로에 연결된다. 펄스들의 시퀀스는 테스트 대상인 하나 이상의 경로들을 통해 펄스 발생기에서 펄스 검출이기로 송신된다. 예를 들어, 펄스 발생기(104)는 테스트 대상인 경로들(102)을 통해 가변 펄스 폭들을 가지는 신호들의 시퀀스를 송신한다. 송신된 신호들은 테스트 대상인 경로(즉, 테스트 대상인 경로를 따라 각 논리 요소 및 네트를 통해)를 통해 전파되고 테스트 대상인 경로(102)를 통해 전파된 후 펄스 검출기(106)에서 수신된다.
동작(1012)에서, 에지 발생기 및 에지 검출기가 테스트 대상인 경로에 연결된다. 테스트 대상인 경로를 통해 복수의 에지들이 발생되고 전파된다.
동작(1014)에서 펄스 검출기 및/또는 에지 검출기에서 검출된 신호들이 분석된다. 분석은 테스트 대상인 경로들(102)에 있는 경로들 중 하나 이상의 특성화를 산출할 수 있다. 분석은 또한 하나 이상의 신호 경로들에서 이상들을 검출하는 기능을 제공할 수 있다. 위에서 설명된 바와 같이, 특정한 예시적인 실시예들은 테스트 대상인 경로를 따라 논리 요소들을 통해 전파할 수 있는 펄스 폭을 사용한다. 경로의 논리 게이트에 추가 용량성 부하는 게이트를 통한 연속적인 전파에 필요한 펄스 폭을 증가시키므로, 테스트 대상인 경로를 통해 전파되는 펄스 폭 분포의 특성화는 변경 및/또는 추가 논리를 논리 게이트에 부착하는 것을 검출할 수 있다. 특정한 예시적인 실시예들에서, 특성화 및 이상 검출은 테스트 대상인 경로의 각 신호 경로를 따라 다양한 논리 요소들의 각 유형의 최소 펄스 폭 임계값들(예: 용량성 임계값들에 대응하는 펄스 폭), 알려진 송신 펄스 시퀀스, 테스트 대상인 선택된 경로 및 검출된 펄스 시퀀스에 기초할 수 있다. 임계값들은 사전에 알려지지 않은 테스트 데이터에서 결정되므로 골든 참조 없이 작동할 수 있다. FPGA에서 이상들을 검출하기 위한 접근 방식의 한 변동 예가 아래에 설명되어 있다. 회로 등가 경로들의 어레이는 FPGA 전체에 분산되어 있다. 전체적으로 FPGA에서 테스트할 모든 요소를 포함하는 이러한 어레이들의 세트가 발견된다. 각 어레이의 각 PUT에 대해 테스트는 도 8에 표시된 대로 PUT를 펄스 발생기/에지 런처 및 펄스 검출기/에지 검출기와 결합하여 구성된다. 앞에서 설명한 측정 방법을 사용하여 어레이의 각 PUT에 대해 로우 최소 펄스 폭(raw minimum pulse-width)/지연 값이 결정된다.
검출에 앞서, 도 9에 도시된 바와 같이 로컬 평균들을 결정하기 위해 경로 변동 테스트를 포함하는 추가 테스트들을 통해 로우 데이터를 정규화한다. 어레이의 각 포인트는 이전에 설명된 바와 같이 결정된 다른 로컬 평균 및 로컬 경로 평균들을 경험할 수 있다. 이 값들은 수집된 데이터의 정규화를 제공하기 위해 각 PUT에서 수집된 로우 값들에서 뺀다.
마지막으로, 어레이 측정값들에 의해 생성된 정규화된 값들의 세트에 대한 평균 및 표준 편차가 계산된다. 지정된 수 이상의 표준 편차들만큼 이 평균과 다른 개별 값들은 해당 어레이 위치에서 IC의 이상을 나타낸다.
동작(1016)에서, 결정이 출력된다. 예를 들어, 프로그램(232) 등은 디스플레이 인터페이스(226)에 부착된 디스플레이에 결과를 출력할 수 있다. 출력은 송신된 펄스 시퀀스의 식별 및/또는 설명, 펄스 검출기에서 검출된 펄스 시퀀스에 관한 정보, 검출된 펄스 폭 특성들, 테스트 대상인 경로의 하나 이상의 신호 경로들에 대한 식별 및/또는 설명을 나타낼 수 있다. 동작(1018) 후에, 프로세스(1000)는 종료된다.
특정한 예시적인 실시예들은 예를 들어 FPGA들 및 적절하게 설계된 ASIC 장치들과 같은 IC의 상세한 특성화를 제공한다. 이 특성화의 제품들은 여러 중요한 애플리케이션들에 사용될 수 있다. 비정상적인 값을 검출하는 기능은 하드웨어 트로이 목마 검출, 구성요소 결함들을 검출 및 하나 이상의 예시적인 실시예들에 의해 검출 가능한 이상들을 나타내는 측정 장치 노후화에 응용할 수 있다.
또한, 장치 및/또는 회로의 특정한 부품에서, 변동에 대한 증가된 이해는 변동 인식 설계 관행들(variation aware design practices)을 가능하게 하고, 전력 소비들(power consumption)에 대한 더 나은 추정들을 제공하고, 설계 타이밍 분석을 위한 더 나은 추정들을 제공하고, 물리적으로 복제할 수 없는 장치들(physically uncloneable devices)을 생산하기 위해 사용될 수 있다.
전통적으로 사용되는 통계적인 평균들 대신, 예시적인 실시예들에 의해 제공되는 바와 같이 부품의 각 포인트에서의 커패시턴스 및 지연에 대한 증가된 지식은 설계자들이 더 빠른 경로들을 선택적으로 선택함으로써 설계 성능을 최적화하거나 더 낮은 커패시턴스 네트들을 선택함으로써 전력 사용을 최적화할 수 있게 할 수 있다.
또한, 예시적인 실시예들은 부품의 체계적인 변동을 추출하기 때문에, 이 과정 후에 남는 것은 측정된 특정한 부품에서 관찰된 변동의 더 강한 척도이다. 즉, 결과는 부품에서 물리적으로 복제할 수 없는 기능 생성에 기여할 수 있는 부품 인스턴스에 고유한 정보이다. 이 고유한 정보는 동일한 부품 인스턴스를 재측정하여 해당 인스턴스에서만 재현 가능한(reproducible) 기능을 시연해야만 재생산할 수 있다.
특정한 예시적인 실시예들은 예를 들어 트로이 목마 검출과 같은 하드웨어 보증을 위해 사용될 수 있다. 다른 용도들로는 신뢰성 검출, 노후화, 결함 검출, 포렌식 등이 있다. 물리적 복제 불가능 기능(Physical uncloneable function; PUF), 고유 ID 생성, 변동 인식 설계 관행(variation-aware design practices) 및 타이밍/전력 분석(timing/power analysis)은 특정한 예시적인 실시예들에 의해 제공되는 다른 기능들이다.
본 명세서에서 사용되는 바와 같이, 시스템, 서브시스템, 서비스, 프로그래밍된 논리 회로 등의 용어들은 소프트웨어, 하드웨어, 펌웨어 등의 임의의 적절한 조합으로서 구현될 수 있음을 이해할 것이다. 본 명세서의 저장 위치들은 디스크 드라이브 장치, 메모리 위치, 솔리드 스테이트 드라이브, CD-ROM, DVD, 테이프 백업, 저장 영역 네트워크(storage area network; SAN) 시스템, 및/또는 임의의 다른 적절한 유형의 컴퓨터 판독 가능 저장 매체의 임의의 적절한 조합일 수 있다는 것이 이해될 것이다. 또한, 여기에 설명된 기술들은 프로세서(예를 들어, 중앙 처리 장치(CPU) 또는 특수 프로세서)가 컴퓨터 판독 가능 저장 매체에 유형적으로 저장될 수 있는 명령어들을 실행하게 함으로써 달성될 수 있다는 것이 이해될 것이다.
본 발명이 현재 가장 실용적이고 바람직한 실시예로 간주되는 것과 관련하여 설명되었지만, 본 발명은 개시된 실시예에 제한되지 않고, 반대로 첨부된 청구범위의 사상 및 범위 내에 포함된 다양한 변경들 및 등가 어레이들을 포함하도록 의도된 것으로 이해되어야 한다.

Claims (32)

  1. 회로를 특성화 및/또는 테스트하기 위한 시스템에 있어서,
    상기 회로에 포함되고, 상기 회로 내의 적어도 하나의 능동 신호 경로의 신호 입력 포인트에 연결되고, 상기 적어도 하나의 능동 신호 경로를 통한 전파를 위해 가변 펄스 폭들의 펄스들의 시퀀스를 발생하도록 구성된 펄스 발생기; 및
    상기 회로에 포함되고, 상기 적어도 하나의 능동 신호 경로의 신호 출력 포인트에 연결되고, 상기 적어도 하나의 능동 신호 경로를 통해 전파되는 펄스들의 시퀀스 내의 각 펄스들을 검출하도록 구성된 펄스 검출기
    를 포함하는 시스템.
  2. 제1항에 있어서,
    상기 펄스 발생기는,
    상기 시퀀스 내의 각 펄스들의 펄스 폭들이 미리 결정된 분포에 따라 변경되도록 가변 폭들의 펄스들을 상기 시퀀스에 포함하도록 더 구성되는,
    시스템.
  3. 제2항에 있어서,
    프로세서를 더 포함하고,
    상기 프로세서는 상기 미리 결정된 분포 및 상기 검출된 펄스들에 기초하여 상기 적어도 하나의 신호 경로를 특성화하도록 구성되는,
    시스템.
  4. 제3항에 있어서,
    상기 특성화는,
    상기 발생된 펄스들의 시퀀스에 기초하여 상기 시퀀스의 펄스로부터 상기 특성 펄스 폭보다 작은 폭을 가지는 펄스가 상기 펄스 검출기로 전파되지 않고, 상기 특성 폭 이상의 폭을 가지는 펄스가 상기 펄스 검출기로 전파되도록 특성 펄스 폭을 결정하는 것을 포함하는,
    시스템.
  5. 제3항에 있어서,
    상기 프로세서는,
    검출된 펄스들의 펄스 폭에 기초하여 상기 적어도 하나의 능동 신호 경로에서 회로 용량성 부하의 차이들을 검출하도록 더 구성되는,
    시스템.
  6. 제3항 또는 제4항에 있어서,
    상기 프로세서는,
    상기 적어도 하나의 능동 신호 경로에서 회로 용량성 부하의 차이들, 상기 적어도 하나의 능동 신호 경로에서 하나 이상의 논리 게이트들의 형태 변경들 및/또는 상기 적어도 하나의 능동 신호 경로에서 회로 노후화의 변경들을 검출하도록 더 구성되는,
    시스템.
  7. 제2항 내지 제6항 중 어느 한 항에 있어서,
    상기 회로에서, 상기 적어도 하나의 능동 신호 경로의 하나 이상의 요소들은,
    특성 펄스 폭보다 큰 펄스 폭을 가지는 펄스들을 증폭하고 상기 특성 펄스 폭보다 작은 폭을 가지는 펄스들을 감쇠시키는,
    시스템.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    필드 프로그램 가능 게이트 어레이(FPGA) 를 더 포함하고,
    상기 FPGA는 상기 회로를 포함하는,
    시스템.
  9. 제8항에 있어서,
    상기 펄스 발생기, 상기 펄스 검출기 및 상기 적어도 하나의 능동 신호 경로는,
    전적으로 상기 FPGA 상에 위치한 디지털 논리를 포함하는,
    시스템.
  10. 제1항 내지 제7항 중 어느 한 항에 있어서,
    주문형 집적 회로(ASIC)를 더 포함하고,
    상기 ASIC은 상기 회로를 포함하는,
    시스템.
  11. 제1항 내지 제7항 중 어느 한 항에 있어서
    상기 회로는,
    상기 회로 내의 모든 논리 요소, 네트 및 프로그램 가능한 상호연결 포인트들이 상기 펄스 발생기와 상기 펄스 검출기 사이의 능동 신호 경로에 포함되도록 재프로그램 가능한,
    시스템.
  12. 제1항 내지 제11항 중 어느 한 항에 있어서,
    상기 펄스 검출기는,
    수신된 펄스들의 수를 카운트하기 위해 플립-플롭 장치의 에지 검출 기능들을 사용하도록 더 구성되는,
    시스템.
  13. 제12항에 있어서,
    리플 카운터 내의 상기 제1 플립-플롭 장치는,
    에지 검출을 위해 사용되는,
    시스템.
  14. 제1항 내지 제13항 중 어느 한 항에 있어서,
    상기 펄스 발생기는, 상기 회로의 온-칩 클록 발생 회로에 의해 발생된 두 클록 신호들을 논리적으로 결합하여 펄스들을 발생시키도록 더 구성되고,
    상기 두 클록 신호들은, 다른 클록 주파수들을 가짐으로써 각 클록 주기(clock period)가 상기 논리적 결합으로부터 다른 펄스 폭을 발생시키도록 하는,
    시스템.
  15. 제14항에 있어서,
    상기 펄스 발생기는,
    상기 논리적으로 결합된 클록들의 주파수들의 차이를 변경하는 것에 의해 상기 시퀀스의 상기 각 펄스들의 상기 펄스 폭들을 제어하도록 더 구성된,
    시스템.
  16. 제14항 또는 제15항에 있어서,
    상기 펄스 발생기는,
    두 극단들 사이에서 고정된 양만큼 증가 및 감소 사이에서 교대하는 상기 시퀀스의 펄스들의 상기 폭들을 변경하도록 더 구성되는,
    시스템.
  17. 제1항 내지 제16항 중 어느 한 항에 있어서,
    상기 회로에 포함된 하나 이상의 지연 측정 회로들을 더 포함하고,
    상기 지연 측정 회로들은 상기 적어도 하나의 능동 신호 경로에서 상기 지연을 측정하도록 구성되는,
    시스템.
  18. 제17항에 있어서,
    상기 지연 측정 회로들은,
    상기 적어도 하나의 능동 신호 경로 상의 신호의 런치와 검출 사이의 시간의 검출을 제공하도록 구성된 에지 런치 회로 및 에지 캡처 회로를 포함하는,
    시스템.
  19. 제18항에 있어서,
    상기 회로는,
    상기 펄스 발생기 및 상기 에지 런치 회로가 상기 적어도 하나의 능동 신호 경로를 통해 송신할 수 있도록 교대로 재구성이 가능한 것인,
    시스템.
  20. 제19항에 있어서,
    상기 적어도 하나의 능동 신호 경로는, 다수의 경로 세그먼트들을 포함하고,
    상기 회로는. 상기 적어도 하나의 능동 신호 경로의 모든 세그먼트들보다 적은 세그먼트들을 포함하는 대체 경로들을 통해 상기 펄스 발생기 또는 상기 에지 런치 회로로부터 신호들을 전파하도록 더 재구성 가능한 것인,
    시스템.
  21. 제20항에 있어서,
    상기 프로세서는 상기 펄스 검출기 및/또는 상기 에지 검출기에서 검출된 신호들에 기초하여 상기 회로의 비정상적인 요소들을 식별하도록 더 구성되고,
    상기 검출된 신호들은 상기 적어도 하나의 능동 신호 경로를 통해 전파되는 신호들 및 상기 대체 경로들을 통해 전파되는 신호들을 포함하는,
    시스템.
  22. 제18항에 있어서,
    상기 회로는, 상기 회로 상에 선택된 위치의 다수의 요소들이 상기 경로들 각각에 교대로 포함되도록 상기 펄스 발생기와 상기 에지 런처가 신호 경로들을 따라 신호들을 송신할 수 있도록 재구성이 가능하고,
    상기 프로세서는. 신호 경로들을 따라 송신된 상기 신호들로부터 검출된 데이터에 기초하여 테스트 대상인 경로에 대한 기대 값 및 상기 선택된 위치에 대한 하나 이상의 기대 값들을 결정하도록 더 구성되는,
    시스템.
  23. 회로를 특성화 및/또는 테스트하기 위한 방법에 있어서,
    상기 회로에 펄스 발생기를 구성하는 단계 - 상기 펄스 발생기는 상기 회로 내의 적어도 하나의 능동 신호 경로의 신호 입력 포인트에 연결되고 상기 적어도 하나의 능동 신호 경로를 통한 전파를 위해 가변 펄스 폭들의 펄스들의 시퀀스를 발생시키도록 구성됨 -; 및
    상기 회로에 펄스 검출기를 구성하는 단계 - 상기 펄스 검출기는 상기 적어도 하나의 능동 신호 경로의 신호 출력 포인트에 연결되고, 상기 적어도 하나의 능동 신호 경로를 통해 전파되는 펄스들의 상기 시퀀스 내의 각 펄스들을 검출하도록 구성됨 -
    를 포함하는,
    방법.
  24. 제23항에 있어서,
    상기 적어도 하나의 능동 신호 경로 상의 신호 검출과 런치 사이의 지연 검출을 제공하도록 상기 회로 상의 에지 런치 회로 및 에지 캡처 회로를 구성하는 단계; 및
    상기 펄스 발생기 및 상기 에지 런치 회로가 상기 적어도 하나의 능동 신호 경로를 통해 송신할 수 있도록 상기 회로를 반복적으로 재구성하는 단계
    를 더 포함하는,
    방법.
  25. 제23항에 있어서,
    상기 적어도 하나의 능동 신호 경로의 모든 세그먼트들보다 적은 세그먼트들을 포함하는 대체 경로들을 통해 상기 펄스 발생기 또는 상기 에지 런치 회로로부터 신호들을 전파하도록 상기 회로를 재구성하는 단계를 더 포함하는,
    방법.
  26. 제25항에 있어서,
    상기 펄스 검출기 및/또는 상기 에지 검출기에서 검출된 신호들에 기초하여 상기 회로의 비정상적인 요소들을 식별하는 단계를 더 포함하고,
    상기 검출된 신호들은 상기 적어도 하나의 능동 신호 경로를 통해 전파되는 신호들 및 상기 대체 경로들을 통해 전파되는 신호들을 포함하는,
    방법.
  27. 제25항에 있어서,
    상기 회로 상에 선택된 위치의 다수의 요소들이 상기 신호 경로들 각각에 교대로 포함되도록 상기 펄스 발생기와 상기 에지 런치 회로가 신호 경로들을 따라 신호들을 송신할 수 있도록 상기 회로를 반복적으로 재구성하는 단계; 및
    상기 신호 경로들을 따라 송신된 상기 신호들로부터 검출된 데이터에 기초하여 테스트 대상인 경로에 대한 기대 값 및 상기 선택된 위치에 대한 하나 이상의 기대 값들을 결정하는 단계
    를 더 포함하는,
    방법.
  28. 명령어들이 저장된 비-일시적인 컴퓨터-판독 가능 저장 매체에 있어서, 상기 명령어들은 컴퓨터의 적어도 하나의 프로세서에 의해 실행되는 경우에 컴퓨터가,
    회로에 펄스 발생기를 구성하는 단계 - 상기 펄스 발생기는 상기 회로 내의 적어도 하나의 능동 신호 경로의 신호 입력 포인트에 연결되고 상기 적어도 하나의 능동 신호 경로를 통한 전파를 위해 가변 펄스 폭들의 펄스들의 시퀀스를 발생시키도록 구성됨 -; 및
    상기 회로에 펄스 검출기를 구성하는 단계 - 상기 펄스 검출기는 상기 적어도 하나의 능동 신호 경로의 신호 출력 포인트에 연결되고, 상기 적어도 하나의 능동 신호 경로를 통해 전파되는 펄스들의 상기 시퀀스 내의 각 펄스들을 검출하도록 구성됨 -
    를 포함하는 동작을 수행하게 하는 비-일시적인 컴퓨터-판독 가능 저장 매체.
  29. 제28항에 있어서,
    상기 동작들은,
    상기 적어도 하나의 능동 신호 경로 상의 신호 검출과 런치 사이의 지연 검출을 제공하도록 상기 회로 상의 에지 런치 회로 및 에지 캡처 회로를 구성하는 단계; 및
    상기 펄스 발생기 및 상기 에지 런치 회로가 상기 적어도 하나의 능동 신호 경로를 통해 송신할 수 있도록 상기 회로를 반복적으로 재구성하는 단계
    를 더 포함하는,
    비-일시적인 컴퓨터-판독 가능 저장 매체.
  30. 제29항에 있어서,
    상기 동작들은,
    상기 적어도 하나의 능동 신호 경로의 모든 세그먼트들보다 적은 세그먼트들을 포함하는 대체 경로들을 통해 상기 펄스 발생기 또는 상기 에지 런치 회로로부터 신호들을 전파하도록 상기 회로를 재구성하는 단계를 더 포함하는,
    비-일시적인 컴퓨터-판독 가능 저장 매체.
  31. 제30항에 있어서,
    상기 동작들은,
    상기 펄스 검출기 및/또는 상기 에지 검출기에서 검출된 신호들에 기초하여 상기 회로의 비정상적인 요소들을 식별하는 단계를 더 포함하고,
    상기 검출된 신호들은 상기 적어도 하나의 능동 신호 경로를 통해 전파되는 신호들 및 상기 대체 경로들을 통해 전파되는 신호들을 포함하는,
    비-일시적인 컴퓨터-판독 가능 저장 매체.
  32. 제30항에 있어서,
    상기 동작들은,
    상기 회로 상에 선택된 위치의 다수의 요소들이 상기 신호 경로들 각각에 교대로 포함되도록 상기 펄스 발생기와 상기 에지 런치 회로가 신호 경로들을 따라 신호들을 송신할 수 있도록 상기 회로를 반복적으로 재구성하는 단계; 및
    상기 신호 경로들을 따라 송신된 상기 신호들로부터 검출된 데이터에 기초하여 테스트 대상인 경로에 대한 기대 값 및 상기 선택된 위치에 대한 하나 이상의 기대 값들을 결정하는 단계
    를 더 포함하는,
    비-일시적인 컴퓨터-판독 가능 저장 매체.
KR1020217036434A 2019-04-15 2020-04-09 집적 회로들의 이상 검출 및 특성화를 위한 시스템 및/또는 방법 KR102399629B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020227007671A KR20220035277A (ko) 2019-04-15 2020-04-09 집적 회로들의 이상 검출 및 특성화를 위한 시스템 및/또는 방법

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/384,188 US11092648B2 (en) 2019-04-15 2019-04-15 Systems and/or methods for anomaly detection and characterization in integrated circuits
US16/384,188 2019-04-15
PCT/US2020/027433 WO2021002914A2 (en) 2019-04-15 2020-04-09 Systems and/or methods for anomaly detection and characterization in integrated circuits

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020227007671A Division KR20220035277A (ko) 2019-04-15 2020-04-09 집적 회로들의 이상 검출 및 특성화를 위한 시스템 및/또는 방법

Publications (2)

Publication Number Publication Date
KR20210153079A true KR20210153079A (ko) 2021-12-16
KR102399629B1 KR102399629B1 (ko) 2022-05-19

Family

ID=70289565

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020217036434A KR102399629B1 (ko) 2019-04-15 2020-04-09 집적 회로들의 이상 검출 및 특성화를 위한 시스템 및/또는 방법
KR1020227007671A KR20220035277A (ko) 2019-04-15 2020-04-09 집적 회로들의 이상 검출 및 특성화를 위한 시스템 및/또는 방법

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020227007671A KR20220035277A (ko) 2019-04-15 2020-04-09 집적 회로들의 이상 검출 및 특성화를 위한 시스템 및/또는 방법

Country Status (6)

Country Link
US (2) US11092648B2 (ko)
EP (1) EP3726232A1 (ko)
KR (2) KR102399629B1 (ko)
CA (1) CA3137069C (ko)
TW (2) TWI759717B (ko)
WO (1) WO2021002914A2 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109856525A (zh) * 2018-11-07 2019-06-07 宁波大学 一种基于查找表的电路老化检测传感器
US11092648B2 (en) * 2019-04-15 2021-08-17 Grammatech, Inc. Systems and/or methods for anomaly detection and characterization in integrated circuits
EP3977325A4 (en) * 2019-05-24 2023-06-21 University of Cincinnati SYSTEMS AND METHODS FOR ASYNCHRONOUS PROGRAMMABLE GATE ARRAY DEVICES
US20210286881A1 (en) * 2020-03-10 2021-09-16 University Of South Florida Graph-Based Approach Towards Hardware Trojan Vulnerability Analysis

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4829521A (en) * 1987-09-11 1989-05-09 The United States Of America As Represented By The Secretary Of The Navy Test circuit for detecting short duration pulses
US5436853A (en) * 1991-07-24 1995-07-25 Nec Corporation Remote control signal processing circuit for a microcomputer
US20030002575A1 (en) * 1998-11-09 2003-01-02 Agazzi Oscar E. Multi-pair gigabit ethernet transceiver
KR20040088842A (ko) * 2003-04-12 2004-10-20 삼성전자주식회사 동기 신호 보상 장치 및 방법
US20050127894A1 (en) * 2003-12-10 2005-06-16 Wyatt Perry M. Method and apparatus for measuring jitter
KR20080005925A (ko) * 2005-03-18 2008-01-15 이너팩 테크놀로지 인코포레이티드 집적 회로 테스트 모듈
US20090271134A1 (en) * 2008-04-28 2009-10-29 Manjul Bhushan Methods and Apparatus for Determining a Switching History Time Constant in an Integrated Circuit Device
KR20100027191A (ko) * 2007-07-02 2010-03-10 마이크론 테크놀로지, 인크. 데이터 전송 시스템에서 유용한 분수 레이트 결정 피드백 이퀄라이제이션
US20140347088A1 (en) * 2013-05-24 2014-11-27 Mentor Graphics Corporation Method and Circuit Of Pulse-Vanishing Test
US20160202300A1 (en) * 2013-04-10 2016-07-14 Texas Instruments Incorporated Controlling clock measurement with transistors, capacitor, opamp, adc, external enable
KR20160109587A (ko) * 2015-03-12 2016-09-21 협진커넥터(주) 프로브 핀
KR20180061560A (ko) * 2016-11-29 2018-06-08 삼성전자주식회사 통신 환경에 의존하여 지연을 조절하는 전자 회로
US20200326373A1 (en) * 2019-04-15 2020-10-15 Grammatech, Inc. Systems and/or methods for anomaly detection and characterization in integrated circuits

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0119300D0 (en) 2001-08-08 2001-10-03 Koninkl Philips Electronics Nv Delay fault test circuitry and related method
GB0330076D0 (en) 2003-12-27 2004-02-04 Koninkl Philips Electronics Nv Delay fault test circuitry and related method
TWI443802B (zh) * 2010-06-22 2014-07-01 Nat Univ Tsing Hua 三維晶片之突波型態層識別編號檢測器及其方法
US8386990B1 (en) 2010-12-07 2013-02-26 Xilinx, Inc. Unique identifier derived from an intrinsic characteristic of an integrated circuit
US8850608B2 (en) 2011-03-07 2014-09-30 University Of Connecticut Embedded ring oscillator network for integrated circuit security and threat detection
US9081991B2 (en) 2011-03-23 2015-07-14 Polytechnic Institute Of New York University Ring oscillator based design-for-trust
CN102592068B (zh) 2011-09-05 2018-04-27 工业和信息化部电子第五研究所 采用功耗分析检测fpga芯片中恶意电路的方法及其系统
US8612815B2 (en) * 2011-12-16 2013-12-17 International Business Machines Corporation Asynchronous circuit with an at-speed built-in self-test (BIST) architecture
US20140103344A1 (en) 2012-03-12 2014-04-17 Mohammad Tehranipoor Detection of recovered integrated circuits
WO2014003792A1 (en) * 2012-06-29 2014-01-03 Intel Corporation Pulsed testing of through-body-vias
FR3017467A1 (fr) 2014-02-07 2015-08-14 Commissariat Energie Atomique Procede de caracterisation du fonctionnement d’un circuit electronique numerique et circuit electronique numerique
CN204166321U (zh) * 2014-10-08 2015-02-18 上海雷尼威尔技术有限公司 用于安全装置的输入回路脉冲检测电路
US10872140B2 (en) 2015-05-22 2020-12-22 Power Fingerprinting Inc. Methods and apparatuses for validating supply chain for electronic devices using side-channel information in a signature analysis
CN207075112U (zh) * 2017-06-13 2018-03-06 郑州兰盾电子有限公司 一种电子围栏主机
CN108061848B (zh) 2017-12-06 2019-12-10 武汉万集信息技术有限公司 基于fpga的加法进位链延时的测量方法及系统

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4829521A (en) * 1987-09-11 1989-05-09 The United States Of America As Represented By The Secretary Of The Navy Test circuit for detecting short duration pulses
US5436853A (en) * 1991-07-24 1995-07-25 Nec Corporation Remote control signal processing circuit for a microcomputer
US20030002575A1 (en) * 1998-11-09 2003-01-02 Agazzi Oscar E. Multi-pair gigabit ethernet transceiver
KR20040088842A (ko) * 2003-04-12 2004-10-20 삼성전자주식회사 동기 신호 보상 장치 및 방법
US20050127894A1 (en) * 2003-12-10 2005-06-16 Wyatt Perry M. Method and apparatus for measuring jitter
KR20080005925A (ko) * 2005-03-18 2008-01-15 이너팩 테크놀로지 인코포레이티드 집적 회로 테스트 모듈
KR20100027191A (ko) * 2007-07-02 2010-03-10 마이크론 테크놀로지, 인크. 데이터 전송 시스템에서 유용한 분수 레이트 결정 피드백 이퀄라이제이션
US20090271134A1 (en) * 2008-04-28 2009-10-29 Manjul Bhushan Methods and Apparatus for Determining a Switching History Time Constant in an Integrated Circuit Device
US20160202300A1 (en) * 2013-04-10 2016-07-14 Texas Instruments Incorporated Controlling clock measurement with transistors, capacitor, opamp, adc, external enable
US20140347088A1 (en) * 2013-05-24 2014-11-27 Mentor Graphics Corporation Method and Circuit Of Pulse-Vanishing Test
KR20160109587A (ko) * 2015-03-12 2016-09-21 협진커넥터(주) 프로브 핀
KR20180061560A (ko) * 2016-11-29 2018-06-08 삼성전자주식회사 통신 환경에 의존하여 지연을 조절하는 전자 회로
US20200326373A1 (en) * 2019-04-15 2020-10-15 Grammatech, Inc. Systems and/or methods for anomaly detection and characterization in integrated circuits

Also Published As

Publication number Publication date
CA3137069A1 (en) 2021-01-07
CA3137069C (en) 2023-09-26
TW202101268A (zh) 2021-01-01
US20200326373A1 (en) 2020-10-15
WO2021002914A3 (en) 2021-02-11
US20220050140A1 (en) 2022-02-17
TW202223710A (zh) 2022-06-16
WO2021002914A2 (en) 2021-01-07
KR20220035277A (ko) 2022-03-21
US11092648B2 (en) 2021-08-17
EP3726232A1 (en) 2020-10-21
US11686770B2 (en) 2023-06-27
KR102399629B1 (ko) 2022-05-19
TWI759717B (zh) 2022-04-01

Similar Documents

Publication Publication Date Title
KR102399629B1 (ko) 집적 회로들의 이상 검출 및 특성화를 위한 시스템 및/또는 방법
Hoque et al. Golden-free hardware Trojan detection with high sensitivity under process noise
US9081991B2 (en) Ring oscillator based design-for-trust
Zhang et al. RON: An on-chip ring oscillator network for hardware Trojan detection
US7917319B2 (en) Systems and methods for testing and diagnosing delay faults and for parametric testing in digital circuits
Jin et al. Real-time trust evaluation in integrated circuits
Gnad et al. Checking for electrical level security threats in bitstreams for multi-tenant FPGAs
Moein et al. Classification of hardware trojan detection techniques
Nejat et al. A study on the efficiency of hardware Trojan detection based on path-delay fingerprinting
Cao et al. Cluster-based distributed active current timer for hardware Trojan detection
Zhang et al. A study on the effectiveness of Trojan detection techniques using a red team blue team approach
US20170285104A1 (en) Identification of unknown sources for logic built-in self test in verification
Hoque et al. Assessment of NAND based ring oscillator for hardware Trojan detection
Liu et al. A statistical test generation based on mutation analysis for improving the hardware Trojan detection
Jacob et al. Detection of malicious circuitry using transition probability based node reduction technique
Di Natale et al. Hidden-delay-fault sensor for test, reliability and security
Lecomte et al. On-chip fingerprinting of IC topology for integrity verification
US11894848B2 (en) Register circuit with detection of data events, and method for detecting data events in a register circuit
US20220178996A1 (en) Diagnostic enhancement for multiple instances of identical structures
Paseman et al. Towards a cost-effective hardware trojan detection methodology
Mahmud et al. An extensible evaluation platform for FPGA bitstream obfuscation security
Bell et al. A multi-parameter functional side-channel analysis method for hardware trust verification
Kiran et al. Hardware Trojan self-detector
Tiwari et al. An Efficient Approach for Hardware Trojan Detection Based on Side-Channel Analysis
Nirmala Devi et al. Detection of Malicious Circuitry Using Transition Probability Based Node Reduction Technique

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
A107 Divisional application of patent
E701 Decision to grant or registration of patent right
GRNT Written decision to grant