KR20150087227A - 반도체 장치 검사 환경에서의 디버깅 - Google Patents

반도체 장치 검사 환경에서의 디버깅 Download PDF

Info

Publication number
KR20150087227A
KR20150087227A KR1020157012641A KR20157012641A KR20150087227A KR 20150087227 A KR20150087227 A KR 20150087227A KR 1020157012641 A KR1020157012641 A KR 1020157012641A KR 20157012641 A KR20157012641 A KR 20157012641A KR 20150087227 A KR20150087227 A KR 20150087227A
Authority
KR
South Korea
Prior art keywords
debug
dut
tester
instruction
test
Prior art date
Application number
KR1020157012641A
Other languages
English (en)
Other versions
KR102104915B1 (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 테라다인 인코퍼레이티드
Publication of KR20150087227A publication Critical patent/KR20150087227A/ko
Application granted granted Critical
Publication of KR102104915B1 publication Critical patent/KR102104915B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/273Tester hardware, i.e. output processing circuits
    • G06F11/2733Test interface between tester and unit under test
    • 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/26Testing of individual semiconductor devices
    • G01R31/2601Apparatus or methods therefor
    • 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/2832Specific tests of electronic circuits not provided for elsewhere
    • G01R31/2834Automated test systems [ATE]; using microprocessors or computers
    • 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/31705Debugging aspects, e.g. using test circuits for debugging, using dedicated debugging test circuits
    • 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/31707Test strategies
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2294Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by remote test
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/263Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Software Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)

Abstract

친숙한 고객 코드를 사용하여 피검사 장치(DUT)의 실시간 쌍방향 디버깅을 실현하는 검사 시스템. 변환 모듈은 디버그 명령을, 사용자 입력에 상응하여, 검사기 내의 기기에 의해 인식가능한 포맷으로 실시간으로 포맷팅할 수 있다. 상기 사용자 입력은 고레벨 프로그래밍 언어로 기록된 검사 프로그램 또는 검사 명령어일 수 있다. 이러한 변환 모듈은 검사기가 DUT의 서브시스템을 검사하기 위해 DUT 내의 프로세서에 제어 신호를 인가할 수 있다는 사실에 기초하여, 사용자의 디버그 명령을 보다 낮은 레벨의 검사 기기 명령으로 변환할 수 있다. 이러한 검사의 결과는 실시간으로 다른 디버그 명령을 포맷팅하거나 이러한 결과의 표시를 사용자에게 제공할 수 있는 변환 모듈에 제공될 수 있다. 따라서, 이러한 변환 모듈에 의해 사용자는 DUT를 디버깅하는 쌍방향 방식으로 친숙한 고객 코드를 단계를 밟아가며 수정할 수 있다.

Description

반도체 장치 검사 환경에서의 디버깅{DEBUGGING IN A SEMICONDUCTOR DEVICE TEST ENVIRONMENT}
본 발명은 일반적으로 시스템온칩 반도체 장치와 같은 전자 시스템의 검사에 관한 것이다.
많은 타입의 전자 피검사 장치(DUT)를 검사하기 위한 자동 검사 기기(일반적으로 "검사기"로 부른다)가 알려져 있다. 예를 들어, 인쇄 회로 기판 및 반도체 장치를 검사하기 위한 검사기가 알려져 있다.
일부 시나리오에서, 검사기는 전자 장치의 제조 동안 사용된다. 이러한 기능에서, 검사기는 검사 결과에 대한 특정 동작을 조정함으로써 DUT의 제조에 영향을 주도록 검사 결과가 사용될 수 있도록 결함을 식별하는데 사용될 수 있다. 예를 들어, 장치가 패키지화되고 고객에게 배송되는 제조 단계는 보통 장치에 대한 검사가 장치가 적절하게 동작하고 있다는 것을 나타내는 경우에만 실행된다. 이러한 검사가 장치가 적절하게 동작하지 않다고 표시하면, 장치는 장치의 재작업 또는 폐기의 상이한 동작이 실행되도록 자주 전환된다.
검사기는 보통 DUT가 동작중 경험할 수도 있는 다양한 실제 상태를 에뮬레이팅하는 검사 시나리오를 실행하도록 구성되어 있다. 각 검사 시나리오는 예를 들어, 특정 사용 시나리오에 수반되는 DUT의 상이한 부분을 가동시키거나 사용하는 일련의 단계를 가질 수 있다. 검사 시나리오의 집합은 DUT의 모든 부분이 정확하게 보정되었는지를 확실히 하도록 선택될 수 있다.
검사기는 하나 이상의 검사 프로그램을 실행함으로써 이러한 검사 시나리오를 구현할 수 있다. 이러한 검사 프로그램은 자극 신호를 생성하고 적절히 동작하는 장치로부터 예상되는 응답과 비교하기 위한 응답을 측정하도록 검사기에 의해 실행되는 동작을 명시한다. 검사 프로그램의 실행은 DUT에 접속된 다수의 검사 포인트에서 디지털 신호를 생성하거나 측정하는 회로를 제어하기 위해 "검사 패턴"의 인가를 수반할 수 있다. 검사 패턴은 다수의 연속 검사기 사이클의 각각에 대해, 검사기 내의 기기가 검사 신호를 생성하거나 측정할 지에 대해 나타내는 고정 이진 데이터 세트이다. 이러한 패턴은 또한 디지털 값과 같은, 검사 신호에 대한 다른 정보를 나타낼 수 있다.
검사기는 또한 제품 장치가 성장되고 있는 동안 사용된다. 즉, 특정 제품 특징부를 인증하기 위해 칩을 검사한다. 성장 동안, 설계 엔지니어는 검사 프로그램을 실행하기 위해 검사기를 사용할 수 있다. 이러한 검사 프로그램은 DUT의 일부를 실시하도록 설계되어 있고, 자주 DUT의 표면 설계 결함부에 기록된다. 이러한 목적을 위해 생성된 검사 프로그램은 한번에 DUT의 작은 부분을 검사하도록 제한될 수 있다.
자주, DUT 또는 검사 프로그램을 개발하여 검사 프로그램을 생성한 다음 이러한 검사 프로그램을 검사기에 로딩하는 개발 프로세스가 엔지니어에 의해 반복될 수 있다. 이러한 검사 프로그램은 검사기에 접속된 DUT에 의해 실행될 수 있다. 이러한 검사 프로그램을 실행한 결과에 기초하여 DUT의 설계를 변경할 수 있다. 하지만, 검사 프로그램의 변경 결과 역시 나타날 수 있다. 검사 프로그램의 초기 결함을 처리하기 위해 또는 일단 검사 프로그램 또는 DUT의 일부가 인증되면 이러한 부분과 상호작용하는 다른 부분이 추가될 수 있는 증분 설계 접근법의 일부로서 변경이 일어날 수 있다.
검사 프로그램이 변경됨에 따라, 검사기에 재로딩될 수 있고, 검사 프로그램을 실행하는 프로세서, 결과를 평가하는 프로세스, 및 이러한 검사 프로그램을 수정하는 프로세스의 추가 반복이 실행될 수 있다. 이러한 반복은 검사 동안, DUT의 설계에 대한 문제가 식별되어 설계에 변화가 필요한 경우에 합성될 수 있다.
장치가 제조된 후에 검사 시스템 역시 사용될 수도 있다. 예를 들어, 제조되어 사용된 다수의 장치가 유사한 결함을 경험하다면, 장치의 제조자는 고장이 설계상의 잠재적인 결함 또는 장치의 제조시 시스템 결함과 관련되어 있는지 결정하기 위해 샘플을 검사하기를 원할 수 있다. 이러한 검사는 또한 결함의 소스를 식별하기 위해 검사 프로그램을 가능하게는 반복적으로 개발함으로써 실행될 수 있다.
본 발명자는 새로운 반도체 장치를 시장에 내놓는 시간을 검사 시스템에 디버거로의 인터페이스를 제공함으로써 가속화시킬 수 있다는 것을 인식하였다. 이러한 디버그 시스템은 사용자가 쌍방향으로 디버그 명령을 제공하고 이러한 디버그 명령을 구현하는 DUT에 검사 신호를 인가한 결과를 수신할 수 있는 사용자 인터페이스를 제공할 수 있다. 이러한 디버그 명령에 의해, 예를 들어, 사용자는 검사 프로그램의 단계를 밟아갈 수 있고 이러한 프로그램의 각 단계를 DUT에 적용한 결과를 관찰할 수 있고 디버그 명령에 의해 명시된 브레이크 포인트에 도달할 때까지 검사 프로그램을 실행할 수 있거나, 검사 프로그램에 기초할 수 있다.
이러한 인터페이스는 검사 프로그램에 기초하여 유도된 명령 및, 디버그 명령을 검사 시스템에 의해 처리될 수 있는 고레벨 명령으로 변환시킬 수 있다. 이러한 검사 시스템에 의한 처리에 의해 궁극적으로 검사 패턴 및 다른 기기 제어 신호를 상황을 봐가면서(on the fly) 생성할 수 있다. 이러한 디버그 시스템을 사용함으로써, 사용자는 검사 프로그램을 재기록하고 재로딩하지 않고 다수의 동작을 실행할 수 있다. 그 결과, DUT 및/또는 검사 프로그램을 디버깅하는 시간이 감소될 수 있다.
따라서, 적어도 하나의 특징에서, 본 발명은 컴퓨팅 장치의 적어도 하나의 프로세서에서 실행될 때, 상기 컴퓨팅 장치의 사용자로부터 디버그 입력을 쌍방향으로 수신하는 단계 및 복수의 검사 프로그램 명령을 포함하는 검사 프로그램에 접근하는 단계를 포함하는 디버그 방법을 구현하는 컴퓨터 실행가능 명령어를 포함하는 적어도 하나의 컴퓨터 판독가능 저장 매체에 관한 것이다. 본 발명은 또한 디버그 입력 및 검사 프로그램 명령에 따라 피검사 장치(DUT)를 자극하고 DUT로부터응답을 수신하도록 검사기의 기기를 제어하도록 구성된 기기 명령을 생성하는 단계; 및 이러한 기기 명령을 검사기 내의 기기에 인가하는 단계를 포함할 수 있다.
다른 특징에서, 본 발명은 검사 시스템을 동작시키는 방법에 관한 것이다. 이러한 방법은 적어도 하나의 디버그 툴에 의해, 사용자 입력을 수신하는 단계 및, 이러한 사용자 입력에 응답하여 복수의 디버그 명령을 생성하는 단계를 포함할 수 있다. 상기 검사 장치는 또한, 상기 복수의 디버그 명령을 인터페이스에서 수신하는 단계; 상기 인터페이스에서, 상기 복수의 디버그 명령을 검사 시스템에 인가하기 위해 실시간으로 포맷팅하는 단계; 상기 포맷팅된 명령을 상기 검사 시스템에 인가하는 단계; 및 상기 검사 시스템에서, 상기 복수의 디버그 명령 및 피검사 장치와 연관된 프로토콜 정보에 따라 상기 피검사 장치를 자극하고 상기 피검사 장치의 응답을 측정하도록 하나 이상의 기기를 제어하는 단계를 포함할 수 있다.
다른 특징에서, 본 발명은 검사 장치에 관한 것일 수 있다. 상기 검사 장치는 검사기 내에 배치되어 있는 복수의 기기로서, 각각 피검사 장치에 인가되기 위한 적어도 하나의 신호를 생성하고 및/또는 측정하도록 구성된 복수의 기기를 포함할 수 있다. 상기 검사 장치는 또한 인터페이스를 포함하는 디버거 모듈로서, 디버그 명령을 생성하기 위해 상기 인터페이스를 통해 수신된 정보에 응답하여 적어도 하나의 디버그 툴을 실행하도록 구성된 디버거 모듈을 구현하도록 구성된 적어도 하나의 프로세서를 포함할 수 있다. 상기 검사 장치는 또한 입력부를 포함하는 검사기 제어 모듈로서, 상기 입력부를 통해 수신된 기기 명령에 기초하여 상기 피검사 장치에 인가되기 위한 신호를 생성하고 및/또는 측정하도록 상기 복수의 기기를 제어하는 제어 신호를 실시간으로 생성하도록 구성된 검사기 제어 모듈; 및 상기 디버거 모듈과 상기 검사기 제어 모듈 사이에 결합된 변환 모듈을 포함할 수 있고, 상기 변환 모듈은, 상기 디버거 모듈로부터 제1 세트의 디버그 명령을 수신하고, 상기 제1 세트의 디버그 명령에 기초하여, 제2 세트의 기기 명령을 생성하고, 상기 제1 세트의 디버그 명령의 수신과 관련하여 상기 제2 세트의 기기 명령을 상기 검사기 제어 모듈의 입력부에 실시간으로 인가하도록 구성되어 있다.
상기는 첨부된 청구범위에 의해 한정되는 본 발명의 비제한 요약이다.
첨부된 도면은 일정한 비례로 도시되지 않았다. 도면에서, 다양한 도면에 도시된 각 동일하거나 거의 동일한 부재는 동일한 숫자로 표시되어 있다. 이해를 위해, 모든 도면에서 모든 부재가 라벨 표시되지 않았다. 도면에서,
도 1은 일부 실시예에 따라, 검사 시스템의 개략도이다.
도 2는 일부 실시예에 따른, 변환 모듈 및 검사기의 세부사항을 도시한 검사 시스템 예의 개략도이다.
도 3은 일부 실시예에 따른, 검사 시스템 예의 추가 세부사항을 도시한 개략도이다.
도 4는 일부 실시예에 따른, 검사 프로그램의 개발 및 디버그의 프로세스의 순서도이다.
도 5는 일부 실시예에 따른, 피검사 장치에 디버그 명령을 쌍방향으로 인가하기 위해 변환 모듈을 사용하는 방법의 순서도이다.
도 6은 여기에 기술된 하나 이상의 기술을 구현하는데 사용될 수 있는 대표적인 컴퓨팅 장치의 개략도이다.
여기에 기술된 기술을 사용하여, 검사 시스템은 피검사 장치의 실시간, 쌍방향 디버깅을 제공하도록 구성될 수 있다. 이러한 시스템은 반도체 장치 제조자가 엔지니어링 워크의 제조 검사를 위해 획득할 수도 있는 검사기의 투자를 증가시킬 수 있다. 그러나, 이러한 검사기는 종래의 검사기 사용과 비교하여 반도체 장치를 시장에 신속히 내놓거나 장치의 설계 또는 계통 제조 결함의 식별 및 보정을 용이하게 할 수 있는 방식으로 사용될 수 있다.
일부 실시예에 따라, 고객은 다수의 검사 프로그램 명령을 포함하는 검사 프로그램을 제공할 수 있다. 디버거는 사용자에 의해 제공된 디버그 입력에 응답하여 디버그 명령을 생성할 수 있다. 이러한 디버그 명령은 예를 들어, 디버그 입력에 의해 결정된 방식으로 또는 시간에 실행되어야 하는 것을 나타냄으로써 검사 프로그램 명령에 기초할 수 있다. 이러한 디버그 명령은 검사 프로그램의 단계를 밟아가는 단계 또는 DUT에 대한 동작 조건에 대해 명시된, 트랩 조건 또는 프로그램의 브레이크 포인트가 검출될 때까지 검사 프로그램을 실행하는 단계를 포함할 수 있다. 하지만, 디버그 명령은 검사 시스템이 검사 프로그램 명령에 관계없이 실행할 액션을 명시할 수 있다. 이러한 디버그 명령의 예는 DUT 내의 메모리 로케이션 또는 내부 레지스터에서 값을 판독하거나 설정하는 명령을 포함하고 있다.
디버거와 검사기 사이의 인터페이스의 일부로서, 디버그 명령을 검사기에 인가될 수 있는 포맷으로 실시간으로 포맷팅하는 변환 모듈이 제공될 수 있다. 이러한 포맷은 DUT에 의해 사용된 특정 프로토콜에 관계없는 고레벨 포맷일 수 있다. 그 결과, 디버깅이 실행되고 있는 특정 DUT에 관계없이 사용되는 일반적인 디버거 및 인터페이스가 제공될 수 있다.
특정 DUT를 제어하기 위해, 검사기는 DUT에 대해 구성된 프로토콜 인식 엔진으로 프로그래밍될 수 있다. 이러한 프로토콜 인식 엔진은 DUT에 의해 실행되는 동작을 고레벨에서 명시하는 명령을 수용할 수 있다. 이러한 프로토콜 인식 엔진은 이러한 동작을 실행하는 DUT에서 신호를 생성하거나 측정하도록 검사기의 기기를 제어하기 위해 보다 낮은 레벨에서 명령을 생성할 수 있다. 이러한 프로토콜 인식 엔진은 예를 들어, DUT에 대한 검사 패턴을 생성할 수 있다. 이러한 검사 패턴은 동적으로 생성될 수도 있어서, 검사 패턴이 미리 생성되어 저장될 필요를 피할 수 있다. 예를 들어, DUT 내의 로케이션으로부터 값을 판독하는 것과 같은 고레벨 동작이 명시될 수 있다. 이러한 프로토콜 인식 엔진은 이러한 값에 접근하고 판독하는 특정 신호의 레벨 및 타이밍을 명시하는 기기 제어 신호를 생성할 수 있다.
일부 실시예에서, 변환 및 포맷팅 프로세스는 디버그 명령을 실행한 결과를 디버거로 리턴하기 위해 역방향으로 반복될 수 있다.
이어서 이러한 디버거는 이러한 결과를 사용자에게 제공할 수 있거나 이것을 사용하여 다른 디버그 명령을 조건부로 생성할 수 있다. 이러한 액션은 실시간으로 실행될 수 있는데, 이는 사용자가 검사 프로그램을 변경하고 그것을 다시 로딩하는 지연 없이, 사용자로부터의 입력에 응답하는 시스템을 경험할 것이라는 것을 의미한다. 따라서, 이러한 변환 모듈에 의해 고객은 쌍방향 방식으로 디버그 동작을 실행할 수 있다.
또한, 일부 실시예에서, 시스템은 친숙한 고객 코드로 기록된 검사 프로그램을 사용하여 동작될 수 있어 검사 프로그램의 개발을 촉진시킬 수 있다. 검사 프로그램이 고레벨 프로그래밍 언어로 기록될 수 있도록 함으로써, 사용자는 검사 프로그램을 용이하게 편집할 수 있다. 또한, 검사 프로그램의 실행이 검사 프로그램이 기록된 후에 제공된 디버그 입력에 의해 제어될 수 있기 때문에, DUT 또는 검사 프로그램에 대한 디버그 반복을 피할 수 있다.
이러한 실시간 디버깅 환경은 다양한 적용에서 사용될 수 있다. 예를 들어, 사용자는 배송 전에 새로운 장치를 처음으로 검사하는 설계 엔지니어 또는 검사 엔지니어일 수 있다. 전통적으로, 검사 프로그램 또는 검사 패턴은 설계 엔지니어에 의해 오프라인으로 생성되고, DUT를 검사하기 위해 검사 엔지니어에 의해 실행된다. 특정 문제가 검사 동안 발생한다면, 검사 엔지니어 및 설계 엔지니어는 보통 합동하여 이러한 문제를 해결하려고 한다. 이러한 프로세스는 수일 또는 수주 까지 걸릴 수 있다. 여기에 기술된 실시예는 새로운 검사 패턴을 오프라인으로 재설계할 필요없이, 설계 엔지니어 및/또는 검사 엔지니어가 검사 프로그램을 편집/수정하고 DUT로부터의 결과를 실시간으로 볼 수 있도록 함으로써, 적절한 검사 프로그램을 생성하는 사이클 시간을 단축시킬 수 있다. 그 결과, 새로운 장치에 대한 배송 시간이 감소될 수 있다.
다른 예로서, 사용자는 현장에서 반환된 최종 제품을 검사하는 설계 엔지니어 또는 검사 엔지니어일 수 있다. 일부 경우에, 장치는 처음에 양호한 것으로 검사될 수 있지만, 특정 사용의 경우에 장치 코드를 실행할 때에, (예를 들어, 모든 경우가 처음에 검사되지 않기 때문에) 예기치 못한 문제를 만날 수 있다. 원인을 이해하지 않고 이러한 결함을 재생성하도록 검사 패턴을 설계하는 것이 어려울 수 있지만, 적절한 검사 패턴 없이 이러한 원인을 이해하는 것이 어려울 수 있다. 자주, 진단 검사는 불충분하고 "결함이 발견되지 않음" 결과를 산출할 수 있다. 그러나, 여기에 기술된 실시예에 의하면 검사 엔지니어 및/또는 설계 엔지니어가 이러한 결함의 위치를 알아내기 위해 장치에 입출력 동작을 쌍방향으로 실행함으로써 현장에서 실패한 검사 경우를 보다 효율적으로 재생성할 수 있다. 이러한 쌍방향 디버깅에 의해 장치의 특정 문제를 보다 신속하게 그리고 정확하게 진단할 수 있다.
본 발명자는 디버그 명령을 검사기 내의 제어 기기를 제어하는 포맷으로 자동으로 변환하는 기술에 의해 쌍방향 디버깅이 가능할 수 있다는 것을 인식하고 이해하였다. 일부 실시예에서, 변환은 고레벨 디버그 명령을 다수의 단계에서 실시간으로 보다 낮은 레벨의 기기 명령으로 변환하는 단계를 수반할 수 있다. 고레벨 디버그 명령은 고레벨 검사기 명령으로 변환될 수 있고, 그다음, 이러한 고레벨 검사기 명령은 검사기 내의 기기를 제어하는 보다 낮은 레벨의 명령으로 변환된다.
일부 실시예에서, 포맷팅된 디버그 명령은 결정론적이거나 비결정론적인 동작을 명시하는 명령어를 포함할 수 있다. 예로서, 이러한 동작은 프로토콜과 관련되어 있다면 결정론적일 수 있거나, DUT를 위한 명령을 나타내고 있다면 비결정론적일 수 있다. 일부 실시예에서, 검사기는 디버그 명령이 결정론적이거나 비결정론적인 동작을 명시하는 지에 관계없이, 적절한 명령을 생성하는 ATE 기기 엔진을 포함할 수 있다.
다단계 포맷 변환을 지원하기 위해, 고객으로부터 입력을 수신하는 디버그 툴과 고레벨 검사기 명령 입력부 사이에 실시간 변환을 실행하는 변환 모듈이 제공될 수 있다. 일부 실시예에서, 디버그 툴이 고객 코드 또는 실시간 고객 입력에 기초하여 디버그 명령을 생성한다면, 변환 모듈은 이러한 디버그 명령을 검사기에 의해 인식되는 명령으로 변환시킬 수 있다. 이러한 검사기는 DUT에 특정된 검사 패턴 자극 또는 검사기 내의 기기를 제어하는 명령을 생성하는 구성요소를 포함할 수 있다. 일부 실시예에서, 검사기는 DUT를 검사하기 위한 기기 명령을 발행하고, DUT로부터의 응답에 기초하여, 후속 기기 명령을 자동으로 발행하는 프로토콜 인식 엔진을 포함할 수 있다.
일부 실시예에서, 변환 모듈은 이러한 프로토콜 인식 엔진과 결합하여, 예를 들어, 기기 명령이 완료되었다는 표시, 검사 프로그램이 사전결정된 로케이션까지 성공적으로 실행되었다는 표시, 또는 기기 명령을 실행하는 동안 에러가 발생하였다는 표시와 같은 다양한 타입의 표시를 제공할 수 있다. 이러한 표시에 응답하여, 사용자는 이진 검사 패턴과 같은 적절한 제어 신호를 인가하도록 검사기를 제어하는 기기 명령으로 자동으로 변환되는 후속 고레벨 명령어를 DUT에 입력할 수 있다. 이로 인해 사용자는 DUT를 실시간, 쌍방향으로 검사할 수 있다.
이러한 기능이 함께 작동하는 예로서, 디버그 툴이 메모리 판독/기록 디버그 명령을 생성한다면, 변환 모듈은 이것을 "read data from memory location XXX"와 같은 적절한 고레벨 검사기 명령으로 자동으로 변환할 수 있다. 이러한 검사기는 이러한 프로토콜 인식 엔진을 사용하여, DUT 프로토콜 및 타이밍에 따라, 고레벨 검사기 명령을 구현하는 적절한 이진 검사 패턴을 생성하도록 이러한 명령을 인식할 수 있다. 따라서 이러한 검사기 내의 변환 모듈 및 프로토콜 인식 엔진의 결합은 사용자가 근본적인 프로토콜 및 DUT의 타이밍에 관계없도록 하고, 사용자(예를 들어, 설계 엔지니어 또는 검사 엔지니어)가 특정 프로토콜, 및 일부 실시예에서, DUT의 구성에 기초하여 검사 프로그램을 오프라인으로 수동으로 생성할 필요를 감소시키는 추상화 계층을 제공할 수 있다.
본 발명자는 이러한 시스템이 사용자가, 1) 이진 검사 패턴을 개발하기 위해 오프라인으로 간 다음 검사 패턴을 검사 시스템으로 다시 이동시킬 필요없이 쌍방향으로/온라인으로 디버깅할 수 있도록 하고, 2) 고레벨 디버그 명령을 사용하여 디버깅하여, 중간 저레벨 오프라인 이진 검사 패턴을 개발할 필요를 감소시킬 수 있도록 하는 것을 포함하는 다수의 장점을 가질 수 있다는 것을 인식하고 이해하였다.
본 발명자는 디버그 툴과 검사기 사이에 추상화 계층을 제공함으로써, 디버그 툴에 의해 발행된 디버그 명령이 DUT에 의해 사용된 특정 프로토콜과 관계없을지라도 상이한 타입의 디버그 툴이 검사기와 함께 사용될 수 있다는 것을 인식하고 이해하였다. 일부 실시예에서, 변환 모듈은 DUT에 의해 인식된 특정 프로토콜과 함께 컴파일링하는 방식으로 디버그 명령을 자동으로 포맷팅할 수 있다.
본 발명자는 실시간 쌍방향 디버그 환경이 a) 고레벨 프로그래밍 언어를 감사기에서 사용되는 이진 코드로 전환하기 위해 중간 툴/단계를 사용할 필요; 및 b) 실질적인 검사 프로그램이 생성될 수 있도록 DUT에 대한 작업 환경을 재생성하기 위해 테스트벤치를 사용할 필요를 감소시키는 것을 포함하는 다수의 장점을 가질 수 있다는 것을 인식하고 이해하였다.
여기에 기술된 기술은 반드시 오프라인으로 갈 필요없이, 디버그 툴과 검사기 사이에 직접적인 그리고 쌍방향의 "링크"를 가능하게 함으로써 이러한 장점을 제공할 수 있다. 이러한 "링크"는 예를 들어, (1) 고레벨 프로그래밍 언어를 이진 코드로 변환하는 추상화 계층을 통한 자극 신호의 실시간 쌍방향 생성; 및 (2) DUT에 대한 기능적으로 적절한 작업 환경을 에뮬레이팅할 수 있는 실시간 "테스트벤치"를 프로토콜 인식 또는 다른 ATE 엔진을 통해 제공하는 것의, 여기에 기술된 실시예의 적어도 2개의 업적에 의해 가능할 수 있다.
도 1은 일부 실시예에 따른, 검사 시스템(100)의 개략도이다. 도 1에서, 사용자(102)(예를 들어, 설계 엔지니어 또는 검사 엔지니어)는 검사 컴퓨터(104)와 상호작용한다. 사용자 입력에 기초하여, 검사 컴퓨터(104)는 피검사 장치(DUT)(108)에 검사를 행하는 검사기(106)를 제어한다. 예를 들어, 일부 시나리오에서, 검사기(106)는 당업계에 공지된 기술을 사용하여 구성된 자동 검사 기기(ATE)일 수 있다. 이러한 DUT는 검사를 위한 임의의 적절한 장치일 수 있다. 이러한 예에서, DUT(108)는 반도체 장치일 수 있다. 이러한 반도체 장치는 예를 들어, 프로세서 및 하나 이상의 기능부를 포함하는 시스템온칩(SOC)일 수 있다.
DUT(108)는 검사를 위해 소켓(110)에 배치될 수 있다. 하지만, 여기에 기술된 검사 시스템은 임의의 적절한 타입의 장치를 검사할 수 있고, 상이한 타입의 장치가 검사를 위해 상이한 타입의 고정물에 유지될 수 있다는 것을 이해해야 한다. 또한, 도시되지 않았지만, 임의의 수의 장치가 동시 검사를 위해 소켓(110)에 배치될 수 있다. 따라서, 소켓(110)은 예이고 본 발명은 제한하는 것은 아니다.
또한, 도시된 부품은 제한을 위한 것이 아니고 예시를 위한 것이라는 것을 이해해야 한다. 예를 들어, 검사 컴퓨터(104)가 도 1의 퍼스널 컴퓨터로서 도시되어 있지만, 예를 들어, 임의의 적절한 컴퓨팅 장치, 예를 들어, 휴대형 장치 또는 컴퓨터 워크 스테이션이 검사 컴퓨터를 구현하는데 사용될 수 있다는 것을 이해해야 한다.
검사 컴퓨터(104)는 디버그 툴을 구현하는 소프트웨어를 가질 수 있다. 이러한 디버그 툴은 DUT(108)를 검사하기 위한 고레벨 코드로서 기록될 수 있는 검사 프로그램과 함께 동작할 수 있다. 이러한 고레벨 코드는 예를 들어, DUT와 정보를 교환하는데 사용된 특정 프로토콜에 관계없이 그리고 DUT에서 신호를 발생시키고 측정할 검사기(106) 내의 특정 기기에 관계없이 명시될 수 있다. 이러한 검사 프로그램의 일부 파라미터의 값은 특정 동작이 실행될 DUT 내의 부품을 명시할 수 있다. 실행되는 동작은 임의의 DUT 및 검사기 구성에 일반적으로 적용되는 방식으로 고레벨 코드로 명시될 수 있다. 예를 들어, 이러한 동작은 값의 판독 또는 기록과 관련될 수 있다.
이러한 디버그 툴은 집합적으로 디버거를 제공할 수 있고, 임의의 적절한 디버그 동작을 지원하도록 당업계에 공지된 기술을 사용하여 구현될 수 있다. 이러한 디버그 동작은 당업계에 공지된 바와 같은 디버그 동작을 포함할 수 있다. 예를 들어, 이러한 디버그 동작은 검사 프로그램의 단계를 밟아가는 단계 또는 실행이 중지될 검사 프로그램에서의 브레이크 포인트를 설정하는 단계를 포함할 수 있다. 이러한 디버그 동작은 또한 검사 프로그램이 중지로부터 실행될 수 있는 DUT에서의 상태를 나타내는 트랩 상태를 설정하는 단계를 포함할 수 있다. 또한, 디버그 동작은 레지스터 또는 DUT 내의 다른 부품의 값을 판독하거나 설정하는 단계를 포함할 수 있다.
검사 컴퓨터(104) 내의 디버그 툴은 사용자 입력 및/또는 검사 프로그램에 기초하여 디버그 명령을 출력할 수 있다. 이러한 디버그 명령의 출력은 또한 DUT로부터 판독된 값 또는 검사 시스템의 상태에 기초할 수 있다. DUT로부터 판독된 정보 또는 검사 시스템의 상태는 검사기(106)에 의해 제공될 수 있다. 예를 들어, 사용자 입력이 검사 프로그램을 통해 단일 단계 동작을 나타내었을 때, 디버그 툴은 검사 프로그램의 단계의 실행을 나타내는 디버그 명령을 생성할 수 있다. 디버그 툴이 이러한 단계가 완료되었음을 나타내는 정보를 검사기(106)로부터 다시 수신할 때, 디버그 툴은 검사 프로그램의 다음 단계의 실행을 명시하기 위해 디버그 명령을 생성할 수 있다.
일부 실시예에서, 디버그 툴에 의해 발행되는 디버그 명령을 검사기(106)에 의해 인식되는 검사기 명령으로 변환하는 변환 모듈이 검사 컴퓨터(104)에 제공될 수 있다. 검사 컴퓨터(104)로부터 수신된 검사기 명령에 기초하여, 검사기(106)는 이진 검사 패턴과 같은 제어 신호를 생성할 수 있고, 이러한 제어 신호를 DUT(108)에 인가하여 일부 디버그 시나리오에서 실행될 수 있다.
검사 컴퓨터(104)의 변환 모듈에 의해 다양한 디버그 툴이 검사기(106)와 함께 구현될 수 있다. 변환 모듈은 사용자 레벨 명령어와 검사기 레벨 명령 사이에 추상화 계층을 제공할 수 있다. 이러한 변환 모듈에 의해 사용자(102)는 검사기(106) 및/또는 DUT(108)의 정확한 성질 및 요청에 관계없게 될 수 있다. 이것은 특정 검사기 및/또는 DUT와 양립되는 특정 디버깅 기기를 사용하는 것과 비교하여, 보다 광범위한 다양한 DUT를 디버깅하기 위한 보다 일반적인 방법을 제공할 수 있다.
검사 컴퓨터(104)의 디버그 툴과 검사기(106) 사이에 추상화 계층을 제공하는 것에 더하여, 검사 컴퓨터(104) 내의 변환 모듈에 의해 사용자(102)는 DUT(108)의 실시간 쌍방향 디버깅을 실행할 수 있다. 이러한 실시간 쌍방향 디버깅에 의해 사용자(102)는 검사기(106)를 쌍방향 제어할 수 있다. 예를 들어, 사용자(102)는 DUT(108)와 일련의 자극-응답 동작을 실행할 수 있거나, DUT(108)에 의해 출력된 신호에 기초하여 검사 프로그램 명령, 또는 검사 프로그램의 특정 명령을 실시간으로 실행할 수 있다.
이러한 디버그 툴에 의해 검사 프로그램으로부터의 명령이 동적으로 선택되고 검사기(106)에 인가될 수 있기 때문에, 검사 프로그램이 미리 준비될 필요가 없다. 반대로, 검사 프로그램은 그때그때 봐가며(온더 플라이, on the fly) 개발되거나 수정될 수 있다. 이러한 경우에, 온더 플라이 수정은 DUT가 검사되고 있을 때 이루어진다. 따라서, 이러한 검사 프로그램에 대한 수정은 온라인 방식으로 이루어진다. 이러한 온라인 프로그래밍 및 수정은 DUT를 검사하지 않을 때 검사 프로그램을 오프 라인으로 준비한 다음에 이러한 준비된 프로그램을 실행하기 위해 로딩하는 종래의 접근법 보다 강력하다.
따라서, 이러한 변환 모듈은 사용자(102)가 고레벨 고객 코드를 사용할 수 있는 추상화 계층을 제공할 뿐만 아니라, 사용자(102)가 DUT(108)에 의해 출력된 응답 신호에 기초하여 디버깅을 동적으로 실행할 수 있는 실시간 쌍방향 환경을 제공할 수 있다. 도 1의 예가 검사 컴퓨터(104)에서 변환 모듈을 구현하는 것으로 기술되었지만, 실시예는 이에 제한되지 않고 변환 모듈이 임의의 적절한 컴퓨팅 장치에서 구현될 수 있다는 것을 이해해야 한다.
도 2는 일부 실시예에 따른, 변환 모듈을 사용하는 검사 시스템(200) 예의 개략도이다. 이러한 예에서, 디버거 모듈과 DUT에서 신호를 생성하고 측정하는 검사 시스템 기기 사이의 추상화 계층의 추가 세부사항이 제공되어 있다. 이러한 예에서, 프로토콜 인식 엔진(210)이 추가로 제공되어 있다. 이러한 프로토콜 인식 엔진은 디버그 명령으로부터 변환 모듈(202)에 의해 생성된 고레벨 검사기 명령을 검사기(206) 내의 기기의 동작을 제어하는 기기 명령으로 변환하여 DUT(208)에서 신호를 인가하거나 측정한다.
도 2의 실시예에서, 변환 모듈(202)은 하나 이상의 디버그 툴을 구현하는 디버거 모듈(204)과 DUT(208)에서 검사를 수행하는 검사기(206) 사이에 인터페이스를 제공한다. 일부 실시예에서, 변환 모듈(202)에 의해 DUT(208)를 쌍방향 디버깅하기 위해 고객 언어(예를 들어, C++, Java)로 기록된 검사 프로그램을 사용할 수 있다. 일부 실시예에서, 변환 모듈(202)은 디버거 모듈(204)과 검사기(206) 사이의 애플리케이션 프로그래밍 인터페이스(API)에서 구현될 수 있다.
디버거 모듈(204)은 사용자가 DUT(208)에 무엇을 하기를 원하는지의 로직을 이해하도록 설계될 수 있는 제3자 디버그 툴을 사용하는 단계를 포함하는 임의의 적절한 방법으로 구현될 수 있다. 이러한 디버그 툴은 사용자에 의해 공급된, 검사 프로그램을 구현하는, 고객 코드와 상호작용할 수 있다. 사용자 입력, 검사 프로그램 및/또는 검사기(206)에 의해 제공된 측정값 또는 다른 정보에 기초하여, 디버거 모듈(204)은 디버그 명령(212)을 발생시킬 수 있다. 예를 들어, 디버거 모듈(204)은 DUT(208)에 동작을 실행하는 명령을 포함하는 디버그 명령(212)을 생성할 수 있다. 일부 실시예에서, 디버그 모듈(204)로의 단일 사용자 입력으로 디버그 명령의 스트림을 얻을 수 있다. 예를 들어, DUT(208)의 메모리에 소프트웨어를 로딩하는 명령을 나타내는 사용자 입력에 의해 디버그 명령(212)의 스트림을 얻을 수 있다.
그러나, 디버거 모듈(204)에 의해 발행되는 디버그 명령(212)은 검사기(206)에 직접 인가하기에 적절한 포맷이 아닐 수 있다. 예를 들어, 디버그 명령(212)은 검사기(206)에 대해 구체적으로 준비되지 않은 고레벨 프로그래밍 언어로 이루어질 수 있다. 변환 모듈(202)은 디버그 명령(212)과 검사기 명령(214) 사이에 필요한 변환을 제공할 수 있다.
이러한 검사기 명령(214)은 여전히 비교적 고레벨에 있을 수 있다. 예를 들어, 검사기 명령(214)은 DUT 내의 위치에서 판독 및 기록하는 것을 명시할 수 있지만 명시된 동작이 실행되도록 하기 위해 DUT(208)에 필요한 특정 일련의 값을 명시하지 않을 수 있다. 시스템(200) 내의 추상화 계층은 보다 높은 레벨의 검사기 명령(214)을, 적절한 신호를 생성하거나 측정하도록 검사기(206) 내의 기기를 제어하는 보다 낮은 레벨의 기기 명령으로 변환하는 구성요소를 더 포함할 수 있다.
이러한 구성요소는 검사기 제어 모듈을 포함할 수 있다. 예를 들어, 검사기 제어 모듈은 프로토콜 인식(PA) 엔진(210)일 수 있다. 하지만 디지털 신호 소스 및 캡처(Digital Signal Source and Capture, DSSC)와 같은 다른 적절한 ATE 엔진이 검사기 제어 모듈로서 사용될 수 있다는 것을 이해해야 한다. 일부 실시예에서, PA 엔진(210)은 하나 이상의 디버그 명령(212)에 응답하여 생성된 검사기 명령에 의해 명시된 동작을 실행하도록 DUT(208) 내의 하드웨어를 제어하기 위해 검사기 내측의 기기가 일련의 비트(216)를 생성하도록 하는 기기 명령(214)을 생성하도록 구성될 수 있다.
프로토콜 인식 엔진의 예는 여기에 언급되어 전체가 통합된 미국 특허 8,195,419 및 미국 특허 출원 2010/0312516에 발견될 수 있다. 그러나, 특정 DUT로의 적용을 위해, 적절한 레벨 및 타이밍으로 신호를 생성하는 기기를 제어하는 명령으로 검사기 명령을 변환하는 임의의 적절한 구성요소가 사용될 수 있다. 이러한 프로토콜 인식 엔진은 DUT에서 생성된 신호의 상태에 따른 값을 갖거나 시간에서 신호를 발생시키는 프로토콜에 따라 동작할 수 있다. 예를 들어, DUT는 데이터가 판독될 수 있을 때 "준비" 신호를 어서트할 수 있고, 프로토콜 인식 엔진은 이러한 준비 신호에 응답하여 값이 판독되도록 하는 기기 명령을 발행할 수 있다. 일부 실시예에서, 프로토콜 인식 엔진은 디지털 신호에 작동될 수 있다. 그러나, 일부 실시예에서, 프로토콜 인식 엔진이 아날로그 및/또는 디지털 신호에 작동될 수 있다는 것을 이해해야 한다.
따라서, 임의의 적절한 검사기 제어 모듈이 PA 엔진(210)으로서 작동될 수 있다는 것을 이해해야 한다. 또한, 보다 높은 레벨의 검사기 명령을 DUT 신호의 발생을 제어하는 기기 명령으로 변환하는 임의의 적절한 모듈이 PA 엔진(210)으로 작동될 수 있다.
검사기 명령(214)과 기기로의 제어 신호 사이에 변환을 위해 검사기에 PA 엔진(210)을 제공하는 것이 알려져 있지만, 변환 모듈(202) 및 PA 엔진(210)은 추가 추상화 계층을 제공할 수 있다. 이러한 추가 추상화 계층에 의해, 예를 들어, 사용자는 보다 높은 레벨의, 보다 사용자 친화적인, 프로그래밍 언어, 즉, (C, C++, Java와 같은) 고객 언어를 사용하여 검사 프로그램을 준비할 수 있다. 또한, 이러한 추상화 계층에 의해 임의의 검사 시스템 또는 DUT와 작동하도록 검사 시스템이 용이하게 구성될 수 있다. 디버거 모듈(204)은 검사기 또는 DUT에 관계없이 일반적인 출력을 생산할 수 있다. 변환 모듈(202)은 검사기에 대해 특정될 수 있지만 DUT에 독립적일 수 있다. 그라나, PA 엔진(210)은 특정 DUT를 위해 구성될 수 있다.
도 3은 일부 실시예에 따른 검사 시스템(300)의 예의 추가 세부사항을 도시하는 개략도이다. 도 3은 DUT(308)를 제어하기 위해 디버거 모듈(304)과 검사기(306) 사이에 추상화 계층을 제공하는 변환 모듈(302)을 도시하고 있다. 일부 실시예에서, 검사기(306)는 변환 모듈(302)로부터 검사기 명령을 수신하고 이에 응답하여 검사기(306) 내의 기기가 DUT(308)로부터 신호를 생성하거나 측정하도록 하는 기기 명령을 생성하기 위한 PA 엔진(310)을 포함할 수 있다.
일부 실시예에서, 변환 모듈(302) 및 디버거 모듈은 검사 컴퓨터(312)(예를 들어, 도 1의 검사 컴퓨터(104))에 구성될 수 있지만 이에 제한되는 것은 아니다. 디버거 모듈(304)은 사용자 인터페이스(314)를 가질 수 있고, 이를 통해 사용자는 디버거 모듈(304)에 의해 구현된 다양한 디버그 툴과 상호작용할 수 있다.
일부 실시예에서, 사용자 입력은 궁극적으로, PA 엔진(310)에 의해 지원되는 프로토콜에 따라 동작하는 라인(318)을 통해, DUT(308)의 프로세서(316)를 디지털 기기가 제어하도록 하는 디버그 명령을 생성하도록 디버그 툴을 제어할 수 있다. 일부 실시예에서, 직렬 입력 및 직렬 출력 핀, 타이밍 핀 및 하나 이상의 제어 핀과 같은 제한된 수의 핀에 의해 검사 인터페이스를 통해 구성요소를 제어할 수 있는 연합검사수행그룹(Joint Test Action Group (JTAG)) 프로토콜을 따를 수 있다. 이러한 JTAG 프로토콜에 의해 프로그램이 DUT(308) 내측의 메모리에 로딩될 수 있거나 값이 특정 레지스터 또는 저장 로케이션에 로딩될 수 있다. 마찬가지로, JTAG 프로토콜에 의해 값이 DUT(308) 내의 특정 레지스터 또는 저장 로케이션으로부터 판독될 수 있다. 그러나, 실시예는 JTAG를 사용하는 것에 제한되지 않고 Mipi, SPI, I2C와 같은 다른 적절한 프로토콜이 DUT를 제어하는데 사용될 수 있다는 것을 이해해야 한다.
이러한 프로그램을 로딩하는 기능은 예를 들어, 디버그 툴이 프로세서(316)와 연관된 펌웨어에 검사 코드를 로딩할 수 있도록 하는데 사용될 수 있다. 이러한 검사 코드는 예를 들어, DUT의 메모리의 특정 로케이션에 기록된 값에 기초하여 조건부로 동작을 실행할 수 있다. 대안으로 또는 추가로, 이러한 검사 코드는 값을 메모리 내의 로케이션에 기록할 수 있다. 이러한 기능은 DUT(308)에 의해 수행된 동작의 타이밍 또는 진행을 제어하고 검사기(306)에 동작 실행의 결과로의 접근을 제공하는데 사용될 수 있다. 이러한 기능은 예를 들어, 검사 프로그램의 동작에 대한 제어를 명시하는 디버그 명령을 구현하도록 사용될 수도 있다. 이러한 방식으로, 시스템은 예를 들어, 사용자가 각 단계를 실행하는 결과를 조사할 수 있는 검사 프로그램의 단일 단계 실행을 지원할 수 있다. 이러한 기능은 또한 DUT(308) 내측의 값에 기초할 수 있는, 브레이크 포인트로의 실행 또는 특정 조건에 대한 트랩핑을 지원할 수 있다.
또한 프로세서(316)에 대해 프로그램을 로딩하는 기능에 의해 DUT(308)에 대한 검사로서 기능하는 동작을 실행하도록 DUT(308) 내의 다른 프로세서 또는 서브시스템을 제어할 수 있다. 예를 들어, 도 3에서, 서브시스템(320a, 320b, 320c, 329d)이 도시되어 있다. 서브시스템의 비제한 예는 아날로그-디지털 컨버터(ADC), 디지털-아날로그 컨버터(DAC), Serdes 또는 혼합된 신호 시스템온칩에 보통 포함된 다른 코어를 포함하고 있다. 사용자는 DUT(308)의 이러한 서브시스템을 제어하기 위해 DUT(308)의 프로세서(316)에 구현된 이들의 코드/프로그램을 사용할 수 있다. 가능한 제어의 타입의 비제한된 예로서, DAC는 ADC가 측정하도록 제어될 수 있는 특정 레벨의 출력을 생성하도록 제어될 수 있다. 이러한 측정값을 예상값과 비교함으로써, ADC 또는 DAC의 비적절한 동작이 검출될 수 있다.
추가로 또는 대안으로, 기기(322a, 322b, 322c)와 같은, 검사기(306)의 다른 기기가 DUT(308) 내의 서브시스템(320a-320d)과 같은 서브시스템의 자극 및/또는 캡처를 실행하도록 제어될 수 있다. 이러한 기기는 검사기 명령으로부터 직접 제어될 수 있거나 PA 엔진(310)과 같은 다른 구성요소에 의해 발행된 명령으로부터 간접 제어될 수 있다. 이러한 제어는 프로세서(316)에 의해 실행된 검사 동작과 동기화될 수 있다.
이러한 제어의 특징 및 소스에 관계없이, 검사기(306)의 기기(322a-322c)는 직간접으로 변환 모듈(302)로부터 수신된 검사기 명령에 기초하여 DUT(308)에서 신호를 생성하고 및/또는 측정할 수 있다. 예를 들어, 이것은 RF, AC, DC 및 디지털 기기 패밀리를 위해 사용될 수 있다.
상술된 실시예에서, DUT(308)과 통신하기 위해 PA 엔진(310)에 의해 사용된 프로토콜은 당업계에 알려진 바와 같이(IEEE standard 1149.1) 4-선 라인에서의 연합검사수행그룹(JTAG) 프로토콜일 수 있다. 그러나, Mipi, SPI, I2C와 같은 임의의 적절한 프로토콜 패밀리가 사용될 수 있지만 이에 제한되지 않는다는 것을 이해해야 한다.
DUT(308) 내의 프로세서(316)는 검사 코드를 수신하고 펌웨어로 저장하도록 구성될 수 있다. 그러나, 이러한 검사 코드는 임의의 적절한 방식으로 DUT(308)에 저장될 수 있다. 또한, 프로세서(316)는 사용자 검사 프로그램을 통해 단일 단계 동작을 실행하도록 제어되도록 프로그래밍될 수 있다. 일부 실시예에서, 프로세서(316)는 각 단계 후에 결과가 검사기(306)에 유용한 상태로 (그래서 디버거 모듈(304)에 유용하도록), DUT(308)에 로딩된 검사 코드의 단계를 밟아가도록 제어될 수 있다. 이러한 기능은 당업계에 공지된 DUT 프로세서에 존재할 수 있다. 예를 들어, 프로세서(316)가 ARM 프로세서이라면, 제어 프로토콜로의 규정된 제어 인터페이스와, 검사 명령어의 단계를 밟아가는 기능을 가질 수 있다. 예를 들어, 이러한 제어 인터페이스는 JTAG 또는 다른 적절한 제어 프로토콜로의 인터페이스일 수 있다. 일부 실시예에서, DUT 프로세서(316)는 디버그 지원 기능을 갖고 있고, 변환 모듈(302)은 프로세서(316)의 이러한 디버그 지원 기능에 접근하는 기기 명령을 발행할 수 있다.
어느 구성요소가 검사를 수행하는지에 관계없이, 이러한 검사 동안 얻어진 측정값은 변환 모듈(302)을 통해 디버거 모듈(304)로 돌아갈 수 있다. 정보가 이러한 방향으로 변환 모듈(302)을 통과할 때, 하나 이상의 디버그 명령을 인가할 결과를 나타내는, DUT(308)로부터 얻어진 상태 또는 판독된 값과 같이, 고레벨 검사기 정보로부터 전환될 수 있다. 디버거 모듈(304)은 이러한 검사의 결과를 취할 수 있고 다양한 출력을 제공할 수 있다.
도시된 실시예에서, 이러한 출력은 사용자 인터페이스(314)에서 제공된다. 이러한 출력은 DUT(308)의 상이한 서브시스템(320a-320d)에 의해 실행된 판독, 기록 또는 다른 동작의 결과를 나타낼 수 있다. 예를 들어, 서브시스템(320a)이 아날로그-디지털 컨버터(ADC)라면, DUT(308)로의 입력은 포착된 아날로그 파형을 나타낼 수 있다. 이러한 파형은 예를 들어, 아날로그 입력 파형을 포착하도록 ADC를 준비시키도록 프로세서(316)를 제어하기 위해 DUT에 로딩된 검사 코드의 동작에 의해 포착될 수 있다. 따라서, 파형의 포착을 나타내는 사용자 입력에 응답하여 파형이 포착될 수 있다. 변환 모듈(302)은 이러한 명령을, 프로세서(316)에 대한 검사 코드의 로딩, 이러한 검사 코드의 실행의 트리거, 그다음, 최종 데이터를 판독하도록 검사기(306) 내의 하나 이상의 기기의 제어를 위해 고레벨 검사기 명령으로 전환할 수 있다. 따라서, 이러한 데이터는 사용자에 제공되어, DUT(308)가 정확하게 측정되고 아날로그 신호가 DUT(308)에 인가되는지를 관찰할 수 있다. 그다음, 사용자는 이러한 관찰된 데이터에 응답하여, 추가 명령을 입력한다. 그러나, 사용자 입력의 정확한 성질에 관계없이, 도시된 구성요소에 의해 구성요소가 사용자 명령어에 의해 실시간으로 제어되는 쌍방향 검사 환경이 가능할 수 있다.
도 4는 일부 실시예에 따른, 이러한 예에서 검사 프로그램의 개발 및 디버그를 포함하는 디버그 프로세스의 순서도이다. 도 4의 프로세스(400)의 예에서, 설계 엔지니어에 의해 그리고 검사 엔지니어에 의해 취해진 프로세스 단계의 상호작용이 도시되어 있다. 양 경로에서, 여기에 기술된 구성요소는 DUT를 실시간 쌍방향 디버깅할 수 있도록 사용될 수 있다.
검사 엔지니어는 DUT의 쌍방향 디버깅을 실행하기 위해 여기에 기술된 구성요소일 수 있다. 단계 402에서, 검사 엔지니어는 기존의 검사 프로그램으로 디버깅을 시작할 수 있다. 예를 들어, 이러한 검사 프로그램은 DUT가 제조될 때 DUT를 검사하는 동안 검사 시스템의 동작을 제어하도록 의도된 검사 프로그램일 수 있다. 그러나, 이러한 검사 프로그램이 사용되기 전에, 이러한 프로그램에 따라 실행되는 임의의 검사의 결과가 DUT의 특징화하는 것을 보장하기 위해 디버깅될 수 있다.
단계 404에서, 검사 엔지니어는 검사 프로그램을 시작하고, 단계 406에서 변환 모듈을 시작한다. 변환 모듈은 단계 408에서, 검사 시스템에 적용하기 위해, 검사 프로그램으로부터 유도된 명령어를 전환시킬 수 있다. 이러한 명령어는 사용자 입력에 응답하여 디버거 모듈에 의해 선택될 수 있다. 이러한 명령어는 임의의 적절한 방식으로 선택될 수 있다.
검사 프로그램의 실행의 일부는 내부 프로세서의 실행을 제어하는, DUT에 로딩된 펌웨어 코드에 의해 제어될 수 있다. 따라서, 프로세스(400)는 펌웨어를 DUT에 로딩하는 단계를 포함할 수 있다. 이러한 펌웨어는 예를 들어, 단계 408에 설명된 바와 같이, 브레이크 포인트까지 검사 프로그램을 실시함으로써, 디버그 입력에 따라 검사 프로그램을 실행하는 일부로서 실행될 수 있다.
이러한 포인트에서, 사용자는 단계 410에서 검사 프로그램을 쌍방향 디버깅하는 것을 시작할 수 있다. 쌍방향 디버깅은 실행할 검사 프로그램의 일부를 명시하는 입력, 검사 시나리오를 생성하도록 조건을 DUT에 설정하는 입력 또는 DUT로부터 값을 판독하는 입력과 같은 사용자 입력을 수반할 수 있다. 예를 들어, 쌍방향 디버깅은 단계 412에서 검사 프로그램의 다음 검사 프로그램 명령, 또는 명령어로 스텝핑하는 단계를 포함할 수 있다. 각 단계에서, 사용자는 다시 추가 액션을 명시할 수 있다. 일부 실시예에서, 사용자는 DUT를 검사하기 위해 검사 프로그램을 실시할 때 희망의 또는 예측된 결과가 얻어질 때까지 (에디터 또는 다른 프로그램 수정 명령을 사용하여) 검사 프로그램을 수정할 수 있다. 일단 디버깅이 완료되면, 쌍방향 디버깅이 단계 414에서 중지될 수 있다.
일부 시나리오에서, 검사 프로그램이 설계 엔지니어에 의해 제공될 수 있다. 예를 들어, 설계 엔지니어는 디바이스에서 특정 서브시스템 또는 실제 사용 시나리오를 검사하도록 설계된 검사 프로그램을 개발할 수 있다. 변환 모듈에 의해 검사 엔지니어 또는 설계 엔지니어에 의해 이러한 설계된 프로그램을 검사하고 디버깅할 수 있다.
예를 들어, 단계 416에서, 설계 엔지니어는 검사 오브젝트의 개발을 시작할 수 있다. 이러한 검사 오브젝트는 검사 프로그램, 또는 검사 프로그램의 일부일 수 있다. 이러한 오브젝트는 사용자에 친숙한 고레벨 언어로 기록될 수 있어서, 이러한 오브젝트는 DUT에 의해 사용된 프로토콜 또는 검사기를 제어하는데 사용된 언어에 의존할 필요가 없다. 이러한 프로그램 오브젝트는 DUT의 다양한 기능을 검사하도록 설계될 수 있다. 비제한의 예로서, 검사 프로그램은 DUT의 레지스터에 데이터를 기록하고 DUT의 포트에서 출력을 판독하기 위한 검사 프로그램 명령을 포함할 수 있다.
단계 418에서, 설계 엔지니어는 (C++ 또는 Java와 같은) 친숙한 언어로 코드를 개발할 수 있다. 컴파일링된 언어로 기록되면, 코드는 단계 420에서 컴파일링될 수 있다. 일단 코드가 컴파일링되면, 단계 422에서, 컴파일링된 코드가 검사 시스템 컴퓨터에 로딩될 수 있다. 설명된 실시예에서, 설계자는 또한 상술된 바와 같이 디버거 모듈을 로딩할 수 있다. 고객에 의해 개발된 코드를 기록하고, 컴파일하고 로딩하는 단계는 각 개발된 나머지 프로그램 오브젝트가 원하는 대로 실행될 때까지 설계 엔지니어에 의해 반복될 수 있다.
그다음, 개발된 프로그램 오브젝트로 구성된 프로그램이 디버깅될 수 있다. 이러한 디버깅은 상술된 바와 같은 단계를 사용하여 설계 엔지니어 또는 검사 엔지니어에 의해 실행될 수 있다. 이러한 프로그램 오브젝트는 상술된 바와 같이, 설계 엔지니어 또는 검사 엔지니어를 포함하는 임의의 적절한 파트에 의해 단계 410에서 검사될 수 있다. 이러한 디버깅은 변환 모듈 및 PA 엔진을 포함하는, 구성요소의 사용을 수반하여서, 상술된 바와 같이, 디버그 툴에 의해 생성된 디버그 명령으로부터 DUT의 구현 세부사항을 추상화할 수 있다.
따라서, 여기에 기술된 시스템은 설계 및 검사 엔지니어 모두가 고레벨 고객 코드 검사 프로그램을 사용할 수 있는 통합된 환경을 제공할 수 있다. 이로 인해 설계 엔지니어 및 검사 엔지니어는 보다 자급자족할 수 있고, 디바이스를 정확하게 검사하거나 진달하도록 검사 프로그램을 개발하는데 있어 사이클 타임을 감소시킬 수 있다.
도 5는 일부 실시예에 따른, 일부 실시예에 따른, 실시간으로 피검사 장치에 디버그 명령을 쌍방향 인가하는 단계의 일부로서 변환 모듈(예를 들어, 도 2 및 도 3의 변환 모듈(202 또는 302))의 동작을 수반하는 단계의 순서도이다. 프로세스(500)의 예에서, 디버그 모듈은 단계 502에서, 고레벨 고객 언어로 기록된 검사 프로그램 명령을 포함할 수 있는 검사 프로그램에 접근할 수 있다. 사용자 입력에 응답하여, 디버그 모듈은 로딩된 검사 프로그램, 및 가능하게는 사용자 입력 및 다른 정보에 기초하여 디버그 명령을 생성할 수 있다.
단계 504에서, 변환 모듈은 예를 들어, 디버거 모듈(예를 들어, 도 2 및 도 3의 디버거 모듈(204 또는 304))로부터 디버그 명령을 수신할 수 있다. 이러한 디버그 명령은 검사 프로그램에서 명령어를 나타낼 수 있고, 및/또는 실시간 사용자-입력 명령어를 나타낼 수 있다.
디버그 명령의 정확한 성질에 관계없이, 변환 모듈은 단계 506에서, 검사기(예를 들어, 도 2 및 도 3의 검사기(206 또는 306))에 의해 인식된 검사기 명령을 생성할 수 있다. 단계 508에서, 변환 모듈은 이러한 검사기 명령을 검사기에 인가할 수 있고, 검사기는 적절한 프로토콜을 사용하여 DUT에 다양한 입출력 동작을 실행할 수 있다. 이러한 검사기는 DUT 인식 PA 엔진(예를 들어, 도 2 및 도 3의 PA 엔진(210 또는 310))을 사용함으로써 DUT에 검사기 명령을 인가하는 방법을 결정할 수 있다. 그다음, 이러한 검사기는 명령어의 결과를 얻을 수 있고, 이것을 검사기는 단계 510에서 변환 모듈로 전달하여, 디버거에 의해 구현된 인터페이스를 통해 사용자에게 제공될 수 있다.
단계 512에서, 프로그램의 디버깅이 완료되면, 프로세스는 종료된다. 그렇지 않으면, 프로세스는 단계 504로 돌아가고 변환 모듈은 고객 코드의 다음 명령어로부터, 또는 다른 실시간 사용자-입력 명령어로부터 다음 디버그 명령을 수신할 수 있다. 이러한 방식으로, 디버그 명령은 예를 들어, 검사 패턴을 미리 생성하고 검사기 하드웨어에 저장할 필요없이 변환 모듈에 제공된 다음, 검사기에 의해 실행된다. 그결과, 디버그 명령이 생성될 때 실시간으로 실행되는 것으로 사용자에게 나타난다.
따라서, 변환 모듈은 디버그 툴을 위한 추상화 계층을 제공할 수 있고 사용자는 디버그 툴을 사용하여 검사기의 세부사항을 숨길 수 있다. 마찬가지로, PA 엔진, 및 DIT와 통신하는데 필요한 DUT-특정 프로토콜은 DUT와 상호작용하는데 필요한 제어 신호의 세부사항을 숨긴다. 이러한 구성요소에 의해 디버그 툴은 DUT와 보다 단순하게 인터페이스할 수 있고 및/또는 디버그 툴에 익숙한 명령을 사용하여 시스템을 검사할 수 있다. 그래서, 사용자는 검사기 및 DUT에 대한 저레벨 이진 검사 패턴의 오프라인 생성에 의존할 필요없이 온라인 방식으로 고레벨 쌍방향 디버깅을 실행할 수 있다.
도 6은 기기 명령으로 디버그 명령의 변환을 실행하거나(예를 들어, 도 2 및 도 3의 변환 모듈(202 또는 302)) DUT의 쌍방향 디버깅을 사용자에게 제공하도록(예를 들어, 도 1 및 도 3의 검사 컴퓨터(104 또는 312)), 여기에 기술된 기술중 하나 이상을 구현하는데 사용될 수 있는 대표적인 컴퓨팅 장치(600)의 개략도이다. 컴퓨팅 장치(600)는 또한 DUT 자체(예를 들어, 도 2 및 도 3의 DUT(208 또는 308))를 나타낼 수 있다. 컴퓨팅 장치(600)는 하나 이상의 프로세서(602) 및 하나 이상의 비임시 컴퓨터 판독가능 저장 매체(예를 들어, 메모리(604) 및 하나 이상의 비휘발성 저장 매체(606))를 포함할 수 있다. 프로세서(602)는 메모리(604) 및 비휘발성 저장 장치(606)에 대해 임의의 적절한 방식으로 데이터를 기록하고 판독하는 것을 제어할 수 있고, 여기에 기술된 발명의 특징은 이에 제한되지 않는다. 여기에 기술된 기능 및/또는 기술을 실행하기 위해, 프로세서(602)는 프로세서(602)에 의해 실행되기 위한 명령어를 저장하는 비임시 컴퓨터 판독가능 저장 매체로서 기능할 수 있는 하나 이상의 컴퓨터 판독가능 저장 매체(예를 들어, 메모리(604), 저장 매체등)에 저장된 하나 이상의 명령어를 실행할 수 있다. 컴퓨팅 장치(600)는 또한 예를 들어, 데이터를 전송하고, 계산을 실행하고, I/O 기능을 실행하는데 필요한 임의의 다른 프로세서, 제어기 또는 제어 장치를 포함할 수 있다.
여기에 기술된 변형 기술에 관련하여, 프로그램을 디버깅하거나, 디버그 명령을 기기 명령으로 전환하거나 쌍방향 디버깅 환경을 제공하는 하나 이상의 프로그램이 컴퓨팅 장치(600)의 하나 이상의 컴퓨터 판독가능 저장 매체에 저장될 수 있다. 프로세서(602)는 컴퓨팅 장치(600)에 국부적으로 저장됨으로써 프로세서에 유용하거나 네트워크를 통해 접근가능한 이러한 프로그램의 임의의 하나 이상의 조합을 실행할 수 있다. 여기에 기술된 임의의 다른 소프트웨어, 프로그램 또는 명령어 역시 컴퓨팅 장치(600)에 의해 저장되고 실행될 수 있다. 컴퓨터(600)는 독립형 컴퓨터, 모바일 장치등일 수 있고, 네트워크에 접속될 수 있고 이러한 네트워크를 통해 리소스에 접근할 수 있고 및/또는 이러한 네트워크에 접속된 하나 이상의 다른 컴퓨터와 통신할 수 있다.
본 발명의 다수의 실시예가 여기에 기술되고 설명되었지만, 당업자는 여기에 기술된 기능을 실행하고 및/또는 결과 및/또는 하나 이상의 장점을 얻기 위한 다양한 다른 수단 및/또는 구조를 용이하게 고안할 수 있을 것이고, 이러한 변형 및/또는 수정의 각각은 본 발명의 범위안에 있다.
예를 들어, 디버거 및 변환 모듈이 별개의 구성요소로 도시되어 있지만, 이러한 구현은 설명을 위한 것이다. 이러한 구성요소의 특정 구조는 본 발명의 핵심이 아니다. 예를 들어, 변환은 디버그 모듈의 일부로서 실행될 수 있다. 대안으로 또는 추가로, 시스템에 의해 지원되는 디버그 명령의 일부 또는 모두가 변환 모듈에서 구현될 수 있다.
보다 일반적으로, 당업자는 여기에 기술된 모든 파라미터, 치수, 재료 및 구성은 예이고 실제 파라미터, 치수, 재료 및/또는 구성은 본 발명의 구성이 사용되는 특정 적용에 의존할 것이다. 당업자는 여기에 기술된 본 발명의 특정 실시예의 많은 등가물을 이해할 것이다. 따라서, 상기 실시예는 예시로 제시되어 있고 첨부된 청구범위 및 그 등가물의 범위에서 본 발명이 특정 기술되고 청구된 것 이외의 방식으로 실시될 수 있다는 것을 이해해야 한다. 본 발명은 여기에 기술된 각 개별적인 특징, 시스템, 부품, 재료, 장비 및/또는 방법에 관한 것이다. 또한, 2개 이상의 이러한 특징, 시스템, 부품, 재료, 장비 및/또는 방법의 임의의 조합은 이러한 특징, 시스템, 부품, 재료, 장비 및/또는 방법이 상호 모순되지 않는다면, 본 발명의 범위안에 포함되어 있다.
여기에서 사용된 단수는 특별히 언급되지 않으면 "적어도 하나"를 의미하는 것으로 이해되어야 한다.
명세서 및 청구범위의 "및/또는"은 "어느 하나 또는 양측 모두"를 의미하는 것으로 이해되어야 한다. "및/또는"에 의해 특정된 요소 이외의 다른 요소는 달리 언급되지 않으면 특저오딘 요소와 관련되어 있거나 관련되어 있지 않거나, 옵션으로 존재할 수 있다. 따라서, 비제한의 예로서, "포함하는"과 같은 개방형 언어와 함께 사용될 때 "A 및/또는 B"는 하나의 실시예에서 B 없는 A(옵션으로 B 이외의 요소를 포함한다)를 가리키고; 다른 실시예에서, A 없는 B(옵션으로 A 이외의 요소를 포함한다); 또 다른 실시예에서, A 및 B 모두를 가리킨다.
명세서 및 청구범위에서 사용되는 바와 같이, "또는"은 위에서 정의된 "및/또는"과 동일한 의미를 갖는 것으로 이해되어야 한다. 예를 들어, 리스트에서 아이템을 분리할 때, "또는" 또는 "및/또는"은 포함의 의미로 해석되어야 한다. 즉, 다수의 또는 리스트의 요소중 적어도 하나를 포함할 뿐만 아니고 하나 보다 많은 것을 포함하고, 옵션으로 추가로 나열되지 않은 아이템 역시 포함하는 것으로 해석되어야 한다. "오직 하나" 또는 "정확한 하나" 또는, 청구범위에 사용될 때, "구성되어 있는"과 같은 반대로 명백하게 표시되는 용어만이 다수의 요소 또는 리스트의 요소중 정확하게 하나의 요소를 포함하는 것을 가리킨다. 일반적으로, 여기에 사용된 용어 "또는"은 "어느 하나", "중 하나", "중 오직 하나" 또는 "정확한 하나"와 같은 배타적인 용어에 의해 수식될 때만 배타적 대안(즉, 하나 또는 다른 것, 하지만 양측은 아님)을 가리키는 것으로 해석되어야 한다. "본질상 구성된"은 청구범위에서 사용될 때 특허범 분야에서 사용되는 보통의 의미를 갖고 있다.
명세서 및 청구범위에서 사용된 바와 같이, "적어도 하나"는 나열된 요소의 임의의 하나 이상의 요소로부터 선택된 적어도 하나의 요소를 의미하는 것으로 해석되어야 하고, 반드시 요소의 리스트에 구체적으로 나열된 각각의 요소 및 모든 요소의 적어도 하나를 포함하는 것은 아니고 요소의 리스트의 요소의 임의의 조합을 제외하지 않는다. 이러한 정의에 의해 요소는 특정된 요소와 관련되거나 관련되지 않거나 상과없이, "적어도 하나"가 가리키는 요소의 리스트내의 구체적으로 식별된 요소 이외의 요소가 옵션으로 존재할 수 있다. 따라서, 비제한의 예로서, "A 및 B의 적어도 하나"(또는, 등가물로 "A 또는 B중 적어도 하나" 또는 "A 및/또는 B중 적어도 하나")는 하나의 실시예에서, B가 존재하지 않는 (옵션으로 B 이외의 요소를 포함하는) 적어도 하나, 옵션으로 하나 보다 많은 A를; 다른 실시예에서, A가 존재하지 않는 (옵션으로 B 이외의 요소를 포함하는) 적어도 하나, 옵션으로 하나 보다 많은 B를; 또 다른 실시예에서, 적어도 하나의, 옵션으로 하나 보다 많은 A를 포함하고, 적어도 하나의, 옵션으로 하나 보다 많은 B를 포함하는 (옵션으로 다른 요소를 포함하는) 것등을 가리킬 수 있다.
명세서는 물론 청구범위에서, "포함하는", "구비하는", "갖는", "수반하는", "유지하는"등과 같은 모든 구는 개방형, 즉, 포함하지만 이에 제한되지 않는 것으로 이해되어야 한다. 오직 "구성되어 있는" 및 "본질상 구성되어 있는" 만이 United States Patent Office Manual of Patent Examining Procedures, Section 2111.03에 제시된 바와 같이, 폐쇄되거나 반폐쇄된 구가 된다.

Claims (27)

  1. 적어도 하나의 컴퓨터 판독가능 저장 매체로서,
    컴퓨팅 장치의 적어도 하나의 프로세서에서 실행될 때,
    상기 컴퓨팅 장치의 사용자로부터 디버그 입력을 쌍방향으로 수신하는 단계;
    복수의 검사 프로그램 명령을 포함하는 검사 프로그램에 접근하는 단계;
    상기 디버그 입력 및 검사 프로그램 명령에 따라 피검사 장치(DUT)를 자극하고 상기 DUT로부터 응답을 수신하기 위해 검사기의 기기를 제어하도록 구성된 기기 명령을 생성하는 단계; 및
    상기 기기 명령을 상기 검사기의 기기에 인가하는 단계를 포함하는 디버그 방법을 구현하는 컴퓨터 실행가능 명령어를 포함하는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체.
  2. 제1항에 있어서,
    상기 디버그 입력을 쌍방향으로 수신하는 단계는,
    상기 사용자로부터 제1 및 제2 디버그 입력을 수신하는 단계;
    상기 제1 디버그 입력에 따라 제1 디버그 명령을 생성하는 단계;
    상기 제1 디버그 명령을 상기 검사기에 인가하는 단계; 및
    상기 제1 디버그 명령을 상기 검사기에 인가한 결과에 응답하여, 상기 제2 디버그 입력에 따라 제2 디버그 명령을 생성하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체.
  3. 제1항에 있어서, 상기 디버그 입력을 쌍방향으로 수신하는 단계는 상기 디버그 입력의 수신에 이어 상기 디버그 명령을 실시간으로 생성하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체.
  4. 제1항에 있어서, 상기 DUT를 자극하고 상기 DUT로부터 응답을 수신하는 단계는 상기 DUT에 대한 기능적으로 적절한 작업 환경에 따라 실행되도록 구성된 것을 특징으로 하는 컴퓨터 판독가능 저장 매체.
  5. 제1항에 있어서, 상기 기기 명령을 생성하는 컴퓨터 실행가능 명령어는 상기 디버그 입력 및 검사 프로그램 명령을 이진 검사 패턴으로 변환하기 위한 컴퓨터 실행가능 명령어를 포함하는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체.
  6. 제1항에 있어서, 상기 디버그 입력은 상기 검사 프로그램 내의 사전결정된 로케이션에서 상기 검사 프로그램의 실행을 중지시키는 적어도 하나의 명령을 포함하고,
    상기 디버그 입력 및 검사 프로그램 명령에 따라 기기를 제어하도록 구성된 기기 명령을 생성하는 단계는 상기 사전결정된 로케이션까지 상기 검사 프로그램 내의 검사 프로그램 명령을 실행하기 위해 기기를 제어하도록 구성된 기기 명령을 생성하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체.
  7. 제6항에 있어서, 상기 디버그 방법은 상기 사전결정된 로케이션까지 상기 검사 프로그램 내의 검사 프로그램 명령이 실행되었다는 표시를 사용자에게 제공하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체.
  8. 제1항에 있어서, 실행될 때, 상기 사용자로부터 프로그램 수정 명령을 수신하고 상기 수신된 프로그램 수정 명령에 기초하여 검사 프로그램을 수정하는 컴퓨터 실행가능 명령어를 더 포함하는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체.
  9. 제1항에 있어서,
    상기 디버그 입력은 상기 DUT로부터 데이터를 판독하는 적어도 하나의 명령을 포함하고,
    상기 디버그 입력은 상기 DUT로부터 데이터를 판독하기 위한 프로토콜과 관계없는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체.
  10. 제1항에 있어서, 상기 DUT의 코어와 관련된 검사 데이터를 생성하고 및/또는 측정하기 위해 상기 코어와 상호작용하도록 상기 DUT 내의 프로세서를 제어하기 위해 상기 프로세서에서 실행되기 위한 명령어를 포함하는 검사 프로그램을 더 포함하는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체.
  11. 검사 시스템 동작 방법으로서,
    적어도 하나의 디버그 툴에 의해, 사용자 입력을 수신하고, 상기 사용자 입력에 응답하여, 복수의 디버그 명령을 생성하는 단계;
    상기 복수의 디버그 명령을 인터페이스에서 수신하는 단계;
    상기 인터페이스에서, 상기 복수의 디버그 명령을 검사 시스템에 인가하기 위해 실시간으로 포맷팅하는 단계;
    상기 포맷팅된 명령을 상기 검사 시스템에 인가하는 단계; 및
    상기 검사 시스템에서, 상기 복수의 디버그 명령 및 피검사 장치와 연관된 프로토콜 정보에 따라 상기 피검사 장치를 자극하고 상기 피검사 장치의 응답을 측정하도록 하나 이상의 기기를 제어하는 단계를 포함하는 것을 특징으로 하는 검사 시스템 동작 방법.
  12. 제11항에 있어서, 상기 피검사 장치를 자극하고 상기 피검사 장치의 응답을 측정하는 단계는 상기 DUT의 기능적으로 적절한 작업 환경에 따라 실행되도록 구성되는 것을 특징으로 하는 검사 시스템 동작 방법.
  13. 제11항에 있어서, 상기 복수의 디버그 명령을 포맷팅하는 단계는 복수의 고레벨 기기 명령을 생성하는 단계를 포함하는 것을 특징으로 하는 검사 시스템 동작 방법.
  14. 제11항에 있어서, 상기 하나 이상의 기기를 제어하는 단계는 적어도 부분적으로 상기 고레벨 기기 명령 및 프로토콜 정보에 기초하여 이진 검사 패턴을 생성하는 단계를 포함하는 것을 특징으로 하는 검사 시스템 동작 방법.
  15. 제11항에 있어서, 상기 검사 시스템에서 상기 하나 이상의 기기를 제어하는 단계는 상기 피검사 장치로부터의 응답에 의해 결정된 시간에 상기 피검사 장치를 자극하는 신호를 생성하도록 상기 검사 시스템 내의 프로토콜 인식 엔진 또는 ATE 기기를 동작시키는 단계를 포함하는 것을 특징으로 하는 검사 시스템 동작 방법.
  16. 제15항에 있어서, 상기 디버그 명령이 상기 피검사 장치에 의해 사용된 프로토콜과 관계없도록 상기 피검사 장치와 연관된 프로토콜 정보에 기초하여 상기 프로토콜 인식 엔진 또는 ATE 기기 엔진을 구성하는 단계를 더 포함하는 것을 특징으로 하는 검사 시스템 동작 방법.
  17. 제11항에 있어서, 상기 포맷팅된 디버그 명령이 완료되었다는 표시를 상기 인터페이스에서 수신하는 단계를 더 포함하는 것을 특징으로 하는 검사 시스템 동작 방법.
  18. 제17항에 있어서, 상기 제1 포맷팅된 디버그 명령은 상기 피검사 장치에 의한 비결정론적인(non-deterministic) 동작을 명시하는 명령어를 포함하는 것을 특징으로 하는 검사 시스템 동작 방법.
  19. 제11항에 있어서,
    상기 포맷팅된 명령은 보다 높은 레벨의 프로그래밍 언어로 포맷팅되고;
    상기 하나 이상의 기기를 제어하는 단계는 보다 낮은 레벨의 언어로 명령을 생성하는 단계를 포함하는 것을 특징으로 하는 검사 시스템 동작 방법.
  20. 제11항에 있어서,
    상기 피검사 장치는 프로세서 코어를 포함하고;
    상기 복수의 디버그 명령은 JTAG 인터페이스 또는 다른 제어 인터페이스를 통해 상기 피검사 장치에 검사 프로그램을 로딩하는 명령을 포함하고, 상기 검사 프로그램은 상기 피검사 장치 내의 하나 이상의 다른 서브시스템과의 상호작용을 수반하는 검사 기능을 실행하도록 상기 프로세서 코어를 제어하기 위해, 상기 프로세서 코어에 의한 실행을 위해 포맷팅되는 것을 특징으로 하는 검사 시스템 동작 방법.
  21. 제20항에 있어서, 상기 검사 시스템 내의 상기 하나 이상의 기기를 제어하는 단계는,
    상기 프로세서 코어에 의한 상기 검사 프로그램의 일부의 실행을 제어하는 신호를 생성하고;
    상기 검사 프로그램의 일부의 실행과 동기화된 시간에 상기 피검사 장치에 의해 출력된 신호를 측정하도록 상기 하나 이상의 기기를 제어하는 단계를 포함하는 것을 특징으로 하는 검사 시스템 동작 방법.
  22. 검사 장치로서,
    검사기 내에 배치되어 있는 복수의 기기로서, 각각 피검사 장치에 인가되기 위한 적어도 하나의 신호를 생성하고 및/또는 측정하도록 구성된 복수의 기기; 및
    적어도 하나의 프로세서를 포함하고,
    상기 적어도 하나의 프로세서는,
    인터페이스를 포함하는 디버거 모듈로서, 디버그 명령을 생성하기 위해 상기 인터페이스를 통해 수신된 정보에 응답하여 적어도 하나의 디버그 툴을 실행하도록 구성된 디버거 모듈;
    입력부를 포함하는 검사기 제어 모듈로서, 상기 입력부를 통해 수신된 기기 명령에 기초하여 상기 피검사 장치에 인가되기 위한 신호를 생성하고 및/또는 측정하도록 상기 복수의 기기를 제어하는 제어 신호를 실시간으로 생성하도록 구성된 검사기 제어 모듈; 및
    상기 디버거 모듈과 상기 검사기 제어 모듈 사이에 결합된 변환 모듈을 구현하도록 구성되어 있고,
    상기 변환 모듈은,
    상기 디버거 모듈로부터 제1 세트의 디버그 명령을 수신하고;
    상기 제1 세트의 디버그 명령에 기초하여, 제2 세트의 기기 명령을 생성하고;
    상기 제1 세트의 디버그 명령의 수신과 관련하여 상기 제2 세트의 기기 명령을 상기 검사기 제어 모듈의 입력부에 실시간으로 인가하도록 구성된 것을 특징으로 하는 검사 장치.
  23. 제22항에 있어서, 상기 검사기 제어 모듈은 또한, 상기 피검사 장치를 위한 기능적으로 적절한 작업 환경에 따라 제어 신호를 실시간으로 생성하도록 구성된 것을 특징으로 하는 검사 장치.
  24. 제22항에 있어서,
    상기 적어도 하나의 프로세서는 적어도 제1 프로세서 및 제2 프로세서를 포함하고;
    상기 제1 프로세서는 상기 디버거 모듈을 구현하도록 구성되어 있고;
    상기 제2 프로세서는 상기 검사기 내에 배치되어 있고;
    상기 제2 프로세서는 상기 검사기 제어 모듈을 구현하도록 구성되어 있는 것을 특징으로 하는 검사 장치.
  25. 제22항에 있어서, 상기 검사기 제어 모듈은 적어도 하나의 프로토콜 인식 엔진 또는 ATE 기기 엔진을 포함하는 것을 특징으로 하는 검사 장치.
  26. 제22항에 있어서, 상기 검사기 제어 모듈은, 또한,
    복수의 프로토콜로 상기 입력부를 통해 수신된 기기 명령으로부터 제어 신호를 생성하고;
    상기 복수의 프로토콜에서 하나의 프로토콜을 선택하는 제어 신호를 수신하도록 구성되어 있는 것을 특징으로 하는 검사 장치.
  27. 제22항에 있어서,
    상기 디버거 모듈은 상기 기기 명령의 포맷과 관련없는 포맷으로 디버그 명령을 생성하도록 구성되어 있는 것을 특징으로 하는 검사 장치.
KR1020157012641A 2012-11-19 2013-11-08 반도체 장치 검사 환경에서의 디버깅 KR102104915B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/680,407 2012-11-19
US13/680,407 US9959186B2 (en) 2012-11-19 2012-11-19 Debugging in a semiconductor device test environment
PCT/US2013/069215 WO2014078196A1 (en) 2012-11-19 2013-11-08 Debugging in a semiconductor device test environment

Publications (2)

Publication Number Publication Date
KR20150087227A true KR20150087227A (ko) 2015-07-29
KR102104915B1 KR102104915B1 (ko) 2020-04-27

Family

ID=50729128

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157012641A KR102104915B1 (ko) 2012-11-19 2013-11-08 반도체 장치 검사 환경에서의 디버깅

Country Status (5)

Country Link
US (1) US9959186B2 (ko)
KR (1) KR102104915B1 (ko)
CN (1) CN104797948B (ko)
TW (2) TWI619955B (ko)
WO (1) WO2014078196A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210116604A (ko) * 2019-01-22 2021-09-27 주식회사 아도반테스토 온-칩-시스템 테스트 제어기를 사용하는 자동 테스트 장비

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9430348B2 (en) * 2013-01-24 2016-08-30 Xcerra Corporation Scalable test platform in a PCI express environment with direct memory access
US9430349B2 (en) * 2013-01-24 2016-08-30 Xcerra Corporation Scalable test platform in a PCI express environment with direct memory access
US9459978B2 (en) * 2013-01-24 2016-10-04 Xcerra Corporation Automated test platform utilizing segmented data sequencers to provide time controlled test sequences to device under test
US9336108B2 (en) 2013-01-24 2016-05-10 Xcerra Corporation Scalable test platform
US20140230052A1 (en) * 2013-02-11 2014-08-14 Motorola Mobility Llc System and method for testing a secured manufactured device
CN104133745A (zh) * 2013-04-30 2014-11-05 鸿富锦精密工业(深圳)有限公司 具有测试功能的电子装置及测试方法和系统
US9244126B2 (en) * 2013-11-06 2016-01-26 Teradyne, Inc. Automated test system with event detection capability
CN105446866A (zh) * 2014-08-22 2016-03-30 全智科技股份有限公司 一种跨平台测试装置
US9514032B2 (en) * 2014-09-23 2016-12-06 International Business Machines Corporation Real-time usage checking of dynamically generated program output
ES2864729T3 (es) * 2014-10-30 2021-10-14 Spherea Test & Services Banco y software para probar un equipo eléctrico, en especial un ordenador
TWI628942B (zh) * 2015-02-05 2018-07-01 絡達科技股份有限公司 可自我檢測操作狀態之通訊模組、通訊裝置及其檢測方法
FR3033412B1 (fr) * 2015-03-06 2019-04-12 Starchip Testeur de circuits integres sur une galette de silicium et circuit integre.
US10429437B2 (en) * 2015-05-28 2019-10-01 Keysight Technologies, Inc. Automatically generated test diagram
KR20160148921A (ko) * 2015-06-17 2016-12-27 에스케이하이닉스 주식회사 반도체 장치를 위한 휴대 가능한 테스트 장치 및 이를 이용한 테스트 방법
CN106330593B (zh) * 2015-07-01 2021-03-26 中兴通讯股份有限公司 协议检测方法及装置
CN105044508B (zh) * 2015-07-10 2017-10-27 珠海格力电器股份有限公司 产品测试方法和装置及测试系统
CN106569970A (zh) * 2015-10-08 2017-04-19 中兴通讯股份有限公司 Smi接口器件的调试装置及方法
CN105445644A (zh) * 2015-11-18 2016-03-30 南昌欧菲生物识别技术有限公司 多类型芯片测试板、测试系统及测试机台
US10235272B2 (en) * 2017-03-06 2019-03-19 Xilinx, Inc. Debugging system and method
US10782348B2 (en) * 2017-03-10 2020-09-22 Keithley Instruments, Llc Automatic device detection and connection verification
TWI762538B (zh) * 2017-12-13 2022-05-01 英業達股份有限公司 電路板的電壓腳位導通檢測系統及其方法
US11295051B2 (en) * 2018-03-13 2022-04-05 Hcl Technologies Limited System and method for interactively controlling the course of a functional simulation
US10789153B2 (en) * 2018-04-03 2020-09-29 Xilinx, Inc. Debug controller circuit
US11030381B2 (en) 2019-01-16 2021-06-08 Taiwan Semiconductor Manufacturing Co., Ltd. Leakage analysis on semiconductor device
JP7317209B2 (ja) * 2019-08-06 2023-07-28 株式会社アドバンテスト 処理ユニット並びにプログラム及び/又はデータメモリを含む被試験デバイスをテストするための自動試験機器、テストコントローラ、被試験デバイスへの1又は複数のインターフェース、共有メモリを含む自動試験機器、並びに被試験デバイスをテストするための方法
CN110634530B (zh) * 2019-09-10 2021-05-25 珠海博雅科技有限公司 芯片的测试系统和测试方法
CN111258826B (zh) * 2020-01-09 2023-08-15 深圳市德明利技术股份有限公司 一种存储设备的命令序列测试方法和装置以及设备
JP7504283B2 (ja) * 2020-07-21 2024-06-21 株式会社アドバンテスト 1つ以上の被試験デバイスをテストするための自動試験装置、方法およびコンピュータプログラムであって、異なるテストアクティビティが被試験デバイスのリソースのサブセットを使用する、自動試験装置、方法およびコンピュータプログラム
CN111984435A (zh) * 2020-08-20 2020-11-24 中电科仪器仪表有限公司 一种测试程序的执行与调试方法及系统
CN112630651A (zh) * 2020-11-27 2021-04-09 四川诚邦浩然测控技术有限公司 一种电机性能测控管理平台
US12008043B2 (en) * 2021-03-29 2024-06-11 Microsoft Technology Licensing, Llc Natural language query processing and debugging
US11544210B1 (en) 2021-07-15 2023-01-03 Beijing Tenafe Electronic Technology Co., Ltd. Collection of runtime information for debug and analysis
US11620176B2 (en) 2021-07-15 2023-04-04 Beijing Tenafe Electronic Technology Co., Ltd. Visualization system for debug or performance analysis of SOC systems
CN113849358B (zh) * 2021-09-18 2024-07-30 北京计算机技术及应用研究所 一种便携式综合接口调试设备的设计方法
CN114646867B (zh) * 2022-05-18 2022-10-28 南京宏泰半导体科技有限公司 一种集成电路并发测试装置及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6182258B1 (en) * 1997-06-03 2001-01-30 Verisity Ltd. Method and apparatus for test generation during circuit design
US7069526B2 (en) * 1999-11-30 2006-06-27 Synplicity, Inc. Hardware debugging in a hardware description language
US7085980B2 (en) * 2002-05-02 2006-08-01 International Business Machines Corporation Method and apparatus for determining the failing operation of a device-under-test
KR20120023601A (ko) * 2009-03-04 2012-03-13 알까뗄 루슨트 여러 프로세서들을 사용하는 시스템 테스트 방법 및 장치

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4894829A (en) * 1988-04-21 1990-01-16 Honeywell Inc. Comprehensive design and maintenance environment for test program sets
US5668745A (en) * 1995-10-20 1997-09-16 Lsi Logic Corporation Method and apparatus for testing of semiconductor devices
US6134707A (en) * 1996-11-14 2000-10-17 Altera Corporation Apparatus and method for in-system programming of integrated circuits containing programmable elements
US6128759A (en) * 1998-03-20 2000-10-03 Teradyne, Inc. Flexible test environment for automatic test equipment
US6681351B1 (en) * 1999-10-12 2004-01-20 Teradyne, Inc. Easy to program automatic test equipment
US6622272B1 (en) * 2000-03-10 2003-09-16 Teradyne, Inc. Automatic test equipment methods and apparatus for interfacing with an external device
JP4574894B2 (ja) * 2001-05-10 2010-11-04 株式会社アドバンテスト 半導体試験用プログラムデバッグ装置
US7996827B2 (en) 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US6941504B2 (en) * 2001-11-15 2005-09-06 International Business Machines Corporation Method and apparatus for test case evaluation using a cyclic redundancy checker
US6973607B2 (en) * 2001-11-29 2005-12-06 International Business Machines Corporation Method and apparatus for testing electronic components
US20030115517A1 (en) * 2001-12-18 2003-06-19 Rutten Ivo Wilhelmus Johaooes Marie Microprocessor-based probe for integrated circuit testing
TWI328164B (en) 2002-05-29 2010-08-01 Tokyo Electron Ltd Method and apparatus for monitoring tool performance
JP4009517B2 (ja) * 2002-10-18 2007-11-14 株式会社アドバンテスト プログラム開発支援装置およびコンパイル方法
US7139949B1 (en) * 2003-01-17 2006-11-21 Unisys Corporation Test apparatus to facilitate building and testing complex computer products with contract manufacturers without proprietary information
EP1672508A4 (en) * 2003-10-07 2010-06-30 Advantest Corp TEST PROGRAM DE-GROWING DEVICE, SEMICONDUCTOR TESTING DEVICE, AND TESTING METHOD
US7107173B2 (en) * 2004-02-03 2006-09-12 Credence Systems Corporation Automatic test equipment operating architecture
US7362089B2 (en) * 2004-05-21 2008-04-22 Advantest Corporation Carrier module for adapting non-standard instrument cards to test systems
DE602004020401D1 (de) * 2004-10-08 2009-05-14 Verigy Pte Ltd Singapore Merkmalorientierte testprogrammentwicklung und ausführung
US7552360B2 (en) * 2005-03-21 2009-06-23 Texas Instruments Incorporated Debug and test system with format select register circuitry
US7376876B2 (en) * 2004-12-23 2008-05-20 Honeywell International Inc. Test program set generation tool
US7251763B2 (en) * 2005-03-07 2007-07-31 Motorola, Inc. Boundary scan testing system
US7343558B2 (en) * 2005-03-31 2008-03-11 Teradyne, Inc. Configurable automatic-test-equipment system
US7536597B2 (en) * 2005-04-27 2009-05-19 Texas Instruments Incorporated Apparatus and method for controlling power, clock, and reset during test and debug procedures for a plurality of processor/cores
JP4427002B2 (ja) * 2005-05-20 2010-03-03 株式会社アドバンテスト 半導体試験用プログラムデバッグ装置
WO2007000806A1 (ja) 2005-06-28 2007-01-04 Genesis Technology Inc. 半導体集積回路開発支援システム
US20070262879A1 (en) * 2006-05-12 2007-11-15 Robert Greiner I/O bus for analog sensors in an IC
US7590903B2 (en) * 2006-05-15 2009-09-15 Verigy (Singapore) Pte. Ltd. Re-configurable architecture for automated test equipment
US7844412B2 (en) * 2006-07-10 2010-11-30 Blancha Barry E System and method for performing processing in a testing system
US20080126655A1 (en) * 2006-09-06 2008-05-29 Heinz Baier Single pci card implementation of development system controller, lab instrument controller, and jtag debugger
US20090112548A1 (en) * 2007-10-30 2009-04-30 Conner George W A method for testing in a reconfigurable tester
US20090113245A1 (en) 2007-10-30 2009-04-30 Teradyne, Inc. Protocol aware digital channel apparatus
JP5022262B2 (ja) * 2008-02-12 2012-09-12 株式会社アドバンテスト デバッグ中にツールを使用可能な試験システム及び方法
WO2010054669A1 (en) 2008-11-11 2010-05-20 Verigy (Singapore) Pte.Ltd. Re-configurable test circuit, method for operating an automated test equipment, apparatus, method and computer program for setting up an automated test equipment
US8195419B2 (en) 2009-03-13 2012-06-05 Teradyne, Inc. General purpose protocol engine
US9164859B2 (en) * 2009-09-25 2015-10-20 Qualcomm Incorporated Computing device for enabling concurrent testing
TWI463502B (zh) * 2010-11-17 2014-12-01 Hoy Technologies Co 內嵌式測試模組
US8639981B2 (en) * 2011-08-29 2014-01-28 Apple Inc. Flexible SoC design verification environment
US8806453B1 (en) * 2011-09-15 2014-08-12 Lockheed Martin Corporation Integrating disparate programming languages to form a new programming language
US20130227367A1 (en) * 2012-01-17 2013-08-29 Allen J. Czamara Test IP-Based A.T.E. Instrument Architecture
US9311201B2 (en) * 2012-08-22 2016-04-12 International Business Machines Corporation Real-time rule engine for adaptive testing of integrated circuits

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6182258B1 (en) * 1997-06-03 2001-01-30 Verisity Ltd. Method and apparatus for test generation during circuit design
US7069526B2 (en) * 1999-11-30 2006-06-27 Synplicity, Inc. Hardware debugging in a hardware description language
US7085980B2 (en) * 2002-05-02 2006-08-01 International Business Machines Corporation Method and apparatus for determining the failing operation of a device-under-test
KR20120023601A (ko) * 2009-03-04 2012-03-13 알까뗄 루슨트 여러 프로세서들을 사용하는 시스템 테스트 방법 및 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210116604A (ko) * 2019-01-22 2021-09-27 주식회사 아도반테스토 온-칩-시스템 테스트 제어기를 사용하는 자동 테스트 장비

Also Published As

Publication number Publication date
CN104797948A (zh) 2015-07-22
TW201421053A (zh) 2014-06-01
WO2014078196A1 (en) 2014-05-22
CN104797948B (zh) 2017-08-08
TWI619955B (zh) 2018-04-01
US20140143600A1 (en) 2014-05-22
TW201809709A (zh) 2018-03-16
US9959186B2 (en) 2018-05-01
KR102104915B1 (ko) 2020-04-27

Similar Documents

Publication Publication Date Title
KR102104915B1 (ko) 반도체 장치 검사 환경에서의 디버깅
US9836372B1 (en) Device verification system with firmware universal verification component
JP2004509425A (ja) テストコントローラアクセスデータを用いて回路をテスト及び/または診断する方法及びシステム
US20160238657A1 (en) Test IP-Based A.T.E. Instrument Architecture
US7047174B2 (en) Method for producing test patterns for testing an integrated circuit
JP2009116876A (ja) 試験装置のシミュレーションシステム、方法、及びプログラム製品
JP2010146592A (ja) テストプログラムデバッグ装置、半導体試験装置、テストプログラムデバッグ方法、及び試験方法
JP2009116878A (ja) 試験装置のシミュレーションシステム、方法、及びプログラム製品
JP4959941B2 (ja) ソフトウェアの双方向プロービング
US20220253375A1 (en) Systems and methods for device testing to avoid resource conflicts for a large number of test scenarios
JP2011248597A (ja) テスタシミュレーション装置、テスタシミュレーションプログラムおよびテスタシミュレーション方法
JP4213306B2 (ja) 半導体試験用プログラムデバッグ装置
US6760904B1 (en) Apparatus and methods for translating test vectors
JP2003330747A (ja) 半導体素子のテストプログラムエミュレータ及びエミュレーション法並びに運用法
CN112527710A (zh) 一种jtag数据捕获分析系统
Kandula et al. High Speed IO Access for Test
JP2004348596A (ja) Icテスタ用プログラムのデバッグ装置、方法、及びプログラム
Miegler et al. Development of test programs in a virtual test environment
US9791506B1 (en) Cross-platform device testing through low level drivers
Lee et al. A unified test and debug platform for SOC design
Devadze et al. Microprocessor-based system test using debug interface
CN118642898A (zh) 微控制器的自动配置测试系统及方法
Erikslund Development and Implementation of a Test Sequence for a Functional Tester
Drappa et al. Automated test program generation for automotive devices
Shah et al. Design of an in-field Embedded Test Controller

Legal Events

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