KR100883392B1 - 다양한 시리얼 버스 타입의 시뮬레이션, 에뮬레이션 및테스트를 위한 범용 방법 - Google Patents

다양한 시리얼 버스 타입의 시뮬레이션, 에뮬레이션 및테스트를 위한 범용 방법 Download PDF

Info

Publication number
KR100883392B1
KR100883392B1 KR1020057001894A KR20057001894A KR100883392B1 KR 100883392 B1 KR100883392 B1 KR 100883392B1 KR 1020057001894 A KR1020057001894 A KR 1020057001894A KR 20057001894 A KR20057001894 A KR 20057001894A KR 100883392 B1 KR100883392 B1 KR 100883392B1
Authority
KR
South Korea
Prior art keywords
serial bus
bus
data
serial
processors
Prior art date
Application number
KR1020057001894A
Other languages
English (en)
Other versions
KR20050043900A (ko
Inventor
에릭 엘 트루벤베취
마이클 맥골드릭
텅 엘 엔쥐
이브제니 폴리야코브
Original Assignee
테라딘 인코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 테라딘 인코포레이션 filed Critical 테라딘 인코포레이션
Publication of KR20050043900A publication Critical patent/KR20050043900A/ko
Application granted granted Critical
Publication of KR100883392B1 publication Critical patent/KR100883392B1/ko

Links

Images

Classifications

    • 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/261Functional testing by simulating additional hardware, e.g. fault simulation
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Debugging And Monitoring (AREA)

Abstract

시리얼 버스의 테스트 장비를 위한 전자장치는 시리얼 버스를 개별적인 프로세서에 의해 처리되는 개별적인 레이어들로 분류하는 범용 버스 모델을 사용한다. 상기 프로세서들은 하나의 타입의 시리얼 버스를 통해 통신하도록 프로그램되거나 다른 타입의 시리얼 버스를 통해 통신하도록 재프로그램되는 파라미터를 갖는다.

Description

다양한 시리얼 버스 타입의 시뮬레이션, 에뮬레이션 및 테스트를 위한 범용 방법{Universal Approach for Simulating, Emulating, and Testing a Variety of Serial Bus Types}
본 발명은 전자 장비에 사용되는 자동화 테스트 장치에 관한 것이다. 보다 구체적으로, 본 발명은 폭넓은 다양한 시리얼 버스 타입의 시뮬레이션, 에뮬레이션 및 테스트에 적합한 장치에 관한 것이다 .
디지털 시리얼 링크 (digital serial link)는 널리 디지털 시스템의 전자 장치간의 통신을 가능하도록 하는데 사용된다. 디지털 시리얼 링크에서, 송신기는 와이어, 광섬유(optical fiber) 또는 다른 전송매체(transmission medium)를 통해 디지털 데이터를 수신기로 송신하며 수신기는 원본 데이터를 수신하고 이를 재구성(reconstruct) 한다. 시리얼 데이터 링크(serial data link)는 프로그래밍 코드나 제어신호와 마찬가지로 정적정보(static information)등을 포함하는 임의의 어떠한 데이터를 송수신(communicate)하는데 사용될 수 있다.
시리얼 버스란 통신에 있어서의 구조(예를 들어, 매체, 인코딩, 데이터 포맷, 속도 등)를 정의하는 디지털 시리얼 링크를 말한다. 싱글 데이터 신호를 이용 하여 통신이 이루어지므로 시리얼 버스는 시스템의 서로 다른 파트(part)를 연결하는 와이어의 수를 감소시킬 필요가 있는 경우에 적용하기 유용하다. 이러한 적용에는 디지털 전화(digital telephony)와 같은 장거리 통신에의 적용, 비행기나 자동차와 같이 무게를 최소화하는 것이 바람직한 분야에의 적용이나 적은 수의 와이어를 가진 작은 케이블(small cable)과 적은 수의 접점(contact)을 가지는 작은 커텍터(small connector)를 사용하는 것이 바람직한 분야에의 적용 등이 있다.
시리얼 버스는 일반적으로 디지털 데이터를 수신(take)하여 직렬화(serialize)하며, 필요한 경우 에러 검출 및 교정을 위한 콘텐트(content)를 삽입하며, 신호를 변조하고(가격, 노이즈에 대한 둔감도, 전력 등을 최적화하기 위하여), 데이터를 매체를 통해 전송하는 단계를 포함한다. 데이터를 수신하는 경우 상기 단계의 역과정이 일어난다. 상기 기능을 수행하는 방법에는 매우 다양한 방법이 있다. 사용되고 있는 매우 많은 주문형(applications-specific) 시리얼 버스와 함께 매우 많은 수의 표준(standard) 시리얼 버스가 이 방법의 유연성(flexibility)을 보장(attest)하고 있다.
싱글 데이터 신호뿐만 아니라, 시리얼 버스는 비데이터(non-data) 지원(support) 신호를 사용한다. 이러한 신호들은 데이터의 전송을 지원하지만 실제적으로 전송되는 데이터를 보상하지 않는다. 이러한 비데이터 지원 신호들은 보통 다음을 포함한다.
ㆍ핸드세이킹신호들(Handshaking signals) - 수신기와 송신기 사이에 데이터가 준비(ready)되었거나 데이터를 수신할 수 없다거나 전송이 시작되거나 종료되었 음을 신호화(signaling)함으로써 데이터 흐름을 조정하는 전용(dedicated) 신호이다.
ㆍ클럭(Clocks) - 신호의 타이밍 정보를 제공하는 신호, 즉 버스에 실린 심볼(symbol)이 안정적이거나 수신 대기가 가능하도록 한다. 클록은 또한 데이터가 전송 대기 또는 전송 대기가 아닐 때 턴 온 및 턴 오프 됨으로써 핸드쉐이킹(handshaking) 기능을 제공할 수 있다.
ㆍ싱크 신호(sync signals) - 데이터 전송의 시작(또는 종료)를 나타내는 제한적인 용법의 핸드쉐이킹(handshaking) 신호이다.
ㆍ엔빌로프 신호(Envelope signals) - 전송 중에 데이터가 유효(valid)한 때를 알려주는 제한적인 용법의 핸드쉐이킹(handshaking) 신호이다.
여기서 대기(air) 또는 공간을 통한 무선 전송은 시리얼 전송으로 간주된다. 시리얼 버스에 관한 정의는 싱글 심볼(single symbol)(데이터의 가장 작은 단위)의 데이터의 1 비트 이상을 인코딩하는 것을 포함한다. 이 경우 심볼의 인코딩은 필연적으로 비이진(non-binary)이다. 즉, 하나의 심볼에서의 비트들은 전압 크기, 위상 또는 주파수를 가변시킴으로써 표시된다. 심볼이 싱글 신호를 통해 멀리 전송될 수 록, 이러한 심볼을 전송하는 버스는 시리얼 버스가 될 수 있다.
오늘날 무수히 많은 서로 다른 시리얼 버스가 사용되고 있으며 이들 중 대다수가 싱글 어플리케이션에 사용되도록 개발되어 왔다. 현대식 항공기는 수백가지 실례(instances)의 시리얼 버스들와 수십가지의 서로 다른 시리얼 버스 타입을 사용한다. 이는 자동차와 같은 대형 시스템(large system) 또는 원자력 발전소 등과 같은 고정된 시스템(fixed system)에서도 마찬가지이다. 서로 다른 버스들은 대체로 데이터의 인코딩, 데이터 전송 타이밍, 신호화(signaling) 및 제어, 에러 검출 및 교정, 매체(medium)에서의 데이터 신호 변조등에 있어 서로 다른 방법을 사용한다. 어떠한 버스는 단일방향이고 다른 버스는 양방향이다. 어떠한 버스는 P2P(point-to-point) 방식이고 어떠한 버스는 멀티드롭(multi-drop) 방식이다. 어떠한 버스는 핸드쉐이킹(handshaking), 엔벨로프(envelope) 또는 동기(sync) 신호를 포함한다. 다른 버스는 시리얼 데이터열에서 이들 모두를 인코딩한다. 어떤 버스들은 단순한 데이터 전송만을 수행한다. 다른 버스들은 자신의 정의안에 응답 시간, 충돌 감지 및 예방, 에러에 대한 재시도 및 다중 단말기 중계(multiple terminal broadcast)등과 같은 하이 레벨 기능들을 포함한다.
이러한 버스 타입과 특징의 광범한 종류로 인하여 시리얼 버스의 콘트롤, 테시트 및 유지를 표준화(standardize)하는 것이 어려워지게 되었다. 시리얼 버스가 여러 복잡한 시스템의 중추(spine)를 형성하므로, 시리얼 버스의 관찰 및 제어는 시리얼 버스가 속한 시스템을 관찰 및 제어하는 주요한 방법이 될 수 있다. 서로 다른 버스와 인터페이스하는데 범용성(universality)이 요구되며 현 상황은 다음과 같이 요약될 수 있다.
ㆍ복잡한 시스템은 시리얼 버스의 다양한 예(instances)와 종류를 가진다.
ㆍ수 백가지의 표준 시리얼 버스와 알려지지 않은(untold) 수의 커스텀(custom) 시리얼 버스가 오늘날 사용되고 있다.
ㆍ복잡한 시스템을 테스트하고 디버깅(debugging)하며 콘트롤할 수 있도록 시리얼 버스를 제어하는 것이 요구된다.
ㆍ현재 알려진 어떠한 기구(instrument)나 회로도 몇 개 이상의 버스 종류(variations)와 인터페이스 할 수 없으며, 몇 개 이상의 버스 타입을 제어하는데 필요한 성능을 가지는 기구(instrument)도 존재하지 않다.
ㆍ따라서, 복잡한 시스템은 수개 내지 수십가지의 서로 다른 독립적인 시리얼 버스 인터페이스를 보통 통합한다.
ㆍ비표준(nonstandard) 버스들은 상당한 시간과 비용을 요하는 커스텀화된(customized) 인터페이스를 요할때가 종종 있다.
이러한 문제에 대해 다음과 같은 기능을 가지는 회로 또는 기구(instrument)가 이를 해결할 수 있을 것이다.
ㆍ표준 시리얼 버스들을 제어할 것
ㆍ새로운 커스텀(custom) 인터페이스를 만들지 않고서 커스텀 시리얼 버스를 제어하도록 구성 또는 프로그램될 것
ㆍ이러한 어플리케이션에 사용되는 현재 이용가능한(available) 방법과 마찬가지로 사용하기 용이할 것
현재, 다른 타입의 버스들과 인터페이스하는 기술은 ⅰ) 주문형(applications-specific) 기구(instrument)를 사용하는 단계와 ⅱ) 임의의 시리얼 파형 생성기(waveform generator)를 사용하는 단계를 포함한다. 표준 버스를 제어하는 가장 보편적인 방법, 즉 다양한 어플리케이션에 사용되는 형식 정의(formal definition)를 갖는 방법은 주문형(applications-specific) 기구(instrument)에 있 다. 주문형(applications-specific) 기구(instrument)란 특정 버스 종류를 제어하도록 특별히 고안된 기구(instrument) 또는 다른 인터페이스를 말한다. 이러한 많은 기구(instrument)들이 대중적(popular)인 버스에 대해 현재 사용가능하다.
주문형(applications-specific) 기구(instrument)는 보통 정의된 편차(variation)를 갖는 한정된 표준 버스들에 대해 인터페이스가 가능하다. 예를 들어, TIA/EIA-232 (즉, RS-232)는 보통 용인되는 복수개의 동작 속도, 워드(word) 길이 및 동작 전압 레벨을 갖는다. RS-232에 대한 대부분의 주문형(applications-specific) 기구(instrument)는 이러한 한정된 편차(variation)들을 허용하는 대체구성(alternate configurations)을 포함한다. 그러나 상기 기구들이 기설정된 편차 중 하나를 선택할 수 있다 하더라도 이들은 인터페이스를 자세히 콘트롤하지 못한다. 예를 들어, RS-422는 RS-232에 비해 장거리와 높은 전송 속도를 위한 차동 신호를 사용한다는 점을 제외하고 동일하다. 따라서, 기구는 RS-422와 RS-232 인터페이스 모두를 통합(incorporate)하여 사용자로 하여금 둘 중 하나를 선택할 수 있도록 할 수 있다. 그러나, 상기 기구는 사양(specification)에 넓은 범위의 변화를 허용하지 않는다.
도 1은 주문형(applications-specific) 기구(instrument)를 간략화한 블록 다이어그램이다. 데이터를 정의된 버스 표준에 따라 처리하는 기구에 데이터가 유입 및 유출된다. 몇 개의 파라미터(A, B, C)들은 특정 버스 특성(bus characteristics)을 선택하도록 정적으로(statiscally) 규정되어 있다.
상기 주문형(applications-specific) 기구(instrument)는 사용이 쉬운 이점 이 있다. 상기 주문형 기구는 한정된 버스들에 대해 에뮬레이트(elmulate)하도록 설계되었으므로 셋업(setup)이 거의 필요하지 않다. 사용자는 버스 사양(specification)에 대해 고려하지 않고서 송수신될 데이터에 대해서 집중할 수 있다. 또한, 주문형 기구는 어느 정도의 유연성(flexibility)을 제공할 수 있다. 기구 설계자가 복수의 가능한 사용을 예상할 수 있다면 이와 같이 설계할 수 있으며 사용자는 이용가능한 변종(variation) 가운데 선택할 수 있다. 그러나 추가되는 모든 특징(feature)들은 비용과 복잡도를 증가시킨다.
이러한 이점에도 불구하고 주문형(applications-specific) 기구(instrument)는 사실 범용적(universal)이지 않다. 주문형 기구는 설계자가 설계 당시 예상한 버스들만을 에뮬레이트할 수 있다. 많은 버스들을 에뮬레이트할수록, 기구의 크기와 복잡도는 더 커지며 결국 등가적으로 수 개의 기구와 마찬가지가 될 수 있다. 또한, 예상하지 못한 변경(variation)이 도입될 때마다 이를 에뮬레이트하고자 한다면 상기 기구는 재설계되야만 한다. 요약하면, 주문형 기구는 버스 에뮬레이션을 위한 보편적인 솔루션을 제공하지 못하고 사용의 편의를 위해 표준(standard)을 설정할 뿐이다.
현재, 시리얼 파형을 발생시키는데 가장 좋은 유연성은 도 2에 나타난 기술을 이용해서 얻어진다. 임의적인 파형 발생기(210)-시리얼 버스에 최적화된 것일 수 있는-는 그 성능 한계내에서 임의의 시리얼 열(stream)을 발생하는데 사용될 수 있다. 마찬가지로, 디지타이저(212)는 시리얼 버스 열을 캡쳐(capture)하고 디지털 데이터의 재구성을 위해 저장하는데 사용될 수 있다. 이러한 'Arb/Dig' 방법은 많 은 표준 및 커스텀 시리얼 버스에 대하여 데이터의 생성 및/또는 수신이 가능하게 한다. 또한 버스 성능이 마진(margine)되는 이점을 가져다준다. 즉, 속도, 전압 레벨 및 슬류 레이트 (slew rate)와 같은 파라미티들이 소스(source) 데이터를 가변시킴으로써 제어될 수 있다.
그러나 상기 'Arb/Dig' 방법은 사용하기 어려운 경향이 있다. 시리얼 데이터는 일반적으로 아날로그 파형 레벨에서 규정되고 해석(interpreted)되야한다. 또한, 이 방법은 기대하는 만큼 융통적(flexible)이지 않다. 예를 들어, 1워드 당 데이터 비트의 수가 조금만 변하더라도 스크레치(scratch)로부터 아날로그 파형 전체를 재생성해야 할 필요가 있을 수 있다. 또한, 이 방법은 실시간(real-time) 제어를 제공하지 못한다. 데이터 전송 및 분석이 보통 메모리로부터의 처리 전/후에 일어나기 때문에 상기 'Arb/Dig' 방법은 핸드쉐이킹 또는 다른 실시간 응답을 위해 고유하게(inherently) 설치(set up)되지 않는다. 또한, 'Arb/Dig' 방법의 동작 부분들(operative portions)은 입력 또는 출력 파형의 비트 레이트 (bit rate)에서 동작하며, 따라서 고속의 회로소자(circuitry)를 많이 필요로 한다. 고속 회로소자의 사용은 비용과 전력의 증가를 의미한다.
모든 가능한 시리얼 버스와 표준 또는 커스텀 시리얼 버스를 성능 범위(performance envelope)내에서 에뮬레이트할 수 있는 시리얼 버스 에뮬레이터가 요구된다. 상기 시리얼 버스 에뮬레이터는 핸드쉐이킹(handshaking), 동기(syncs), 클록(clocks) 그리고 제어 신호들을 처리할 수 있어야 한다. 상기 시리얼 버스 에뮬레이터는 아직 개발되지 않은 버스 변종(variations)에 대해 유연성 (flexibility)이 있어야 한다. 상기 시리얼 버스 에뮬레이터는 주문형(applications-specific) 기구와 같이 사용하기 쉬워야 하며 저렴(cost-effective)하고 컴팩트(compact)해야 한다.
상술한 배경기술에 대하여, 본 발명의 목적은 서로 다른 종류의 시리얼 버스에 대해 테스트를 수행하도록 용이하게 구성가능(configurable)한 테스트 장치를 제공하는 데 있다.
상기 목적을 달성하기 위하여, 다른 목적들과 이점들을 달성하기 위하여 마찬가지로, 시리얼 버스의 테스트 장비(testing equipment)를 위한 전자 장치(electronic apparatus)는 시리얼 버스를 개별적인 프로세서들에 의해 처리(manage)되는 개별적인 계층들(layers)로 분류하는 범용(generic) 버스 모델을 사용한다. 상기 프로세서들은 하나의 타입의 시리얼 버스를 경유하여 통신할 수 있도록 프로그램된 파라미터를 가지며, 다른 타입의 시리얼 버스를 경유하여 통신하도록 재프로그램(reprogram)될 수 있다.
도 1은 특정한 타입의 시리얼 버스와 장치(device)를 테스트하기 위해 종래 기술에 의한 특화된(specialized) 테스트 장비를 간략화한 블록 다이어그램이다.
도 2는 광범위한 서로 다른 시리얼 버스와 장치(device)를 테스트하기 위해 종래 기술에 의한 범용(general purpose) 테스트 장비를 간략화한 블록 다이어그램 이다.
도 3은 광범위한 서로 다른 시리얼 버스와 장치(device)를 테스트하기 위해 본 발명에 따른 버스 모델을 이용한 범용(general purpose) 테스트 장비를 간략화한 블록 다이어그램이다.
도 4는 도 3의 버스 모델의 일례를 나타내는 범용(generic) 블록 다이어그램이다.
도 5는 클록, 엔벨로프(envelope) 신호와 동기(sync) 신호들을 처리(managing)하기 위한 추가적인 구성 요소를 나타내는 도 3의 수정 도면이다.
도 6는 이벤트 버스와 핸드쉐이킹(handshaking) 구성요소를 나타내는 도 3의 수정 도면이다.

네트웍(network)에서 보통 통신 프로토콜을 계층(layer)으로 나눈다. 이 계층들은 네트웍 트래픽(traffic)을 조절하는 복잡한 문제를 처리하기 위해 작업(task)의 임의적 분할(division)을 형성할 수 있다. 가장 대중적(popular)인 방법은 7-layer OSI(Open Systems Interconnect, OSI) 모델이라 불린다. 시리얼 버스는 일반적으로 덜 복잡하지만 각기 자신의 계층(layer)을 갖는다. 본 발명은 이러한 계층의 존재를 인지(recognize)하고 각각의 구조 및 상호작용(interaction)의 범용(generic) 버스 모델을 생성한다.
도 3은 본 발명에 따른 일반적인 버스 모델(300)의 일례를 나타낸다. 버스 모델(300)은 시리얼 버스를 통해 데이터를 전송하기 위해 데이터에 수행되어야 하는 몇 개의 동작(operatoin)들이 있음을 반영한다. 데이터를 수신하는 경우에 실질적으로 동일한 동작이 역순으로 수행된다. 이러한 작용들은 단순한 "직렬화(serialization)" 즉, 병렬 데이터를 직렬 데이터로 직접 변환하는 것 보다 더 구체적이다. 모든 버스들이 도시된 동작들을 구비하는 것은 아니지만 적어도 일부는 모두 구비한다.
간단히 말하면, 데이터를 시리얼 버스에 실어 전송하기 위해서, 버스는 일반적으로 데이터가 '워드' 단위로 분류될 것을 요구한다. 어떤 버스들은 소위 '메세지'라고 하는 다중(multiple) 워드들로 상위 레벨(higher-level)에서 그룹핑하고 상기 다중(multiple) 워드를 차례로 '프레임(frame)'으로 그룹핑할 수 있다. 워드는 각각 데이터 전송, 에러 교정(correction), 동기화(synchronization), 충돌 감지 등의 특유한 기능을 갖는 '필드(field)'로 구분될 수 있다. 상기 필드(field)는 각각 하나 또는 그 이상의 '심볼(sysmbol)'을 포함할 수 있다. 각 심볼은 하나 또는 그 이상의 데이터 비트를 나타내거나 동기 패턴(synchronization pattern)등과 같이 비데이터(non-data) 정보를 나타낼 수 있다. 심볼의 형태(form)는 그들의 순서(sequence), 즉 선행 또는 뒤이은 심볼에 따라 변한다. 발신(outgoing) 데이터는 전송되기 전에 '인코딩(encoding)'될 수 있다. 그러면, 심볼의 추상적인 표시(abstract representation)는 물리적인 '파형(waveshape)'으로 변형된다. '타이밍(timing)'이 상기 파형에 인가되고 전압 또는 전류 레벨이 변조되어 상기 시리얼 비트 열을 생성한다.
시리얼 비트 열을 수신하는 경우에 실질적으로 동일한 동작이 역순으로 일어난다. 먼저 변조(modulation)가 해체(stripped off)된다. 데이터의 이동 속도와 무관하게 타이밍이 제거되어 일련의 심볼이 남는다. 각 심볼은 일반적으로 버스 타입에 특유한 가능한 심볼(possible symbol)들의 제한된 집합(set)에 따라 인식된다. 시퀀스 의존성(sequence dependencies)은 디코딩되어 제거되고 심볼들은 예상 필드에 따라 그룹핑된다. 필드는 예상 워드 포맷에 따라 그룹핑된다. 마지막으로, 워드는 메시지로 조합되고 메시지는 프레임으로 조합된다.
이들 동작 중 시리얼 데이터의 송수신에 관련된 적어도 일부 동작들은 모든 시리얼 버스에 있어 어떠한 방식(fashion)에 따라 내재적으로 수행된다. 상기 버스 모델(300)은 이들 동작을 명백하게 인식하여 이들을 분류(categorize)하며 차례로 배열(sequence)하고, 이들 간의 관계를 정의한다. 구체적으로, 상기 버스 모델은 다음과 같은 기능을 수행한다.
ㆍ시리얼 버스 전송을 이들 또는 유사한 컴포넌트(component)로 분류
ㆍ각 컴포넌트에 연관된 변수들을 식별(identify)
ㆍ상기 컴포넌트를 정렬하고 이들간의 상호관계를 정의
ㆍ이들 데이터 모두를 광범위한 서로 다른 버스들을 에뮬레이트, 실행(exercise), 시뮬레이트 또는 테스트하기 위해 구현되는 모델로 캡슐화(encapsulate)
각 컴포넌트의 변수들의 리스트는 광범할 수 있다. 예를 들어, 각 필드에 대하여 심볼에서의 변수 길이, 변수에 포함된 심볼의 종류, 전송하는 정보의 종류(데이터, 에러 교정 등), 워드에서의 위치 그리고 에러 교정을 위한 계산(calculation)에 사용되는지 여부 등이 요구될 수 있다. 하나의 버스는 다양한 서로 다른 워드 종류를 지원할 수 있다. 서로 다른 워드 종류는 서로 다른 필드를 지원할 수 있다. 이렇게, 워드 타입에 따라 서로 다른 필드를 정의하는 것이 요구될 수 있다.
상기 버스 모델(300)은 많은 이점을 제공한다. 상기 버스 모델(300)은 독립적이고 점증적으로 규정가능한(specifiable) 엔티티(entity)이다. 이는 저장되고 검색(retrieve)할 수 있으며 편집(edit)할 수 있다. 버스 특성은 점증적으로(incrementally) 디스플레이되거나 다양한 방법으로 그룹핑되어 사용의 편의를 위해 표준 버스 사양(specification)에 따라 규정될 수 있다. 상기 버스 모델이 모든 버스의 동작 특성(operating characteristics)을 유한한(finite) 모델에 캡슐화( encapsulate)하므로, 커스텀(custom) 버스용 버스 모델은 단순히 일련의 질문에 답하는 것으로 구성될 수 있다. 버스 모델은 처음부터 새롭게 구성될 수 있고, 또는 예를 들어 '1 워드당 20 데이터 비트만을 가지는 RS-232와 같도록' 다른 모델의 표현으로 규정될 수 있다. 버스 모델은 특정 버스 표준에 적용되는 일부 파트(part), 또는 유저가 제어하고자 하는 파트(part)만을 나타내며 버스 사양(specification)의 복잡도(complexity)의 제어를 가능하게 한다.
상기 모든 버스 모델의 특성이 모든 버스들에 적용될 필요는 없다. 예를 들 어, 어떤 버스들은 심볼 인코딩에 있어 시퀀스 의존성(sequence dependencies)을 가지지 않을 수 있다. 이러한 경우, 상기 버스 모델은 단순히 상기 의존성이 없음(lack of that dependency)을 반영하거나 '널 특성(null characteristic)'을 나타내면 된다.
요약하면, 상기 버스 모델은 광범한 버스의 동작(behaviors)을 규정하는 범용적(universal)인 방법을 제공하는 이점이 있다. 버스 동작(behavior)은 유지(maintenance)와 이해의 편의를 위해 파라미터들로 그룹핑될 수 있다. 버스 동작(behavior)은 점증적으로(incrementally) 또는 다른 버스들과의 차이로 규정될 수 있다. 하나 또는 그 이상의 버스 파라미터는 다른 파라미터나 모델의 다른 파트(part)에 영향을 미치지 않으면서 쉽게 마진(margine)된다. 버스 규정은 상기 버스 에뮬레이터의 구현에 사용되는 기구들과 독립적이다. 특정 시리얼 버스의 파라미터들이 프로그램되면, 상기 버스는 인터페이스가 상기 버스에 커스텀 설계(custom-designed)된 것처럼 에뮬레이트된다.
도 4는 상기 버스 모델의 각 컴포넌트(component)에 사용되는 타입의 범용(generic) 프로세서(410)를 나타내는 간략화한 블록 다이어그램이다. 각 프로세서(410)는 데이터를 수신하기 위한 데이터 입력과 데이터 전송을 위한 데이터 출력을 가진다. 파라미터들 또는 변수들(412)의 그룹이 각 프로세서와 연관되어 상기 버스 모델의 상응하는 레벨의 버스 특성(characteristics)을 포착(capture)한다. 바람직하게, 각 프로세서(410)는 수행할 수 있는 동작(action)(414) 리스트를 갖는다. 이러한 동작들은 특정 입력 데이터, 핸드쉐이킹 또는 다른 제어 신호들, 다른 프로세 서에서 일어나는 사건(event), 또는 외부의 장비 또는 기구로부터의 사건(event) 또는 요청(request)에 응답하여 발생하는 동작(action)들을 포함한다.
바람직하게, 각 프로세서는 파라미터들의 제한된 집합(set)을 입력 데이터에 인가하는데에만 관여하며 그 결과는 출력 데이터를 경유하여 통과시킨다. 프로세서는 하드웨어, 소프트웨어 또는 이들 둘의 조합일 수 있다. 프로세서가 버스 모델에 정합(match)된다는 것이 중요하다. 이렇게, 버스 모델에 캡쳐된 특성은 처리될 필요 없이 프로세서에 바로 인가될 수 있다. 상기 버스 모델에 캡쳐된 각각의 특성(전압 레벨 또는 속도 등)은 다른 특성들에 영향을 주지 않으면서 제어될 수 있다.
상기 버스 모델은 시리얼 버스의 범용(universal) 에뮬레이터를 특정하는데 사용될 수 있다. 버스 모델은 어떠한 시리얼 버스를 그 컴포넌트(component) 각각의 특성을 규정함으로써 에뮬레이트할 수 있다. 프로세서에 모델의 각 컴포넌트를 할당(assign)함으로써, 어떠한 시리얼 버스도 각 프로세서의 동작을 규정함으로써 에뮬레이트할 수 있다.
바람직한 실시예에 따르면, 버스 모델의 각 컴포넌트에 대한 프로세서는 다른 모든 프로세서들과 독립적이다. 독립적인 프로세서들을 이용하여 버스 모델을 구현하는 방법은 많은 이점을 준다.
ㆍ높은 성능
ㆍ독립적인 프로세서가 병렬, 어셈블링(assembling), 디스어셈블링(disassembling) 시리얼 버스 열(stream)을 고속으로 처리한다.
ㆍ각 프로세서는 규정된 특성들에 작용하며 작고(small) 원할(streamline)하 도록 한다.
ㆍ하나의 프로세서를 변화시킴으로써만 하나의 파라미터가 변하거나 마지닝( margining)이 가능하다.
ㆍ각 프로세서는 수행하는 특정 기능에 대해 최적화될 수 있다. 예를 들어, 워드는 심볼처럼 빠르게 생성될 필요가 없고, 따라서 느리고 상대적으로 저렴한 기술을 이용하여 생성될 수 있다. 고속으로 동작해야 하는 프로세서들만이 고속 실행(implementation)을 요한다.
ㆍ관측성(observability)과 제어(control)가 향상된다. 프로세서간의 트래픽(traffic)을 모니터링함으로써, 시스템은 새로운 심볼이 생성되거나 어떠한 특정 타입의 심볼이 생성, 또는 워드가 수신되는 등의 경우에 이를 식별(identify)할 수 있다. 이는 시스템 성능 측정(measuring)과 에러 검출에 유리하다.
ㆍ많은 버스들이 에러 검출 및 복원(recovery)을 요한다. 프로세서에 의해 감지된 에러의 종류를 버스의 그 파트(part)를 처리하는 프로세서와 연관시킴으로써, 에러는 가장 먼저 실행가능한 시점(practicable point)에서 감지될 수 있다. 타이밍 에러는 일반적으로 가장 빠른 속도를 가진 타이밍 프로세서에 의해 조기에 감지(detect)될 수 있다. 버스 충돌 에러(collision errors)(부정확한 전압 레벨 또는 심볼)는 체인(chain)의 끝단이 아니라 수신기의 입력단에서 검출된다.
ㆍ에러 주입(injection). 파라미터를 동적으로(dynamically) 가변시킴으로써, 에러들은 체인의 다른 파트(part)의 변동을 요하지 않고 체인을 따라 어느 시점에서든지 주입(inject)될 수 있다. 예를 들어, 위조(spurious) 심볼은 워드 어셈 블리에 영향을 미치지 않으면서 심볼 인코더에 주입될 수 있다.
바람직한 실시예에 의하면, 각 프로세서는 상태 머신(state machine)으로 구현될 수 있다. 각 프로세서를 다중 쓰레드(multi-threaded) 컴퓨터 시스템의 개별적인 쓰레드(thread)로 구현하는 것도 바람직하다. 프로세서들은 시리얼 버스 신호의 아날로그 특성(예를 들어, 아날로그 회로 소자)을 처리하는 portion을 포함할 수 있다.
도 5에 도시된 바와 같이, 버스 모델은 클록, 동기(syncs), 엔벨로프(envelope) 등과 같은 버스의 비데이터(non-data) 신호들을 포함하도록 쉽게 확장가능(extendable)하다. 버스 모델을 컴포넌트와 이들간의 정의된 인터페이스들로 분리(segment)하므로, 비데이터(non-data) 신호들을 제어하는 기능은 실행(implementation)과 쉽게 연결된다. 예를 들어, 클록 출력은 발생될 타이밍 정보(timing information)만을 필요로 하고, 따라서 데이터 타이밍 전의 마지막 스테이지에만 연결될 필요가 있다. 유사하게, 엔벨로프(envelope)나 동기(sync) 출력은 전송되는 워드나 필드 프로세서(field processor)(318)에서 사용가능한 정보의 처음과 끝의 위치만을 알기 원한다. 상기 정보는 포착(pick up)되어 출력의 아날로그 특성에 따라 처리된다. 버스 모델의 구현을 이용하여 정보는 다른 프로세서를 거치면서 파형을 더 변경하거나 다른 전송된 신호의 처리 지연(processing delay)을 정합(match)한다. 역으로, 클록 입력은 심볼이 디코딩될 때만 변경되고 따라서 심볼 디코딩에만 영향을 미친다. 엔벨로프(envelope)나 동기(sync) 신호는 부가적인 타 이밍 정보를 더하기만 한다.
상기 버스 모델은 버스의 비데이터(non-data) 파트(part)에 적용될 수 있다. 상기 버스 모델은 전압이나 듀티 사이클과 같은 신호에 따라 고유한 버스의 일부 파트(part)만에 미쳐도(cover) 된다. 버스 모델의 공유 파트(part)는 리던던시(redundancy) 없이 여전히 모두에 적용된다. 만약 필드 길이가 변경된다면, 클록과엔벨로프(envelope)는 자동적으로 정합(match)되도록 확장(expand)된다. 입력 클록 주파수가 변하면 타이밍 정보를 알지 못하는 다른 스테이지들은 수정할 필요가 없다.
상기 버스 모델은 핸드쉐이킹(handshaking) 동작의 사양(specification)을 단순화한다. 핸드쉐이킹(handshaking) 신호는 데이터가 전송되거나 수신, 또는 송수신될 때 변경된다. 이들 신호는 즉각, 또는 다음 워드 또는 다음 프레임에서 인가된다. 데이터 교환(exchange)의 다른 상(aspect)들을 제어하는 복수 개의 핸드쉐이킹 신호가 있을 수 있다. 핸드쉐이킹 신호는 단방향성(unidirectional)이거나 양방향성(bidirectional)일 수 있다. 핸드쉐이킹은 추가적인 외부 신호 없이 데이터 스트림의 일부로서 일어날 수 있다. 근본적으로, 데이터 전송의 변이(variation)만큼의 핸드쉐이킹 편차들이 가능하다.
도 6는 핸드쉐이킹(handshaking)이 본 모델에서 얼마나 단순하고 융통성있게 구현되는지 나타내는 도면이다. 착신(incoming)되는 핸드쉐이킹 정보는 아날로그 수신기(648)로 입력되고 버스 모델의 모든 컴포넌트(312-326, 332-346)에 적용된다. 발신(outgoing)되는 핸드쉐이킹 정보는 핸드쉐이킹(handshaking) 컴포넌트 (626)를 거쳐서 아날로그 구동부(driver)(628)를 통하여 시리얼 버스로 출력된다. 핸드쉐이킹 정보는 필수적인 것은 아니지만 바람직하게 이벤트 버스(650)를 통하여 송수신된다. 상기 이벤트 버스(650)는 서로 다른 컴포넌트 뿐만 아니라 서로 다른 프로세서간의 통신을 용이하게 한다. 이는 상세히 후술하기로 한다.
다시 도 4를 참조하면, 각 프로세서(410)는 본 모델에 또다른 특성을 부가한다. 핸드쉐이크(handshake)에의 응답이다. 각 프로세서는 핸드쉐이크를 무시하거나 정지, 또는 이전 컴포넌트 또는 다음 컴포넌트로부터의 입력을 기다릴 수 있다. 마찬가지로, 발신(outgoing) 핸드쉐이크 신호는 임의의 어떠한 버스 모델의 컴포넌트로부터 정보를 수신할 수 있다. 각 컴포넌트는 컴포넌트가 상기 발신(outgoing) 핸드쉐이크에 관여하는지 여부와 무엇이 발신(outgoing) 핸드쉐이크를 유발하는지를 규정(specifying)하는 모델 내부의 또다른 특성을 가진다. 이는 특정 비트 패턴(bit pattern)이거나 풀 버퍼(full buffer)일 수 있다.
상기 버스 모델은 발신(outgoing) 핸드쉐이크(handshake) 컴포넌트를 포함하도록 확장될 수 있다. 이러한 방식으로, 핸드쉐이크 동작(handshake behavior)은 버스 모델에 포착(capture)되어 다른 버스 특성과 마찬가지로 독립적인 프로세서를 이용하여 실행될 수 있다. 또한, 핸드쉐이킹(handshaking) 정보가 버스 모델의 모든 컴포넌트로 입출력되므로, 다른 곳(elsewhere)에서 얻어지는 핸드쉐이킹의 모든 유연성(flexibility)을 제공하면서 임의의 어떠한 타입의 핸드쉐이킹도 버스 모델의 임의의 파트(part)와 연동(interact)할 수 있다.
도 6은 하나의 착신(incoming) 핸드쉐이크(handshake)와 하나의 발신 (outgoing) 핸드쉐이크를 도시하지만, 핸드쉐이크의 개수는 필요한 만큼 늘릴 수 있다. 마찬가지로, 별개의 신호라기보다 데이터 신호의 일부인 핸드쉐이킹은 동일한 방법으로 임의의 컴포넌트로부터 출력되고 임의의 컴포넌트로 입력될 수 있다.
버스 모델의 서로 다른 계층들에 서로 다른 프로세서를 제공함으로 얻어지는 상술한 유연성(flexibility)은 핸드쉐이크(handshake)에도 마찬가지로 적용된다. 핸드쉐이크 정보를 사용하는 컴포넌트는 핸드쉐이크 정보의 소스(source)에는 관계하지 않는다. 핸드쉐이크 정보를 생성하는 컴포넌트는 그 목적지에 관계하지 않는다.
프로세싱(processing) 컴포넌트로부터의 어떤 출력들은 편의상 이벤트 버스(650)로 그룹핑될 수 있다. 이벤트 버스(650)는 버스 모델의 필드의 시작, 전송 워드의 마침 또는 수신 메시지의 시작 등의 이벤트 통신을 용이하게 한다. 상기 이벤트 버스는 시스템의 복잡도를 증가시키지 않으면서 컴포넌트 입출력(I/O)을 집계(aggregate)할 수 있다.
도 6은 이벤트 버스가 사용되는 방법을 나타낸다. 모든 프로세싱 컴포넌트는 자신의 출력을 하나 이상 상기 이벤트 버스로 송신(contribute)하고 각 프로세싱 컴포넌트는 전테 이벤트 버스에 엑세스(access)한다.
버스 모델의 이점(apeal)의 일부는 각 컴포넌트가 다른 컴포넌트의 활동(activity)에 무관하다는 사실에 기인한다. 이는 하나의 파라미터가 모델의 다른 나머지에 영향을 미치지 않으면서 변경 가능하도록 한다. 하지만 핸드쉐이킹, 에러 검출을 실행하는 컴포넌트 및 그 외 다수의 컴포넌트를 포함하여, 다른 컴포넌트의 실행 내용을 상세히 알 필요는 없더라도 그 다른 컴포넌트의 실행 중일 때를 아는 것이 요구되는 제한된 컴포넌트 집합(set)이 있다. 상기 이벤트 버스는 이에 관한 논의를 간략화시킨다.
모델을 구현하는데 있어서, 이벤트 버스는 측정(measurements), 인터럽트(interupt) 등의 이벤트를 사용하는 외부 기구(instrument)로 이벤트를 내보내는데 사용되기도 한다. 마찬가지로, 이벤트는 버스 동작(bus behavior)이 비데이터(non-bus) 작동(operation)에 의해 제어되도록 하면서 외부 기구로부터 들어올 수 있다. 이는 버스가 아날로그 및 디지털 이산(discrete) 기능을 버스에 통합시키는 복잡한 시스템의 일부일 때 유용하다. 예를 들어, 버스 전송은 외부 열 감지부(external heat detector)로부터의 알람 신호에 의해 트리거(trigger)될 수 있다.
바람직하게, 상기 버스 모델은 어떠한 임의의 수많은 각기 다른 시리얼 버스를 인터페이스하는 장비를 테스트하기 위한 테스트 기구로 구현될 수 있다. 버스 모델의 적층(layered) 구조는 폴트(fault) injection 및 마지닝(margining)과 같은 표준 테스트 기능의 개발과 마찬가지로 기능 테스트의 description을 용이하게 한다.
필드 길이, 워드 타입, 패리티(parity) 등과 같은 버스 파라미터를 독립적으로 가변시키는 능력은 폴트(fault) 주입(injection)을 가능하게 한다. 폴트란 하나의 이벤트(하나의 워드, 하나의 심볼 등) 또는 영구적으로 가변시킨 하나의 파라미터이다. 버스를 콘트롤하는 것 보다 테스트하는 것이 목적이라면 본 발명은 폴트 주입 기능을 고유하게 갖는다.
폴트가 주입된 것과 같이, 버스 모델은 고장(failure)이 쉽게 감지되고 분류되도록 한다. 모델의 각 컴포넌트는 다른 컴포넌트로부터의 입력에 따른 기대동작(expected behavior)의 리스트를 갖는다. 입력이 상기 기대동작 리스트에 속하지 않거나 또는 잘못된 순서로 동작을 나타내면 컴포넌트는 폴트(fault) 출력을 생성한다. 각 컴포넌트가 제한적이고 독립적인 기능을 수행하므로, 상기 폴트는 기능에 따라 자동적으로 분류(categorize)된다. 예를 들어, 비트 디코더에 의해 검출된 에러는 비트 인코딩 에러이다. 메시지 어셈블러(assembler)에 의해 검출된 에러는 어셈블리 에러이다. 각 컴포넌트는 폴트 검출에 요구되는 부가적인 detail을 추가하지만 본 발명의 이점은 버스 모델에 의해 제공되는 폴트의 고유한 분류(categorization)에 있다.
상기 모델은 또한 폴트를 예상하고 처리할 수 있도록 한다. 원래의 버스 규정(specificaton)이 결함있는 동작(faulty behavior)으로 간주하는 동작을 포함하도록 버스 모델을 확장시킴으로써 그 동작은 허용(accept)되고 수신 데이터에 통합(incorporate)될 수 있도록 한다. 이는 데이터 복원(recovery)의 한 과정으로 해체되야 하는 모델에서 정의되지 않은 이벤트(out-of-model event)를 생성하지 않는 대신, 상위 레벨 계층으로 하여금 폴트에 기반한 특정(specific) 동작을 취하도록 한다. 즉, 폴트는 정상이되지만 태그형(tagged) 동작이 될 수 있다. 본 모델의 구현이 버스 에뮬레이션보다 테스트를 위한 것이라면 폴트 예상은 기대(expected)되고 유도(induce)된 에러를 허용(accept)할 수 있다.
버스 충돌과 같은 어떤 폴트는 조기에 검출되고 즉각적인 동작(action)을 취 할 필요가 있다. 예를 들어, 버스 충돌이 일어나면 송신기가 턴 오프될 필요가 있다. 본 발명에서 기능의 분리는 폴트가 가능한 가장 이른 스테이지(stage)에서 검출되고 동작(action)이 (이벤트 버스에서의 충돌 이벤트에 근거하여) 적합한 송신기의 스테이지를 규정(specify)하도록 한다. 송신기가 3상태(tristate)를 즉각 요구한다면 충돌 이벤트가 일어난 때 아날로그 출력의 일부로 3상태(tristate)를 만든다. 만약 버스가 현재 전송되는 워드가 종료될 것을 요구한다면, 동일한 충돌 이벤트가 현재 워드를 종료시키기 위해 초기 프로세싱 컴포넌트에 의해 사용된다.
상기 버스 모델은 복수의 프로세싱 컴포넌트와 연관된 버스 성능 파라미터들을 모니터링, 콘트롤, 측정하도록 한다. 도 6은 버스 모델이 허용하는 일반적인 니터링, 콘트롤, 측정의 일례를 나타낸다. 도 6에 도시된 바와 같이, 버스 모델이나 외부 기구(instrument)의 일부로서 모니터/측정 컴포넌트(660)는 바람직하게 이벤트 버스(650)를 통해 송신기 타이밍 프로세서(326)와 수신기 타이밍 프로세서(346)으로부터 입력을 받아 이 둘간의 타임에 근거하여 측정 또는 제어를 수행한다. 이 기능은 송신기와 수신기의 타이밍 동작과 독립적이다. 실제, 상기 프로세서들(326, 346)은 측정을 인지할 필요가 없다. 이렇게 상기 버스 모델은 프로세싱 컴포넌트의 복잡도나 추가적인 기능을 부가하지 않으면서 관측과 콘트롤이 가능하다.
[응용실시예]
일실시예를 설명했지만 또다른 많은 실시예 또는 변형이 가능하다. 예를 들어, 버스 모델의 특정 형태(form)가 설정된 계층들(프레임, 메시지, 워드 등)을 가 지는 것으로 설명하였지만, 본 발명은 이러한 특정(specific) 계층들을 가지는 버스 모델로 한정하는 것은 아니다. 계층들의 아이덴티티(identities)는 변형될 수 있으며 본 발명에서 중요하지 않다.
또한, 버스 에뮬레이터는 도시된 모든 컴포넌트를 포함할 필요는 없다. 예를 들면, RS-232는 프레임, 메시지와 버스 프로토콜에서의 시퀀스 의존성(sequence dependencies)을 사용하지 않는다. RS-232용의 더 단순하고 값 싼 버스 에뮬레이터는 이러한 사용되지 않는 컴포넌트와 관련된 프로세서를 생략하고 비용을 절감할 수 있다.
이상 설명한 바와 같이, 버스 모델의 컴포넌트들은 바람직하게는 독립적인 프로세서로 구현된다. 이러한 프로세서들은 물리적으로 구분된 하드웨어 또는 소프트웨어 프로그램으로 구현될 수 있다. 그러나, 독립적이라는 용어의 의미는 서로 다른 프로세서가 같은 칩, 같은 소프트웨어 모듈에 형성되지 않도록 하거나 어떠한 하드웨어 또는 소프트웨어를 공유하지 않도록 하는 것을 의미하는 것으로 이해되어서는 안될 것이다. 따라서, 서로 다른 프로세서들이 일정한 독립적인 기능을 제공한다고 하더라도 이들이 물리적으로 또는 구조적으로 분리될 필요는 없다.
어떠한 어플리케이션에서, 데이터를 유출입하는 프로세서들을 결합하는 것이 유리할 수 있다. 도 3을 다시 참조하면 데이터를 유출하는 프레임 프로세서(312)가 데이터를 유입하는 프레임 프로세서(322)와 결합될 수 있다. 서로 상응하는 기능을 수행하는 다른 프로세서들도 이와 유사하게 결합될 수 있다.
시리얼 버스가 유선 전송을 의미하는 것으로 생각되지만, 이 용어는 또한 무 선, 광섬유, 고주파수(RF) 신호 또는 다른 종류의 통신을 뜻하는데 사용되기도 한다. 이더넷(Ethernet), ARINC-629, TTP 등과 같은 멀티드롭(multidrop) 버스들도 마찬가지로 포함된다. '시리얼 버스' 용어는 싱글 엔디드 신호를 사용하는 버스 뿐만 아니라 차동 신호(쌍으로 입력되고 서로 반대로 변하는 신호)를 사용하는 버스도 포함한다. 또한, '시리얼 버스' 용어는 반이중(half-duplex), 전이중(full-duplex) 버스와 함께 단방향 및 양방향 버스를 모두 포함한다.
도 3의 버스 모델은 폭과 깊이에 있어서 쉽게 확장가능하다. 이는 복수의 데이터 열(stream)을 포함하거나 프레임과 메시지 이상의 상위 레벨의 데이터 구성(data organization)을 포함할 수 있다.
상기 버스 모델을 주로 버스 에뮬레이션과 테스트를 관련하여 설명하였지만 상기 모델은 순수한 시뮬레이션 환경(environment)에서도 사용될 수 있다. 예를 들어 상기 버스 모델을 구현하는 테스트 기구(instrument)는 부분적으로 또는 전체적으로 소프트웨어상에서 시뮬레이트되어 시리얼 버스 장치의 테스트 프로그램의 개발을 촉진시킬 수 있다.
따라서, 본 발명을 바람직한 실시예를 참조하여 설명하였지만 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.


Claims (39)

  1. 범용 버스 모델의 서로 다른 통신 레이어들을 처리하기 위하여 독립적인 프로세서로 각각 구현되는 복수의 컴포넌트들을 포함하고,
    상기 각 컴포넌트는 데이터 입력단에서 데이터를 수신하고 상기 데이터를 처리하는 단계를 수행하고 데이터 출력단에 상기 데이터를 출력하도록 배열되며, 적어도 하나의 상기 컴포넌트는 적어도 하나의 조절가능한 셋팅을 가지며, 각기 다른 타입의 시리얼 버스의 특성과 관련된 파라미터들을 기초로 상기 셋팅을 조절하여 상기 각기 다른 타입의 시리얼 버스들과 인터랙트(interact)하는 것을 특징으로 하는 서로 다른 종류의 시리얼 버스를 에뮬레이트 하기 위한 시스템.
  2. 제1항에 있어서, 상기 복수의 컴퍼넌트 중 적어도 하나의 컴퍼넌트는 상기 컴퍼넌트의 데이터 입력단(data input)에서 수신한 데이터의 하나 이상의 기대동작(expected behavior)의 기록을 더 포함하는 것을 특징으로 하는 서로 다른 종류의 시리얼 버스를 에뮬레이트 하기 위한 시스템.
  3. 제2항에 있어서, 상기 복수의 컴퍼넌트 중 적어도 하나의 컴퍼넌트는 입력 데이터의 기대동작(expected behavior)과 맞지 않는 입력 데이터의 실제동작(actual behavior)에 응답하여 오류(failure)를 신호화(signaling)하기 위한 수단을 더 포함하는 것을 특징으로 하는 서로 다른 종류의 시리얼 버스를 에뮬레이트 하기 위한 시스템.
  4. 제1항에 있어서, 상기 적어도 하나의 조절가능한(adjustable) 셋팅(setting)을 가변시킴으로써 폴트(fault)를 주입(inject)하기 위한 수단을 더 포함하는 것을 특징으로 하는 서로 다른 종류의 시리얼 버스를 에뮬레이트 하기 위한 시스템.
  5. 제1항에 있어서, 상기 복수의 컴포넌트 중 적어도 하나의 컴포넌트는 시리얼 버스로부터 착신(incoming) 핸드쉐이킹(handshaking) 정보를 수신하기 위한 핸드쉐이킹 입력을 더 포함하는 것을 특징으로 하는 서로 다른 종류의 시리얼 버스를 에뮬레이트 하기 위한 시스템.
  6. 제5항에 있어서, 상기 복수의 컴포넌트 중 적어도 하나의 컴포넌트는 상기 핸드쉐이킹 정보에 응답하여 수행되는 동작(action)의 기록을 더 포함하는 것을 특징으로 하는 서로 다른 종류의 시리얼 버스를 에뮬레이트 하기 위한 시스템.
  7. 제6항에 있어서, 상기 복수의 컴포넌트 중 적어도 하나의 컴포넌트는 상기 컴포넌트의 입력단(data input)에 수신된 입력 데이터의 핸드쉐이킹 정보를 감지하기 위한 수단을 더 포함하는 것을 특징으로 하는 서로 다른 종류의 시리얼 버스를 에뮬레이트 하기 위한 시스템.
  8. 제1항에 있어서, 상기 복수의 컴포넌트 중 적어도 하나의 컴포넌트는 시리얼 버스로 발신(outgoing) 핸드쉐이킹 정보를 제공하기 위한 핸드쉐이킹 출력을 더 포함하는 것을 특징으로 하는 서로 다른 종류의 시리얼 버스를 에뮬레이트 하기 위한 시스템.
  9. 제1항에 있어서, 상기 복수의 컴포넌트 중 적어도 하나의 컴포넌트는 적어도 하나의 이벤트를 생성하여 상기 복수의 컴포넌트 중 다른 컴포넌트로 전달(convey)하는 것을 특징으로 하는 서로 다른 종류의 시리얼 버스를 에뮬레이트 하기 위한 시스템.
  10. 제1항에 있어서, 상기 복수의 컴포넌트 중 적어도 하나의 컴포넌트는 적어도 그 일부가 물리적 시리얼 버스를 실행하기 위한 전자 회로로 구현되는 것을 특징으로 하는 서로 다른 종류의 시리얼 버스를 에뮬레이트 하기 위한 시스템.
  11. 제1항에 있어서, 상기 복수의 컴포넌트 중 적어도 하나의 컴포넌트는 적어도 그 일부가 물리적 시리얼 버스를 실행하기 위한 소프트웨어 컴포넌트로 구현되는 것을 특징으로 하는 서로 다른 종류의 시리얼 버스를 에뮬레이트 하기 위한 시스템.
  12. 제1항에 있어서, 상기 복수의 컴포넌트 중 적어도 하나의 컴포넌트는 적어도 그 일부가 시뮬레이션된 소프트웨어 시리얼 버스를 실행하기 위한 소프트웨어 컴포넌트로 구현되는 것을 특징으로 하는 서로 다른 종류의 시리얼 버스를 에뮬레이트 하기 위한 시스템.
  13. 제1항에 있어서, 상기 복수의 컴포넌트는 시리얼 버스로 출력되는 데이터를 처리하기 위한 복수의 제1 컴포넌트와 상기 시리얼 버스로부터 입력되는 데이터를 처리하기 위한 복수의 제2 컴포넌트를 포함하고,
    상기 제1 컴포넌트 각각은 상기 버스 모델의 서로 다른 통신 계층을 처리하며 상기 제2 컴포넌트 각각은 상기 버스 모델의 서로 다른 통신 계층을 처리하는 것을 특징으로 하는 서로 다른 종류의 시리얼 버스를 에뮬레이트 하기 위한 시스템.
  14. 발신 시리얼 버스 신호를 나타내는 데이터를 수신하기 위한 입력단과 상기 데이터에 응답하여 상기 발신 시리얼 버스 신호를 제공하기 위한 출력단을 갖는 아날로그 구동부;
    착신 시리얼 버스 신호를 수신하기 위한 입력단과 상기 착신 시리얼 버스 신호를 나타내는 데이터를 제공하기 위한 출력단을 갖는 아날로그 수신기; 및
    상기 아날로그 구동부와 상기 아날로그 수신기에 결합되고, 각각 착신 방향과 발신 방향 중 적어도 하나 이상의 방향으로 시리얼 버스 통신의 서로 다른 레벨을 처리하기 위한 복수의 프로세서들을 포함하고,
    상기 복수의 프로세서 각각은 입력단에서 데이터를 수신하고, 데이터를 처리하는 단계를 수행하고 출력단에 데이터를 출력하도록 배열되며, 상기 복수의 프로세서 각각은 적어도 하나의 조절가능한 셋팅을 가지며, 각기 다른 타입의 시리얼 버스의 특성과 관련된 파라미터들을 기초로 상기 셋팅을 조절하여 상기 각기 다른 타입의 시리얼 버스와 인터랙트(interact)하는 것을 특징으로 하는 서로 다른 종류의 시리얼 버스를 실행하기 위한 전자장치.
  15. 제14항에 있어서, 상기 적어도 하나의 조절가능한 셋팅을 서로 다른 값으로 설정함으로써 상기 전자장치가 복수의 서로 다른 타입의 시리얼 버스 중 임의의 시리얼 버스에 대해 실행되도록 하는 것을 특징으로 하는 서로 다른 종류의 시리얼 버스를 실행하기 위한 전자장치.
  16. 제14항에 있어서, 상기 복수의 프로세서는,
    발신 데이터가 상기 아날로그 구동부에 인가되도록 데이터를 처리하기 위한 복수의 제1 프로세서; 및
    상기 아날로그 수신기로부터의 신호를 메모리에 저장하도록 처리하기 위한 복수의 제2 프로세서를 포함하는 것을 특징으로 하는 서로 다른 종류의 시리얼 버스를 실행하기 위한 전자장치.
  17. 제16항에 있어서, 상기 복수의 제1 프로세서는 발신 데이터의 시리얼 통신의 레벨을 처리하고, 상기 복수의 제2 프로세서는 착신 데이터의 시리얼 통신의 상기 레벨과 실질적으로 동일한 레벨을 처리하는 것을 특징으로 하는 서로 다른 종류의 시리얼 버스를 실행하기 위한 전자장치.
  18. 제14항에 있어서, 상기 아날로그 구동부는 제1 아날로그 구동부이고,
    시리얼 버스로 클록 신호를 제공하는 제2 아날로그 구동부; 및
    상기 클록 신호의 타이밍 특성을 제어하기 위하여 제2 아날로그 구동부에 결합되는 출력단을 갖는 적어도 하나의 부가적인 프로세서를 더 포함하는 것을 특징으로 하는 서로 다른 종류의 시리얼 버스를 실행하기 위한 전자장치.
  19. 제14항에 있어서, 상기 아날로그 수신기는 제1 아날로그 수신기이고,
    시리얼 버스로 클록 신호를 제공하는 제2 아날로그 수신기; 및
    상기 클록 신호의 타이밍 특성을 해석하기 위하여 제2 아날로그 수신기에 결합되는 입력단을 갖는 적어도 하나의 부가적인 프로세서를 더 포함하는 것을 특징으로 하는 서로 다른 종류의 시리얼 버스를 실행하기 위한 전자장치.
  20. 제14항에 있어서, 상기 아날로그 구동부는 제1 아날로그 구동부이고,
    시리얼 버스로 엔벨로프(envelope)와 동기 출력 신호 중 적어도 하나를 제공하기 위한 적어도 하나의 부가적인 아날로그 구동부; 및
    상기 엔벨로프와 동기 출력 신호 중 적어도 하나의 특성을 제어하기 위하여 상기 적어도 하나의 부가적인 아날로그 구동부에 결합되는 출력단을 갖는 적어도 하나의 부가적인 프로세서를 더 포함하는 것을 특징으로 하는 서로 다른 종류의 시리얼 버스를 실행하기 위한 전자장치.
  21. 제14항에 있어서, 상기 아날로그 수신기는 제1 아날로그 수신기이고,
    시리얼 버스로부터 엔벨로프(envelope)과 동기 출력 신호 중 적어도 하나를 입력받기 위한 적어도 하나의 부가적인 아날로그 수신기; 및
    상기 엔벨로프(envelope)과 동기 출력 신호 중 적어도 하나의 특성을 해석하기 위하여 상기 적어도 하나의 부가적인 아날로그 수신기에 결합되는 입력단을 갖는 적어도 하나의 부가적인 프로세서를 더 포함하는 것을 특징으로 하는 서로 다른 종류의 시리얼 버스를 실행하기 위한 전자장치.
  22. 제14항에 있어서, 상기 아날로그 구동부는 제1 아날로그 구동부이고,
    발신 핸드쉐이킹 신호를 제공하기 위한 다른 아날로그 구동부를 더 포함하는 것을 특징으로 하는 서로 다른 종류의 시리얼 버스를 실행하기 위한 전자장치.
  23. 제22항에 있어서, 상기 아날로그 수신기는 제1 아날로그 수신기이고,
    착신 핸드쉐이킹 신호를 수신하기 위한 다른 아날로그 수신기를 더 포함하는 것을 특징으로 하는 서로 다른 종류의 시리얼 버스를 실행하기 위한 전자장치.
  24. 제23항에 있어서, 상기 착신 핸드쉐이킹 신호를 수신하기 위한 다른 아날로그 수신기는 핸드쉐이킹 정보를 전달하기 위한 복수의 프로세서들 중 적어도 하나 이상의 프로세서와 결합된 출력단을 갖는 것을 특징으로 하는 서로 다른 종류의 시리얼 버스를 실행하기 위한 전자장치.
  25. 제23항에 있어서, 상기 복수의 프로세서들 중 적어도 하나 이상의 프로세서는 핸드쉐이킹 신호를 제공하기 위한 출력단을 가지며,
    상기 핸드쉐이킹 신호 각각을 수신하기 위한 적어도 하나의 입력단과 발신 핸드쉐이킹 신호들을 제공하기 위한 상기 다른 아날로그 구동부에 결합된 출력단을 가지는 핸드쉐이킹 프로세서를 더 포함하는 것을 특징으로 하는 서로 다른 종류의 시리얼 버스를 실행하기 위한 전자장치.
  26. 제25항에 있어서, 상기 핸드쉐이킹 프로세서는 착신 핸드쉐이킹 신호를 수신하기 위한 다른 아날로그 수신기의 출력단과 결합된 부가적인 입력단을 갖는 것을 특징으로 하는 서로 다른 종류의 시리얼 버스를 실행하기 위한 전자장치.
  27. 제14항에 있어서, 상기 복수의 프로세서들 중 적어도 하나 이상은 시리얼 버스의 특성과 관련된 이벤트를 규정하기 위한 출력단을 가지며, 상기 복수의 프로세서들 중 적어도 하나 이상은 상기 복수의 프로세서들 중 적어도 하나의 다른 프로세서에서 출력되는 이벤트를 수신하기 위한 입력단을 갖는 것을 특징으로 하는 서로 다른 종류의 시리얼 버스를 실행하기 위한 전자장치.
  28. 제22항에 있어서, 상기 복수의 프로세서들 중 서로 다른 프로세서 사이의 이벤트를 통신하기 위한 이벤트 버스를 더 포함하는 것을 특징으로 하는 서로 다른 종류의 시리얼 버스를 실행하기 위한 전자장치.
  29. 제28항에 있어서, 상기 이벤트 버스는 임의의 측정, 인터럽트 및 제어신호를 통신하기 위한 외부 기구(instrument)와 연결되는 것을 특징으로 하는 서로 다른 종류의 시리얼 버스를 실행하기 위한 전자장치.
  30. 제28항에 있어서, 핸드쉐이킹 신호를 처리하기 위한 핸드쉐이킹 프로세서를 더 포함하고,
    상기 이벤트 버스에 의해 통신되는 상기 이벤트는 상기 핸드쉐이킹 신호를 포함하는 것을 특징으로 하는 서로 다른 종류의 시리얼 버스를 실행하기 위한 전자장치.
  31. 테스트 장비가 동작되는 시리얼 버스의 특성과 관련된 파라미터들을 규정하는 단계;
    상기 규정된 파라미터로 복수의 프로세서를 프로그래밍하는 단계; 및
    상기 프로그램된 파라미터로 상기 테스트 장비를 실행하는 단계를 포함하고, 상기 복수의 프로세서 각각은 시리얼 버스 프로토콜의 서로 다른 계층을 처리하며, 서로 다른 파라미터들을 서로 다른 시리얼 버스 타입의 프로토콜을 규정하는데 사용되는 것을 특징으로 하는 복수의 서로 다른 타입의 시리얼 버스 중 임의의 시리얼 버스를 테스트하는 방법.
  32. 제31항에 대하여, 상기 파라미터들을 규정하는 단계는 이전에 저장되었던 파라미터와 관련된 시리얼 버스 타입 그룹 중 하나를 식별하는 단계를 포함하는 것을 특징으로 하는 복수의 서로 다른 타입의 시리얼 버스 중 임의의 시리얼 버스를 테스트하는 방법.
  33. 제32항에 대하여, 상기 파라미터들을 규정하는 단계는 상기 파라미터 중 적어도 하나를 가변시키어 이전에 저장되었던 파라미터들과 연관 있는 시리얼 버스 타입 중 어느 하나와 유사하지만 동일하지 않은 버스의 장비를 조절(accommodate)하는 것을 특징으로 하는 복수의 서로 다른 타입의 시리얼 버스 중 임의의 시리얼 버스를 테스트 하는 방법.
  34. 제31항에 대하여, 상기 테스트 장비를 실행하는 단계는 상기 파라미터들 중 적어도 하나 이상을 공칭값(nominal value)으로부터 가변시키어 폴트(fault)를 주입(inject)하는 단계를 포함하는 것을 특징으로 하는 복수의 서로 다른 타입의 시리얼 버스 중 임의의 시리얼 버스를 테스트하는 방법.
  35. 제31항에 대하여, 상기 테스트 장비를 실행하는 단계는 상기 복수의 프로세서들 중 적어도 하나가 상기 프로세서로 제공된 입력 데이터와 기대동작(expected behavior)과 비교하여 오류(failure)가 발생했는지 결정하는 단계를 포함하는 것을 특징으로 하는 복수의 서로 다른 타입의 시리얼 버스 중 임의의 시리얼 버스를 테스트 하는 방법.
  36. 제35항에 대하여, 상기 테스트 장비를 실행하는 단계는 폴트(fault)를 보고하는 프로세서의 아이덴티티(identity)에 응답하여 오류(failure)를 분류하는 단계를 더 포함하는 것을 특징으로 하는 복수의 서로 다른 타입의 시리얼 버스 중 임의의 시리얼 버스를 테스트하는 방법.
  37. 제31항에 대하여, 서로 다른 프로세서가 서로 다른 파라미터를 포함하고, 상기 테스트 장비를 실행하는 단계는 상기 파라미터들 중 적어도 하나 이상을 공칭값(nominal value)으로부터 가변시키어 상기 프로세서의 사양(specification)의 마진(margin) 근처의 장비의 동작을 검사하는 것을 특징으로 하는 복수의 서로 다른 타입의 시리얼 버스 중 임의의 시리얼 버스를 테스트 하는 방법.
  38. 제31항에 대하여, 상기 테스트 장비를 실행하는 단계는,
    적어도 하나의 프로세서가 상기 프로세서의 입력 데이터의 상태(condition)를 나타내는 출력을 생성하는 단계; 및
    상기 상태를 나타내는 출력을 모니터링하여 상기 적어도 하나의 프로세서에 의해 수행된 동작을 결정하는 단계를 포함하는 것을 특징으로 하는 복수의 서로 다른 타입의 시리얼 버스 중 임의의 시리얼 버스를 테스트하는 방법.
  39. 시리얼 버스 통신을 복수의 통신 계층을 포함하여 표시하는 단계;
    독립적인 프로세서를 이용하여 상기 복수의 통신 계층 각각의 시리얼 버스 데이터를 처리하는 단계; 및
    각기 다른 타입의 시리얼 버스와 인터랙트할 수 있도록 상기 각기 다른 타입의 시리얼 버스의 특성과 관련된 파라미터들에 기초하여 상기 독립적인 프로세서의 복수의 셋팅을 조절하는 단계를 포함하는 서로 다른 시리얼 버스의 에뮬레이션 방법.
KR1020057001894A 2002-08-01 2003-07-17 다양한 시리얼 버스 타입의 시뮬레이션, 에뮬레이션 및테스트를 위한 범용 방법 KR100883392B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US40017602P 2002-08-01 2002-08-01
US60/400,176 2002-08-01
US10/325,070 2002-12-20
US10/325,070 US7343279B2 (en) 2002-08-01 2002-12-20 Universal approach for simulating, emulating, and testing a variety of serial bus types

Publications (2)

Publication Number Publication Date
KR20050043900A KR20050043900A (ko) 2005-05-11
KR100883392B1 true KR100883392B1 (ko) 2009-02-11

Family

ID=31498195

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057001894A KR100883392B1 (ko) 2002-08-01 2003-07-17 다양한 시리얼 버스 타입의 시뮬레이션, 에뮬레이션 및테스트를 위한 범용 방법

Country Status (10)

Country Link
US (1) US7343279B2 (ko)
EP (1) EP1532534B1 (ko)
JP (1) JP5060021B2 (ko)
KR (1) KR100883392B1 (ko)
AU (1) AU2003249315A1 (ko)
BR (1) BR0313360A (ko)
CA (1) CA2494083A1 (ko)
IL (2) IL166605A0 (ko)
TW (1) TW200405192A (ko)
WO (1) WO2004013759A2 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7428218B2 (en) * 2002-08-01 2008-09-23 Teradyne, Inc. Flexible approach for representing different bus protocols
US7395479B2 (en) * 2004-12-30 2008-07-01 Teradyne, Inc. Over-voltage test for automatic test equipment
US8189599B2 (en) 2005-08-23 2012-05-29 Rpx Corporation Omni-protocol engine for reconfigurable bit-stream processing in high-speed networks
JP2009506645A (ja) * 2005-08-23 2009-02-12 エスエルティー ロジック エルエルシー 高速ネットワークでの再構成可能ビットストリーム処理のための全プロトコルエンジン
US8745337B2 (en) * 2007-12-31 2014-06-03 Teradyne, Inc. Apparatus and method for controlling memory overrun
US8598898B2 (en) * 2010-10-05 2013-12-03 Silicon Image, Inc. Testing of high-speed input-output devices
US10012721B2 (en) 2015-02-19 2018-07-03 Teradyne, Inc. Virtual distance test techniques for radar applications
TWI553468B (zh) * 2015-12-10 2016-10-11 英業達股份有限公司 通用序列匯流排埠檢測裝置
CN108230815B (zh) * 2018-04-08 2024-06-25 无锡职业技术学院 弱电信号传输模拟实训装置
CN109976960A (zh) * 2019-03-29 2019-07-05 北京润科通用技术有限公司 一种总线测试数据注入方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001028060A1 (en) * 1999-10-11 2001-04-19 Comlog Telecommunications Engineering Ltd. Digital testing device

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61264945A (ja) * 1985-05-20 1986-11-22 Mitsubishi Electric Corp 通信処理装置のプロトコル並列処理方式
US5056060A (en) 1987-03-13 1991-10-08 Apple Computer, Inc. Printed circuit card with self-configuring memory system for non-contentious allocation of reserved memory space among expansion cards
US5038317A (en) 1988-07-25 1991-08-06 Allen-Bradley Company, Inc. Programmable controller module rack with a relative rack slot addressing mechanism
US5036317A (en) * 1988-08-22 1991-07-30 Tektronix, Inc. Flat panel apparatus for addressing optical data storage locations
US5257393A (en) 1989-04-19 1993-10-26 Jrm Consultants, Inc. Serially controlled programmable test network
US5111450A (en) 1989-11-01 1992-05-05 The Boeing Company Data bus tester for autonomous data communications system
DE69030953D1 (de) 1990-03-08 1997-07-24 Ibm Hardware-Simulator
US5175536A (en) 1990-08-01 1992-12-29 Westinghouse Electric Corp. Apparatus and method for adapting cards designed for a VME bus for use in a VXI bus system
US5243273A (en) 1990-09-12 1993-09-07 Hewlett-Packard Company General purpose, reconfigurable system for processing serial bit streams
US5410717A (en) 1991-03-22 1995-04-25 Allen-Bradley Company, Inc. Removable function card for a programmable controller processor
JPH05216712A (ja) 1991-10-23 1993-08-27 Internatl Business Mach Corp <Ibm> コンピュータシステムおよびこのコンピュータシステム上で内観的タスクを遂行する方法並びにi/oプロセッサアセンブリ
US5349685A (en) 1992-05-05 1994-09-20 The United States Of America As Represented By The Secretary Of The Navy Multipurpose bus interface utilizing a digital signal processor
US6006343A (en) * 1993-07-30 1999-12-21 Texas Instruments Incorporated Method and apparatus for streamlined testing of electrical circuits
FR2712998B1 (fr) 1993-11-22 1996-02-09 Aerospatiale Simulateur de bus numériques intégré dans un système de test automatique de boîtiers électroniques embarqués sur avion.
US5970430A (en) * 1996-10-04 1999-10-19 Fisher Controls International, Inc. Local device and process diagnostics in a process control network having distributed control functions
US6618774B1 (en) * 1999-03-17 2003-09-09 Adder Technology Ltd. Computer signal transmission system
CN1088218C (zh) * 1999-11-14 2002-07-24 邓国顺 用于数据处理系统的快闪电子式外存储方法及其装置
JP2001184271A (ja) * 1999-12-24 2001-07-06 Nec Ic Microcomput Syst Ltd シリアル機能のシミュレーション装置、方法及び記録媒体
JP4275282B2 (ja) * 2000-02-07 2009-06-10 三菱電機株式会社 論理設計装置及び消費電力測定方法
US6968307B1 (en) * 2000-04-28 2005-11-22 Microsoft Corporation Creation and use of virtual device drivers on a serial bus
JP4512929B2 (ja) * 2000-05-19 2010-07-28 富士通セミコンダクター株式会社 シリアルバスインターフェース装置
US7215781B2 (en) * 2000-12-22 2007-05-08 Intel Corporation Creation and distribution of a secret value between two devices

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001028060A1 (en) * 1999-10-11 2001-04-19 Comlog Telecommunications Engineering Ltd. Digital testing device

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Reference Manual : Model 2108; VXI Serial Data System Digital Resource Module*

Also Published As

Publication number Publication date
CA2494083A1 (en) 2004-02-12
EP1532534A2 (en) 2005-05-25
WO2004013759A2 (en) 2004-02-12
TW200405192A (en) 2004-04-01
JP2005536789A (ja) 2005-12-02
IL166605A (en) 2013-02-28
US20040128121A1 (en) 2004-07-01
AU2003249315A8 (en) 2004-02-23
EP1532534B1 (en) 2013-02-13
US7343279B2 (en) 2008-03-11
IL166605A0 (en) 2006-01-15
BR0313360A (pt) 2005-07-12
WO2004013759A3 (en) 2004-05-21
JP5060021B2 (ja) 2012-10-31
AU2003249315A1 (en) 2004-02-23
KR20050043900A (ko) 2005-05-11

Similar Documents

Publication Publication Date Title
US7058855B2 (en) Emulation interface system
Khan et al. Dustminer: troubleshooting interactive complexity bugs in sensor networks
US7610526B2 (en) On-chip circuitry for bus validation
US5600579A (en) Hardware simulation and design verification system and method
JP4805163B2 (ja) 多数の時間領域群を有するシステムでイベント群を時間順序付けする装置及び方法
KR100374328B1 (ko) 칩 설계 검증 및 테스트 장치 및 방법
IL166605A (en) Universal approach for simulating, emulating and testing a variety of serial bus types
WO2004044749A1 (en) A method and apparatus for decomposing and verifying configurable hardware
CN112285538B (zh) 芯片测试方法及系统
US4791356A (en) In-circuit testing system
CN1757193B (zh) 高速串行接收器的自动眼形图老化测试技术
CN113179192A (zh) 一种sent协议测试系统及其方法
CN115242681A (zh) 一种芯片内通信模块的测试系统、方法、设备及存储介质
CN117572217A (zh) 一种集成电路测试激励方法、装置、设备及存储介质
CN112599179B (zh) 一种并行的flash寿命测试装置
US20070262879A1 (en) I/O bus for analog sensors in an IC
US20060069960A1 (en) Embedded Test I/O Engine
CN107231278B (zh) Can节点的测试方法、装置及系统
JP4736135B2 (ja) カード間通信を行う内部バス解析システム、その方法及びそのプログラム
JP2004101203A (ja) ロジックlsiの不良解析システム及び不良解析方法
Towner et al. Debugging and Verification of Parallel Systems-the picoChip way
CN115563017B (zh) 一种基于总线注入的测试系统、方法及计算机设备
Jones et al. User-centric digital test architecture
CN107748805B (zh) 一种用于片上调试的单线接口方法
Armengaud et al. Moving beyond the component boundaries for efficient test and diagnosis of automotive communication architectures

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E90F Notification of reason for final refusal
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130117

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140121

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150116

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160119

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee