[go: up one dir, main page]

KR100921314B1 - 검증결과 재활용 기법을 채용한 고성능 설계검증 장치 및이를 활용한 신속한 설계검증 방법 - Google Patents

검증결과 재활용 기법을 채용한 고성능 설계검증 장치 및이를 활용한 신속한 설계검증 방법 Download PDF

Info

Publication number
KR100921314B1
KR100921314B1 KR1020040093310A KR20040093310A KR100921314B1 KR 100921314 B1 KR100921314 B1 KR 100921314B1 KR 1020040093310 A KR1020040093310 A KR 1020040093310A KR 20040093310 A KR20040093310 A KR 20040093310A KR 100921314 B1 KR100921314 B1 KR 100921314B1
Authority
KR
South Korea
Prior art keywords
simulation
design
verification
run
execution
Prior art date
Application number
KR1020040093310A
Other languages
English (en)
Other versions
KR20060005286A (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 KR20060005286A publication Critical patent/KR20060005286A/ko
Application granted granted Critical
Publication of KR100921314B1 publication Critical patent/KR100921314B1/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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

본 발명은 설계된 수백만 게이트급 이상의 디지탈 회로의 설계 검증을 위한 설계 검증 장치 및 이를 이용한 설계 검증 방법에 관한 것이다.
본 발명에서는 임의의 설계검증 툴 또는 설계검증 시스템에서 수행되어지는 본 발명의 설계검증 시스템소프트웨어로 하여금 설계검증 대상 회로에 존재하는 설계객체들 간에 동적정보 교환을 가능하게 하여 설계가 변경된 후에도 최대한 이전에 설계검증 실행의 결과들을 재활용하여서 신속한 설계 검증을 가능하게 한다.

Description

검증결과 재활용 기법을 채용한 고성능 설계검증 장치 및 이를 활용한 신속한 설계검증 방법{High Performance Design Verification Apparatus Using Verification Results Re-use Technique and Its Rapid Verification Method Using the Same}
도1 은, 컴퓨터에서 운영되는 본 발명의 검증 소프트웨어와 시뮬레이터를 갖는 컴퓨터로 구성된 본 발명에 관한 설계 검증 장치의 일 예를 개략적으로 도시한 도면.
도2 는, 컴퓨터에서 운영되는 본 발명의 검증 소프트웨어와 시뮬레이터를 갖는 2 이상의 컴퓨터들과 이들 컴퓨터들을 연결하는 컴퓨터 네트워크로 구성된 본 발명에 관한 설계 검증 장치의 또 다른 일 예를 개략적으로 도시한 도면.
도3 은, 컴퓨터에서 운영되는 본 발명의 검증 소프트웨어와 시뮬레이터를 갖는 컴퓨터와 하드웨어기반검증플랫폼으로 구성된 본 발명에 관한 설계 검증 장치의 일 예를 개략적으로 도시한 도면.
도4 는, 컴퓨터에서 운영되는 본 발명의 검증 소프트웨어와 시뮬레이터를 갖는 2 이상의 컴퓨터들과 하드웨어기반검증플랫폼과 이들 컴퓨터들을 연결하는 컴퓨터 네트워크로 구성된 본 발명에 관한 설계 검증 장치의 또 다른 일 예를 개략적으로 도시한 도면.
도5 는, 컴퓨터에서 운영되는 본 발명의 검증 소프트웨어와 이 검증 소프트웨어가 운영되는 컴퓨터와 하드웨어기반검증플랫폼으로 구성된 본 발명에 관한 설계 검증 장치의 또 다른 일 예를 개략적으로 도시한 도면.
도6 은 도3 을 이용한 검증결과 재활용의 일 실시 예를 설명하는 흐름도.
도7 은 도1 을 이용한 시뮬레이션결과 재활용의 일 실시 예를 설명하는 흐름도.
도8 은 임의의 검증플랫폼을 사용하여 설계 검증을 수행하는 과정에서 설계객체 변정 전에 수행된 검증결과를 재활용을 하여 설계객체 변경 후에 수행되는 검증을 신속하게 수행하는 과정의 일 실시 예를 개략적으로 도시한 도면.
도9 는 임의의 하드웨어기반검증플랫폼을 사용하여 설계 검증을 수행하는 과정에서 설계객체 변경 전에 수행된 검증결과를 재활용을 하여 설계객체 변경 후에 수행되는 검증을 신속하게 수행하는 과정의 일 실시 예를 개략적으로 도시한 도면.
도10 은 1 이상의 시뮬레이터를 사용하여 설계 검증을 수행하는 과정에서 설계객체 변경 전에 수행된 시뮬레이션결과를 재활용을 하여 설계객체 변경 후에 수행되는 시뮬레이션을 신속하게 수행하는 과정의 또 다른 일 실시 예를 개략적으로 도시한 도면.
<도면의 주요부분에 대한 부호의 설명>
12 : 테스트벤치 설계객체 14 : DUV 설계객체
16 : 설계블럭 설계객체 18 : 재생용 입력 정보
20 : 변경된 설계객체 22 : 설계 변경 전 수집된 동적정보의 일부분
27 : 하드웨어기반검증플랫폼
32 : 검증 소프트웨어 34 : 시뮬레이터
35 : 컴퓨터
본 발명은 설계된 수십만 내지는 수백만 게이트급 이상의 디지탈 시스템의 설계를 검증하는 기술에 관한 것으로, 설계된 수십만 내지는 수백만 게이트급 이상의 디지탈 시스템을 시뮬레이션, 혹은 시뮬레이션 가속 등을 통하여 검증하고자 하는 경우에 검증의 성능 향상(즉 검증 실행 시간의 단축)과 효율성을 증가시키는 검증 장치 및 이를 이용한 검증 방법에 관한 것이다.
최근에 집적회로의 설계 및 반도체 공정기술이 급격하게 발달함에 따라 디지탈 회로 설계의 규모가 수백만 게이트급에서 수천만 게이트급까지 커짐은 물론 그 구성이 극히 복잡해지고 있는 추세이고, 이와 같은 추세는 계속적으로 확대되고 있는 추세로 가까운 미래에 일억 게이트급 이상의 설계도 예상되고 있다. 그러나, 시장에서의 경쟁은 더욱 더 치열해지므로 빠른 시간 내에 우수한 제품을 개발하여야만 함으로 빠른 시간 내에 자동화된 방법으로 설계된 회로를 효율적으로 설계 검증하기 위한 효과적인 방법의 필요성이 더욱 커지고 있다.
지금까지는 설계된 디지탈 회로를 설계 검증하기 위하여서 하드웨어기술언어(Hardware Description Language, 앞으로 이를 HDL로 약칭함. 예로 Verilog, VHDL, SystemVerilog 등이 있음)나 시스템기술언어(System Description Language, 앞으로 이를 SDL로 약칭함. 예로 SystemC가 있음)를 이용한 설계 초기에는 소프트웨어적 접근법인 HDL/SDL 시뮬레이터들(예로 Verilog 시뮬레이터, VHDL 시뮬레이터, SystemC 시뮬레이터, 또는 SystemVerilog 시뮬레이터 등)이 주로 사용되어지고 있다. 뿐만 아니라 최근에는 테스트벤치를 구술하는 것에 특화된 언어인 하드웨어검증언어(Hardware Verification Language, 앞으로 이를 HVL로 약칭함. 예로 e-language, Vera 등이 있음)도 사용되고 있을 뿐만 아니라, 때로는 C/C++와 같은 통상적인 프로그래밍언어들도 테스트벤치 구술에 사용되고 있다. 이와 같은 다양한 언어들을 사용하여 설계객체(design object, 추후에 이것에 대하여 자세히 설명함)들을 구술하고 이를 시뮬레이션으로 검증하는 경우에, 시뮬레이터는 설계 검증 대상회로를 소프트웨어적으로 모델링한 순차적인 인스트럭션 시퀀스로 구성된 소프트웨어 코드를 컴퓨터 상에서 순차적으로 수행하여야 함으로 상기 수백만 게이트급 이상의 설계에 대해서는 시뮬레이션 성능의 저하가 설계대상의 크기에 비례하여 발생하는 것이 문제가 되고 있다. 일 예로 시스템온칩(System On a Chip, 앞으로는 이를 SOC로 약 칭함) 설계에서와 같이 1,000만 게이트급 이상의 설계를 HDL 시뮬레이터 또는, SDL 시뮬레이터 또는, HVL 시뮬레이터 또는, ISS(Instruction-Set Simulator) 또는, 이들 시뮬레이터들 2 이상을 혼용하여 시뮬레이션하는 경우(예로 HDL 시뮬레이터와 ISS로 HW/SW 동시-시뮬레이션을 수행하는 경우)에 현존하는 제일 빠른 프로세서를 장착한 컴퓨터에서 해당 HDL/SDL/HVL 시뮬레이터(본 특허에서 "HDL/SDL/HVL 시뮬레이터"라 함은 HDL로 구술된 설계객체를 시뮬레이션할 수 있는 시뮬레이터, 또는 SDL로 구술된 설계객체를 시뮬레이션할 수 있는 시뮬레이터, 또는 HVL로 구술된 설계객체를 시뮬레이션할 수 있는 시뮬레이터, 또는 HDL과 SDL로 구술된 설계객체를 시뮬레이션할 수 있는 시뮬레이터, 또는 HDL과 HVL로 구술된 설계객체를 시뮬레이션할 수 있는 시뮬레이터, 또는 SD과 HVL로 구술된 설계객체를 시뮬레이션할 수 있는 시뮬레이터, 또는 HDL과 SDL과 HVL로 구술된 설계객체를 시뮬레이션 할 수 있는 시뮬레이터를 통칭하는 것임)로 설계를 시뮬레이션하는 경우에 시뮬레이션 속도는 트란젝션수준(Transaction Level)으로 하는 경우에 수백만-수천 cycles/sec이며, 레지스터전송수준(Register Transfer Level, 앞으로 이를 RTL로 약칭함)으로 하는 경우에 100-10 cycles/sec를 넘기기 어려우며, 게이트 수준에서 시뮬레이션을 진행하면 10-1 cycles/sec를 넘기기가 어려운 것이 매우 일반적이다. 그러나 해당 설계를 검증하고자 필요한 시뮬레이션 사이클은 최소 수백만 사이클에서부터 최대 수십억 사이클이 필요함으로 전체 시뮬레이션 시간은 상상을 초월하게 된다. 뿐만 아니라, 최근에는 이와 같은 복잡한 디지털 시스템 설계를 시뮬레이션을 이용하여 검증하는 경우에 모든 설계 오류들을 발견하여 제거할 수 있는 테스트벤치를 작성하는 것에 대한 어려움이 증대하고 있다.
이와 같은 장시간의 검증 시간의 단축과 테스트벤치 작성의 어려움을 해소시키기 위하여 현재 사용되는 기법들은 다음과 같은 것들이 있는데, 첫째는 하드웨어 기반의 검증 시스템(예로 시뮬레이션가속기, 하드웨어에뮬레이터, 프로토타이핑시스템 등)을 사용하거나, 둘째는 특성검사(property checking) 혹은 모델검사(model checking) 또는 등가검사(equivalence checking)과 같은 정식검증(formal verification)을 사용하는 것이다. 그러나 하드웨어 기반의 검증 시스템을 사용하는 것은 설계 초기에는 적용이 불가능하고, 합성이나 컴파일 과정이 HDL/SDL/HVL 시뮬레이터를 사용하는 것보다 오래 걸리며, 사용하기가 HDL/SDL/HVL 시뮬레이터에 비하여 매우 어렵고, 시스템의 구입 비용과 유지/보수 비용이 매우 클 뿐만 아니라, 무엇보다도 설계자나 검증엔지니어들이 HDL/SDL/HVL 시뮬레이터에 대한 선호도(특히 HDL 시뮬레이터에 대한 선호도)가 이들 하드웨어 기반의 검증 시스템에 비하여 매우 높고, HDL/SDL/HVL 시뮬레이터로는 아무 문제 없이 수행이 되는 설계 코드들이 하드웨어 기반의 검증 시스템에서는 수행되지 않는 경우가 많아서 이들 하드웨어 기반의 검증 시스템들은 제한적인 상황과 제한적인 사용자들에서만 사용되고 있다. 뿐만 아니라, 이들 하드웨어기반의 검증시스템들은 시뮬레이터와 같은 수준의 제어도(controllability)와 관측도(observability)를 제공하지 못하고 최종적으로 반도체칩으로 제조되어야 하는 설계검증대상(DUV: Design Under Verification, 이 후로는 DUV로 약칭함)에 존재하는 모든 신호선들을 탐침하게 되면 수행속도가 2배에서 10배 이상 늘어나는 문제점도 가지고 있다. 또한 정식검증 툴을 이용하는 것은 등가검사이외에 특성검사나 모델검사를 적용하기 위해서는 이를 위한 추가적인 작업을 요구하게 됨으로 설계자들에게 새로운 부담을 주게 될 뿐만 아니라, 이와 같은 정식검증 기법은 검증 대상이 되는 설계의 크기가 커지게 되면 해당 기법이 상태 폭발(state explosion)의 문제로 인하여 컴퓨터 상에서 수행이 불가능해진다는 매우 큰 약점이 있다.
또 다른 문제점으로는 검증을 하기 위하여 설계 코드를 이용한 검증 실행이 일정 검증 사이클 동안(예로 시뮬레이션으로 검증을 수행하는 경우에 0 나노초 시뮬레이션 사이클에서부터 1,000,000,000 나노초 시뮬레이션 사이클까지) 이루어져야 하는데 이 과정에서 설계 코드의 수행이 설계자가 의도하는 대로 진행되는 가를 확인하는 과정이 반드시 필요하다. 이와 같은 확인 과정에서 필요한 것이 설계 코드에서 존재하는 시그널들이나 변수들에 대한 탐침(probing)(구체적 탐침 방법의 일 예는 시뮬레이터의 시그널덤프 시스템테스크인 $dumpvars를 사용하는 것임)인데, 이와 같은 탐침을 통하여 설계에 대한 가시도(visibility)가 확보되는 것이 설계 코드에 존재하는 오류들의 위치를 확인하고 제거하는 것에 반드시 필요하게 된다. 그러나 이와 같은 탐침에서의 문제점으로는 설계 코드에는 매우 많은 수의 시그널들이나 변수들이 존재하게 되는데, 이들 중에서 상기의 일정 검증 사이클 동안에서 설계 코드를 이용한 검증 실행이 실제 수행되기 전에 설계 오류의 위치를 알아내고 이를 제거하기 위해서 탐침이 필요한 시그널들이나 변수들을 선정하는 것이 매우 어렵다는 것이다. 현재 사용되는 방법은 시뮬레이션 또는 시뮬레이션가속 또는 에뮬레이션 또는 프로토타이핑 실행 전에 검증 대상에 존재하는 모든 시그널들과 변수들을 탐침대상으로 선정한 후에 상기 시뮬레이션 또는 시뮬레이션가속 또는 에뮬레이션 또는 프로토타이핑을 실행하는 것이 한 방법이다. 그러나 이와 같이 검증 대상에 존재하는 모든 시그널들과 변수들을 탐침대상으로 하면, 탐침대상을 정하지 않고 상기 시뮬레이션 또는 시뮬레이션가속 또는 에뮬레이션 또는 프로토타이핑을 실행하는 것에 비하여 실행 속도가 최소 2배에서 최대 10배 이상 증가하게 되는 문제점이 있다.
또 다른 문제점으로는 수백만 게이트급 이상의 디지털 시스템을 효율적으로 검증하기 위해서는 시뮬레이션, 시뮬레이션가속, 에뮬레이션, 프로토타이핑, 정식검증들 중에서 두 개 이상의 검증기술을 같이 사용한 검증 수행 과정이 요구되는데, 실제 이들 기술들을 같이 사용하는 경우에도 단지 하나의 기술(예로 시뮬레이션)을 사용하여 최대한 설계 오류들을 찾아서 수정한 후에, 또 다른 기술(예로 정식검증)을 사용하여 남아있는 설계 오류들을 찾아서 수정하는 단순한 수준에서 두 개 이상의 검증기술을 정해진 순서에 따라서 사용하는 수준(예로 시뮬레이션에 의한 검증을 수행한 후에, 시뮬레이션가속에 의한 검증을 수행하고, 맨 마지막을 프로토타이핑에 의한 검증을 수행)에 머물고 있다.
뿐만 아니라, 설계코드 또는 설계회로에 존재하는 특정한 1 이상의 설계오류들이 발견되어져서 제거되는 과정에서 설계코드 또는 설계회로, 또는 필요시에는 테스트벤치가 수정되어진다. 이와 같이 설계객체들이 부분적으로 수정이 되어지면 수정이 의도한 대로 되었는지를 확인하기 위하여서는 수정되기 이전에 수행한 시뮬레이션과 동일한 조건에서(예로, 같은 테스트벤치와 수정이 된 같은 DUV를 사용, 혹은 수정이 된 같은 테스트벤치와 같은 DUV를 사용) 최소한 1번 이상의 시뮬레이션이 오랜 시간에 걸쳐서 재수행되어야 한다.
뿐만 아니라, 설계코드 또는 설계회로에 존재하는 특정한 1 이상의 설계오류들이 발견되어져서 제거되는 과정에서 설계코드 또는 설계회로, 또는 필요시에는 테스트벤치가 수정되어진다. 이와 같이 설계객체들이 부분적으로 수정이 되어지면 수정되기 이전에 실행되었던 검증 과정들에 대한 반복적인 수행을 통하여 후방향 호환성(back-ward compatibility)를 조사하는 리그레션 테스트(regression test) 과정이 필요하게 되는데 이와 같은 과정이 현재에는 매우 비효율적으로 진행되어 짐으로 많은 시간을 소비한다.
뿐만 아니라, 설계객체들이 디버깅을 위하여 수정이 되지 않은 경우에도 설계검증 과정에서는 여러 가지 검증 시나리오들을 여러 가지의 테스트 스위트(suite)들로써(예로 1,000개의 각기 다른 테스트 스위트들을 사용하여서) 수행하게 된다. 이 테스트 스위트들중에서 많은 것들은 검증 실행 시작에서부터 일정 시간 동안에는 동일하게(예로 SOC의 경우 HW 초기화에 이은 SW 초기화 과정들은 여러 테스트 스위트들에서 동일함) 진행되고, 이 후부터는 다르게 진행되는 경우가 많다. 이와 같은 경우에 동일하게 진행되는 과정은 한번만 실행하고 매 테스트 스위트마다 반복하지 않는다면 매우 신속하게 여러 가지의 검증 시나리오들을 실행할 수 있는데 현재의 방법들은 그렇지 못하다. 이와 같은 상황은, 설계 오류를 수정한 경우에 새로운 테스트벤치를 사용하여 시뮬레이션을 진행하는 경우에도 마찬가지이다.
그런데 위에서 설명한 다른 테스트벤치를 이용하여 설계 검증을 수행하는 경우 또는 설계객체에 존재하는 설계 오류를 디버깅 과정을 통하여 수정한 경우들 모두 1 이상의 설계객체들에 대한 변경을 한 것으로 볼 수 있다. 따라서 앞으로는 이들 모두의 경우들을 1 이상의 설계객체들의 변경(즉 본 특허에서는 TB와 DUV를 포함하는 검증 대상 내의 모든 설계객체들에서 1 이상의 설계객체에 대한 수정 또는 1 이상의 특정 설계객체의 대체 등 모든 것들을 "변경"이라고 칭함)으로 보기로 한다.
따라서, 본 발명의 목적은 초대규모급 디지털시스템 설계에 대한 검증을 위한 검증의 성능 향상(즉, 검증 실행 시간의 단축)과 효율성을 증대시키는 검증 장치 및 이를 이용한 신속한 검증 방법을 제공함에 있다. 구체적으로는 시뮬레이션, 또는 시뮬레이션가속 등에서 이전에 수행된 검증결과들을 효과적으로 재활용함으로서 전체 검증의 속도 향상과 더불어 효율성을 증대시키고, 연속적으로 설계 오류들에 대한 신속한 발견과 디버깅을 가능하게 한다.
상기 목적들을 달성하기 위하여, 본 발명에 따른 검증 장치는 검증 소프트웨어와, 1이상의 HDL/SDL/HVL 시뮬레이터가 인스톨된 1이상의 컴퓨터로 구성될 수 있다. 또는 본 발명에 따른 또 다른 검증 장치는 검증 소프트웨어와, 1이상의 HDL/SDL/HVL 시뮬레이터가 인스톨된 1이상의 컴퓨터와, 1이상의 하드웨어에뮬레이터 또는 1이상의 시뮬레이션가속기 또는 1이상의 프로토타이핑시스템으로 구성(이들 1이상의 하드웨어에뮬레이터 또는 1이상의 시뮬레이션가속기 또는 1이상의 프로토타이핑시스템은, 본 특허에서는 반드시 소프트웨어의 제어를 통하여 동작하는 것으로 한정하여서 시뮬레이션가속 방식으로 동작하는 것으로 한정함)될 수 있다. 또는, 본 발명에 따른 또 다른 검증 장치는 검증 소프트웨어가 인스톨된 1이상의 컴퓨터와, 1이상의 하드웨어에뮬레이터 또는 1이상의 시뮬레이션가속기 또는 1이상의 프로토타이핑시스템으로 구성(이들 1이상의 하드웨어에뮬레이터 또는 1이상의 시뮬레이션가속기 또는 1이상의 프로토타이핑시스템은 소프트웨어의 제어를 통하여 동작하게 됨)될 수 있다. 또한 상기 1이상의 시뮬레이션가속기나 1이상의 하드웨어에뮬레이터는 1이상의 FPGA(Field Programmable Gate Array) 또는 1이상의 불리안 프로세서로 구성된다. 또는 상기 1이상의 프로토타이핑시스템은 부분적으로 1이상의 FPGA 또는 1이상의 샘플칩(sample chip)으로 구성된다. 상기 샘플칩은 제조(fabrication) 과정을 거쳐서 SOC나 ASIC 형태로 제조된 반도체 칩을 가르킨다. 상기 1이상의 시뮬레이터 또는 1이상의 시뮬레이션가속기 또는 1이상의 하드웨어에뮬레이터 또는 1 이상의 프로토타이핑시스템, 혹은 이들의 조합을 검증플랫폼이라 칭한다. 특히, 1 이상의 시뮬레이션가속기 또는 1 이상의 하드웨어에뮬레이터 또는 1 이상의 프로토타이핑시스템을 하드웨어기반검증플랫폼이라 칭한다.
본 발명에서 제안되는 검증 장치와 검증 방법은 설계 코드 자체를 검증하는 함수적 검증(functional verification)(이와 같은 함수적 검증은 주로 트란젝션수준 또는 레지스터전송수준에서 수행됨)에 사용될 수 있을 뿐만 아니라, 설계 코드를 합성한 게이트수준의 네트리스트를 이용한 게이트수준의 검증에서도 사용될 수 있고, 또는 배치(placement) 및 배선(routing)이 되고 추출된 타이밍정보를 게이트수준의 네트리스트에 첨부시켜(back-annotated) 수행하는 타이밍 검증에서도 사용될 수 있다. 그러나 앞으로의 설명은 설계 코드 자체를 검증하는 함수적 검증에 대하여 하기로 하며, 게이트수준 검증이나 타이밍 검증에 대해서도 같은 방법을 적용할 수 있음으로 이에 대한 구체적 설명은 생략하기로 한다.
상기 검증 소프트웨어는 HDL/SDL/HVL(예로 Verilog, VHDL, SystemVerilog, SystemC, e, Vera 등)을 사용하여 작성된 설계 코드를 읽은 후에 여기에다 추가적인 코드(이를 앞으로는 부가코드라고 칭함)를 부가한다. 부가코드는 기본적으로 설계 코드로써 시뮬레이션 또는 시뮬레이션가속을 수행하는 과정에서 일정 간격으로 설계객체들에 대한 동적정보(dynamic information)를 저장하는 역할을 수행하고, 또한 추후에 사용자의 요구에 따라서 저장된 설계객체들에 대한 동적정보를 이용하여 시뮬레이션 또는 시뮬레이션가속을 재개하게 한다. 상기 부가코드의 일 예로서는 DUV에 추가되는 HDL/SDL 언어로 구술된 추가 설계 코드이거나, 또는 테스트벤치(testbench, 이후에는 TB로 약칭함)에 추가되는 HDL/SDL 언어 또는 HVL로 구술된 추가 코드일 수도 있으며, 검증플랫폼이 시뮬레이터의 경우에는 부가코드가 시뮬레이션 명령어(command)이거나 시스템테스크이거나 VPI/PLI/FLI 등을 이용하여 C/C++ 코드로 구현된 사용자테스크 일 수도 있고, 검증플랫폼이 하드웨어기반검증플랫폼의 경우에는 부가코드가 하드웨어기반검증플랫폼의 명령어이거나 시스템테스크이거나 하드웨어기반검증플랫폼의 API를 이용하여 C/C++ 코드로 구현된 것 일 수 있다. 여기서 설계객체(design object)들이란 크게 DUV 뿐만 아니라 TB 모두를 포함하고 있다(즉 DUV도 하나의 설계객체가 될 수 있고, TB도 하나의 설계객체가 될 수 있고, DUV와 TB를 합한 것도 하나의 설계객체가 될 수 있다). 뿐만 아니라, 이들 DUV와 TB는 일반적으로 계층적인 구조로 내부에 다양한 1 이상의 설계블럭(design block)들을 가지고 있는데, 이들 설계블럭들 각각도 설계객체라 할 수 있고, DUV의 일부분 또는 TB의 일부분도 설계객체라 할 수 있다 (DUV 또는 TB 내부에 존재하는 설계객체들은 하위 설계객체들이라 칭하면, DUV나 TB는 상위 설계객체라 칭함). 설계객체들에 대한 동적정보란 검증(시뮬레이션, 또는 시뮬레이션가속) 수행 도중에 설계객체 상에서 시간적으로 변하게 되는 값들의 집합을 가르킨다. 즉, 동적정보란 검증 실행(즉, 시뮬레이션 실행 또는 시뮬레이션가속 실행) 과정에서 얻어지는 검증 결과물들(예로 시뮬레이션에서의 특정 설계객체의 입출력 포트로 존재하는 시그널들에 대한 VCD dump 혹은 FSDB dump 혹은 PLI/VPI/FLI를 통하여 얻어지는 시그널값들)인데, 이것들은 특정 검증 시간대(예로 시뮬레이션 시간 0에서부터 100,000,000 시뮬레이션 나노초까지)에 걸쳐서 얻어지게 된다. 동적정보의 예로는 검증 실행(즉, 시뮬레이션 실행 또는 시뮬레이션가속 실행) 과정에서 특정검증 시간대에서 또는 전체검증 시간대에 걸쳐서 설계코드에 존재하는 모든 변수들의 값들 또는 특정 변수들만의 값들이 될 수 있고, 특정검증 시간대에서 또는 전체검증 시간대에 걸쳐서 설계회로에 존재하는 모든 신호선들의 값들 또는 특정 신호선들만의 값들이 될 수 있다. 또한 특정 설계객체에 있어서 이것에 대한 동적정보 중에서도 설계객체에 존재하는 메모리소자(플립플롭, 래치, RAM 또는 ROM 등의 메모리, 조합적궤환루프를 통하여 기억능력을 가지는 조합회로)들에 대한 동적정보(플립플롭의 출력값, 래치의 출력값, 메모리 내용, 조합적궤환루프 상에 존재하는 시그널 값)를 특정 설계객체의 "상태 정보"라 정의하고, 특정 설계객체의 모든 입력들과 입력모드에서의 양방향 입출력들에 대한 동적정보를 특정 설계객체의 "재생용 입력 정보"라 정의하고, 특정 설계객체의 모든 입력들과 출력들과 양방향 입출력들에 대한 동적정보를 특정 설계객체의 "재생용 입출력 정보"라 정의한다.
이와 같은 동적정보를 부가코드를 통하여 검증 실행 도중(즉, 시뮬레이션 실행 도중이나, 시뮬레이션가속 실행 도중)에 설계객체로부터 얻기 위해서 사용되는 방법들은 사용되는 검증 방법에 따라 다르다. 구체적 예들을 설명한다면, 우선 검증 방법이 시뮬레이션인 경우에는 시뮬레이션의 100% 가시도(visibility) 기능을 이용하여(예로, VCD dump system task인 $dumpvars 또는 $dumpports, 혹은 vpi_get_value, acc_fetch_value() 등과 같은 VPI/PLI/FLI 테스크를 수행하는 부가코드 등을 통하여서도 얻을 수 있음) 검증 실행 도중에 원하는 동적정보를 얻을 수 있다. 또 다른 예로서, 검증 방법이 시뮬레이션가속기 또는 하드웨어에뮬레이터 하드웨어기반 검증플랫폼을 이용하는 경우에는 설계객체에 입출력탐침 부가회로(구체적인 방법은 별도의 특허문서인 US 6,701,491 특허문서에 설명되어 있음으로 자세한 설명은 생략함)를 부가하여 구현함으로서 검증 실행 도중에 원하는 동적정보를 입출력탐침을 통하여 얻을 수 있다. 혹은 상용 하드웨어기반 검증플랫폼(예로 Cadence의 Palladium, Mentor의 Celaro/Vstation, Verisity의 ExtremeⅡ, Tharas의 Hammer, EVE의 ZeBu 등)에서 제공하는 100% 가시도 기능을 이용하여서도 검증 실행 도중에 원하는 동적정보를 얻을 수도 있다.
이상과 같은 방법으로 특정 검증 실행 과정 Vt에서 얻어진 동적정보는 이 후에 수행되는(예로, 코드 수정이 이루어지고 난 후에 코드 수정이 원하는대로 이루어졌는지를 확인하고자 수행되는) 또 다른 검증 실행 과정 Vt+j에서 부분적으로 또는 전체적으로 재활용되어서 Vt+j의 검증 실행 과정을 빠르게 진행할 수 있게 한다 (구체적 예로, DUV를 특정 테스트벤치 TB(i)를 이용하여서 시뮬레이션을 수행하는 과정인 Vt의 도중에서 DUV 또는 TB에 존재하는 설계오류를 발견하여 시뮬레이션 실행을 중단한 후, 해당 설계오류의 원인을 제거하기 위한 코드 변경이 이루어지고, 이와 같은 코드 변경이 올바르게 이루어졌는지를 확인하는 동시에 상기 도중에 중단된 테스트벤치 TB(i)를 이용하는 시뮬레이션 실행을 완전히 마치기 위한 시뮬레이션 실행 Vt+j에서 시뮬레이션 실행 과정 Vt에서 얻어진 동적정보가 재활용되어서 Vt+j의 시뮬레이션 실행 과정을 빠르게 진행). 구체적으로, 이와 같이 동적정보가 재활용(dynamic information reuse)될 수 있는 경우는 2가지 경우로 나눌 수 있다.
첫 번째는, 특정 설계객체에 설계오류가 존재하여 해당 설계객체의 내용이 디버깅 과정을 거쳐서 변경이 된 경우에 리그레션 테스트(regression test) 과정이 필요하게 되는데 이와 같은 경우에 재활용을 하는 것, 혹은 설계객체에 대한 변경이 이루어진 후에 변경이 원래의 의도대로 되었는지를 확인하고 해당 검증 실행을 완료시키고자 하는 경우에 재활용을 하는 것이다. 이 경우에는 리그레션 테스트의 진행에 있어서 특정 테스트 시나리오를 실행하는 경우나, 원래의 의도대로 변경이 되었는지를 확인하고 해당 검증 실행을 완료시키기 위한 실행과정에서 DUV와 TB 전체를 대상으로 하여 검증 실행을 진행하지 않고, 전체 검증시간의 1 이상의 일정시간 영역에서는(예로, 시뮬레이션시간 0에서부터 특정 시뮬레이션시간 t1까지는) 오직 설계 변경이 된 1 이상의 설계객체들 DOmod만을 대상으로 하는 검증 실행을 진행함으로서 빠른 속도로 검증 실행이 진행(즉 설계 변경이 되지 않은 1 이상의 설계객체들 DOunmod에 대해서는 상기 전체 검증시간의 1 이상의 일정시간 영역에서는(예로, 시뮬레이션시간 0에서부터 특정 시뮬레이션시간 t1까지는) 검증 실행을 수행하지 않음으로서 상기 DOunmod를 상기 전체 검증시간의 1 이상의 일정시간 영역에서(예로, 시뮬레이션시간 0에서부터 특정 시뮬레이션시간 t1까지) 수행하는 것에 소요되는 시간만큼을 단축하도록 함)될 수 있도록 하고, 이 이외의 시간 영역에서는(예로 상기 특정 검증시간 t1 이후부터는) DUV와 TB 전체에 대하여 검증을 진행하도록 한다. 이와 같은 검증 실행 방법(이와 같은 검증 실행 방법을 본 특허에서는 "인크리멘탈 검증 실행"이라 칭하기로 함)을 위해서 핵심적인 사항은 설계 변경이 된 1 이상의 설계객체들만을 대상으로 하는 검증 실행을 진행하여도 무방한 1 이상의 일정 시간 영역을 전체 검증시간 영역에서 구분할 수 있어야 한다. 이는 설계 변경 이전에 수행되는 검증 실행 과정에서 특정 1 이상의 설계객체들에 대하여 특정한 동적정보를 수집하여 이를 설계 변경 이후에 수행되는 검증 실행 과정에서 설계 변경이 이루어진 설계객체들에서 생성되는 특정한 동적정보들과 검증 실행 과정에서 실시간으로 비교하여 처리함으로서 가능하게 된다. 또한 오직 설계 변경이 된 1 이상의 설계객체들 DOmod를 적절하게 선정하는 것이 필요한데, 변경 후에 시뮬레이터를 이용한 검증 실행을 하는 경우에는 시뮬레이션의 속도를 크게 높이기 위해서 DOmod 범위(즉 DOmod의 크기)를 일정한도로 최소화시키는 것이 바람직하고, 변경 후에 하드웨어기반검증플랫폼(예로 시뮬레이션가속기)를 이용한 검증 실행을 하는 경우에는 통상 하드웨어기반검증플랫폼의 실행속도는 하드웨어기반검증플랫폼 상에서 수행되는 설계객체의 크기 또는 복잡도와 무관함으로 DOmod 범위를 최소화할 필요는 없다 (예로, 시뮬레이션가속의 경우에는 DUV 내부에 존재하는 하위 설계객체의 하나를 수정한 경우에는 DOmod를 DUV로 지정하는 것도 가능하지만, 시뮬레이션의 경우에는 DOmod는 상기 수정된 하위 설계객체 하나로 지정하는 것이 바람직함. 또한 시뮬레이션가속의 경우에서 DOmod를 DUV 전체로 지정하여서 수행하는 경우라고 하더라도 DUV에 재생용 입력 정보를 인가하여 시뮬레이션가속을 진행하는 것이 TB를 HDL 시뮬레이터로 실행하여서 얻어지는 입력을 DUV가 수행되는 하드웨어기반검증플랫폼에 인가하여 시뮬레이션가속을 진행하는 것보다 휠씬 빠른 속도로 진행할 수 있음).
구체적인 방법 중의 하나를 설명하면 다음과 같다 (이를 체크포인팅기반의 인크리멘탈 검증 실행 방법이라 칭함). 검증 진행 과정의 특정 테스트벤치를 이용하여 진행되는 각 테스트 시나리오 실행에서 검증 실행의 시작인 시뮬레이션시간 0에서부터 설계 변경이 이루어진 설계객체들의 모든 출력들과 출력모드시의 양방향 입출력들의 값들
Figure 112009014645418-pat00049
을 설계 변경 이전의 동일 설계객체들의 모든 출력들과 출력모드시의 양방향 입출력들의 값들
Figure 112009014645418-pat00050
과 검증 실행 과정에서 실시간으로 비교하여 이들 두 값들이 동일한 경우에는, 상기 설계 변경이 이루어진 설계객체들만을 설계 변경 이전의 검증 실행에서 구하여 특정 형태(예로 TB화된 형태, 또는 VCD 형태, 또는 이진파일 형태)로 저장시킨 재생용 입력 정보 또는 재생용 입출력 정보 중에서 재생용 입력 정보만을 입력스티뮬러스로써 사용해서 매우 빠르게 검증과정을 실행하고(이와 같은 검증 실행을 가능하도록 하는 실제 실행 방식은 사용되는 검증플랫폼이 무엇으로 구성되어 있는가에 따라서 달라질 수 있음. 구체적 예로서 검증플랫폼이 하나의 이벤트구동(event-driven) HDL 시뮬레이터(현재 대부분의 상용 HDL 시뮬레이터들은 이벤트구동 시뮬레이터들임)로 구성된 경우에는 이 HDL 시뮬레이터로 수행되는 시뮬레이션을 위한 시뮬레이션 컴파일 과정은 DUV와 TB를 전체를 대상으로 수행하여 DUV와 TB 모두를 포함한 시뮬레이션실행 이진파일을 생성하고서, PLI/VPI/FLI 또는 시뮬레이터의 시스템테스크 등을 사용하여서 실제 시뮬레이션 실행은 상기 설계 변경이 이루어진 설계객체들의 입력과 입출력들에만 재생용 입력 정보를 인가되도록 하여서 상기 입력 정보에 존재하는 모든 이벤트들을 순서적으로 발생시키면서 실행시키고, 설계 변경이 이루어지지 않은 설계객체들의 입력과 입출력들 이벤트 발생 그리고 필요시에는 내부 시그널들까지의 이벤트 발생을 완전하게 억제(이벤트 발생을 억제하는 구체적 방법의 예는 force/release procedural continous assignment 사용)함으로서 이루어 질 수 있음. 또 다른 예로는 상기 설계 변경이 이루어진 설계객체와 재생용 입력 정보만을 대상으로 하는 시뮬레이션 컴파일을 수행해서 시뮬레이션실행 이진파일도 상기 설계 변경이 이루어진 설계객체와 재생용 입력 정보만으로 구성되도록 하는 것도 가능함), 상기 두 값들 "
Figure 112009014645418-pat00051
Figure 112009014645418-pat00052
이 달라지는 시점"(본 특허에서는 앞으로는 이를 tm으로 약칭함) 또는 tm 부근(tm 부근인 경우에서는 아래에서 설명될 Tsi로 하는 것이 제일 바람직함)에서부터 설계 변경이 이루어진 설계객체들과 설계 변경이 이루어지지 않은 나머지 설계객체들 모두를 합하여서 검증 실행(이와 같이 TB와 DUV 모두를 합쳐서 함께 통상적인 방식으로 진행되는 것을 본 특허에서는 "모든 설계객체들이 함께 서로 연동하는 방식"이라 칭함)을 계속 진행하게 되면 전체의 검증 소요 시간을 줄이면서도 바르고 정확한 검증을 수행하는 것이 가능하다 (이 실행 과정에서 추후에도 계속하여 인크리멘탈 검증 실행을 하고자 하면, 설계 변경 이전의 검증 실행에서 수행된 체크포인트와 동일한 시뮬레이션시점 또는 시뮬레이션구간(본 특허에서 시뮬레이션구간이란 시뮬레이션시간구간의 약칭임)에서 체크포인팅을 수행하면서 실행함. 체크포인트에 대해서는 아래에서 설명함). 그런데, 이와 같이 상기 두 값들이 달라지는 시점 tm 에서 또는 tm 부근(tm 부근인 경우에서는 아래에서 설명될 Tsi로 하는 것이 제일 바람직함)에서 설계 변경이 이루어진 설계객체들과 설계 변경이 이루어지지 않은 나머지 설계객체들을 모두 합하는 과정에서, 설계 변경이 이루어지지 않은 나머지 설계객체들의 상태 정보를 설계 변경이 이루어진 설계객체들의 상태 정보와 같은 검증시간대로 정확히 맞추어 주는 것이 필수적이다.
이를 위한 효과적인 방법 중의 하나는, 설계 변경 이전에 수행된 검증 실행(예로, 시뮬레이션 실행) 과정에서 설계객체들에 대하여 일정 검증시간 간격으로 상태 정보를 1회 이상 저장(예로 전체 검증 실행 과정에서 총 20회 저장, 또는 전체 검증 실행 과정에서 매 10,000나노초 마다 저장, 또는 전체 검증 실행 과정에서 매 10,000나노초마다 10나노초 동안 저장)시키게 하고, 이와 같이 저장된 상태 정보를 이용하면 가능하다 (본 특허에서는 이와 같이 상태 정보를 저장한 것을 "체크포인트를 생성한 것" 혹은 "체크포인팅"이라 칭하고, 이들 각각의 상태 정보 저장이 이루어진 특정 시뮬레이션시점 또는 특정 시뮬레이션구간을 "체크포인트"라고 칭하기로 함. 또한 1 이상의 체크포인트 중에서 tm(tm은 앞에서 이미 설명되었음)과 제일 가까우면서 시간적으로 과거에 있는 특정 체크포인트를 Tsi라 표시함). 지금부터는 각 검증플랫폼을 사용하는 경우에 대하여 위에서 언급된 상태 정보 저장 방법을 구체적으로 설명한다.
시뮬레이터를 검증플랫폼으로 사용하는 경우에는 두 가지 방법이 있는데, 첫번째 방법은 설계객체의 변경 이전에 수행된 시뮬레에션에서 "시뮬레이션의 상태 정보"(혹은 단순히 시뮬레이션 상태 정보)를 1회 이상 저장하고(즉, 체크포인트를 생성하고) 이를 추후에 이용하는 것인데, 이것은 시뮬레이션 상태 정보가 해당 시뮬레이터에 의하여 실행되는 모든 설계객체들에 대한 완벽한 동적정보(이 동적정보에는 설계객체들의 상태 정보가 포함되어 있음)를 포함하고 있기 때문이다. 시뮬레이션 상태 정보를 저장하는 방법은 여러 가지가 있을 수 있는데, 그들 중에서 제일 편리한 방법으로는 시뮬레이터에서 제공하는 시뮬레이션 상태 정보 저장 명령(예로 HDL 시뮬레이터에서의 save 명령 또는 checkpoint 명령. 구체적 예로서는, Cadence사의 NC-Verilog의 save 명령과 -r 옵션을 사용한 ncverilog, 또는 Synopsys사의 VCS의 save 명령과 restart 명령, 또는 Mentor사의 ModelSim의 checkpoint 명령과 restore 명령이 있음)을 사용하면 되고, 임의의 프로그램의 경우에는 스냅셧(snapshot) 기능을 사용하면 프로그램 상태 정보를 저장/복원할 수 있다 (시뮬레이션 상태 정보는 시뮬레이션 프로세스의 상태 정보이며 임의의 프로그램 상태 정보는 프로그램 프로세스의 상태 정보임. 이와 같은 프로세스의 상태 정보의 저장/복원을 통하여 해당 프로세스의 실행을 일시적으로 멈추고, 나중에 멈춤시점부터 재개하는 것이 가능함). 두 번째 방법은, 설계객체 변경 이전에 수행되는 검증 실행(즉, 시뮬레이션 실행 또는 시뮬레이션가속 실행) 과정에서 설계객체의 상태 정보를 1회 이상 저장하고(즉, 체크포인트를 생성하고), 이를 추후에 이용하는 것이다. 이 방법은 시뮬레이터를 사용하는 경우에서뿐만 아니라 하드웨어기반검증플랫폼을 사용하는 경우에도 효과적인데, 이유는 하드웨어기반검증플랫폼은 스냅셧/재출발 기능을 제공하는 시뮬레이터와는 달리 검증플랫폼의 상태 정보를 저장하는 효과적인 방법이 제공되지 않기 때문이다. 이와 같은 두 번째 방법은 하드웨어기반검증플랫폼을 이용하는 경우뿐만 아니라 시뮬레이터를 이용하는 경우에도 적용될 수 있는 방법이기도 한데, 여기서는 하드웨어기반검증플랫폼을 사용하는 경우를 예로써 하여서 설명하기로 한다. 하드웨어기반검증플랫폼을 검증플랫폼으로 사용하는 경우에는 시뮬레이션가속기를 가정하여 설명한다. 나머지 하드웨어기반검증플랫폼의 경우 또는 시뮬레이터의 경우에도 시뮬레이션가속기와 유사한 방법을 사용하면 됨으로 구체적인 설명은 생략하기로 한다. 시뮬레이션가속기를 이용한 시뮬레이션가속을 통한 검증 실행에서는 시뮬레이션가속기에 구현된 설계객체들에 대해서는 설계객체들 각각의 상태 정보를 1회 이상 저장하고(즉, 체크포인트를 생성하고) 설계 변경이 이루어진 설계객체들을 제외한 나머지 설계객체들에 대하여서 이들 저장된 상태 정보를 복원과정을 통하여 설계 변경 후의 검증 실행에 이용하는 방법을 생각할 수 있다 (즉, 설계 변경 이후에 수행되는 검증 실행 과정에서 설계 변경이 이루어지지 않은 1 이상의 설계객체들은 설계 변경 이전의 검증 실행에서 상태 정보가 저장된 1 이상의 체크포인트들 중의 한 체크포인트까지는 검증 실행을 수행하지 않고 상기 한 체크포인트에서 상기 설계 변경 이전의 검증 실행에서 저장된 상태 정보로 복원하게 됨). 시뮬레이션가속기와 병행하여서 HDL/SDL/HVL 시뮬레이터가 같이 사용되는 경우(예로 HDL 시뮬레이터나 HVL 시뮬레이터에서 TB가 수행되는 경우)에는 상기 HDL/SDL/HVL 시뮬레이터 상에서 수행되는 설계객체들에 대해서는 설계 변경 이전에 수행되는 시뮬레이션의 상태 정보를 1회 이상 저장하거나(즉, 체크포인트를 생성하거나) 혹은 시뮬레이션 수행 과정에서 설계객체들의 상태 정보를 1회 이상 저장하고(즉, 체크포인트를 생성하고) 이를 추후에 복원 과정을 통하여 이용할 수 있다. 상기 복원 과정은 시뮬레이터의 재출발(restart) 기능(구체적인 예는 시뮬레이터의 restore 명령이나 restart 명령)을 이용하거나, 또는 PLI/VPI/FLI(구체적 예로는 PLI의 acc_set_value(), VPI의 vpi_put_value()) 또는 시뮬레이터 시스템테스크 또는 HDL의 force/release procedural assignment 등을 이용하여서 상기 저장된 설계객체들의 상태 정보를 해당 설계객체들의 해당 시그널값들로 복원시키는 과정을 수행하면 된다. 이와 같은 방법이 매우 효율적인 이유는 시뮬레이션시간 0에서부터 tm까지 또는 tm 부근(tm 부근인 경우에서는 위에서 설명된 Tsi로 하는 것이 제일 바람직함)까지는 검증 실행(예로, 시뮬레이션 실행)이 설계 변경이 이루어진 설계객체들 DO{s}에 대해서만 설계 변경 이전의 검증 실행에서 구하여 특정형태로 저장된 DO{s}에 대한 재생용 입력 정보 또는 재생용 입출력 정보 중에서 재생용 입력 정보(설계 변경이 이루어진 설계객체들 DO{s}에 대한 재생용 입력 정보는 DO{s}를 제외한 나머지 설계객체들, 즉 설계 변경이 이루어지지 않은 설계객체들 입장에서는 출력 정보가 되며, DO{s}의 출력은 설계 변경이 이루어지지 않은 설계객체들 입장에서는 입력이 됨)만을 입력스티뮬러스로 사용해서 매우 빠르게 검증과정을 실행할 수 있다는 것이다 (즉, 설계 변경 이후에 수행되는 검증 실행 과정에서 설계 변경이 이루어지지 않은 1 이상의 설계객체들은 설계 변경 이전의 검증 실행에서 상태 정보가 저장된 1 이상의 체크포인트들 중의 한 체크포인트까지는 검증 실행을 수행하지 않아도 됨으로서 검증시간을 크게 단축하는 것이 가능함).
이를 위한 또 다른 방법(이를 저장부분회피 방법이라 칭함)은, 설계 변경이 이루어지지 않은 설계객체들 중에서 일부분만도 시뮬레이션시간 0에서부터 수행시키는 것이다. 이 방법은 앞에서 제안된 체크포인트기반 방법보다는 설계 변경 후에 수행되는 검증 실행에서 시뮬레이션시간 0에서부터 tm 부근 또는 tm까지에서 상대적으로 검증 실행의 성능저하가 발생되는 단점이 있지만, 특정 설계객체들(예로 TB)에 대한 상태 정보 저장 및 복원이 용이하지 않은 경우에 유용한 방법이다. 이 경우에는 설계 변경이 이루어지지 않은 설계객체들 중에서 수행되는 일부분의 범위를 최소화시키는 것이 필요한데, 예를 든다면 TB와 DUV로 이루어진 설계객체에서 설계 변경이 이루어진 경우에 TB만을 설계 변경이 이루어진 설계객체와 같이 시뮬레이션시간 0에서부터 수행되는 대상으로 선정하고, DUV의 하위 설계객체의 하나가 변경이 된 경우에는 변경된 DUV의 하위 설계객체의 수행과 더불어 TB도 시뮬레이션시간 0에서부터 수행하고, DUV에서 설계 변경이 안된 설계객체들에 대해서만 설계 변경 이전의 검증 실행에서 저장한 상태 정보를 이용하여 설계 변경 후의 검증 실행 과정에서 tm 부근(위에서 설명된 Tsi로 하는 것이 제일 바람직함)에서 저장된 상태 정보로써 DUV에서 설계 변경이 안된 설계객체들의 상태를 복원하면 된다.
두 번째는, 설계객체에 대한 변경 없이 다른 테스트 시나리오를 이용한 테스트를 진행하는 경우에 이에 앞서서 진행된 테스트 시나리오를 이용한 테스트 결과를 재활용 하는 것이다. 이 경우가 첫 번째 경우와 다른 것은 변경이 이루어진 설계객체가 이 경우에는 항상 TB인 반면에, 첫 번째 경우에는 변경이 이루어진 설계객체가 DUV이거나 DUV 내에 존재하는 특정한 1 이상의 설계블럭일 수 있다는 것 이외에는 없다 (첫 번째 경우에도 변경이 이루어진 설계객체가 TB일 수도 있다) . 따라서, 첫 번째 경우에 적용된 방법과 동일한 방법을 두 번째 경우에 적용하여 앞서서 진행된 테스트 시나리오를 이용한 테스트 결과를 재활용 함으로서 다른 테스트 시나리오를 이용한 테스트를 신속하게 진행할 수 있다.
상기 2가지 경우에 설계 변경에 의하여 1 이상의 설계객체가 변경되기 이전의 실행결과와 설계객체가 변경된 후의 실행결과가 시뮬레이션시간 0에서부터 시작하여 처음으로 달라지는 검증시점인 시뮬레이션시간 tm을 최대한도로 신속하게 찾아내는 것도 매우 중요하다. 이를 위해서는 다음과 같은 방법을 사용하면 매우 효과적이다. 설계객체가 변경되기 이전의 검증 실행 과정에서 1이상의 시점에서 1 이상의 설계객체들에 대한 동적정보를 저장(일 예로 상태 정보는 일정 시간간격(예로 10만 시뮬레이션 나노초마다)으로 저장, 재생용 입력 정보나 재생용 입출력 정보는 매 이벤트 발생시마다 혹은 매 사이클마다 저장)하여서 상태 정보가 저장된 2 이상의 시점들에서 독립적으로 병렬적으로 검증 실행을 재현할 수 있게 하고, 1 이상의 설계객체가 변경된 이후에 설계 검증을 수행을 상기 상태 정보가 저장된 2 이상의 시점들에서 독립적으로 병렬적으로 진행하고 변경된 1 이상의 설계객체의 출력과 출력모드시의 입출력 값들이 달라지는 1 이상의 검증 시간들 중에서 시뮬레이션시간 0 (시뮬레이션시간 0은 시뮬레이션 실행 또는 시뮬레이션가속 실행의 시작시점임)에 제일 가까운 검증 시간이 tm이 된다. 이와 같이 tm을 찾는 과정을 병렬적으로 진행하게 되면 tm을 찾는 과정을 순차적으로 진행하는 것에 비하여 찾기 위하여 소요되는 시간을 크게 단축시키는 것이 가능할 수 있다.
상기 목적 외에 본 발명의 다른 목적 및 이점들은 첨부한 도면을 참조한 실시 예에 대한 상세한 설명을 통하여 명백하게 드러나게 될 것이다.
도1 은, 컴퓨터에서 운영되는 본 발명의 검증 소프트웨어와 시뮬레이터를 갖는 컴퓨터로 구성된 본 발명에 관한 설계 검증 장치의 일 예를 개략적으로 도시한 도면이다.
도2 는, 컴퓨터에서 운영되는 본 발명의 검증 소프트웨어와 시뮬레이터를 갖는 2 이상의 컴퓨터들과 이들 컴퓨터들을 연결하는 컴퓨터 네트워크로 구성된 본 발명에 관한 설계 검증 장치의 또 다른 일 예를 개략적으로 도시한 도면이다.
도3 은, 컴퓨터에서 운영되는 본 발명의 검증 소프트웨어와 시뮬레이터를 갖는 컴퓨터와 하드웨어기반검증플랫폼으로 구성된 본 발명에 관한 설계 검증 장치의 또 다른 일 예를 개략적으로 도시한 도면이다.
도4 는, 컴퓨터에서 운영되는 본 발명의 검증 소프트웨어와 시뮬레이터를 갖는 2 이상의 컴퓨터들과 하드웨어기반검증플랫폼과 이들 컴퓨터들을 연결하는 컴퓨터 네트워크로 구성된 본 발명에 관한 설계 검증 장치의 또 다른 일 예를 개략적으로 도시한 도면이다. 상기 시뮬레이터와 하드웨어기반검증플랫폼은 각각 1 이상이 될 수도 있다.
도5 는, 컴퓨터에서 운영되는 본 발명의 검증 소프트웨어와 이 검증 소프트웨어가 운영되는 컴퓨터와 하드웨어기반검증플랫폼으로 구성된 본 발명에 관한 설계 검증 장치의 또 다른 일 예를 개략적으로 도시한 도면이다. 상기 하드웨어기반검증플랫폼은 1 이상이 될 수도 있다.
도6 은 도3 과 같은 설계 검증 장치를 이용한 검증결과 재활용의 일 실시 예를 설명하는 흐름도이다.
우선 설계 검증 대상이 되는 상위 설계객체인 DUV와 TB를 도3 에 도시된 컴퓨터(35)로 읽어 들인다(제 S10 단계). 제 S12 단계에서는 본 발명에서의 검증 소프트웨어(32)로 부가코드를 해당 설계객체에 부가한다. 제 S14 단계에서는 부가코드가 추가된 상위 설계객체를 대상으로 컴파일을 수행한다. 제 S16 단계에서는 컴파일된 결과를 검증플랫폼에 로딩한다. 제 S18 단계에서는 검증플랫폼 상에서 설계 검증대상에 대한 1회 이상의 검증을 수행하면서, 1 이상의 설계객체들에 대한 동적정보을 수집하고, 이를 저장한다. 제 S20 단계에서는 1 이상의 설계객체의 부분변경이 필요한지를 조사하여, 부분변경만이 필요하면 제 S26 단계로 진행하고 그렇치 않으면 제 S22 단계로 진행한다. 제 S22 단계에서는 모든 설계객체들의 변경이 필요한지를 조사하여, 그렇치 않으면 검증을 완료하고 종료하고 모든 설계객체들의 변경이 필요하면 제 S24 단계로 진행하여 모든 설계객체들을 변경하고 제 S12 단계로 진행한다. 제 S26 단계에서는 1 이상의 설계객체들에 대한 부분변경을 수행한다. 제 S28 단계에서는 제 S26 단계에서 진행된 부분변경을 위한 부가코드를 추가한다. 제 S30 단계에서는 재컴파일을 수행한다. 이 과정에서는 변경된 부분만을 재컴파일하는 점진적 컴파일(incremental compile)을 하여 컴파일 시간도 단축시킬 수 있다. 제 S32 단계에서는 설계 검증 대상을 검증플랫폼에 재로딩한다. 제 S34 단계에서는 재생용입력과 변경된 설계객체들만을 대상으로 하는 검증 실행을 검증시간 0에서부터 검증시간 tm까지 진행한다. 여기서 tm은 상기 부가코드에 의하여 검증 실행 과정에서 자동적으로 결정되어진다. 제 S36 단계에서는 검증시간 tm에서 검증 실행을 설계객체 전체를 대상으로 하는 검증으로 전환한다. 이와 같은 전환도 상기 부가코드에 의하여 검증 실행 과정에서 자동적으로 전환된다. 제 S38 단계에서는 검증시간 tm에서부터 설계객체 전체를 대상으로 하는 검증을 실행하게 되며, 동시에 설계전체에 대한 동적정보를 수집하고 저장한다. 제 S40 단계에서는 지금까지 수집된 모든 동적정보의 통합을 하고, 제일 최신의 정보로 수정함으로서 이 이후에 수행되는 추가적인 설계객체의 변경 이후에서의 검증 실행 과정에서도 변경 이전의 동적정보를 이용하여 검증 실행을 신속하게 수행할 수 있게 하게 된다. 제 S40 단계를 완료한 후에는 제 S20 단계로 진행한다.
도7 은 도1 을 이용한 시뮬레이션결과 재활용의 일 실시 예를 설명하는 흐름도이다.
우선 설계 검증 대상이 되는 상위 설계객체인 DUV와 TB를 도1 에 도시된 컴퓨터(35)로 읽어 들인다(제 S50 단계). 제 S52 단계에서는 본 발명에서의 검증 소프트웨어(32)로 부가코드를 해당 설계객체에 부가한다. 제 S54 단계에서는 부가코드가 추가된 상위 설계객체를 대상으로 컴파일을 수행한다. 제 S56 단계에서는 컴파일된 결과를 시뮬레이터에 로딩한다. 제 S58 단계에서는 시뮬레이터 상에서 설계 검증대상에 대한 1회 이상의 시뮬레이션을 수행하면서, 1 이상의 설계객체들에 대한 동적정보을 수집하고, 이를 저장한다. 제 S60 단계에서는 1 이상의 설계객체의 부분변경이 필요한지를 조사하여, 부분변경만이 필요하면 제 S66 단계로 진행하고 그렇치 않으면 제 S62 단계로 진행한다. 제 S62 단계에서는 모든 설계객체들의 변경이 필요한지를 조사하여, 그렇치 않으면 검증을 완료하고 종료하고 모든 설계객체들의 변경이 필요하면 제 S64 단계로 진행하여 모든 설계객체들을 변경하고 제 S52 단계로 진행한다. 제 S66 단계에서는 1 이상의 설계객체들에 대한 부분변경을 수행한다. 제 S68 단계에서는 제 S66 단계에서 진행된 부분변경을 위한 부가코드를 추가한다. 제 S70 단계에서는 재컴파일을 수행한다. 이 과정에서는 변경된 부분만을 재컴파일하는 점진적 컴파일(incremental compile)을 하여 컴파일 시간을 단축시킬 수도 있다. 제 S72 단계에서는 설계 검증 대상을 시뮬레이터에 재로딩한다. 제 S74 단계에서는 재생용입력과 변경된 설계객체들만을 대상으로 하는 시뮬레이션을 검증시간 0에서부터 검증시간 tm까지 진행한다. 여기서 tm은 상기 부가코드에 의하여 시뮬레이션실행 과정에서 자동적으로 결정되어진다. 제 S76 단계에서는 시뮬레이션시간 tm에서 시뮬레이션 수행을 설계객체 전체를 대상으로 하는 검증으로 전환한다. 이와 같은 전환도 상기 부가코드에 의하여 시뮬레이션실행 과정에서 자동적으로 전환된다. 제 S78 단계에서는 시뮬레이션시간 tm에서부터 설계객체 전체를 대상으로 하는 시뮬레이션을 실행하게 되며, 동시에 설계전체에 대한 동적정보를 수집하고 저장한다. 제 S80 단계에서는 지금까지 수집된 모든 동적정보의 통합을 하고, 제일 최신의 정보로 수정함으로서 이 이후에 수행되는 추가적인 설계객체의 변경 이후에서의 시뮬레이션 실행 과정에서도 변경 이전의 동적정보를 이용하여 시뮬레이션 실행을 신속하게 수행할 수 있게 하게 된다. 제 S80 단계를 완료한 후에는 제 S60 단계로 진행한다.
도8 은 임의의 검증플랫폼을 사용하여 설계 검증을 수행하는 과정에서 설계 객체 변정 이전에 수행된 검증결과를 재활용을 하여 설계객체 변경 후에 수행되는 검증을 신속하게 수행하는 과정의 일 실시 예를 개략적으로 도시한 도면이다.
도8 에서 도시한 과정은 4 단계로 구분되어져 있다. 단계 1은 1 이상의 설계객체들의 변경 이전에 검증 실행이 수행되는 상황을 나타낸 것이다. 이 과정에서는 검증 실행 도중에 1 이상의 설계객체들에 대한 동적정보 수집 및 저장이 필요하다. 수집된 동적 정보는 1 이상의 설계객체들의 변경 이후에 수행되는 인크리멘탈 검증 실행 방법에 의한 검증 실행 과정에 재사용되어지게 되는데, 이 수집된 동적 정보는 변경되는 1 이상의 설계객체들의 시뮬레이션시간 0에서부터 특정 시뮬레이션시점까지에서의 재생용 입출력 정보와 1 이상의 체크포인트에서의 변경되지 않는 1 이상의 설계객체들의 상태 정보를 포함하고 있다. 단계 2-1은 변경 이후에 변경이 된 1 이상의 설계객체들과 이들의 재생용 입력 정보를 이용한 검증 실행을 시뮬레이션시간 0에서부터 시뮬레이션시간 tm까지 수행하면서 체크포인트(체크포인트 시점 또는 체크포인트 구간은 변경 이전에 수행된 체크포인트의 체크포인트 시점 또는 체크포인트 구간과 동일함)를 수행하는 상황을 나타낸 것이다. 단계 2-2은 상기 검증 시간 tm 부근(tm 부근은 위에서 설명된 Tsi로 하는 것이 제일 바람직함)에서 설계 변경이 이루어진 설계객체들과 설계 변경이 이루어지지 않은 나머지 설계객체들을 합하는 과정에서, 설계 변경이 이루어지지 않은 나머지 설계객체들의 상태 정보를 설계 변경이 이루어진 설계객체들의 상태 정보와 같은 검증시간대로 정확히 맞추어 주는 상황을 나타낸 것이다 (즉, 변경이 이루어진 설계객체들의 상태 정보와 변경이 이루어지지 않은 설계객체들의 상태 정보를 모두 체크포인트 Tsi에서의 상태 정보로 복원하는 상황을 나타낸 것인데, 도면에서도 나타난 것과 같이 변경이 이루어진 설계객체들의 상태 정보는 단계 2-1에서 진행된 체크포인트 과정을 통하여 얻어진 것이고, 변경이 되지않은 설계객체들의 상태 정보는 단계 1에서 진행된 체크포인트 과정을 통하여 얻어진 것임). 구체적으로는, 변경 이전에 검증 실행 과정에서 설계객체들을 대상으로 하여 상태 정보 저장을 수행한 1 이상의 시뮬레이션시점들 또는 시뮬레이션구간들에서 시뮬레이션시점 tm과 제일 가까우면서 시간적으로 과거인 체크포인트 Tsi으로 변경이 않된 모든 설계객체들의 상태 정보와 변경이 된 모든 설계객체들의 상태 정보를 복원하고 Tsi에서부터 tm까지 변경이 않된 모든 설계객체들과 변경이 된 모든 설계객체들(설계 검증 대상 전체)을 함께 수행시킨다. 단계 2-3은 단계 2-2의 마지막에 연이어서 검증 시간 tm에서부터 설계 검증 대상 전체(변경이 않된 모든 설계객체들과 변경이 된 모든 설계객체들)를 대상으로 하는 검증 실행을 수행하는 상황을 나타낸 것이다. 도8 에서의 검증플랫폼이 하나의 HDL 시뮬레이터로만 되어져 있고 TB 설계객체에 대한 상태 정보 저장이 어려운 경우에서는, 이미 앞서서 설명한 것과 같이 단계 2-2에서 TB 설계객체에 대한 상태 정보 복원을 Tsi에서 수행하는 대신에(즉, Tsi에서의 상태 정보 복원은 DUV 설계객체에 대해서만 수행됨) TB 설계객체에 대한 시뮬레이션 실행을 TB에 대한 재생용 입력 정보를 이용하여서 시뮬레이션시간 0에서부터 Tsi까지 진행하게 된다. 뿐만 아니라, 방금 언급된 것과 같은 4 단계로 이루어진 인크리멘탈 검증 실행 방식은 도8 과 같은 경우에서뿐만 아니라, 2 이상의 HDL 시뮬레이터를 이용하는 경우, 또는 1 이상의 HDL 시뮬레이터와 1 이상의 하드웨어기반검증플랫폼을 이용하는 경우에서도 수행되어질 수 있다.
도9 는 임의의 하드웨어기반검증플랫폼을 사용하여 설계 검증을 수행하는 과정에서 설계객체 변경 이전에 수행된 검증결과를 재활용을 하여 설계객체 변경 후에 수행되는 검증을 신속하게 수행하는 과정의 일 실시 예를 개략적으로 도시한 도면이다. 그림에서 하드웨어기반 검증 도메인이라고 표시된 부분은 하드웨어기반검증플랫폼 상에서 수행되는 설계객체(DUV 설계객체)를 나타낸 것이고, 소프트웨어기반 검증 도메인이라고 표시된 부분은 시뮬레이터 상에서 수행되는 설계객체(TB 설계객체)를 나타낸 것이다.
도10 은 설계 검증을 수행하는 과정에서 설계객체 변경 이전에 수행된 시뮬레이션결과를 재활용을 하여 설계객체 변경 후에 수행되는 시뮬레이션을 1 이상의 시뮬레이터를 사용하여서 인크리멘탈 시뮬레이션 방법으로 신속하게 수행하는 과정의 또 다른 일 실시 예를 개략적으로 도시한 도면이다.
도9 와 도10 에서 도시한 과정은 공통적으로 4 단계로 구분되어져 있다. 단계 1은 1 이상의 설계객체들의 변경 이전에 검증 실행이 수행되는 상황을 나타낸 것이다. 이 과정에서는 검증 실행 도중에 1 이상의 설계객체들에 대한 동적정보 수집 및 저장이 필요하다. 수집된 동적 정보는 1 이상의 설계객체들의 변경 이후에 수행되는 검증 실행 과정에 재사용되어지게 되는데, 이 수집된 동적 정보는 변경되는 1 이상의 설계객체들의 시뮬레이션시간 0에서부터 특정 시뮬레이션시점까지에서의 재생용 입출력 정보와 1 이상의 체크포인트에서의 변경되지 않는 1 이상의 설계객체들의 상태 정보를 포함하고 있다. 단계 2-1은 변경 이후에 변경이 된 1 이상의 설계객체들과 이들의 재생용 입력 정보를 이용한 검증 실행을 시뮬레이션시간 0에서부터 시뮬레이션시간 tm까지 수행하는 상황을 나타낸 것이다. 단계 2-2은 상기 시뮬레이션시간 tm에서 설계 변경이 이루어진 설계객체들과 설계 변경이 이루어지지 않은 나머지 설계객체들을 합하는 과정에서, 설계 변경이 이루어지지 않은 나머지 설계객체들의 동적정보를 설계 변경이 이루어진 설계객체들의 동적정보와 같은 시뮬레이션시간대로 정확히 맞추어 주는 상황을 나타낸 것이다. 구체적으로는, 변경 이전에 검증 실행 과정에서 설계객체들을 대상으로 하여 상태 정보 저장을 수행한 1 이상의 시뮬레이션시점 또는 시뮬레이션구간들(즉 체크포인트들)에서 시뮬레이션시점 tm과 제일 가까우면서 시간적으로 앞서있는(즉, 시간적으로 과거인) 체크포인트 Tsi로 변경이 않된 모든 설계객체들의 상태 정보를 복원하고, Tsi에서부터 tm까지 변경이 않된 모든 설계객체들을 변경 이전에 수집된 재생용 입력 정보를 이용하여 수행시킨다. 단계 2-3은 시뮬레이션시간 tm에서부터 설계 검증 대상 전체(여기에는 변경된 1 이상의 설계객체들도 포함되어 있음)를 대상으로 하는 검증 실행을 수행하는 상황을 나타낸 것이다.
도10 의 예에서와 같이 검증수행의 전체 혹은 일부분이 시뮬레이터를 통하여 이루어지는 경우에는 전체의 검증수행을 위하여 2 이상의 시뮬레이션 프로세스들을 프로세스간 통신(Inter-Process Communication, 이를 앞으로는 IPC로 약칭함)을 사용하여 연동시켜서 하는 설계 검증 방법을 사용할 수도 있는데, 일 예로 TB 시뮬레이션을 하나의 프로세스로 생성하고 DUV 시뮬레이션을 또 다른 프로세스로 생성 하여서 IPC를 통한 통신을 통하여 TB와 DUV를 연동시키는 것도 가능하다. 이와 같은 경우에는 프로세스마다 별도의 프로세서(processor)를 할당할 수 있음으로 멀티프로세싱을 통한 검증 성능 향상의 효과도 기대할 수 있다. 이와 같은 상황에서는, 검증 실행 도중에 IPC를 사용하여 연동되는 2개 이상의 프로세스들 중에서 최소한 1 개의 프로세스에 대하여 스냅셧을 활용하거나 해당 프로세스를 담당하는 시뮬레이션에 대한 시뮬레이션 상태 정보 저장/복원을 활용하여, 설계 코드 변경 이전의 검증 실행 과정에서 1 이상의 설계객체들에 대한 동적정보를 수집하고 설계 코드 변경 후에 수행되는 특정 시간대에서부터의 검증 실행을 상기 동적정보를 이용한 재출발을 통하여서 수행함으로서 상기 1 이상의 설계객체들이 변경된 후의 검증 실행의 전체 시간을 전체적으로 또는 부분적으로 단축시키는 것도 가능하다. 이와 같은 상황에서는 IPC 이외에 시뮬레이터의 API(Application Program Interface)인 PLI(Programming Language Interface) 또는 VPI(Verilog Procedural Interface) 또는 FLI(Foreign Language Interface)등도 필요하게 된다.
상술한 바와 같이, 본 발명에 따른 검증 장치 및 이를 이용한 설계 검증 방법의 목적은 초대규모급 설계 검증을 수행하는 과정에서 설계객체가 변경되는 경우에 수행되는 설계 검증을 설계객체가 변경되기 이전에 수행한 설계검증 결과를 재활용하여 신속하게 진행될 수 있게 함으로서 전체의 검증시간을 단축하며, 빠른 시간 내에 설계 코드에 존재하는 오류들의 위치를 정확히 찾아내어 수정하는 것이 가능하다.
이상 설명한 내용을 통해 당업자라면 본 발명의 기술사상을 일탈하지 아니하는 범위에서 다양한 변경 및 수정이 가능함을 알 수 있을 것이다. 따라서, 본 발명의 기술적 범위는 실시 예에 기재된 내용으로 한정되는 것이 아니라 특허 청구의 범위에 의하여 정하여져야만 한다.

Claims (33)

  1. 2 이상의 설계객체들로 구성되는 검증 대상 설계코드 또는 설계회로에 대한 1회 이상의 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행) 도중의 1 이상의 특정 시뮬레이션시점 또는 시뮬레이션구간들에서 동적 정보의 저장을 가능하게 하는 수단과,
    이 저장된 동적 정보를 1 이상의 설계객체가 변경된 후에 수행되는 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)에 재활용함으로서, 상기 검증 대상 설계코드 또는 설계회로에 존재하는 2 이상의 설계객체들 중에서 변경이 되지않은 1 이상의 설계객체는 상기 변경된 후에 수행되는 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)에서 이 검증 실행의 시작 검증시점인 시뮬레이션시간 0에서부터 실행되지 않아도 되는 수단을 구비함으로서,
    상기 변경된 후에 수행되는 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)의 소요 시간을 단축시킬 수 있게 하는 것을 특징으로 하는 설계 검증 장치.
  2. 2 이상의 설계객체들로 구성되는 검증 대상 설계코드 또는 설계회로에 대한 1회 이상의 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행) 도중의 1 이상의 특정 시뮬레이션시점 또는 시뮬레이션구간들에서 동적 정보의 저장을 수행하는 단계와,
    이 저장된 동적 정보를 1 이상의 설계객체가 변경된 후에 수행되는 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)에 재활용함으로서, 상기 검증 대상 설계코드 또는 설계회로에 존재하는 2 이상의 설계객체들 중에서 변경이 되지않은 1 이상의 설계객체는 상기 변경된 후에 수행되는 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)에서 이 검증 실행의 시작 검증시점인 시뮬레이션시간 0 이외의 검증시간에서부터 실행되는 단계를 통하여서,
    상기 변경된 후에 수행되는 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)의 소요 시간을 단축시킬 수 있게 하는 것을 특징으로 하는 설계 검증 방법.
  3. 1 이상의 시뮬레이터 또는 1 이상의 시뮬레이션가속기 또는 1 이상의 하드웨어에뮬레이터 또는 1 이상의 프로토타이핑시스템을 포함하는 검증플랫폼을 이용하는 설계 검증 방법에 있어서,
    2 이상의 설계객체들로 구성되는 검증 대상 설계코드 또는 설계회로에 존재하는 1 이상의 설계객체를 DO(i)로 표시하고, 설계 검증 과정이 진행되면서 상기 DO(i) 중에서 변경이 이루어지게 되는 설계객체를 DO(m')로 표시하고, 상기 DO(m')의 변경이 이루어진 후의 설계객체를 DO(m)로 표시하고, 설계 검증 과정이 진행되면서 상기 DO(i) 중에서 변경이 이루어지지 않는 1 이상의 설계객체를 DO(u)로 표시하는 경우에,
    상기 2 이상의 설계객체들로 구성되는 검증 대상 설계코드 또는 설계회로에 부가코드를 추가하여 상기 검증플랫폼 상에서 설계코드 또는 설계회로를 부가코드와 함께 수행되도록 하여서, 1회 이상의 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)의 시작 검증시점인 시뮬레이션시간 0에서부터 특정 시뮬레이션시점까지 재생용 입출력 정보를 얻기위한 상기 설계객체 DO(m')의 모든 입력값들과 모든 출력값들과 모든 양방향 입출력값들의 저장과, 1 이상의 체크포인트에서 상기 1 이상의 설계객체 DO(u)의 상태 정보 저장을 하는 단계와,
    상기 검증 대상 설계코드 또는 설계회로 내에 존재하는 설계객체 DO(m')가 변경된 후에 수행되는 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)에서 상기 변경된 설계객체 DO(m)의 모든 출력들과 모든 양방향 입출력들에서의 출력값 결과가 변경 이전의 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)에서 저장된 상기 설계객체 DO(m')의 모든 출력들과 모든 양방향 입출력들에서의 출력값 결과와 제일 처음으로 달라지는 시점을, 변경 이전 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행) 과정에서 저장된 DO(m')의 재생용 입력 정보를 상기 변경된 설계객체 DO(m)에만 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행) 과정 중에 인가하여서 얻어지는 상기 변경된 설계객체 DO(m)의 모든 출력들과 모든 양방향 입출력들에서의 출력값 결과와 변경 이전의 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행) 과정에서 저장된 상기 설계객체 DO(m')의 모든 출력들과 모든 양방향 입출력들에서의 출력값 결과를 비교하여서 알아내는 동시에, 상기 변경된 설계객체 DO(m)의 상태 정보 저장을 위한 체크포인팅을 1 이상의 특정 시뮬레이션시점 또는 특정 시뮬레이션구간에서 수행하는 단계를 통하여서,
    변경 이후의 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행) 과정에서 얻어진 변경이 이루어진 설계객체 DO(m)의 상태 정보와 변경 이전의 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행) 과정에서 저장된 변경이 이루어지지 않은 1 이상의 설계객체 DO(u)의 상태 정보를 활용함으로서,
    상기 검증 대상 설계코드 또는 설계회로에 존재하는 상기 2 이상의 설계객체들 중에서, 적어도 변경이 되지않은 1 이상의 설계객체 DO(u)는 상기 변경된 후에 수행되는 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)에서 이 검증 실행의 시작 검증시점인 시뮬레이션시간 0에서부터 실행되지 않아도 되도록 함으로서 상기 변경된 후에 수행되는 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)의 소요 시간을 단축시킬 수 있게 하는 설계 검증 방법
  4. 2 이상의 시뮬레이터, 또는 1 이상의 시뮬레이터와 1 이상의 하드웨어기반검증플랫폼으로 구성되는 검증플랫폼을 이용하는 설계 검증 방법에 있어서,
    2 이상의 설계객체들로 구성되는 검증 대상 설계코드 또는 설계회로에 존재하는 1 이상의 설계객체를 DO(i)로 표시하고, 설계 검증 과정이 진행되면서 상기 DO(i) 중에서 변경이 이루어지게 되는 설계객체를 DO(m')로 표시하고, 상기 DO(m')의 변경이 이루어진 후의 설계객체를 DO(m)로 표시하고, 설계 검증 과정이 진행되면서 상기 DO(i) 중에서 변경이 이루어지지 않는 1 이상의 설계객체를 DO(u)로 표시하는 경우에,
    상기 2 이상의 설계객체들로 구성되는 검증 대상 설계코드 또는 설계회로에 부가코드를 추가하여 상기 검증플랫폼 상에서 검증 대상 설계코드 또는 설계회로를 부가코드와 함께 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)을 수행하여, 1회 이상의 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)의 시작 검증시점인 시뮬레이션시간 0에서부터 특정 시뮬레이션시점까지 재생용 입출력 정보를 위한 상기 설계객체 DO(m')의 모든 입력값들과 모든 출력값들과 모든 양방향 입출력값들의 저장을 하는 단계와,
    상기 검증 대상 설계코드 또는 설계회로 내에 존재하는 설계객체 DO(m')가 변경된 후에 수행되는 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)에서 상기 변경된 설계객체 DO(m)의 모든 출력들과 모든 양방향 입출력들에서의 출력값 결과가 변경 이전의 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)에서 저장된 상기 설계객체 DO(m')의 모든 출력들과 모든 양방향 입출력들에서의 출력값 결과와 제일 처음으로 달라지는 시점(td)을, 상기 변경된 설계객체 DO(m)의 모든 출력들과 모든 양방향 입출력들에서의 출력값 결과가 상기 설계객체 DO(m')의 모든 출력들과 모든 양방향 입출력들에서의 출력값 결과와 비교하여서 알아내는 단계와,
    변경이 이루어지지 않은 1 이상의 설계객체 DO(u)에 대해서는 변경된 후에 수행되는 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)에서 이 검증 실행의 시작 검증시점인 시뮬레이션시간 0에서부터 상기 제일 처음으로 달라지는 시점(td)까지는 변경 이전의 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)에서 저장된 재생용 입력 정보를 인가하여 수행하는 단계와,
    상기 제일 처음으로 달라지는 시점(td)부터는 변경 이전의 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)에서 저장된 재생용 입력 정보를 활용하지 않고, 모든 설계객체들이 함께 서로 연동하는 방식으로 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)이 진행되는 단계를 포함하는 설계 검증 방법
  5. 2 이상의 시뮬레이터, 또는 1 이상의 시뮬레이터와 1 이상의 하드웨어기반검증플랫폼으로 구성되는 검증플랫폼을 이용하는 설계 검증 방법에 있어서,
    2 이상의 설계객체들로 구성되는 검증 대상 설계코드 또는 설계회로에 존재하는 1 이상의 설계객체를 DO(i)로 표시하고, 설계 검증 과정이 진행되면서 상기 DO(i) 중에서 변경이 이루어지게 되는 설계객체를 DO(m')로 표시하고, 상기 DO(m')의 변경이 이루어진 후의 설계객체를 DO(m)로 표시하고, 설계 검증 과정이 진행되면서 상기 DO(i) 중에서 변경이 이루어지지 않는 1 이상의 설계객체를 DO(u)로 표시하는 경우에,
    2 이상의 설계객체들로 구성되는 검증 대상 설계코드 또는 설계회로에 부가코드를 추가하여 상기 검증플랫폼 상에서 검증 대상 설계코드 또는 설계회로를 부가코드와 함께 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)을 수행하여, 1회 이상의 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)의 시작 검증시점인 시뮬레이션시간 0에서부터 특정 시뮬레이션시점까지 재생용 입출력 정보를 위한 상기 설계객체 DO(m')의 모든 입력값들과 모든 출력값들과 모든 양방향 입출력값들의 저장과, 1 이상의 체크포인트에서 상기 1 이상의 설계객체 DO(u)에 대한 실행을 수행하는 시뮬레이터의 시뮬레이션 상태 정보를 저장하는 단계와,
    상기 검증 대상 설계코드 또는 설계회로 내에 존재하는 1 이상의 설계객체가 변경된 후에 수행되는 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)에서 상기 변경된 설계객체 DO(m)의 모든 출력들과 모든 양방향 입출력들에서의 출력값 결과가 변경 이전의 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)에서 저장된 상기 설계객체 DO(m')의 모든 출력들과 모든 양방향 입출력들에서의 출력값 결과와 제일 처음으로 달라지는 시점을, 변경 이전 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행) 과정에서 저장된 DO(m')의 재생용 입력 정보를 상기 변경된 설계객체 DO(m)에만 검증 실행 도중(시뮬레이션 실행 또는 시뮬레이션가속 실행)에 인가하여서 얻어지는 상기 변경된 설계객체 DO(m)의 모든 출력들과 모든 양방향 입출력들에서의 출력값 결과를 변경 이전의 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행) 과정에서 저장된 상기 설계객체 DO(m')의 모든 출력들과 모든 양방향 입출력들에서의 출력값 결과와 비교하여서 알아내는 동시에, 변경 이후의 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)에서 변경이 이루어지지 않은 1 이상의 설계객체 DO(u)에 대한 변경 이전의 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)에서 저장된 시뮬레이션 상태 정보를 활용하는 단계를 통하여서,
    상기 검증 대상 설계코드 또는 설계회로에 존재하는 상기 2 이상의 설계객체들 중에서, 적어도 변경이 되지않은 1 이상의 설계객체 DO(u)는 상기 변경된 후에 수행되는 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)에서 이 검증 실행의 시작 검증시점인 시뮬레이션시간 0에서부터 실행되지 않아도 되도록 함으로서 상기 변경된 후에 수행되는 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)의 소요 시간을 단축시킬 수 있게 하는 설계 검증 방법
  6. 2 이상의 설계객체들로 구성되는 검증 대상 설계코드 또는 설계회로에 대하여 1 이상의 시뮬레이터를 이용하여 수행되는 설계 검증 방법에 있어서,
    상기 2 이상의 설계객체들이 설계 검증 과정이 진행되면서 설계 변경이 되지 않는 1 이상의 설계객체 DO(u)와 설계 변경이 되는 임의의 설계객체 DO(m')을 포함하는 경우에,
    설계 변경 전에 상기 검증 대상 설계코드 또는 설계회로에 대한 1회 이상의 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)을 수행하는 도중에, 시뮬레이션시간 0 이외의 1 이상의 체크포인트에서 상기 1 이상의 설계객체 DO(u)의 상태 정보를 저장하는 단계와,
    상기 설계 변경 전의 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행) 도중의 1 이상의 체크포인트에서 저장된 상기 1 이상의 설계객체 DO(u)의 상태 정보를, 상기 검증 대상 설계코드 또는 설계회로에 존재하는 임의의 설계객체 DO(m')가 변경된 후에 수행되는 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)에서 상기 설계 변경이 되지않은 1 이상의 설계객체 DO(u)의 초기 상태 정보로 활용하는 단계를 통하여,
    상기 임의의 설계객체 DO(m')가 변경된 후에 수행되는 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)의 소요 시간을 단축시킬 수 있게 하는 것을 특징으로 하는 설계 검증 방법.
  7. 제 3 항에 있어서,
    검증 대상 설계코드 또는 설계회로에 존재하는 상기 1 이상의 설계객체 DO(i)에 대한 상기 1 이상의 체크포인트에서의 설계객체의 상태 정보 저장을 상기 변경 이전의 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)에서 이 검증 실행의 시작 검증시점인 시뮬레이션시간 0이외의 1 이상의 시뮬레이션시점 또는 시뮬레이션구간(Tc)에서 수행하며,
    상기 설계객체 DO(m')에 대한 변경 후에 수행되는 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)에서는, 상기 변경이 되지않은 1 이상의 설계객체 DO(u)가 상기 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)의 시작 검증시점인 시뮬레이션시간 0에서부터 실행되지 않고, 상기 설계객체 DO(m')에 대한 상기 변경 이전의 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)에서 저장된 변경이 되지않은 1 이상의 설계객체 DO(u)의 상태 정보로의 복원을 통하여 상기 시작 검증시점인 시뮬레이션시간 0이외의 1 이상의 시뮬레이션시점 또는 시뮬레이션구간(Tc) 중의 하나에서부터 실행되는 것을 특징으로 하는 설계 검증 방법.
  8. 제 5 항에 있어서,
    검증 대상 설계코드 또는 설계회로에 존재하는 상기 1 이상의 설계객체에 대한 시뮬레이션을 수행하는 시뮬레이터에 대한 상기 체크포인트에서의 시뮬레이션 상태 정보 저장을 상기 변경 이전의 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)에서 이 검증 실행의 시작 검증시점인 시뮬레이션시간 0이외의 1 이상의 시뮬레이션시점(Tx)에서 수행하며,
    상기 설계객체 DO(m')에 대한 변경 후에 수행되는 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)에서, 상기 변경이 되지않은 1 이상의 설계객체 DO(u)가 상기 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)의 시작 검증시점인 시뮬레이션시간 0에서부터 실행되지 않고, 상기 설계객체 DO(m')에 대한 상기 변경 이전의 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)에서 저장된 상기 변경이 되지않은 1 이상의 설계객체 DO(u)에 대한 시뮬레이션을 수행하는 시뮬레이터의 시뮬레이션 상태 정보로의 복원을 통하여 상기 시작 검증시점인 시뮬레이션시간 0이외의 1 이상의 시뮬레이션시점(Tx) 중의 하나에서부터 실행되는 것을 특징으로 하는 설계 검증 방법.
  9. 제 2 항에 있어서,
    상기 변경이 되지않는 1 이상의 설계객체를 DO(u)로 표시하는 경우에,
    상기 1 이상의 설계객체가 변경된 후에 수행되는 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)에서 재활용되는 동적 정보가 변경 이전에 수행된 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행) 과정에서 저장된 상기 변경이 되지않은 1 이상의 설계객체 DO(u)의 상태 정보(Dus)이며,
    상기 변경이 되지않은 1 이상의 설계객체 DO(u)는 상기 변경된 후에 수행되는 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)에서 이 검증 실행의 시작 검증시점인 시뮬레이션시간 0에서부터 실행되지 않고 시뮬레이션시간 0 이외의 시뮬레이션시간(Tr)에서부터 실행되도록 하기 위해서, 상기 시작 검증시점인 시뮬레이션시간 0 이외의 시뮬레이션시간(Tr)에서 상기 변경이 되지않은 1 이상의 설계객체 DO(u)의 상태 정보가 상기 변경 이전에 수행된 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행) 과정에서의 동일한 시뮬레이션시간(Tr)에서 저장된 상태 정보(Dus)로 복원되도록 하는 것을 특징으로 하는 설계 검증 방법.
  10. 제 1 항에 있어서,
    상기 2 이상의 설계객체들로 구성되는 검증 대상 설계코드 또는 설계회로에 존재하는 1 이상의 설계객체를 DO(i)로 표시하고, 설계 검증 과정이 진행되면서 상기 DO(i) 중에서 변경이 이루어지게 되는 설계객체를 DO(m')로 표시하고, 설계 검증 과정이 진행되면서 상기 DO(i) 중에서 변경이 이루어지지 않는 1 이상의 설계객체를 DO(u)로 표시하는 경우에,
    (1) 변경 이전의 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)에서 상기 동적 정보의 저장이,
    상기 1 이상의 설계객체 DO(u)에 대한 1 이상의 체크포인트에서의 DO(u)의 상태 정보 저장을 이 검증 실행의 시작 검증시점인 시뮬레이션시간 0이외의 1 이상의 시뮬레이션시점 또는 시뮬레이션구간(Tc)에서 수행하는 동시에, 상기 설계객체 DO(m')의 재생용 입출력 정보 저장을 이 검증 실행의 시작 검증시점인 시뮬레이션시간 0에서부터 특정 시뮬레이션시점까지 수행하는 것이며,
    (2) 상기 저장된 동적 정보를 상기 설계객체 DO(m')가 변경된 후에 수행되는 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)에서 재활용하는 것이,
    (2-1) 상기 설계객체 DO(m')가 변경된 후에 변경된 설계객체를 대상으로 하는 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)을 상기 설계객체 DO(m')의 재생용 입출력 정보 중의 재생용 입력 정보를 인가하면서 진행하는 동시에, 변경된 설계객체의 출력 값을 상기 설계객체 DO(m')의 출력 값과 비교하여서 달라지는 시뮬레이션시점을 찾는 것과,
    (2-2) 변경이 되지 않은 1 이상의 설계객체 DO(u)가 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)의 시작 검증시점인 시뮬레이션시간 0에서부터 실행되지 않고, 설계객체 DO(m')에 대한 상기 변경 이전의 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)에서 저장된 변경이 되지않은 1 이상의 설계객체 DO(u)의 상태 정보 복원을 통하여 상기 시작 검증시점인 시뮬레이션시간 0이외의 1 이상의 시뮬레이션시점 또는 시뮬레이션구간(Tc) 중의 하나에서부터 실행되도록 하는 것이며,
    상기 수단들을 통하여서 상기 변경된 후에 수행되는 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)의 소요 시간을 단축시킬 수 있게 하는 것을 특징으로 하는 설계 검증 장치.
  11. 제 1 항에 있어서,
    상기 2 이상의 설계객체들로 구성되는 검증 대상 설계코드 또는 설계회로에 존재하는 1 이상의 설계객체를 DO(i)로 표시하고, 설계 검증 과정이 진행되면서 상기 DO(i) 중에서 변경이 이루어지게 되는 설계객체를 DO(m')로 표시하고, 설계 검증 과정이 진행되면서 상기 DO(i) 중에서 변경이 이루어지지 않는 1 이상의 설계객체를 DO(u)로 표시하는 경우에,
    (1) 변경 이전의 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)에서 상기 동적 정보의 저장이,
    1 이상의 체크포인트에서의 상기 설계객체 DO(u)에 대한 시뮬레이션을 수행하는 시뮬레이터의 시뮬레이션 상태 정보 저장을 이 검증 실행의 시작 검증시점인 시뮬레이션시간 0이외의 1 이상의 시뮬레이션시점(Tx)에서 수행하는 동시에, 상기 검증 대상 설계코드 또는 설계회로에 존재하는 상기 설계객체 DO(m')의 재생용 입출력 정보 저장을 이 검증 실행의 시작 검증시점인 시뮬레이션시간 0에서부터 특정 시뮬레이션시점까지 수행하는 것이며,
    (2) 상기 저장된 동적 정보를 상기 설계객체 DO(m')가 변경된 후에 수행되는 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)에서 재활용하는 것이, (2-1) 상기 설계객체 DO(m')가 변경된 후에 변경된 설계객체를 대상으로 하는 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)을 상기 저장된 설계객체 DO(m')의 재생용 입출력 정보 중에서 재생용 입력 정보를 인가하면서 진행하는 동시에, 변경된 설계객체의 출력 값을 상기 저장된 설계객체 DO(m')의 출력 값과 비교하여서 달라지는 시뮬레이션시점을 찾는 것과,
    (2-2) 변경이 되지 않은 1 이상의 설계객체 DO(u)가 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)의 시작 검증시점인 시뮬레이션시간 0에서부터 실행되지 않고, 상기 설계객체 DO(m')에 대한 상기 변경 이전의 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)에서 저장된 변경이 되지않은 1 이상의 설계객체 DO(u)에 대한 시뮬레이션을 수행하는 시뮬레이터의 시뮬레이션 상태 정보 복원을 통하여 상기 시작 검증시점인 시뮬레이션시간 0이외의 1 이상의 시뮬레이션시점(Tx) 중의 하나에서부터 실행되도록 하는 것이며,
    상기 수단들을 통하여서 상기 변경된 후에 수행되는 검증 실행(시뮬레이션 실행 또는 시뮬레이션가속 실행)의 소요 시간을 단축시킬 수 있게 하는 것을 특징으로 하는 설계 검증 장치.
  12. 2 이상의 설계객체들로 구성되는 검증 대상 설계코드 또는 설계회로에 대하여 1 이상의 시뮬레이터를 이용하여 수행되는 설계 검증 방법에 있어서,
    설계 검증 과정이 진행되면서 상기 2 이상의 설계객체들로 구성되는 검증 대상 설계코드 또는 설계회로가 변경이 되는 1 이상의 설계객체와 변경이 되지않는 1 이상의 설계객체로 나누어지는 경우에 있어서,
    (1) 1 이상의 설계객체가 변경되기 전에 수행되는 시뮬레이션 실행에서는,
    1 이상의 체크포인트(Tcp)에서 상기 변경이 되지 않는 1 이상의 설계객체의 상태 정보를 저장하고 상기 변경이 되는 1 이상의 설계객체의 재생용 입력 정보(Ir)를 저장하는 단계와,
    (2) 1 이상의 설계객체가 변경된 후에 수행되는 시뮬레이션 실행에서는,
    (2-1) 시뮬레이션 실행의 시작 시뮬레이션시점인 시뮬레이션시간 0에서부터 상기 1 이상의 체크포인트(Tcp) 중의 한 체크포인트(Tw)까지는 변경이 된 1 이상의 설계객체에 상기 재생용 입력 정보(Ir)를 인가하여서 실행되도록 한 후,
    (2-2) 상기 검증 대상 설계코드 또는 설계회로에 존재하는 상기 2 이상의 설계객체들 중에서 변경이 되지않은 상기 1 이상의 설계객체는, 1 이상의 설계객체가 변경된 후에 수행되는 시뮬레이션 실행의 시작 시뮬레이션시점인 시뮬레이션시간 0에서부터 실행되지 않고, 설계객체가 변경되기 전에 수행된 시뮬레이션 실행에서 저장된 설계객체의 상태 정보로 상기 1 이상의 체크포인트(Tcp) 중의 한 체크포인트(Tw)에서 복원되도록 한 후에,
    (2-3) 변경이 되지않은 상기 1 이상의 설계객체에 대한 상태 정보 복원이 이루어진 상기 한 체크포인트(Tw)에서부터 그 이후 시뮬레이션시간에서는, 변경이 된 1 이상의 설계객체와 변경이 되지않는 1 이상의 설계객체 모두로 이루어진 검증 대상 설계코드 또는 설계회로 전체가 실행되도록 하는 단계를 통하여서,
    상기 1 이상의 설계객체가 변경된 후에 수행되는 시뮬레이션 실행의 소요 시간을 단축시킬 수 있게 하는 설계 검증 방법
  13. 1 이상의 시뮬레이터를 이용하는 설계 검증 방법에 있어서,
    2 이상의 설계객체들 DO(i)로 구성되는 검증 대상 설계코드 또는 설계회로에 서, 설계 검증 과정이 진행되면서 상기 DO(i) 중에서 변경이 이루어지게 되는 설계객체를 DO(m')로 표시하고, 상기 DO(m')의 변경이 이루어진 후의 설계객체를 DO(m)로 표시하며, 상기 DO(i)는 설계 검증 과정이 진행되어도 변경이 되지 않는 1 이상의 설계객체 DO(u)도 포함하고 있는 경우에,
    (1) 설계객체 DO(m') 변경 전의 시뮬레이션 실행 과정에서, 시작 시뮬레이션시점에서부터 특정 시뮬레이션시점까지 재생용 입출력 정보를 위한 상기 설계객체 DO(m')의 모든 입력값들과 모든 출력값들과 모든 양방향 입출력값들의 저장과, 1 이상의 체크포인트에서 상기 1 이상의 설계객체 DO(u)의 상태 정보 저장을 하는 단계와,
    (2) 설계객체 DO(m') 변경 후의 시뮬레이션 실행 과정에서,
    (2-1) 상기 변경된 설계객체 DO(m)의 모든 출력들과 모든 양방향 입출력들에서의 출력값 결과가 변경 전의 시뮬레이션 실행 과정에서 저장된 상기 설계객체 DO(m')의 모든 출력들과 모든 양방향 입출력들에서의 출력값 결과와 제일 처음으로 달라지는 시점(tm)을, 변경 전의 시뮬레이션 실행 과정에서 저장된 DO(m')의 재생용 입력 정보를 상기 변경된 설계객체 DO(m)에만 인가하여서 시뮬레이션 실행에서 얻어지는 상기 변경된 설계객체 DO(m)의 모든 출력들과 모든 양방향 입출력들에서의 출력값 결과와 변경 전의 시뮬레이션 실행 과정에서 저장된 상기 설계객체 DO(m')의 모든 출력들과 모든 양방향 입출력들에서의 출력값 결과를 비교하여서 알아내는 단계와,
    (2-2) 변경 전의 시뮬레이션 실행 과정에서 저장된 변경이 되지 않은 1 이상의 설계객체 DO(u)의 상태 정보를 활용하여서, 상기 검증 대상 설계코드 또는 설계회로에 존재하는 변경이 되지않은 1 이상의 설계객체 DO(u)는 상기 변경 후의 시뮬레이션 실행 과정에서 이 시뮬레이션 실행의 시작 시뮬레이션시점인 시뮬레이션시간 0에서부터 실행되지 않아도 되도록 하는 단계를 통하여서,
    상기 설계객체 DO(m') 변경 후에 수행되는 시뮬레이션 실행의 소요 시간을 단축시킬 수 있게 하는 설계 검증 방법
  14. 제 13 항에 있어서,
    상기 설계객체 DO(m') 변경 전의 시뮬레이션 실행 과정에서, 상기 변경이 되지 않는 1 이상의 설계객체 DO(u)의 상태 정보 저장이 일어나는 상기 1 이상의 체크포인트가 시작 시뮬레이션시점인 시뮬레이션시간 0이외의 1 이상의 시뮬레이션시점 또는 시뮬레이션구간(Tc)이며,
    상기 설계객체 DO(m') 변경 후의 시뮬레이션 실행 과정에서, 상기 변경 전의 시뮬레이션 실행 과정에서 저장된 변경이 되지 않는 1 이상의 설계객체 DO(u)의 상태 정보를 활용하는 것이, 상기 변경이 되지않은 1 이상의 설계객체 DO(u)가 시뮬레이션 실행의 시작 시뮬레이션시점인 시뮬레이션시간 0에서부터 실행되도록 하지 않고 상기 설계객체 DO(m') 변경 전의 시뮬레이션 실행 과정에서 저장된 상기 변경이 되지 않는 1 이상의 설계객체 DO(u)의 상태 정보로의 복원을 통하여 상기 시작 시뮬레이션시점인 시뮬레이션시간 0이외의 1 이상의 시뮬레이션시점 또는 시뮬레이션구간(Tc) 중의 하나에서부터 실행되는 것인 설계 검증 방법.
  15. 제 13 항에 있어서,
    상기 설계객체 DO(m') 변경 전의 시뮬레이션 실행 과정에서, 상기 변경이 되지 않는 1 이상의 설계객체 DO(u)의 상태 정보 저장이 일어나는 상기 1 이상의 체크포인트가 시작 시뮬레이션시점인 시뮬레이션시간 0이외의 1 이상의 시뮬레이션시점(Tc)이며,
    상기 설계객체 DO(m') 변경 후의 시뮬레이션 실행 과정에서, 상기 변경 전의 시뮬레이션 실행 과정에서 저장된 변경이 되지 않는 1 이상의 설계객체 DO(u)의 상태 정보를 활용하는 것이, 상기 변경이 되지않은 1 이상의 설계객체 DO(u)가 시뮬레이션 실행의 시작 시뮬레이션시점인 시뮬레이션시간 0에서부터 실행되도록 하지 않고 상기 설계객체 DO(m') 변경 전의 시뮬레이션 실행 과정에서 저장된 상기 변경이 되지 않는 1 이상의 설계객체 DO(u)의 상태 정보로의 복원을 통하여 상기 시작 시뮬레이션시점인 시뮬레이션시간 0이외의 1 이상의 시뮬레이션시점(Tc) 중의 하나인 특정 시뮬레이션시점(Tz)에서부터 실행하는 것이며,
    상기 설계객체 DO(m') 변경 전의 시뮬레이션 실행 과정에서 저장된 상기 변경이 되지 않는 1 이상의 설계객체 DO(u)의 상태 정보로의 복원이 이루어지는 상기 1 이상의 시뮬레이션시점(Tc) 중의 하나인 특정 시뮬레이션시점(Tz)이, 상기 변경된 설계객체 DO(m)의 모든 출력들과 모든 양방향 입출력들에서의 출력값 결과가 변경 전의 시뮬레이션 실행 과정에서 저장된 상기 설계객체 DO(m')의 모든 출력들과 모든 양방향 입출력들에서의 출력값 결과와 제일 처음으로 달라지는 시점(tm)에 비하여 시간적으로 과거에 있으면서 상기 tm과 제일 가까운 것을 특징으로 하는 설계 검증 방법.
  16. 시뮬레이터와 하드웨어기반검증플랫폼을 활용하는 시뮬레이션가속을 통한 설계 검증 방법에 있어서,
    상기 시뮬레이터 상에서 실행되는 설계객체를 TB로 표시하고, 상기 하드웨어기반검증플랫폼 상에서 실행되는 설계객체를 DUV로 표시하고, 설계 검증 과정이 진행되면서 변경이 이루어지게 되는 상기 DUV를 DUV(m')로 표시하고, 상기 DUV(m')의 변경이 이루어진 후에 상기 하드웨어기반검증플랫폼 상에서 실행되는 DUV를 DUV(m)로 표시하는 경우에,
    1회 이상의 시뮬레이션가속 실행의 시작 시뮬레이션시점에서부터 특정 시뮬레이션시점까지 재생용 입출력 정보를 위한 상기 설계객체 DUV(m')의 모든 입력값들과 모든 출력값들과 모든 양방향 입출력값들의 저장과, 1 이상의 체크포인트에서 상기 TB가 실행되어지는 시뮬레이터의 시뮬레이션 상태 정보 저장을 하는 단계와,
    상기 설계객체 DUV(m')가 변경된 후에 수행되는 시뮬레이션가속 실행에서 상기 설계객체 DUV(m)의 모든 출력들과 모든 양방향 입출력들에서의 출력값 결과가 변경 이전의 시뮬레이션가속 실행에서 저장된 상기 설계객체 DUV(m')의 모든 출력들과 모든 양방향 입출력들에서의 출력값 결과와 제일 처음으로 달라지는 시점(tm)을, 변경 이전의 시뮬레이션가속 실행 과정에서 저장된 재생용 입력 정보를 시뮬레이션가속 실행 과정에서 상기 변경된 설계객체 DUV(m)에만 인가하여서 얻어지는 상기 변경된 설계객체 DUV(m)의 모든 출력들과 모든 양방향 입출력들에서의 출력값 결과와 변경 이전의 시뮬레이션가속 실행 과정에서 저장된 상기 설계객체 DUV(m')의 모든 출력들과 모든 양방향 입출력들에서의 출력값 결과를 비교하여서 알아내는 단계와,
    변경 이전의 시뮬레이션가속 실행 과정에서 얻어진 변경이 이루어지지 않은 설계객체 TB를 실행하는 시뮬레이터의 시뮬레이션 상태 정보를 활용하여서, 상기 검증 대상 설계코드 또는 설계회로에 존재하는 상기 변경이 되지않은 설계객체 TB는 상기 변경된 후에 수행되는 시뮬레이션가속 실행에서 이 시뮬레이션가속 실행의 시작 시뮬레이션시점인 시뮬레이션시간 0에서부터 실행되지 않아도 되도록 하는 단계를 통하여서,
    상기 변경된 후에 수행되는 시뮬레이션가속 실행의 소요 시간을 단축시킬 수 있게 하는 설계 검증 방법.
  17. 제 16 항에 있어서,
    상기 1 이상의 체크포인트에서의 검증 대상 설계코드 또는 설계회로에 존재하는 상기 설계객체 TB를 실행하는 시뮬레이터의 시뮬레이션 상태 정보 저장을 상기 변경 이전의 시뮬레이션가속 실행에서 이 시뮬레이션가속 실행의 시작 시뮬레이션시점인 시뮬레이션시간 0이외의 1 이상의 시뮬레이션시점(Te)에서 수행하며,
    상기 설계객체 DUV(m')에 대한 변경 후에 수행되는 시뮬레이션가속 실행에서는, 상기 변경이 되지않은 설계객체 TB가 상기 시뮬레이션가속 실행의 시작 시뮬레이션시점인 시뮬레이션시간 0에서부터 실행되지 않고, 상기 설계객체 DUV(m')에 대한 상기 변경 이전의 시뮬레이션가속 실행에서 저장된 변경이 되지않은 설계객체 TB를 실행하는 시뮬레이터의 시뮬레이션 상태 정보로의 복원을 통하여 상기 시작 시뮬레이션시점인 시뮬레이션시간 0이외의 1 이상의 시뮬레이션시점(Te) 중의 하나에서부터 실행하며,
    상기 설계객체 DUV(m')에 대한 상기 변경 이전의 시뮬레이션가속 실행에서 저장된 변경이 되지않은 설계객체 TB를 실행하는 시뮬레이터의 시뮬레이션 상태 정보로의 복원이 이루어지는 상기 시작 시뮬레이션시점인 시뮬레이션시간 0이외의 1 이상의 시뮬레이션시점(Te) 중의 하나인 특정 시뮬레이션시점이, 상기 변경된 설계객체 DUV(m)의 모든 출력들과 모든 양방향 입출력들에서의 출력값 결과가 변경 이전의 시뮬레이션 실행에서 저장된 상기 설계객체 DUV(m')의 모든 출력들과 모든 양방향 입출력들에서의 출력값 결과와 제일 처음으로 달라지는 시점(tm)에 비하여 시간적으로 과거에 있으면서 상기 tm과 제일 가까운 것을 특징으로 하는 설계 검증 방법.
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
KR1020040093310A 2004-07-12 2004-11-08 검증결과 재활용 기법을 채용한 고성능 설계검증 장치 및이를 활용한 신속한 설계검증 방법 KR100921314B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020040055329 2004-07-12
KR20040055329 2004-07-12

Publications (2)

Publication Number Publication Date
KR20060005286A KR20060005286A (ko) 2006-01-17
KR100921314B1 true KR100921314B1 (ko) 2009-10-13

Family

ID=37117333

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040093310A KR100921314B1 (ko) 2004-07-12 2004-11-08 검증결과 재활용 기법을 채용한 고성능 설계검증 장치 및이를 활용한 신속한 설계검증 방법

Country Status (2)

Country Link
US (1) US20080306721A1 (ko)
KR (1) KR100921314B1 (ko)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4774237B2 (ja) * 2005-05-02 2011-09-14 株式会社リコー プログラム開発支援装置、プログラム動作比較方法および半導体集積回路製造方法
US8781808B2 (en) * 2005-10-10 2014-07-15 Sei Yang Yang Prediction-based distributed parallel simulation method
US8079022B2 (en) * 2007-06-04 2011-12-13 Carbon Design Systems, Inc. Simulation of software
US8296430B2 (en) 2007-06-18 2012-10-23 International Business Machines Corporation Administering an epoch initiated for remote memory access
US9065839B2 (en) 2007-10-02 2015-06-23 International Business Machines Corporation Minimally buffered data transfers between nodes in a data communications network
JP5034955B2 (ja) * 2008-01-08 2012-09-26 富士通株式会社 性能評価シミュレーション装置、性能評価シミュレーション方法および性能評価シミュレーションプログラム
JP5200675B2 (ja) * 2008-06-11 2013-06-05 富士通株式会社 シミュレーション装置,シミュレーション方法,シミュレーションプログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体
US8161502B2 (en) * 2008-09-26 2012-04-17 Cadence Design Systems, Inc. Method and apparatus for implementing a task-based interface in a logic verification system
US8606979B2 (en) * 2010-03-29 2013-12-10 International Business Machines Corporation Distributed administration of a lock for an operational group of compute nodes in a hierarchical tree structured network
US8365186B2 (en) 2010-04-14 2013-01-29 International Business Machines Corporation Runtime optimization of an application executing on a parallel computer
US20110289469A1 (en) * 2010-05-21 2011-11-24 Huang Thomas B Virtual interconnection method and apparatus
US8504730B2 (en) 2010-07-30 2013-08-06 International Business Machines Corporation Administering connection identifiers for collective operations in a parallel computer
US8565120B2 (en) 2011-01-05 2013-10-22 International Business Machines Corporation Locality mapping in a distributed processing system
US9317637B2 (en) 2011-01-14 2016-04-19 International Business Machines Corporation Distributed hardware device simulation
US8689228B2 (en) 2011-07-19 2014-04-01 International Business Machines Corporation Identifying data communications algorithms of all other tasks in a single collective operation in a distributed processing system
US8671383B2 (en) * 2011-08-17 2014-03-11 Synopsys Taiwan Co., LTD. Viewing and debugging HDL designs having SystemVerilog interface constructs
US8429581B2 (en) * 2011-08-23 2013-04-23 Apple Inc. Method for verifying functional equivalence between a reference IC design and a modified version of the reference IC design
US9250948B2 (en) 2011-09-13 2016-02-02 International Business Machines Corporation Establishing a group of endpoints in a parallel computer
US9015025B2 (en) 2011-10-31 2015-04-21 International Business Machines Corporation Verifying processor-sparing functionality in a simulation environment
US9081925B1 (en) * 2012-02-16 2015-07-14 Xilinx, Inc. Estimating system performance using an integrated circuit
CN103678114B (zh) * 2012-09-07 2018-11-02 三星电子株式会社 产生断言的设备和方法以及验证处理器的设备和方法
US9529946B1 (en) 2012-11-13 2016-12-27 Xilinx, Inc. Performance estimation using configurable hardware emulation
US9846587B1 (en) 2014-05-15 2017-12-19 Xilinx, Inc. Performance analysis using configurable hardware emulation within an integrated circuit
US9608871B1 (en) 2014-05-16 2017-03-28 Xilinx, Inc. Intellectual property cores with traffic scenario data
US10031831B2 (en) * 2015-04-23 2018-07-24 International Business Machines Corporation Detecting causes of performance regression to adjust data systems
US11038768B1 (en) * 2016-09-15 2021-06-15 Xilinx, Inc. Method and system for correlation of a behavioral model to a circuit realization for a communications system
CN108388516B (zh) * 2018-03-14 2021-07-23 上海微小卫星工程中心 可重构fpga软件的专用验证测试系统
CN108984991B (zh) * 2018-09-20 2022-09-13 西安微电子技术研究所 一种用于低功耗设计的可重用仿真验证方法
CN111914410B (zh) * 2020-07-16 2024-06-14 博流智能科技(南京)有限公司 SoC软硬件协同仿真加速系统及方法
KR102602534B1 (ko) * 2021-10-08 2023-11-15 주식회사 세미파이브 시스템 온 칩 설계 검증을 위한 테스트 자동화 시스템 및 방법
CN114996077B (zh) * 2022-08-08 2022-11-01 济南新语软件科技有限公司 一种多核并行仿真方法及实现多核并行仿真的平台架构
CN115248998B (zh) * 2022-09-22 2023-01-03 济南新语软件科技有限公司 一种SoC芯片分布式仿真验证平台和方法
CN117034841B (zh) * 2023-10-09 2024-02-09 芯耀辉科技有限公司 一种用于数模混合仿真验证的方法、计算设备及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0167876B1 (ko) * 1994-08-18 1999-02-01 사토 후미오 집적회로 시뮬레이터 및 집적회로 시뮬레이션 방법
JP2001044412A (ja) 1999-07-30 2001-02-16 Sony Corp 半導体シミュレーション装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5841967A (en) * 1996-10-17 1998-11-24 Quickturn Design Systems, Inc. Method and apparatus for design verification using emulation and simulation
US6678645B1 (en) * 1999-10-28 2004-01-13 Advantest Corp. Method and apparatus for SoC design validation
US6675310B1 (en) * 2000-05-04 2004-01-06 Xilinx, Inc. Combined waveform and data entry apparatus and method for facilitating fast behavorial verification of digital hardware designs
US6658633B2 (en) * 2001-10-03 2003-12-02 International Business Machines Corporation Automated system-on-chip integrated circuit design verification system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0167876B1 (ko) * 1994-08-18 1999-02-01 사토 후미오 집적회로 시뮬레이터 및 집적회로 시뮬레이션 방법
JP2001044412A (ja) 1999-07-30 2001-02-16 Sony Corp 半導体シミュレーション装置

Also Published As

Publication number Publication date
KR20060005286A (ko) 2006-01-17
US20080306721A1 (en) 2008-12-11

Similar Documents

Publication Publication Date Title
KR100921314B1 (ko) 검증결과 재활용 기법을 채용한 고성능 설계검증 장치 및이를 활용한 신속한 설계검증 방법
US7089517B2 (en) Method for design validation of complex IC
US20090150136A1 (en) Dynamic-based verification apparatus for verification from electronic system level to gate level, and verification method using the same
US20110184713A1 (en) Dynamic-based verification apparatus for verification from electronic system level to gate level, and verification method using the same
US20130179142A1 (en) Distributed parallel simulation method and recording medium for storing the method
KR100767957B1 (ko) 에뮬레이션과 시뮬레이션 정식검증을 혼용한 설계 검증 방법
US6847927B2 (en) Efficient array tracing in a logic simulator machine
US20050076282A1 (en) System and method for testing a circuit design
US11200127B2 (en) Automated self-check of a closed loop emulation replay
WO2005093575A1 (en) Dynamic-verification-based verification apparatus achieving high verification performance and verification efficency and the verification methodology using the same
KR102493046B1 (ko) 예측데이터 가변화를 통한 예측기반 병렬 게이트수준 타이밍 로직 시뮬레이션에서의 성능 향상 방법
US7051301B2 (en) System and method for building a test case including a summary of instructions
Bombieri et al. Hybrid, incremental assertion-based verification for TLM design flows
KR20060066634A (ko) 검증 성능과 검증 효율성을 높이는 동적검증 기법 방식의검증 장치 및 이를 이용한 검증 방법론
JPH10261002A (ja) 設計支援方法および設計支援装置
Zhong-hai et al. The improvement for transaction level verification functional coverage
US12259806B2 (en) Managing high performance simulation representation of an emulation system
KR20050101105A (ko) 검증 성능을 높이는 시뮬레이션 기반의 검증 장치 및 이를이용한 시뮬레이션 방법
US20220300690A1 (en) Incremental compilation for fpga-based systems
KR20050118107A (ko) 검증 성능과 검증 효율성을 높이는 동적검증 기법 방식의검증 장치 및 이를 이용한 검증 방법론
KR20070039857A (ko) 체계적 점진적 구체화를 통한 전자시스템수준에서부터게이트수준까지의 검증 방법
US20020072888A1 (en) Method and system for efficiently overriding net values in a logic simulator machine
KR20050059985A (ko) 대용량메모리와 컴파일 회피를 이용한 하드웨어기반검증의 성능 향상 장치 및 이를 이용한 설계 검증 방법
JP3052263B2 (ja) 論理検証充分性評価方法およびそのためのシステム
KR20080107226A (ko) 대규모 디지털시스템 설계에서의 인터렉티브 디버깅 방법

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20041108

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20070522

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 20041108

Comment text: Patent Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20081120

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20090825

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20090911

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20091005

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20091005

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee