KR100939642B1 - 소프트웨어 기반의 스티뮬러스를 생성하는 검증 장치, 상기검증 장치를 이용한 검증 방법 및 소프트웨어 기반의 스티뮬러스를 생성하는 프로그램이 구비된 컴퓨터 기록매체 - Google Patents

소프트웨어 기반의 스티뮬러스를 생성하는 검증 장치, 상기검증 장치를 이용한 검증 방법 및 소프트웨어 기반의 스티뮬러스를 생성하는 프로그램이 구비된 컴퓨터 기록매체 Download PDF

Info

Publication number
KR100939642B1
KR100939642B1 KR1020080110133A KR20080110133A KR100939642B1 KR 100939642 B1 KR100939642 B1 KR 100939642B1 KR 1020080110133 A KR1020080110133 A KR 1020080110133A KR 20080110133 A KR20080110133 A KR 20080110133A KR 100939642 B1 KR100939642 B1 KR 100939642B1
Authority
KR
South Korea
Prior art keywords
level language
stimulus
test code
hdl
generating
Prior art date
Application number
KR1020080110133A
Other languages
English (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 전자부품연구원
Priority to KR1020080110133A priority Critical patent/KR100939642B1/ko
Application granted granted Critical
Publication of KR100939642B1 publication Critical patent/KR100939642B1/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/263Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/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
    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • 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
    • 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/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • 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/451Execution arrangements for user interfaces
    • G06F9/453Help systems

Abstract

본 발명에서는, 라이브러리화된 하드웨어 레벨 언어로 기술되는 태스크(task)를 라이브러리화된 코드를 참조하여, 소프트웨어 레벨의 언어로 기술되는 테스트 코드(test code)로 생성하고, 상기 생성된 소프트웨어 레벨의 언어로 기술되는 테스트 코드(test code)를 상기 하드웨어 레벨 언어로 기술되는 스티뮬러스 파일로 생성한다. 이후, 상기 생성된 스티뮬러스 파일을 이용하고, VPI기반에서 생성된 가상의 터미널을 통하여 실시간으로 생성된 검증 명령에 의하여 상기 하드웨어 레벨의 언어로 기술되는 회로의 특성을 검증한다. 이러한 본 발명에 의하면, 소프트웨어 레벨의 언어를 기반으로 테스트 스티뮬러스를 생성하여 테스트 커버리지를 향상하고, 실시간으로 연동하는 검증 명령을 생성함에 따라 유연성을 증진한다.

Description

소프트웨어 기반의 스티뮬러스를 생성하는 검증 장치, 상기 검증 장치를 이용한 검증 방법 및 소프트웨어 기반의 스티뮬러스를 생성하는 프로그램이 구비된 컴퓨터 기록매체{TEST DEVICE GENERATING STIMULUS BASED ON SOFTWARE, METHOD FOR TESTING USING THE SAME AND COMPUTER-READABLE STORAGE MEDIUM STORGED PROGRAM FOR GENERATING THE STIMULUS}
본 발명은 HDL(Hardware Description Language)로 설계된 검증유닛을 시뮬레이션하는 검증 장치에 관한 것이다.
HDL(Hardware Description Language)은 ASIC(application specific integrated circuit), VLSI(very large scale integration) 회로 등의 전자 회로 설계시 사용되는 언어이다.
HDL을 이용한 회로의 설계는 사용되는 각 부품들의 상호 연결 관계를 일정한 문법에 의하여 기술하고, 기술된 결과는 해당 시뮬레이터를 통하여 시뮬레이션이 가능하다. 이를 통해, 설계된 회로의 특성을 검증하고, 최종적으로는 해당되는 회로의 패턴까지 완성할 수 있게 된다. 이러한 HDL 중 한 예로서, 베릴로그 HDL(Verilog HDL) 등이 있다. 베릴로그 HDL을 이용하여 설계된 로직(logic)은 베릴 로그 시뮬레이터(simulator)로 시뮬레이션(simulation)을 하게 된다.
HDL로 설계된 회로(또는 모듈(Module), 블록(Block))에 대한 IP(Intellectual Property) 검증과정은 외부에서 스티뮬러스(stimulus)를 입력값으로서 인가하고, 이에 대한 출력을 검토하는 과정으로 진행된다. 즉, 결과를 예측할 수 있는 입력 벡터에 대하여 출력되는 결과값을 예측값과 비교하는 방식으로 진행된다. 따라서, 스티뮬러스는 검증하고자 하는 회로와의 인터페이싱을 고려하여 HDL로 기술되는 것이 일반적이다.
그러나 이러한 HDL로 기술되는 입력벡터를 생성하는 방식은 또 다른 하나의 IP를 설계하는 것이 복잡하여서 검증벡터를 위한 검증이 필요하다. 따라서 많이 시행착오와 시간이 요구된다. 최근 이러한 문제점을 개선하기 위해 전자설계용 툴(Electronic Design Automation tool: EDA tool)을 공급하는 업체들은 시스템 레벨의 SystemVerilog나 System C 혹은 e-언어 등의 전문 언어 기반의 검증툴을 개발하고 있으나, 이러한 EDA tool을 개발하는 과정 또한 많은 비용과 노력이 요구된다.
한편, 검증 시스템의 테스트 커버리지(Test Coverage)를 높이기 위해서는 다양한 테스트 케이스가 모델링되어야 한다. 즉, 다양한 테스트 벡터와 이에 대한 다양한 결과값을 예측할 수 있도록 다양한 테스트 케이스를 모델링하는 것이 중요하다.
HDL로 기술되는 테스트 벡터는 타이밍 기반의 동작은 유효하게 기술할 수 있으나 시스템 레벨에서의 기술은 제한적이다. 더욱이 최근에는 실시간으로 연동하여 수행되어야 하는 테스트 벡터가 요구되는 실정이다. 그러나 종래의 테스트벤치 시스템에서는 상호연동하기 위해서는 별도의 에뮬레이트 툴이 필요하다.
도 1은 일반적인 검증 시스템의 구성을 보인 블록도이다.
도 1을 참조하면, HDL로 구현된 테스트 대상(DUT)에는 외부에서 HDL로 구현된 결과값을 예측할수 있는 스티뮬러스를 입력으로서 인가되고, 이에 대한 결과는 덤프(Dump) 파일로서 저장된다. 저장된 덤프 파일은 출력장치를 통하여 비교 분석된다.
도 1에 도시된 종래의 검증 시스템은 전술한 바와 같이 검증 대상에 HDL로 기술되는 스티뮬러스를 인가함으로써, 하드웨어에 의존적인 HDL의 특성상 많은 제약을 수반한다. 이러한 제약은 테스트 커버리지를 떨어뜨린다.
상위레벨에서 생성하고 운용해 주는 상용의 툴이나 프로그램도 있으나 이러한 프로그램은 비용 및 개발자들의 사용상의 어려움이 있다. 또한 베리로그(Verilog) 시뮬레이터와 연동하는 시스템 레벨에서의 인터프리터 언어도 있으나 이 또한 사용상의 어려움이 있다.
따라서, 본 발명 목적은 HDL과 같은 하드웨어 레벨이 아닌 시스템 레벨 즉, 소프트웨어 레벨의 언어를 기반으로 생성된 스티뮬러스를 생성하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체 및 검증 장치를 제공하는 것이다.
또한, 본 발명의 다른 목적은 상기 기록매체 및 상기 검증 장치를 이용한 검증 방법을 제공하는 것이다.
상기와 같은 기술적 과제를 해결하기 위한 본 발명의 기록매체에는 하드웨어 레벨 언어로 기술되는 태스크(task)를 라이브러리화된 코드를 참조하여, 소프트웨어 레벨의 언어로 기술되는 테스트 코드(test code)로 생성하는 단계와, 상기 생성된 소프트웨어 레벨의 언어로 기술되는 테스트 코드(test code)를 상기 하드웨어 레벨 언어로 기술되는 스티뮬러스 파일로 생성하는 단계와, 상기 생성된 스티뮬러스 파일을 이용하여 상기 하드웨어 레벨 언어로 기술되는 회로의 특성을 검증하는 단계를 실행시키기 위한 프로그램이 기록된다.
상기와 같은 다른 기술적 과제를 해결하기 위한 본 발명의 검증 장치는 상기 HDL로 기술되는 태스크(task)를 라이브러리화된 코드를 참조하여, 소프트웨어 레벨의 언어로 기술되는 테스트 코드(test code)를 생성하는 테스트 코드 생성기와, 상기 생성된 소프트웨어 레벨의 언어로 기술되는 테스트 코드(test code)를 이용하여 상기 하드웨어 레벨의 언어로 기술되는 스티뮬러스 파일로 생성하는 스티뮬러스 생 성기와, 가상의 터미널을 통해 실시간으로 외부로부터 제공되는 검증 커맨드와, 상기 스티뮬러스 파일을 파싱(parsing)하여, 상기 스티뮬러스 파일을 재생성하는 파서(parser); 및 상기 재생성된 스티뮬러스 파일에 따라 상기 검증 유닛의 출력값을 출력하는 출력부를 포함한다.
또한, 상기와 같은 또 다른 기술적 과제를 해결하기 위한 본 발명의 검증 방법은 검증유닛에 대한 검증시나리오를 HDL 기반의 태스크로 기술하는 단계;
상기 HDL 기반의 태스크를 소프트웨어 레벨의 언어로 기술된 시스템콜태스크로 모델링하는 단계와, 모델링된 시스템콜태스크를 라이브러리화하고, 상기 라이브러리화된 코드를 참조하여 소프트웨어 레벨의 언어로 기술되는 테스트 코드를 생성하는 단계와, 상기 소프트웨어 레벨의 언어로 기술되는 테스트 코드와 가상 터미널을 통해 실시간으로 제공되는 상기 소프트웨어 레벨의 언어로 기술되는 검증 커맨드를 파싱(parsing)하는 단계와, 상기 파싱된 테스트 코드와 검증 커맨드를 이용하여 하드웨어 레벨의 언어로 기술되는 스티뮬러스 파일을 생성하는 단계; 및 상기 생성된 스티뮬러스 파일을 테스트벤치에 링크시켜, 상기 검증유닛에 인가하는 단계를 포함한다.
본 발명에 의하면, 베릴로그 HDL과 같은 하드웨어 레벨의 언어가 아닌 c 언어와 같은 소프웨어 레벨의 언어를 이용하여 테스트 코드를 생성한다. 즉, 기존의 유효한 오픈소스기반의 소프트웨어 혹은 개발자 각자에게 익숙한 소프트웨어 형태로 테스트 코드를 작성함으로써, 검증 유닛에 대한 테스트 커버리지를 개선할 수 있다.
이하, 첨부된 도면을 참조하여 본 발명을 상세히 설명하기로 한다.
도 2은 본 발명의 실시예에 따른 스티뮬러스를 이용한 테스트 시스템을 보여주는 도면이다.
도 2를 참조하면, 본 발명의 실시예에 따른 테스트 시스템(500)은 크게 제1 프로그램 블록(100)과 제2 프로그램 블록(200)으로 분류된다. 이때 제1 프로그램 블록(100)과 제2 프로그램 블록(200)은 가상 터미널(150)을 통해 서로 상호 연동된다.
제1 프로그램 블록(100)은 기본적으로 소프트웨어 레벨(또는 시스템 레벨)의 언어 예컨대, 오픈소스기반의 c 언어로 작성 가능한 프로그램을 구비한다.
제2 프로그램 블록(200)은 기본적으로 하드웨어 레벨의 언어(이하, HDL) 예컨대, 베릴로그 HDL의 언어로 작성 가능한 프로그램을 구비한다.
본 발명에서는, 제1 프로그램 블록(100)에서 작성된 c 언어와 같은 오픈소스기반의 코드가 제2 프로그램 블록(200)에서 작성된 베릴로그 HDL 기반의 코드에 부가됨으로써, 상호 연동이 가능하다. 이를 위해서 VPI와 같은 응용프로그램 인터페이스(Application Program Interface: API)가 요구된다. 따라서, 제1 프로그램 블록(100)과 제2 프로그램 블록(200)을 상호 연동시키는 상기 가상 터미널()은 VPI와 같은 API로 모델링되며, 이와 같은 API를 사용하여 c 언어와 같은 오픈소스기반으로 작성된 코드를 HDL 기반의 제2 프로그램 블록(200)에 연동시킬수 있다.
제1 프로그램 블록(100)에는 제2 프로그램 블록(200)으로부터 HDL로 기술된 태스크(22)(task)를 입력받아서 소프트웨어 레벨의 언어로 작성된 테스트 코드(16)(test code)를 생성하는 테스트 코드 생성기(110)와, 외부로부터 검증하고자 하는 기능의 커맨드를 입력받아서 제2 프로그램 블록(200)에 제공하는 입력부(120) 및 제2 프로그램 블록(200)으로부터 DUT(24)(Device under test: 예컨대, 전자회로, 회로 블록, 회로 모듈등)에 대한 검증 상태 또는 검증 결과를 실시간으로 입력받아서 출력하는 출력부(130)가 구비된다.
제2 프로그램 블록(200)에는 외부로부터 입력되는 태스크(22)(task)와, 제1 프로그램 블록(100)으로부터 제공되는 소프트웨어 기반의 테스트 코드(16)와, 상기 가상 터미털(150)을 통해 제1 프로그램 블록(100)의 입력부(120)로부터 제공되는 상기 커맨드를 분석(parsing)하여, 스티뮬러스 파일(24)을 생성하는 스티뮬러스 생성기(210) 및 파서(parser)(220)가 구비된다.
이하, 소프트웨어 레벨로 구현된 제1 프로그램 블록(100)과 HDL 레벨로 구현된 제2 프로그램 블록(200)으로 이루어진 상기 테스트 시스템(500)에 대해 보다 상세히 설명하기로 한다.
제1 프로그램 블록(100)의 상기 테스트 코드 생성기(110)는 c 언어(c language)로 작성 가능한 프로그램일수 있다. 테스트 코드 생성기(110)는 하드웨어 레벨 환경의 제2 프로그램 블록(200)으로부터 태스크(22)를 호출하고, 호출된 태스크를 소프트웨어 레벨의 시스템콜태스크모델(12)로 모델링한다. 테스트 코드 생성기(110)는 모델링된 시스템콜태스크(12)를 라이브러리화(14)되고, 라이브러리화된 코드를 참조하여 DUT(26) 검증을 위한 소프트웨어 레벨의 테스트 코드 파일(16: "~.sim")을 생성한다. 테스트 코드 파일(16)은 컴파일러에 의한 컴파일 및 링크 과정을 거쳐서 제2 프로그램 블록(200)의 HDL 기반의 스티뮬러스 생성기(210) 및 파서(220)로 인가된다.
제2 프로그램 블록(200)의 파서(220)는 HDL 기반의 태스크(22)와 소프트웨어 기반에서 생성된 테스트 코드 파일(16:"~.sim")을 읽어드린다. 또한, 파서(220)는 실시간으로 VPI기반의 가상 터미널(150)을 통해 들어오는 검증 커맨드와 상기 독출된 테스트 코드파일(16)을 분석(parsing)하여 스티뮬러스 파일(24)을 재생성한다. 즉, 파서(220)는 DUT(26)의 시뮬레이션 타임에 스티뮬러스 파일(24)와, 가상 터미널(150)을 통해 입력부(120)로부터 실시간으로 제공되는 검증 커맨드를 재배치하여 테스트벤치(230)에 인가된다. 재생성된 스티뮬러스 파일(24)은 테스트벤치(230)에 링크되어 DUT(26)로 인가된다.
테스트벤치(230)에서는 입력된 스티뮬러스에 응답하여 동작하는 DUT(26)의 검증결과을 덤프(dump)하여, 덤프 파일(26)을 생성한다. 생성된 덤프 파일(26)은 출력부(130)로 전달된다.
DUT(26)는 고유의 동작을 수행하고, 동시에 VPI기반의 가상터미날(150)과 연동하여 소프트웨어 레벨의 제1 프로그램 블록(100)의 입력부(120)로부터 특정 검증 커맨드를 입력받는다. 이때, 가상터미널(150)은 상기 특정 커맨드를 파서(220)에 전달하거나 혹은 DUT(26)에 대한 검증상태를 출력부(130)로 실시간으로 전달한다.
출력부(130)는 가상 터미널(150)을 통해 전달받은 DUT(26)에 대한 검증상태 를 검증 메시지로서 실시간으로 출력한다. 또한, 출력부(130)는 상기 테스트벤치에서 생성되는 덤프 파일(26)를 입력받아서 예상치와 비교분석한다. 출력부(130)는 DUT에 대한 실시간 검증 상태 및 비교부석된 결과치를 시스템 설걔자에게 알린다.
도 3은 도 2에 도시된 시스템콜태스크 모델과 VPI 연동을 나타내는 도면으로서, 보다 구체적으로, 소프트웨어 레벨의 기반에서 시스템콜태스크 모델(12, 도 2에 도시됨)을 어떻게 기술하는가 하는 예제를 나타낸다.
HDL기반의 태스크(22)들은 DUT(26)의 검증을 위해 테스트 유닛 단위로 구현된다. 도 3에서는 파워온(power_on) 태스크에 대하여 C언어로 모델링하고 스티뮬러스 파일에서 어떠한 방식으로 태스크가 호출되는지를 보여주고 있다.
도 3에 도시된 바와 같이, 각 태스크들은 소프트웨어 기반에서 시스템콜태스크 모델로 라이브러리화된다. 예컨대, 유닉스 시스템의 경우 "printf()", "putchar()", "puts()" 등의 표준 라이브러리 함수들은 "write()"라는 시스템 콜을 최종적으로 불러온다. 이때 지정된 바이트 열을 특정 출력장치에 출력하는 "write()" 시스템 콜을 사용하여 스티뮬러스 생성기(210, 도 2에 도시됨)에서 태스크를 호출 할 수 있도록 기술된다. 이렇게 기술된 라이브러리들은 메인 코드의 테스트 코드에서 참조하여 사용할 수 있다. 예컨대, c 언어 기반에서 테스트 코드를 생성하고자 하는 경우, 메인 테스트 코드는 c 언어의 문법을 자유롭게 사용할 수 있게 된다. 파서(220)는 스티뮬러스 파일(16)과 실제 태스크를 매칭시키고, 또한, VPI기반의 가상 터미널(150)을 통하여 실시간으로 들어오는 검증 커맨드를 파싱(parsing)한다. 파싱(parsing)된 스티물러스 파일은 DUT(26)로 인가된다. 이러한 구조의 장점은 테스트 시나리오를 다양하게 만들고 코드 핸들링의 유연성을 높인다. 컴파일된 코드는 도면에 도시된 바와같이 스티뮬러스 리스트로 작성된다.
도 4는 본 발명의 실시예에 따른 검증방법을 나타내는 순서도이다.
도 3 및 도 4를 참조하면, 우선, DUT(26)를 테스트하기 위한 검증시나리오가 작성된다(S410).
작성된 검증시나리오는 기능별로 및 세부적으로 분류되어 각각 HDL 기반의 태스크로 기술된다(S411, S412).
기술된 HDL 기반의 태스크는 소프트웨어 레벨의 언어로 기술되어 시스템콜태스크로 모델링된다(S413).
모델링된 시스템콜태스크는 라이브러리화되고, 이 라이브러리화된 코드를 참조하여 DUT() 검증을 위한 테스트 코드를 소프트웨어 레벨의 언어로 기술된다(S414).
소프트웨어 레벨의 언어로 기술된 테스트 코드는 컴파일 및 링크 과정을 거쳐서 HDL기반의 스티뮬러러스 생성기(210) 및 파서(220)로 인가된다(S415). 이때 컴파일 및 링크과정에서 에러발생여부가 확인된다(S416). 에러가 확인되면, 상기 단계들(S413, S414, S415)이 재수행된다. 즉, 본 발명에서는 소프트웨어 레벨에서 테스트 코드의 오류여부가 확인됨으로써, 테스트 코드의 신뢰성을 향상시킬 수 있다.
에러가 확인되지 않는 경우, 파서(220)는 HDL기반의 태스크와 소프트웨어 레벨에서 생성된 스티뮬러스 파일(16)(~.sim)을 읽어드리고, 읽어드린 상기 스티뮬러 스 파일과 실시간으로 VPI기반의 가상 터미널(150)을 통해 들어오는 실시간 검증 커맨드를 파싱하여, 상기 스티뮬러스 파일(16)을 재생성한다(S418, S419, S421).
최종 생성된 스티뮬러스 파일은 테스트벤치(230)에서 링크됨으로써, DUT(26)에 인가된다. 이로써, DUT(26)에 대한 검증 시뮬레이션이 시작된다. 이 과정에서, 가상 터미널을 통해 검증 커맨드의 수신 여부를 수시로 확인하면서 최종 생성된 스티뮬러스에 응답하여 동작하는 DUT(26)에 대한 결과 파일을 덤프하고 이 파일을 출력부를 통해 비교분석한다(S420).
VPI 기반의 가상 터미널을 통해 더 이상의 검증 커맨드가 수신되지 않으면(S421), 상기 비교분석된 결과치에 따라 검증완료여부가 결정된다(S422). 만일, 재검증이 요구되는 경우, 상기 단계들(S418~S421)이 다시 수행된다. 재검증이 불필요한 경우, 검증시뮬레이션이 완료된다(S423).
도 1은 일반적인 검증장치의 구성을 보인 블록도이다.
도 2는 본 발명의 실시예에 따른 스티뮬러스를 이용한 검증장치을 보여주는 도면이다.
도 3은 도 2에 도시된 시스템콜태스크 모델과 VPI 연동을 나타내는 도면이다.
도 4는 본 발명의 실시예에 따른 검증방법을 나타내는 순서도이다.

Claims (9)

  1. 하드웨어 레벨의 언어로 기술되는 태스크(task)를 라이브러리화된 코드를 참조하여, 소프트웨어 레벨의 언어로 기술되는 테스트 코드(test code)로 생성하는 단계와, 상기 생성된 소프트웨어 레벨의 언어로 기술되는 테스트 코드(test code)를 상기 하드웨어 레벨 언어로 기술되는 스티뮬러스 파일로 생성하는 단계와, 상기 생성된 스티뮬러스 파일을 이용하여 상기 하드웨어 레벨 언어로 기술되는 회로의 특성을 검증하는 단계를 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  2. 제1항에 있어서, 상기 하드웨어 레벨의 언어는 베릴로그(Verilog) HDL(Hardware Description Language)이고,
    상기 소프트웨어 레벨의 언어는 상기 베릴로그 HDL보다 상위레벨의 언어인 것인 컴퓨터로 읽을 수 있는 기록매체.
  3. 제2항에 있어서, 상기 베릴로그 HDL보다 상위레벨의 언어는 c 언어 또는 c++인 것인 컴퓨터로 읽을 수 있는 기록매체.
  4. 제1항에 있어서, 상기 생성된 테스트 코드를 컴파일하여, 상기 생성된 테스트 코드의 오류여부를 확인하는 단계를 더 실행시키고, 확인결과, 상기 테스트 코 드의 오류가 없는 경우, 상기 스티뮬러스 파일을 생성하는 것인 컴퓨터로 읽을 수 있는 기록매체.
  5. HDL로 기술되는 검증유닛(Device Under Test: DUT)의 특성을 검증하는 검증장치에 있어서,
    상기 HDL로 기술되는 태스크(task)를 라이브러리화된 코드를 참조하여, 소프트웨어 레벨의 언어로 기술되는 테스트 코드(test code)를 생성하는 테스트 코드 생성기;
    상기 생성된 소프트웨어 레벨의 언어로 기술되는 테스트 코드(test code)를 이용하여 하드웨어 레벨의 언어로 기술되는 스티뮬러스 파일로 생성하는 스티뮬러스 생성기;
    가상의 터미널을 통해 실시간으로 외부로부터 제공되는 검증 커맨드와, 상기 스티뮬러스 파일을 파싱(parsing)하여, 상기 스티뮬러스 파일을 재생성하는 파서(parser); 및
    상기 재생성된 스티뮬러스 파일에 따라 상기 검증 유닛의 출력값을 출력하는 출력부를 포함하는 검증장치.
  6. 제5항에 있어서, 상기 가상의 터미널은 응용프로그램 인터페이스(Application Program Interface: API)인 것인 검증장치.
  7. 하드웨어 레벨 언어로 기술되는 태스크(task)를 라이브러리화된 코드를 참조하여, 소프트웨어 레벨의 언어로 기술되는 테스트 코드(test code)로 생성하는 단계와,
    상기 생성된 소프트웨어 레벨의 언어로 기술되는 테스트 코드(test code)를 상기 하드웨어 레벨 언어로 기술되는 스티뮬러스 파일로 생성하는 단계; 및
    상기 생성된 스티뮬러스 파일을 이용하여 상기 하드웨어 레벨 언어로 기술되는 회로의 특성을 검증하는 단계를 포함하는 것인 검증방법.
  8. 검증유닛에 대한 검증시나리오를 HDL 기반의 태스크로 기술하는 단계;
    상기 HDL 기반의 태스크를 소프트웨어 레벨의 언어로 기술된 시스템콜태스크로 모델링하는 단계;
    모델링된 시스템콜태스크를 라이브러리화하고, 상기 라이브러리화된 코드를 참조하여 소프트웨어 레벨의 언어로 기술되는 테스트 코드를 생성하는 단계;
    상기 소프트웨어 레벨의 언어로 기술되는 테스트 코드와 가상 터미널을 통해 실시간으로 제공되는 상기 소프트웨어 레벨의 언어로 기술되는 검증 커맨드를 파싱(parsing)하는 단계;
    상기 파싱된 테스트 코드와 검증 커맨드를 이용하여 하드웨어 레벨의 언어로 기술되는 스티뮬러스 파일을 생성하는 단계; 및
    상기 생성된 스티뮬러스 파일을 테스트벤치에 링크시켜, 상기 검증유닛에 인가하는 단계를 포함하는 검증방법.
  9. 제8항에 있어서, 상기 가상의 터널은 응용프로그램 인터페이스(API)로 모델링된 것인 검증방법.
KR1020080110133A 2008-11-06 2008-11-06 소프트웨어 기반의 스티뮬러스를 생성하는 검증 장치, 상기검증 장치를 이용한 검증 방법 및 소프트웨어 기반의 스티뮬러스를 생성하는 프로그램이 구비된 컴퓨터 기록매체 KR100939642B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080110133A KR100939642B1 (ko) 2008-11-06 2008-11-06 소프트웨어 기반의 스티뮬러스를 생성하는 검증 장치, 상기검증 장치를 이용한 검증 방법 및 소프트웨어 기반의 스티뮬러스를 생성하는 프로그램이 구비된 컴퓨터 기록매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080110133A KR100939642B1 (ko) 2008-11-06 2008-11-06 소프트웨어 기반의 스티뮬러스를 생성하는 검증 장치, 상기검증 장치를 이용한 검증 방법 및 소프트웨어 기반의 스티뮬러스를 생성하는 프로그램이 구비된 컴퓨터 기록매체

Publications (1)

Publication Number Publication Date
KR100939642B1 true KR100939642B1 (ko) 2010-01-29

Family

ID=41810429

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080110133A KR100939642B1 (ko) 2008-11-06 2008-11-06 소프트웨어 기반의 스티뮬러스를 생성하는 검증 장치, 상기검증 장치를 이용한 검증 방법 및 소프트웨어 기반의 스티뮬러스를 생성하는 프로그램이 구비된 컴퓨터 기록매체

Country Status (1)

Country Link
KR (1) KR100939642B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101629141B1 (ko) * 2015-02-17 2016-06-10 인하대학교 산학협력단 스파이스 넷리스트를 에프피지에이 합성이 가능한 베릴로그 코드로 변환하는 방법 및 시스템
US9933486B2 (en) 2015-06-02 2018-04-03 SK Hynix Inc. Apparatus and method of generating test pattern, test system using the same, and computer program therefor

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004227370A (ja) 2003-01-24 2004-08-12 Sony Ericsson Mobilecommunications Japan Inc ソフトウェア・ハードウェア変換方法および装置ならびにソフトウェア・ハードウェア変換プログラム
JP2006139729A (ja) 2004-11-15 2006-06-01 Sharp Corp ハードウェア検証用プログラミング言語モデル生成装置、ハードウェア検証用プログラミング言語モデル生成方法、コンピュータシステム、ハードウェアシミュレーション方法、制御プログラムおよび可読記憶媒体
JP2007183900A (ja) 2005-12-30 2007-07-19 Tatung Co ハイレベル言語のハードウェア記述言語への自動変換方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004227370A (ja) 2003-01-24 2004-08-12 Sony Ericsson Mobilecommunications Japan Inc ソフトウェア・ハードウェア変換方法および装置ならびにソフトウェア・ハードウェア変換プログラム
JP2006139729A (ja) 2004-11-15 2006-06-01 Sharp Corp ハードウェア検証用プログラミング言語モデル生成装置、ハードウェア検証用プログラミング言語モデル生成方法、コンピュータシステム、ハードウェアシミュレーション方法、制御プログラムおよび可読記憶媒体
JP2007183900A (ja) 2005-12-30 2007-07-19 Tatung Co ハイレベル言語のハードウェア記述言語への自動変換方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101629141B1 (ko) * 2015-02-17 2016-06-10 인하대학교 산학협력단 스파이스 넷리스트를 에프피지에이 합성이 가능한 베릴로그 코드로 변환하는 방법 및 시스템
US9933486B2 (en) 2015-06-02 2018-04-03 SK Hynix Inc. Apparatus and method of generating test pattern, test system using the same, and computer program therefor

Similar Documents

Publication Publication Date Title
US6083269A (en) Digital integrated circuit design system and methodology with hardware
KR100491461B1 (ko) SoC 설계 검증을 위한 방법 및 장치
US6182258B1 (en) Method and apparatus for test generation during circuit design
US8234617B2 (en) Method and system for re-using digital assertions in a mixed signal design
US7490307B2 (en) Automatic generating of timing constraints for the validation/signoff of test structures
US8402438B1 (en) Method and system for generating verification information and tests for software
US7561999B2 (en) Verification apparatus, verification method, and program
CN113297073B (zh) 芯片中算法模块的验证方法、装置、设备及可读存储介质
US5974241A (en) Test bench interface generator for tester compatible simulations
Hartman Model based test generation tools
US20070061641A1 (en) Apparatus and method for generating test driver
CN113343617B (zh) 软硬件协同仿真方法
Sohofi et al. Assertion-based verification for system-level designs
JP2009503749A (ja) 複製されたロジックを使用するデバッグ及びテスト方法並びにシステム
CN115952758A (zh) 芯片验证方法、装置、电子设备及存储介质
CN111859834A (zh) 一种基于uvm的验证平台开发方法、系统、终端及存储介质
US20090112554A1 (en) Test Bench, Method, and Computer Program Product for Performing a Test Case on an Integrated Circuit
KR100939642B1 (ko) 소프트웨어 기반의 스티뮬러스를 생성하는 검증 장치, 상기검증 장치를 이용한 검증 방법 및 소프트웨어 기반의 스티뮬러스를 생성하는 프로그램이 구비된 컴퓨터 기록매체
CN116719729B (zh) 通用验证平台、通用验证方法、介质及电子设备
Bombieri et al. Hybrid, incremental assertion-based verification for TLM design flows
CN111338761B (zh) 一种51单片机虚拟中断控制器及实现方法
CN114282464A (zh) 芯片仿真验证中的协同仿真方法及应用
CN116932412B (zh) 可生成不同格式测试激励文件的共享平台和方法
CN117313650B (zh) 一种芯片测试验证方法及其应用装置
Berry et al. Top-level validation of system-on-chip in esterel studio

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
LAPS Lapse due to unpaid annual fee