KR101265116B1 - Integrated circuit with self-test feature for validating functionality of external interfaces - Google Patents

Integrated circuit with self-test feature for validating functionality of external interfaces 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
Korean (ko)
Other versions
KR20100027214A (en
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/en
Application granted granted Critical
Publication of KR101265116B1 publication Critical patent/KR101265116B1/en

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

This disclosure describes an integrated circuit with self-test features for validating functionality of external interfaces. Example external interfaces include memory interfaces and bus interfaces, such as a peripheral component interconnect (PCI) bus, an advanced high-performance bus (AHB), an advanced extensible interface (AXI) bus, and other external interfaces that operate a high frequency, e.g., 200 MHz or greater. Test logic may be embedded on the integrated circuit and configured to validate functionality of external interfaces while receiving power and non-test signals from external test equipment. Thus, external test equipment may not supply high frequency test signals to the integrated circuit. The external test equipment may, however, independently validate functionality of a pin interface of the integrated circuit. As a result, the integrated circuit may reduce cost and time required to verify functionality and timing of the external interfaces.

Description

외부 인터페이스들의 기능성을 검증하기 위한 자체-테스트 특징을 갖는 집적 회로{INTEGRATED CIRCUIT WITH SELF-TEST FEATURE FOR VALIDATING FUNCTIONALITY OF EXTERNAL INTERFACES}INTEGRATED CIRCUIT WITH SELF-TEST FEATURE FOR VALIDATING FUNCTIONALITY OF EXTERNAL INTERFACES}

이 출원은 2007년 6월 14일 출원된 미국 가출원 제60/943,935호의 이익을 주장하며, 그 전체 내용은 참조로써 통합된다.This application claims the benefit of US Provisional Application No. 60 / 943,935, filed June 14, 2007, the entire contents of which are incorporated by reference.

본 개시내용은 집적 회로들에 관련되며, 보다 상세하게는 집적 회로용 외부 인터페이스들의 기능성과 타이밍을 검증하기 위한 기술들에 관련된다.The present disclosure relates to integrated circuits, and more particularly to techniques for verifying the functionality and timing of external interfaces for integrated circuits.

집적 회로(integrated circuit, IC) 디바이스들은 반도체 기판에 구현된 많은 소형화된 회로들을 포함할 수 있다. IC 디바이스들은 판매되고 상업적으로 사용되기 전에 적절한 동작을 보장하기 위하여 제조 후 테스트 된다. 통상 IC 디바이스의 철저한 테스트가 복잡하고 고가의 외부 테스트 장비를 이용하여 수행된다. IC 디바이스를 테스트하기 위하여, IC 디바이스는 테스트 장비 상에 탑재된다. 특히, IC 디바이스는 코어 로직을 입/출력(I/O) 핀들에 상호접속시키는 패드 링(pad ring)을 통해 테스트 장비에 접속된다. IC 디바이스를 테스트하기 위하여, 테스트 장비는 I/O 핀들을 통해 IC 디바이스로 테스트를 정의하는 테스트 데이터를 전달하고 테스트 프로그램에 의해 정의된 테스트에 따라 IC 디바이스로부터 응답 신호들을 획득한다.Integrated circuit (IC) devices may include many miniaturized circuits implemented in a semiconductor substrate. IC devices are tested after manufacture to ensure proper operation before they are sold and used commercially. Thorough testing of IC devices is typically performed using complex and expensive external test equipment. To test the IC device, the IC device is mounted on test equipment. In particular, the IC device is connected to the test equipment through a pad ring that interconnects the core logic to the input / output (I / O) pins. To test the IC device, the test equipment passes test data defining the test to the IC device through the I / O pins and obtains response signals from the IC device according to the test defined by the test program.

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 디바이스로부터 응답 신호들을 획득한다.Testing the IC device requires verifying the functionality and timing of the internal and external interfaces of the IC device. Examples of external interfaces include memory interfaces and peripheral component interconnect (PCI) buses, advanced high-performance buses (AHBs), enhanced extensible interface (AXI) interface buses. , Small computer system interface (SCSI) bus, Ethernet bus, Universal Serial Bus (USB), Advanced Graphics Processor (AGP) bus, Serial Serial Advanced Technology Attachment (ATA) Bus interfaces such as a bus and other external interfaces operating at high frequencies are included. Verifying the functionality and timing of the external interfaces includes using the host computer to generate trace files for the external interface under test by developing a test program and running a simulation. When trace files, also called test vectors, vectors, or test data, are prepared, the test data is loaded onto test equipment. The test equipment provides test signals to the IC device in accordance with the test data and obtains response signals from the IC device through the I / O pins.

테스트 동안에, IC 디바이스의 동작이 송신 및 수신 모드들 모두에서 테스트된다. 송신 모드 또는 수신 모드에서, 테스트 장비는 테스트 데이터에 따라 신호 변환(transition)들을 제공하며 IC 디바이스는 대응하는 응답 신호들을 생성한다. 다음, 테스트 장비는 테스트 데이터에 따라 상기 응답들을 검증한다. 테스트들이 완료되면, 테스트 장비, 또는 더 구체적으로는, 호스트 컴퓨터가 응답 신호들을 해석한다. 호스트 컴퓨터는 송신 및 수신 모드들에서 IC 디바이스에 의해 생성된 응답 신호들을 시뮬레이트된 결과들과 비교함으로써 결과치들을 해석한다. 호스트 컴퓨터는 상기 비교에 기초하여 IC 디바이스가 테스트를 통과하였는지 여부를 표시하는 리포트를 생성한다.During the test, the operation of the IC device is tested in both transmit and receive modes. In either the transmit mode or the receive mode, the test equipment provides signal transitions in accordance with the test data and the IC device generates corresponding response signals. The test rig then verifies the responses according to the test data. Once the tests are completed, the test equipment, or more specifically, the host computer interprets the response signals. The host computer interprets the results by comparing the response signals generated by the IC device in the transmit and receive modes with the simulated results. The host computer generates a report indicating whether the IC device passed the test based on the comparison.

또한, 각 테스트 벡터에 대하여, IC 디바이스는 다양한 동작 조건들, 예를들어 온도, 전압 변화들, 및 프로세스 코너(corner)들에 대하여 테스트될 수 있다. 또한, 테스트 장비가 외부 인터페이스의 최대 동작 주파수에서 또는 그 이상에서 신호를 생성하는 것이 요구될 수 있다. IC 디바이스들의 복잡성과 클록 주파수가 증가함에 따라, 테스트 장비 채널들이 동작하는 주파수도 또한 IC 디바이스를 신뢰성있게 테스트하기 위하여 증가되어야 할 필요가 있다. 예를들어, 고속 메모리 디바이스들의 클록 주파수가 거의 매년 마다 증가하기 때문에, 테스트 장비는 이들 디바이스들을 높은 동작 주파수들로 테스트하기 위하여 업그레이드되고, 수정되고, 또한 교체가 되기도하여야 한다. 달리 말하면, IC 디바이스들은 낮은 주파수들에서 동작하는 테스트 디바이스들 용으로 제조되었던 구식 테스트 장비를 이용해서는 IC 디바이스들의 최대 클록 주파수에서 테스트될 수 없다. 따라서, 클록 주파수의 각 향상(advance)에 따라 테스트 장비가 업그레이드되거나 구매되어야 하고 새로운 테스트 프로그램들이 개발되어야 하며, 이에 의해 새로운 IC 디바이스들의 가격을 증가시킨다.In addition, for each test vector, the IC device can be tested for various operating conditions, such as temperature, voltage changes, and process corners. It may also be required for the test equipment to generate a signal at or above the maximum operating frequency of the external interface. As the complexity and clock frequency of IC devices increase, the frequency at which test equipment channels operate also needs to be increased to reliably test the IC device. For example, because the clock frequency of high speed memory devices increases almost every year, test equipment must be upgraded, modified, and even replaced to test these devices at high operating frequencies. In other words, IC devices cannot be tested at the maximum clock frequency of IC devices using old test equipment that was manufactured for test devices operating at low frequencies. Thus, with each improvement in clock frequency, test equipment must be upgraded or purchased and new test programs must be developed, thereby increasing the cost of new IC devices.

본 개시내용은 고 주파수 외부 인터페이스들의 기능성을 검증하기 위한 자체-테스트 특징들을 갖는 집적 회로에 대해 설명하고 있다. 예시적인 외부 인터페이스들은 메모리 인터페이스들 및 주변 컴포넌트 상호접속(peripheral component interconnect, PCI), 향상된 고성능 버스(advanced high-performance bus, AHB), 향상된 익스텐서블 인터페이스(advance extensible interface, AXI) 버스, 및 예를들어 200㎒ 이상의 고 주파수에서 동작하는 다른 외부 인터페이스들과 같은 버스 인터페이스들이 포함된다. 테스트 로직은 집적 회로 상에 내장될 수 있으며 외부 인터페이스들의 기능성을 검증하도록 구성될 수 있다. 예를들어, 테스트 로직은 외부 테스트 장비로부터 전력과 비-테스트 신호들을 수신하면서 외부 인터페이스 기능성을 검증하도록 구성될 수 있다. 따라서, 외부 테스트 장비는 집적 회로에 고 주파수 테스트 신호들을 제공하지 않을 수 있다. This disclosure describes an integrated circuit with self-test features for verifying the functionality of high frequency external interfaces. Exemplary external interfaces include memory interfaces and peripheral component interconnect (PCI), an advanced high-performance bus (AHB), an enhanced extensible interface (AXI) bus, and examples Bus interfaces such as, for example, other external interfaces operating at high frequencies above 200 MHz are included. The test logic may be embedded on the integrated circuit and may be configured to verify the functionality of the external interfaces. For example, the test logic may be configured to verify external interface functionality while receiving power and non-test signals from external test equipment. Thus, external test equipment may not provide high frequency test signals to the integrated circuit.

외부 인터페이스의 기능성을 검증하는 것은 일반적으로 외부 인터페이스들을 통해 송신된 트랜잭션(transaction)들을 상기 트랜잭션들과 관련된 데이터에 기초해서 또는 상기 트랜잭션들이 대응하는 프로토콜과 일치하는지 여부에 기초해서 검증하는 것을 의미한다. 외부 테스트 장비는, 전력과 핵심 신호들을 집적회로에 공급하는 것뿐만 아니라 집적 회로의 핀 인터페이스의 기능성을 독립적으로 검증하는데 이용된다. 이러한 방식으로, 집적 회로의 온-칩, 자체 테스트 특징들이 테스트 장비가 고주파수 테스트 신호들을 제공해야되는 필요성을 실질적으로 제거하며, 그 결과, 외부 인터페이스들의 타이밍과 기능성을 검증하는데 요구되는 비용과 시간을 감소시킬 수 있다. Verifying the functionality of an external interface generally means verifying transactions sent over the external interfaces based on data associated with the transactions or whether the transactions match a corresponding protocol. External test equipment is used to independently verify the functionality of the pin interface of the integrated circuit, as well as supply power and key signals to the integrated circuit. In this way, the on-chip, self-test features of the integrated circuit substantially eliminate the need for the test equipment to provide high frequency test signals, resulting in the cost and time required to verify the timing and functionality of the external interfaces. Can be reduced.

일 양상에서, 집적 회로는 송신 모드 및 수신 모드 중 하나에서의 동작을 개시하기 위하여 테스트 프로그램의 명령들을 실행하는 프로세서, 상기 테스트 프로그램에 따라 하나 이상의 외부 디바이스들과 상기 프로세서와 통신하기 위하여 트랜잭션들을 생성하는 코어 로직 회로 ― 상기 프로세서는 상기 테스트 프로그램에 따라 상기 코어 로직과 통신하기 위한 트랜잭션들을 생성함 ― , 및 상기 트랜잭션들 중 하나 이상을 검증하고 상기 하나 이상의 트랜잭션들이 유효한지 여부를 표시하는 상태 신호를 출력하는 테스트 로직을 포함한다.In one aspect, an integrated circuit includes a processor that executes instructions of a test program to initiate operation in one of a transmit mode and a receive mode, and generate transactions to communicate with the processor with one or more external devices in accordance with the test program. A core logic circuit, the processor generating transactions for communicating with the core logic in accordance with the test program, and verifying one or more of the transactions and indicating a status signal indicating whether the one or more transactions are valid. Contains test logic to output.

다른 양상에서, 방법은 송신 모드 및 수신 모드 중 하나에서 동작을 개시하도록 집적 회로 상의 프로세서 내의 테스트 프로그램의 명령들을 실행하는 단계, 상기 테스트 프로그램에 따라 상기 집적 회로 상의 코어 로직과 통신하기 위하여 상기 프로세서에서 트랜잭션들을 생성하는 단계, 상기 테스트 프로그램에 따라 하나 이상의 외부 디바이스들 및 상기 프로세서와 통신하기 위하여 상기 코어 로직에서 트랜잭션들을 생성하는 단계, 상기 집적 회로 상의 테스트 로직을 통하여 상기 트랜잭션들의 하나 이상을 검증하는 단계, 및 상기 하나 이상의 트랜잭션들이 유효한지 여부를 표시하는 상태 신호를 상기 테스트 로직에서 생성하는 단계를 포함한다.In another aspect, a method includes executing instructions of a test program in a processor on an integrated circuit to initiate operation in one of a transmit mode and a receive mode, at the processor to communicate with core logic on the integrated circuit in accordance with the test program. Generating transactions, generating transactions in the core logic to communicate with one or more external devices and the processor in accordance with the test program, and verifying one or more of the transactions through test logic on the integrated circuit. And generating a status signal in the test logic indicating whether the one or more transactions are valid.

다른 양상에서, 집적 회로는 송신 모드 및 수신 모드 중 하나에서 동작을 개시하도록 집적 회로 상의 테스트 프로그램의 명령들을 실행하기 위한 수단, 상기 테스트 프로그램에 따라 상기 집적 회로 상의 코어 로직과 통신하기 위하여 상기 프로세서에서 트랜잭션들을 생성하기 위한 수단, 상기 테스트 프로그램에 따라 하나 이상의 외부 디바이스들 및 상기 프로세서와 통신하기 위하여 상기 코어 로직에서 트랜잭션들을 생성하기 위한 수단, 상기 집적 회로 상의 테스트 로직을 통하여 상기 트랜잭션들의 하나 이상을 검증하기 위한 수단, 및 상기 하나 이상의 트랜잭션들이 유효한지 여부를 표시하는 상태 신호를 생성하기 위한 수단을 포함한다.In another aspect, an integrated circuit includes means for executing instructions of a test program on an integrated circuit to initiate operation in one of a transmit mode and a receive mode, at the processor to communicate with core logic on the integrated circuit in accordance with the test program. Means for generating transactions, means for generating transactions in the core logic to communicate with one or more external devices in accordance with the test program, and verifying one or more of the transactions through test logic on the integrated circuit. Means for generating, and means for generating a status signal indicating whether the one or more transactions are valid.

다른 양상에서, 컴퓨터 프로그램 물건이 컴퓨터 판독가능 매체를 포함하고, 상기 컴퓨터 판독가능 매체는 상기 컴퓨터 판독가능 매체 상에 저장된 명령들을 갖는다. 상기 명령들은 송신 모드 및 수신 모드 중 하나에서 동작을 개시하도록 집적 회로 상의 테스트 프로그램의 명령들을 실행하기 위한 코드, 상기 테스트 프로그램에 따라 상기 집적 회로 상의 코어 로직과 통신하기 위하여 상기 프로세서에서 트랜잭션들을 생성하기 위한 코드, 상기 테스트 프로그램에 따라 하나 이상의 외부 디바이스들 및 상기 프로세서와 통신하기 위하여 상기 코어 로직에서 트랜잭션들을 생성하기 위한 코드, 상기 집적 회로 상의 테스트 로직을 통하여 상기 트랜잭션들의 하나 이상을 검증하기 위한 코드, 및 상기 하나 이상의 트랜잭션들이 유효한지 여부를 표시하는 상태 신호를 생성하기 위한 코드를 포함한다.In another aspect, a computer program product includes a computer readable medium, the computer readable medium having instructions stored on the computer readable medium. The instructions are code for executing instructions of a test program on an integrated circuit to initiate operation in one of a transmit mode and a receive mode, generating transactions in the processor to communicate with core logic on the integrated circuit in accordance with the test program. Code for generating code in the core logic to communicate with one or more external devices and the processor in accordance with the test program, code for verifying one or more of the transactions through test logic on the integrated circuit, And code for generating a status signal indicating whether the one or more transactions are valid.

다른 양상에서, 시스템이 집적 회로 및 상기 집적 회로에 전력과 클록 신호를 공급하는 테스트 장비를 포함한다. 상기 집적 회로는 송신 모드 및 수신 모드 중 하나에서의 동작을 개시하기 위하여 테스트 프로그램의 명령들을 실행하는 프로세서, 상기 테스트 프로그램에 따라 하나 이상의 외부 디바이스들과 상기 프로세서와 통신하기 위하여 트랜잭션들을 생성하는 코어 로직 회로 ― 상기 프로세서는 상기 테스트 프로그램에 따라 상기 코어 로직과 통신하기 위한 트랜잭션들을 생성함 ― , 및 상기 트랜잭션들 중 하나 이상을 검증하고 상기 하나 이상의 트랜잭션들이 유효한지 여부를 표시하는 상태 신호를 출력하는 테스트 로직을 포함한다.In another aspect, a system includes an integrated circuit and test equipment for supplying power and clock signals to the integrated circuit. The integrated circuit includes a processor that executes instructions of a test program to initiate operation in one of a transmit mode and a receive mode, core logic that generates transactions to communicate with the processor with one or more external devices in accordance with the test program. Circuitry, wherein the processor generates transactions for communicating with the core logic in accordance with the test program, and a test that verifies one or more of the transactions and outputs a status signal indicating whether the one or more transactions are valid Contains logic.

본 개시내용에서 설명된 기술들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합에서 구현될 수 있다. 소프트웨어에서 구현되는 경우에, 소프트웨어는, 마이크로프로세서, 주문형 집적 회로(ASIC), 필드 프로그램가능 게이트 어레이(FPGA), 또는 디지털 신호 처리기(DSP)와 같은 하나 이상의 프로세서들에서 실행될 수 있다. 상기 기술들을 실행하는 소프트웨어는 컴퓨터 판독가능 매체에 초기에 저장되고 프로세서에 로딩 및 실행될 수 있다. 따라서, 본 개시내용은 실행시 디바이스가 본 개시내용에서 설명된 바와 같은 기술들을 수행하도록 야기하는 명령들을 포함하는 컴퓨터 판독가능 매체를 또한 고려한다. 일부 경우들에서, 컴퓨터 판독가능 매체는 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 물건의 일부를 형성할 수 있다.The techniques described in this disclosure may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the software may be executed in one or more processors, such as a microprocessor, application specific integrated circuit (ASIC), field programmable gate array (FPGA), or digital signal processor (DSP). Software implementing the techniques may be initially stored on a computer readable medium and loaded and executed on a processor. Thus, the present disclosure also contemplates computer readable media comprising instructions that, when executed, cause a device to perform techniques as described in this disclosure. In some cases, the computer readable medium may form part of a computer program product including the computer readable medium.

본 개시내용의 하나 이상의 양상들은 이하의 상세한 설명과 첨부된 도면에서 제시된다. 본 개시내용의 다른 특징, 목적들, 및 이점들은 상세한 설명 및 도면과, 청구범위로부터 명확해질 것이다.One or more aspects of the disclosure are set forth in the following description and the annexed drawings. Other features, objects, and advantages of the disclosure will be apparent from the description and drawings, and from the claims.

도1은 자체 테스트 특징들을 갖는 집적 회로와 집적 회로를 테스트하기 위한 외부 테스트 장비를 나타내는 블록도이다.
도2는 도1의 집적 회로를 보다 상세히 나타내는 블록도이다.
도3은 도2의 집적 회로의 예시적인 컴포넌트들을 보다 상세히 나타내는 블록도이다.
도4 및 도5는 도2의 집적 회로에 의해 수행될 수 있는 예시적인 자체 테스트 기술들을 나타내는 흐름도이다.
1 is a block diagram illustrating an integrated circuit with self test features and external test equipment for testing the integrated circuit.
FIG. 2 is a block diagram illustrating the integrated circuit of FIG. 1 in more detail.
3 is a block diagram illustrating exemplary components of the integrated circuit of FIG. 2 in more detail.
4 and 5 are flow diagrams illustrating exemplary self test techniques that may be performed by the integrated circuit of FIG.

집적 회로들은 판매와 상업적 사용 전에 적절한 동작을 보장하기 위하여 제조 후 테스트된다. 집적 회로를 테스트하는 것은 외부 디바이스들과 통신하는데 사용된 외부 인터페이스들의 기능성을 검증하는 것을 포함할 수 있다. 일반적으로, 호스트 컴퓨터가 테스트 프로그램을 개발하고 외부 인터페이스들을 위한 추적(trace) 파일들을 생성하기 위해 시뮬레이션을 구동시키는데 이용된다. 본 개시내용에서 테스트 벡터들, 벡터들, 또는 테스트 데이터로도 언급되는 추적 파일들이 생성되면, 테스트 데이터에 따라 집적 회로로 신호들을 공급하는 테스트 장비 상으로 추적 파일들이 로딩된다. Integrated circuits are tested after manufacture to ensure proper operation prior to sales and commercial use. Testing the integrated circuit can include verifying the functionality of the external interfaces used to communicate with the external devices. In general, a host computer is used to run a simulation to develop a test program and generate trace files for external interfaces. When trace files, also referred to as test vectors, vectors, or test data in the present disclosure, are generated, the trace files are loaded onto test equipment that supplies signals to the integrated circuit in accordance with the test data.

이러한 방식으로 집적 회로를 테스트하는 것은 집적 회로의 외부 인터페이스들의 복잡한 기능성을 커버하는데 다수의 테스트 벡터들을 필요로 하므로 시간 소모적일 수 있다. 또한, 외부 인터페이스의 타이밍을 검증하기 위해 높은 주파수의 집적 회로 동작을 테스트 장비가 지원해야 하기 때문에 테스트 장비가 고가가 될 수 있다. 집적 회로들의 복잡성과 클록 주파수는 빈번하게 증가되기 때문에, 외부 테스트 장비의 성능은 새로운 집적 회로들을 테스트하는데 제한 요인이 될 수 있다. 즉, 낮은 주파수에서 동작하는 집적 회로를 테스트하기 위해 제조되었던 구식 테스트 장비는 새로운 집적 회로들을 이들의 높은 동작 주파수들에서 테스트하는데 이용될 수 없다. 더 높은 주파수들에서 집적 회로들을 테스트할 수 있는 새로운 외부 테스트 장비를 획득하는 것은 가격이 많이 들고 추가적인 시간이 요구될 수 있다.Testing an integrated circuit in this manner can be time consuming because it requires multiple test vectors to cover the complex functionality of the external interfaces of the integrated circuit. In addition, test equipment can be expensive because the test equipment must support high frequency integrated circuit operation to verify the timing of the external interface. Because the complexity and clock frequency of integrated circuits increases frequently, the performance of external test equipment can be a limiting factor in testing new integrated circuits. That is, old test equipment that was manufactured to test integrated circuits operating at low frequencies cannot be used to test new integrated circuits at their high operating frequencies. Acquiring new external test equipment that can test integrated circuits at higher frequencies can be expensive and require additional time.

본 개시내용은 고주파수 외부 인터페이스들의 기능성을 검증하기 위한 자체 테스트 특징들을 갖는 집적 회로를 설명하고 있다. 외부 인터페이스들의 예에는 메모리 인터페이스들 및 주변 컴포넌트 상호접속(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㎒ 이상에서 동작하는 다른 외부 인터페이스들과 같은 버스 인터페이스들이 포함된다. 본 개시내용의 다양한 양상들에 따르면, 테스트 로직이 집적 회로 상에 내장되고 외부 인터페이스들의 기능성을 검증하도록 구성될 수 있다. 일부 양상들에서, 테스트 로직은 외부 테스트 장비로부터 전력 및 비 테스트 신호들을 수신하면서 외부 인터페이스 기능성을 테스트하도록 구성될 수 있다. 따라서, 외부 테스트 장비는 집적 회로에 고주파수 테스트 신호들을 제공하지 않을 수 있다.The present disclosure describes an integrated circuit with self test features for verifying the functionality of high frequency external interfaces. Examples of external interfaces include memory interfaces and peripheral component interconnect (PCI) buses, enhanced high-performance buses (AHBs), enhanced extensible interface (AXI) interface buses, Small computer system interface (SCSI) bus, Ethernet bus, Universal Serial Bus (USB), Advanced Graphics Processor (AGP) bus, Serial Serial Technology Attachment (ATA) bus And bus interfaces such as, and other external interfaces operating at high frequencies, for example 200 MHz or more. According to various aspects of the present disclosure, test logic may be embedded on an integrated circuit and configured to verify the functionality of external interfaces. In some aspects, the test logic may be configured to test external interface functionality while receiving power and non test signals from external test equipment. Thus, external test equipment may not provide high frequency test signals to the integrated circuit.

외부 인터페이스의 기능성을 검증하는 것은 외부 인터페이스들을 통해 송신된 트랜잭션들을 상기 트랜잭션들과 관련된 데이터에 기초해서 또는 상기 트랜잭션들이 대응하는 프로토콜과 일치하는지 여부에 기초해서 검증하는 것을 의미한다. 외부 테스트 장비가 전력과 비 테스트 신호들, 즉 집적 회로의 동작에 핵심적인 신호들을 집적회로에 공급하고 집적 회로의 핀 인터페이스의 기능성을 독립적으로 검증하는데 이용된다. 이러한 방식으로, 집적 회로의 온-칩, 자체 테스트 특징들이 테스트 장비가 고주파수 테스트 신호들을 제공해야되는 필요성을 실질적으로 제거하며, 그 결과, 외부 인터페이스들의 타이밍과 기능성을 검증하는데 요구되는 비용과 시간을 감소시킬 수 있다. Verifying the functionality of the external interface means verifying transactions sent over the external interfaces based on data associated with the transactions or based on whether the transactions match a corresponding protocol. External test equipment is used to supply power and non-test signals, i.e., signals critical to the operation of the integrated circuit, to the integrated circuit and to independently verify the functionality of the integrated circuit's pin interface. In this way, the on-chip, self-test features of the integrated circuit substantially eliminate the need for the test equipment to provide high frequency test signals, resulting in the cost and time required to verify the timing and functionality of the external interfaces. Can be reduced.

도1은 집적 회로(12)의 고주파수 외부 인터페이스들의 기능성을 검증하기 위한 시스템(10)을 도시하는 블록도이다. 도1에 도시된 바와 같이, 시스템(10)은 집적 회로(12)와 테스트 장비(22)를 포함한다. 일반적으로, 집적 회로(12)는 고주파수 외부 인터페이스들의 기능성을 검증하기 위해 테스트 장비(22)가 고주파수 테스트 신호들을 제공해야하는 필요성을 실질적으로 제거하는 자체 테스트 특징들을 갖는다. 결과적으로, 테스트 장비(22)는 전력과 비 테스트 신호들, 즉 동작을 위한 핵심적인 신호들을 테스트 프로세스 동안에 집적 회로(12)에 제공하는 비교적 저가의 테스트 장비일 수 있다.1 is a block diagram illustrating a system 10 for verifying the functionality of high frequency external interfaces of an integrated circuit 12. As shown in FIG. 1, system 10 includes integrated circuit 12 and test equipment 22. In general, integrated circuit 12 has self-test features that substantially eliminate the need for test equipment 22 to provide high frequency test signals to verify the functionality of the high frequency external interfaces. As a result, the test rig 22 may be a relatively inexpensive test rig that provides power and non-test signals, i.e., critical signals for operation, to the integrated circuit 12 during the test process.

집적 회로(12)는 실리콘 칩과 같은 반도에 기판에 구현된 하나 이상의 소형화된 회로들을 포함할 수 있다. 일반적으로, 집적 회로(12)는 하나 이상의 인터페이스들을 통해 외부 디바이스들(미도시)과 통신하는 주문형 집적 회로(ASIC) 또는 범용 집적 회로일 수 있다. 예를들어, 집적 회로(12)는 개인용 컴퓨터, 랩톱 컴퓨터, 개인 휴대 정보 단말기(PDA), 울트라 모바일 개인용 컴퓨터(UMPC), 이동 전화 핸드셋, 네트워킹 디바이스, 또는 다른 전자 디바이스에서 사용되도록 구성될 수 있다. 집적 회로(12)는 시스템 메모리, 디스크 드라이브, 키보드, 모니터 또는 디스플레이, 마우스, 프린터, 스캐너, 외부 저장 디바이스, 및 다른 외부 입/출력(I/O) 디바이스들과 같은 외부 디바이스들과 하나 이상의 외부 인터페이스들을 통하여 통신하도록 구성될 수 있다. 따라서, 집적 회로(12)가 적어도 하나의 외부 디바이스, 즉, 반도체 기판에서 떨어져 위치하는 전기적 컴포넌트와 통신하도록 구성된 임의의 집적 회로임이 이해되어야 한다.Integrated circuit 12 may include one or more miniaturized circuits implemented on a substrate on a peninsula, such as a silicon chip. In general, integrated circuit 12 may be an application specific integrated circuit (ASIC) or a general purpose integrated circuit that communicates with external devices (not shown) via one or more interfaces. For example, integrated circuit 12 may be configured for use in a personal computer, laptop computer, personal digital assistant (PDA), ultra mobile personal computer (UMPC), mobile phone handset, networking device, or other electronic device. . Integrated circuit 12 includes one or more external devices and external devices, such as system memory, disk drives, keyboards, monitors or displays, mice, printers, scanners, external storage devices, and other external input / output (I / O) devices. It may be configured to communicate via interfaces. Thus, it should be understood that integrated circuit 12 is any integrated circuit configured to communicate with at least one external device, ie, an electrical component located away from the semiconductor substrate.

도1에서, 집적 회로(12)는 프로세서(14), 코어 로직 회로(16), 테스트 로직 회로(18), 및 핀 인터페이스(20)를 포함하고, 테스트 장비(22) 상에 탑재된다. 프로세서(14)는 로컬 메모리 내에 저장된 컴퓨터 프로그램 명령들을 실행하고 저장된 명령들에 의해 지시된 대로 데이터를 처리하는 프로그램가능 프로세서이다. 예를들어, 프로세서(14)는 마이크로프로세서, 마이크로콘트롤러, 디지털 신호 처리기(DSP), 주문형 집적 회로(ASIC), 필드 프로그램가능 게이트 어레이(FPGA), 이산 로직 회로, 또는 이러한 컴포넌트들의 조합일 수 있다.In FIG. 1, integrated circuit 12 includes a processor 14, a core logic circuit 16, a test logic circuit 18, and a pin interface 20 and is mounted on test equipment 22. The processor 14 is a programmable processor that executes computer program instructions stored in local memory and processes data as indicated by the stored instructions. For example, processor 14 may be a microprocessor, microcontroller, digital signal processor (DSP), application specific integrated circuit (ASIC), field programmable gate array (FPGA), discrete logic circuit, or a combination of these components. .

프로세서(14)는 일반적으로 송신 모드 또는 수신 모드에서 동작한다. 일 실시예에서, 프로세서(14)는 외부 디바이스(미도시)에 데이터를 기록하고 외부 디바이스로부터 데이터를 수신하기 위해서 송신 및 수신 모드로 동작한다. 다른 실시예들에서, 프로세서(14)는 외부 디바이스에 데이터를 기록하거나 외부 디바이스로부터 데이터를 판독하지 않고 송신 및 수신 모드로 동작할 수 있다. 송신 모드 및 수신 모드에서 생성된 트랜잭션들은 본 개시내용에서 기록 트랜잭션들 및 판독 트랜잭션들로 각각 불릴 것이다. 송신 모드에서 동작할 때, 프로세서(14)는 요청 트랜잭션들로도 불리는 기록 트랜잭션들을 생성하며, 상기 요청 트랜잭션들은 코어 로직 회로(16)로 전송된다. 예로서, 요청 트랜잭션은 외부 디바이스를 식별하고 외부 디바이스에 기록되어야 할 데이터를 포함한다.The processor 14 generally operates in either a transmit mode or a receive mode. In one embodiment, processor 14 operates in a transmit and receive mode to write data to and receive data from an external device (not shown). In other embodiments, the processor 14 may operate in transmit and receive modes without writing data to or reading data from the external device. Transactions created in transmit mode and receive mode will be referred to as write transactions and read transactions, respectively, in this disclosure. When operating in transmit mode, processor 14 generates write transactions, also called request transactions, which are sent to core logic circuit 16. As an example, the request transaction identifies the external device and includes data to be written to the external device.

프로세서(14)는 수신 모드에서 동작할 때 유사한 방식으로 동작한다. 즉, 프로세서(14)는 판독 트랜잭션들 생성하고 상기 판독 트랜잭션들을 코어 로직 회로(16)로 전송한다. 어느 경우든, 즉, 송신 또는 수신 모드로 동작할 때, 프로세서(14)는 코어 로직 회로(16)에 할당된 프로토콜에 따라 요청 트랜잭션을 생성한다. 보다 상세히 설명되는 바와 같이, 코어 로직 회로(16)는 상이한 프로토콜들에 따라 통신하는 상이한 블록들을 포함할 수 있다. 따라서, 프로세서(14)는 코어 로직 회로(16)의 대응하는 블록들에 대한 프로토콜들에 따라 트랜잭션들을 생성한다.Processor 14 operates in a similar manner when operating in receive mode. That is, processor 14 generates read transactions and sends the read transactions to core logic circuit 16. In either case, ie when operating in transmit or receive mode, processor 14 generates a request transaction in accordance with the protocol assigned to core logic circuit 16. As described in greater detail, the core logic circuit 16 may include different blocks that communicate in accordance with different protocols. Thus, processor 14 generates transactions in accordance with the protocols for the corresponding blocks of core logic circuit 16.

코어 로직 회로(16)는 프로세서(14)와 하나 이상의 외부 디바이스들(미도시) 간에 데이터 송신을 위한 외부 인터페이스를 제공한다. 특히, 코어 로직 회로(16)는 대응 외부 인터페이스와 관련된 프로토콜에 따라 트랜잭션들을 생성하고 프로세서(14) 및 외부 디바이스들 사이에서 트랜잭션들을 라우팅함에 의해 프로세서(14)와 외부 디바이스들 간의 통신을 관리한다. 예를 들어, 송신 모드에서 동작할 때, 코어 로직 회로(16)는 기록 트랜잭션들을 생성하고 프로세서(14)로부터 수신된 기록(요청) 트랜잭션에 따라 상기 기록 트랜잭션을 적절한 외부 디바이스로 라우팅한다. 일부 경우들에서, 코어 로직 회로(16)는 기록 트랜잭션을 확인하기 위하여 프로세서(14)로 응답 메시지를 전송한다. 코어 로직 회로(16)는 외부 디바이스에 송신된 대응하는 기록 트랜잭션에 응답하여 외부 디바이스로부터 메시지를 또한 수신할 수 있다. 코어 로직이 외부 디바이스로부터 메시지를 수신하는 경우에, 코어 로직 회로(16)는 상기 메시지를 처리하고 적절한 응답을 프로세서(14)로 송신한다.The core logic circuit 16 provides an external interface for data transmission between the processor 14 and one or more external devices (not shown). In particular, the core logic circuit 16 manages communication between the processor 14 and external devices by generating transactions and routing transactions between the processor 14 and external devices in accordance with a protocol associated with the corresponding external interface. For example, when operating in transmit mode, core logic circuit 16 generates write transactions and routes the write transaction to the appropriate external device in accordance with the write (request) transaction received from processor 14. In some cases, core logic circuit 16 sends a response message to processor 14 to confirm the write transaction. The core logic circuit 16 may also receive a message from the external device in response to the corresponding write transaction sent to the external device. When the core logic receives a message from an external device, the core logic circuit 16 processes the message and sends an appropriate response to the processor 14.

유사하게, 수신 모드에서 동작하는 경우에, 코어 로직 회로(16)는 프로세서(14)로부터 수신된 판독(요청) 트랜잭션들을 처리하고 대응하는 판독 트랜잭션들을 생성하며 코어 로직 회로(16)는 상기 대응하는 판독 트랜잭션들을 적절한 외부 인터페이스 디바이스로 전송한다. 코어 로직 회로(16)는 외부 디바이스와 관련된 프로토콜에 따라 판독 트랜잭션들을 생성한다. 판독 트랜잭션에 응답하여, 코어 로직 회로(16)는 외부 디바이스로부터 메시지를 수신한다. 코어 로직 회로(16)는 메시지를 처리하고 대응하는 메시지를 프로세서(14)로 전송한다. 코어 로직 회로(16)는 메시지를 처리하고 프로세서(14)로부터 수신된 판독 트랜잭션에 응답하여 프로세서(14)로 메시지를 또한 전송할 수 있다.Similarly, when operating in receive mode, core logic circuit 16 processes read (request) transactions received from processor 14 and generates corresponding read transactions and core logic circuit 16 responds to the corresponding. Send read transactions to the appropriate external interface device. The core logic circuit 16 generates read transactions in accordance with the protocol associated with the external device. In response to the read transaction, the core logic circuit 16 receives a message from an external device. The core logic circuit 16 processes the message and sends the corresponding message to the processor 14. The core logic circuit 16 may also process the message and send the message to the processor 14 in response to a read transaction received from the processor 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) 사이에서 트랙잭션들을 운반한다.The core logic circuit 16 and one or more external devices can communicate via a single bus or collection of buses. Each bus may have a different architecture that may connect the core logic circuit 16 to one or more external devices and operate according to specific protocol, timing and bandwidth capabilities. Exemplary bus structures that can be used to interconnect integrated circuit 12 to external devices include, but are not limited to, Industry Standard Architecture (ISA) buses, Enhanced ISA (EISA) buses, peripheral component interconnects. Peripheral Component Interconnect (PCI) bus, Advance Graphics Processor (AGP) bus, universal serial bus (USB), enhanced high-performance bus (AHB), enhanced extensible interface , AXI (AXI) bus, Advanced technology Advancement (ATA) bus, small computer system interface (SCSI) bus, Ethernet bus, Universal Serial Bus (USB), and Serial Serial Advanced Technology Attachment (SATA) bus. Included. Other bus structures may be used to connect the integrated circuit 12 to external devices. The core logic circuit 16 and the processor 14 may communicate over one or more separate buses. In one embodiment, a separate dedicated bus, called the frontside bus, carries the transactions between the processor 14 and the core logic circuit 16.

일 실시예로서, 집적 회로(12)는 개인용 컴퓨터 내에서 이용될 수 있다. 이 예에서, 코어 로직 회로(16)는 고주파수 메모리 버스를 통해 중앙 처리 장치(CPU)로서 동작하는 프로세서(14)와 시스템 메모리 사이의 통신을 관리할 수 있다. 코어 로직 회로(16)는 ISA 버스를 통해 프로세서(14)와 하나 이상의 키보드, 모니터, 및 마우스 사이의 통신을 또한 관리할 수 있다. 또한, 코어 로직 회로(16)는 PCI 버스를 통해 프로세서(14)와 하나 이상의 이더넷 확장 카드, SCSI 카드, 또는 다른 PCI 카드들 사이의 통신을 관리할 수 있다. 또한, 코어 로직 회로(16)는 AGP 버스를 통해 프로세서(14)와 전용 비디오 프로세서 사이의 통신과, ATA 버스를 통해 프로세서(14)와 CD-ROM 또는 다른 하드 디스크 사이의 통신과, USB를 통해 프로세서(14)와 하나 이상의 프린터, 스캐너, 외부 대량 저장 매체, 또는 다른 USB 호환 주변 디바이스 사이의 통신을 관리할 수 있다.In one embodiment, integrated circuit 12 may be used within a personal computer. In this example, core logic circuit 16 may manage communication between processor 14 and system memory operating as a central processing unit (CPU) via a high frequency memory bus. The core logic circuit 16 may also manage communication between the processor 14 and one or more keyboards, monitors, and mice via the ISA bus. In addition, the core logic circuit 16 may manage communication between the processor 14 and one or more Ethernet expansion cards, SCSI cards, or other PCI cards via the PCI bus. The core logic circuit 16 also communicates between the processor 14 and a dedicated video processor via an AGP bus, between the processor 14 and a CD-ROM or other hard disk via the ATA bus, and via USB. It may manage communications between the processor 14 and one or more printers, scanners, external mass storage media, or other USB compatible peripheral devices.

개인용 컴퓨터 내의 동작에서, 집적 회로(12)는 메모리 모듈, 예를들어 하드 디스크 드라이브, 플래시 디스크 드라이브, 또는 소거가능 메모리 카드 내에 저장된 파일을 리트리브(retrieve)하고 모니터 상에 상기 파일을 디스플레이한다. 이 경우, 집적 회로(12)는 디스크 모듈과 통신하기 위해서 제 1 외부 인터페이스를, 시스템 메모리와 통신하기 위해서 제 2 외부 인터페이스를, 디스플레이 모니터와 통신하기 위해서 제 3 외부 인터페이스를 이용할 수 있다. 외부 인터페이스들 각각은 상이한 프로토콜에 따라 통신할 수 있다. 예를들어, 집적 회로(12)는 파일을 요청하기 위하여 디스크 모듈과 연관된 프로토콜을 초기에 따른다. 디스크 모듈이 상기 요청을 수신하는 경우, 디스크 모듈은 상기 파일을 집적회로(21)로 제공한다. 다음, 집적 회로(12)는 데이터를 저장하기 위하여 시스템 메모리 프로토콜에 부착된 시스템 메모리에 상기 파일을 기록한다. 집적 회로(12)가 모니터 상에 상기 파일을 디스플레이할 준비가 된 때, 집적 회로(12)는 시스템 메모리로부터 데이터를 판독하고 이를 디스플레이 모니터를 위한 적절한 프로토콜에 따라 디스플레이 모니터에 기록한다. 집적 회로(12)는 이들 상이한 모듈들로부터 데이터를 판독하고 이들 상이한 모듈들로 데이터를 기록하기 위해 프로토콜을 따라야 한다. 상기 프로토콜을 따르지 않는 경우, 모듈들은 정확한(correct) 데이터를 저장하거나 제공하지 않을 것이다.In operation within a personal computer, integrated circuit 12 retrieves a file stored in a memory module, such as a hard disk drive, a flash disk drive, or an erasable memory card, and displays the file on a monitor. In this case, the integrated circuit 12 may use a first external interface for communicating with the disk module, a second external interface for communicating with the system memory, and a third external interface for communicating with the display monitor. Each of the external interfaces can communicate according to a different protocol. For example, integrated circuit 12 initially follows the protocol associated with the disk module to request a file. When the disk module receives the request, the disk module provides the file to the integrated circuit 21. The integrated circuit 12 then writes the file to system memory attached to the system memory protocol to store data. When the integrated circuit 12 is ready to display the file on the monitor, the integrated circuit 12 reads data from the system memory and writes it to the display monitor according to the appropriate protocol for the display monitor. Integrated circuit 12 must follow the protocol to read data from and write data to these different modules. Modules that do not follow the protocol will not store or provide correct data.

다른 예로서, 집적 회로(12)는 이동 무선전화 핸드셋과 같은 무선 통신 장치 내에 사용되도록 구성될 수 있다. 이 예에서, 집적 회로(12)는, 코어 로직 회로(16) 메모리 버스를 통해 프로세서(14)와 시스템 메모리 간의 통신을 관리하고, ISA 버스를 통해 프로세서(14)와 키패드 간의 통신을 관리하고, USB 버스를 통해 프로세서(14)와 소거가능 메모리 카드와 같은 소거가능 저장 디바이스 간의 통신을 관리하고, PCI 버스를 통해 프로세서(14)와 디스플레이 스크린 간의 통신을 관리하고, 상이한 PCI 버스를 통해 프로세서(14)와 카메라 모듈 간의 통신을 관리하는 등을 행하는 이동국 모뎀(MSM)일 수 있다. 이 예에서, 프로세서(14)는 범용 이동 통신 시스템(UMTS), 이동 통신 세계화 시스템(GSM), 코드 분할 다중 액세스(CDMA) 프로토콜, 및/또는 일반 패킷 무선 서비스(GPRS) 프로세서로서 동작할 수 있다.As another example, integrated circuit 12 may be configured for use in a wireless communication device, such as a mobile radiotelephone handset. In this example, the integrated circuit 12 manages communication between the processor 14 and the system memory via the core logic circuit 16 memory bus, manages communication between the processor 14 and the keypad via the ISA bus, Manages communication between the processor 14 and erasable storage devices such as erasable memory cards via a USB bus, manages communication between the processor 14 and the display screen via a PCI bus, and manages the processor 14 through a different PCI bus. ) And a mobile station modem (MSM) for managing communication between the camera module and the like. In this example, processor 14 may operate as a Universal Mobile Communication System (UMTS), Mobile Communication Globalization System (GSM), Code Division Multiple Access (CDMA) protocol, and / or General Packet Radio Service (GPRS) processor. .

집적 회로(12)가 MSM 칩으로서 동작하도록 구성되는 경우에, 집적 회로(12)는 사진 촬영을 위해 카메라 모듈, 메모리 모듈, 시스템 메모리, 및 디스플레이 스크린과 인터페이싱 할 수 있다. 집적 회로(12)는 상이한 프로토콜에 따라 이들 외부 디바이스들 각각과 인터페이싱 할 수 있다. 예를들어, 집적 회로(12)는 사진을 캡처(capture)하기 위하여 카메라 모듈과 통신을 개시하기 위하여 카메라 모듈과 연관된 프로토콜을 따른다. 카메라 모듈이 사진을 캡처하면, 집적 회로(12)는 캡처된 이미지 데이터를 판독하고 상기 이미지 데이터를 시스템 메모리에 기록하기 위한 요청을 시스템 메모리에 전송한다. 프로세서(14)는 상기 이미지 데이터가 시스템 메모리에 있는 동안에 상기 이미지 데이터를 처리한다. 처리가 완료되는 경우, 집적 회로(12)는 시스템 메모리 프로토콜에 따라 시스템 메모리로부터 데이터를 판독하고 이미지를 디스플레이 스크린으로 전달한다. 사용자가 이미지를 저장할 것을 요청하면, 집적 회로(12)는 상기 이미지를 디스크 드라이브로 전달한다. 다시, 집적 회로(12)는 상이한 프로토콜에 따라 카메라 인터페이스, 시스템 메모리 인터페이스, 디스플레이 인터페이스, 플래시 카드/디스크 드라이브 인터페이스와 같은 MSM 칩의 외부 인터페이스들 각각과 통신한다. 이러한 이유로, 집적 회로(12)는 각 외부 인터페이스를 통한 통신을 테스트함에 의해 제조 후의 기능성을 검증한다. In the case where the integrated circuit 12 is configured to operate as an MSM chip, the integrated circuit 12 may interface with a camera module, a memory module, a system memory, and a display screen for taking a picture. Integrated circuit 12 may interface with each of these external devices in accordance with a different protocol. For example, integrated circuit 12 follows a protocol associated with the camera module to initiate communication with the camera module to capture a picture. When the camera module captures a picture, the integrated circuit 12 sends a request to the system memory to read the captured image data and write the image data to the system memory. Processor 14 processes the image data while the image data is in system memory. When processing is complete, the integrated circuit 12 reads data from the system memory according to the system memory protocol and transfers the image to the display screen. When the user requests to save the image, the integrated circuit 12 transfers the image to the disk drive. Again, integrated circuit 12 communicates with each of the external interfaces of the MSM chip, such as a camera interface, system memory interface, display interface, flash card / disk drive interface, according to a different protocol. For this reason, the integrated circuit 12 verifies post-manufacture functionality by testing communication through each external interface.

코어 로직 회로(16)는 하나 이상의 인터페이스를 제공하며, 즉 프로세서(14)와 적어도 하나의 외부 디바이스 간의 통신을 관리한다. 특히, 코어 로직 회로(16)와 프로세서(14)는 단일 프로토콜에 따라 서로 통신할 수 있다. 그러나, 코어 로직 회로(16)는 프로세서(14)와 통신하는데 사용된 프로토콜과 다른 각각의 프로토콜들에 따라 외부 인터페이스들 각각과 통신할 수 있다. 달리 말하면, 코어 로직 회로(16)는 예를 들어 시스템 메모리에 데이터를 기록하는 트랜잭션 요청을 수신하기 위해 제 1 프로토콜에 따라 프로세서(14)와 통신하고, 시스템 메모리에 데이터를 기록하기 위한 트랜잭션을 시스템 메모리에 전송하기 위하여 제 2 프로토콜에 따라 프로세서(14)와 통신할 수 있다. 따라서, 코어 로직 회로(16)는 적절한 프로토콜에 따라 트랜잭션들을 생성하는 책임을 갖는다.The core logic circuit 16 provides one or more interfaces, ie manages communication between the processor 14 and at least one external device. In particular, the core logic circuit 16 and the processor 14 may communicate with each other according to a single protocol. However, the core logic circuit 16 may communicate with each of the external interfaces according to respective protocols different from the protocol used to communicate with the processor 14. In other words, the core logic circuit 16 communicates with the processor 14 according to the first protocol, for example to receive a transaction request for writing data to the system memory, and executes a transaction for writing data to the system memory. It may be in communication with the processor 14 in accordance with the second protocol for transmission to the memory. Thus, the core logic circuit 16 is responsible for generating transactions in accordance with the appropriate protocol.

본 개시내용의 다른 실시예들에서, 외부 인터페이스들 중 적어도 하나는 고주파수 외부 인터페이스이다. 고주파수 외부 인터페이스는 약 200㎒ 이상의 주파수에서, 약 200㎒에서 약 400㎒ 범위 내에서, 또는 약 400㎒ 이상의 주파수에서 동작할 수 있다. PCI, AHB, 및 AXI 버스들은 예시적인 고주파수 외부 인터페이스들이다. 위에서 설명된 개인용 컴퓨터와 무선 통신 디바이스의 예의 경우에, 메모리 버스, PCI 버스, AGP 버스, ATA 버스, 및 USB 버스들이 고주파수 인터페이스일 수 있다. 다른 고주파수 외부 인터페이스들에는 EISA 버스들, AHB 버스들, AXI 버스들, AXA 버스들, 이더넷 버스들, SCSI 버스들, 및 SATA 버스들이 포함된다.In other embodiments of the present disclosure, at least one of the external interfaces is a high frequency external interface. The high frequency external interface may operate at frequencies above about 200 MHz, within the range of about 200 MHz to about 400 MHz, or at frequencies above about 400 MHz. PCI, AHB, and AXI buses are exemplary high frequency external interfaces. In the case of the personal computer and wireless communication device described above, the memory bus, PCI bus, AGP bus, ATA bus, and USB buses may be high frequency interfaces. Other high frequency external interfaces include EISA buses, AHB buses, AXI buses, AXA buses, Ethernet buses, SCSI buses, and SATA buses.

테스트 로직 회로(18)는 집적 회로(12)의 반도체 기판 상에 내장되며 집적 회로(12)의 고주파수 외부 인터페이스들의 기능성을 검증하도록 구성된다. 고주파수 외부 인터페이스들의 기능성을 검증하는 것은 고주파수 인터페이스들을 통해 송신된 트랜잭션들을 검증하는 것을 의미한다. 일 예시적 양상에서, 테스트 로직 회로(18)는 트랜잭션들과 관련된 데이터에 기초하여 트랜잭션들을 검증할 수 있다. 다른 양상에서, 테스트 로직 회로(18)는 트랜잭션들과 연관된 프로토콜과 트랜잭션들이 일치하는지 여부에 기초하여 트랜잭션들을 검증할 수 있다. 트랜잭션들이 프로토콜과 일치하는지 여부에 기초하여 트랜잭션들을 검증하는 경우, 테스트 로직 회로(18)는 트랜잭션들과 연관된 데이터에 기초하여 트랜잭션들을 또한 검증할 수 있다.The test logic circuit 18 is embedded on the semiconductor substrate of the integrated circuit 12 and is configured to verify the functionality of the high frequency external interfaces of the integrated circuit 12. Verifying the functionality of the high frequency external interfaces means verifying transactions sent over the high frequency interfaces. In one example aspect, test logic circuitry 18 may verify the transactions based on data associated with the transactions. In another aspect, the test logic circuit 18 may verify the transactions based on whether the transactions match the protocol associated with the transactions. When verifying transactions based on whether the transactions match the protocol, test logic circuitry 18 may also verify the transactions based on data associated with the transactions.

트랜잭션들을 검증하기 위하여, 테스트 로직 회로(18)는 먼저 트랜잭션이 전송되는 통신 채널 또는 버스를 스누핑(snoop)한다. 이하에서 보다 상세히 설명되는 바와 같이, 테스트 로직 회로(18)는 프로세서(14)와 코어 로직 회로(16) 간의 통신 채널 또는 버스 또는 코어 로직 회로(16)와 핀 인터페이스(20) 간의 통신 채널 또는 버스를 스누핑할 수 있다. 어느 경우든, 테스트 로직 회로(18)가 트랜잭션을 획득한 경우, 테스트 로직 회로(18)는 트랜잭션이 유효한지 여부를 결정하기 위하여 트랜잭션을 조사(examine)한다. 트랜잭션은 예를 들어 트랜잭션과 관련된 데이터를 기준 데이터에 비교함에 의해 또는 트랜잭션이 관련 프로토콜과 일치하는지 여부를 결정함에 의해 조사될 수 있다. 일 실시예에서, 트랜잭션이 관련 프로토콜과 일치하는지 여부를 결정하는 것은 프로토콜에 의해 정의된 제어 신호들을 체크하는 것을 포함할 수 있다. 다른 실시예들에서, 트랜잭션이 관련 프로토콜과 일치하는 지를 결정하는 것은 제어 신호들을 체크하는 것을 필요로 하지 않는다. 어느 경우든, 테스트 로직 회로(18)는 트랜잭션이 유효한지 여부, 즉, 유효성 테스트를 통과했는지 또는 실패했는지 여부를 표시하는 상태 신호를 출력한다. 이 신호는 예를들어 핀 인터페이스(20)의 지정된 핀을 통해 출력된다. 이 때, 사용자는 집적 회로(12)가 기능하는지 여부를 결정하기 위하여 테스트 장비(22)와 인터페이스하고 있는 호스트 컴퓨터의 디스플레이 모니터 상의 상태 신호를 볼(view) 수 있게 된다.To verify the transactions, the test logic circuit 18 first snoops the communication channel or bus over which the transaction is sent. As described in more detail below, the test logic circuit 18 is a communication channel or bus between the processor 14 and the core logic circuit 16 or a communication channel or bus between the core logic circuit 16 and the pin interface 20. You can snoop. In either case, when test logic circuit 18 obtains a transaction, test logic circuit 18 examines the transaction to determine whether the transaction is valid. A transaction can be used, for example, by comparing the data associated with the transaction to reference data or by determining whether the transaction conforms to the associated protocol. In one embodiment, determining whether a transaction matches a related protocol may include checking control signals defined by the protocol. In other embodiments, determining whether the transaction matches the related protocol does not require checking the control signals. In either case, the test logic circuit 18 outputs a status signal indicating whether the transaction is valid, that is, whether the validity test passed or failed. This signal is for example output via the designated pin of the pin interface 20. At this point, the user is able to view status signals on the display monitor of the host computer that is interfacing with the test equipment 22 to determine whether the integrated circuit 12 is functioning.

집적 회로(12)의 고주파수 외부 인터페이스들의 기능성을 검증하는 것은, 본 개시내용에 설명된 바와 같이, 테스트 장비(22)가 집적 회로(12)에 고주파수 신호들을 제공하는 것을 요구하지 않는다. 오히려, 테스트 장비(22)는 프로세서(14)의 로컬 메모리에 테스트 프로그램을 로딩하는데 이용된다. 프로세서(14)는 집적 회로(12)가 송신 및 수신 모드들의 동작을 시뮬레이션하도록 야기하는 테스트 프로그램을 실행한다. 달리 말하면, 테스트 장비는 프로세서(14)에 의해 실행가능한 경우, 프로세서(14) 및 코어 로직 회로(16)가 하나 이상의 외부 인터페이스들을 통해 전송된 기록 및 판독 트랜잭션들을 생성하도록 야기하는 명령들을 포함한다. 테스트 로직 회로(18)는 트랜잭션들을 획득하기 위하여 집적 회로(12)의 통신 채널을 스누핑하고, 트랜잭션들의 유효성을 결정하기 위하여 트랜잭션들을 조사한다. 이러한 방식으로, 테스트 로직 회로(18)는 프로세서(14) 및 코어 로직 회로(16)가 외부 인터페이스들의 각각을 통해 통신하는 경우 대응하는 프로토콜을 따르는지를 검증한다. 그 결과, 다양한 동작 조건들에 대하여 테스트가 온칩 상에서 완료되고, 그렇지 않으면 테스트 조건들의 각 세트에 대하여 테스트를 셋업 및/또는 개시하는데 요구되었을 수동 작업이 테스트에 요구되지 않게 된다. 이것은 외부 인터페이스들의 기능성과 타이밍을 검증하는데 요구되는 시간과 비용을 감소시킨다. 또한, 테스트 장비(22)가 전력, 접지, 및 클록 신호들, 예를 들어, 시스템 클록, 시스템 리셋, 등과 같은 비테스트 신호들을 집적 회로(12)에 제공하고 집적 회로(12)에 테스트 프로그램을 로딩하는데 이용되는 저가 장비가 될 수 있다. 이러한 방식으로, 테스트 장비(22)는 고주파수 테스트 신호들을 제공하기 위하여 수정되거나 업데이트될 필요가 없어진다.Verifying the functionality of the high frequency external interfaces of the integrated circuit 12 does not require the test equipment 22 to provide high frequency signals to the integrated circuit 12, as described in the present disclosure. Rather, the test rig 22 is used to load the test program into the local memory of the processor 14. The processor 14 executes a test program that causes the integrated circuit 12 to simulate the operation of the transmit and receive modes. In other words, the test rig includes instructions that, when executable by the processor 14, cause the processor 14 and the core logic circuit 16 to generate write and read transactions sent over one or more external interfaces. The test logic circuit 18 snoops the communication channel of the integrated circuit 12 to obtain the transactions, and examines the transactions to determine the validity of the transactions. In this way, the test logic circuit 18 verifies that the processor 14 and the core logic circuit 16 follow the corresponding protocol when communicating over each of the external interfaces. As a result, the test is completed on-chip for the various operating conditions, otherwise the manual work that would otherwise be required to set up and / or initiate the test for each set of test conditions is not required. This reduces the time and cost required to verify the functionality and timing of external interfaces. In addition, test equipment 22 provides power, ground, and clock signals, such as non-test signals, such as system clock, system reset, and the like to integrated circuit 12 and provides a test program to integrated circuit 12. It can be a low cost device used to load. In this way, the test rig 22 does not need to be modified or updated to provide high frequency test signals.

본 개시내용에서 집적 회로(12)가 고주파수 인터페이스들의 기능성을 검증하는 것으로 설명되고 있으나, 테스트 로직 회로(18)는 임의의 주파수에서 동작하는 외부 인터페이스들의 기능성을 검증하는데 이용될 수 있다. 이것은 기존 테스트 장비를 업데이트하는 높은 비용과 고주파수 외부 인터페이스들의 기능성을 검증하기 위해 새로운 테스트 장비를 구입하는 것에 부가해서, 각 외부 인터페이스들이 모든 가능한 동작 조건들, 예를들어 공급 전압 범위, 온도 범위, 및 처리 코너(corner)들에 대해 종종 테스트되기 때문에 임의의 주파수에서 동작하는 외부 인터페이스들의 기능성을 검증하는 것이 복잡할 수 있고 시간 소모적 태스크(task)일 수 있기 때문이다. 또한, 집적 회로들 간의 차이들로 인해 테스트 프로그램에 수동 변경들이 행해지는 것이 요구된다. Although the integrated circuit 12 is described in this disclosure as verifying the functionality of the high frequency interfaces, the test logic circuit 18 can be used to verify the functionality of the external interfaces operating at any frequency. This, in addition to purchasing new test equipment to verify the high cost of updating existing test equipment and the functionality of the high frequency external interfaces, ensures that each external interface has all possible operating conditions, eg supply voltage range, temperature range, and Because it is often tested for processing corners, verifying the functionality of external interfaces operating at any frequency can be complex and time-consuming task. In addition, manual changes are required to be made to the test program due to differences between integrated circuits.

그러나, 테스트 로직 회로(18)가 반도체 기판 상에 추가적인 물리적 영역(real estate)을 차지하기 때문에, 테스트 장비를 통해 테스트 신호들을 제공함에 의해, 낮은 주파수, 예를들어 200 MHz 미만에서 동작하는 외부 인터페이스들을 검증하는 것이 바람직할 수 있음이 인식된다. 이것은 테스트 로직에 할당된 기판 공간의 비용과 본 개시내용에서 설명된 자체 테스트 특징을 이용하지 않는 테스트 비용 간의 트레이드-오프(trade-off)에 의존한다. 달리 말하면, 테스트 장비(18)가 차지하는 반도체 기판 상의 물리적 영역의 비용과 본 개시내용의 시점에서 당업계에 주지된 기술들에 따라 외부 인터페이스들의 기능성을 검증하기 위해 신호들을 검증하도록 신호들을 공급하기 위해 테스트 장비를 이용하는 것과 관련된 비용 간에 트레이드-오프가 존재한다. 따라서, 본 개시내용에서 설명된 외부 인터페이스들의 기능성을 검증하기 위한 자체 테스트 특징들은 임의의 주파수에서 동작하는 외부 인터페이스들의 기능성을 검증하기 위해 이용될 수 있고, 고주파수, 예를들어, 200 MHz 이상에서 동작하는 외부 인터페이스들에 대해 특히 유용할 수 있다는 점이 이해되어야 한다. However, since the test logic circuit 18 occupies an additional real estate on the semiconductor substrate, by providing test signals through the test equipment, an external interface operating at low frequencies, for example below 200 MHz. It is recognized that it may be desirable to verify these. This depends on the trade-off between the cost of the substrate space allocated to the test logic and the test cost without using the self test feature described in this disclosure. In other words, to supply the signals to verify the signals to verify the functionality of the external interfaces according to the cost of the physical area on the semiconductor substrate occupied by the test equipment 18 and techniques well known in the art at the time of the present disclosure. There is a trade-off between the costs associated with using test equipment. Thus, self test features for verifying the functionality of the external interfaces described in this disclosure can be used to verify the functionality of the external interfaces operating at any frequency, operating at high frequencies, for example 200 MHz or higher. It should be understood that this may be particularly useful for external interfaces.

도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) 버스로 불리는 단일 버스일 수 있다.2 is a block diagram illustrating the integrated circuit 12 in more detail. Specifically, integrated circuit 12 is shown in FIG. 2 as including external interface controllers 30A and 30B and test logic modules 32A and 32B. The external interface controllers 30A and 30B correspond to the core logic circuit 16 of FIG. That is, external interface controllers 30A and 30B represent individual blocks or modules of core logic circuit 16 associated with different external interfaces. For example, external interface controller 30A may manage communication over one type of high frequency external interface, such as a PCI bus, and external interface controller 30B may communicate over another type of high frequency external interface, such as an AGP bus. Can manage. External interface controllers 30A and 30B can manage communication with respective external devices according to different protocols. In FIG. 2, external interface controller 30A communicates with processor 14 via bus 31 and with a corresponding external device (not shown) via bus 33. The external interface controller 30B communicates with the processor 14 via the bus 35 and with the corresponding external device (not shown) via the bus 37. However, it should be understood that processor 14 and external interface controllers 30A and 30B may share some of one or more buses. That is, although communication channels are shown in FIG. 2 as being referred to as buses 31, 33, 35, and 37, these communication channels may represent single or multiple buses. As an example, the buses 31 and 35 may be a single bus, called a front-side bus, that provides a channel between the processor 14 and the core logic that may include multiple external interface controllers. have.

유사한 방식으로, 테스트 로직 모듈들(32A 및 32B)은 상이한 외부 인터페이스들과 연관된 테스트 로직 회로(18)의 개별 블록들 또는 모듈들을 나타낸다. 테스트 로직 모듈들(32A 및 32B)의 각각은 대응하는 고주파수 외부 인터페이스의 기능성을 검증한다. 도2에서, 테스트 로직 모듈(32A)은 외부 인터페이스 제어기(30A)와 연관되며 테스트 로직 모듈(32B)은 외부 인터페이스 제어기(30B)와 연관된다.In a similar manner, test logic modules 32A and 32B represent individual blocks or modules of test logic circuit 18 associated with different external interfaces. Each of the test logic modules 32A and 32B verifies the functionality of the corresponding high frequency external interface. In Figure 2, test logic module 32A is associated with external interface controller 30A and test logic module 32B is associated with external interface controller 30B.

테스트 로직 모듈(30A)은 버스(31), 버스(35), 또는 이들 모두를 스누핑할 수 있다. 예를들어, 테스트 로직 모듈(32A)은 송신 모드 또는 수신 모드에서 동작시 프로세서(14)에 의해 생성된 트랜잭션들을 검증하기 위해 버스(31)를 스누핑할 수 있다. 다른 실시예에서, 테스트 로직 모듈(32A)은 외부 인터페이스 제어기(30A)에 의해 생성되고 송신 모드 또는 수신 모드에서 프로세서(14)에 전송된 트랜잭션들을 검증하기 위해 버스(31)를 스누핑할 수 있다. 외부 인터페이스 제어기(30A)가 수신 모드에서 프로세서(14)에 전송되는 경우에, 테스트 장비(22)(도2에 미도시)는 고주파수 신호들을 제공하거나 체크하지 않는다. 오히려, 테스트 장비 모듈(32A)은 프로세서(14)에 의해 제공된 시드(seed) 값에 기초하여 외부 인터페이스 제어기(30A)에 대한 프로토콜에 의해 요구되는 바와 같이 데이터 및 다른 신호들을 전송한다.The test logic module 30A may snoop on the bus 31, the bus 35, or both. For example, the test logic module 32A may snoop the bus 31 to verify transactions generated by the processor 14 when operating in a transmit or receive mode. In another embodiment, the test logic module 32A may snoop the bus 31 to verify transactions generated by the external interface controller 30A and sent to the processor 14 in transmit or receive mode. When the external interface controller 30A is sent to the processor 14 in the receive mode, the test equipment 22 (not shown in FIG. 2) does not provide or check high frequency signals. Rather, the test rig module 32A transmits data and other signals as required by the protocol for the external interface controller 30A based on the seed value provided by the processor 14.

외부 인터페이스 제어기(30A)는 테스트 로직 모듈(32A)로부터 수신된 데이터 및 다른 신호들에 기초하여 대응하는 기록 트랜잭션들을 생성하고 상기 기록 트랜잭션들을 프로세서(14)로 전송한다. 이러한 방식으로, 테스트 로직 모듈(32A)이 외부 디바이스의 동작을 에뮬레이트(emulate)한다는 점에서, 즉 외부 인터페이스 제어기(30A)에 적절한 데이터 및 신호들을 제공한다는 점에서 테스트 로직 모듈(32A)은 통상의 테스트 장비와 유사한 방식으로 동작한다. 이것은 도3을 참조하여 보다 상세히 설명된다. 추가적인 실시예에서, 테스트 로직 모듈(32A)는 외부 인터페이스 제어기(30A)에 의해 생성되고 송신 모드 또는 수신 모드에서 핀 인터페이스(20)에 전송된 트랜잭션들을 검증하기 위해 버스(33)를 스누핑할 수 있다.The external interface controller 30A generates corresponding write transactions and sends the write transactions to the processor 14 based on the data and other signals received from the test logic module 32A. In this manner, the test logic module 32A is conventional in that the test logic module 32A emulates the operation of the external device, i.e., provides the appropriate data and signals to the external interface controller 30A. It works in a similar way to test equipment. This is explained in more detail with reference to FIG. In a further embodiment, the test logic module 32A may snoop the bus 33 to verify transactions generated by the external interface controller 30A and sent to the pin interface 20 in transmit or receive mode. .

테스트 로직 모듈(32B)은 외부 인터페이스 제어기(30B)와 연관된 외부 인터페이스를 통해 송신된 트랜잭션들을 검증하기 위해서 유사한 방식으로 동작할 수 있다. 즉, 테스트 로직 모듈(32B)은 송신 또는 수신 모드에서 대응하는 외부 인터페이스를 통해 송신된 트랜잭션들을 검증하기 위하여 버스(35), 버스(37), 또는 이들 모두를 스누핑할 수 있다.Test logic module 32B may operate in a similar manner to verify transactions sent over an external interface associated with external interface controller 30B. That is, the test logic module 32B may snoop the bus 35, the bus 37, or both to verify the transactions sent over the corresponding external interface in the transmit or receive mode.

이들 실시예들 각각에서, 테스트 로직 모듈들(32A 및 32B)은 트랜잭션들과 연관된 데이터에 기초하여 또는 트랜잭션들이 관련 프로토콜과 일치하는지 여부에 기초하여 트랜잭션들을 검증할 수 있다. 트랜잭션들이 관련 프로토콜과 일치하는지 여부에 기초하여 트랜잭션들을 검증하는 것은 트랜잭션들이 프로토콜에 의해 정의된 규칙들에 따라 생성되었는지를 검증하는 것을 포함할 수 있다. 프로토콜에 의해 정의된 규칙들은 데이터 표현, 시그널링(signaling), 인증, 에러 검출, 및 에러 핸들링을 정의하는 규칙들을 포함할 수 있다. 테스트 로직 모듈들(32A 및 32B)은 트랜잭션들이 관련 프로토콜과 일치하는지 여부에 기초하여 트랜잭션들을 검증하는 경우에 관련 데이터에 기초하여 트랜잭션들을 또한 검증할 수 있다. 집적 회로(12)에 의해 이용된 검증 프로세스가 도3에 도시된 블록도와 도4 및 도5에 도시된 흐름도들을 참조하여 상세히 설명된다.In each of these embodiments, the test logic modules 32A and 32B may verify the transactions based on data associated with the transactions or based on whether the transactions match the associated protocol. Validating the transactions based on whether the transactions match the relevant protocol may include verifying that the transactions were created according to the rules defined by the protocol. Rules defined by the protocol may include rules that define data representation, signaling, authentication, error detection, and error handling. The test logic modules 32A and 32B may also verify the transactions based on the relevant data when verifying the transactions based on whether the transactions match the relevant protocol. The verification process used by the integrated circuit 12 is described in detail with reference to the block diagram shown in FIG. 3 and the flowcharts shown in FIGS. 4 and 5.

도2에 집적 회로(12)가 테스트 모듈들(32A 및 32B)과 외부 인터페이스 제어기들(30A 및 30B)를 포함하는 2개의 고주파수 외부 인터페이스들을 포함하는 것으로 도시되어 있으나, 집적 회로(12)는 하나 이상의 외부 인터페이스들을 포함할 수 있다. 따라서, 도2는 단지 예시적인 것으로 이해되어야 하며 어떤 방식으로든 본 개시내용을 제한하는 것으로 의도되어서는 안 된다. 오히려, 도2의 목적은 집적 회로의 외부 인터페이스들과 외부 인터페이스들의 기능성을 검증하기 위하여 집적 회로 상에 내장되는 테스트 로직 회로 간의 관계를 예시하기 위한 것이다.Although the integrated circuit 12 is shown in FIG. 2 as including two high frequency external interfaces, including test modules 32A and 32B and external interface controllers 30A and 30B, integrated circuit 12 is one. It may include the above external interfaces. Accordingly, FIG. 2 is to be understood as illustrative only and should not be intended to limit the present disclosure in any way. Rather, the purpose of FIG. 2 is to illustrate the relationship between the external interfaces of the integrated circuit and the test logic circuit embedded on the integrated circuit to verify the functionality of the external interfaces.

도3은 집적 회로(12)의 컴포넌트들을 보다 상세히 나타내는 블록도이다. 특히, 도3은 프로세서(14), 외부 인터페이스 제어기(30A) 및 테스트 로직 모듈(32A)을 보다 상세히 나타낸다. 프로세서(14) 및 외부 인터페이스 제어기(30A)는 예를들어 외부 디바이스(미도시)에 데이터를 기록하고 외부 디바이스(미도시)로부터 데이터를 판독하도록 판독 및 기록 동작을 수행하기 위한 외부 인터페이스를 제공하기 위하여 협력적으로 동작한다. 특히, 프로세서(14), 외부 인터페이스 제어기(30A), 및 대응하는 외부 인터페이스 디바이스는 각각의 프로토콜에 따라 서로 통신한다. 즉, 프로세서(14) 및 외부 인터페이스 제어기(30A)는 특정 프로토콜에 따라 서로 통신하고 외부 인터페이스 제어기(30A) 및 외부 디바이스는 상이한 프로토콜에 따라 서로 통신한다. 테스트 로직 모듈(32A)은 고주파수 신호들을 공급 및 체크하기 위하여 테스트 장비(22)와 같은 외부 테스트 장비를 필요로 함 없이 외부 인터페이스의 기능성을 검증하기 위한 특징들을 제공한다. 일 양상에서, 예를들어, 테스트 로직 모듈(32A)은 트랜잭션들과 관련된 데이터에 기초하여 프로세서(14) 및 외부 인터페이스 제어기(30A) 중 하나 또는 모두에 의해 생성된 트랜잭션들을 검증한다. 다른 예시적인 양상에서, 테스트 로직 모듈(32A)은 트랜잭션들이 관련 프로토콜과 일치하는지 여부에 기초하여 프로세서(14) 및 외부 인터페이스 제어기(30A) 중 하나 또는 모두에 의해 생성된 트랜잭션들을 검증한다. 3 is a block diagram illustrating the components of the integrated circuit 12 in more detail. In particular, FIG. 3 shows processor 14, external interface controller 30A, and test logic module 32A in more detail. Processor 14 and external interface controller 30A provide external interfaces for performing read and write operations, for example, to write data to and read data from external devices (not shown). Works cooperatively. In particular, processor 14, external interface controller 30A, and corresponding external interface device communicate with each other according to respective protocols. That is, the processor 14 and the external interface controller 30A communicate with each other according to a specific protocol, and the external interface controller 30A and the external device communicate with each other according to different protocols. The test logic module 32A provides features for verifying the functionality of the external interface without requiring external test equipment such as test equipment 22 to supply and check high frequency signals. In one aspect, for example, test logic module 32A verifies transactions generated by one or both of processor 14 and external interface controller 30A based on data associated with the transactions. In another example aspect, the test logic module 32A verifies the transactions generated by one or both of the processor 14 and the external interface controller 30A based on whether the transactions match the associated protocol.

프로세서(14)는 메모리(40), 프로세서(46), 입/출력(I/O) 모듈(48), 및 트랜잭션 모듈(49)을 포함한다. 메모리(40)는 테스트 프로그램(42)과 상태(44)를 저장한다. 테스트 프로그램(42)은 테스트 장비(22)(미도시)를 통해 호스트 컴퓨터에 의해 메모리(40)로 로딩되며, 프로세서(46)에 의해 실행될 때 송신 모드 또는 수신 모드에서 동작을 개시시키는 명령들을 포함한다. 송신 모드 또는 수신 모드에서 동작할 때, 프로세서(14)는 일부 실시예들에서, 외부 디바이스들에 데이터를 기록하기 위한 또는 대응하는 외부 디바이스로부터 데이터를 판독하기 위한 동작들을 수행할 수 있다. 다른 실시예들에서, 프로세서(14)는 외부 디바이스로 데이터를 기록하거나 외부 디바이스로부터 데이터를 판독할 필요가 없는 송신 또는 수신 모드에서 동작할 때 동작들을 수행할 수 있다. 일반적으로, 프로세서(46)는 테스트 프로그램(42)의 명령들에 따라 데이터를 처리하고 트랜잭션 모듈(49) 및 I/O 모듈(48)의 동작을 제어한다.The processor 14 includes a memory 40, a processor 46, an input / output (I / O) module 48, and a transaction module 49. The memory 40 stores the test program 42 and state 44. The test program 42 is loaded into the memory 40 by the host computer via the test equipment 22 (not shown) and includes instructions for starting operation in a transmission mode or a reception mode when executed by the processor 46. do. When operating in a transmit mode or a receive mode, the processor 14 may, in some embodiments, perform operations for writing data to or reading data from a corresponding external device. In other embodiments, the processor 14 may perform operations when operating in a transmit or receive mode where there is no need to write data to or read data from the external device. In general, processor 46 processes data in accordance with instructions of test program 42 and controls the operation of transaction module 49 and I / O module 48.

송신 모드에서 동작할 때, 예를들어, 트랜잭션 모듈(49)은 프로세서(46)의 제어하에 기록 트랜잭션들을 생성한다. 예시적인 기록 트랜잭션들은 시스템 메모리에 데이터를 기록하라는 요청, 이미지를 캡처하라는 카메라 모듈에 대한 요청, 및 데이터를 디스플레이하라는 모니터에 대한 요청을 포함한다. 외부 디바이스에 데이터를 기록하기 위한 기록 트랜잭션은 외부 디바이스에 기록될 데이터와 외부 디바이스를 식별하는 정보를 포함할 수 있다.When operating in transmit mode, for example, transaction module 49 generates write transactions under the control of processor 46. Exemplary write transactions include a request to write data to system memory, a request to the camera module to capture an image, and a request to a monitor to display the data. The write transaction for writing data to the external device may include data to be written to the external device and information identifying the external device.

프로세서(46)는 수신 모드에서 동작할 때 판독 트랜잭션들을 생성하도록 트랜잭션 모듈(49)을 또한 제어할 수 있다. 판독 트랜잭션들은 하드 디스크 또는 소거가능 메모리 카드와 같은 메모리로부터 데이터를 리트리브(retrieve)하라는 요청, 핸드헬드(handheld) 디바이스의 카메라 모듈에 의해 캡처된 이미지 데이터를 리트리브하라는 요청, 및 주변 디바이스로부터 데이터를 리트리브하라는 요청을 포함할 수 있다.Processor 46 may also control transaction module 49 to generate read transactions when operating in receive mode. Read transactions may request to retrieve data from memory, such as a hard disk or an erasable memory card, request to retrieve image data captured by a camera module of a handheld device, and retrieve data from a peripheral device. It may include a request to.

I/O 모듈(48)은 버스(31)를 통하여 외부 인터페이스 제어기(30A)로 판독 및 기록 트랜잭션들을 전송한다. 버스(31)는 프론트 사이드 버스일 수 있으며, 프론트 사이드 버스를 통하여 프로세서(14)는 외부 인터페이스 제어기(30A) 및 부가적인 외부 인터페이스 제어기들과 통신한다. 대안적으로, 버스(31)는 프로세서(14) 및 외부 인터페이스 제어기(30A) 간의 통신을 위한 전용 버스일 수 있다.I / O module 48 transmits read and write transactions via bus 31 to external interface controller 30A. The bus 31 may be a front side bus through which the processor 14 communicates with an external interface controller 30A and additional external interface controllers. In the alternative, the bus 31 may be a dedicated bus for communication between the processor 14 and the external interface controller 30A.

외부 인터페이스 제어기(30A)는 프로세서(14)로부터 수신된 기록 및 판독 트랜잭션들을 처리하고 대응하는 기록 및 판독 트랜잭션들을 실제(real world) 환경에서 대응하는 외부 디바이스로 전송한다. 테스트 환경에서, 외부 인터페이스 제어기(30A)는 대응하는 트랜잭션들을 인터페이스(20)의 지정된 핀에 전송한다. 다음은 송신 모드에서의 동작을 참조하여 외부 인터페이스 제어기(30A)의 동작을 설명한다. 수신 모드에서의 외부 인터페이스 제어기(30A)의 동작은 혼동을 피하기 위하여 별도로 설명될 것이다.The external interface controller 30A processes the write and read transactions received from the processor 14 and sends the corresponding write and read transactions to the corresponding external device in a real world environment. In the test environment, external interface controller 30A sends the corresponding transactions to the designated pin of interface 20. The following describes the operation of the external interface controller 30A with reference to the operation in the transmission mode. The operation of the external interface controller 30A in the receive mode will be described separately to avoid confusion.

도3에서, 외부 인터페이스 제어기(30A)는 트랜잭션 모듈(50) 및 I/O 모듈(52)을 포함한다. I/O 모듈(52)은 외부 인터페이스 제어기(30A)에 대한 I/O를 관리한다. I/O 모듈은 버스(31)를 통해 수신된 기록 트랜잭션들을 트랜잭션 모듈(52)로 지향시키고 트랜잭션 모듈(50)에 의해 생성된 대응하는 기록 트랜잭션들을 버스(33)에 적용한다. 테스트 동안에, 버스(33)는 핀 인터페이스(20)(미도시)의 지정된 핀에 접속된다.In FIG. 3, external interface controller 30A includes transaction module 50 and I / O module 52. I / O module 52 manages I / O to external interface controller 30A. The I / O module directs write transactions received via the bus 31 to the transaction module 52 and applies the corresponding write transactions generated by the transaction module 50 to the bus 33. During the test, bus 33 is connected to a designated pin of pin interface 20 (not shown).

트랜잭션 모듈(50)은 수신된 트랜잭션들에 포함된 데이터를 처리하고 I/O 모듈(52)을 버스(33)에 적용하는 것에 대응하는 기록 트랜잭션을 생성한다. 외부 인터페이스 제어기(30A)가 상이한 프로토콜에 따라 프로세서(14) 및 대응하는 외부 디바이스와 통신하기 때문에, 트랜잭션 모듈(50)은 적절한 프로토콜에 따라 트랜잭션들을 생성한다. 이러한 방식으로, 트랜잭션 모듈(50)은 한 프로토콜로부터 다른 프로토콜로 트랜잭션들을 변환하는 것으로 보여질 수 있다. 따라서, 각 외부 인터페이스 제어기의 트랜잭션 모듈은 대응하는 외부 인터페이스와 관련된 프로토콜에 따라 트랜잭션들을 생성할 수 있다. 이것은 코어 로직 회로(16)(도1에 도시됨)이 도2의 제어기들(30A 및 30B)과 같은 복수의 외부 인터페이스 제어기들을 포함하는 것으로 보여질 수 있는 이유가 된다. 따라서, 트랜잭션 모듈(50)은 프로세서(14)로부터 수신된 기록 트랜잭션을 대응하는 외부 디바이스와 관련된 프로토콜로 변환(translate)한다.Transaction module 50 generates a write transaction corresponding to processing data contained in the received transactions and applying I / O module 52 to bus 33. Since external interface controller 30A communicates with processor 14 and corresponding external device in accordance with a different protocol, transaction module 50 generates transactions in accordance with the appropriate protocol. In this way, transaction module 50 can be seen as converting transactions from one protocol to another. Thus, the transaction module of each external interface controller can generate transactions in accordance with the protocol associated with the corresponding external interface. This is why core logic circuit 16 (shown in FIG. 1) can be seen to include a plurality of external interface controllers, such as controllers 30A and 30B in FIG. 2. Thus, transaction module 50 translates the write transaction received from processor 14 into a protocol associated with the corresponding external device.

위에서 설명한 바와 같이, 외부 인터페이스 제어기(30A)는 제 1 실시예에서, 응답 메시지를 프로세서(14)로 전송할 수 있다. 이러한 실시예들에서, 트랜잭션 모듈(50)은 응답 메시지를 생성하고 I/O 모듈(52)은 상기 응답 메시지를 버스(31)를 통해 프로세서(14)로 전송한다. As described above, the external interface controller 30A may, in the first embodiment, send a response message to the processor 14. In such embodiments, the transaction module 50 generates a response message and the I / O module 52 sends the response message over the bus 31 to the processor 14.

제 2 실시예에서, 외부 인터페이스 제어기(30A)가 정상 동작에서, 즉 실제 환경에서 동작하는 경우에 대응하는 외부 디바이스로부터 응답 메시지를 수신할 수 있다. 그러나, 테스트 동안에, 외부 인터페이스 제어기(30A)는 테스트 로직 모듈(32A)로부터 응답 메시지를 수신한다. 즉, 테스트 로직 모듈(32A)은 예를들어 프로토콜에 의해 외부 인터페이스 제어기(30A)에 요구되는 바와 같은 데이터와 다른 신호들을 제공함에 의해, 외부 인터페이스가 제어기(30A)가 대응하는 응답 메시지를 생성하고 프로세서(14)에 전송하도록 한다. 도3을 참조하면, I/O 모듈(52)은 버스(33)를 통해 테스트 로직 모듈(32A)로부터 데이터와 다른 신호들을 수신하고 이에 대응하는 응답 메시지를 생성하는 트랜잭션 모듈(50)로 지향(direct)시킨다. I/O 모듈(52)은 대응하는 응답 메시지를 버스(31)를 통해 프로세서(14)로 전송한다.In the second embodiment, the external interface controller 30A may receive a response message from an external device corresponding to the case in which the external interface controller 30A operates in normal operation, that is, in a real environment. However, during the test, the external interface controller 30A receives a response message from the test logic module 32A. That is, the test logic module 32A provides signals other than the data as required for the external interface controller 30A, for example by protocol, such that the external interface generates a response message to which the controller 30A corresponds. To the processor 14. Referring to FIG. 3, I / O module 52 is directed to transaction module 50, which receives data and other signals from test logic module 32A via bus 33 and generates a corresponding response message thereof. direct). I / O module 52 sends a corresponding response message via bus 31 to processor 14.

제 3 실시예에서, 외부 인터페이스 제어기(30A)는 제 1 및 제 2 실시예들에 따라 응답 메시지들을 전송할 수 있다. 즉, 외부 인터페이스 제어기(30A)는 프로세서(14)로부터 수신된 기록 트랜잭션을 수신하는 것에 응답하여 프로세서(14)에 제 1 응답 메시지를 전송할 수 있고 외부 인터페이스 제어기(30A)에 의해 외부 디바이스에 전송된 기록 트랜잭션과 대응하는 제 3 응답 메시지를 수신하는 것에 응답하여 제 2 응답 메시지를 프로세서(14)에 전송할 수 있다.In the third embodiment, the external interface controller 30A can send response messages according to the first and second embodiments. That is, the external interface controller 30A can send a first response message to the processor 14 in response to receiving a write transaction received from the processor 14 and sent to the external device by the external interface controller 30A. The second response message may be sent to the processor 14 in response to receiving the third response message corresponding to the write transaction.

제 4 실시예에서, 외부 인터페이스 제어기(30A)는 어떠한 응답 신호들도 생성하지 않는다. 외부 인터페이스 제어기(30A)는 이들 실시예들 중 어느 것에 따라 동작할 수 있다. 따라서, 외부 인터페이스 제어기(30A)를 테스트하는 것은 실시예들 각각에 따라 외부 인터페이스 제어기(30A)의 동작을 검증하는 것을 포함할 수 있다.In the fourth embodiment, the external interface controller 30A does not generate any response signals. The external interface controller 30A can operate in accordance with any of these embodiments. Thus, testing the external interface controller 30A may include verifying the operation of the external interface controller 30A in accordance with each of the embodiments.

테스트 로직 모듈(32A)은 송신 모드 및 수신 모드에서 프로세서(14) 및 외부 인터페이스 제어기(30A)에 의해 제공된 외부 인터페이스의 기능성을 검증한다. 테스트 로직 모듈(32A)은 또한 관련 프로토콜에 의해 제공된 데이터 및 다른 신호들을 외부 디바이스의 동작을 에뮬레이트하기 위하여 외부 인터페이스 제어기(30A)로 제공한다. 데이터 및 신호들을 공급하기 위하여 외부 테스트 장비 대신에 테스트 로직 모듈(32A)을 이용함에 의해, 외부 테스트 장비가 고주파수에서 동작할 필요가 없어지며, 따라서, 집적 회로 디바이스들이 점진적으로 증가하는 동작 주파수들에서 테스트될 필요가 있는 경우에, 수정되거나, 업그레이드되거나, 대체될 필요가 없어질 수 있다.The test logic module 32A verifies the functionality of the external interface provided by the processor 14 and the external interface controller 30A in transmit and receive modes. The test logic module 32A also provides data and other signals provided by the associated protocol to the external interface controller 30A to emulate the operation of the external device. By using the test logic module 32A instead of the external test equipment to supply data and signals, the external test equipment does not need to operate at high frequencies, and therefore, integrated circuit devices at progressively increasing operating frequencies If it needs to be tested, it may not need to be modified, upgraded or replaced.

동작에서, 프로세서(14)는 테스트 로직 모듈(32A)을 개시하거나 인에이블한다. 즉, 프로세서(46)는 테스트 프로그램(42)에 따라 제어 신호를 생성하며, I/O 모듈(48)은 전용선 접속(61)을 통해 테스트 로직 모듈(32A)로 테스트 프로그램(42)을 전송한다. 제어 신호를 수신하기 전에, 테스트 로직 모듈(32A)은 디스에이블, 즉 비활성화될 수 있다. 따라서, 프로세서(14)는 기록 트랜잭션을 외부 인터페이스 제어기(30A)에 전송하기 전에 제어 신호를 테스트 로직 모듈(32A)에 전송할 수 있다. 그러나, 제어 신호를 수신하는 것에 응답하여, 테스트 로직 모듈(32A)은 버스들(31 및 33)을 능동적으로 스누핑할 수 있다. 이러한 방식으로, 테스트 로직 모듈(32A)은 버스들을 통한 모든 트랜잭션들을 획득할 수 있으며, 따라서 적절한 시간에 전송된 트랜잭션들을 검증하는 것에 추가하여 너무 많거나 너무 적은 트랜잭션들이 송신되었는지 여부를 결정할 수 있다.In operation, processor 14 initiates or enables test logic module 32A. That is, the processor 46 generates a control signal according to the test program 42, and the I / O module 48 transmits the test program 42 to the test logic module 32A through the dedicated line connection 61. . Prior to receiving the control signal, the test logic module 32A may be disabled, i.e. deactivated. Thus, processor 14 may send a control signal to test logic module 32A before sending the write transaction to external interface controller 30A. However, in response to receiving the control signal, test logic module 32A can actively snoop buses 31 and 33. In this way, the test logic module 32A may obtain all transactions over the buses, and thus may determine whether too many or too few transactions have been sent in addition to verifying the transactions sent at the appropriate time.

도3에서, 테스트 로직 모듈(32A)은 검증 모듈(60), 의사 랜덤 데이터 생성기(62), 및 I/O 모듈(64)를 포함하며 전용 선 접속(61)을 통하여 프로세서(14)로부터 제어 신호를 수신한다. I/O 모듈(64)은 프로세서(14) 및 외부 인터페이스 제어기(30A)에 의해 각각 생성된 기록 트랜잭션들을 가로채기(intercept)하기 위하여 송신 모드에서 버스들(31 및 33)을 스누핑한다. I/O 모듈(64)은 또한 외부 인터페이스 제어기(30A)에 의해 프로세서(14)로 전송된 응답 메시지 또는 트랜잭션들을 리트리브하기 위하여 버스(31)를 스누핑할 수 있다.In FIG. 3, the test logic module 32A includes a verification module 60, a pseudo random data generator 62, and an I / O module 64 and controlled from the processor 14 via a dedicated line connection 61. Receive the signal. I / O module 64 snoops buses 31 and 33 in transmit mode to intercept write transactions generated by processor 14 and external interface controller 30A, respectively. I / O module 64 may also snoop bus 31 to retrieve response messages or transactions sent by external interface controller 30A to processor 14.

제어 신호는 기준 데이터를 생성하기 위해 테스트 로직 모듈(32A)에 의해 이용된 시드 값을 포함한다. 특히, 의사 랜덤 데이터 생성기(62)는 I/O 모듈(64)로부터 시드 값을 수신하고 테스트 프로그램(42)에 의해 특정된 데이터, 즉, 프로세서(14)에 의해 생성된 기록 트랜잭션과 관련된 데이터와 매칭되는 기준 데이터를 생성하기 위해 시드 값을 이용한다. 의사 랜덤 데이터 생성기(62)는 가로채진 트랜잭션, 즉 버스(31) 상에서 가로채진 기록 트랜잭션과 관련된 데이터와 기준 데이터를 비교하는 모듈(60)에 기준 데이터를 출력한다. 트랜잭션이 프로토콜과 일치하는지 여부에 기초하여 테스트 로직 모듈(32A)이 트랜잭션들을 검증하는 실시예들에서, 검증 모듈(60)은 프로토콜을 체크한 후에 데이터를 체크할 수 있다.The control signal includes a seed value used by the test logic module 32A to generate reference data. In particular, the pseudo random data generator 62 receives the seed value from the I / O module 64 and associates the data specified by the test program 42, that is, the data associated with the write transaction generated by the processor 14. Seed values are used to generate matching reference data. The pseudo random data generator 62 outputs the reference data to a module 60 that compares the reference data with data associated with the intercepted transaction, i.e., the write transaction intercepted on the bus 31. In embodiments in which test logic module 32A verifies transactions based on whether a transaction matches a protocol, verification module 60 may check data after checking the protocol.

예시적 프로토콜이 데이터가 언제 전달되고 있는지를 표시하는데 이용되는 신호를 정의할 수 있다. 상기 신호는 데이터 전달이 진행되고 있음을 표시하는 제 1 상태와 데이터 전달이 진행되고 있지 않음을 표시하는 제 2 상태를 가질 수 있다. 따라서, 검증 모듈(60)은 단지 제어 신호가 제 1 상태에 있는 경우만 I/O 모듈(64)에 의해 제공된 트랜잭션의 데이터를 체크할 것이다. 제어 신호가 제 1 상태에 있는 경우에 데이터를 검증함에 의해, 검증 모듈(60)은 트랜잭션과 관련된 데이터 및 프로토콜과 트랜잭션이 일치하는지를 검증한다. 이러한 방식으로, 검증 모듈(60)은 언제 트랜잭션이 프로토콜과 일치하고 데이터가 유효할지, 언제 트랜잭션이 프로토콜과 일치하고 데이터가 유효할지, 및 언제 트랜잭션이 프로토콜과 일치하지 않을지를 결정할 수 있다. 그러나, 검증 모듈(60)이 하나의 트랜잭션과 관련된 데이터만을 체크하는 경우에, 상기 데이터는 유효할 수 있으나 상기 트랜잭션은 프로토콜과 일치하지 않을 수 있다. 이러한 이유로, 트랜잭션이 프로토콜과 일치하는지 여부에 기초하여 검증하는 것은 외부 인터페이스의 기능성을 결정하기 위한 보다 정확한 테스트를 제공할 수 있다. 위의 설명은 트랜잭션들을 검증하는 단순한 예시적 설명을 제공하기 위해 사용된 예이며, 어떠한 방식으로든 본 개시내용을 제한하는 것으로 고려되어서는 안 된다. 오히려, 프로토콜이 다수의 신호들을 정의할 수 있고, 이러한 경우들에서, 트랜잭션을 검증하기 위하여 체크된 다수의 상태들을 정의할 수 있다. 다수의 상태들이 정의되는 경우에, 트랜잭션들을 검증하는 것은 하나 이상의 상태들을 체크하거나 하나 이상의 상태들의 시퀀스를 체크하는 것을 포함할 수 있다. An example protocol may define a signal that is used to indicate when data is being delivered. The signal may have a first state indicating that data transfer is in progress and a second state indicating that data transfer is not in progress. Thus, the verification module 60 will only check the data of the transaction provided by the I / O module 64 only if the control signal is in the first state. By verifying the data when the control signal is in the first state, the verification module 60 verifies that the transaction matches the data and protocol associated with the transaction. In this manner, the validation module 60 may determine when the transaction matches the protocol and the data is valid, when the transaction matches the protocol and the data is valid, and when the transaction does not match the protocol. However, if the verification module 60 only checks data associated with one transaction, the data may be valid but the transaction may not match the protocol. For this reason, verifying based on whether a transaction matches the protocol can provide a more accurate test to determine the functionality of the external interface. The above description is an example used to provide a simple illustrative description of validating transactions and should not be considered limiting of the disclosure in any way. Rather, the protocol may define multiple signals, and in such cases, may define multiple states checked to verify a transaction. In the case where multiple states are defined, verifying the transactions may include checking one or more states or checking a sequence of one or more states.

검증 모듈(60)은 트랜잭션의 상태를 표시하는 상태 신호를 생성한다. 검증 모듈(60)이 관련 데이터에 기초해서 트랜잭션을 검증하는 경우에, 상태 신호는 트랜잭션이 통과되었는지 실패되었는지 여부를 표시할 수 있다. 그러나, 검증 모듈(60)이 트랜잭션이 프로토콜과 일치하는지 여부에 기초하여 트랜잭션을 검증하는 경우에, 상태 신호는 트랜잭션이 프로토콜과 일치하고 데이터가 유효한지와, 언제 트랜잭션이 프로토콜과 일치하고 데이터가 유효한지와, 언제 트랜잭션이 프로토콜과 일치하지 않는 지를 표시할 수 있다. The verification module 60 generates a status signal indicating the status of the transaction. When the verification module 60 verifies a transaction based on the relevant data, the status signal may indicate whether the transaction has passed or failed. However, if the validation module 60 validates the transaction based on whether the transaction matches the protocol, the status signal indicates whether the transaction matches the protocol and the data is valid, and when the transaction matches the protocol and the data is valid. And when the transaction does not match the protocol.

도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)에 상태 신호를 전송할 수 있다.In Fig. 3, the verification module 60 outputs a status signal via the dedicated line connection 61. Processor 14 updates state 44 based on the received signal. In particular, I / O module 48 directs status signals to processor 46 updating status 44 within memory 40. State 44 is a parameter that indicates the state of the external interface. For example, state 44 may store a "PASS" value if the transaction matches the protocol and the data is valid, or a "DATA ERROR" value if the transaction matches the protocol but the data is invalid. If the transaction does not match the protocol, store the "Protocol Error" value. In this case, the processor 14 is based on the value recorded in the state 44 read by the test equipment 22 (not shown in FIG. 3) and displayed to the user via a host computer connected to the test equipment 22. Will generate a signal. In an alternative aspect, the verification module 60 may send a status signal to the I / O module 64 that outputs the status signal directly to the designated pin of the pin interface 20.

테스트 로직 모듈(32A)은 외부 인터페이스 제어기(30A)에 의해 생성된 기록 트랜잭션들을 검증하기 위하여 유사한 프로세스를 이용한다. 즉, I/O 모듈(64)는 기록 트랜잭션을 가로채기하기 위하여 버스(33)를 스누핑하고 검증 모듈(60)은 가로채기된 트랜잭션과 관련된 데이터를 의사 랜덤 데이터 생성기(62)에 의해 생성된 기준 데이터에 비교한다. 다음, 검증 모듈(60)은 상기 비교에 기초하여 상태 신호를 출력한다.The test logic module 32A uses a similar process to verify write transactions generated by the external interface controller 30A. That is, the I / O module 64 snoops the bus 33 to intercept the write transaction and the verify module 60 generates a reference to the data associated with the intercepted transaction by the pseudo random data generator 62. Compare to the data. The verification module 60 then outputs a status signal based on the comparison.

위에서 설명된 바와 같이, 일부 예시적 양상들에서, 외부 인터페이스 제어기(30A)는 외부 디바이스로부터 응답 메시지를 수신하는 것에 응답하여 응답 메시지를 프로세서(14)로 전송한다. 이러한 예시적인 양상들에서, 테스트 로직 모듈(32A)과, 일부 예시적 양상들에서, 외부 인터페이스 제어기(30A)는, 외부 인터페이스 제어기(30A)에 의해 생성된 기록 트랜잭션을 수신하거나 검증하는 것에 응답하여, 정상 동작에서 외부 디바이스에 의해 생성되었을 응답 메시지를 에뮬레이트하는 외부 인터페이스 제어기(30A)로 관련 프로토콜에 의해 요구되는 데이터 및 다른 신호들을 제공한다. 이러한 방식으로, 테스트 로직 모듈(32A)은 통상적으로 외부 테스트 장비에 의해 제공되는 기능성을 제공하며 테스트 장비(22)(도3에는 미도시)는 저가의 테스트 장비로서 구현될 수 있다. 도3을 참조하면, 검증 모듈(60)이 응답 메시지, 즉 프로토콜에 의해 요구되는 데이터와 다른 신호를 생성할 수 있으며, I/O 모듈(64)은 상기 응답 메시지를 버스(33)를 통해 외부 인터페이스 제어기(30A)로 전송한다.As described above, in some example aspects, the external interface controller 30A sends a response message to the processor 14 in response to receiving the response message from the external device. In these example aspects, the test logic module 32A and, in some example aspects, the external interface controller 30A, in response to receiving or verifying a write transaction generated by the external interface controller 30A. It provides the data and other signals required by the relevant protocol to the external interface controller 30A, which emulates a response message that would have been generated by the external device in normal operation. In this way, test logic module 32A typically provides the functionality provided by external test equipment and test equipment 22 (not shown in FIG. 3) can be implemented as low cost test equipment. Referring to Fig. 3, the verification module 60 may generate a response message, i.e., a signal different from the data required by the protocol, and the I / O module 64 may externally transmit the response message via the bus 33. Transfer to interface controller 30A.

외부 인터페이스 제어기(30A)는 버스(31)를 통해 대응하는 응답 메시지를 프로세서(14)로 전송한다. 테스트 로직 모듈(32A)은 이전의 설명에서 제공된 기술들을 이용하여 프로세서(14)에 전송된 응답 메시지를 가로채고 검증하기 위하여 버스(31)를 스누핑한다.The external interface controller 30A sends a corresponding response message to the processor 14 via the bus 31. The test logic module 32A snoops the bus 31 to intercept and verify the response message sent to the processor 14 using the techniques provided in the previous description.

이전의 설명은 송신 모드에서의 집적 회로(12)의 동작에 관련된다. 이하의 설명은 수신 모드에서의 집적 회로(12)의 동작에 관련된다. 수신 모드에서 동작하는 경우 외부 인터페이스의 기능성을 검증하기 위하여, 트랜잭션과 관련된 데이터에 기초하거나 트랜잭션이 관련 프로토콜과 일치하는지 여부에 기초하여 집적 회로(12)는 수신 모드에서 프로세서(14) 및 외부 인터페이스 제어기(30A)에 의해 생성된 트랜잭션들을 검증한다. 이것은 외부 인터페이스 제어기(30A)에 전송된 프로세서(14)에 의해 생성된 판독 트랜잭션들, 핀 인터페이스(20)에 전송된 외부 인터페이스 제어기(30A)에 의해 생성된 판독 트랜잭션들, 및 프로세서(14)에 전송된 외부 인터페이스 제어기(30A)에 의해 생성된 응답 메시지들을 검증하는 것을 필요로 한다. 위에서 설명된 바와 같이, 외부 인터페이스 제어기(30A)는, 일부 예시적 양상들에서, 프로세서(14)로부터 수신된 판독 트랜잭션에 대응하는 응답 메시지를 생성하여 프로세서(14)로 또한 전송한다. 이러한 예시적 양상들에서, 이 응답 메시지는 또한 검증된다.The previous description relates to the operation of the integrated circuit 12 in the transmission mode. The following description relates to the operation of the integrated circuit 12 in the receive mode. In order to verify the functionality of the external interface when operating in the receive mode, based on the data associated with the transaction or based on whether the transaction conforms to the associated protocol, the integrated circuit 12 may select the processor 14 and the external interface controller in receive mode. Verify the transactions created by 30A. This means that read transactions generated by processor 14 sent to external interface controller 30A, read transactions generated by external interface controller 30A sent to pin interface 20, and processor 14 It is necessary to verify the response messages generated by the external interface controller 30A transmitted. As described above, the external interface controller 30A, in some example aspects, generates and transmits a response message corresponding to the read transaction received from the processor 14 to the processor 14 as well. In these example aspects, this response message is also verified.

수신 모드에서 동작하는 경우, 프로세서(14)는 테스트 프로그램(42)에 따라 판독 트랜잭션을 생성하고 상기 판독 트랜잭션을 대응하는 판독 트랜잭션을 외부 디바이스로 전송하는 외부 인터페이스 제어기(30A)로 판독 트랜잭션을 전송한다. 테스트 로직 모듈(32A)은 송신 모드에서 생성된 기록 트랜잭션들을 검증하기 위해 이용된 것들과 유사한 기술들을 이용하여 판독 트랜잭션들을 검증한다. 프로세서(14)로부터 판독 트랜잭션을 수신한 후에 외부 인터페이스 제어기(30A)가 응답 메시지를 프로세서(14)에 전송하는 경우에, 테스트 로직 모듈(32A)은 응답 메시지를 검증하기 위하여 동일한 검증 기술들을 또한 이용한다.When operating in the receive mode, the processor 14 transmits a read transaction to the external interface controller 30A which generates a read transaction in accordance with the test program 42 and sends the read transaction to a corresponding read transaction to an external device. . The test logic module 32A verifies the read transactions using techniques similar to those used to verify write transactions generated in the transmission mode. In case the external interface controller 30A sends a response message to the processor 14 after receiving the read transaction from the processor 14, the test logic module 32A also uses the same verification techniques to verify the response message. .

그러나, 수신 모드에서 동작하는 경우, 외부 인터페이스 제어기(30A)는 동일한 외부 디바이스에 전송된 판독 트랜잭션에 응답하는 외부 디바이스로부터 응답 메시지를 수신한다. 외부 테스트 장비(22)가 고주파수 신호들을 제공하지 않기 때문에, 테스트 도중에, 테스트 로직 모듈(32A)은 프로토콜에 의해 요구되는 데이터 및 다른 신호들을 외부 인터페이스 제어기(30A)로 제공한다. 따라서, 테스트 로직 모듈(32A)은, 외부 인터페이스 제어기(30A)로 하여금 대응하는 응답 메시지 또는 트랜잭션을 생성하거나 이를 프로세서(14)로 전송하도록 야기하는 외부 인터페이스 제어기(30A)로 테스트 로직 모듈(32A)이 프로토콜에 의해 요구되는 데이터 및 다른 신호들을 제공한다는 점에서 테스트 로직 모듈(32A)은 통상의 테스트 장비와 유사한 방식으로 동작한다. However, when operating in the receive mode, external interface controller 30A receives a response message from an external device in response to a read transaction sent to the same external device. Since the external test equipment 22 does not provide high frequency signals, during the test, the test logic module 32A provides the external interface controller 30A with data and other signals required by the protocol. Thus, the test logic module 32A is the test logic module 32A to the external interface controller 30A which causes the external interface controller 30A to generate or send a corresponding response message or transaction to the processor 14. The test logic module 32A operates in a manner similar to conventional test equipment in that it provides data and other signals required by this protocol.

도3을 참조하면, 검증 모듈(60)은 프로토콜에 의해 요구되는 데이터 및 다른 신호들을 포함할 수 있는 응답 메시지를 생성하고 I/O 모듈(64)은 상기 응답 메시지를 버스(33)를 통해 외부 인터페이스 제어기(30A)로 전송한다. I/O 모듈(64)은 응답 메시지를 전송하기 전에 버스(33) 상에서 적절한 프로토콜을 대기할 수 있다. 검증 모듈(60)은 외부 인터페이스 제어기(30A)로부터 수신된 대응하는 판독 트랜잭션과 관련된 상태 신호를 생성한 후에 응답 메시지를 생성할 수 있다.Referring to Figure 3, the verification module 60 generates a response message that may include data and other signals required by the protocol and the I / O module 64 externally sends the response message via the bus 33. Transfer to interface controller 30A. I / O module 64 may wait for the appropriate protocol on bus 33 before sending a response message. The verification module 60 may generate a response message after generating a status signal associated with the corresponding read transaction received from the external interface controller 30A.

I/O 모듈(52)은 응답 메시지를 수신하고 이를 트랜잭션 모듈(50)로 전송한다. 트랜잭션 모듈(50)은 응답 메시지를 처리하고 I/O 모듈(52)이 버스(31)를 통해 프로세서(14)로 전송하는 대응하는 응답 메시지를 생성한다.I / O module 52 receives the response message and sends it to transaction module 50. Transaction module 50 processes the response message and generates a corresponding response message that I / O module 52 sends to processor 14 via bus 31.

테스트 모듈(32A)은 외부 인터페이스 제어기(30A)에 의해 생성된 응답 메시지를 검증한다. 특히, I/O 모듈(64)은 응답 메시지를 리트리브하기 위해 버스(31)를 스누핑하고 검증 모듈(60)은 관련 데이터 또는 응답 메시지가 관련 프로토콜과 일치하는지 여부에 기초하여 리트리브된 응답 메시지를 검증한다. 검증 모듈(60)은 검증 프로세스를 완결하기 위하여 응답 신호가 유효한지 여부를 표시하는 상태 신호를 출력한다.The test module 32A verifies the response message generated by the external interface controller 30A. In particular, I / O module 64 snoops bus 31 to retrieve the response message and validation module 60 verifies the retrieved response message based on whether the associated data or response message matches the associated protocol. do. The verification module 60 outputs a status signal indicating whether the response signal is valid to complete the verification process.

도4는 트랜잭션과 관련있는 데이터에 기초하여 고주파수 외부 인터페이스를 통해 송신된 트랜잭션을 검증하기 위하여 집적 회로(12)에 의해 실행될 수 있는 예시적인 기술을 나타내는 흐름도이다. 일반적으로, 도4에 도시된 단계들은 송신 모드 및 수신 모드에서 생성된 트랜잭션을 검증하는데 이용될 수 있으며 도3에 도시된 집적 회로(12)의 컴포넌트들과 관련하여 설명된다. 흐름도는 집적 회로(12)가 제조후 테스트 도중 핀 인터페이스(20)를 통해 테스트 장비(22)에 탑재되는 때에 시작된다. 초기에, 호스트 컴퓨터가 테스트 프로그램을 집적 회로(12) 상에 로딩한다(70). 테스트 프로그램은 호스트 컴퓨터 상에서 개발될 수 있으며 테스트 장비를 통해 프로세서(14)의 프로그램 메모리(42)로 로딩될 수 있다.4 is a flow diagram illustrating an exemplary technique that may be executed by integrated circuit 12 to verify a transaction sent over a high frequency external interface based on data associated with the transaction. In general, the steps shown in FIG. 4 may be used to verify a transaction generated in a transmit mode and a receive mode and are described with respect to the components of the integrated circuit 12 shown in FIG. The flow chart begins when the integrated circuit 12 is mounted to the test equipment 22 via the pin interface 20 during the post-production test. Initially, the host computer loads the test program onto integrated circuit 12 (70). The test program can be developed on the host computer and loaded into the program memory 42 of the processor 14 via the test equipment.

프로세서(14) 및 외부 인터페이스 제어기(30A)는 테스트 프로그램 명령들에 따라 트랜잭션들을 생성하고(72) 상기 트랜잭션들을 버스를 통해 전송한다(74). 예를들어, 단계들(72 및 74)은 송신 모드에서 동작하는 경우에 버스(31)를 통해 인터페이스 제어기(30A)에 기록 트랜잭션을 전송하는 프로세서 또는 버스(33)를 통해 외부 디바이스로 대응하는 기록 트랜잭션을 전송하는 외부 인터페이스 제어기를 참조할 수 있다. 집적 회로(12)가 수신 모드에서 동작하는 실시예에서, 동작들(72 및 74)는 버스(31)를 통해 외부 인터페이스 제어기(30A)로 판독 트랜잭션을 전송하는 프로세서(14), 외부 디바이스로 대응하는 판독 트랜잭션을 전송하는 외부 인터페이스 제어기(30A), 또는 프로세서(14)로 응답 메시지를 전송하는 외부 인터페이스 제어기(30A)를 참조할 수 있다. 즉, 동작들(72 및 74)은 판독 또는 기록 동작을 수행하는 프로세스 도중에 생성되는 단일 트랜잭션을 일반적으로 의미한다. 따라서, 도4에 도시된 흐름도의 동작들이 완전한 기록 또는 판독 동작을 검증하기 위하여 반복될 수 있다는 점이 명확할 것이다.Processor 14 and external interface controller 30A generate transactions 72 and transmit the transactions over the bus 74 according to test program instructions. For example, steps 72 and 74 may correspond to an external device via a processor or bus 33 that transmits a write transaction to interface controller 30A via bus 31 when operating in transmit mode. Reference may be made to the external interface controller sending the transaction. In the embodiment where the integrated circuit 12 operates in a receive mode, operations 72 and 74 correspond to a processor 14, an external device, which transmits a read transaction to the external interface controller 30A via the bus 31. Reference may be made to an external interface controller 30A sending a read transaction or an external interface controller 30A sending a response message to the processor 14. That is, operations 72 and 74 generally refer to a single transaction that is created during the process of performing a read or write operation. Thus, it will be clear that the operations of the flowchart shown in FIG. 4 may be repeated to verify the complete write or read operation.

테스트 로직 모듈(32A)은 적절한 버스, 즉, 트랜잭션을 리트리브 또는 가로채기하기 위하여 트랜잭션이 동작(74)에서 전송되는 버스를 스누핑한다(76). 따라서, 테스트 로직 모듈(32A)은 송신 모드 또는 수신 모드에서 프로세서(14)에 의해 생성된 트랜잭션들과 수신 모드에서 외부 인터페이스 제어기(30A)에 의해 생성된 트랜잭션들을 검증하기 위하여 그리고 이러한 트랜잭션들에 대한 응답들을 외부인터페이스 제어기(30A)에 의해 생성된 트랜잭션들을 검증하기 위하여 버스(33)를 스누핑할 수 있다. 기록 및 판독 동작들이 버스들(31 및 33)을 통해 기록 및 판독 트랜잭션들을 전송하는 것을 필요로 하기 때문에, 테스트 로직 모듈(32A)은 외부 인터페이스의 완전한 신호 경로를 검증하기 위하여 버스들(31 및 33)을 일반적으로 스누핑한다. Test logic module 32A snoops 76 on the appropriate bus, i.e., the bus on which the transaction is sent in operation 74 to retrieve or intercept the transaction. Thus, the test logic module 32A is configured to verify transactions generated by the processor 14 in the transmit mode or receive mode and transactions generated by the external interface controller 30A in the receive mode and for these transactions. The bus 33 can be snooped to verify the responses for transactions generated by the external interface controller 30A. Since write and read operations require the transfer of write and read transactions over buses 31 and 33, test logic module 32A uses buses 31 and 33 to verify the complete signal path of the external interface. Is usually snooped.

트랜잭션을 리트리빙하는 경우, 테스트 로직 모듈(32A)은 기준 데이터를 생성하고(78) 트랜잭션과 관련된 데이터를 기준 데이터와 비교함으로써 상기 트랜잭션을 검증한다(80). 테스트 로직 모듈(32A)은 프로세서(14)에 의해 제공된 시드 값에 기초하여, 보다 구체적으로는, 프로세서(14)로부터 수신된 제어 신호에 기초하여 기준 데이터를 생성할 수 있다. 제어 신호, 즉 시드 값은 전용선 접속 또는 대응하는 버스를 통해 송신될 수 있다.When retrieving a transaction, test logic module 32A verifies the transaction by generating reference data (78) and comparing the data associated with the transaction with the reference data (80). The test logic module 32A may generate reference data based on the seed value provided by the processor 14, more specifically based on the control signal received from the processor 14. The control signal, i.e. the seed value, may be transmitted over a dedicated line connection or a corresponding bus.

상기 비교에 기초하여, 테스트 로직 모듈(32A)은 트랜잭션이 유효한지 여부를 표시하는 상태 신호를 생성한다(82). 테스트 로직 모듈(32A)은 상기 상태 신호를 핀 인터페이스(20)의 출력에 직접 인가할 수 있다. 상기 출력은 상태 신호를 보기 위한 디스플레이를 갖는 호스트 컴퓨터에 접속될 수 있다. 그 결과, 사용자는 단계(72)에서 생성된 트랜잭션이 유효한지 여부를 결정하기 위하여 상기 상태를 조사할 수 있다(84). 대안적으로, 상기 상태 신호는 프로세서(14)에 의해 수신될 수 있으며 판독될 수 있고 모니터 상에 디스플레이될 수 있는 메모리 파라미터의 값을 설정하는데 이용될 수 있다.Based on the comparison, test logic module 32A generates 82 a status signal indicating whether the transaction is valid. The test logic module 32A may apply the state signal directly to the output of the pin interface 20. The output can be connected to a host computer having a display for viewing status signals. As a result, the user may examine the state to determine whether the transaction created in step 72 is valid (84). Alternatively, the status signal can be received by processor 14 and used to set the value of a memory parameter that can be read and displayed on a monitor.

도5는 트랜잭션이 관련 프로토콜과 일치하는지 여부에 기초하여 고주파수 외부 인터페이스를 통해 송신된 트랜잭션을 검증하기 위하여 집적 회로(12)에 의해 수행될 수 있는 예시적인 기술을 도시하는 흐름도이다. 도5에 도시된 단계들은 송신 모드 또는 수신 모드에서 생성된 트랜잭션을 검증하는데 이용될 수 있다. 도4에 도시된 흐름도와 유사하게, 도5에 도시된 흐름도의 단계들은 집적 회로(12)가 제조후 테스트 도중에 핀 인터페이스(20)를 통해 테스트 장비(22)에 탑재되는 때에 실행된다.5 is a flow diagram illustrating an example technique that may be performed by integrated circuit 12 to verify a transaction sent over a high frequency external interface based on whether a transaction conforms to an associated protocol. The steps shown in FIG. 5 may be used to verify a transaction generated in a transmission mode or a reception mode. Similar to the flowchart shown in FIG. 4, the steps of the flowchart shown in FIG. 5 are executed when the integrated circuit 12 is mounted to the test equipment 22 via the pin interface 20 during the post-production test.

초기에, 호스트 컴퓨터가 테스트 프로그램(42)을 집적 회로(12)에 테스트 장비(22)를 통해 로딩한다(70). 테스트 프로그램(42)은 송신 모드 및 수신 모드에서 동작하는 경우에 외부 인터페이스들의 기능성을 테스트하기 위하여 개발된다. 따라서, 집적 회로(12)는 테스트 프로그램 명령들에 따라 트랜잭션을 생성하며(102) 버스를 통해 상기 트랜잭션을 전송한다(104). 도4와 유사하게, 동작들(102 및 104)은 판독 또는 기록 동작 도중에 프로세서(14) 또는 외부 인터페이스 제어기(30A)에 의해 생성된 단일 판독 또는 기록 트랜잭션을 참조한다. 그러나, 도5의 흐름도의 동작들은 판독 및 기록 동작들 도중에 생성된 다중의 판독 및 기록 트랜잭션들을 검증하기 위하여 반복될 수 있다는 점이 이해되어야 한다.Initially, the host computer loads the test program 42 into the integrated circuit 12 through the test equipment 22 (70). The test program 42 is developed for testing the functionality of the external interfaces when operating in the transmit mode and the receive mode. Thus, integrated circuit 12 generates a transaction in accordance with the test program instructions (102) and transmits the transaction over the bus (104). Similar to FIG. 4, operations 102 and 104 refer to a single read or write transaction generated by processor 14 or external interface controller 30A during a read or write operation. However, it should be understood that the operations of the flowchart of FIG. 5 may be repeated to verify multiple read and write transactions generated during read and write operations.

트랜잭션을 리트리브 또는 가로채기 위해 버스를 스누핑(106)하는 것은 트랜잭션이 동작(102)에서 전송되는 버스를 테스트 로직 모듈(32A)이 스누핑하는 것을 참조할 수 있다. 테스트 로직 모듈(32A)은 프로세서(14)로부터 제어 신호를 수신하는 경우 적절한 버스를 능동적으로 스누핑할 수 있다. 프로세서(14)는 테스트 프로그램(42)이 메모리에 로딩되는 경우 테스트 로직 모듈(32A)을 인에이블하기 위하여 제어 신호를 전송할 수 있다.Snooping 106 the bus to retrieve or intercept the transaction may refer to test logic module 32A snooping the bus to which the transaction is sent in operation 102. The test logic module 32A may actively snoop on the appropriate bus when receiving control signals from the processor 14. The processor 14 may transmit a control signal to enable the test logic module 32A when the test program 42 is loaded into the memory.

트랜잭션을 리트리빙하는 경우, 테스트 로직 모듈(32A)은 트랜잭션이 관련 프로토콜과 일치하는지 여부에 기초하여 리트리브된 트랜잭션을 검증한다(108). 예를들어, 테스트 로직 모듈(32A)은 프로토콜에 의해 정의된 하나 이상의 신호들을 체킹함에 의해 트랜잭션을 검증할 수 있다. 이것은 하나 이상의 신호들에 의해 정의된 상태들의 시퀀스 또는 신호에 의해 정의된 하나 이상의 상태들을 체킹하는 것을 포함한다. 예를들어, 프로토콜이 언제 데이터가 전달되고 있는지를 나타내는 신호를 정의하는 경우에, 테스트 로직 모듈(32A)은 데이터가 프로토콜에 의해 특정된 시간에서 전달되고 있는지 여부를 결정하기 위하여 이 신호를 체크할 수 있다. 그러나, 보다 일반적으로, 테스트 로직 모듈(32A)은 트랜잭션이 프로토콜에 의해 설정된 규칙들을 만족시키는지 여부를, 즉 트랜잭션이 프로토콜과 일치하는지 여부를 결정하기 위하여 트랜잭션을 조사한다. When retrieving the transaction, the test logic module 32A verifies 108 the retrieved transaction based on whether the transaction matches the associated protocol. For example, test logic module 32A may verify the transaction by checking one or more signals defined by the protocol. This includes checking a sequence of states defined by one or more signals or one or more states defined by a signal. For example, if the protocol defines a signal indicating when data is being delivered, the test logic module 32A may check this signal to determine whether the data is being delivered at the time specified by the protocol. Can be. More generally, however, the test logic module 32A examines the transaction to determine whether the transaction satisfies the rules set by the protocol, that is, whether the transaction matches the protocol.

다음, 테스트 로직 모듈(32A)은 예를들어 프로세서(14)로부터 수신된 제어 신호에 의해 제공되는 시드 값에 기초하여 기준 데이터를 생성할 수 있다(110). 테스트 로직 모듈(32A)은 트랜잭션과 관련된 데이터를 기준 데이터와 비교함으로써 트랜잭션과 관련된 데이터를 검증한다(112). 따라서, 테스트 로직 모듈(32A)은 트랜잭션의 상태를 표시하는 상태 신호를 생성할 수 있다(114). 예를들어, 테스트 로직 모듈(32A)은 트랜잭션이 관련 데이터와 일치하고 상기 데이터가 유효한지, 트랜잭션이 관련 프로토콜과 일치하나 상기 데이터가 유효하지 않은지, 또는 트랜잭션이 프로토콜과 일치하지 않은지를 표시하는 상태 신호를 생성할 수 있다.The test logic module 32A may then generate reference data 110 based on, for example, a seed value provided by the control signal received from the processor 14. The test logic module 32A verifies 112 the data associated with the transaction by comparing the data associated with the transaction with reference data. Accordingly, test logic module 32A may generate a status signal indicative of the status of the transaction (114). For example, the test logic module 32A may indicate whether a transaction matches the related data and the data is valid, a transaction matches the related protocol but the data is not valid, or the transaction does not match the protocol. You can generate a signal.

다음, 사용자는 트랜잭션이 유효한지 여부를 결정하기 위하여 상태 신호를 조사할 수 있다(116). 일 예로, 상태 신호는 핀 인터페이스(20)의 지정된 핀으로 출력될 수 있거나 프로세서(14)의 메모리의 저장된 파라미터의 값을 설정하는데 이용될 수 있다. 어느 경우든, 상태 신호는 호스트 컴퓨터의 모니터 상에서 디스플레이되기 위하여 테스트 장비(22)에 의해 판독될 수 있다.The user can then examine the status signal to determine whether the transaction is valid (116). As an example, the status signal may be output to a designated pin of the pin interface 20 or may be used to set the value of a stored parameter of the memory of the processor 14. In either case, the status signal can be read by the test equipment 22 to be displayed on the monitor of the host computer.

다양한 양상들과 실시예들이 설명되었다. 그러나, 청구범위를 벗어남 없이 본 개시내용의 기술들 또는 구조에 수정들이 행해질 수 있다. 예를들어, 위에서 설명된 집적 회로들은 상보형 금속 산화물 반도체(CMOS), 바이폴라 접합 트랜지스터(BJT), 바이폴라-CMOS(BiCMOS), 실리콘게르마늄(SiGe), 갈륨비소(GaAs) 등과 같은 다양한 IC 프로세스 기술들로 제조될 수 있다. 본 개시내용의 이들과 다른 양상들은 청구범위 내에 속한다.Various aspects and embodiments have been described. However, modifications may be made to the techniques or structure of the present disclosure without departing from the claims. For example, the integrated circuits described above include various IC process technologies such as complementary metal oxide semiconductor (CMOS), bipolar junction transistor (BJT), bipolar-CMOS (BiCMOS), silicon germanium (SiGe), gallium arsenide (GaAs), and the like. It can be prepared with. These and other aspects of the disclosure are within the scope of the claims.

Claims (72)

집적 회로로서,
테스트 프로그램의 명령들을 실행하도록 동작하는 프로세서 ― 상기 프로세서는 데이터를 포함하는 메시지를 생성하도록 동작함 ― ;
상기 테스트 프로그램에 따라 상기 프로세서로부터 상기 메시지를 수신하도록 동작하는 코어 로직 회로; 및
상기 프로세서로부터 상기 코어 로직 회로로 전송되는 상기 메시지를 스누핑(snoop)하고, 상기 메시지를 평가하고, 그리고 상기 메시지가 유효한지 여부를 표시하는 상태 신호를 상기 프로세서로 제공하도록 동작하는 테스트 로직 회로를 포함하며,
여기서 상기 메시지는 프로토콜에 따라 통신되고, 그리고 상기 테스트 로직 회로는, 기준 데이터를 생성하고 그리고 상기 메시지가 상기 프로토콜과 일치하는(consistent)지 여부에 대한 결정 및 상기 메시지와 관련된 데이터와 상기 기준 데이터의 비교 중 적어도 하나에 기초하여 상기 메시지를 평가하는,
집적 회로.
As an integrated circuit,
A processor operative to execute instructions of a test program, the processor operative to generate a message comprising data;
Core logic circuitry operative to receive the message from the processor in accordance with the test program; And
Test logic circuitry operative to snoop the message sent from the processor to the core logic circuitry, evaluate the message, and provide a status signal to the processor indicating whether the message is valid. ,
Wherein the message is communicated in accordance with a protocol, and the test logic circuit generates reference data and determines whether the message is consistent with the protocol and the data associated with the message and the reference data. Evaluating the message based on at least one of the comparisons,
integrated circuit.
제 1 항에 있어서,
상기 코어 로직 회로는 200 MHz 내지 400 MHz의 범위 내의 주파수에서 동작하도록 구성되는,
집적 회로.
The method of claim 1,
The core logic circuit is configured to operate at a frequency in the range of 200 MHz to 400 MHz,
integrated circuit.
제 1 항에 있어서,
상기 코어 로직 회로는 400 MHz보다 큰 주파수에서 동작하도록 구성되는,
집적 회로.
The method of claim 1,
The core logic circuit is configured to operate at a frequency greater than 400 MHz,
integrated circuit.
삭제delete 삭제delete 제 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) 버스 중 하나를 통해 외부 디바이스에 연결되도록 동작하는,
집적 회로.
The method of claim 1,
The core logic circuit includes a peripheral component interconnect (PCI) bus, an advanced high-performance bus (AHB), an advanced extensible interface (AXI) bus, and a small computer system interface. to external devices through one of the following: a small computer system interface (SCSI) bus, Ethernet bus, Universal Serial Bus (USB), Advance Graphics Processor (AGP) bus, and serial serial advanced technology attachment (SATA) bus. Operative to connect,
integrated circuit.
제 1 항에 있어서,
상기 메시지는 제 1 메시지이고,
송신 모드에서 동작하는 경우, 상기 코어 로직 회로는 상기 제 1 메시지에 기초하여 제 2 메시지를 생성하고 상기 제 2 메시지를 외부 디바이스로 전송하며,
상기 테스트 로직 회로는 상기 제 2 메시지를 스누핑 하도록 동작하고, 상기 테스트 로직 회로는 상기 제 2 메시지를 평가하고 상기 제 2 메시지가 유효한지 여부를 표시하는 제 2 상태 신호를 상기 프로세서로 제공하는,
집적 회로.
The method of claim 1,
The message is a first message,
When operating in a transmit mode, the core logic circuit generates a second message based on the first message and transmits the second message to an external device,
The test logic circuit is operative to snoop the second message, the test logic circuit providing a second status signal to the processor that evaluates the second message and indicates whether the second message is valid;
integrated circuit.
제 1 항에 있어서,
상기 메시지는 제 1 메시지이고,
수신 모드에서 동작하는 경우, 상기 코어 로직 회로는 상기 제 1 메시지에 기초하여 제 2 메시지를 생성하고 상기 제 2 메시지를 외부 디바이스로 전송하며,
상기 테스트 로직 회로는 상기 제 2 메시지를 스누핑 하도록 동작하고, 상기 테스트 로직 회로는 상기 제 2 메시지를 평가하고 상기 제 2 메시지가 유효한지 여부를 표시하는 제 2 상태 신호를 상기 프로세서로 제공하고, 그리고
상기 테스트 로직 회로는 상기 제 2 메시지에 기초하여 제 3 메시지를 생성하고 상기 외부 디바이스를 에뮬레이트(emulate)하기 위해 상기 제 3 메시지를 상기 코어 로직 회로로 전송하도록 추가적으로 동작하는,
집적 회로.
The method of claim 1,
The message is a first message,
When operating in a receive mode, the core logic circuit generates a second message based on the first message and sends the second message to an external device,
The test logic circuit is operative to snoop the second message, the test logic circuit provides a second status signal to the processor that evaluates the second message and indicates whether the second message is valid, and
The test logic circuit is further operative to generate a third message based on the second message and send the third message to the core logic circuit to emulate the external device,
integrated circuit.
제 8 항에 있어서,
상기 코어 로직 회로는 상기 제 3 메시지에 기초하여 제 4 메시지를 생성하고 상기 제 4 메시지를 상기 프로세서로 전송하도록 동작하고,
상기 테스트 로직 회로는 상기 제 4 메시지를 평가하고 상기 제 4 메시지가 유효한지 여부를 표시하는 제 3 상태 신호를 상기 프로세서로 제공하는,
집적 회로.
The method of claim 8,
The core logic circuit is operative to generate a fourth message based on the third message and send the fourth message to the processor,
The test logic circuitry provides a third status signal to the processor that evaluates the fourth message and indicates whether the fourth message is valid;
integrated circuit.
삭제delete 삭제delete 삭제delete 제 1 항에 있어서,
상기 코어 로직 회로는 상기 메시지와 관련된 응답 메시지를 생성하고 상기 응답 메시지를 상기 프로세서로 전송하고,
상기 테스트 로직 회로는 상기 응답 메시지를 평가하고 상기 응답 메시지가 유효한지 여부를 표시하기 위해 제 2 상태 신호를 제공하는,
집적 회로.
The method of claim 1,
The core logic circuit generates a response message associated with the message and sends the response message to the processor,
The test logic circuitry provides a second status signal to evaluate the response message and indicate whether the response message is valid;
integrated circuit.
제 1 항에 있어서,
상기 집적 회로는, 개인용 컴퓨터, 랩톱 컴퓨터, 개인 디지털 보조기(PDA), 울트라 모바일 개인용 컴퓨터(UMPC), 무선 통신 디바이스, 네트워킹 디바이스, 및 전자 계산 디바이스 중 하나에서 동작하도록 구성된,
집적 회로.
The method of claim 1,
The integrated circuit is configured to operate in one of a personal computer, a laptop computer, a personal digital assistant (PDA), an ultra mobile personal computer (UMPC), a wireless communication device, a networking device, and an electronic computing device,
integrated circuit.
제 1 항에 있어서,
상기 집적 회로는 무선 통신 디바이스의 이동국 모뎀(MSM) 칩으로서 동작하도록 구성되는,
집적 회로.
The method of claim 1,
The integrated circuit is configured to operate as a mobile station modem (MSM) chip of a wireless communication device,
integrated circuit.
방법으로서,
집적 회로 상의 프로세서에서 테스트 프로그램의 명령들을 실행하는 단계;
상기 테스트 프로그램에 따라 상기 집적 회로의 코어 로직 회로와 통신하기 위해 상기 프로세서에서 데이터를 포함하는 메시지를 생성하는 단계;
상기 프로세서로부터 상기 코어 로직 회로로 상기 메시지를 전송하는 단계;
상기 집적 회로의 테스트 로직 회로에서 상기 메시지를 스누핑하는 단계;
상기 메시지가 유효한지 여부를 결정하기 위해 상기 테스트 로직 회로에서 상기 메시지를 평가하는 단계 ― 상기 메시지는 프로토콜에 따라 통신되고, 그리고 상기 메시지를 평가하는 단계는, 기준 데이터를 생성하는 단계 및 상기 메시지가 상기 프로토콜과 일치하는지 여부에 대한 결정 및 상기 메시지와 연관된 데이터와 상기 기준 데이터의 비교 중 적어도 하나에 기초하여 상기 메시지를 평가하는 단계를 포함함 ―; 및
상기 메시지가 유효한지 여부를 표시하는 상태 신호를 상기 테스트 로직 회로로부터 상기 프로세서로 제공하는 단계를 포함하는,
방법.
As a method,
Executing instructions of a test program at a processor on an integrated circuit;
Generating a message comprising data at the processor to communicate with a core logic circuit of the integrated circuit in accordance with the test program;
Sending the message from the processor to the core logic circuit;
Snooping the message in a test logic circuit of the integrated circuit;
Evaluating the message in the test logic circuit to determine whether the message is valid, wherein the message is communicated according to a protocol, and evaluating the message comprises generating reference data and Evaluating the message based on at least one of a determination of whether the protocol matches the protocol and a comparison of the reference data with data associated with the message; And
Providing a status signal from the test logic circuit to the processor indicating whether the message is valid,
Way.
제 16 항에 있어서,
상기 코어 로직 회로는 200 MHz 내지 400 MHz의 범위 내의 주파수에서 동작하도록 구성되는,
방법.
17. The method of claim 16,
The core logic circuit is configured to operate at a frequency in the range of 200 MHz to 400 MHz,
Way.
제 16 항에 있어서,
상기 코어 로직 회로는 400 MHz보다 높은 주파수에서 동작하도록 구성되는,
방법.
17. The method of claim 16,
The core logic circuit is configured to operate at a frequency higher than 400 MHz,
Way.
삭제delete 삭제delete 제 16 항에 있어서,
상기 코어 로직 회로는, 주변 컴포넌트 상호접속(PCI) 버스, 향상된 고성능 버스(AHB), 향상된 익스텐서블 인터페이스(AXI) 버스, 소형 컴퓨터 시스템 인터페이스(SCSI) 버스, 이더넷 버스, 범용 직렬 버스(USB), AGP 버스, 및 직렬 ATA(SATA) 버스 중 하나를 통해 외부 디바이스와 연결되도록 동작하는,
방법.
17. The method of claim 16,
The core logic circuit includes a peripheral component interconnect (PCI) bus, an enhanced high performance bus (AHB), an enhanced extensible interface (AXI) bus, a small computer system interface (SCSI) bus, an Ethernet bus, a universal serial bus (USB). Operative to connect with external devices through one of the following: AGP bus, and Serial ATA (SATA) bus,
Way.
제 16 항에 있어서,
상기 명령들을 실행시키는 단계는 송신 모드에서 동작을 개시하기 위하여 상기 프로세서에서 상기 테스트 프로그램의 명령들을 실행시키는 단계를 포함하고, 상기 방법은,
상기 메시지에 기초하여 상기 코어 로직 회로에서 제 2 메시지를 생성하는 단계;
외부 디바이스로 상기 메시지를 제공하기 위하여 상기 제 2 메시지를 상기 집적 회로의 핀 인터페이스로 전송하는 단계;
상기 테스트 로직 회로에서 상기 제 2 메시지를 스누핑하는 단계;
상기 제 2 메시지가 유효한지 여부를 결정하기 위하여 상기 테스트 로직 회로에서 상기 제 2 메시지를 평가하는 단계; 및
상기 제 2 메시지가 유효한지 여부를 표시하는 제 2 상태 신호를 상기 테스트 로직 회로로부터 상기 프로세서로 제공하는 단계를 더 포함하는,
방법.
17. The method of claim 16,
Executing the instructions includes executing instructions of the test program at the processor to initiate operation in a transmission mode, the method comprising:
Generating a second message in the core logic circuit based on the message;
Sending the second message to a pin interface of the integrated circuit to provide the message to an external device;
Snooping the second message in the test logic circuit;
Evaluating the second message in the test logic circuit to determine whether the second message is valid; And
Providing a second status signal from the test logic circuit to the processor indicating whether the second message is valid;
Way.
제 16 항에 있어서,
상기 명령들을 실행시키는 단계는 수신 모드에서 동작을 개시하기 위하여 상기 프로세서에서 상기 테스트 프로그램의 명령들을 실행시키는 단계를 포함하고, 상기 방법은,
상기 메시지에 기초하여 상기 코어 로직 회로에서 제 2 메시지를 생성하는 단계;
상기 메시지를 외부 디바이스로 제공하기 위하여 상기 제 2 메시지를 상기 코어 로직 회로으로부터 상기 집적회로의 핀 인터페이스로 전송하는 단계;
상기 테스트 로직 회로에서 상기 제 2 메시지를 스누핑하는 단계;
상기 제 2 메시지에 기초하여 상기 테스트 로직 회로에서 제 3 메시지를 생성하는 단계; 및
상기 제 3 메시지를 상기 테스트 로직 회로로부터 상기 코어 로직 회로로 전송하는 단계를 더 포함하고,
상기 테스트 로직 회로는 상기 외부 디바이스를 에뮬레이트하는,
방법.
17. The method of claim 16,
Executing the instructions comprises executing instructions of the test program at the processor to initiate operation in a receive mode, the method comprising:
Generating a second message in the core logic circuit based on the message;
Sending the second message from the core logic circuit to a pin interface of the integrated circuit to provide the message to an external device;
Snooping the second message in the test logic circuit;
Generating a third message in the test logic circuit based on the second message; And
Sending the third message from the test logic circuit to the core logic circuit,
The test logic circuit emulates the external device,
Way.
제 23 항에 있어서,
상기 제 3 메시지에 기초하여 상기 코어 로직 회로에서 제 4 메시지를 생성하는 단계;
상기 제 4 메시지를 상기 코어 로직 회로로부터 상기 프로세서로 전송하는 단계;
상기 테스트 로직 회로에서 상기 제 4 메시지를 스누핑하는 단계;
상기 제 4 메시지가 유효한지 여부를 결정하기 위해 상기 테스트 로직 회로에서 상기 제 4 메시지를 평가하는 단계; 및
상기 제 4 메시지가 유효한지 여부를 표시하는 제 2 상태 신호를 상기 테스트 로직 회로로부터 상기 프로세서로 제공하는 단계를 더 포함하는,
방법.
24. The method of claim 23,
Generating a fourth message in the core logic circuit based on the third message;
Sending the fourth message from the core logic circuit to the processor;
Snooping the fourth message in the test logic circuit;
Evaluating the fourth message in the test logic circuit to determine whether the fourth message is valid; And
Providing a second status signal from the test logic circuit to the processor indicating whether the fourth message is valid;
Way.
삭제delete 삭제delete 삭제delete 제 16 항에 있어서,
상기 메시지와 관련된 응답 메시지를 상기 코어 로직 회로에서 생성하는 단계, 상기 응답 메시지를 상기 프로세서로 전송하는 단계, 상기 테스트 로직 회로에서 상기 응답 메시지를 평가하는 단계, 및 상기 응답 메시지가 유효한지 여부를 표시하는 제 2 상태 신호를 상기 테스트 로직 회로에서 생성하는 단계를 더 포함하는,
방법.
17. The method of claim 16,
Generating a response message associated with the message in the core logic circuit, transmitting the response message to the processor, evaluating the response message in the test logic circuit, and indicating whether the response message is valid Generating at the test logic circuit a second state signal;
Way.
제 16 항에 있어서,
상기 집적 회로는, 개인용 컴퓨터, 랩톱 컴퓨터, 개인 디지털 보조기(PDA), 울트라 모바일 개인용 컴퓨터(UMPC), 모바일 핸드셋, 네트워킹 디바이스, 및 전자 계산 디바이스 중 하나에서 동작하도록 구성된,
방법.
17. The method of claim 16,
The integrated circuit is configured to operate in one of a personal computer, a laptop computer, a personal digital assistant (PDA), an ultra mobile personal computer (UMPC), a mobile handset, a networking device, and an electronic computing device,
Way.
집적 회로로서,
송신 모드 및 수신 모드 중 하나의 모드에서 동작을 개시하도록 집적 회로 상에서 테스트 프로그램의 명령들을 실행하기 위한 수단;
상기 테스트 프로그램에 따라 상기 집적 회로의 코어 로직 회로와 통신하도록 프로세서에서 데이터를 포함하는 메시지를 생성하기 위한 수단;
상기 메시지를 상기 프로세서로부터 상기 코어 로직 회로로 전송하기 위한 수단;
상기 집적 회로의 테스트 로직 회로에서 상기 메시지를 스누핑하기 위한 수단;
상기 메시지가 유효한지 여부를 결정하기 위해 상기 테스트 로직 회로에서 상기 메시지를 평가하기 위한 수단 ― 상기 메시지는 프로토콜에 따라 통신되고, 그리고 상기 메시지를 평가하기 위한 수단은, 기준 데이터를 생성하기 위한 수단 및 상기 메시지가 상기 프로토콜과 일치하는지 여부에 대한 결정 및 상기 메시지와 연관된 데이터와 상기 기준 데이터의 비교 중 적어도 하나에 기초하여 상기 메시지를 평가하기 위한 수단을 포함함 ―; 및
상기 메시지가 유효한지 여부를 표시하는 상태 신호를 상기 테스트 로직 회로로부터 상기 프로세서로 제공하기 위한 수단을 포함하는,
집적 회로.
As an integrated circuit,
Means for executing instructions of a test program on an integrated circuit to initiate operation in one of a transmit mode and a receive mode;
Means for generating a message comprising data at a processor to communicate with a core logic circuit of the integrated circuit in accordance with the test program;
Means for sending the message from the processor to the core logic circuit;
Means for snooping the message in a test logic circuit of the integrated circuit;
Means for evaluating the message in the test logic circuit to determine whether the message is valid, the message being communicated according to a protocol, and the means for evaluating the message comprising: means for generating reference data; Means for evaluating the message based on at least one of a determination of whether the message conforms to the protocol and a comparison of the reference data with data associated with the message; And
Means for providing a status signal from the test logic circuit to the processor indicating whether the message is valid;
integrated circuit.
삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 제 30 항에 있어서,
상기 명령들을 실행시키기 위한 수단은 상기 송신 모드에서 동작을 개시하기 위하여 상기 프로세서에서 상기 테스트 프로그램의 명령들을 실행시키기 위한 수단을 포함하고, 상기 집적 회로는,
상기 메시지에 기초하여 상기 코어 로직 회로에서 제 2 메시지를 생성하기 위한 수단;
상기 메시지를 외부 디바이스로 제공하기 위하여 상기 제 2 메시지를 상기 집적 회로의 핀 인터페이스로 전송하기 위한 수단;
상기 테스트 로직 회로에서 상기 제 2 메시지를 스누핑하기 위한 수단;
상기 제 2 메시지가 유효한지 여부를 결정하기 위해 상기 테스트 로직 회로에서 상기 제 2 메시지를 평가하기 위한 수단; 및
상기 제 2 메시지가 유효한지 여부를 표시하는 제 2 상태 신호를 상기 테스트 로직 회로로부터 상기 프로세서로 제공하기 위한 수단을 더 포함하는,
집적 회로.
31. The method of claim 30,
Means for executing the instructions includes means for executing instructions of the test program at the processor to initiate operation in the transmission mode, wherein the integrated circuit comprises:
Means for generating a second message in the core logic circuit based on the message;
Means for sending the second message to a pin interface of the integrated circuit to provide the message to an external device;
Means for snooping the second message in the test logic circuit;
Means for evaluating the second message in the test logic circuit to determine whether the second message is valid; And
Means for providing a second status signal from the test logic circuit to the processor indicating whether the second message is valid;
integrated circuit.
제 30 항에 있어서,
상기 명령들을 실행시키기 위한 수단은 상기 수신 모드에서 동작을 개시하기 위하여 상기 프로세서에서 상기 테스트 프로그램의 명령들을 실행시키기 위한 수단을 포함하고, 상기 집적 회로는,
상기 메시지에 기초하여 상기 코어 로직 회로에서 제 2 메시지를 생성하기 위한 수단;
상기 제 2 메시지를 외부 디바이스로 제공하기 위하여 상기 제 2 메시지를 상기 코어 로직 회로로부터 핀 인터페이스로 전송하기 위한 수단;
상기 테스트 로직 회로에서 상기 제 2 메시지를 스누핑하기 위한 수단;
상기 제 2 메시지에 기초하여 상기 테스트 로직 회로에서 제 3 메시지를 생성하기 위한 수단; 및
상기 제 3 메시지를 상기 테스트 로직 회로로부터 상기 코어 로직 회로로 전송하기 위한 수단을 더 포함하고,
상기 테스트 로직 회로는 상기 외부 디바이스를 에뮬레이트하는,
집적 회로.
31. The method of claim 30,
Means for executing the instructions includes means for executing instructions of the test program at the processor to initiate operation in the receive mode, wherein the integrated circuit comprises:
Means for generating a second message in the core logic circuit based on the message;
Means for sending the second message from the core logic circuit to a pin interface to provide the second message to an external device;
Means for snooping the second message in the test logic circuit;
Means for generating a third message in the test logic circuit based on the second message; And
Means for sending the third message from the test logic circuit to the core logic circuit,
The test logic circuit emulates the external device,
integrated circuit.
제 37 항에 있어서,
상기 제 3 메시지에 기초하여 상기 코어 로직 회로에서 제 4 메시지를 전송하기 위한 수단;
상기 제 4 메시지를 상기 코어 로직 회로로부터 상기 프로세서로 전송하기 위한 수단;
상기 제 4 메시지를 상기 테스트 로직 회로에서 스누핑하기 위한 수단;
상기 제 4 메시지가 유효한지 여부를 결정하기 위해 상기 제 4 메시지를 상기 테스트 로직 회로에서 평가하기 위한 수단;
상기 제 4 메시지가 유효한지 여부를 표시하는 제 2 상태 신호를 상기 테스트 로직 회로로부터 상기 프로세서로 제공하기 위한 수단을 더 포함하는,
집적 회로.
39. The method of claim 37,
Means for sending a fourth message in the core logic circuit based on the third message;
Means for sending the fourth message from the core logic circuit to the processor;
Means for snooping the fourth message in the test logic circuit;
Means for evaluating the fourth message in the test logic circuit to determine whether the fourth message is valid;
Means for providing a second status signal from the test logic circuit to the processor indicating whether the fourth message is valid;
integrated circuit.
삭제delete 삭제delete 삭제delete 제 30 항에 있어서,
상기 메시지와 관련된 응답 메시지를 상기 코어 로직 회로에서 생성하기 위한 수단, 상기 응답 메시지를 상기 프로세서로 전송하기 위한 수단, 상기 응답 메시지를 상기 테스트 로직 회로에서 평가하기 위한 수단, 및 상기 응답 메시지가 유효한지 여부를 표시하는 제 2 상태 신호를 상기 테스트 로직 회로에서 생성하기 위한 수단을 더 포함하는,
집적 회로.
31. The method of claim 30,
Means for generating a response message associated with the message in the core logic circuit, means for sending the response message to the processor, means for evaluating the response message in the test logic circuit, and the response message is valid. Means for generating, in said test logic circuit, a second status signal indicating whether or not;
integrated circuit.
삭제delete 컴퓨터에 의해 실행가능한 명령들을 저장하는 컴퓨터-판독가능 매체로서, 상기 명령들은,
송신 모드 및 수신 모드 중 하나의 모드에서 동작을 개시하도록 상기 컴퓨터에 의해 실행가능한 명령들;
테스트 프로그램에 따라 집적 회로의 코어 로직 회로와 통신하기 위해 프로세서의 데이터를 포함하는 메시지를 생성하도록 상기 컴퓨터에 의해 실행가능한 명령들;
상기 프로세서로부터 상기 코어 로직 회로로 상기 메시지를 전송하도록 상기 컴퓨터에 의해 실행가능한 명령들;
상기 메시지를 상기 집적 회로의 테스트 로직 회로에서 스누핑하도록 상기 컴퓨터에 의해 실행가능한 명령들;
상기 메시지가 유효한지 여부를 결정하기 위해 상기 테스트 로직 회로에서 상기 메시지를 평가하도록 상기 컴퓨터에 의해 실행가능한 명령들 ― 상기 메시지는 프로토콜에 따라 통신되고, 그리고 상기 메시지를 평가하도록 상기 컴퓨터에 의해 실행가능한 명령들은, 기준 데이터를 생성하도록 상기 컴퓨터에 의해 실행가능한 명령들 및 상기 메시지가 상기 프로토콜과 일치하는지 여부에 대한 결정 및 상기 메시지와 연관된 데이터와 상기 기준 데이터의 비교 중 적어도 하나에 기초하여 상기 메시지를 평가하도록 상기 컴퓨터에 의해 실행가능한 명령들을 포함함 ―; 및
상기 메시지가 유효한지 여부를 표시하는 상태 신호를 상기 테스트 로직 회로로부터 상기 프로세서로 제공하도록 상기 컴퓨터에 의해 실행가능한 명령들을 포함하는,
컴퓨터-판독가능 매체.
A computer-readable medium for storing instructions executable by a computer, the instructions comprising:
Instructions executable by the computer to initiate operation in one of a transmission mode and a reception mode;
Instructions executable by the computer to generate a message comprising data of a processor for communicating with a core logic circuit of an integrated circuit in accordance with a test program;
Instructions executable by the computer to send the message from the processor to the core logic circuitry;
Instructions executable by the computer to snoop the message from a test logic circuit of the integrated circuit;
Instructions executable by the computer to evaluate the message in the test logic circuit to determine whether the message is valid—the message is communicated according to a protocol and executable by the computer to evaluate the message The instructions may be adapted to generate the reference data based on at least one of instructions executable by the computer to determine whether the message matches the protocol and comparison of the reference data with the data associated with the message. Instructions executable by the computer to evaluate; And
Instructions executable by the computer to provide a status signal from the test logic circuit to the processor indicating whether the message is valid,
Computer-readable media.
삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 제 44 항에 있어서,
상기 메시지에 기초하여 제 2 메시지를 상기 코어 로직 회로에서 생성하도록 상기 컴퓨터에 의해 실행가능한 명령들;
상기 제 2 메시지를 테스트 로직 회로에서 스누핑하도록 상기 컴퓨터에 의해 실행가능한 명령들;
상기 메시지가 유효한지 여부를 결정하기 위해 상기 테스트 로직 회로를 평가하도록 상기 컴퓨터에 의해 실행가능한 명령들; 및
상기 제 2 메시지가 유효한지 여부를 표시하는 제 2 상태 신호를 상기 테스트 로직 회로로부터 상기 프로세서로 제공하도록 상기 컴퓨터에 의해 실행가능한 명령들을 더 포함하는,
컴퓨터-판독가능 매체.
45. The method of claim 44,
Instructions executable by the computer to generate a second message in the core logic circuit based on the message;
Instructions executable by the computer to snoop the second message in a test logic circuit;
Instructions executable by the computer to evaluate the test logic circuit to determine whether the message is valid; And
Further instructions executable by the computer to provide a second status signal from the test logic circuit to the processor indicating whether the second message is valid;
Computer-readable media.
제 44 항에 있어서,
상기 메시지에 기초하여 제 2 메시지를 상기 코어 로직 회로에서 생성하도록 상기 컴퓨터에 의해 실행가능한 명령들;
상기 제 2 메시지를 외부 디바이스로 제공하기 위해 상기 제 2 메시지를 상기 코어 로직 회로로부터 핀 인터페이스로 전송하도록 상기 컴퓨터에 의해 실행가능한 명령들;
상기 테스트 로직 회로에서 상기 제 2 메시지를 스누핑하도록 상기 컴퓨터에 의해 실행가능한 명령들;
상기 제 2 메시지에 기초하여 제 3 메시지를 상기 테스트 로직 회로에서 생성하도록 상기 컴퓨터에 의해 실행가능한 명령들; 및
상기 제 3 메시지를 상기 테스트 로직 회로로부터 상기 코어 로직 회로로 전송하도록 상기 컴퓨터에 의해 실행가능한 명령들을 더 포함하고,
상기 테스트 로직 회로는 상기 외부 디바이스를 에뮬레이트하는,
컴퓨터-판독가능 매체.
45. The method of claim 44,
Instructions executable by the computer to generate a second message in the core logic circuit based on the message;
Instructions executable by the computer to send the second message from the core logic circuit to a pin interface to provide the second message to an external device;
Instructions executable by the computer to snoop the second message in the test logic circuit;
Instructions executable by the computer to generate a third message in the test logic circuit based on the second message; And
Further instructions executable by the computer to send the third message from the test logic circuit to the core logic circuit,
The test logic circuit emulates the external device,
Computer-readable media.
제 51 항에 있어서,
상기 제 3 메시지에 기초하여 제 4 메시지를 상기 코어 로직 회로에서 생성하도록 상기 컴퓨터에 의해 실행가능한 명령들;
상기 제 4 메시지를 상기 코어 로직 회로로부터 상기 프로세서로 전송하도록 상기 컴퓨터에 의해 실행가능한 명령들;
상기 테스트 로직 회로에서 상기 제 4 메시지를 스누핑하도록 상기 컴퓨터에 의해 실행가능한 명령들;
상기 제 4 메시지가 유효한지 여부를 결정하기 위해 상기 테스트 로직 회로에서 상기 제 4 메시지를 평가하도록 상기 컴퓨터에 의해 실행가능한 명령들; 및
상기 제 4 메시지가 유효한지 여부를 표시하는 제 2 상태 신호를 상기 테스트 로직 회로로부터 상기 프로세서로 제공하도록 상기 컴퓨터에 의해 실행가능한 명령들을 더 포함하는,
컴퓨터-판독가능 매체.
52. The method of claim 51,
Instructions executable by the computer to generate a fourth message in the core logic circuit based on the third message;
Instructions executable by the computer to send the fourth message from the core logic circuit to the processor;
Instructions executable by the computer to snoop the fourth message from the test logic circuit;
Instructions executable by the computer to evaluate the fourth message in the test logic circuit to determine whether the fourth message is valid; And
Further instructions executable by the computer to provide a second status signal from the test logic circuit to the processor indicating whether the fourth message is valid;
Computer-readable media.
삭제delete 삭제delete 삭제delete 제 44 항에 있어서,
상기 메시지와 관련된 응답 메시지를 상기 코어 로직 회로에서 생성하도록 상기 컴퓨터에 의해 실행가능한 명령들;
상기 응답 메시지를 상기 프로세서로 전송하도록 상기 컴퓨터에 의해 실행가능한 명령들;
상기 응답 메시지를 상기 테스트 로직 회로에서 평가하도록 상기 컴퓨터에 의해 실행가능한 명령들; 및
상기 응답 메시지가 유효한지 여부를 표시하는 제 2 상태 신호를 상기 테스트 로직 회로에서 생성하도록 상기 컴퓨터에 의해 실행가능한 명령들을 더 포함하는,
컴퓨터-판독가능 매체.
45. The method of claim 44,
Instructions executable by the computer to generate a response message in the core logic circuit associated with the message;
Instructions executable by the computer to send the response message to the processor;
Instructions executable by the computer to evaluate the response message in the test logic circuit; And
Further instructions executable by the computer to generate, in the test logic circuit, a second status signal indicating whether the response message is valid;
Computer-readable media.
삭제delete 집적회로를 포함하는 시스템으로서,
상기 집적회로는:
테스트 프로그램의 명령들을 실행하도록 동작하는 프로세서 ― 상기 프로세서는 데이터를 포함하는 메시지를 생성하도록 동작함 ― ;
버스를 통해 상기 프로세서로 연결되는 인터페이스 제어기 ― 상기 인터페이스 제어기는 상기 테스트 프로그램에 따라 상기 프로세서로부터 상기 버스를 통해 상기 메시지를 수신하도록 동작함 ― ; 및
상기 프로세서 및 상기 인터페이스 제어기의 외부에 있는 테스트 로직 회로를 포함하고,
상기 테스트 로직 회로는 상기 버스에 연결되고, 상기 테스트 로직 회로는 상기 버스를 통해 전송되는 상기 메시지를 인터셉트(intercept)하도록 동작하고, 상기 테스트 로직 회로는 상기 메시지를 평가하고 상기 평가에 기초하여 상기 메시지가 유효한지 여부를 표시하는 상태 신호를 핀 인터페이스로 제공하며,
상기 메시지는 프로토콜에 따라 통신되고, 그리고 상기 테스트 로직 회로는, 기준 데이터를 생성하고 그리고 상기 메시지가 상기 프로토콜과 일치하는지 여부에 대한 결정 및 상기 메시지와 관련된 데이터와 상기 기준 데이터의 비교 중 적어도 하나에 기초하여 상기 메시지를 평가하는,
시스템.
A system comprising an integrated circuit,
The integrated circuit is:
A processor operative to execute instructions of a test program, the processor operative to generate a message comprising data;
An interface controller coupled to the processor via a bus, the interface controller operative to receive the message over the bus from the processor in accordance with the test program; And
A test logic circuit external to the processor and the interface controller,
The test logic circuit is coupled to the bus, the test logic circuit operates to intercept the message sent over the bus, the test logic circuit evaluating the message and based on the evaluation Provides a status signal to the pin interface indicating whether is valid.
The message is communicated according to a protocol, and the test logic circuit generates at least one of: generating reference data and determining whether the message conforms to the protocol and comparing the reference data with data associated with the message. To evaluate the message based on
system.
삭제delete 삭제delete 삭제delete 삭제delete 제 1 항에 있어서,
상기 프로세서는, 수신 모드에서 상기 테스트 프로그램의 명령들을 실행하고, 상기 테스트 로직 회로는, 상기 프로세서에 의해 제공된 상기 테스트 로직 회로에서의 시드(seed) 값에 기초하여, 프로토콜과 연관되는 제 2 데이터를 포함하는 제 2 메시지를 상기 코어 로직 회로로 전송하는,
집적 회로.
The method of claim 1,
The processor executes instructions of the test program in a receive mode, and the test logic circuitry is further configured to generate second data associated with the protocol based on a seed value in the test logic circuit provided by the processor. Sending a second message to the core logic circuit,
integrated circuit.
제 63 항에 있어서,
상기 코어 로직 회로는 상기 테스트 로직 회로로부터 수신된 상기 제 2 데이터에 기초하여 제 3 메시지를 생성하는,
집적 회로.
64. The method of claim 63,
The core logic circuit generates a third message based on the second data received from the test logic circuit;
integrated circuit.
제 1 항에 있어서,
상기 테스트 로직 회로는 상기 프로세서로부터 시드 값을 수신하고 제 2 데이터를 생성하는 의사 랜덤 데이터 생성기를 포함하고, 상기 제 2 데이터는 상기 테스트 프로그램에 의해 특정되는 테스트 데이터와 매치되는,
집적 회로.
The method of claim 1,
The test logic circuit comprises a pseudo random data generator for receiving a seed value from the processor and generating second data, the second data matching the test data specified by the test program,
integrated circuit.
제 65 항에 있어서,
상기 테스트 로직 회로는 검증 회로를 포함하고, 상기 검증 회로는 상기 메시지가 유효한지 여부를 결정하기 위해 상기 제 2 데이터를 상기 메시지로부터 스누핑된 데이터와 비교하는,
집적 회로.
66. The method of claim 65,
The test logic circuit comprises a verify circuit, the verify circuit comparing the second data with data snooped from the message to determine whether the message is valid,
integrated circuit.
제 16 항에 있어서,
상기 프로세서는 수신 모드에서 상기 테스트 프로그램의 명령들을 실행하고, 상기 방법은,
프로토콜에 의해 요구되는 제 2 데이터를 포함하는 제 2 메시지를 상기 테스트 로직 회로로부터 상기 코어 로직 회로로 전송하는 단계 ― 상기 제 2 메시지는 상기 프로세서에 의해 제공되는 상기 테스트 로직 회로에서의 시드 값에 기반함 ― 를 더 포함하는,
방법.
17. The method of claim 16,
The processor executes instructions of the test program in a receive mode, the method further comprising:
Sending a second message from the test logic circuit to the core logic circuit, the second message comprising second data required by a protocol, the second message being based on a seed value in the test logic circuit provided by the processor Further comprising:
Way.
제 67 항에 있어서,
상기 테스트 로직 회로로부터 수신된 상기 제 2 데이터에 기초하여 상기 코어 로직 회로에서 제 3 메시지를 생성하는 단계를 더 포함하는,
방법.
68. The method of claim 67,
Generating a third message in the core logic circuit based on the second data received from the test logic circuit,
Way.
제 16 항에 있어서,
상기 프로세서로부터 상기 테스트 로직 회로의 의사 랜덤 데이터 생성기에서의 시드 값을 수신하는 단계; 및
상기 의사 랜덤 데이터 생성기에서, 상기 테스트 프로그램에 의해 특정된 테스트 데이터와 매치되는, 제 2 메시지에 대응하는 제 2 데이터를 생성하는 단계를 더 포함하는,
방법.
17. The method of claim 16,
Receiving a seed value at the pseudo random data generator of the test logic circuit from the processor; And
In the pseudo random data generator, generating second data corresponding to a second message, which matches the test data specified by the test program,
Way.
제 69 항에 있어서,
상기 테스트 로직 회로의 검증 모듈에서, 상기 메시지가 유효하지 여부를 결정하기 위해 상기 제 2 데이터를 상기 메시지로부터 스누핑된 데이터와 비교하는 단계를 더 포함하는,
방법.
70. The method of claim 69,
In the verification module of the test logic circuit, further comprising comparing the second data with data snooped from the message to determine whether the message is valid,
Way.
제 58 항에 있어서,
상기 인터페이스 제어기는 상기 메시지에 기초하여 제 2 메시지를 생성하고 제 2 버스를 통해 외부 디바이스로 상기 제 2 메시지를 전송하고,
상기 테스트 로직 회로는 상기 제 2 버스로 연결되고, 상기 테스트 로직 회로는 상기 제 2 버스를 통해 상기 제 2 메시지를 인터셉트 하도록 동작하고, 상기 테스트 로직 회로는 상기 제 2 메시지를 평가하고 상기 제 2 메시지가 유효한지 여부를 표시하는 제 2 상태 신호를 상기 핀 인터페이스로 제공하고,
상기 테스트 로직 회로는 상기 제 2 메시지에 기초하여 제 3 메시지를 생성하고 상기 외부 디바이스를 에뮬레이트하기 위해 상기 제 2 버스를 통해 상기 인터페이스 제어기로 상기 제 3 메시지를 전송하도록 추가적으로 동작하는,
시스템.
59. The method of claim 58,
The interface controller generates a second message based on the message and sends the second message to an external device via a second bus,
The test logic circuit is coupled to the second bus, the test logic circuit is operative to intercept the second message via the second bus, the test logic circuit evaluates the second message and the second message Provide a second status signal to the pin interface indicating whether is valid;
The test logic circuit is further operative to generate a third message based on the second message and send the third message to the interface controller via the second bus to emulate the external device;
system.
제 71 항에 있어서,
상기 인터페이스 제어기는 상기 제 3 메시지에 기초하여 제 4 메시지를 생성하고 상기 버스를 통해 상기 프로세서로 상기 제 4 메시지를 전송하도록 동작하고, 그리고
상기 테스트 로직 회로는 상기 제 4 메시지를 평가하고 상기 제 4 메시지가 유효한지 여부를 표시하는 제 3 상태 신호를 상기 핀 인터페이스로 제공하는,
시스템.
The method of claim 71 wherein
The interface controller is operative to generate a fourth message based on the third message and send the fourth message to the processor via the bus; and
The test logic circuitry evaluates the fourth message and provides a third status signal to the pin interface indicating whether the fourth message is valid;
system.
KR1020107000661A 2007-06-14 2008-06-12 Integrated circuit with self-test feature for validating functionality of external interfaces KR101265116B1 (en)

Applications Claiming Priority (4)

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

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020137005441A Division KR20130040259A (en) 2007-06-14 2008-06-12 Integrated circuit with self-test feature for validating functionality of external interfaces

Publications (2)

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

Family

ID=39734919

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020107000661A KR101265116B1 (en) 2007-06-14 2008-06-12 Integrated circuit with self-test feature for validating functionality of external interfaces
KR1020137005441A KR20130040259A (en) 2007-06-14 2008-06-12 Integrated circuit with self-test feature for validating functionality of external interfaces

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020137005441A KR20130040259A (en) 2007-06-14 2008-06-12 Integrated circuit with self-test feature for validating functionality of external interfaces

Country Status (8)

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

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9004355B2 (en) * 2005-09-29 2015-04-14 Cardfree Inc Secure system and method to pay for a service provided at a reservation
US8622292B2 (en) * 2005-09-29 2014-01-07 Jeffrey Bart Katz Reservation-based preauthorization payment system
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 (en) * 2009-09-30 2011-04-14 Toshiba Corp Semiconductor integrated circuit
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 (en) * 2013-11-29 2015-06-03 英业达科技有限公司 System and method for testing connecting slot by using testing vector
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 (en) * 2015-07-08 2022-03-23 삼성전자주식회사 Auxiliary test device, test board having the same, and test method thereof
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
TW201935305A (en) * 2018-02-02 2019-09-01 美商多佛微系統公司 Systems and methods for post cache interlocking
CN112256512B (en) * 2020-10-27 2024-05-07 重庆航天工业有限公司 GLINK bus-based verification and test universal system
WO2023078573A1 (en) * 2021-11-08 2023-05-11 Advantest Corporation Automated test equipment, device under test, test setup methods using a measurement request
WO2023078571A1 (en) * 2021-11-08 2023-05-11 Advantest Corporation Automated test equipment, device under test, test setup methods using an acknowledge signaling
KR20230168801A (en) 2022-06-08 2023-12-15 와이아이케이 주식회사 Semiconductor test apparatus

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 (en) * 1990-05-22 1992-01-29 Nec Corp Bus interface diagnosis device
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 (en) 1995-11-29 2002-04-15 株式会社東芝 Controller / mass memory embedded semiconductor integrated circuit device, test method and use method thereof, and semiconductor integrated circuit device and test method therefor
JPH09223081A (en) 1996-02-16 1997-08-26 Fujitsu Ltd Verification system for external device interface
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 (en) 1997-02-07 1998-08-21 Mitsubishi Electric Corp Automatic logic verification system for lsi
US5991898A (en) * 1997-03-10 1999-11-23 Mentor Graphics Corporation Arithmetic built-in self test of multiple scan-based integrated circuits
DE19917884C1 (en) * 1999-04-20 2000-11-16 Siemens Ag Circuit with built-in self-test
US7036064B1 (en) * 2000-11-13 2006-04-25 Omar Kebichi Synchronization point across different memory BIST controllers
US7475312B2 (en) * 2003-07-09 2009-01-06 Nxp B.V. Integrated circuit (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 (en) * 2005-09-27 2010-12-15 株式会社東芝 Simulation apparatus and simulation method
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
US8484524B2 (en) 2013-07-09
EP2158495A1 (en) 2010-03-03
CN101680932B (en) 2013-11-20
KR20100027214A (en) 2010-03-10
ATE521903T1 (en) 2011-09-15
US20090055695A1 (en) 2009-02-26
WO2008157246A8 (en) 2010-04-15
TW200909829A (en) 2009-03-01
KR20130040259A (en) 2013-04-23
JP2010537156A (en) 2010-12-02
EP2158495B1 (en) 2011-08-24
CN101680932A (en) 2010-03-24
WO2008157246A1 (en) 2008-12-24

Similar Documents

Publication Publication Date Title
KR101265116B1 (en) Integrated circuit with self-test feature for validating functionality of external interfaces
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 (en) Method and apparatus for multi-interface debugging in an electronic system
US7047458B2 (en) Testing methodology and apparatus for interconnects
US10203371B2 (en) Methods and systems for generating functional test patterns for manufacture test
CN115146568B (en) Chip verification system and verification method based on UVM
US11828787B2 (en) Eye diagram capture test during production
CN112269120A (en) Interface signal loop test method and device, computer equipment and storage medium
US10762029B2 (en) Electronic apparatus and detection method using the same
US7650540B2 (en) Detecting and differentiating SATA loopback modes
US20240095366A1 (en) Secure boot apparatus and method
CN115496018A (en) Multi-version verification method, device and equipment for SoC (System on chip)
CN109102436A (en) The soft core property right protection of IP and infringement identification method based on USB3.0 agreement TS1 training sequence
CN109214144A (en) The soft core property right protection of IP and infringement identification method based on USB3.2 agreement TS2 training sequence
TWI234705B (en) Detecting method for PCI system
CN105589530B (en) Electronic system and method for managing use of semiconductor chip
CN109214143A (en) The soft core property right protection of IP and infringement identification method based on USB3.2 agreement TS1 training sequence
US20240118340A1 (en) Processor test pattern generation and application for tester systems
CN109165482A (en) The soft core property right protection of IP and infringement identification method based on USB3.1 agreement TS1 training sequence
US20240094287A1 (en) Low power environment for high performance processor without low power mode
CN109165481A (en) The soft core property right protection of IP and infringement identification method based on USB3.0 agreement TS2 training sequence
CN109145527A (en) The soft core property right protection of IP and infringement identification method based on USB3.1 agreement TS2 training sequence
US7206556B1 (en) Wireless transmitter control lockout
CN114297982A (en) UVM-based SPI bus verification method and system

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