KR101265116B1 - 외부 인터페이스들의 기능성을 검증하기 위한 자체-테스트 특징을 갖는 집적 회로 - Google Patents

외부 인터페이스들의 기능성을 검증하기 위한 자체-테스트 특징을 갖는 집적 회로 Download PDF

Info

Publication number
KR101265116B1
KR101265116B1 KR1020107000661A KR20107000661A KR101265116B1 KR 101265116 B1 KR101265116 B1 KR 101265116B1 KR 1020107000661 A KR1020107000661 A KR 1020107000661A KR 20107000661 A KR20107000661 A KR 20107000661A KR 101265116 B1 KR101265116 B1 KR 101265116B1
Authority
KR
South Korea
Prior art keywords
message
logic circuit
test
processor
integrated circuit
Prior art date
Application number
KR1020107000661A
Other languages
English (en)
Other versions
KR20100027214A (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 KR20100027214A publication Critical patent/KR20100027214A/ko
Application granted granted Critical
Publication of KR101265116B1 publication Critical patent/KR101265116B1/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/3187Built-in 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/302Contactless testing
    • G01R31/305Contactless testing using electron beams
    • G01R31/307Contactless testing using electron beams of integrated 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/26Functional testing
    • G06F11/27Built-in tests

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

본 개시내용은 외부 인터페이스들의 기능성을 검증하기 위한 자체 테스트 특징들을 갖는 집적 회로를 설명한다. 예시적인 외부 인터페이스들은 메모리 인터페이스들 및 주변 컴포넌트 상호접속(peripheral component interconnect, PCI), 향상된 고성능 버스(advanced high-performance bus, AHB), 향상된 익스텐서블 인터페이스(advance extensible interface, AXI) 버스, 및 예를들어 200㎒ 이상의 고 주파수에서 동작하는 다른 외부 인터페이스들과 같은 버스 인터페이스들이 포함된다. 테스트 로직은 집적 회로 상에 내장될 수 있으며 외부 테스트 장비로부터 전력과 비테스트 신호들을 수신하면서 외부 인터페이스들의 기능성을 검증하도록 구성될 수 있다. 따라서, 외부 테스트 장비는 집적 회로에 고 주파수 테스트 신호들을 제공하지 않을 수 있다. 그러나, 외부 테스트 장비는 집적 회로의 핀 인터페이스의 기능성을 독립적으로 검증할 수 있다. 그 결과, 집적 회로는 외부 인터페이스들의 타이밍과 기능성을 검증하는데 요구되는 비용과 시간을 감소시킬 수 있다.

Description

외부 인터페이스들의 기능성을 검증하기 위한 자체-테스트 특징을 갖는 집적 회로{INTEGRATED CIRCUIT WITH SELF-TEST FEATURE FOR VALIDATING FUNCTIONALITY OF EXTERNAL INTERFACES}
이 출원은 2007년 6월 14일 출원된 미국 가출원 제60/943,935호의 이익을 주장하며, 그 전체 내용은 참조로써 통합된다.
본 개시내용은 집적 회로들에 관련되며, 보다 상세하게는 집적 회로용 외부 인터페이스들의 기능성과 타이밍을 검증하기 위한 기술들에 관련된다.
집적 회로(integrated circuit, IC) 디바이스들은 반도체 기판에 구현된 많은 소형화된 회로들을 포함할 수 있다. IC 디바이스들은 판매되고 상업적으로 사용되기 전에 적절한 동작을 보장하기 위하여 제조 후 테스트 된다. 통상 IC 디바이스의 철저한 테스트가 복잡하고 고가의 외부 테스트 장비를 이용하여 수행된다. IC 디바이스를 테스트하기 위하여, IC 디바이스는 테스트 장비 상에 탑재된다. 특히, IC 디바이스는 코어 로직을 입/출력(I/O) 핀들에 상호접속시키는 패드 링(pad ring)을 통해 테스트 장비에 접속된다. IC 디바이스를 테스트하기 위하여, 테스트 장비는 I/O 핀들을 통해 IC 디바이스로 테스트를 정의하는 테스트 데이터를 전달하고 테스트 프로그램에 의해 정의된 테스트에 따라 IC 디바이스로부터 응답 신호들을 획득한다.
IC 디바이스를 테스트하는 것은 IC 디바이스의 내부 인터페이스들과 외부 인터페이스들에 대한 기능성 및 타이밍을 검증하는 것을 필요로 한다. 외부 인터페이스들의 예시로는 메모리 인터페이스들 및 주변 컴포넌트 상호접속(peripheral component interconnect, PCI) 버스, 향상된 고성능 버스(advanced high-performance bus, AHB), 향상된 익스텐서블 인터페이스(advance extensible interface, AXI) 인터페이스 버스, 소형 컴퓨터 시스템 인터페이스(small computer system interface, SCSI) 버스, 이더넷(Ethernet) 버스, 범용 직렬 버스(USB), 향상된 그래픽 프로세서(advanced graphics processor, AGP) 버스, 직렬 ATA(serial advanced technology attachment, SATA) 버스, 및 고 주파수에서 동작하는 다른 외부 인터페이스들과 같은 버스 인터페이스들이 포함된다. 외부 인터페이스들의 기능성 및 타이밍을 검증하는 것은 테스트 프로그램을 개발하고 시뮬레이션을 구동함에 의해 테스트 하의 외부 인터페이스를 위한 추적 파일들을 생성하기 위하여 호스트 컴퓨터를 이용하는 것을 포함한다. 테스트 벡터들, 벡터들, 또는 테스트 데이터라고도 불리는 추적 파일들이 준비되면, 상기 테스트 데이터가 테스트 장비 상에 로드(load)된다. 테스트 장비는 테스트 데이터에 따라 IC 디바이스로 테스트 신호들을 제공하고 I/O 핀들을 통해 IC 디바이스로부터 응답 신호들을 획득한다.
테스트 동안에, IC 디바이스의 동작이 송신 및 수신 모드들 모두에서 테스트된다. 송신 모드 또는 수신 모드에서, 테스트 장비는 테스트 데이터에 따라 신호 변환(transition)들을 제공하며 IC 디바이스는 대응하는 응답 신호들을 생성한다. 다음, 테스트 장비는 테스트 데이터에 따라 상기 응답들을 검증한다. 테스트들이 완료되면, 테스트 장비, 또는 더 구체적으로는, 호스트 컴퓨터가 응답 신호들을 해석한다. 호스트 컴퓨터는 송신 및 수신 모드들에서 IC 디바이스에 의해 생성된 응답 신호들을 시뮬레이트된 결과들과 비교함으로써 결과치들을 해석한다. 호스트 컴퓨터는 상기 비교에 기초하여 IC 디바이스가 테스트를 통과하였는지 여부를 표시하는 리포트를 생성한다.
또한, 각 테스트 벡터에 대하여, IC 디바이스는 다양한 동작 조건들, 예를들어 온도, 전압 변화들, 및 프로세스 코너(corner)들에 대하여 테스트될 수 있다. 또한, 테스트 장비가 외부 인터페이스의 최대 동작 주파수에서 또는 그 이상에서 신호를 생성하는 것이 요구될 수 있다. IC 디바이스들의 복잡성과 클록 주파수가 증가함에 따라, 테스트 장비 채널들이 동작하는 주파수도 또한 IC 디바이스를 신뢰성있게 테스트하기 위하여 증가되어야 할 필요가 있다. 예를들어, 고속 메모리 디바이스들의 클록 주파수가 거의 매년 마다 증가하기 때문에, 테스트 장비는 이들 디바이스들을 높은 동작 주파수들로 테스트하기 위하여 업그레이드되고, 수정되고, 또한 교체가 되기도하여야 한다. 달리 말하면, IC 디바이스들은 낮은 주파수들에서 동작하는 테스트 디바이스들 용으로 제조되었던 구식 테스트 장비를 이용해서는 IC 디바이스들의 최대 클록 주파수에서 테스트될 수 없다. 따라서, 클록 주파수의 각 향상(advance)에 따라 테스트 장비가 업그레이드되거나 구매되어야 하고 새로운 테스트 프로그램들이 개발되어야 하며, 이에 의해 새로운 IC 디바이스들의 가격을 증가시킨다.
본 개시내용은 고 주파수 외부 인터페이스들의 기능성을 검증하기 위한 자체-테스트 특징들을 갖는 집적 회로에 대해 설명하고 있다. 예시적인 외부 인터페이스들은 메모리 인터페이스들 및 주변 컴포넌트 상호접속(peripheral component interconnect, PCI), 향상된 고성능 버스(advanced high-performance bus, AHB), 향상된 익스텐서블 인터페이스(advance extensible interface, AXI) 버스, 및 예를들어 200㎒ 이상의 고 주파수에서 동작하는 다른 외부 인터페이스들과 같은 버스 인터페이스들이 포함된다. 테스트 로직은 집적 회로 상에 내장될 수 있으며 외부 인터페이스들의 기능성을 검증하도록 구성될 수 있다. 예를들어, 테스트 로직은 외부 테스트 장비로부터 전력과 비-테스트 신호들을 수신하면서 외부 인터페이스 기능성을 검증하도록 구성될 수 있다. 따라서, 외부 테스트 장비는 집적 회로에 고 주파수 테스트 신호들을 제공하지 않을 수 있다.
외부 인터페이스의 기능성을 검증하는 것은 일반적으로 외부 인터페이스들을 통해 송신된 트랜잭션(transaction)들을 상기 트랜잭션들과 관련된 데이터에 기초해서 또는 상기 트랜잭션들이 대응하는 프로토콜과 일치하는지 여부에 기초해서 검증하는 것을 의미한다. 외부 테스트 장비는, 전력과 핵심 신호들을 집적회로에 공급하는 것뿐만 아니라 집적 회로의 핀 인터페이스의 기능성을 독립적으로 검증하는데 이용된다. 이러한 방식으로, 집적 회로의 온-칩, 자체 테스트 특징들이 테스트 장비가 고주파수 테스트 신호들을 제공해야되는 필요성을 실질적으로 제거하며, 그 결과, 외부 인터페이스들의 타이밍과 기능성을 검증하는데 요구되는 비용과 시간을 감소시킬 수 있다.
일 양상에서, 집적 회로는 송신 모드 및 수신 모드 중 하나에서의 동작을 개시하기 위하여 테스트 프로그램의 명령들을 실행하는 프로세서, 상기 테스트 프로그램에 따라 하나 이상의 외부 디바이스들과 상기 프로세서와 통신하기 위하여 트랜잭션들을 생성하는 코어 로직 회로 ― 상기 프로세서는 상기 테스트 프로그램에 따라 상기 코어 로직과 통신하기 위한 트랜잭션들을 생성함 ― , 및 상기 트랜잭션들 중 하나 이상을 검증하고 상기 하나 이상의 트랜잭션들이 유효한지 여부를 표시하는 상태 신호를 출력하는 테스트 로직을 포함한다.
다른 양상에서, 방법은 송신 모드 및 수신 모드 중 하나에서 동작을 개시하도록 집적 회로 상의 프로세서 내의 테스트 프로그램의 명령들을 실행하는 단계, 상기 테스트 프로그램에 따라 상기 집적 회로 상의 코어 로직과 통신하기 위하여 상기 프로세서에서 트랜잭션들을 생성하는 단계, 상기 테스트 프로그램에 따라 하나 이상의 외부 디바이스들 및 상기 프로세서와 통신하기 위하여 상기 코어 로직에서 트랜잭션들을 생성하는 단계, 상기 집적 회로 상의 테스트 로직을 통하여 상기 트랜잭션들의 하나 이상을 검증하는 단계, 및 상기 하나 이상의 트랜잭션들이 유효한지 여부를 표시하는 상태 신호를 상기 테스트 로직에서 생성하는 단계를 포함한다.
다른 양상에서, 집적 회로는 송신 모드 및 수신 모드 중 하나에서 동작을 개시하도록 집적 회로 상의 테스트 프로그램의 명령들을 실행하기 위한 수단, 상기 테스트 프로그램에 따라 상기 집적 회로 상의 코어 로직과 통신하기 위하여 상기 프로세서에서 트랜잭션들을 생성하기 위한 수단, 상기 테스트 프로그램에 따라 하나 이상의 외부 디바이스들 및 상기 프로세서와 통신하기 위하여 상기 코어 로직에서 트랜잭션들을 생성하기 위한 수단, 상기 집적 회로 상의 테스트 로직을 통하여 상기 트랜잭션들의 하나 이상을 검증하기 위한 수단, 및 상기 하나 이상의 트랜잭션들이 유효한지 여부를 표시하는 상태 신호를 생성하기 위한 수단을 포함한다.
다른 양상에서, 컴퓨터 프로그램 물건이 컴퓨터 판독가능 매체를 포함하고, 상기 컴퓨터 판독가능 매체는 상기 컴퓨터 판독가능 매체 상에 저장된 명령들을 갖는다. 상기 명령들은 송신 모드 및 수신 모드 중 하나에서 동작을 개시하도록 집적 회로 상의 테스트 프로그램의 명령들을 실행하기 위한 코드, 상기 테스트 프로그램에 따라 상기 집적 회로 상의 코어 로직과 통신하기 위하여 상기 프로세서에서 트랜잭션들을 생성하기 위한 코드, 상기 테스트 프로그램에 따라 하나 이상의 외부 디바이스들 및 상기 프로세서와 통신하기 위하여 상기 코어 로직에서 트랜잭션들을 생성하기 위한 코드, 상기 집적 회로 상의 테스트 로직을 통하여 상기 트랜잭션들의 하나 이상을 검증하기 위한 코드, 및 상기 하나 이상의 트랜잭션들이 유효한지 여부를 표시하는 상태 신호를 생성하기 위한 코드를 포함한다.
다른 양상에서, 시스템이 집적 회로 및 상기 집적 회로에 전력과 클록 신호를 공급하는 테스트 장비를 포함한다. 상기 집적 회로는 송신 모드 및 수신 모드 중 하나에서의 동작을 개시하기 위하여 테스트 프로그램의 명령들을 실행하는 프로세서, 상기 테스트 프로그램에 따라 하나 이상의 외부 디바이스들과 상기 프로세서와 통신하기 위하여 트랜잭션들을 생성하는 코어 로직 회로 ― 상기 프로세서는 상기 테스트 프로그램에 따라 상기 코어 로직과 통신하기 위한 트랜잭션들을 생성함 ― , 및 상기 트랜잭션들 중 하나 이상을 검증하고 상기 하나 이상의 트랜잭션들이 유효한지 여부를 표시하는 상태 신호를 출력하는 테스트 로직을 포함한다.
본 개시내용에서 설명된 기술들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합에서 구현될 수 있다. 소프트웨어에서 구현되는 경우에, 소프트웨어는, 마이크로프로세서, 주문형 집적 회로(ASIC), 필드 프로그램가능 게이트 어레이(FPGA), 또는 디지털 신호 처리기(DSP)와 같은 하나 이상의 프로세서들에서 실행될 수 있다. 상기 기술들을 실행하는 소프트웨어는 컴퓨터 판독가능 매체에 초기에 저장되고 프로세서에 로딩 및 실행될 수 있다. 따라서, 본 개시내용은 실행시 디바이스가 본 개시내용에서 설명된 바와 같은 기술들을 수행하도록 야기하는 명령들을 포함하는 컴퓨터 판독가능 매체를 또한 고려한다. 일부 경우들에서, 컴퓨터 판독가능 매체는 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 물건의 일부를 형성할 수 있다.
본 개시내용의 하나 이상의 양상들은 이하의 상세한 설명과 첨부된 도면에서 제시된다. 본 개시내용의 다른 특징, 목적들, 및 이점들은 상세한 설명 및 도면과, 청구범위로부터 명확해질 것이다.
도1은 자체 테스트 특징들을 갖는 집적 회로와 집적 회로를 테스트하기 위한 외부 테스트 장비를 나타내는 블록도이다.
도2는 도1의 집적 회로를 보다 상세히 나타내는 블록도이다.
도3은 도2의 집적 회로의 예시적인 컴포넌트들을 보다 상세히 나타내는 블록도이다.
도4 및 도5는 도2의 집적 회로에 의해 수행될 수 있는 예시적인 자체 테스트 기술들을 나타내는 흐름도이다.
집적 회로들은 판매와 상업적 사용 전에 적절한 동작을 보장하기 위하여 제조 후 테스트된다. 집적 회로를 테스트하는 것은 외부 디바이스들과 통신하는데 사용된 외부 인터페이스들의 기능성을 검증하는 것을 포함할 수 있다. 일반적으로, 호스트 컴퓨터가 테스트 프로그램을 개발하고 외부 인터페이스들을 위한 추적(trace) 파일들을 생성하기 위해 시뮬레이션을 구동시키는데 이용된다. 본 개시내용에서 테스트 벡터들, 벡터들, 또는 테스트 데이터로도 언급되는 추적 파일들이 생성되면, 테스트 데이터에 따라 집적 회로로 신호들을 공급하는 테스트 장비 상으로 추적 파일들이 로딩된다.
이러한 방식으로 집적 회로를 테스트하는 것은 집적 회로의 외부 인터페이스들의 복잡한 기능성을 커버하는데 다수의 테스트 벡터들을 필요로 하므로 시간 소모적일 수 있다. 또한, 외부 인터페이스의 타이밍을 검증하기 위해 높은 주파수의 집적 회로 동작을 테스트 장비가 지원해야 하기 때문에 테스트 장비가 고가가 될 수 있다. 집적 회로들의 복잡성과 클록 주파수는 빈번하게 증가되기 때문에, 외부 테스트 장비의 성능은 새로운 집적 회로들을 테스트하는데 제한 요인이 될 수 있다. 즉, 낮은 주파수에서 동작하는 집적 회로를 테스트하기 위해 제조되었던 구식 테스트 장비는 새로운 집적 회로들을 이들의 높은 동작 주파수들에서 테스트하는데 이용될 수 없다. 더 높은 주파수들에서 집적 회로들을 테스트할 수 있는 새로운 외부 테스트 장비를 획득하는 것은 가격이 많이 들고 추가적인 시간이 요구될 수 있다.
본 개시내용은 고주파수 외부 인터페이스들의 기능성을 검증하기 위한 자체 테스트 특징들을 갖는 집적 회로를 설명하고 있다. 외부 인터페이스들의 예에는 메모리 인터페이스들 및 주변 컴포넌트 상호접속(peripheral component interconnect, PCI) 버스, 향상된 고성능 버스(advanced high-performance bus, AHB), 향상된 익스텐서블 인터페이스(advance extensible interface, AXI) 인터페이스 버스, 소형 컴퓨터 시스템 인터페이스(small computer system interface, SCSI) 버스, 이더넷(Ethernet) 버스, 범용 직렬 버스(USB), 향상된 그래픽 프로세서(advanced graphics processor, AGP) 버스, 직렬 ATA(serial advanced technology attachment, SATA) 버스, 및 고 주파수, 예를들어 200㎒ 이상에서 동작하는 다른 외부 인터페이스들과 같은 버스 인터페이스들이 포함된다. 본 개시내용의 다양한 양상들에 따르면, 테스트 로직이 집적 회로 상에 내장되고 외부 인터페이스들의 기능성을 검증하도록 구성될 수 있다. 일부 양상들에서, 테스트 로직은 외부 테스트 장비로부터 전력 및 비 테스트 신호들을 수신하면서 외부 인터페이스 기능성을 테스트하도록 구성될 수 있다. 따라서, 외부 테스트 장비는 집적 회로에 고주파수 테스트 신호들을 제공하지 않을 수 있다.
외부 인터페이스의 기능성을 검증하는 것은 외부 인터페이스들을 통해 송신된 트랜잭션들을 상기 트랜잭션들과 관련된 데이터에 기초해서 또는 상기 트랜잭션들이 대응하는 프로토콜과 일치하는지 여부에 기초해서 검증하는 것을 의미한다. 외부 테스트 장비가 전력과 비 테스트 신호들, 즉 집적 회로의 동작에 핵심적인 신호들을 집적회로에 공급하고 집적 회로의 핀 인터페이스의 기능성을 독립적으로 검증하는데 이용된다. 이러한 방식으로, 집적 회로의 온-칩, 자체 테스트 특징들이 테스트 장비가 고주파수 테스트 신호들을 제공해야되는 필요성을 실질적으로 제거하며, 그 결과, 외부 인터페이스들의 타이밍과 기능성을 검증하는데 요구되는 비용과 시간을 감소시킬 수 있다.
도1은 집적 회로(12)의 고주파수 외부 인터페이스들의 기능성을 검증하기 위한 시스템(10)을 도시하는 블록도이다. 도1에 도시된 바와 같이, 시스템(10)은 집적 회로(12)와 테스트 장비(22)를 포함한다. 일반적으로, 집적 회로(12)는 고주파수 외부 인터페이스들의 기능성을 검증하기 위해 테스트 장비(22)가 고주파수 테스트 신호들을 제공해야하는 필요성을 실질적으로 제거하는 자체 테스트 특징들을 갖는다. 결과적으로, 테스트 장비(22)는 전력과 비 테스트 신호들, 즉 동작을 위한 핵심적인 신호들을 테스트 프로세스 동안에 집적 회로(12)에 제공하는 비교적 저가의 테스트 장비일 수 있다.
집적 회로(12)는 실리콘 칩과 같은 반도에 기판에 구현된 하나 이상의 소형화된 회로들을 포함할 수 있다. 일반적으로, 집적 회로(12)는 하나 이상의 인터페이스들을 통해 외부 디바이스들(미도시)과 통신하는 주문형 집적 회로(ASIC) 또는 범용 집적 회로일 수 있다. 예를들어, 집적 회로(12)는 개인용 컴퓨터, 랩톱 컴퓨터, 개인 휴대 정보 단말기(PDA), 울트라 모바일 개인용 컴퓨터(UMPC), 이동 전화 핸드셋, 네트워킹 디바이스, 또는 다른 전자 디바이스에서 사용되도록 구성될 수 있다. 집적 회로(12)는 시스템 메모리, 디스크 드라이브, 키보드, 모니터 또는 디스플레이, 마우스, 프린터, 스캐너, 외부 저장 디바이스, 및 다른 외부 입/출력(I/O) 디바이스들과 같은 외부 디바이스들과 하나 이상의 외부 인터페이스들을 통하여 통신하도록 구성될 수 있다. 따라서, 집적 회로(12)가 적어도 하나의 외부 디바이스, 즉, 반도체 기판에서 떨어져 위치하는 전기적 컴포넌트와 통신하도록 구성된 임의의 집적 회로임이 이해되어야 한다.
도1에서, 집적 회로(12)는 프로세서(14), 코어 로직 회로(16), 테스트 로직 회로(18), 및 핀 인터페이스(20)를 포함하고, 테스트 장비(22) 상에 탑재된다. 프로세서(14)는 로컬 메모리 내에 저장된 컴퓨터 프로그램 명령들을 실행하고 저장된 명령들에 의해 지시된 대로 데이터를 처리하는 프로그램가능 프로세서이다. 예를들어, 프로세서(14)는 마이크로프로세서, 마이크로콘트롤러, 디지털 신호 처리기(DSP), 주문형 집적 회로(ASIC), 필드 프로그램가능 게이트 어레이(FPGA), 이산 로직 회로, 또는 이러한 컴포넌트들의 조합일 수 있다.
프로세서(14)는 일반적으로 송신 모드 또는 수신 모드에서 동작한다. 일 실시예에서, 프로세서(14)는 외부 디바이스(미도시)에 데이터를 기록하고 외부 디바이스로부터 데이터를 수신하기 위해서 송신 및 수신 모드로 동작한다. 다른 실시예들에서, 프로세서(14)는 외부 디바이스에 데이터를 기록하거나 외부 디바이스로부터 데이터를 판독하지 않고 송신 및 수신 모드로 동작할 수 있다. 송신 모드 및 수신 모드에서 생성된 트랜잭션들은 본 개시내용에서 기록 트랜잭션들 및 판독 트랜잭션들로 각각 불릴 것이다. 송신 모드에서 동작할 때, 프로세서(14)는 요청 트랜잭션들로도 불리는 기록 트랜잭션들을 생성하며, 상기 요청 트랜잭션들은 코어 로직 회로(16)로 전송된다. 예로서, 요청 트랜잭션은 외부 디바이스를 식별하고 외부 디바이스에 기록되어야 할 데이터를 포함한다.
프로세서(14)는 수신 모드에서 동작할 때 유사한 방식으로 동작한다. 즉, 프로세서(14)는 판독 트랜잭션들 생성하고 상기 판독 트랜잭션들을 코어 로직 회로(16)로 전송한다. 어느 경우든, 즉, 송신 또는 수신 모드로 동작할 때, 프로세서(14)는 코어 로직 회로(16)에 할당된 프로토콜에 따라 요청 트랜잭션을 생성한다. 보다 상세히 설명되는 바와 같이, 코어 로직 회로(16)는 상이한 프로토콜들에 따라 통신하는 상이한 블록들을 포함할 수 있다. 따라서, 프로세서(14)는 코어 로직 회로(16)의 대응하는 블록들에 대한 프로토콜들에 따라 트랜잭션들을 생성한다.
코어 로직 회로(16)는 프로세서(14)와 하나 이상의 외부 디바이스들(미도시) 간에 데이터 송신을 위한 외부 인터페이스를 제공한다. 특히, 코어 로직 회로(16)는 대응 외부 인터페이스와 관련된 프로토콜에 따라 트랜잭션들을 생성하고 프로세서(14) 및 외부 디바이스들 사이에서 트랜잭션들을 라우팅함에 의해 프로세서(14)와 외부 디바이스들 간의 통신을 관리한다. 예를 들어, 송신 모드에서 동작할 때, 코어 로직 회로(16)는 기록 트랜잭션들을 생성하고 프로세서(14)로부터 수신된 기록(요청) 트랜잭션에 따라 상기 기록 트랜잭션을 적절한 외부 디바이스로 라우팅한다. 일부 경우들에서, 코어 로직 회로(16)는 기록 트랜잭션을 확인하기 위하여 프로세서(14)로 응답 메시지를 전송한다. 코어 로직 회로(16)는 외부 디바이스에 송신된 대응하는 기록 트랜잭션에 응답하여 외부 디바이스로부터 메시지를 또한 수신할 수 있다. 코어 로직이 외부 디바이스로부터 메시지를 수신하는 경우에, 코어 로직 회로(16)는 상기 메시지를 처리하고 적절한 응답을 프로세서(14)로 송신한다.
유사하게, 수신 모드에서 동작하는 경우에, 코어 로직 회로(16)는 프로세서(14)로부터 수신된 판독(요청) 트랜잭션들을 처리하고 대응하는 판독 트랜잭션들을 생성하며 코어 로직 회로(16)는 상기 대응하는 판독 트랜잭션들을 적절한 외부 인터페이스 디바이스로 전송한다. 코어 로직 회로(16)는 외부 디바이스와 관련된 프로토콜에 따라 판독 트랜잭션들을 생성한다. 판독 트랜잭션에 응답하여, 코어 로직 회로(16)는 외부 디바이스로부터 메시지를 수신한다. 코어 로직 회로(16)는 메시지를 처리하고 대응하는 메시지를 프로세서(14)로 전송한다. 코어 로직 회로(16)는 메시지를 처리하고 프로세서(14)로부터 수신된 판독 트랜잭션에 응답하여 프로세서(14)로 메시지를 또한 전송할 수 있다.
코어 로직 회로(16)와 하나 이상의 외부 디바이스들은 단일 버스 또는 버스들의 집단(collection)을 통해 통신할 수 있다. 각 버스는 코어 로직 회로(16)를 하나 이상의 외부 디바이스들에 접속시킬 수 있고 특정 프로토콜, 타이밍 및 대역폭 성능에 따라 동작하는 상이한 구조(architecture)를 가질 수 있다. 집적 회로(12)를 외부 디바이스들에 상호접속시키는데 이용될 수 있는 예시적인 버스 구조들에는, 산업 표준 구조(Industry Standard Architecture, ISA) 버스, 향상된 ISA(Enhanced ISA, EISA) 버스, 주변 컴포넌트 상호접속(Peripheral Component Interconnect, PCI) 버스, AGP(Advance Graphics Processor) 버스, 범용 직렬 버스(universal serial bus, USB), 향상된 고성능 버스(advanced high-performance bus, AHB), 향상된 익스텐서블 인터페이스(advance extensible interface, AXI) 버스, ATA(Advanced technology Advancement) 버스, 소형 컴퓨터 시스템 인터페이스(small computer system interface, SCSI) 버스, 이더넷 버스, 범용 직렬 버스(USB), 및 직렬 ATA(serial advanced technology attachment, SATA) 버스가 포함된다. 다른 버스 구조들이 집적 회로(12)를 외부 장치들에 접속하는데 이용될 수 있다. 코어 로직 회로(16) 및 프로세서(14)는 하나 이상의 개별 버스들을 통해 통신할 수 있다. 일 실시예에서, 프론트사이드(frontside) 버스로 불리는 별도의 전용 버스가 프로세서(14)와 코어 로직 회로(16) 사이에서 트랙잭션들을 운반한다.
일 실시예로서, 집적 회로(12)는 개인용 컴퓨터 내에서 이용될 수 있다. 이 예에서, 코어 로직 회로(16)는 고주파수 메모리 버스를 통해 중앙 처리 장치(CPU)로서 동작하는 프로세서(14)와 시스템 메모리 사이의 통신을 관리할 수 있다. 코어 로직 회로(16)는 ISA 버스를 통해 프로세서(14)와 하나 이상의 키보드, 모니터, 및 마우스 사이의 통신을 또한 관리할 수 있다. 또한, 코어 로직 회로(16)는 PCI 버스를 통해 프로세서(14)와 하나 이상의 이더넷 확장 카드, SCSI 카드, 또는 다른 PCI 카드들 사이의 통신을 관리할 수 있다. 또한, 코어 로직 회로(16)는 AGP 버스를 통해 프로세서(14)와 전용 비디오 프로세서 사이의 통신과, ATA 버스를 통해 프로세서(14)와 CD-ROM 또는 다른 하드 디스크 사이의 통신과, USB를 통해 프로세서(14)와 하나 이상의 프린터, 스캐너, 외부 대량 저장 매체, 또는 다른 USB 호환 주변 디바이스 사이의 통신을 관리할 수 있다.
개인용 컴퓨터 내의 동작에서, 집적 회로(12)는 메모리 모듈, 예를들어 하드 디스크 드라이브, 플래시 디스크 드라이브, 또는 소거가능 메모리 카드 내에 저장된 파일을 리트리브(retrieve)하고 모니터 상에 상기 파일을 디스플레이한다. 이 경우, 집적 회로(12)는 디스크 모듈과 통신하기 위해서 제 1 외부 인터페이스를, 시스템 메모리와 통신하기 위해서 제 2 외부 인터페이스를, 디스플레이 모니터와 통신하기 위해서 제 3 외부 인터페이스를 이용할 수 있다. 외부 인터페이스들 각각은 상이한 프로토콜에 따라 통신할 수 있다. 예를들어, 집적 회로(12)는 파일을 요청하기 위하여 디스크 모듈과 연관된 프로토콜을 초기에 따른다. 디스크 모듈이 상기 요청을 수신하는 경우, 디스크 모듈은 상기 파일을 집적회로(21)로 제공한다. 다음, 집적 회로(12)는 데이터를 저장하기 위하여 시스템 메모리 프로토콜에 부착된 시스템 메모리에 상기 파일을 기록한다. 집적 회로(12)가 모니터 상에 상기 파일을 디스플레이할 준비가 된 때, 집적 회로(12)는 시스템 메모리로부터 데이터를 판독하고 이를 디스플레이 모니터를 위한 적절한 프로토콜에 따라 디스플레이 모니터에 기록한다. 집적 회로(12)는 이들 상이한 모듈들로부터 데이터를 판독하고 이들 상이한 모듈들로 데이터를 기록하기 위해 프로토콜을 따라야 한다. 상기 프로토콜을 따르지 않는 경우, 모듈들은 정확한(correct) 데이터를 저장하거나 제공하지 않을 것이다.
다른 예로서, 집적 회로(12)는 이동 무선전화 핸드셋과 같은 무선 통신 장치 내에 사용되도록 구성될 수 있다. 이 예에서, 집적 회로(12)는, 코어 로직 회로(16) 메모리 버스를 통해 프로세서(14)와 시스템 메모리 간의 통신을 관리하고, ISA 버스를 통해 프로세서(14)와 키패드 간의 통신을 관리하고, USB 버스를 통해 프로세서(14)와 소거가능 메모리 카드와 같은 소거가능 저장 디바이스 간의 통신을 관리하고, PCI 버스를 통해 프로세서(14)와 디스플레이 스크린 간의 통신을 관리하고, 상이한 PCI 버스를 통해 프로세서(14)와 카메라 모듈 간의 통신을 관리하는 등을 행하는 이동국 모뎀(MSM)일 수 있다. 이 예에서, 프로세서(14)는 범용 이동 통신 시스템(UMTS), 이동 통신 세계화 시스템(GSM), 코드 분할 다중 액세스(CDMA) 프로토콜, 및/또는 일반 패킷 무선 서비스(GPRS) 프로세서로서 동작할 수 있다.
집적 회로(12)가 MSM 칩으로서 동작하도록 구성되는 경우에, 집적 회로(12)는 사진 촬영을 위해 카메라 모듈, 메모리 모듈, 시스템 메모리, 및 디스플레이 스크린과 인터페이싱 할 수 있다. 집적 회로(12)는 상이한 프로토콜에 따라 이들 외부 디바이스들 각각과 인터페이싱 할 수 있다. 예를들어, 집적 회로(12)는 사진을 캡처(capture)하기 위하여 카메라 모듈과 통신을 개시하기 위하여 카메라 모듈과 연관된 프로토콜을 따른다. 카메라 모듈이 사진을 캡처하면, 집적 회로(12)는 캡처된 이미지 데이터를 판독하고 상기 이미지 데이터를 시스템 메모리에 기록하기 위한 요청을 시스템 메모리에 전송한다. 프로세서(14)는 상기 이미지 데이터가 시스템 메모리에 있는 동안에 상기 이미지 데이터를 처리한다. 처리가 완료되는 경우, 집적 회로(12)는 시스템 메모리 프로토콜에 따라 시스템 메모리로부터 데이터를 판독하고 이미지를 디스플레이 스크린으로 전달한다. 사용자가 이미지를 저장할 것을 요청하면, 집적 회로(12)는 상기 이미지를 디스크 드라이브로 전달한다. 다시, 집적 회로(12)는 상이한 프로토콜에 따라 카메라 인터페이스, 시스템 메모리 인터페이스, 디스플레이 인터페이스, 플래시 카드/디스크 드라이브 인터페이스와 같은 MSM 칩의 외부 인터페이스들 각각과 통신한다. 이러한 이유로, 집적 회로(12)는 각 외부 인터페이스를 통한 통신을 테스트함에 의해 제조 후의 기능성을 검증한다.
코어 로직 회로(16)는 하나 이상의 인터페이스를 제공하며, 즉 프로세서(14)와 적어도 하나의 외부 디바이스 간의 통신을 관리한다. 특히, 코어 로직 회로(16)와 프로세서(14)는 단일 프로토콜에 따라 서로 통신할 수 있다. 그러나, 코어 로직 회로(16)는 프로세서(14)와 통신하는데 사용된 프로토콜과 다른 각각의 프로토콜들에 따라 외부 인터페이스들 각각과 통신할 수 있다. 달리 말하면, 코어 로직 회로(16)는 예를 들어 시스템 메모리에 데이터를 기록하는 트랜잭션 요청을 수신하기 위해 제 1 프로토콜에 따라 프로세서(14)와 통신하고, 시스템 메모리에 데이터를 기록하기 위한 트랜잭션을 시스템 메모리에 전송하기 위하여 제 2 프로토콜에 따라 프로세서(14)와 통신할 수 있다. 따라서, 코어 로직 회로(16)는 적절한 프로토콜에 따라 트랜잭션들을 생성하는 책임을 갖는다.
본 개시내용의 다른 실시예들에서, 외부 인터페이스들 중 적어도 하나는 고주파수 외부 인터페이스이다. 고주파수 외부 인터페이스는 약 200㎒ 이상의 주파수에서, 약 200㎒에서 약 400㎒ 범위 내에서, 또는 약 400㎒ 이상의 주파수에서 동작할 수 있다. PCI, AHB, 및 AXI 버스들은 예시적인 고주파수 외부 인터페이스들이다. 위에서 설명된 개인용 컴퓨터와 무선 통신 디바이스의 예의 경우에, 메모리 버스, PCI 버스, AGP 버스, ATA 버스, 및 USB 버스들이 고주파수 인터페이스일 수 있다. 다른 고주파수 외부 인터페이스들에는 EISA 버스들, AHB 버스들, AXI 버스들, AXA 버스들, 이더넷 버스들, SCSI 버스들, 및 SATA 버스들이 포함된다.
테스트 로직 회로(18)는 집적 회로(12)의 반도체 기판 상에 내장되며 집적 회로(12)의 고주파수 외부 인터페이스들의 기능성을 검증하도록 구성된다. 고주파수 외부 인터페이스들의 기능성을 검증하는 것은 고주파수 인터페이스들을 통해 송신된 트랜잭션들을 검증하는 것을 의미한다. 일 예시적 양상에서, 테스트 로직 회로(18)는 트랜잭션들과 관련된 데이터에 기초하여 트랜잭션들을 검증할 수 있다. 다른 양상에서, 테스트 로직 회로(18)는 트랜잭션들과 연관된 프로토콜과 트랜잭션들이 일치하는지 여부에 기초하여 트랜잭션들을 검증할 수 있다. 트랜잭션들이 프로토콜과 일치하는지 여부에 기초하여 트랜잭션들을 검증하는 경우, 테스트 로직 회로(18)는 트랜잭션들과 연관된 데이터에 기초하여 트랜잭션들을 또한 검증할 수 있다.
트랜잭션들을 검증하기 위하여, 테스트 로직 회로(18)는 먼저 트랜잭션이 전송되는 통신 채널 또는 버스를 스누핑(snoop)한다. 이하에서 보다 상세히 설명되는 바와 같이, 테스트 로직 회로(18)는 프로세서(14)와 코어 로직 회로(16) 간의 통신 채널 또는 버스 또는 코어 로직 회로(16)와 핀 인터페이스(20) 간의 통신 채널 또는 버스를 스누핑할 수 있다. 어느 경우든, 테스트 로직 회로(18)가 트랜잭션을 획득한 경우, 테스트 로직 회로(18)는 트랜잭션이 유효한지 여부를 결정하기 위하여 트랜잭션을 조사(examine)한다. 트랜잭션은 예를 들어 트랜잭션과 관련된 데이터를 기준 데이터에 비교함에 의해 또는 트랜잭션이 관련 프로토콜과 일치하는지 여부를 결정함에 의해 조사될 수 있다. 일 실시예에서, 트랜잭션이 관련 프로토콜과 일치하는지 여부를 결정하는 것은 프로토콜에 의해 정의된 제어 신호들을 체크하는 것을 포함할 수 있다. 다른 실시예들에서, 트랜잭션이 관련 프로토콜과 일치하는 지를 결정하는 것은 제어 신호들을 체크하는 것을 필요로 하지 않는다. 어느 경우든, 테스트 로직 회로(18)는 트랜잭션이 유효한지 여부, 즉, 유효성 테스트를 통과했는지 또는 실패했는지 여부를 표시하는 상태 신호를 출력한다. 이 신호는 예를들어 핀 인터페이스(20)의 지정된 핀을 통해 출력된다. 이 때, 사용자는 집적 회로(12)가 기능하는지 여부를 결정하기 위하여 테스트 장비(22)와 인터페이스하고 있는 호스트 컴퓨터의 디스플레이 모니터 상의 상태 신호를 볼(view) 수 있게 된다.
집적 회로(12)의 고주파수 외부 인터페이스들의 기능성을 검증하는 것은, 본 개시내용에 설명된 바와 같이, 테스트 장비(22)가 집적 회로(12)에 고주파수 신호들을 제공하는 것을 요구하지 않는다. 오히려, 테스트 장비(22)는 프로세서(14)의 로컬 메모리에 테스트 프로그램을 로딩하는데 이용된다. 프로세서(14)는 집적 회로(12)가 송신 및 수신 모드들의 동작을 시뮬레이션하도록 야기하는 테스트 프로그램을 실행한다. 달리 말하면, 테스트 장비는 프로세서(14)에 의해 실행가능한 경우, 프로세서(14) 및 코어 로직 회로(16)가 하나 이상의 외부 인터페이스들을 통해 전송된 기록 및 판독 트랜잭션들을 생성하도록 야기하는 명령들을 포함한다. 테스트 로직 회로(18)는 트랜잭션들을 획득하기 위하여 집적 회로(12)의 통신 채널을 스누핑하고, 트랜잭션들의 유효성을 결정하기 위하여 트랜잭션들을 조사한다. 이러한 방식으로, 테스트 로직 회로(18)는 프로세서(14) 및 코어 로직 회로(16)가 외부 인터페이스들의 각각을 통해 통신하는 경우 대응하는 프로토콜을 따르는지를 검증한다. 그 결과, 다양한 동작 조건들에 대하여 테스트가 온칩 상에서 완료되고, 그렇지 않으면 테스트 조건들의 각 세트에 대하여 테스트를 셋업 및/또는 개시하는데 요구되었을 수동 작업이 테스트에 요구되지 않게 된다. 이것은 외부 인터페이스들의 기능성과 타이밍을 검증하는데 요구되는 시간과 비용을 감소시킨다. 또한, 테스트 장비(22)가 전력, 접지, 및 클록 신호들, 예를 들어, 시스템 클록, 시스템 리셋, 등과 같은 비테스트 신호들을 집적 회로(12)에 제공하고 집적 회로(12)에 테스트 프로그램을 로딩하는데 이용되는 저가 장비가 될 수 있다. 이러한 방식으로, 테스트 장비(22)는 고주파수 테스트 신호들을 제공하기 위하여 수정되거나 업데이트될 필요가 없어진다.
본 개시내용에서 집적 회로(12)가 고주파수 인터페이스들의 기능성을 검증하는 것으로 설명되고 있으나, 테스트 로직 회로(18)는 임의의 주파수에서 동작하는 외부 인터페이스들의 기능성을 검증하는데 이용될 수 있다. 이것은 기존 테스트 장비를 업데이트하는 높은 비용과 고주파수 외부 인터페이스들의 기능성을 검증하기 위해 새로운 테스트 장비를 구입하는 것에 부가해서, 각 외부 인터페이스들이 모든 가능한 동작 조건들, 예를들어 공급 전압 범위, 온도 범위, 및 처리 코너(corner)들에 대해 종종 테스트되기 때문에 임의의 주파수에서 동작하는 외부 인터페이스들의 기능성을 검증하는 것이 복잡할 수 있고 시간 소모적 태스크(task)일 수 있기 때문이다. 또한, 집적 회로들 간의 차이들로 인해 테스트 프로그램에 수동 변경들이 행해지는 것이 요구된다.
그러나, 테스트 로직 회로(18)가 반도체 기판 상에 추가적인 물리적 영역(real estate)을 차지하기 때문에, 테스트 장비를 통해 테스트 신호들을 제공함에 의해, 낮은 주파수, 예를들어 200 MHz 미만에서 동작하는 외부 인터페이스들을 검증하는 것이 바람직할 수 있음이 인식된다. 이것은 테스트 로직에 할당된 기판 공간의 비용과 본 개시내용에서 설명된 자체 테스트 특징을 이용하지 않는 테스트 비용 간의 트레이드-오프(trade-off)에 의존한다. 달리 말하면, 테스트 장비(18)가 차지하는 반도체 기판 상의 물리적 영역의 비용과 본 개시내용의 시점에서 당업계에 주지된 기술들에 따라 외부 인터페이스들의 기능성을 검증하기 위해 신호들을 검증하도록 신호들을 공급하기 위해 테스트 장비를 이용하는 것과 관련된 비용 간에 트레이드-오프가 존재한다. 따라서, 본 개시내용에서 설명된 외부 인터페이스들의 기능성을 검증하기 위한 자체 테스트 특징들은 임의의 주파수에서 동작하는 외부 인터페이스들의 기능성을 검증하기 위해 이용될 수 있고, 고주파수, 예를들어, 200 MHz 이상에서 동작하는 외부 인터페이스들에 대해 특히 유용할 수 있다는 점이 이해되어야 한다.
도2는 집적 회로(12)를 보다 상세히 나타내는 블록도이다. 구체적으로는, 집적 회로(12)는 외부 인터페이스 제어기들(30A 및 30B)과 테스트 로직 모듈들(32A 및 32B)을 포함하는 것으로 도2에 도시되어 있다. 외부 인터페이스 제어기들(30A 및 30B)은 도1의 코어 로직 회로(16)에 대응한다. 즉, 외부 인터페이스 제어기들(30A 및 30B)은 상이한 외부 인터페이스들과 연관된 코어 로직 회로(16)의 개별 블록들 또는 모듈들을 나타낸다. 예를들어, 외부 인터페이스 제어기(30A)는 PCI 버스와 같은 한 타입의 고주파수 외부 인터페이스를 통한 통신을 관리할 수 있으며, 외부 인터페이스 제어기(30B)는 AGP 버스와 같은 다른 타입의 고주파수 외부 인터페이스를 통한 통신을 관리할 수 있다. 외부 인터페이스 제어기들(30A 및 30B)은 상이한 프로토콜들에 따른 각 외부 디바이스들과의 통신을 관리할 수 있다. 도2에서, 외부 인터페이스 제어기(30A)는 버스(31)를 통해 프로세서(14)와 통신하고 버스(33)를 통해 대응하는 외부 디바이스(미도시)와 통신한다. 외부 인터페이스 제어기(30B)는 버스(35)를 통해 프로세서(14)와 통신하고 버스(37)를 통해 대응하는 외부 디바이스(미도시)와 통신한다. 그러나, 프로세서(14)와 외부 인터페이스 제어기들(30A 및 30B)은 하나 이상의 버스들의 일부를 공유할 수 있다는 점이 이해되어야 한다. 즉, 도2에 통신 채널들이 버스들(31, 33, 35, 및 37)로서 참조되는 것으로 도시되어 있으나, 이들 통신 채널들은 단일 또는 다중 버스들을 나타낼 수 있다. 일 예로, 버스들(31 및 35)은 다수의 외부 인터페이스 제어기들을 포함할 수 있는 코어 로직과 프로세서(14) 사이에 채널을 제공하는, 프론트-사이드(front-side) 버스로 불리는 단일 버스일 수 있다.
유사한 방식으로, 테스트 로직 모듈들(32A 및 32B)은 상이한 외부 인터페이스들과 연관된 테스트 로직 회로(18)의 개별 블록들 또는 모듈들을 나타낸다. 테스트 로직 모듈들(32A 및 32B)의 각각은 대응하는 고주파수 외부 인터페이스의 기능성을 검증한다. 도2에서, 테스트 로직 모듈(32A)은 외부 인터페이스 제어기(30A)와 연관되며 테스트 로직 모듈(32B)은 외부 인터페이스 제어기(30B)와 연관된다.
테스트 로직 모듈(30A)은 버스(31), 버스(35), 또는 이들 모두를 스누핑할 수 있다. 예를들어, 테스트 로직 모듈(32A)은 송신 모드 또는 수신 모드에서 동작시 프로세서(14)에 의해 생성된 트랜잭션들을 검증하기 위해 버스(31)를 스누핑할 수 있다. 다른 실시예에서, 테스트 로직 모듈(32A)은 외부 인터페이스 제어기(30A)에 의해 생성되고 송신 모드 또는 수신 모드에서 프로세서(14)에 전송된 트랜잭션들을 검증하기 위해 버스(31)를 스누핑할 수 있다. 외부 인터페이스 제어기(30A)가 수신 모드에서 프로세서(14)에 전송되는 경우에, 테스트 장비(22)(도2에 미도시)는 고주파수 신호들을 제공하거나 체크하지 않는다. 오히려, 테스트 장비 모듈(32A)은 프로세서(14)에 의해 제공된 시드(seed) 값에 기초하여 외부 인터페이스 제어기(30A)에 대한 프로토콜에 의해 요구되는 바와 같이 데이터 및 다른 신호들을 전송한다.
외부 인터페이스 제어기(30A)는 테스트 로직 모듈(32A)로부터 수신된 데이터 및 다른 신호들에 기초하여 대응하는 기록 트랜잭션들을 생성하고 상기 기록 트랜잭션들을 프로세서(14)로 전송한다. 이러한 방식으로, 테스트 로직 모듈(32A)이 외부 디바이스의 동작을 에뮬레이트(emulate)한다는 점에서, 즉 외부 인터페이스 제어기(30A)에 적절한 데이터 및 신호들을 제공한다는 점에서 테스트 로직 모듈(32A)은 통상의 테스트 장비와 유사한 방식으로 동작한다. 이것은 도3을 참조하여 보다 상세히 설명된다. 추가적인 실시예에서, 테스트 로직 모듈(32A)는 외부 인터페이스 제어기(30A)에 의해 생성되고 송신 모드 또는 수신 모드에서 핀 인터페이스(20)에 전송된 트랜잭션들을 검증하기 위해 버스(33)를 스누핑할 수 있다.
테스트 로직 모듈(32B)은 외부 인터페이스 제어기(30B)와 연관된 외부 인터페이스를 통해 송신된 트랜잭션들을 검증하기 위해서 유사한 방식으로 동작할 수 있다. 즉, 테스트 로직 모듈(32B)은 송신 또는 수신 모드에서 대응하는 외부 인터페이스를 통해 송신된 트랜잭션들을 검증하기 위하여 버스(35), 버스(37), 또는 이들 모두를 스누핑할 수 있다.
이들 실시예들 각각에서, 테스트 로직 모듈들(32A 및 32B)은 트랜잭션들과 연관된 데이터에 기초하여 또는 트랜잭션들이 관련 프로토콜과 일치하는지 여부에 기초하여 트랜잭션들을 검증할 수 있다. 트랜잭션들이 관련 프로토콜과 일치하는지 여부에 기초하여 트랜잭션들을 검증하는 것은 트랜잭션들이 프로토콜에 의해 정의된 규칙들에 따라 생성되었는지를 검증하는 것을 포함할 수 있다. 프로토콜에 의해 정의된 규칙들은 데이터 표현, 시그널링(signaling), 인증, 에러 검출, 및 에러 핸들링을 정의하는 규칙들을 포함할 수 있다. 테스트 로직 모듈들(32A 및 32B)은 트랜잭션들이 관련 프로토콜과 일치하는지 여부에 기초하여 트랜잭션들을 검증하는 경우에 관련 데이터에 기초하여 트랜잭션들을 또한 검증할 수 있다. 집적 회로(12)에 의해 이용된 검증 프로세스가 도3에 도시된 블록도와 도4 및 도5에 도시된 흐름도들을 참조하여 상세히 설명된다.
도2에 집적 회로(12)가 테스트 모듈들(32A 및 32B)과 외부 인터페이스 제어기들(30A 및 30B)를 포함하는 2개의 고주파수 외부 인터페이스들을 포함하는 것으로 도시되어 있으나, 집적 회로(12)는 하나 이상의 외부 인터페이스들을 포함할 수 있다. 따라서, 도2는 단지 예시적인 것으로 이해되어야 하며 어떤 방식으로든 본 개시내용을 제한하는 것으로 의도되어서는 안 된다. 오히려, 도2의 목적은 집적 회로의 외부 인터페이스들과 외부 인터페이스들의 기능성을 검증하기 위하여 집적 회로 상에 내장되는 테스트 로직 회로 간의 관계를 예시하기 위한 것이다.
도3은 집적 회로(12)의 컴포넌트들을 보다 상세히 나타내는 블록도이다. 특히, 도3은 프로세서(14), 외부 인터페이스 제어기(30A) 및 테스트 로직 모듈(32A)을 보다 상세히 나타낸다. 프로세서(14) 및 외부 인터페이스 제어기(30A)는 예를들어 외부 디바이스(미도시)에 데이터를 기록하고 외부 디바이스(미도시)로부터 데이터를 판독하도록 판독 및 기록 동작을 수행하기 위한 외부 인터페이스를 제공하기 위하여 협력적으로 동작한다. 특히, 프로세서(14), 외부 인터페이스 제어기(30A), 및 대응하는 외부 인터페이스 디바이스는 각각의 프로토콜에 따라 서로 통신한다. 즉, 프로세서(14) 및 외부 인터페이스 제어기(30A)는 특정 프로토콜에 따라 서로 통신하고 외부 인터페이스 제어기(30A) 및 외부 디바이스는 상이한 프로토콜에 따라 서로 통신한다. 테스트 로직 모듈(32A)은 고주파수 신호들을 공급 및 체크하기 위하여 테스트 장비(22)와 같은 외부 테스트 장비를 필요로 함 없이 외부 인터페이스의 기능성을 검증하기 위한 특징들을 제공한다. 일 양상에서, 예를들어, 테스트 로직 모듈(32A)은 트랜잭션들과 관련된 데이터에 기초하여 프로세서(14) 및 외부 인터페이스 제어기(30A) 중 하나 또는 모두에 의해 생성된 트랜잭션들을 검증한다. 다른 예시적인 양상에서, 테스트 로직 모듈(32A)은 트랜잭션들이 관련 프로토콜과 일치하는지 여부에 기초하여 프로세서(14) 및 외부 인터페이스 제어기(30A) 중 하나 또는 모두에 의해 생성된 트랜잭션들을 검증한다.
프로세서(14)는 메모리(40), 프로세서(46), 입/출력(I/O) 모듈(48), 및 트랜잭션 모듈(49)을 포함한다. 메모리(40)는 테스트 프로그램(42)과 상태(44)를 저장한다. 테스트 프로그램(42)은 테스트 장비(22)(미도시)를 통해 호스트 컴퓨터에 의해 메모리(40)로 로딩되며, 프로세서(46)에 의해 실행될 때 송신 모드 또는 수신 모드에서 동작을 개시시키는 명령들을 포함한다. 송신 모드 또는 수신 모드에서 동작할 때, 프로세서(14)는 일부 실시예들에서, 외부 디바이스들에 데이터를 기록하기 위한 또는 대응하는 외부 디바이스로부터 데이터를 판독하기 위한 동작들을 수행할 수 있다. 다른 실시예들에서, 프로세서(14)는 외부 디바이스로 데이터를 기록하거나 외부 디바이스로부터 데이터를 판독할 필요가 없는 송신 또는 수신 모드에서 동작할 때 동작들을 수행할 수 있다. 일반적으로, 프로세서(46)는 테스트 프로그램(42)의 명령들에 따라 데이터를 처리하고 트랜잭션 모듈(49) 및 I/O 모듈(48)의 동작을 제어한다.
송신 모드에서 동작할 때, 예를들어, 트랜잭션 모듈(49)은 프로세서(46)의 제어하에 기록 트랜잭션들을 생성한다. 예시적인 기록 트랜잭션들은 시스템 메모리에 데이터를 기록하라는 요청, 이미지를 캡처하라는 카메라 모듈에 대한 요청, 및 데이터를 디스플레이하라는 모니터에 대한 요청을 포함한다. 외부 디바이스에 데이터를 기록하기 위한 기록 트랜잭션은 외부 디바이스에 기록될 데이터와 외부 디바이스를 식별하는 정보를 포함할 수 있다.
프로세서(46)는 수신 모드에서 동작할 때 판독 트랜잭션들을 생성하도록 트랜잭션 모듈(49)을 또한 제어할 수 있다. 판독 트랜잭션들은 하드 디스크 또는 소거가능 메모리 카드와 같은 메모리로부터 데이터를 리트리브(retrieve)하라는 요청, 핸드헬드(handheld) 디바이스의 카메라 모듈에 의해 캡처된 이미지 데이터를 리트리브하라는 요청, 및 주변 디바이스로부터 데이터를 리트리브하라는 요청을 포함할 수 있다.
I/O 모듈(48)은 버스(31)를 통하여 외부 인터페이스 제어기(30A)로 판독 및 기록 트랜잭션들을 전송한다. 버스(31)는 프론트 사이드 버스일 수 있으며, 프론트 사이드 버스를 통하여 프로세서(14)는 외부 인터페이스 제어기(30A) 및 부가적인 외부 인터페이스 제어기들과 통신한다. 대안적으로, 버스(31)는 프로세서(14) 및 외부 인터페이스 제어기(30A) 간의 통신을 위한 전용 버스일 수 있다.
외부 인터페이스 제어기(30A)는 프로세서(14)로부터 수신된 기록 및 판독 트랜잭션들을 처리하고 대응하는 기록 및 판독 트랜잭션들을 실제(real world) 환경에서 대응하는 외부 디바이스로 전송한다. 테스트 환경에서, 외부 인터페이스 제어기(30A)는 대응하는 트랜잭션들을 인터페이스(20)의 지정된 핀에 전송한다. 다음은 송신 모드에서의 동작을 참조하여 외부 인터페이스 제어기(30A)의 동작을 설명한다. 수신 모드에서의 외부 인터페이스 제어기(30A)의 동작은 혼동을 피하기 위하여 별도로 설명될 것이다.
도3에서, 외부 인터페이스 제어기(30A)는 트랜잭션 모듈(50) 및 I/O 모듈(52)을 포함한다. I/O 모듈(52)은 외부 인터페이스 제어기(30A)에 대한 I/O를 관리한다. I/O 모듈은 버스(31)를 통해 수신된 기록 트랜잭션들을 트랜잭션 모듈(52)로 지향시키고 트랜잭션 모듈(50)에 의해 생성된 대응하는 기록 트랜잭션들을 버스(33)에 적용한다. 테스트 동안에, 버스(33)는 핀 인터페이스(20)(미도시)의 지정된 핀에 접속된다.
트랜잭션 모듈(50)은 수신된 트랜잭션들에 포함된 데이터를 처리하고 I/O 모듈(52)을 버스(33)에 적용하는 것에 대응하는 기록 트랜잭션을 생성한다. 외부 인터페이스 제어기(30A)가 상이한 프로토콜에 따라 프로세서(14) 및 대응하는 외부 디바이스와 통신하기 때문에, 트랜잭션 모듈(50)은 적절한 프로토콜에 따라 트랜잭션들을 생성한다. 이러한 방식으로, 트랜잭션 모듈(50)은 한 프로토콜로부터 다른 프로토콜로 트랜잭션들을 변환하는 것으로 보여질 수 있다. 따라서, 각 외부 인터페이스 제어기의 트랜잭션 모듈은 대응하는 외부 인터페이스와 관련된 프로토콜에 따라 트랜잭션들을 생성할 수 있다. 이것은 코어 로직 회로(16)(도1에 도시됨)이 도2의 제어기들(30A 및 30B)과 같은 복수의 외부 인터페이스 제어기들을 포함하는 것으로 보여질 수 있는 이유가 된다. 따라서, 트랜잭션 모듈(50)은 프로세서(14)로부터 수신된 기록 트랜잭션을 대응하는 외부 디바이스와 관련된 프로토콜로 변환(translate)한다.
위에서 설명한 바와 같이, 외부 인터페이스 제어기(30A)는 제 1 실시예에서, 응답 메시지를 프로세서(14)로 전송할 수 있다. 이러한 실시예들에서, 트랜잭션 모듈(50)은 응답 메시지를 생성하고 I/O 모듈(52)은 상기 응답 메시지를 버스(31)를 통해 프로세서(14)로 전송한다.
제 2 실시예에서, 외부 인터페이스 제어기(30A)가 정상 동작에서, 즉 실제 환경에서 동작하는 경우에 대응하는 외부 디바이스로부터 응답 메시지를 수신할 수 있다. 그러나, 테스트 동안에, 외부 인터페이스 제어기(30A)는 테스트 로직 모듈(32A)로부터 응답 메시지를 수신한다. 즉, 테스트 로직 모듈(32A)은 예를들어 프로토콜에 의해 외부 인터페이스 제어기(30A)에 요구되는 바와 같은 데이터와 다른 신호들을 제공함에 의해, 외부 인터페이스가 제어기(30A)가 대응하는 응답 메시지를 생성하고 프로세서(14)에 전송하도록 한다. 도3을 참조하면, I/O 모듈(52)은 버스(33)를 통해 테스트 로직 모듈(32A)로부터 데이터와 다른 신호들을 수신하고 이에 대응하는 응답 메시지를 생성하는 트랜잭션 모듈(50)로 지향(direct)시킨다. I/O 모듈(52)은 대응하는 응답 메시지를 버스(31)를 통해 프로세서(14)로 전송한다.
제 3 실시예에서, 외부 인터페이스 제어기(30A)는 제 1 및 제 2 실시예들에 따라 응답 메시지들을 전송할 수 있다. 즉, 외부 인터페이스 제어기(30A)는 프로세서(14)로부터 수신된 기록 트랜잭션을 수신하는 것에 응답하여 프로세서(14)에 제 1 응답 메시지를 전송할 수 있고 외부 인터페이스 제어기(30A)에 의해 외부 디바이스에 전송된 기록 트랜잭션과 대응하는 제 3 응답 메시지를 수신하는 것에 응답하여 제 2 응답 메시지를 프로세서(14)에 전송할 수 있다.
제 4 실시예에서, 외부 인터페이스 제어기(30A)는 어떠한 응답 신호들도 생성하지 않는다. 외부 인터페이스 제어기(30A)는 이들 실시예들 중 어느 것에 따라 동작할 수 있다. 따라서, 외부 인터페이스 제어기(30A)를 테스트하는 것은 실시예들 각각에 따라 외부 인터페이스 제어기(30A)의 동작을 검증하는 것을 포함할 수 있다.
테스트 로직 모듈(32A)은 송신 모드 및 수신 모드에서 프로세서(14) 및 외부 인터페이스 제어기(30A)에 의해 제공된 외부 인터페이스의 기능성을 검증한다. 테스트 로직 모듈(32A)은 또한 관련 프로토콜에 의해 제공된 데이터 및 다른 신호들을 외부 디바이스의 동작을 에뮬레이트하기 위하여 외부 인터페이스 제어기(30A)로 제공한다. 데이터 및 신호들을 공급하기 위하여 외부 테스트 장비 대신에 테스트 로직 모듈(32A)을 이용함에 의해, 외부 테스트 장비가 고주파수에서 동작할 필요가 없어지며, 따라서, 집적 회로 디바이스들이 점진적으로 증가하는 동작 주파수들에서 테스트될 필요가 있는 경우에, 수정되거나, 업그레이드되거나, 대체될 필요가 없어질 수 있다.
동작에서, 프로세서(14)는 테스트 로직 모듈(32A)을 개시하거나 인에이블한다. 즉, 프로세서(46)는 테스트 프로그램(42)에 따라 제어 신호를 생성하며, I/O 모듈(48)은 전용선 접속(61)을 통해 테스트 로직 모듈(32A)로 테스트 프로그램(42)을 전송한다. 제어 신호를 수신하기 전에, 테스트 로직 모듈(32A)은 디스에이블, 즉 비활성화될 수 있다. 따라서, 프로세서(14)는 기록 트랜잭션을 외부 인터페이스 제어기(30A)에 전송하기 전에 제어 신호를 테스트 로직 모듈(32A)에 전송할 수 있다. 그러나, 제어 신호를 수신하는 것에 응답하여, 테스트 로직 모듈(32A)은 버스들(31 및 33)을 능동적으로 스누핑할 수 있다. 이러한 방식으로, 테스트 로직 모듈(32A)은 버스들을 통한 모든 트랜잭션들을 획득할 수 있으며, 따라서 적절한 시간에 전송된 트랜잭션들을 검증하는 것에 추가하여 너무 많거나 너무 적은 트랜잭션들이 송신되었는지 여부를 결정할 수 있다.
도3에서, 테스트 로직 모듈(32A)은 검증 모듈(60), 의사 랜덤 데이터 생성기(62), 및 I/O 모듈(64)를 포함하며 전용 선 접속(61)을 통하여 프로세서(14)로부터 제어 신호를 수신한다. I/O 모듈(64)은 프로세서(14) 및 외부 인터페이스 제어기(30A)에 의해 각각 생성된 기록 트랜잭션들을 가로채기(intercept)하기 위하여 송신 모드에서 버스들(31 및 33)을 스누핑한다. I/O 모듈(64)은 또한 외부 인터페이스 제어기(30A)에 의해 프로세서(14)로 전송된 응답 메시지 또는 트랜잭션들을 리트리브하기 위하여 버스(31)를 스누핑할 수 있다.
제어 신호는 기준 데이터를 생성하기 위해 테스트 로직 모듈(32A)에 의해 이용된 시드 값을 포함한다. 특히, 의사 랜덤 데이터 생성기(62)는 I/O 모듈(64)로부터 시드 값을 수신하고 테스트 프로그램(42)에 의해 특정된 데이터, 즉, 프로세서(14)에 의해 생성된 기록 트랜잭션과 관련된 데이터와 매칭되는 기준 데이터를 생성하기 위해 시드 값을 이용한다. 의사 랜덤 데이터 생성기(62)는 가로채진 트랜잭션, 즉 버스(31) 상에서 가로채진 기록 트랜잭션과 관련된 데이터와 기준 데이터를 비교하는 모듈(60)에 기준 데이터를 출력한다. 트랜잭션이 프로토콜과 일치하는지 여부에 기초하여 테스트 로직 모듈(32A)이 트랜잭션들을 검증하는 실시예들에서, 검증 모듈(60)은 프로토콜을 체크한 후에 데이터를 체크할 수 있다.
예시적 프로토콜이 데이터가 언제 전달되고 있는지를 표시하는데 이용되는 신호를 정의할 수 있다. 상기 신호는 데이터 전달이 진행되고 있음을 표시하는 제 1 상태와 데이터 전달이 진행되고 있지 않음을 표시하는 제 2 상태를 가질 수 있다. 따라서, 검증 모듈(60)은 단지 제어 신호가 제 1 상태에 있는 경우만 I/O 모듈(64)에 의해 제공된 트랜잭션의 데이터를 체크할 것이다. 제어 신호가 제 1 상태에 있는 경우에 데이터를 검증함에 의해, 검증 모듈(60)은 트랜잭션과 관련된 데이터 및 프로토콜과 트랜잭션이 일치하는지를 검증한다. 이러한 방식으로, 검증 모듈(60)은 언제 트랜잭션이 프로토콜과 일치하고 데이터가 유효할지, 언제 트랜잭션이 프로토콜과 일치하고 데이터가 유효할지, 및 언제 트랜잭션이 프로토콜과 일치하지 않을지를 결정할 수 있다. 그러나, 검증 모듈(60)이 하나의 트랜잭션과 관련된 데이터만을 체크하는 경우에, 상기 데이터는 유효할 수 있으나 상기 트랜잭션은 프로토콜과 일치하지 않을 수 있다. 이러한 이유로, 트랜잭션이 프로토콜과 일치하는지 여부에 기초하여 검증하는 것은 외부 인터페이스의 기능성을 결정하기 위한 보다 정확한 테스트를 제공할 수 있다. 위의 설명은 트랜잭션들을 검증하는 단순한 예시적 설명을 제공하기 위해 사용된 예이며, 어떠한 방식으로든 본 개시내용을 제한하는 것으로 고려되어서는 안 된다. 오히려, 프로토콜이 다수의 신호들을 정의할 수 있고, 이러한 경우들에서, 트랜잭션을 검증하기 위하여 체크된 다수의 상태들을 정의할 수 있다. 다수의 상태들이 정의되는 경우에, 트랜잭션들을 검증하는 것은 하나 이상의 상태들을 체크하거나 하나 이상의 상태들의 시퀀스를 체크하는 것을 포함할 수 있다.
검증 모듈(60)은 트랜잭션의 상태를 표시하는 상태 신호를 생성한다. 검증 모듈(60)이 관련 데이터에 기초해서 트랜잭션을 검증하는 경우에, 상태 신호는 트랜잭션이 통과되었는지 실패되었는지 여부를 표시할 수 있다. 그러나, 검증 모듈(60)이 트랜잭션이 프로토콜과 일치하는지 여부에 기초하여 트랜잭션을 검증하는 경우에, 상태 신호는 트랜잭션이 프로토콜과 일치하고 데이터가 유효한지와, 언제 트랜잭션이 프로토콜과 일치하고 데이터가 유효한지와, 언제 트랜잭션이 프로토콜과 일치하지 않는 지를 표시할 수 있다.
도3에서, 검증 모듈(60)은 전용 선 접속(61)을 통해 상태 신호를 출력한다. 프로세서(14)는 수신된 신호에 기초하여 상태(44)를 업데이트한다. 특히, I/O 모듈(48)은 메모리(40) 내에서 상태(44)를 업데이트하는 프로세서(46)에 상태 신호를 지향시킨다. 상태(44)는 외부 인터페이스의 상태를 표시하는 파라미터이다. 예를들어, 상태(44)는 트랜잭션이 프로토콜과 일치하고 데이터가 유효하다면 "통과(PASS)" 값을 저장하거나, 트랜잭션이 프로토콜과 일치하나 데이터가 유효하지 않다면 "데이터 에러(DATA ERROR)" 값을 저장하거나, 트랜잭션이 프로토콜과 일치하지 않으면 "프로토콜 에러(PROTOCOL ERROR)" 값을 저장한다. 이 경우, 프로세서(14)는 테스트 장비(22)(도3에 미도시)에 의해 판독되고 테스트 장비(22)에 접속된 호스트 컴퓨터를 통해 사용자에 디스플레이된 상태(44)에 기록된 값에 기초하여 신호를 생성할 것이다. 대안적인 양상에서, 검증 모듈(60)은 상태 신호를 핀 인터페이스(20)의 지정 핀에 직접 출력하는 I/O 모듈(64)에 상태 신호를 전송할 수 있다.
테스트 로직 모듈(32A)은 외부 인터페이스 제어기(30A)에 의해 생성된 기록 트랜잭션들을 검증하기 위하여 유사한 프로세스를 이용한다. 즉, I/O 모듈(64)는 기록 트랜잭션을 가로채기하기 위하여 버스(33)를 스누핑하고 검증 모듈(60)은 가로채기된 트랜잭션과 관련된 데이터를 의사 랜덤 데이터 생성기(62)에 의해 생성된 기준 데이터에 비교한다. 다음, 검증 모듈(60)은 상기 비교에 기초하여 상태 신호를 출력한다.
위에서 설명된 바와 같이, 일부 예시적 양상들에서, 외부 인터페이스 제어기(30A)는 외부 디바이스로부터 응답 메시지를 수신하는 것에 응답하여 응답 메시지를 프로세서(14)로 전송한다. 이러한 예시적인 양상들에서, 테스트 로직 모듈(32A)과, 일부 예시적 양상들에서, 외부 인터페이스 제어기(30A)는, 외부 인터페이스 제어기(30A)에 의해 생성된 기록 트랜잭션을 수신하거나 검증하는 것에 응답하여, 정상 동작에서 외부 디바이스에 의해 생성되었을 응답 메시지를 에뮬레이트하는 외부 인터페이스 제어기(30A)로 관련 프로토콜에 의해 요구되는 데이터 및 다른 신호들을 제공한다. 이러한 방식으로, 테스트 로직 모듈(32A)은 통상적으로 외부 테스트 장비에 의해 제공되는 기능성을 제공하며 테스트 장비(22)(도3에는 미도시)는 저가의 테스트 장비로서 구현될 수 있다. 도3을 참조하면, 검증 모듈(60)이 응답 메시지, 즉 프로토콜에 의해 요구되는 데이터와 다른 신호를 생성할 수 있으며, I/O 모듈(64)은 상기 응답 메시지를 버스(33)를 통해 외부 인터페이스 제어기(30A)로 전송한다.
외부 인터페이스 제어기(30A)는 버스(31)를 통해 대응하는 응답 메시지를 프로세서(14)로 전송한다. 테스트 로직 모듈(32A)은 이전의 설명에서 제공된 기술들을 이용하여 프로세서(14)에 전송된 응답 메시지를 가로채고 검증하기 위하여 버스(31)를 스누핑한다.
이전의 설명은 송신 모드에서의 집적 회로(12)의 동작에 관련된다. 이하의 설명은 수신 모드에서의 집적 회로(12)의 동작에 관련된다. 수신 모드에서 동작하는 경우 외부 인터페이스의 기능성을 검증하기 위하여, 트랜잭션과 관련된 데이터에 기초하거나 트랜잭션이 관련 프로토콜과 일치하는지 여부에 기초하여 집적 회로(12)는 수신 모드에서 프로세서(14) 및 외부 인터페이스 제어기(30A)에 의해 생성된 트랜잭션들을 검증한다. 이것은 외부 인터페이스 제어기(30A)에 전송된 프로세서(14)에 의해 생성된 판독 트랜잭션들, 핀 인터페이스(20)에 전송된 외부 인터페이스 제어기(30A)에 의해 생성된 판독 트랜잭션들, 및 프로세서(14)에 전송된 외부 인터페이스 제어기(30A)에 의해 생성된 응답 메시지들을 검증하는 것을 필요로 한다. 위에서 설명된 바와 같이, 외부 인터페이스 제어기(30A)는, 일부 예시적 양상들에서, 프로세서(14)로부터 수신된 판독 트랜잭션에 대응하는 응답 메시지를 생성하여 프로세서(14)로 또한 전송한다. 이러한 예시적 양상들에서, 이 응답 메시지는 또한 검증된다.
수신 모드에서 동작하는 경우, 프로세서(14)는 테스트 프로그램(42)에 따라 판독 트랜잭션을 생성하고 상기 판독 트랜잭션을 대응하는 판독 트랜잭션을 외부 디바이스로 전송하는 외부 인터페이스 제어기(30A)로 판독 트랜잭션을 전송한다. 테스트 로직 모듈(32A)은 송신 모드에서 생성된 기록 트랜잭션들을 검증하기 위해 이용된 것들과 유사한 기술들을 이용하여 판독 트랜잭션들을 검증한다. 프로세서(14)로부터 판독 트랜잭션을 수신한 후에 외부 인터페이스 제어기(30A)가 응답 메시지를 프로세서(14)에 전송하는 경우에, 테스트 로직 모듈(32A)은 응답 메시지를 검증하기 위하여 동일한 검증 기술들을 또한 이용한다.
그러나, 수신 모드에서 동작하는 경우, 외부 인터페이스 제어기(30A)는 동일한 외부 디바이스에 전송된 판독 트랜잭션에 응답하는 외부 디바이스로부터 응답 메시지를 수신한다. 외부 테스트 장비(22)가 고주파수 신호들을 제공하지 않기 때문에, 테스트 도중에, 테스트 로직 모듈(32A)은 프로토콜에 의해 요구되는 데이터 및 다른 신호들을 외부 인터페이스 제어기(30A)로 제공한다. 따라서, 테스트 로직 모듈(32A)은, 외부 인터페이스 제어기(30A)로 하여금 대응하는 응답 메시지 또는 트랜잭션을 생성하거나 이를 프로세서(14)로 전송하도록 야기하는 외부 인터페이스 제어기(30A)로 테스트 로직 모듈(32A)이 프로토콜에 의해 요구되는 데이터 및 다른 신호들을 제공한다는 점에서 테스트 로직 모듈(32A)은 통상의 테스트 장비와 유사한 방식으로 동작한다.
도3을 참조하면, 검증 모듈(60)은 프로토콜에 의해 요구되는 데이터 및 다른 신호들을 포함할 수 있는 응답 메시지를 생성하고 I/O 모듈(64)은 상기 응답 메시지를 버스(33)를 통해 외부 인터페이스 제어기(30A)로 전송한다. I/O 모듈(64)은 응답 메시지를 전송하기 전에 버스(33) 상에서 적절한 프로토콜을 대기할 수 있다. 검증 모듈(60)은 외부 인터페이스 제어기(30A)로부터 수신된 대응하는 판독 트랜잭션과 관련된 상태 신호를 생성한 후에 응답 메시지를 생성할 수 있다.
I/O 모듈(52)은 응답 메시지를 수신하고 이를 트랜잭션 모듈(50)로 전송한다. 트랜잭션 모듈(50)은 응답 메시지를 처리하고 I/O 모듈(52)이 버스(31)를 통해 프로세서(14)로 전송하는 대응하는 응답 메시지를 생성한다.
테스트 모듈(32A)은 외부 인터페이스 제어기(30A)에 의해 생성된 응답 메시지를 검증한다. 특히, I/O 모듈(64)은 응답 메시지를 리트리브하기 위해 버스(31)를 스누핑하고 검증 모듈(60)은 관련 데이터 또는 응답 메시지가 관련 프로토콜과 일치하는지 여부에 기초하여 리트리브된 응답 메시지를 검증한다. 검증 모듈(60)은 검증 프로세스를 완결하기 위하여 응답 신호가 유효한지 여부를 표시하는 상태 신호를 출력한다.
도4는 트랜잭션과 관련있는 데이터에 기초하여 고주파수 외부 인터페이스를 통해 송신된 트랜잭션을 검증하기 위하여 집적 회로(12)에 의해 실행될 수 있는 예시적인 기술을 나타내는 흐름도이다. 일반적으로, 도4에 도시된 단계들은 송신 모드 및 수신 모드에서 생성된 트랜잭션을 검증하는데 이용될 수 있으며 도3에 도시된 집적 회로(12)의 컴포넌트들과 관련하여 설명된다. 흐름도는 집적 회로(12)가 제조후 테스트 도중 핀 인터페이스(20)를 통해 테스트 장비(22)에 탑재되는 때에 시작된다. 초기에, 호스트 컴퓨터가 테스트 프로그램을 집적 회로(12) 상에 로딩한다(70). 테스트 프로그램은 호스트 컴퓨터 상에서 개발될 수 있으며 테스트 장비를 통해 프로세서(14)의 프로그램 메모리(42)로 로딩될 수 있다.
프로세서(14) 및 외부 인터페이스 제어기(30A)는 테스트 프로그램 명령들에 따라 트랜잭션들을 생성하고(72) 상기 트랜잭션들을 버스를 통해 전송한다(74). 예를들어, 단계들(72 및 74)은 송신 모드에서 동작하는 경우에 버스(31)를 통해 인터페이스 제어기(30A)에 기록 트랜잭션을 전송하는 프로세서 또는 버스(33)를 통해 외부 디바이스로 대응하는 기록 트랜잭션을 전송하는 외부 인터페이스 제어기를 참조할 수 있다. 집적 회로(12)가 수신 모드에서 동작하는 실시예에서, 동작들(72 및 74)는 버스(31)를 통해 외부 인터페이스 제어기(30A)로 판독 트랜잭션을 전송하는 프로세서(14), 외부 디바이스로 대응하는 판독 트랜잭션을 전송하는 외부 인터페이스 제어기(30A), 또는 프로세서(14)로 응답 메시지를 전송하는 외부 인터페이스 제어기(30A)를 참조할 수 있다. 즉, 동작들(72 및 74)은 판독 또는 기록 동작을 수행하는 프로세스 도중에 생성되는 단일 트랜잭션을 일반적으로 의미한다. 따라서, 도4에 도시된 흐름도의 동작들이 완전한 기록 또는 판독 동작을 검증하기 위하여 반복될 수 있다는 점이 명확할 것이다.
테스트 로직 모듈(32A)은 적절한 버스, 즉, 트랜잭션을 리트리브 또는 가로채기하기 위하여 트랜잭션이 동작(74)에서 전송되는 버스를 스누핑한다(76). 따라서, 테스트 로직 모듈(32A)은 송신 모드 또는 수신 모드에서 프로세서(14)에 의해 생성된 트랜잭션들과 수신 모드에서 외부 인터페이스 제어기(30A)에 의해 생성된 트랜잭션들을 검증하기 위하여 그리고 이러한 트랜잭션들에 대한 응답들을 외부인터페이스 제어기(30A)에 의해 생성된 트랜잭션들을 검증하기 위하여 버스(33)를 스누핑할 수 있다. 기록 및 판독 동작들이 버스들(31 및 33)을 통해 기록 및 판독 트랜잭션들을 전송하는 것을 필요로 하기 때문에, 테스트 로직 모듈(32A)은 외부 인터페이스의 완전한 신호 경로를 검증하기 위하여 버스들(31 및 33)을 일반적으로 스누핑한다.
트랜잭션을 리트리빙하는 경우, 테스트 로직 모듈(32A)은 기준 데이터를 생성하고(78) 트랜잭션과 관련된 데이터를 기준 데이터와 비교함으로써 상기 트랜잭션을 검증한다(80). 테스트 로직 모듈(32A)은 프로세서(14)에 의해 제공된 시드 값에 기초하여, 보다 구체적으로는, 프로세서(14)로부터 수신된 제어 신호에 기초하여 기준 데이터를 생성할 수 있다. 제어 신호, 즉 시드 값은 전용선 접속 또는 대응하는 버스를 통해 송신될 수 있다.
상기 비교에 기초하여, 테스트 로직 모듈(32A)은 트랜잭션이 유효한지 여부를 표시하는 상태 신호를 생성한다(82). 테스트 로직 모듈(32A)은 상기 상태 신호를 핀 인터페이스(20)의 출력에 직접 인가할 수 있다. 상기 출력은 상태 신호를 보기 위한 디스플레이를 갖는 호스트 컴퓨터에 접속될 수 있다. 그 결과, 사용자는 단계(72)에서 생성된 트랜잭션이 유효한지 여부를 결정하기 위하여 상기 상태를 조사할 수 있다(84). 대안적으로, 상기 상태 신호는 프로세서(14)에 의해 수신될 수 있으며 판독될 수 있고 모니터 상에 디스플레이될 수 있는 메모리 파라미터의 값을 설정하는데 이용될 수 있다.
도5는 트랜잭션이 관련 프로토콜과 일치하는지 여부에 기초하여 고주파수 외부 인터페이스를 통해 송신된 트랜잭션을 검증하기 위하여 집적 회로(12)에 의해 수행될 수 있는 예시적인 기술을 도시하는 흐름도이다. 도5에 도시된 단계들은 송신 모드 또는 수신 모드에서 생성된 트랜잭션을 검증하는데 이용될 수 있다. 도4에 도시된 흐름도와 유사하게, 도5에 도시된 흐름도의 단계들은 집적 회로(12)가 제조후 테스트 도중에 핀 인터페이스(20)를 통해 테스트 장비(22)에 탑재되는 때에 실행된다.
초기에, 호스트 컴퓨터가 테스트 프로그램(42)을 집적 회로(12)에 테스트 장비(22)를 통해 로딩한다(70). 테스트 프로그램(42)은 송신 모드 및 수신 모드에서 동작하는 경우에 외부 인터페이스들의 기능성을 테스트하기 위하여 개발된다. 따라서, 집적 회로(12)는 테스트 프로그램 명령들에 따라 트랜잭션을 생성하며(102) 버스를 통해 상기 트랜잭션을 전송한다(104). 도4와 유사하게, 동작들(102 및 104)은 판독 또는 기록 동작 도중에 프로세서(14) 또는 외부 인터페이스 제어기(30A)에 의해 생성된 단일 판독 또는 기록 트랜잭션을 참조한다. 그러나, 도5의 흐름도의 동작들은 판독 및 기록 동작들 도중에 생성된 다중의 판독 및 기록 트랜잭션들을 검증하기 위하여 반복될 수 있다는 점이 이해되어야 한다.
트랜잭션을 리트리브 또는 가로채기 위해 버스를 스누핑(106)하는 것은 트랜잭션이 동작(102)에서 전송되는 버스를 테스트 로직 모듈(32A)이 스누핑하는 것을 참조할 수 있다. 테스트 로직 모듈(32A)은 프로세서(14)로부터 제어 신호를 수신하는 경우 적절한 버스를 능동적으로 스누핑할 수 있다. 프로세서(14)는 테스트 프로그램(42)이 메모리에 로딩되는 경우 테스트 로직 모듈(32A)을 인에이블하기 위하여 제어 신호를 전송할 수 있다.
트랜잭션을 리트리빙하는 경우, 테스트 로직 모듈(32A)은 트랜잭션이 관련 프로토콜과 일치하는지 여부에 기초하여 리트리브된 트랜잭션을 검증한다(108). 예를들어, 테스트 로직 모듈(32A)은 프로토콜에 의해 정의된 하나 이상의 신호들을 체킹함에 의해 트랜잭션을 검증할 수 있다. 이것은 하나 이상의 신호들에 의해 정의된 상태들의 시퀀스 또는 신호에 의해 정의된 하나 이상의 상태들을 체킹하는 것을 포함한다. 예를들어, 프로토콜이 언제 데이터가 전달되고 있는지를 나타내는 신호를 정의하는 경우에, 테스트 로직 모듈(32A)은 데이터가 프로토콜에 의해 특정된 시간에서 전달되고 있는지 여부를 결정하기 위하여 이 신호를 체크할 수 있다. 그러나, 보다 일반적으로, 테스트 로직 모듈(32A)은 트랜잭션이 프로토콜에 의해 설정된 규칙들을 만족시키는지 여부를, 즉 트랜잭션이 프로토콜과 일치하는지 여부를 결정하기 위하여 트랜잭션을 조사한다.
다음, 테스트 로직 모듈(32A)은 예를들어 프로세서(14)로부터 수신된 제어 신호에 의해 제공되는 시드 값에 기초하여 기준 데이터를 생성할 수 있다(110). 테스트 로직 모듈(32A)은 트랜잭션과 관련된 데이터를 기준 데이터와 비교함으로써 트랜잭션과 관련된 데이터를 검증한다(112). 따라서, 테스트 로직 모듈(32A)은 트랜잭션의 상태를 표시하는 상태 신호를 생성할 수 있다(114). 예를들어, 테스트 로직 모듈(32A)은 트랜잭션이 관련 데이터와 일치하고 상기 데이터가 유효한지, 트랜잭션이 관련 프로토콜과 일치하나 상기 데이터가 유효하지 않은지, 또는 트랜잭션이 프로토콜과 일치하지 않은지를 표시하는 상태 신호를 생성할 수 있다.
다음, 사용자는 트랜잭션이 유효한지 여부를 결정하기 위하여 상태 신호를 조사할 수 있다(116). 일 예로, 상태 신호는 핀 인터페이스(20)의 지정된 핀으로 출력될 수 있거나 프로세서(14)의 메모리의 저장된 파라미터의 값을 설정하는데 이용될 수 있다. 어느 경우든, 상태 신호는 호스트 컴퓨터의 모니터 상에서 디스플레이되기 위하여 테스트 장비(22)에 의해 판독될 수 있다.
다양한 양상들과 실시예들이 설명되었다. 그러나, 청구범위를 벗어남 없이 본 개시내용의 기술들 또는 구조에 수정들이 행해질 수 있다. 예를들어, 위에서 설명된 집적 회로들은 상보형 금속 산화물 반도체(CMOS), 바이폴라 접합 트랜지스터(BJT), 바이폴라-CMOS(BiCMOS), 실리콘게르마늄(SiGe), 갈륨비소(GaAs) 등과 같은 다양한 IC 프로세스 기술들로 제조될 수 있다. 본 개시내용의 이들과 다른 양상들은 청구범위 내에 속한다.

Claims (72)

  1. 집적 회로로서,
    테스트 프로그램의 명령들을 실행하도록 동작하는 프로세서 ― 상기 프로세서는 데이터를 포함하는 메시지를 생성하도록 동작함 ― ;
    상기 테스트 프로그램에 따라 상기 프로세서로부터 상기 메시지를 수신하도록 동작하는 코어 로직 회로; 및
    상기 프로세서로부터 상기 코어 로직 회로로 전송되는 상기 메시지를 스누핑(snoop)하고, 상기 메시지를 평가하고, 그리고 상기 메시지가 유효한지 여부를 표시하는 상태 신호를 상기 프로세서로 제공하도록 동작하는 테스트 로직 회로를 포함하며,
    여기서 상기 메시지는 프로토콜에 따라 통신되고, 그리고 상기 테스트 로직 회로는, 기준 데이터를 생성하고 그리고 상기 메시지가 상기 프로토콜과 일치하는(consistent)지 여부에 대한 결정 및 상기 메시지와 관련된 데이터와 상기 기준 데이터의 비교 중 적어도 하나에 기초하여 상기 메시지를 평가하는,
    집적 회로.
  2. 제 1 항에 있어서,
    상기 코어 로직 회로는 200 MHz 내지 400 MHz의 범위 내의 주파수에서 동작하도록 구성되는,
    집적 회로.
  3. 제 1 항에 있어서,
    상기 코어 로직 회로는 400 MHz보다 큰 주파수에서 동작하도록 구성되는,
    집적 회로.
  4. 삭제
  5. 삭제
  6. 제 1 항에 있어서,
    상기 코어 로직 회로는, 주변 컴포넌트 상호접속(peripheral component interconnect, PCI) 버스, 향상된 고성능 버스(advanced high-performance bus, AHB), 향상된 익스텐서블 인터페이스(advance extensible interface, AXI) 버스, 소형 컴퓨터 시스템 인터페이스(small computer system interface, SCSI) 버스, 이더넷(Ethernet) 버스, 범용 직렬 버스(USB), AGP(Advance Graphics Processor) 버스, 및 직렬 ATA(serial advanced technology attachment, SATA) 버스 중 하나를 통해 외부 디바이스에 연결되도록 동작하는,
    집적 회로.
  7. 제 1 항에 있어서,
    상기 메시지는 제 1 메시지이고,
    송신 모드에서 동작하는 경우, 상기 코어 로직 회로는 상기 제 1 메시지에 기초하여 제 2 메시지를 생성하고 상기 제 2 메시지를 외부 디바이스로 전송하며,
    상기 테스트 로직 회로는 상기 제 2 메시지를 스누핑 하도록 동작하고, 상기 테스트 로직 회로는 상기 제 2 메시지를 평가하고 상기 제 2 메시지가 유효한지 여부를 표시하는 제 2 상태 신호를 상기 프로세서로 제공하는,
    집적 회로.
  8. 제 1 항에 있어서,
    상기 메시지는 제 1 메시지이고,
    수신 모드에서 동작하는 경우, 상기 코어 로직 회로는 상기 제 1 메시지에 기초하여 제 2 메시지를 생성하고 상기 제 2 메시지를 외부 디바이스로 전송하며,
    상기 테스트 로직 회로는 상기 제 2 메시지를 스누핑 하도록 동작하고, 상기 테스트 로직 회로는 상기 제 2 메시지를 평가하고 상기 제 2 메시지가 유효한지 여부를 표시하는 제 2 상태 신호를 상기 프로세서로 제공하고, 그리고
    상기 테스트 로직 회로는 상기 제 2 메시지에 기초하여 제 3 메시지를 생성하고 상기 외부 디바이스를 에뮬레이트(emulate)하기 위해 상기 제 3 메시지를 상기 코어 로직 회로로 전송하도록 추가적으로 동작하는,
    집적 회로.
  9. 제 8 항에 있어서,
    상기 코어 로직 회로는 상기 제 3 메시지에 기초하여 제 4 메시지를 생성하고 상기 제 4 메시지를 상기 프로세서로 전송하도록 동작하고,
    상기 테스트 로직 회로는 상기 제 4 메시지를 평가하고 상기 제 4 메시지가 유효한지 여부를 표시하는 제 3 상태 신호를 상기 프로세서로 제공하는,
    집적 회로.
  10. 삭제
  11. 삭제
  12. 삭제
  13. 제 1 항에 있어서,
    상기 코어 로직 회로는 상기 메시지와 관련된 응답 메시지를 생성하고 상기 응답 메시지를 상기 프로세서로 전송하고,
    상기 테스트 로직 회로는 상기 응답 메시지를 평가하고 상기 응답 메시지가 유효한지 여부를 표시하기 위해 제 2 상태 신호를 제공하는,
    집적 회로.
  14. 제 1 항에 있어서,
    상기 집적 회로는, 개인용 컴퓨터, 랩톱 컴퓨터, 개인 디지털 보조기(PDA), 울트라 모바일 개인용 컴퓨터(UMPC), 무선 통신 디바이스, 네트워킹 디바이스, 및 전자 계산 디바이스 중 하나에서 동작하도록 구성된,
    집적 회로.
  15. 제 1 항에 있어서,
    상기 집적 회로는 무선 통신 디바이스의 이동국 모뎀(MSM) 칩으로서 동작하도록 구성되는,
    집적 회로.
  16. 방법으로서,
    집적 회로 상의 프로세서에서 테스트 프로그램의 명령들을 실행하는 단계;
    상기 테스트 프로그램에 따라 상기 집적 회로의 코어 로직 회로와 통신하기 위해 상기 프로세서에서 데이터를 포함하는 메시지를 생성하는 단계;
    상기 프로세서로부터 상기 코어 로직 회로로 상기 메시지를 전송하는 단계;
    상기 집적 회로의 테스트 로직 회로에서 상기 메시지를 스누핑하는 단계;
    상기 메시지가 유효한지 여부를 결정하기 위해 상기 테스트 로직 회로에서 상기 메시지를 평가하는 단계 ― 상기 메시지는 프로토콜에 따라 통신되고, 그리고 상기 메시지를 평가하는 단계는, 기준 데이터를 생성하는 단계 및 상기 메시지가 상기 프로토콜과 일치하는지 여부에 대한 결정 및 상기 메시지와 연관된 데이터와 상기 기준 데이터의 비교 중 적어도 하나에 기초하여 상기 메시지를 평가하는 단계를 포함함 ―; 및
    상기 메시지가 유효한지 여부를 표시하는 상태 신호를 상기 테스트 로직 회로로부터 상기 프로세서로 제공하는 단계를 포함하는,
    방법.
  17. 제 16 항에 있어서,
    상기 코어 로직 회로는 200 MHz 내지 400 MHz의 범위 내의 주파수에서 동작하도록 구성되는,
    방법.
  18. 제 16 항에 있어서,
    상기 코어 로직 회로는 400 MHz보다 높은 주파수에서 동작하도록 구성되는,
    방법.
  19. 삭제
  20. 삭제
  21. 제 16 항에 있어서,
    상기 코어 로직 회로는, 주변 컴포넌트 상호접속(PCI) 버스, 향상된 고성능 버스(AHB), 향상된 익스텐서블 인터페이스(AXI) 버스, 소형 컴퓨터 시스템 인터페이스(SCSI) 버스, 이더넷 버스, 범용 직렬 버스(USB), AGP 버스, 및 직렬 ATA(SATA) 버스 중 하나를 통해 외부 디바이스와 연결되도록 동작하는,
    방법.
  22. 제 16 항에 있어서,
    상기 명령들을 실행시키는 단계는 송신 모드에서 동작을 개시하기 위하여 상기 프로세서에서 상기 테스트 프로그램의 명령들을 실행시키는 단계를 포함하고, 상기 방법은,
    상기 메시지에 기초하여 상기 코어 로직 회로에서 제 2 메시지를 생성하는 단계;
    외부 디바이스로 상기 메시지를 제공하기 위하여 상기 제 2 메시지를 상기 집적 회로의 핀 인터페이스로 전송하는 단계;
    상기 테스트 로직 회로에서 상기 제 2 메시지를 스누핑하는 단계;
    상기 제 2 메시지가 유효한지 여부를 결정하기 위하여 상기 테스트 로직 회로에서 상기 제 2 메시지를 평가하는 단계; 및
    상기 제 2 메시지가 유효한지 여부를 표시하는 제 2 상태 신호를 상기 테스트 로직 회로로부터 상기 프로세서로 제공하는 단계를 더 포함하는,
    방법.
  23. 제 16 항에 있어서,
    상기 명령들을 실행시키는 단계는 수신 모드에서 동작을 개시하기 위하여 상기 프로세서에서 상기 테스트 프로그램의 명령들을 실행시키는 단계를 포함하고, 상기 방법은,
    상기 메시지에 기초하여 상기 코어 로직 회로에서 제 2 메시지를 생성하는 단계;
    상기 메시지를 외부 디바이스로 제공하기 위하여 상기 제 2 메시지를 상기 코어 로직 회로으로부터 상기 집적회로의 핀 인터페이스로 전송하는 단계;
    상기 테스트 로직 회로에서 상기 제 2 메시지를 스누핑하는 단계;
    상기 제 2 메시지에 기초하여 상기 테스트 로직 회로에서 제 3 메시지를 생성하는 단계; 및
    상기 제 3 메시지를 상기 테스트 로직 회로로부터 상기 코어 로직 회로로 전송하는 단계를 더 포함하고,
    상기 테스트 로직 회로는 상기 외부 디바이스를 에뮬레이트하는,
    방법.
  24. 제 23 항에 있어서,
    상기 제 3 메시지에 기초하여 상기 코어 로직 회로에서 제 4 메시지를 생성하는 단계;
    상기 제 4 메시지를 상기 코어 로직 회로로부터 상기 프로세서로 전송하는 단계;
    상기 테스트 로직 회로에서 상기 제 4 메시지를 스누핑하는 단계;
    상기 제 4 메시지가 유효한지 여부를 결정하기 위해 상기 테스트 로직 회로에서 상기 제 4 메시지를 평가하는 단계; 및
    상기 제 4 메시지가 유효한지 여부를 표시하는 제 2 상태 신호를 상기 테스트 로직 회로로부터 상기 프로세서로 제공하는 단계를 더 포함하는,
    방법.
  25. 삭제
  26. 삭제
  27. 삭제
  28. 제 16 항에 있어서,
    상기 메시지와 관련된 응답 메시지를 상기 코어 로직 회로에서 생성하는 단계, 상기 응답 메시지를 상기 프로세서로 전송하는 단계, 상기 테스트 로직 회로에서 상기 응답 메시지를 평가하는 단계, 및 상기 응답 메시지가 유효한지 여부를 표시하는 제 2 상태 신호를 상기 테스트 로직 회로에서 생성하는 단계를 더 포함하는,
    방법.
  29. 제 16 항에 있어서,
    상기 집적 회로는, 개인용 컴퓨터, 랩톱 컴퓨터, 개인 디지털 보조기(PDA), 울트라 모바일 개인용 컴퓨터(UMPC), 모바일 핸드셋, 네트워킹 디바이스, 및 전자 계산 디바이스 중 하나에서 동작하도록 구성된,
    방법.
  30. 집적 회로로서,
    송신 모드 및 수신 모드 중 하나의 모드에서 동작을 개시하도록 집적 회로 상에서 테스트 프로그램의 명령들을 실행하기 위한 수단;
    상기 테스트 프로그램에 따라 상기 집적 회로의 코어 로직 회로와 통신하도록 프로세서에서 데이터를 포함하는 메시지를 생성하기 위한 수단;
    상기 메시지를 상기 프로세서로부터 상기 코어 로직 회로로 전송하기 위한 수단;
    상기 집적 회로의 테스트 로직 회로에서 상기 메시지를 스누핑하기 위한 수단;
    상기 메시지가 유효한지 여부를 결정하기 위해 상기 테스트 로직 회로에서 상기 메시지를 평가하기 위한 수단 ― 상기 메시지는 프로토콜에 따라 통신되고, 그리고 상기 메시지를 평가하기 위한 수단은, 기준 데이터를 생성하기 위한 수단 및 상기 메시지가 상기 프로토콜과 일치하는지 여부에 대한 결정 및 상기 메시지와 연관된 데이터와 상기 기준 데이터의 비교 중 적어도 하나에 기초하여 상기 메시지를 평가하기 위한 수단을 포함함 ―; 및
    상기 메시지가 유효한지 여부를 표시하는 상태 신호를 상기 테스트 로직 회로로부터 상기 프로세서로 제공하기 위한 수단을 포함하는,
    집적 회로.
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 제 30 항에 있어서,
    상기 명령들을 실행시키기 위한 수단은 상기 송신 모드에서 동작을 개시하기 위하여 상기 프로세서에서 상기 테스트 프로그램의 명령들을 실행시키기 위한 수단을 포함하고, 상기 집적 회로는,
    상기 메시지에 기초하여 상기 코어 로직 회로에서 제 2 메시지를 생성하기 위한 수단;
    상기 메시지를 외부 디바이스로 제공하기 위하여 상기 제 2 메시지를 상기 집적 회로의 핀 인터페이스로 전송하기 위한 수단;
    상기 테스트 로직 회로에서 상기 제 2 메시지를 스누핑하기 위한 수단;
    상기 제 2 메시지가 유효한지 여부를 결정하기 위해 상기 테스트 로직 회로에서 상기 제 2 메시지를 평가하기 위한 수단; 및
    상기 제 2 메시지가 유효한지 여부를 표시하는 제 2 상태 신호를 상기 테스트 로직 회로로부터 상기 프로세서로 제공하기 위한 수단을 더 포함하는,
    집적 회로.
  37. 제 30 항에 있어서,
    상기 명령들을 실행시키기 위한 수단은 상기 수신 모드에서 동작을 개시하기 위하여 상기 프로세서에서 상기 테스트 프로그램의 명령들을 실행시키기 위한 수단을 포함하고, 상기 집적 회로는,
    상기 메시지에 기초하여 상기 코어 로직 회로에서 제 2 메시지를 생성하기 위한 수단;
    상기 제 2 메시지를 외부 디바이스로 제공하기 위하여 상기 제 2 메시지를 상기 코어 로직 회로로부터 핀 인터페이스로 전송하기 위한 수단;
    상기 테스트 로직 회로에서 상기 제 2 메시지를 스누핑하기 위한 수단;
    상기 제 2 메시지에 기초하여 상기 테스트 로직 회로에서 제 3 메시지를 생성하기 위한 수단; 및
    상기 제 3 메시지를 상기 테스트 로직 회로로부터 상기 코어 로직 회로로 전송하기 위한 수단을 더 포함하고,
    상기 테스트 로직 회로는 상기 외부 디바이스를 에뮬레이트하는,
    집적 회로.
  38. 제 37 항에 있어서,
    상기 제 3 메시지에 기초하여 상기 코어 로직 회로에서 제 4 메시지를 전송하기 위한 수단;
    상기 제 4 메시지를 상기 코어 로직 회로로부터 상기 프로세서로 전송하기 위한 수단;
    상기 제 4 메시지를 상기 테스트 로직 회로에서 스누핑하기 위한 수단;
    상기 제 4 메시지가 유효한지 여부를 결정하기 위해 상기 제 4 메시지를 상기 테스트 로직 회로에서 평가하기 위한 수단;
    상기 제 4 메시지가 유효한지 여부를 표시하는 제 2 상태 신호를 상기 테스트 로직 회로로부터 상기 프로세서로 제공하기 위한 수단을 더 포함하는,
    집적 회로.
  39. 삭제
  40. 삭제
  41. 삭제
  42. 제 30 항에 있어서,
    상기 메시지와 관련된 응답 메시지를 상기 코어 로직 회로에서 생성하기 위한 수단, 상기 응답 메시지를 상기 프로세서로 전송하기 위한 수단, 상기 응답 메시지를 상기 테스트 로직 회로에서 평가하기 위한 수단, 및 상기 응답 메시지가 유효한지 여부를 표시하는 제 2 상태 신호를 상기 테스트 로직 회로에서 생성하기 위한 수단을 더 포함하는,
    집적 회로.
  43. 삭제
  44. 컴퓨터에 의해 실행가능한 명령들을 저장하는 컴퓨터-판독가능 매체로서, 상기 명령들은,
    송신 모드 및 수신 모드 중 하나의 모드에서 동작을 개시하도록 상기 컴퓨터에 의해 실행가능한 명령들;
    테스트 프로그램에 따라 집적 회로의 코어 로직 회로와 통신하기 위해 프로세서의 데이터를 포함하는 메시지를 생성하도록 상기 컴퓨터에 의해 실행가능한 명령들;
    상기 프로세서로부터 상기 코어 로직 회로로 상기 메시지를 전송하도록 상기 컴퓨터에 의해 실행가능한 명령들;
    상기 메시지를 상기 집적 회로의 테스트 로직 회로에서 스누핑하도록 상기 컴퓨터에 의해 실행가능한 명령들;
    상기 메시지가 유효한지 여부를 결정하기 위해 상기 테스트 로직 회로에서 상기 메시지를 평가하도록 상기 컴퓨터에 의해 실행가능한 명령들 ― 상기 메시지는 프로토콜에 따라 통신되고, 그리고 상기 메시지를 평가하도록 상기 컴퓨터에 의해 실행가능한 명령들은, 기준 데이터를 생성하도록 상기 컴퓨터에 의해 실행가능한 명령들 및 상기 메시지가 상기 프로토콜과 일치하는지 여부에 대한 결정 및 상기 메시지와 연관된 데이터와 상기 기준 데이터의 비교 중 적어도 하나에 기초하여 상기 메시지를 평가하도록 상기 컴퓨터에 의해 실행가능한 명령들을 포함함 ―; 및
    상기 메시지가 유효한지 여부를 표시하는 상태 신호를 상기 테스트 로직 회로로부터 상기 프로세서로 제공하도록 상기 컴퓨터에 의해 실행가능한 명령들을 포함하는,
    컴퓨터-판독가능 매체.
  45. 삭제
  46. 삭제
  47. 삭제
  48. 삭제
  49. 삭제
  50. 제 44 항에 있어서,
    상기 메시지에 기초하여 제 2 메시지를 상기 코어 로직 회로에서 생성하도록 상기 컴퓨터에 의해 실행가능한 명령들;
    상기 제 2 메시지를 테스트 로직 회로에서 스누핑하도록 상기 컴퓨터에 의해 실행가능한 명령들;
    상기 메시지가 유효한지 여부를 결정하기 위해 상기 테스트 로직 회로를 평가하도록 상기 컴퓨터에 의해 실행가능한 명령들; 및
    상기 제 2 메시지가 유효한지 여부를 표시하는 제 2 상태 신호를 상기 테스트 로직 회로로부터 상기 프로세서로 제공하도록 상기 컴퓨터에 의해 실행가능한 명령들을 더 포함하는,
    컴퓨터-판독가능 매체.
  51. 제 44 항에 있어서,
    상기 메시지에 기초하여 제 2 메시지를 상기 코어 로직 회로에서 생성하도록 상기 컴퓨터에 의해 실행가능한 명령들;
    상기 제 2 메시지를 외부 디바이스로 제공하기 위해 상기 제 2 메시지를 상기 코어 로직 회로로부터 핀 인터페이스로 전송하도록 상기 컴퓨터에 의해 실행가능한 명령들;
    상기 테스트 로직 회로에서 상기 제 2 메시지를 스누핑하도록 상기 컴퓨터에 의해 실행가능한 명령들;
    상기 제 2 메시지에 기초하여 제 3 메시지를 상기 테스트 로직 회로에서 생성하도록 상기 컴퓨터에 의해 실행가능한 명령들; 및
    상기 제 3 메시지를 상기 테스트 로직 회로로부터 상기 코어 로직 회로로 전송하도록 상기 컴퓨터에 의해 실행가능한 명령들을 더 포함하고,
    상기 테스트 로직 회로는 상기 외부 디바이스를 에뮬레이트하는,
    컴퓨터-판독가능 매체.
  52. 제 51 항에 있어서,
    상기 제 3 메시지에 기초하여 제 4 메시지를 상기 코어 로직 회로에서 생성하도록 상기 컴퓨터에 의해 실행가능한 명령들;
    상기 제 4 메시지를 상기 코어 로직 회로로부터 상기 프로세서로 전송하도록 상기 컴퓨터에 의해 실행가능한 명령들;
    상기 테스트 로직 회로에서 상기 제 4 메시지를 스누핑하도록 상기 컴퓨터에 의해 실행가능한 명령들;
    상기 제 4 메시지가 유효한지 여부를 결정하기 위해 상기 테스트 로직 회로에서 상기 제 4 메시지를 평가하도록 상기 컴퓨터에 의해 실행가능한 명령들; 및
    상기 제 4 메시지가 유효한지 여부를 표시하는 제 2 상태 신호를 상기 테스트 로직 회로로부터 상기 프로세서로 제공하도록 상기 컴퓨터에 의해 실행가능한 명령들을 더 포함하는,
    컴퓨터-판독가능 매체.
  53. 삭제
  54. 삭제
  55. 삭제
  56. 제 44 항에 있어서,
    상기 메시지와 관련된 응답 메시지를 상기 코어 로직 회로에서 생성하도록 상기 컴퓨터에 의해 실행가능한 명령들;
    상기 응답 메시지를 상기 프로세서로 전송하도록 상기 컴퓨터에 의해 실행가능한 명령들;
    상기 응답 메시지를 상기 테스트 로직 회로에서 평가하도록 상기 컴퓨터에 의해 실행가능한 명령들; 및
    상기 응답 메시지가 유효한지 여부를 표시하는 제 2 상태 신호를 상기 테스트 로직 회로에서 생성하도록 상기 컴퓨터에 의해 실행가능한 명령들을 더 포함하는,
    컴퓨터-판독가능 매체.
  57. 삭제
  58. 집적회로를 포함하는 시스템으로서,
    상기 집적회로는:
    테스트 프로그램의 명령들을 실행하도록 동작하는 프로세서 ― 상기 프로세서는 데이터를 포함하는 메시지를 생성하도록 동작함 ― ;
    버스를 통해 상기 프로세서로 연결되는 인터페이스 제어기 ― 상기 인터페이스 제어기는 상기 테스트 프로그램에 따라 상기 프로세서로부터 상기 버스를 통해 상기 메시지를 수신하도록 동작함 ― ; 및
    상기 프로세서 및 상기 인터페이스 제어기의 외부에 있는 테스트 로직 회로를 포함하고,
    상기 테스트 로직 회로는 상기 버스에 연결되고, 상기 테스트 로직 회로는 상기 버스를 통해 전송되는 상기 메시지를 인터셉트(intercept)하도록 동작하고, 상기 테스트 로직 회로는 상기 메시지를 평가하고 상기 평가에 기초하여 상기 메시지가 유효한지 여부를 표시하는 상태 신호를 핀 인터페이스로 제공하며,
    상기 메시지는 프로토콜에 따라 통신되고, 그리고 상기 테스트 로직 회로는, 기준 데이터를 생성하고 그리고 상기 메시지가 상기 프로토콜과 일치하는지 여부에 대한 결정 및 상기 메시지와 관련된 데이터와 상기 기준 데이터의 비교 중 적어도 하나에 기초하여 상기 메시지를 평가하는,
    시스템.
  59. 삭제
  60. 삭제
  61. 삭제
  62. 삭제
  63. 제 1 항에 있어서,
    상기 프로세서는, 수신 모드에서 상기 테스트 프로그램의 명령들을 실행하고, 상기 테스트 로직 회로는, 상기 프로세서에 의해 제공된 상기 테스트 로직 회로에서의 시드(seed) 값에 기초하여, 프로토콜과 연관되는 제 2 데이터를 포함하는 제 2 메시지를 상기 코어 로직 회로로 전송하는,
    집적 회로.
  64. 제 63 항에 있어서,
    상기 코어 로직 회로는 상기 테스트 로직 회로로부터 수신된 상기 제 2 데이터에 기초하여 제 3 메시지를 생성하는,
    집적 회로.
  65. 제 1 항에 있어서,
    상기 테스트 로직 회로는 상기 프로세서로부터 시드 값을 수신하고 제 2 데이터를 생성하는 의사 랜덤 데이터 생성기를 포함하고, 상기 제 2 데이터는 상기 테스트 프로그램에 의해 특정되는 테스트 데이터와 매치되는,
    집적 회로.
  66. 제 65 항에 있어서,
    상기 테스트 로직 회로는 검증 회로를 포함하고, 상기 검증 회로는 상기 메시지가 유효한지 여부를 결정하기 위해 상기 제 2 데이터를 상기 메시지로부터 스누핑된 데이터와 비교하는,
    집적 회로.
  67. 제 16 항에 있어서,
    상기 프로세서는 수신 모드에서 상기 테스트 프로그램의 명령들을 실행하고, 상기 방법은,
    프로토콜에 의해 요구되는 제 2 데이터를 포함하는 제 2 메시지를 상기 테스트 로직 회로로부터 상기 코어 로직 회로로 전송하는 단계 ― 상기 제 2 메시지는 상기 프로세서에 의해 제공되는 상기 테스트 로직 회로에서의 시드 값에 기반함 ― 를 더 포함하는,
    방법.
  68. 제 67 항에 있어서,
    상기 테스트 로직 회로로부터 수신된 상기 제 2 데이터에 기초하여 상기 코어 로직 회로에서 제 3 메시지를 생성하는 단계를 더 포함하는,
    방법.
  69. 제 16 항에 있어서,
    상기 프로세서로부터 상기 테스트 로직 회로의 의사 랜덤 데이터 생성기에서의 시드 값을 수신하는 단계; 및
    상기 의사 랜덤 데이터 생성기에서, 상기 테스트 프로그램에 의해 특정된 테스트 데이터와 매치되는, 제 2 메시지에 대응하는 제 2 데이터를 생성하는 단계를 더 포함하는,
    방법.
  70. 제 69 항에 있어서,
    상기 테스트 로직 회로의 검증 모듈에서, 상기 메시지가 유효하지 여부를 결정하기 위해 상기 제 2 데이터를 상기 메시지로부터 스누핑된 데이터와 비교하는 단계를 더 포함하는,
    방법.
  71. 제 58 항에 있어서,
    상기 인터페이스 제어기는 상기 메시지에 기초하여 제 2 메시지를 생성하고 제 2 버스를 통해 외부 디바이스로 상기 제 2 메시지를 전송하고,
    상기 테스트 로직 회로는 상기 제 2 버스로 연결되고, 상기 테스트 로직 회로는 상기 제 2 버스를 통해 상기 제 2 메시지를 인터셉트 하도록 동작하고, 상기 테스트 로직 회로는 상기 제 2 메시지를 평가하고 상기 제 2 메시지가 유효한지 여부를 표시하는 제 2 상태 신호를 상기 핀 인터페이스로 제공하고,
    상기 테스트 로직 회로는 상기 제 2 메시지에 기초하여 제 3 메시지를 생성하고 상기 외부 디바이스를 에뮬레이트하기 위해 상기 제 2 버스를 통해 상기 인터페이스 제어기로 상기 제 3 메시지를 전송하도록 추가적으로 동작하는,
    시스템.
  72. 제 71 항에 있어서,
    상기 인터페이스 제어기는 상기 제 3 메시지에 기초하여 제 4 메시지를 생성하고 상기 버스를 통해 상기 프로세서로 상기 제 4 메시지를 전송하도록 동작하고, 그리고
    상기 테스트 로직 회로는 상기 제 4 메시지를 평가하고 상기 제 4 메시지가 유효한지 여부를 표시하는 제 3 상태 신호를 상기 핀 인터페이스로 제공하는,
    시스템.
KR1020107000661A 2007-06-14 2008-06-12 외부 인터페이스들의 기능성을 검증하기 위한 자체-테스트 특징을 갖는 집적 회로 KR101265116B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US11/842,396 2007-08-21
US11/842,396 US8484524B2 (en) 2007-08-21 2007-08-21 Integrated circuit with self-test feature for validating functionality of external interfaces
US94393507P 2007-09-10 2007-09-10
US60/943,935 2007-09-10

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020137005441A Division KR20130040259A (ko) 2007-06-14 2008-06-12 외부 인터페이스들의 기능성을 검증하기 위한 자체-테스트 특징을 갖는 집적 회로

Publications (2)

Publication Number Publication Date
KR20100027214A KR20100027214A (ko) 2010-03-10
KR101265116B1 true KR101265116B1 (ko) 2013-05-16

Family

ID=39734919

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020107000661A KR101265116B1 (ko) 2007-06-14 2008-06-12 외부 인터페이스들의 기능성을 검증하기 위한 자체-테스트 특징을 갖는 집적 회로
KR1020137005441A KR20130040259A (ko) 2007-06-14 2008-06-12 외부 인터페이스들의 기능성을 검증하기 위한 자체-테스트 특징을 갖는 집적 회로

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020137005441A KR20130040259A (ko) 2007-06-14 2008-06-12 외부 인터페이스들의 기능성을 검증하기 위한 자체-테스트 특징을 갖는 집적 회로

Country Status (8)

Country Link
US (1) US8484524B2 (ko)
EP (1) EP2158495B1 (ko)
JP (1) JP2010537156A (ko)
KR (2) KR101265116B1 (ko)
CN (1) CN101680932B (ko)
AT (1) ATE521903T1 (ko)
TW (1) TW200909829A (ko)
WO (1) WO2008157246A1 (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8622292B2 (en) * 2005-09-29 2014-01-07 Jeffrey Bart Katz Reservation-based preauthorization payment system
US9004355B2 (en) * 2005-09-29 2015-04-14 Cardfree Inc Secure system and method to pay for a service provided at a reservation
US20090089003A1 (en) * 2007-09-28 2009-04-02 Inventec Corporation Accessory-testing device and method therefor
US8220718B2 (en) * 2008-09-15 2012-07-17 Vasco Data Security, Inc. Method for post-manufacturing data transfer to and from a sealed device
JP2011075460A (ja) * 2009-09-30 2011-04-14 Toshiba Corp 半導体集積回路
US20120324302A1 (en) * 2011-06-17 2012-12-20 Qualcomm Incorporated Integrated circuit for testing using a high-speed input/output interface
US8933715B2 (en) * 2012-04-08 2015-01-13 Elm Technology Corporation Configurable vertical integration
US9542347B2 (en) 2013-03-16 2017-01-10 Intel Corporation Host interface crossbar for sensor hub
US9430414B2 (en) 2013-03-16 2016-08-30 Intel Corporation Bus independent platform for sensor hub peripherals to provide coalescing of multiple reports
CN104678279A (zh) * 2013-11-29 2015-06-03 英业达科技有限公司 使用测试向量测试连接插槽的系统及其方法
US10379926B2 (en) * 2014-08-05 2019-08-13 Macronix International Co., Ltd. Method and device for monitoring data error status in a memory
US11403170B2 (en) * 2014-08-05 2022-08-02 Macronix International Co., Ltd. Method and device for monitoring data error status in a memory
KR102377362B1 (ko) * 2015-07-08 2022-03-23 삼성전자주식회사 보조 테스트 장치, 그것을 포함하는 테스트 보드 및 그것의 테스트 방법
US10657092B2 (en) * 2016-06-30 2020-05-19 Intel Corporation Innovative high speed serial controller testing
US10521363B2 (en) * 2016-11-23 2019-12-31 Nuvoton Technology Corporation Fully-digital multiple pin value detector apparatus and sampling methods useful in conjunction therewith
WO2019152822A1 (en) * 2018-02-02 2019-08-08 Dover Microsystems, Inc. Systems and methods for post cache interlocking
JP7436394B2 (ja) 2018-09-17 2024-02-21 キャリア コーポレイション コントローラ内部回路の自己検証
CN112256512B (zh) * 2020-10-27 2024-05-07 重庆航天工业有限公司 一种基于glink总线的验证及测试通用系统
US20220237297A1 (en) * 2021-01-27 2022-07-28 Advanced Micro Devices, Inc. Secure coprocessor enforced system firmware feature enablement
JP2024532660A (ja) * 2021-11-08 2024-09-10 株式会社アドバンテスト 自動試験機器、被試験デバイス、試験機器構成、確認応答信号を用いる方法
KR20240135746A (ko) * 2021-11-08 2024-09-12 주식회사 아도반테스토 측정 요청을 사용하는 자동화된 테스트 장비, 테스트 대상 디바이스, 테스트 셋업 방법들
KR20230168801A (ko) 2022-06-08 2023-12-15 와이아이케이 주식회사 반도체 테스트 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020183054A1 (en) 2001-04-09 2002-12-05 Yoram Rimoni Mobile system testing architecture
US20030023914A1 (en) 2001-07-30 2003-01-30 Taylor Richard D. Built-in-self-test using embedded memory and processor in an application specific integrated circuit

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0425955A (ja) * 1990-05-22 1992-01-29 Nec Corp バスインタフェース診断装置
US5537536A (en) * 1994-06-21 1996-07-16 Intel Corporation Apparatus and method for debugging electronic components through an in-circuit emulator
US5574733A (en) * 1995-07-25 1996-11-12 Intel Corporation Scan-based built-in self test (BIST) with automatic reseeding of pattern generator
JP3274332B2 (ja) 1995-11-29 2002-04-15 株式会社東芝 コントローラ・大容量メモリ混載型半導体集積回路装置およびそのテスト方法およびその使用方法、並びに半導体集積回路装置およびそのテスト方法
JPH09223081A (ja) 1996-02-16 1997-08-26 Fujitsu Ltd 外部装置インタフェース検証システム
US5909593A (en) * 1996-12-09 1999-06-01 International Business Machines Corporation System for assigning snoop levels to snooper modules and selectively invoking snooper modules having specified relation to a selected snoop level for hardware detection
JPH10221410A (ja) 1997-02-07 1998-08-21 Mitsubishi Electric Corp Lsiの自動論理検証方式
US5991898A (en) 1997-03-10 1999-11-23 Mentor Graphics Corporation Arithmetic built-in self test of multiple scan-based integrated circuits
DE19917884C1 (de) * 1999-04-20 2000-11-16 Siemens Ag Schaltung mit eingebautem Selbsttest
US7036064B1 (en) 2000-11-13 2006-04-25 Omar Kebichi Synchronization point across different memory BIST controllers
WO2005006005A1 (en) * 2003-07-09 2005-01-20 Koninklijke Philips Electronics N.V. Ic with on-board characterization unit
TWI266065B (en) 2005-05-18 2006-11-11 Via Tech Inc Chip capable of testing itself and testing method thereof
JP4599266B2 (ja) 2005-09-27 2010-12-15 株式会社東芝 シミュレーション装置及びシミュレーション方法
US8032745B2 (en) * 2005-12-20 2011-10-04 International Business Machines Corporation Authentication of I2C bus transactions
US7519886B2 (en) * 2006-01-05 2009-04-14 International Business Machines Corporation Apparatus and method for integrated functional built-in self test for an ASIC

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020183054A1 (en) 2001-04-09 2002-12-05 Yoram Rimoni Mobile system testing architecture
US20030023914A1 (en) 2001-07-30 2003-01-30 Taylor Richard D. Built-in-self-test using embedded memory and processor in an application specific integrated circuit

Also Published As

Publication number Publication date
EP2158495A1 (en) 2010-03-03
WO2008157246A1 (en) 2008-12-24
US8484524B2 (en) 2013-07-09
KR20100027214A (ko) 2010-03-10
JP2010537156A (ja) 2010-12-02
CN101680932A (zh) 2010-03-24
US20090055695A1 (en) 2009-02-26
CN101680932B (zh) 2013-11-20
EP2158495B1 (en) 2011-08-24
KR20130040259A (ko) 2013-04-23
ATE521903T1 (de) 2011-09-15
WO2008157246A8 (en) 2010-04-15
TW200909829A (en) 2009-03-01

Similar Documents

Publication Publication Date Title
KR101265116B1 (ko) 외부 인터페이스들의 기능성을 검증하기 위한 자체-테스트 특징을 갖는 집적 회로
EP3274836B1 (en) System and method to enable closed chassis debug control interface using a usb type-c connector
US10289779B2 (en) Universal verification methodology (UVM) register abstraction layer (RAL) traffic predictor
CN107077409B (zh) 用于在电子系统中进行多接口调试的方法和装置
US7047458B2 (en) Testing methodology and apparatus for interconnects
US10209306B2 (en) Methods and systems for generating functional test patterns for manufacture test
CN115146568B (zh) 一种基于uvm的芯片验证系统及验证方法
CN112269120A (zh) 接口信号回环测试方法、装置、计算机设备和存储介质
US11828787B2 (en) Eye diagram capture test during production
US20240095366A1 (en) Secure boot apparatus and method
US10762029B2 (en) Electronic apparatus and detection method using the same
US7650540B2 (en) Detecting and differentiating SATA loopback modes
CN115496018A (zh) 一种SoC芯片多版本验证方法、装置及设备
CN114330176A (zh) 芯片验证方法、装置、电子设备及存储介质
CN105589530B (zh) 一种电子系统和管理半导体芯片的使用的方法
TWI234705B (en) Detecting method for PCI system
US20240118340A1 (en) Processor test pattern generation and application for tester systems
US20240094287A1 (en) Low power environment for high performance processor without low power mode
US7206556B1 (en) Wireless transmitter control lockout
CN114297982A (zh) 一种基于uvm的spi总线验证方法及系统
CN117421163A (zh) 设备探测方法、片上系统、计算机设备及存储介质
CN115480972A (zh) 电子设备的检测方法、系统、电子设备及存储介质
CN117707864A (zh) 用于测试仪系统的处理器测试模式的生成和应用

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
AMND Amendment
E601 Decision to refuse application
A107 Divisional application of patent
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee