KR100849223B1 - Usb 장치 테스트 방법 및 그 시스템 - Google Patents

Usb 장치 테스트 방법 및 그 시스템

Info

Publication number
KR100849223B1
KR100849223B1 KR1020060070589A KR20060070589A KR100849223B1 KR 100849223 B1 KR100849223 B1 KR 100849223B1 KR 1020060070589 A KR1020060070589 A KR 1020060070589A KR 20060070589 A KR20060070589 A KR 20060070589A KR 100849223 B1 KR100849223 B1 KR 100849223B1
Authority
KR
South Korea
Prior art keywords
usb
token
host
syntax tree
expression
Prior art date
Application number
KR1020060070589A
Other languages
English (en)
Other versions
KR20080010528A (ko
Inventor
문귀연
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020060070589A priority Critical patent/KR100849223B1/ko
Priority to US11/781,656 priority patent/US7770066B2/en
Publication of KR20080010528A publication Critical patent/KR20080010528A/ko
Application granted granted Critical
Publication of KR100849223B1 publication Critical patent/KR100849223B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/28Error detection; Error correction; Monitoring by checking the correct order of processing
    • 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
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0038System on Chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0042Universal serial bus [USB]

Abstract

USB 장치 테스트 방법과 그 시스템이 개시된다. 상기 USB 장치 테스트 방법은 USB 패킷 트레이스 변환장치가 USB 호스트로부터 출력되는 USB 패킷 트레이스를 수신하는 USB 패킷 트레이스 수신 단계, 수신된 상기 USB 패킷 트레이스에 상응하는 적어도 하나의 토큰을 생성하는 토큰 생성 단계, 생성된 상기 적어도 하나의 토큰에 상응하는 신택스 트리를 결정하는 신택스 트리 결정 단계, 결정된 상기 신택스 트리에 상응하는 USB 호스트 모델용 코드를 생성하는 호스트 코드 생성 단계, 상기 USB 호스트 모델용 코드를 수신하고, 상기 USB 호스트 모델용 코드에 기초하여 상기 USB 장치를 테스트하는 단계를 구비한다. 상기 USB 장치 테스트 방법은 USB를 포함하는 제품의 검증에 효과적으로 사용될 수 있다.

Description

USB 장치 테스트 방법 및 그 시스템{Method of testing USB apparatus and system thereof}
본 발명은 USB(unibersal serial bus) 장치를 테스트 하는 방법에 관한 것으로, 보다 상세하게는 USB 장치를 테스트하기 위해서 USB 호스트로부터 출력되는 USB 패킷 트레이스를 호스트 모델용 코드로 변환하여 상기 USB 장치를 테스트 하는 방법 및 그 시스템에 관한 것이다.
기존의 USB SoC(system on chip) 장치에서 에러가 발생하였을 때 그 분석 및 해결 방법은 상기 USB SoC 장치의 에러가 있을 것으로 추측되는 부분의 RTL(register-transfer level)을 확인해보는 방법과 상기 USB SoC 장치를 FPGA(field programmable gate array)로 제작하여 실제 USB 호스트에 연결하여 테스트 하는 방법이 있다.
첫 번째 방법은 장치의 내부 신호와 상태 등을 볼 수 있는 장점이 있으나, 어떤 부분이 에러가 발생하였는지 추측하기 어려울 뿐만 아니라, 문제의 원인을 잘못 추측한 경우 원인을 재현하거나 분석하는 것이 어렵게 된다.
두 번째 방법은 호스트 상황은 동일하므로 동일한 에러 상황을 재현할 수 있는 장점이 있으나 장치의 내부 상태를 보기 위해서는 관련된 것으로 추정되는 내부 시그널을 외부 출력으로 생성한 뒤 이에 대응되는 FPGA를 반복적으로 제작하여야 하므로 해결에 많은 시간과 노력이 필요하게 된다.
따라서 실제와 동일한 에러 상황 재현과 RTL(레지스터-트랜스퍼 레벨)/NET(Netlist : 게이트 레벨) 시뮬레이션에서와 동일한 내부 신호, 장치 상태에 대하여 시뮬레이션 할 수 있는 방법 및 장치가 요구된다.
따라서 본 발명이 이루고자 하는 기술적인 과제는 실제와 동일한 에러 상황 재현과 RTL/NET 시뮬레이션에서와 동일한 내부 신호, 장치 상태에 대하여 시뮬레이션 할 수 있는 USB 장치 테스트 방법 및 그 시스템을 제공하는 것이다.
상기 기술적 과제를 달성하기 위한 USB 장치 테스트 방법은 USB 패킷 트레이스 변환장치가 USB 호스트로부터 출력되는 USB 패킷 트레이스를 수신하는 USB 패킷 트레이스 수신 단계, 수신된 상기 USB 패킷 트레이스에 상응하는 적어도 하나의 토큰을 생성하는 토큰 생성 단계, 생성된 상기 적어도 하나의 토큰에 상응하는 신택스 트리를 결정하는 신택스 트리 결정 단계, 결정된 상기 신택스 트리에 상응하는 USB 호스트 모델용 코드를 생성하는 호스트 코드 생성 단계, 및 상기 생성된 호스트 모델용 코드에 기초하여 USB 장치를 테스트하는 단계를 구비한다.
상기 USB 패킷 트레이스 수신 단계는 상기 USB 호스트로부터 출력되는 상기 USB 패킷 트레이스를 USB 패킷 로거가 수신하는 단계, 및 상기 USB 패킷 로거로부터 출력된 상기 USB 패킷 트레이스를 상기 USB 패킷 트레이스 변환장치가 수신하는 단계를 더 구비할 수 있다.
상기 USB 패킷 로거는 상기 USB 패킷 트레이스를 utg 파일로 생성하여 상기 USB 패킷 트레이스 변환장치로 출력할 수 있다.
상기 USB 장치 테스트 방법은 상기 USB 패킷 트레이스에 포함될 수 있는 익스프레션 및 상기 익스프레션에 상응하는 토큰을 포함하는 익스프레션- 토큰 테이블과 상기 USB 패킷 트레이스에 포함될 수 있는 익스프레션에 상응하는 적어도 하나의 토큰에 기초하여 생성되는 신택스 트리 포리스트를 소정의 저장장치에 저장하는 단계를 더 구비할 수 있다.
상기 토큰 생성 단계는 상기 수신된 상기 USB 패킷 트레이스에 포함된 익스프레션을 상기 저장장치에 저장된 상기 익스프레션-토큰 테이블에서 검색하는 단계, 및 검색된 상기 익스프레션에 기초하여 상기 익스프레션에 상응하는 상기 익스프레션-토큰 테이블에 저장된 토큰으로 생성하는 단계를 구비할 수 있다.
상기 신택스 트리 결정 단계는 생성된 상기 적어도 하나의 토큰을 상기 저장장치에 저장된 상기 신택스 트리 포리스트에서 검색하는 단계, 및 검색된 신택스 트리가 상기 적어도 하나의 토큰에 상응하는 신택스 트리인지를 결정하는 단계를 구비할 수 있다.
상기 호스트 코드 생성 단계는 결정된 상기 신택스 트리의 서브 트리부터 탐색하면서 상기 신택스 트리에 대응하는 USB 호스트 모델용 코드를 생성하는 단계를 구비할 수 있다.
상기 USB 호스트 시뮬레이션용 코드는 USB eVC 호스트 코드일 수 있다.
상기 기술적 과제를 달성하기 위한 USB 장치 테스트 시스템은 USB 패킷 트레이스에 포함될 수 있는 익스프레션 및 상기 익스프레션에 상응하는 토큰을 포함하는 익스프레션-토큰 테이블과 상기 USB 패킷 트레이스에 포함될 수 있는 익스프레션에 상응하는 적어도 하나의 토큰에 기초하여 생성되는 신택스 트리 포리스트를 저장하기 위한 저장장치, USB 호스트로부터 출력되는 상기 USB 패킷 트레이스를 수신하고 수신된 상기 USB 패킷 트레이스에 상응하는 적어도 하나의 토큰을 상기 익스프레션-토큰 테이블에 기초하여 생성하기 위한 토큰 생성 모듈, 생성된 상기 적어도 하나의 토큰에 상응하는 신택스 트리를 상기 신택스 트리 포리스트에 기초하여 결정하기 위한 신택스 트리 결정 모듈, 및 결정된 상기 신택스 트리에 상응하는 USB 호스트 모델용 코드를 생성하는 호스트 코드 생성 모듈을 구비한다. 상기 USB 장치 테스트 시스템은 상기 생성된 USB 호스트 모델용 코드에 기초하여 USB 장치를 테스트할 수 있다.
상기 토큰 생성 모듈은 상기 USB 호스트로부터 출력되는 상기 USB 패킷 트레이스를 USB 패킷 로거를 통하여 수신할 수 있다.
상기 토큰 생성 모듈은 수신된 상기 USB 패킷 트레이스에 포함된 익스프레션을 상기 저장장치에 저장된 익스프레션-토큰 테이블에서 검색하고, 검색된 상기 익스프레션에 기초하여 상기 익스프레션에 상응하는 상기 익스프레션-토큰 테이블에 저장된 토큰으로 생성할 수 있다.
상기 신택스 트리 결정 모듈은 생성된 상기 적어도 하나의 토큰을 상기 저장장치에 저장된 신택스 트리 포리스트에서 검색하고, 검색된 신택스 트리가 상기 적어도 하나의 토큰에 상응하는 신택스 트리인지를 결정할 수 있다.
상기 호스트 코드 생성 모듈은 결정된 상기 신택스 트리의 서브 트리부터 탐색하면서 상기 신택스 트리에 대응하는 호스트 코드를 생성할 수 있다.상기 USB 장치 테스트 시스템은 상기 USB 호스트 모델용 코드를 수신하고, 상기 USB 호스트 모델용 코드에 상응하는 호스트 신호를 생성하는 호스트 모델, 상기 호스트 신호를 수신하고, 상기 수신된 호스트 신호에 상응하는 신호를 출력하는 USB 장치 모델, 및 상기 USB 장치모델로부터 출력되는 신호를 확인함으로써 상기 USB 장치를 테스트하는 시뮬레이터를 더 구비할 수 있다.
삭제
상기 USB 장치 테스트 시스템은 상기 USB 호스트와 USB 장치 사이에 연결되어, 상기 USB 호스트로부터 출력되는 상기 USB 패킷 트레이스를 수신하고, 수신된 상기 USB 패킷 트레이스를 상기 토큰 생성 모듈로 출력하는 USB 패킷 로거를 더 구비할 수 있다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일실시예에 따른 USB 패킷 트레이스 변환 장치를 구비하는 USB 장치 테스트 시스템의 블록도를 나타낸다.
도 1을 참조하면, 본 발명에 따른 USB 장치 테스트 시스템(10)은 USB 패킷 트레이스 변환장치(100)를 구비한다.
상기 USB 장치 테스트 시스템(10)은 USB 패킷 로거(230) 및/또는 호스트 모델(300)을 더 구비할 수 있다.
상기 USB 패킷 트레이스 변환장치(100)는 저장장치(140), 토큰 생성 모듈(110), 신택스 트리 결정 모듈(120), 및 호스트 코드 생성 모듈(130)을 구비한다.
상기 저장장치(140)는 USB 패킷 트레이스에 포함될 수 있는 익스프레션 및 상기 익스프레션에 상응하는 토큰을 포함하는 익스프레션-토큰 테이블과 상기 USB 패킷 트레이스에 포함될 수 있는 익스프레션에 상응하는 적어도 하나의 토큰에 기초하여 생성되는 신택스 트리 포리스트를 저장한다.
상기 저장장치(140)에 상기 익스프레션-토큰 테이블 및 상기 신택스 트리 포리스트를 저장하기 위해 상기 USB 패킷 트레이스에 포함될 수 있는 익스프레션 및 상기 익스프레션에 상응하는 토큰을 소정의 저장장치에 저장하는 과정 및 상기 USB 패킷 트레이스에 포함될 수 있는 익스프레션에 상응하는 적어도 하나의 토큰에 기초하여 생성되는 신택스 트리 포리스트를 소정의 저장 장치에 저장하는 과정을 미리 거칠 수 있다.
상기 USB 패킷 트레이스는 USB 호스트(예컨대, 컴퓨터: 210)가 USB 장치(220)로 출력하는 패킷들의 시퀀스를 의미한다.
도 2는 본 발명의 일실시예에 따른 익스프레션-토큰 테이블을 나타낸다.
도 1과 도 2를 참조하면, 상기 저장장치(140)는 상기 익스프레션-토큰 테이블을 저장한다. 상기 익스프레션-토큰 테이블은 상기 USB 호스트(210)가 상기 USB 장치(220)로 전송하는 패킷 트레이스에 포함될 수 있는 모든 익스프레션을 포함할 수 있는 레귤러 익스프레션(regular expression) 및 상기 레귤러 익스프레션에 대응하는 토큰을 포함한다.
예컨대, 상기 익스프레션-토큰 테이블은 상기 USB 패킷 트레이스가 "ping addr=3 endp=2 idle=1"이라고 하면, 각각의 익스프레션('ping', 'addr', '=','3', 'endp', '=', '2', 'idle', '=', '1')을 포함할 수 있는 레귤러 익스프레션('PING', 'addr', '=', '[0-9A-F]+', 'endp', 'idle')을 포함한다. 또한, 상기 익스프레션-토큰 테이블은 상기 레귤러 익스프레션('PING', 'addr', '=', '[0-9A-F]+', 'endp', 'idle')에 대응되는 토큰('PING', 'ADDR', 'EQ', 'NUM', 'ENDP', 'IDLE')을 포함한다.
도 3a 내지 도3s는 본 발명의 일실시예에 따른 신택스 트리 포리스트를 나타낸다.
도 1과 도 3a 내지 도3s를 참조하면, 상기 저장장치(140)는 상기 신택스 트리 포리스트를 저장한다. 상기 신택스 트리 포리스트(forest)는 상기 USB 패킷 트레이스의 문법(syntax)에 상응하는 신택스 트리들의 집합을 의미한다.
즉, 상기 USB 패킷 트레이스에 포함되는 패킷들은 상기 도3a 내지 도3s에 도시된 각각의 신택스 트리 또는 상기 신택스 트리들의 조합에 의하여 표현될 수 있다. 예컨대, 도 3i에 도시된 신택스 트리는 'ping' 명령을 외부로 출력하기 위한 패킷 트레이스의 문법을 나타내는데, 상기 'ping' 명령을 외부로 출력하기 위해서는 'PING'이라는 토큰, 어드레스(adrress)를 지정하는 지정문(addr_state), 엔드 포인트(end-point)를 지정하는 지정문(endp_state), 및 아이들 상태(idle)를 지정하는 지정문(idle_state)이 필요하다는 것을 나타낸다.
도 3a 내지 도 3s에 도시된 상기 신택스 트리들의 조합으로 하나의 전체 신택스 트리가 생성되면, 상기 전체 신택스 트리(예컨대, 도 5의 (3))의 단말 노드들은 토큰으로 구성되고, 상기 토큰들의 조합은 수신된 상기 USB 패킷 트레이스들에 대응 되게 된다.
상기 신택스 트리 포리스트의 단말 노드(terminal node) 중 박스를 친 노드(예컨대, 도 3c의 PID, 또는 EQ)는 상기 익스프레션-토큰 테이블에 포함된 토큰을 의미한다.
상기 신택스 트리 각각은 배열(array), 링크드 리스트(linked-list), 더블 링크드 리스트(doubly linked-list), B+ 트리 등으로 구현 될 수 있으나, 본 발명의 권리범위가 이에 한정되지는 않는다.
또한, 본 발명에 따른 USB 패킷 트레이스의 변환 과정은 상기 USB 장치(220)의 로직 오류 또는 상기 USB 장치(220)를 구동하는 펌웨어(firmware)의 오류를 가정하여 상기 USB 장치(220)를 테스트 하는 것이고, 상기 USB 호스트(210)로부터 출력되는 상기 USB 패킷 트레이스의 문법 오류(syntax error)는 없다고 가정하므로 상기 USB 패킷 트레이스에 포함되는 문장(sentence)들은 상기 신택스 트리 포리스트로 표현되는 문법에 일치하게 된다.
따라서, 상기 USB 패킷 트레이스를 상기 익스프레션-토큰 테이블 및 상기 신택스 트리 포리스트를 이용하여 RTL/NET 시뮬레이션에서 사용 가능한 코드로 변환하게 된다.
도 4는 본 발명에 따른 USB 장치 테스트 방법의 플로우 챠트이다.
도 1 및 도 4를 참조하면, 상기 저장장치(140)는 하드 디스크 드라이브, 자기 디스크 드라이브, 및 광 디스크 드라이브로 구현될 수 있고, 또한 베르누이 카트리지, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM) 등으로 구현될 수도 있다.
상기 토큰 생성 모듈(110)은 상기 USB 호스트(210)로부터 출력되는 상기 USB 패킷 트레이스를 수신(S10)하고 수신된 상기 USB 패킷 트레이스에 상응하는 적어도 하나의 토큰을 상기 저장장치(140)에 저장된 상기 익스프레션-토큰 테이블에 기초하여 생성한다(S20).
상기 토큰 생성 모듈(110)은 수신된 상기 USB 패킷 트레이스에 포함된 익스프레션을 상기 저장장치(140)에 저장된 익스프레션-토큰 테이블에서 검색하고(S21), 검색된 상기 익스프레션을 상기 익스프레션에 상응하는 상기 익스프레션-토큰 테이블에 저장된 토큰으로 생성할 수 있다(S23). 상기 USB 패킷 트레이스에 포함된 모든 익스프레션을 상응하는 토큰으로 생성할 때 까지(S25) 상기의 익스프레션을 토큰으로 생성하는 과정(S21, S23)을 반복할 수 있다.
상기 신택스 트리 결정 모듈(120)은 생성된 상기 적어도 하나의 토큰에 상응하는 신택스 트리를 상기 저장장치(140)에 저장된 상기 신택스 트리 포리스트에 기초하여 결정한다(S30).
상기 신택스 트리 결정 모듈은(120)은 생성된 상기 적어도 하나의 토큰을 상기 저장장치(140)에 저장된 신택스 트리 포리스트에서 검색하고(S31), 검색된 신택스 트리가 상기 적어도 하나의 토큰에 상응하는 신택스 트리인지를 결정할 수 있다(S33).
상기 호스트 코드 생성 모듈(130)은 결정된 상기 신택스 트리에 상응하는 USB 호스트 모델용 코드를 생성한다. 먼저 상기 호스트 코드 생성 모듈(130)은 결정된 상기 신택스 트리의 서브트리를 호스트 모델용 코드로 변환할 수 있다(S41). 상기 호스트 코드 생성 모듈(130)은 상기 신택스 트리의 모든 서브트리를 변환하면(S43), 상기 신택스 트리의 루트(root)를 호스트 모델용 코드로 변환할 수 있다(S45).
상기 USB 패킷 트레이스 변환 장치(100)의 동작을 도 5를 참조하여 구체적으로 설명하면 다음과 같다.
도 5는 본 발명의 일실시예에 따른 USB 패킷 트레이스의 변환과정을 나타낸다.
도 1, 도 4 및 도 5를 참조하면, 상기 토큰 생성 모듈(110)은 "ping addr=3 endp=2 idle=1"이라는 패킷 트레이스를 수신한다(S10). 상기 토큰 생성 모듈(110)은 상기 패킷 트레이스를 상기 USB 패킷 로거(230)로부터 수신할 수 있다.
상기 토큰 생성 모듈(110)은 상기 패킷 트레이스의 첫 번째 익스프레션('ping')을 익스프레션-토큰 테이블에서 검색할 수 있다(S21). 상기 토큰 생성 모듈(110)은 상기 첫 번째 익스프레션('ping')에 상응하는 토큰('PING')을 생성할 수 있다(S23). 또한, 상기 토큰 생성 모듈(110)은 모든 익스프레션을 상응하는 토큰으로 생성하였는지 판단하고(S25), 토큰으로 생성되지 않은 익스프레션이 없을 때까지 토큰을 생성한다. 생성된 토큰은 도 5의 (2)와 같이 된다.
상기 신택스 트리 결정 모듈(120)은 상기 생성된 토큰에 기초하여 신택스 트리를 결정한다(S30). 먼저 첫 번째 토큰(PING)을 노드로 가지는 신택스 트리를 도 3a 내지 도 3s에 도시된 신택스 트리 포리스트에서 검색한다(S31). 상기 첫 번째 토큰(PING)을 노드로 가지는 신택스 트리는 도 3i의 신택스 트리 뿐이므로 상기 도 3i의 신택스 트리가 결정된다(S33).
상기 도 3i의 신택스 트리의 두 번째 서브트리는 addr_state 이므로 addr_state에 상응하는 신택스 트리를 상기 도 3a 내지 도 3s에 도시된 신택스 트리에서 검색한다(S31). addr_state에 상응하는 신택스 트리는 도 3o에 도시된 신택스 트리 뿐이므로 상기 도 3o에 도시된 신택스 트리가 결정된다(S33).
다음 서브트리는 endp_state 이고 endp_state에 상응하는 신택스 트리를 도 3a 내지 도 3s에 도시된 신택스 트리 포리스트에서 검색한다(S31). endp_state에 상응하는 신택스 트리는 도 3r에 도시된 신택스 트리 뿐이므로 도 3r에 도시된 신택스 트리가 결정된다(S33).
다음 서브트리는 idle_state이고 idle_state에 상응하는 신택스 트리를 도 3a 내지 도 3s에 도시된 신택스 트리 포리스트에서 검색한다(S31). Idle_state에 상응하는 신택스 트리는 도 3p 와 도 3q가 존재한다. 도 3p의 노드들(IDLE, EQ, NUM)을 탐색하면 상기 도 5의 (2)와 일치하므로 도 3p가 선택된다. 도3q의 노드들(IDLE, EQ, TO_EOF)을 탐색하면 상기 도 5의 (2)와 일치하지 않으므로 도 3q에 도시 된 신택스 트리는 선택되지 않는다. 상기와 같은 과정을 거쳐서 결정되는 신택스 트리는 도 5의 (3)에 도시된 바와 같다.
상기 도 5의 (3)에 도시된 신택스 트리에 기초하여 상기 호스트 코드 생성 모듈(130)은 호스트 모델용 코드를 생성한다(S40). 상기 호스트 코드 생성 모듈(130)은 결정된 상기 신택스 트리의 서브 트리부터 탐색하면서 상기 신택스 트리에 대응하는 호스트 코드를 생성한다.
먼저 상기 도 5의 (3)에 도시 된 신택스 트리의 첫 번째 서브트리('PING'을 루트로 하는 서브트리)를 호스트 모델용 코드로 변환하다(S41). 상기 첫 번째 서브트리는 토큰(PING)을 루트로 하는 서브 트리이므로 아무런 코드가 생성되지 않는다.
상기 호스트 코드 생성 모듈(130)은 모든 서브 트리가 호스트 모델용 코드로 변환되지 않았으므로(S43), 다음 서브트리('addr_state'를 루트로 하는 서브트리)를 호스트 모델용 코드로 변환한다(S41). 상기 서브트리('addr_state'를 루트로 하는 서브트리)를 호스트 모델용 코드로 변환하기 위해서는 역시 상기 서브트리('addr_state'를 루트로 하는 서브트리)의 서브트리부터 변환한다(S41). 그런데 모든 서브트리가 토큰들(ADDR, EQ, NUM)로 구성되므로, 상기 모든 서브트리를 코드로 변환한 결과 아무런 코드가 생성되지 않고, 상기 서브트리('addr_state'를 루트로 하는 서브트리)의 루트를 호스트 모델용 코드로 변환(S45)하면 'USB_pkt.addr=atoi($3);'이 생성된다.
상기 호스트 코드 생성 모듈(130)은 다음 서브트리('endp_state'를 루트로 하는 서브트리)를 호스트 모델용 코드로 변환한다(S41). 상기 서브트리('endp_state'를 루트로 하는 서브트리)를 호스트 모델용 코드로 변환하기 위해서는 역시 상기 서브트리('endp_state'를 루트로 하는 서브트리)의 서브트리부터 변환한다(S41). 그런데, 모든 서브트리가 토큰들(ENDP, EQ, NUM)로 구성되므로, 상기 모든 서브트리를 코드로 변환한 결과 아무런 코드가 생성되지 않고, 상기 서브트리('endp_state'를 루트로 하는 서브트리)의 루트를 호스트 모델용 코드로 변환하면(S45) 'USB_pkt. endp =atoi($3);'이 생성된다.
상기 호스트 코드 생성 모듈(130)은 다음 서브트리('idle_state'를 루트로 하는 서브트리)를 호스트 모델용 코드로 변환한다(S41). 상기 서브트리('idle_state'를 루트로 하는 서브트리)를 호스트 모델용 코드로 변환하는 과정도 상기 서브트리들('addr_state' 및 'endp_state'를 루트로 하는 서브트리)을 호스트 모델용 코드로 변환하는 과정과 유사하다. 다만, 상기 서브트리('idle_state'를 루트로 하는 서브트리)의 루트를 호스트 모델용 코드로 변환해도(S45) 아무런 코드가 생성되지 않는다.
상기 신택스 트리('out_ping_state'를 루트로 하는 신택스 트리)의 모든 서브트리들에 대한 코드 변환이 완료되었으므로(S43), 루트를 호스트 모델용 코드로 변환하면(S45) 'USB_pkt.do(ping);'이 생성된다.
최종적으로 생성된 호스트 모델용 코드는 도 5의 (4)에 도시 된 바와 같다.
상술한 바와 같이 결정된 신택스 트리를 호스트 모델용 코드로 변환하는 방법을 yacc_notation(yet another compiler compiler_notation)으로 나타내면 다음과 같다. 하지만, 다음의 코드는 호스트 모델용 코드가 USB eVC(e Verification Components) 코드인 경우를 위한 코드의 일 실시예일 뿐이고, 호스트 모델용 코드의 종류 및 구현의 방법에 따라 다른 방법으로 구현이 가능할 수 있으므로, 본 발명의 권리 범위가 이에 한정되지는 않는다.
%{
#include <stdio.h>
int transfer_cnt = 1;
struct USB_packet {
    int addr;
    int endp;
    unsigned long data[1024];
    int len;
};
struct USB_packet USB_pkt;
%}
 
%token OUT ADDR ENDP PID EQ IN DATA SETUP PING IDLE TO_EOF sdata LBRACE
%token RBRACE FRAME AUTO
%token EMPTY_FRAME EXPECTED_PID ACK NAK  PRETRY BOOL PNYET NYET
%union
{
    char string[10];
}
%token <string> NUM
%%
top_state:
          state_ment
        | top_state state_ment
        ;
state_ment:
          PID EQ out_state
         |PID EQ in_state
         |PID EQ ack_state
         |PID EQ setup_state
         |PID EQ out_ping_state
         |frame_state
         |empty_frame_state
         |expected_pid_state
         ;
setup_state:
         SETUP addr_state endp_state ping_state idle_state PID EQ data_state
         ;
ping_state:
        PRETRY EQ BOOL PNYET EQ BOOL
        ;
 
ack_state:
       ACK idle_state
       ;
frame_state:
         FRAME EQ AUTO idle_state
         ;
empty_frame_state:
           EMPTY_FRAME EQ NUM
         ;
expected_pid_state:
         EXPECTED_PID EQ ACK idle_state
        |EXPECTED_PID EQ NAK idle_state
        |EXPECTED_PID EQ DATA idle_state
        |EXPECTED_PID EQ NYET idle_state
        ;
 
out_state:
       OUT addr_state endp_state idle_state PID EQ data_state
       {
 
            int i;
            fprintf(stdout,"\t\twrite(p_host.get_pipe(%d, %d, OUT)", USB_pkt.addr, USB_pkt.endp);
            if(USB_pkt.len != 0)
            {
            fprintf(stdout,",{");
            for(i = 0; i < USB_pkt.len ; i++)
            {
              fprintf(stdout,"%d", USB_pkt.data[i]);
              if( i != USB_pkt.len -1) fprintf(stdout,";");
             }
             fprintf(stdout,"});₩n");
            } else {
              fprintf(stdout, ",{});");
            }
            USB_pkt.len = 0;
            transfer_cnt++;
            
       }
       ;
idle_state:
        IDLE EQ NUM
        | IDLE EQ TO_EOF
        ;
in_state:
      IN addr_state endp_state idle_state
      {
          fprintf(stdout,"\t\td = read(p_host.get_pipe(%d, %d,IN));₩n", USB_pkt.addr, USB_pkt.endp);
          transfer_cnt++;
      }
      | IN addr_state endp_state
      {
          fprintf(stdout,"\t\td = read(p_host.get_pipe(%d, %d,IN));₩n", USB_pkt.addr, USB_pkt.endp);
          transfer_cnt++;
      }
      ;
out_ping_state:
      PING addr_state endp_state idle_state
      ;
data_state:
        DATA  ctx_state  idle_state
        {
 
        }
 
        ;
ctx_state:
         sdata EQ LBRACE num_series RBRACE
       | sdata EQ LBRACE RBRACE
       ;
num_series:
      NUM {
          USB_pkt.data[USB_pkt.len++] = (unsigned long)strtol($1, NULL, 16);
      }
      | num_series NUM
      {
          USB_pkt.data[USB_pkt.len++] = (unsigned long)strtol($2, NULL, 16);
      }
       ;
addr_state:
      ADDR EQ NUM {USB_pkt.addr = atoi($3);}
      ;
endp_state:
      ENDP EQ NUM {USB_pkt.endp = atoi($3);}
      ;
다시 도 1을 참조하면, 상기 USB 장치 테스트 시스템(10)은 상기 USB 패킷 로거(230)를 더 구비할수 있다. 상기 USB 패킷 로거(230)는 상기 USB 호스트(210)와 상기 USB 장치(220) 사이에 연결되어 상기 USB 호스트로(210)부터 출력되는 상기 USB 패킷 트레이스를 수신하고, 수신된 상기 USB 패킷 트레이스를 상기 토큰 생성 모듈(110)로 출력한다.
즉, 상기 토큰 생성 모듈(110)은 상기 USB 호스트(210)로부터 상기 USB 장치(220)로 출력되는 상기 USB 패킷 트레이스를 상기 USB 패킷 로거(230)를 통하여 수신할 수 있게 된다. 상기 USB 패킷 로거(230, 예컨대 CATC(Computer Access Technology Corporation)의 USB 패킷 어넬라이저(analyzer))는 상기 USB 호스트(210)와 상기 USB 장치(220) 사이에 연결되어 상기 USB 호스트(210)가 상기 USB 장치(220)로 출력하는 패킷 트레이스를 기록하는 파일을 생성하게 된다. 상기 파일은 utg 파일일 수 있다.
상기 호스트 모델(300)은 상기 호스트 코드 생성 모듈(130)로부터 출력된 상기 호스트 모델용 코드를 수신하고, 수신된 상기 호스트 모델용 코드에 상응하는 호스트 신호를 출력한다. 상기 호스트 모델(300)은 상기 호스트 신호를 USB 장치 모델(미도시)로 출력할 수 있다. 상기 호스트 신호를 수신한 상기 USB 장치 모델은 상기 호스트 신호에 응답하여 상응하는 신호를 출력할 수 있고, 사용자는 시뮬레이터(미도시)를 통해 상기 USB 장치 모델에서 출력되는 신호를 확인하여 상기 USB 장치를 테스트 할 수 있게 되는 것이다. 상기 호스트 코드 생성 모듈(130), 상기 USB 장치 모델, 및 상기 시뮬레이터는 하나의 시뮬레이션 블록으로 구현될 수 있다.
즉, 실제 USB 호스트(210)가 실제 USB 장치(220)로 출력하는 USB 패킷 트레이스를 상기 호스트 모델(300)이 사용할 수 있는 호스트 모델용 코드로 상기 USB 패킷 트레이스 변환 장치가 변환하고, 상기 호스트 모델(300)은 상기 USB 장치 모델로 상기 호스트 모델용 코드에 상응하는 호스트 신호를 출력하게 되고 상기 USB 장치 모델은 상기 호스트 신호에 응답하여 상응하는 신호를 출력하게 됨으로써, 실제 상황과 동일한 오류상황에서 USB 장치의 동작 및 발생 신호를 테스트 할 수 있게 되는 것이다.
상기 호스트 모델(300)은 USB eVC(e Verification Components)일 수 있고,
상기 USB 장치 모델은 Verilog, Synopsis' VCS, 또는 Mentor's Modelism 등을 통하여 RTL 레벨의 디자인을 할 수 있다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
상술한 바와 같이 본 발명에 따른 USB 장치 테스트 방법 및 그 시스템은 실제와 동일한 에러 상황 재현과 RTL/NET 시뮬레이션에서와 동일한 내부 신호, 장치 상태에 대하여 시뮬레이션 할 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 일실시예에 따른 USB 패킷 트레이스 변환 장치를 구비하는 USB 장치 테스트 시스템의 블록도를 나타낸다.
도 2는 본 발명의 일실시예에 따른 익스프레션-토큰 테이블을 나타낸다.
도 3a 내지 도3s는 본 발명의 일실시예에 따른 신택스 트리 포리스트를 나타낸다.
도 4는 본 발명에 따른 USB 장치 테스트 방법의 플로우 챠트이다.
도 5는 본 발명의 일실시예에 따른 USB 패킷 트레이스의 변환과정을 나타낸다.

Claims (16)

  1. USB 패킷 트레이스 변환장치가 USB 호스트로부터 출력되는 USB 패킷 트레이스를 수신하는 USB 패킷 트레이스 수신 단계;
    수신된 상기 USB 패킷 트레이스에 상응하는 적어도 하나의 토큰을 생성하는 토큰 생성 단계;
    생성된 상기 적어도 하나의 토큰에 상응하는 신택스 트리를 결정하는 신택스 트리 결정 단계;
    결정된 상기 신택스 트리에 상응하는 USB 호스트 모델용 코드를 생성하는 호스트 코드 생성 단계; 및
    상기 생성된 USB 호스트 모델용 코드에 기초하여 USB 장치를 테스트하는 단계를 구비하는 USB 장치 테스트 방법.
  2. 제1항에 있어서, 상기 USB 패킷 트레이스 수신 단계는,
    상기 USB 호스트로부터 출력되는 상기 USB 패킷 트레이스를 USB 패킷 로거가 수신하는 단계; 및
    상기 USB 패킷 로거로부터 출력된 상기 USB 패킷 트레이스를 상기 USB 패킷 트레이스 변환장치가 수신하는 단계를 구비하는 USB 장치 테스트 방법.
  3. 제2항에 있어서, 상기 USB 패킷 로거는,
    상기 USB 패킷 트레이스를 utg 파일로 생성하여 상기 USB 패킷 트레이스 변환장치로 출력하는 USB 장치 테스트 방법.
  4. 제 1항에 있어서, 상기 USB 장치 테스트 방법은
    상기 USB 패킷 트레이스에 포함될 수 있는 익스프레션 및 상기 익스프레션에 상응하는 토큰을 포함하는 익스프레션- 토큰 테이블과 상기 USB 패킷 트레이스에 포함될 수 있는 익스프레션에 상응하는 적어도 하나의 토큰에 기초하여 생성되는 신택스 트리 포리스트를 소정의 저장장치에 저장하는 단계를 더 구비하는 USB 장치 테스트 방법.
  5. 제 4항에 있어서, 상기 토큰 생성 단계는,
    상기 수신된 상기 USB 패킷 트레이스에 포함된 익스프레션을 상기 저장장치에 저장된 상기 익스프레션-토큰 테이블에서 검색하는 단계; 및
    검색된 상기 익스프레션에 기초하여 상기 익스프레션에 상응하는 상기 익스프레션-토큰 테이블에 저장된 토큰으로 생성하는 단계를 구비하는 USB 장치 테스트 방법.
  6. 제 4항에 있어서, 상기 신택스 트리 결정 단계는,
    생성된 상기 적어도 하나의 토큰을 상기 저장장치에 저장된 상기 신택스 트리 포리스트에서 검색하는 단계; 및
    검색된 신택스 트리가 상기 적어도 하나의 토큰에 상응하는 신택스 트리인지를 결정하는 단계를 구비하는 USB 장치 테스트 방법.
  7. 제 1항에 있어서, 상기 호스트 코드 생성 단계는
    결정된 상기 신택스 트리의 서브 트리부터 탐색하면서 상기 신택스 트리에 대응하는 USB 호스트 코드를 생성하는 단계를 구비하는 USB 장치 테스트 방법.
  8. 제1항에 있어서, 상기 USB 호스트 모델용 코드는,
    USB eVC 호스트 코드인 USB 장치 테스트 방법.
  9. 제1항 내지 제8항 중 어느 한 항에 기재된 방법을 수행하기 위한 프로그램을 기록한 기록매체.
  10. USB 패킷 트레이스에 포함될 수 있는 익스프레션 및 상기 익스프레션에 상응하는 토큰을 포함하는 익스프레션-토큰 테이블과 상기 USB 패킷 트레이스에 포함될 수 있는 익스프레션에 상응하는 적어도 하나의 토큰에 기초하여 생성되는 신택스 트리 포리스트를 저장하기 위한 저장장치;
    USB 호스트로부터 출력되는 상기 USB 패킷 트레이스를 수신하고 수신된 상기 USB 패킷 트레이스에 상응하는 적어도 하나의 토큰을 상기 익스프레션-토큰 테이블에 기초하여 생성하기 위한 토큰 생성 모듈;
    생성된 상기 적어도 하나의 토큰에 상응하는 신택스 트리를 상기 신택스 트리 포리스트에 기초하여 결정하기 위한 신택스 트리 결정 모듈; 및
    결정된 상기 신택스 트리에 상응하는 USB 호스트 모델용 코드를 생성하는 호스트 코드 생성 모듈을 구비하며,
    상기 생성된 USB 호스트 모델용 코드에 기초하여 USB 장치를 테스트하는 USB 장치 테스트 시스템.
  11. 제 10항에 있어서, 상기 토큰 생성 모듈은,
    상기 USB 호스트로부터 출력되는 상기 USB 패킷 트레이스를 USB 패킷 로거를 통하여 수신하는 USB 장치 테스트 시스템.
  12. 제 10항에 있어서, 상기 토큰 생성 모듈은,
    수신된 상기 USB 패킷 트레이스에 포함된 익스프레션을 상기 저장장치에 저장된 익스프레션-토큰 테이블에서 검색하고,
    검색된 상기 익스프레션에 기초하여 상기 익스프레션에 상응하는 상기 익스프레션-토큰 테이블에 저장된 토큰으로 생성하는 USB 장치 테스트 시스템.
  13. 제 10항에 있어서, 상기 신택스 트리 결정 모듈은,
    생성된 상기 적어도 하나의 토큰을 상기 저장장치에 저장된 신택스 트리 포리스트에서 검색하고,
    검색된 신택스 트리가 상기 적어도 하나의 토큰에 상응하는 신택스 트리인지를 결정하는 USB 장치 테스트 시스템.
  14. 제 10항에 있어서, 상기 호스트 코드 생성 모듈은
    결정된 상기 신택스 트리의 서브 트리부터 탐색하면서 상기 신택스 트리에 대응하는 USB 호스트 모델용 코드를 생성하는 USB 장치 테스트 시스템.
  15. 제 10항에 있어서, 상기 USB 장치 테스트 시스템은
    상기 USB 호스트 모델용 코드를 수신하고, 상기 USB 호스트 모델용 코드에 상응하는 호스트 신호를 생성하는 호스트 모델;
    상기 호스트 신호를 수신하고, 상기 수신된 호스트 신호에 상응하는 신호를 출력하는 USB 장치 모델; 및
    상기 USB 장치모델로부터 출력되는 신호를 확인함으로써 상기 USB 장치를 테스트하는 시뮬레이터를 더 구비하는 USB 장치 테스트 시스템.
  16. 제 11항에 있어서, 상기 USB 장치 테스트 시스템은
    상기 USB 호스트와 USB 장치 사이에 연결되어, 상기 USB 호스트로부터 출력되는 상기 USB 패킷 트레이스를 수신하고, 수신된 상기 USB 패킷 트레이스를 상기 토큰 생성 모듈로 출력하는 USB 패킷 로거를 더 구비하는 USB 장치 테스트 시스템.
KR1020060070589A 2006-07-27 2006-07-27 Usb 장치 테스트 방법 및 그 시스템 KR100849223B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020060070589A KR100849223B1 (ko) 2006-07-27 2006-07-27 Usb 장치 테스트 방법 및 그 시스템
US11/781,656 US7770066B2 (en) 2006-07-27 2007-07-23 Method and system for converting USB

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060070589A KR100849223B1 (ko) 2006-07-27 2006-07-27 Usb 장치 테스트 방법 및 그 시스템

Publications (2)

Publication Number Publication Date
KR20080010528A KR20080010528A (ko) 2008-01-31
KR100849223B1 true KR100849223B1 (ko) 2008-07-31

Family

ID=38987725

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060070589A KR100849223B1 (ko) 2006-07-27 2006-07-27 Usb 장치 테스트 방법 및 그 시스템

Country Status (2)

Country Link
US (1) US7770066B2 (ko)
KR (1) KR100849223B1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4422134B2 (ja) * 2006-09-29 2010-02-24 Okiセミコンダクタ株式会社 Usbテスト回路
US8001428B2 (en) * 2007-10-29 2011-08-16 Arm Limited Packing trace protocols within trace streams
US8990447B1 (en) * 2008-03-31 2015-03-24 Total Phase, Inc. Methods for embedding an out-of-band signal into a USB capture stream
US9836376B2 (en) 2009-09-24 2017-12-05 Contec, Llc Method and system for automated test of end-user devices
EP2338539A1 (de) 2009-12-23 2011-06-29 ECP Entwicklungsgesellschaft mbH Pumpeneinrichtung mit einer Detektionseinrichtung
US8446834B2 (en) * 2011-02-16 2013-05-21 Netauthority, Inc. Traceback packet transport protocol
US8949954B2 (en) 2011-12-08 2015-02-03 Uniloc Luxembourg, S.A. Customer notification program alerting customer-specified network address of unauthorized access attempts to customer account
AU2012100460B4 (en) 2012-01-04 2012-11-08 Uniloc Usa, Inc. Method and system implementing zone-restricted behavior of a computing device
AU2012100462B4 (en) 2012-02-06 2012-11-08 Uniloc Usa, Inc. Near field authentication through communication of enclosed content sound waves
AU2013100355B4 (en) 2013-02-28 2013-10-31 Netauthority, Inc Device-specific content delivery
US10462456B2 (en) 2016-04-14 2019-10-29 Contec, Llc Automated network-based test system for set top box devices
US10779056B2 (en) 2016-04-14 2020-09-15 Contec, Llc Automated network-based test system for set top box devices
US10284456B2 (en) 2016-11-10 2019-05-07 Contec, Llc Systems and methods for testing electronic devices using master-slave test architectures
KR102350941B1 (ko) * 2021-05-25 2022-01-14 주식회사 바움디자인시스템즈 집적 회로 설계 방법 및 이를 수행하는 집적 회로 설계 시스템
CN117251328B (zh) * 2023-11-17 2024-01-26 先进操作系统创新中心(天津)有限公司 一种usb外设远程适配方法及系统

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6393588B1 (en) * 1998-11-16 2002-05-21 Windbond Electronics Corp. Testing of USB hub
US6389560B1 (en) * 1999-01-19 2002-05-14 Sun Microsystems, Inc. Universal serial bus interpreter
US6343260B1 (en) * 1999-01-19 2002-01-29 Sun Microsystems, Inc. Universal serial bus test system
US6732301B1 (en) * 2000-03-06 2004-05-04 Hewlett-Packard Development Company, L.P. Serial bus diagnostic port of a digital system
US6772253B1 (en) * 2000-12-20 2004-08-03 Intel Corporation Method and apparatus for shared system communication and system hardware management communication via USB using a non-USB communication device
TW569013B (en) * 2002-02-21 2004-01-01 Via Tech Inc Chip test method for testing host controller of universal serial bus
US6615371B2 (en) * 2002-03-11 2003-09-02 American Arium Trace reporting method and system
US6769622B1 (en) * 2003-03-14 2004-08-03 Stmicroelectronics, Inc. System and method for simulating universal serial bus smart card device connected to USB host
US20070265822A1 (en) * 2006-05-11 2007-11-15 Arm Limited Data processing system and method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CATC™ USB Chief™ Bus & Protocol Analyzer User’s Manual, Computer Access Technology Corporation, 2001.11.09.

Also Published As

Publication number Publication date
KR20080010528A (ko) 2008-01-31
US20080028114A1 (en) 2008-01-31
US7770066B2 (en) 2010-08-03

Similar Documents

Publication Publication Date Title
KR100849223B1 (ko) Usb 장치 테스트 방법 및 그 시스템
RU2430409C2 (ru) Методология измерения покрытия в структурном состоянии взаимного соединения
KR101840905B1 (ko) 상태 기계 격자에서의 카운터 동작
US20160306736A1 (en) Translation verification testing
US8078915B2 (en) System and method for verifying operation of a target system
CN103853650A (zh) 一种模糊测试的测试用例生成方法及装置
CN100442293C (zh) 合并硬件设计语言的原始档案与查验资料档案的方法
US8555234B2 (en) Verification of soft error resilience
US20090204931A1 (en) Method And Apparatus For Processing Assertions In Assertion-Based Verification of A Logic Design
CN109062794A (zh) 一种软件测评结果的确定方法、装置及电子设备
KR102165134B1 (ko) 상태 기계 엔진에서 상태 벡터 데이터를 사용하기 위한 방법들 및 시스템들
CN105468797B (zh) 一种信息处理方法及装置
CN101872369A (zh) 规范化表示中的自适应状态-符号转换
CN110781091B (zh) 应用程序的测试方法、装置、电子设备及存储介质
US9524366B1 (en) Annotations to identify objects in design generated by high level synthesis (HLS)
US6990438B1 (en) Method and apparatus for observability-based code coverage
CN112363706A (zh) 一种嵌套组合的预处理方法及设备
CN111400169A (zh) 一种自动化生成用于测试软硬件的网表文件的方法及系统
Quaritsch et al. Pymbd: A library of mbd algorithms and a light-weight evaluation platform
CN104898991A (zh) 一种基于自动化ral的寄存器访问方法及系统
US20090222778A1 (en) Property generating apparatus, property generating method and program
Blanchard et al. Logic against ghosts: comparison of two proof approaches for a list module
CN110286912A (zh) 代码检测方法、装置及电子设备
CN110471810B (zh) 一种记录数字逻辑设计工程工作状态的方法及系统
CN108334313A (zh) 用于大型soc研发的持续集成方法、装置及代码管理系统

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20110705

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee