KR100800412B1 - 전자시스템수준 설계 방식에서의 효과적인 설계 검증 장치및 이를 이용한 검증 방법 - Google Patents

전자시스템수준 설계 방식에서의 효과적인 설계 검증 장치및 이를 이용한 검증 방법 Download PDF

Info

Publication number
KR100800412B1
KR100800412B1 KR1020060098689A KR20060098689A KR100800412B1 KR 100800412 B1 KR100800412 B1 KR 100800412B1 KR 1020060098689 A KR1020060098689 A KR 1020060098689A KR 20060098689 A KR20060098689 A KR 20060098689A KR 100800412 B1 KR100800412 B1 KR 100800412B1
Authority
KR
South Korea
Prior art keywords
design
verification
duv
simulation
parallel
Prior art date
Application number
KR1020060098689A
Other languages
English (en)
Other versions
KR20070039865A (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 KR20070039865A publication Critical patent/KR20070039865A/ko
Application granted granted Critical
Publication of KR100800412B1 publication Critical patent/KR100800412B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

본 발명은 설계된 매우 복잡한 시스템 수준으로부터의 디지털 시스템의 설계를 위한 설계 검증을 체계적이며 효율적으로 수행하는 검증 장치와 이를 이용한 체계적이며 효과적인 검증 방법에 관한 것이다.
본 발명에서는 임의의 컴퓨터에서 수행되어지는 본 발명의 검증 소프트웨어로 하여금 DUV 내지는 DUV 내의 1 이상의 설계객체에 부가적인 코드나 부가적인 회로를 추가하고, 필요시에는 DUV 전체 내지는 DUV 내의 1 이상의 설계객체에 대한 원 설계 코드를 추상화 수준이 높은 다른 코드로 본 발명의 검증 소프트웨어를 사용한 자동화된 방식 또는 수동적 방식을 통한 모델링 과정을 통하여 모델링하거나 또는 DUV 내의 1 이상의 설계객체를 하드웨어기반검증플랫폼에 구현하거나 또는 DUV 내의 1 이상의 설계객체들에 대한 상기 모델링 과정과 DUV 내의 1 이상의 다른 설계객체를 하드웨어기반검증플랫폼에 구현하여 1회 이상의 시뮬레이션을 수행하게 한다. 시뮬레이션 수행은 1 이상의 컴퓨터에서 수행되는 1 회 이상의 시뮬레이션을 1 이상의 시뮬레이터 또는 1 이상의 시뮬레이터와 1 이상의 하드웨어기반검증플랫폼을 이용하여 수행하거나, 또는 네트워크 상에서 연결된 2 이상의 컴퓨터에서 돌아가는 2 이상의 시뮬레이터 또는 2 이상의 시뮬레이터와 1 이상의 하드웨어기반검증플랫폼을 이용하여 병렬적 수행도 가능하게 함으로서 전체 검증 시간과 검증 비용의 대폭적인 단축을 가능하게 하고, 검증의 효율성을 크게 높일 수 있게 한다.
하드웨어 검증

Description

전자시스템수준 설계 방식에서의 효과적인 설계 검증 장치 및 이를 이용한 검증 방법 {Efficient Verification Apparatus in ESL Design Methodology, and the Verification Method Using the Same}
도1 은, 컴퓨터에서 운영되는 본 발명의 검증 소프트웨어와 시뮬레이터를 갖는 컴퓨터로 구성된 본 발명에 관한 설계 검증 장치의 일 예를 개략적으로 도시한 도면.
도2 는, 컴퓨터에서 운영되는 본 발명의 검증 소프트웨어와 2 이상의 시뮬레이터를 갖는 2 이상의 컴퓨터들과 이들 컴퓨터들을 연결하는 컴퓨터 네트워크로 구성된 본 발명에 관한 설계 검증 장치의 또 다른 일 예를 개략적으로 도시한 도면.
도3 은, VP의 구성 일 예를 대응되는 RTL DUV 일 예와 비교하여서 개략적으로 도시한 도면.
도4 는, 도3 의 VP를 7개의 시뮬레이터를 이용하여서 병렬적으로 수행하는 상황의 일 예를 개략적으로 도시한 도면.
도5 는, 도3 의 VP를 5개의 시뮬레이터와 2개의 하드웨어기반검증플랫폼을 이용하여서 병렬적으로 수행하는 상황의 또 다른 일 예를 개략적으로 도시한 도면.
도6 은, 원 설계 코드(a) 에서부터 본 특허의 방법을 통하여서 VP(b)를 자동적으로 생성하는 과정의 일 예를 개략적으로 도시한 도면.
도7 은, 도6의 예에서의 변환을 위하여 원 설계 코드를 파싱하고 일레보레이션하여 구조적 형태로 변환된 상황의 예를 개략적으로 도시한 도면과, 이 구조적 형태에서부터 생성된 VP를 3개의 시뮬레이터에 나누어서 병렬적 수행을 가능하게 3개의 단일클럭 주도메인들 각각을 3개의 시뮬레이터 각각에 할당하는 상황의 예를 도시한 도면.
도8 은, 또 다른 원 설계 코드 예를 파싱하고 일레보레이션하여 구조적 형태로 변환된 상황의 또 다른 예를 개략적으로 도시한 도면.
도9 는, 사이클정확 시그널(a) 과, 사이클정확 트란젝션(b) 과, 사이클준정확 트란젝션(c) 의 일 예들을 개략적으로 도시한 도면.
<도면의 주요부분에 대한 부호의 설명>
32 : 검증 소프트웨어 34 : 시뮬레이터
35 : 컴퓨터 36 : VP
37 : VP를 나타내는 설계객체 38 : 설계블럭을 나타내는 설계객체
39 : 설계모듈을 나타내는 설계객체
40 : DUV를 나타내는 설계객체
42 : RTL 온칩 버스(On-chip bus)
111 : 트란젝터
112 : 합성가능한 트란젝터
113 : 합성가능한 RTL 설계객체
114 : FPGA
116 : 하드웨어기반검증플랫폼
420 : 트란젝션수준 온칩 버스
308 : RTL 설계객체(380)에서 트란젝션수준으로 변환된 설계객체
318 : RTL 설계객체(381)에서 트란젝션수준으로 변환된 또 다른 설계객체
328 : RTL 설계객체(382)에서 트란젝션수준으로 변환된 또 다른 설계객체
338 : RTL 설계객체(383)에서 트란젝션수준으로 변환된 또 다른 설계객체
348 : RTL 설계객체(384)에서 트란젝션수준으로 변환된 또 다른 설계객체
358 : RTL 설계객체(385)에서 트란젝션수준으로 변환된 또 다른 설계객체
380 : RTL 설계객체
381 : 또 다른 RTL 설계객체
382 : 또 다른 RTL 설계객체
383 : 또 다른 RTL 설계객체
384 : 또 다른 RTL 설계객체
385 : 또 다른 RTL 설계객체
본 발명은 전자적 시스템 수준(Electronic System Level: 앞으로 ESL로 약칭함)에서의 설계를 체계적으로 검증하는 기술에 관한 것으로, 설계된 수백만 게이트급 이상의 디지털 시스템을 검증하고자 하는 경우에 검증의 성능과 효율성을 증가시키는 검증 장치 및 이를 이용한 검증 방법에 관한 것이다.
최근에 집적회로의 설계 및 반도체 공정기술이 급격하게 발달함에 따라 디지털 회로 또는 디지털 시스템 설계의 규모가 최소 수백만 게이트급에서 수천만 게이트급까지 커짐은 물론 그 구성이 극히 복잡해지고 있는 추세이고, 이와 같은 추세는 계속적으로 확대되고 있는 추세로 가까운 미래에 일억 게이트급 이상의 설계도 예상되고 있다. 그러나, 시장에서의 경쟁은 더욱 더 치열해지므로 빠른 시간 내에 우수한 제품을 개발하여야만 함으로 설계 기간의 단축은 제품의 성공을 결정하는 매우 중요한 요소로 되어져 버렸다. 따라서 최근의 칩 설계에서는 ESL 설계 기법이 새로운 설계 방식으로 산업체에서 많은 주목을 받고 있다. 이와 같은 전통적인 디지털 하드웨어 설계에서 적용하여 왔던 RTL(Register Transfer Level) 설계기법보다 추상화 수준이 높은 ESL 설계 기법을 적용하여 설계되는 칩들은 대부분이 SOC(System On a Chip)인데, 이 SOC는 1개 이상의 프로세서 코어들 가지고 있음으로 이 SOC 칩 설계와 더불어서 이 칩을 구동시키는 소프트웨어의 개발도 하드웨어 개발과 동시에 수행되어져야만 한다. 따라서, 하드웨어의 설계와 동시에 소프트웨어 설계를 진행시키기 위하여서 해당 하드웨어를 소프트웨어적으로 모델링한 가상 플랫폼(Virtual Platform, 혹은 Virtual Prototype이라고도 함. 앞으로 VP로 약칭함)을 만들어서 사용하는 것이 추세인데, 이는 수행 가능한 스펙(executable specification)의 역할도 수행한다. 현재 이와 같은 VP를 생성시키고 수행시키는 툴로서는 ARM사의 MaxSim, CoWare사의 ConvergenSC, Summit Design사의 VisualElite, Vast Systems Technology사의 VSP, Synopsys사의 SystemStudio, Mentor사의 Platform Express, TenisonEDA사의 VTOC, Carbon Design Systems사의 VSP 등이 있다. 이 VP는 소프트웨어를 개발할 수 있을 정도의 빠른 수행 속도가 제일 중요함으로 Verilog나 VHDL과 같은 언어를 이용하여서 레지스터전송수준(RTL)에서 모델링하지 않고, C/C++ 또는 SystemC와 같은 언어를 이용하여서 RTL 보다 추상화 수준이 높은 트란젝션(transaction) 수준 또는 알고리즘 수준에서 모델링하고 있다. 트란젝션이란 시그널 또는 핀(pin)과 대응되는 개념으로 시그널 또는 핀 상에서 나타내어지는 정보는 비트 또는 비트벡터로만 표현되어질 수 있는 것임에 반하여서, 트란젝션은 논리적 연관성이 있는 복수개의 시그널들 또는 핀들을 하나의 단위로서 정의하고 설계객체들간의 정보전달은 함수호출로 수행한다. 예로 임의의 프로세서 모듈과 임의의 메모리 모듈로 구성된 설계에서 항상 존재하는 어드레스 시그널 N-비트, 데이터 시그널 M-비트, 제어 시그널 P-비트로 구성되는 총 (N+M+P)개의 시그널들을 논리적 연관성이 있는 N-비트 어드레스 버스, M-비트 데이터 버스, P-비트 제어 버스로 구성하게 되면 매 사이클을 (N+M+P) 비트벡터로 구성되는 의미 해석이 어려운 이진벡터 대신에 READ(ADDR(address_value), DATA(data_value)), 또는 WRITE(ADDR(address_value), DATA(data_value)), 또는 READ-WAIT(ADDR(address_value), DATA(data_value)), 또는 WRITE-WAIT(ADDR(address_value), DATA(data_value)) 등과 같이 의미 해석이 가능한 심벌과 이에 연관되는 함수호출들로서 나타낼 수 있는데, 이와 같은 것을 트란젝션이라 칭한다. 또한 트란젝션은 하나의 사이클 단위에서 뿐만 정의될 수 있을 뿐만 아니라(이를 사이클정확한 트란젝션(cycle-accurate transaction)이라 칭하기로 한다), 여러 사이클 단위로도 확장되어져서 정의되는 트란젝션(이를 사이틀준정확한 트란젝션(cycle-approximate transaction)이라 칭하기로 한다)도 있을 수도 있다 (이와 같이 여러 사이클 단위에서 정의되는 트란젝션은 Transaction_name(start_time, end_time, other_attributes)로 표현되어질 수 있다). 따라서 단순하게 트란젝션이라 하면 사이틀정확한 트란젝션과 사이클준정확한 트란젝션 모두를 포함하며, 트란젝션은 사이클 정확도를 가지는 트란젝션(cycle-accurate transaction)과 사이클 준정확도를 가지는 트란젝션(cycle-approximate transaction)(사이클 준정확도를 가지는 트란젝션을 다른말로는 트란젝션 정확도를 가지는 트란젝션이라고도 칭하기로 함)으로 나눌 수 있다.
그러나 합성 기술의 한계로 인하여서 이와 같이 트란젝션 수준에서 모델링된 VP를 직접 이용하여 칩을 구현하는 것이 아니고, 칩을 구현하는 것은 VP와는 별도로 추상화 수준의 상대적으로 낮은 단계인 레지스터전송수준(RTL)에서 코딩된 설계(이를 Design Under Verification이라하고, 이를 앞으로는 DUV로 약칭함)를 이용하여 칩을 구현하는 것이 일반적이다. 예로서, DUV가 RTL에서 구술된 설계인 경우에, VP는 RTL 보다 상위 추상화 수준(예로, 트란젝션수준에서의 사이클 정확(cycle accurate)한 모델이나 트란젝션수준에서의 사이클 준정확(cycle approximate)한 모델 등)에서 모델된 것을 VP라고 볼 수 있다 (같은 사이클 정확이라고 하더라도 트란젝션수준에서의 사이클 정확한 것이 레지스터전송수준에서의 사이클 정확한 것보다 추상화 수준이 높다. 즉 레지스터전송수준에서의 사이클 정확한 것은 시그널-단위에서 사이클 정확도를 갖는 것이고 트란젝션수준에서의 사이클 정확한 것은 트란젝션-단위에서의 사이클 정확도를 갖는 것이기 때문이다),
그런데, 이와 같은 최근의 SOC 칩 설계에서도 제일 시간이 많이 소요되는 것은 칩 설계 검증으로 전체 설계 시간에서 최대 70%까지의 시간을 차지하게 되어서 이 과정이 전체 설계의 병목으로 작용하고 있는데, 이의 주된 이유는 ESL 설계에서도 하드웨어의 설계 검증은 기존의 상황과 달라진 것이 없이 동일한 방법들을 통하여 진행되고 있기 때문이다. SOC 칩 설계에서는 기존과 같이 설계하는 대상이 두 가지가 있는데, 그 하나는 DUV이고, 또 다른 하나는 테스트벤치(testbench, 앞으로는 이를 TB로 약칭함)이다. DUV는 궁극적으로 반도체 제조 공정을 거쳐서 칩으로 만들어지는 설계 대상이고, 테스트벤치는 구현된 해당 칩이 장착되어서 동작하는 주변상황을 모델링한 것으로서 DUV의 시뮬레이션에 사용된다. DUV를 시뮬레이션을 통하여 검증하고자 하는 경우에 테스트벤치가 DUV에 입력을 인가하고 인가된 입력으로 DUV에서 출력되는 결과를 받아들여서 처리하는 것이 일반적이다. 이들 DUV와 테스트벤치는 일반적으로 계층적인 구조로 내부에 다양한 1 이상의 하위모듈들을 가지고 있는데, 이들 하위모듈 각각을 설계 블럭이라고 할 수 있고, 설계 블록 내부에는 설계 모듈들이 존재하고, 설계 모듈 내부에는 서브모듈들이 존재한다. 이와 같은 설계 블록들, 또는 설계 모듈들, 또는 서브모듈들이나 DUV, 그리고 테스트벤치 각각이나 또는 이들의 일부분들 또는 이들의 조합들을 모두 설계객체(design object)들(설계객체의 구체적 예로는 Verilog의 경우에는 module, 또는 VHDL인 경우에는 entity, 또는 SystemC의 경우에는 sc_module 또는 이들의 일부분 등)이라고 지칭하기로 한다.
VP 모델링 방법에는 두 가지가 있다. 첫 번째는 DUV에 존재하는 상태정보(DUV내의 모든 기억소자들 - 기억소자는 플립플롭 또는 래치 또는 메모리, 그리고 조합루프가 있는 경우에는 조합루프에 존재하는 신호선까지를 포함 - 의 특정 검증 시점에서의 값, 혹은 이들을 모델링한 모델들의 특정 검증 시점에서의 값)를 결정하는 DUV 내의 모든 변수들이나 신호선들만을 VP에서도 함수적으로 동일하게 갖도록 모델링 하는 것이다. 여기에서 함수적으로 동일하다는 것은 추상적 수준과 연계하여서 정의할 수 있는데, 예로 사이클 단위로 함수적 동일성이 존재할 수 있을 뿐만 아니라, 트란젝션 단위로 함수적 동일성이 존재할 수도 있다. 이와 같은 첫 번째 모델 기법의 장점은 DUV에서 자동화된 방법을 통하여 VP 모델을 생성할 수 있는 것인데, 단점으로는 RTL 수준의 DUV와 비교하여 모델링된 VP의 실행 속도의 증가가 제한적이라는 것이다 (이와 같은 방식을 통하여 생성된 모델을 s-VP라고 칭하기로 한다. 현재 상용화된 시스템들 중에서 TenisonEDA사의 VTOC, Carbon Design Systems사의 VSP 등이 이 경우에 속한다). 일반적으로, DUV는 계층 구조를 가지고 있는 것이 일반적인데, 두 번째는 VP 모델이 DUV의 계층 구조를 계층 최상위에서 일정 단계까지는 DUV와 같은 계층 구조를 가지고 있는 것이다. 예를 든다면, DUV에 최상위인 시스템, 시스템 하위에 블록, 블록 하위에 모듈의 3 단계의 계층 구조가 존재하는 경우에 VP는 최상위인 시스템, 시스템 하위에 블록의 2 단계의 계층 구조가 존재하게 되고, DUV의 시스템과 VP의 시스템, DUV의 각 블록과 VP의 대응되는 각 블록은 구조적으로 1:1로 대응된다 (도 3 참조). VP와 DUV에 공통으로 존재하는 각 블록들의 입출력의 추상화 수준은 같을 수도 있고(예로 VP의 블록 a(vp)와 DUV에서 대응하는 블록 a(duv)의 입출력들이 모두 사이클 정확성을 가지고 있음), 혹은 다른 추상화 수준을 가질 수도 있다(예로 VP의 블록 a(vp)의 입출력은 트란젝션 수준의 정확성을 가지고 있고 DUV에서 대응하는 블록 a(duv)의 입출력은 사이클 정확성을 가지고 있음). 이와 같은 두 번째 모델 기법의 장점은 RTL 수준의 DUV와 비교하여 VP의 실행 속도를 매우 높일 수 있는 것이지만, 단점으로는 자동화된 방식을 통하여 모델을 생성시키는 것이 어렵기 때문에 주로 수동 방식으로 VP를 생성시키게 된다는 것이다 (이와 같은 방식을 통하여 생성된 모델을 t-VP라고 칭하기로 한다. 현재 상용화된 시스템들 중에서 ARM사의 MaxSim이나 Vast Systems Technology사의 VSP, CoWare사의 ConvergenSC, Summit Design사의 VisualElite 등이 이 경우에 속한다).
그러나 이와 같은 VP를 자동화된 방법으로나 수동적으로 생성시켜서 ESL 설계를 진행하는 현재의 문제점은 첫째 VP의 시뮬레이션 속도를 높이기 위해서는 VP 전체의 추상화수준을 RTL 보다 대폭 올려야 함으로 수작업으로 생성하여야 하며, 이와 같은 수작업을 통하여 VP를 생성하는 것에 소요되는 시간과 비용이 매우 크다는 것이다. 둘째 현재 대부분의 사용되는 반도체 IP(legacy IP)들은 합성가능한 RTL 모델임으로 트란젝션수준(transaction level, 앞으로 이를 TL로 약칭함)에서의 모델링에 효과적으로 재사용할 수 없다는 것이다. 즉, 이들 RTL 모델인 IP들을 VP에 그대로 사용하면 VP의 시뮬레이션 속도가 매우 낮아지고 이들 RTL 모델인 IP들을 SystemC 모듈로 자동변환하더라도 VP의 시뮬레이션 속도를 크게 향상시킬 수 없거나(DUV 전체가 RTL 모델인 경우와 비교하여) 혹은 이 자동변환된 모듈때문에 VP의 시뮬레이션 속도가 상대적으로(VP 전체를 수작업으로 모델링한 경우와 비교시) 크게 떨어진다는 것이다.
따라서, 본 발명의 목적은 ESL 설계에서 병목으로 작용하고 있는 하드웨어 검증 또는 하드웨어/소프트웨어 동시검증을 신속하게 수행하기 위한 VP 모델을 신속하게 생성하고, 이를 이용하는 시뮬레이션의 성능 및 효율성을 크게 향상시키는 시뮬레이션 기반의 설계 검증 장치 및 이를 이용한 설계 검증 방법을 제공함에 있다.
상기 목적들을 달성하기 위하여, 본 발명에 따른 설계 검증 장치는 검증 소프트웨어와 1 이상의 시뮬레이터가 인스톨된 1 이상의 컴퓨터로 구성된다. 본 발명에 따른 또 다른 설계 검증 장치는 검증 소프트웨어와 1 이상의 시뮬레이터가 인스톨된 1 이상의 컴퓨터와 상기 1 이상의 컴퓨터에 연결된 1 이상의 시뮬레이션가속기 또는 FPGA 보드로 구성된다. 검증 소프트웨어는 컴퓨터에서 실행되며, 만일 상기 설계 검증 장치에 2 이상의 컴퓨터들이 있는 경우에는 이들 2 이상의 컴퓨터는 네트워크(예로 이더넷 혹은 기가비트이더넷)로 연결되어져서 컴퓨터들 간에 파일들의 이동을 네트워크를 통하여 가능하게 한다. 상기 1 이상의 시뮬레이터는 SystemC 또는 SystemVerilog 또는 Verilog 또는 VHDL 또는 Vera 또는 e 또는 이들의 조합으로 구술된 모델을 시뮬레이션할 수 있는 사이클-기반 시뮬레이터(cycle-based simulator) 또는 이벤트-구동 시뮬레이터(event-driven simulator)이다. 현재 레지스터전송수준에서의 칩 설계에서 사용되는 HDL 시뮬레이터들(Cadence NC-Verilog/NC-VHDL, Synopsys VCS/VCS-MX, Mentor Graphic ModelSim, Aldec Active-HDL/Riviera 등)과 SystemC(version 2.0) 시뮬레이터는 모두 이벤트-구동 방식의 시뮬레이터들이다. 사이클-기반의 시뮬레이터로는 대표적으로 Synopsys의 Scirocco와 SystemC(version 1.0) 시뮬레이터가 있다. 사이클-기반의 시뮬레이션에서는 조합회로부를 모델링한 HDL 코드나 게이트수준의 네트리스트의 모든 부분에서는 지연시간을 0으로 가정하고, DUV의 동작이 플립플롭 또는 래치의 플립플롭이나 래치의 출력을 활성화시키는 클럭 에지(active clock edge) (예로, rising-edge sensitive 플립플롭이나 positive-level sensitive 래치의 경우에는 클럭의 rising-edge, falling-edge sensitive 플립플롭이나 negative-level sensitive 래치의 경우에는 클럭의 falling-edge)에만 동기화되어서 이루어지도록(즉, 사이클-기반의 시뮬레이션에서는 DUV에서 구술되어져 행위수준이나 소자로서 존재하게 되는 모든 플립플롭들이나 래치들의 출력 Q 값들만이 사이클 단위로서만 중요하며, 따라서 HDL 소스 코드에 구술된 모든 지연시간들과는 상관없이 플립플롭이나 래치의 Q 출력이 변화 가능한 시점은 해당 클럭의 활성 에지와 시간차 없이 정확하게 일치됨) 시뮬레이션 되어진다. 이벤트-구동 시뮬레이터를 사용하는 경우에도, 최적화기법을 적용하여서 실행하거나, 또는 HDL 설계코드에 존재하는 모든 지연시간 구문들(예로, Verilog 코드에서는 # 구문, 또는 VHDL 코드에서는 AFTER delay 구문 또는 TRANSPORT (signa-expression) AFTER delay 구문 등)을 무시하거나, 또는 이들 지연시간 구문들을 제거하고 시뮬레이션을 한다면 시뮬레이션 결과는 사이클-기반 시뮬레이션 결과와 같게 되는데, 이벤트-구동 시뮬레이터를 이와 같은 방식으로 동작시키는 것을 사이클-기반 모드(cycle-based mode)로 동작시킨다고 정의한다.
VP를 이용한 시뮬레이션에서는 필요시 1 이상의 시뮬레이션가속기 또는 FPGA 보드를 부분적으로 이용하는 것(VP 내의 1 이상의 설계객체는 상기 1 이상의 시뮬레이션가속기 또는 FPGA 보드 상에서 수행함)도 가능한데 이에 대한 구체적 설명은 나중에 하기로 한다. 추가적 설명에 앞서서 우선 본 발명에서 언급되는 VP와 본 특허에서의 검증 소프트웨어의 관계를 설명하기로 한다. VP는 DUV보다 추상화 수준이 높은 실행 가능한 모델로 정의되는데, 이 VP는 수작업(manual) 방식으로 생성될 수도 있고, 혹은 상기 검증 소프트웨어를 이용하여서 자동화된 방식으로 생성되어질 수도 있으며, 혹은 상기 검증 소프트웨어와는 별도의 다른 소프트웨어를 이용하여서 생성되어질 수도 있다. 뿐만 아니라 VP는 부분적으로 수작업 방식으로 생성하고, 나머지 부분에 대해서는 상기 검증 소프트웨어를 이용하거나 혹은 별도의 다른 소프트웨어를 이용하여서 자동화된 방식으로 생성되어질 수도 있다. 상기 VP 전체 또는 VP의 일부분이 상기 검증 소프트웨어 또는 상기 별도의 다른 소프트웨어를 이용하여서 생성되는 경우에, 이 검증 소프트웨어 또는 별도의 다른 소프트웨어는 다음과 같은 세가지 구성요소들을 가지게 된다. 즉, Verilog, VHDL, SystemVerilog(SystemVerilog는 SDL 언어인 동시에 HDL 언어이기도 함) 등의 HDL로 구술된 DUV를 읽어들여서 파싱(parsing)과 일레보레이션(elaboration)을 수행하는 HDL 파서/일레보레이터(parser/elaborator) 구성요소와, 이와 같이 파싱된 자료구조에 대하여 최적화를 수행하는 최적화(optimizer) 구성요소와, 마지막으로 최적화된 대상을 SystemC, C/C++, SystemVerilog 등의 문법에 맞는 코드로 출력시키는 출력부 구성요소들이 그것들이다. HDL 파서/일레보레이터 구성요소의 처리결과는 최적화 구성요소에 의하여 사용되어지고, 최적화 구성요소의 처리결과는 출력부 구성요소에 의하여 사용되어진다. 다음에는 이 세가지 구성요소들의 동작 방법을 단계별로 자세하게 설명하기로 한다.
VP 전체 또는 VP 내의 1 이상의 설계객체를 RTL 모델에서부터 검증 소프트웨어 또는 별도의 다른 소프트웨어를 통하여 자동적으로 생성시키는 구체적인 본 특허에서의 방법(이와 같은 방법은 본 특허에서는 "저장소자출력유지 변환법"이라고 칭함)은 다음과 같다. 우선 HDL 파서/일레보레이터 구성요소에서는 원 RTL 수준의 코드(이를 "원 설계객체"라 칭함)를 파싱하고 일레보레이션하여(일레보레이션을 하게되면 원 RTL 수준의 코드가 구조적 형태로 변환되어짐. 즉 여기에서 일레보레이션은 논리합성 단계에서의 일레보레이션과 유사하게 행위적 형태를 구조적 형태로 바꾸는 것임)하여서 이를 자료구조로 임의의 컴퓨터의 기억장치에 저장하는 단계를 수행한다. 최적화 구성요소에서는 상기의 자료구조를 읽어낸 후, 원 RTL 수준의 코드에서 저장소자(플립플롭이나 래치)의 타이밍 입력들과 출력에 대응되는 시그널들을 구분한 후(단, 플립플롭이나 래치는 D 타입만을 생각하고, D 타입의 플립플롭이나 래치의 입력은 데이터 입력과 타이밍 입력으로 나누고 출력은 데이터 출력인 Q 출력 하나이고, 데이터 입력은 D 입력이고 타이밍 입력은 클럭입력, 비동기셋입력, 비동기리셋입력이다. 래치의 경우에는 클럭입력을 인에이블입력이라고도 한다), 저장소자(플립플롭이나 래치)의 출력들과 타이밍 입력들과 원 설계객체의 주입력(primary input)들을 정의하는 변수들과 시그널들만을 남기고 저장소자의 데이터 입력들과 나머지 중간 변수들이나 중간 시그널들을 최대한 제거하는(가능하다면, 이들 저장소자의 데이터 입력들과 나머지 중간 변수들이나 중간 시그널들 모두를 제거함) 최적화 단계를 수행한다. 즉, 원 설계객체에 존재하는 모든 저장소자의 출력들을 저장소자의 타이밍 입력들과 데이터 입력들과 나머지 중간 변수들과 중간 시그널들을 전혀 이용하지 않고 주입력들과 다른 저장소자들의 출력들과 가주입력(가주입력은 블랙박스 설계객체의 출력)들만을 이용하여 표현하거나. 혹은 이와 같은 표현이 가능하지 않은 경우에만 최소한의 저장소자의 타이밍 입력들과 데이터 입력들과 나머지 중간 변수들이나 중간 시그널들을 같이 사용하여서 표현한다. 또한 주출력들도 주입력들과 저장소자의 출력과 가주입력들만을 이용하여 표현하거나, 혹은 이와 같은 표현이 가능하지 않은 경우에만 최소한의 저장소자의 타이밍 입력들과 데이터 입력들과 나머지 중간 변수들과 중간 시그널들을 같이 이용하여서 표현될 수 있도록 최적화 구성요소에서 최적화 단계가 수행되어진다. 이와 같은 표현 과정에 사용될 수 있는 언어로는 SDL(System Description Language) 언어(예로 SystemC 또는 C/C++ 또는 SystemVerilog)가 적합하다. 상기와 같은 방법으로 원 설계객체를 변환하게 되면 원 설계객체가 자연스럽게 원 설계객체에 존재하는 위상관계가 없는 1 이상의 사용자클럭들(이들 위상관계가 없는 1 이상의 사용자클럭들은 사전에 원 설계객체에서 메뉴얼하게 선정하여야 함)에 따라서 개개의 사용자클럭에 동기화된 1 이상의 도메인(이와 같은 도메인을 본 특허에서 "단일클럭 주도메인"이라 정의함)들과 2개 이상의 사용자클럭들에 동기화된 1 이상의 도메인(이와 같은 도메인을 본 특허에서 "다중클럭 주도메인"이라 정의함)들로 분할되어지는 구조로 변환(이와 같이 원 설계객체로부터 변환된 것을 "변환된 설계객체"라 칭함)되어진다 (구체적 예는 도 6, 도 7, 도 8을 참조함). 여기서 하나 주의할 것은 특정 사용자클럭 하나로부터 생성되어지는 클럭(generated clock)들(예로, 상기 특정 사용자클럭에 동기화된 인에이블 시그널과 상기 특정 사용자클럭이 게이트되어진 클럭(gated clock), 혹은 상기 특정 사용자클럭이 분주되어져서 만들어진 클럭, 혹은 상기 특정 사용자클럭이 분주되어져서 만들어진 클럭 또는 상기 사용자클럭에 동기화된 인에이블 시그널과 상기 특정 사용자클럭이 분주되어져서 만들어진 클럭 또는 상기 사용자클럭이 게이트되어진 클럭 등이 모두 특정 사용자클럭 하나로부터 생성되어지는 클럭에 속함)에 동기화된 도메인은 별도로 존재하지 않고 상기 특정 사용자클럭 하나에 동기화된 주도메인 내부에 서브도메인으로 존재한다는 것이다. 즉 원 설계객체는 변환되어진 설계객체로 변환되면서 주도메인 단위로 분할되어져서 "각 주도메인 단위의 부분설계객체"(본 특허에서는 이를 앞으로 "주도메인 부분설계객체"로 칭함)로 나누어져서 존재하게 된다. 이와 같은 주도메인 부분설계객체는 원 설계객체가 상기에서 설명된 방식에 의하여 변환된 것이며, 각 주도메인 부분설계객체는 단일 사용자클럭에 동기화된 "단일클럭 주도메인 부분설계객체"와 2 이상의 사용자클럭에 동기화된 "다중클럭 주도메인 부분설계객체"로 나누어진다. 여기서 한가지 주목할 것은 상기 단일 사용자클럭에 동기화된 단일클럭 주도메인 부분설계객체는 사이클-기반 시뮬레이션(일반적으로 이벤트-구동 시뮬레이션 보다 사이클-기반 시뮬레이션이 약 10-100배 빠르게 수행됨)으로 수행될 수 있어서 빠른 시뮬레이션을 위해서 매우 효과적이라는 것이다.
이와 같은 최적화 구성요소가 수행하는 최적화 수행 단계에서, 필요시 조합회로부를 모델링한 코드는 시뮬레이션 과정에서 제일 적은 횟수로 평가(evaluation)될 수 있도록 고려하거나, 매우 신속하게 평가될 수 있도록 하는 특수한 자료구조(예로 Binary Decision Diagram이나 Multiple-valued Decision Diagram 등)를 이용하여서 표현하는 것도 가능하다. 또한, 필요시 RTL 수준에서 구술한 원 설계 코드에서 루프(loop)문들을 펼침으로(un-rolling) 루프문을 제거하거나 감지 리스트(sensitivity list)에서 불필요한 리스트들을 제거하거나, 경우에 따라서는 지연관련 구문을 제거하는 것과, 이와 같은 과정에서 빠른 논리변환(logic translation)이나 빠른 논리합성(logic synthesis) 과정을 통하여 설계 코드를 변환시키는 것도 가능하다. 뿐만 아니라, DUV에 내부의 설계 코드를 볼 수 없이 사용되는 블랙박스 설계객체(예로, RISC 프로세서 코어 또는 DSP 코어)이나 대용량의 메모리(RAM 이나 ROM 등) 블록들이 있는 경우에는 이들 각각을 별도로 높은 추상화 수준에서 모델링된 별도의 모델(예로 프로세서의 경우에는 사이클정확도 혹은 트란젝션정확도 혹은 인스트럭션정확도를 가지는 모델로 인스트럭션셋시뮬레이터(ISS)가 구체적인 예이며, 메모리의 경우에는 사이클정확도 혹은 트란젝션정확도 혹은 인스트럭션정확도를 가지는 메모리의 행위수준에서의 모델. 이와 같은 타이밍 관련된 다양한 정확도는 필요시 타이밍고려하지않은 모델(un-timed model)에 해당 수준의 타이밍 껍데기(timing wrapper)를 둘러쌈으로 구현가능함)을 사용하고 이들 블랙박스 설계객체의 출력들을 가주입력(pseudo primary input)들로서 사용한다.
이와 같은 본 특허에서의 저장소자출력유지 변환법을 거쳐서 표현된 모델은 원 RTL 설계코드와 비교하여서 DUV에 존재하는 시그널들이나 변수들(구체적 예로, Verilog에서는 reg들이나 wire들, 그리고 VHDL에서는 signal들이나 variable들)의 수가 대폭적으로 감소할 뿐만 아니라, 이벤트 수도 감소시킬 수 있으며, 프로세스의 수들로 감소시킬 수 있는데, 이들 모두가 시뮬레이션 속도 향상에 큰 기여를 하게 된다. 즉, 본 특허에서의 저장소자출력유지 변환법은 저장소자의 출력들과 주출력들만의 구술이 가능하다면 이들만을 구술하고, 상기 저장소자의 출력들은 저장소자가 플립플롭의 경우에는 대부분 클럭에 동기화되어져셔 동작하게 되기 때문이다. 또한 최적화 구성요소를 통한 변환 단계에서, 추가적으로 원 RTL 설계 코드에서 존재하는 루프문들이 펼쳐짐으로 루프문들이 제거되고 감지 리스트(sensitivity list)에 불필요한 리스트들이 존재할 수 없게 되고 모든 지연관련 구문들이 제거될 수도 있다.
이와 같이 표현된 모델 전체는 시뮬레이션에서 사이클 단위로 진행하거나, 혹은 트란젝션 단위로 진행할 수 있음으로 시뮬레이션의 속도를 높일 수도 있다. 뿐만 아니라, 이와 같이 표현된 모델을 부분적으로는 사이클 단위로 진행하고 나머지는 이벤트 단위로 진행하거나, 혹은 모델을 부분적으로는 트란젝션 단위로 진행하고 나머지는 이벤트 단위로 진행하거나, 혹은 모델을 부분적으로는 트란젝션 단위로 진행하고 나머지는 사이클 단위로 진행하거나, 혹은 모델을 부분적으로는 트란젝션 단위로 진행하고 부분적으로는 사이클 단위로 진행하고 나머지는 이벤트 단위로 진행시킴으로서 시뮬레이션의 속도를 추가적으로 높일 수도 있다.
이와 같이 VP를 자동적으로 생성하는 방법은 모델링에 적은 시간과 노력을 필요로 하는 장점이 있지만, 추상화 수준을 일정 수준 이상으로 높이는 것에는 한계가 있어서 VP 시뮬레이션의 속도를 일정 이상 높이는 것이 어려울 수 있다. 따라서 VP를 생성하는 또 다른 방법은 VP 내의 설계객체들을 수작업으로 모델링하는 것이다. 앞에서 이미 언급한대로 수작업으로 모델링하게 되면, 시뮬레이션의 속도가 매우 높은 모델의 생성이 가능하나 문제는 이와 같은 수작업 모델링에 많은 시간과 노력을 필요로 한다는 것이다.
본 특허에서는 VP 전체를 신속하게 모델링할 수 있으면서도 시뮬레이션의 속도를 높일 수 있는 방법을 제시하기로 한다. 이를 위한 본 특허에서의 방법은 VP를 2 이상의 프로세서(processor)에서 수행되는 2 이상의 시뮬레이터를 사용하여서 병렬적 수행이 가능하도록 구성하거나, 또는 2 이상의 프로세서에서 수행되는 2 이상의 시뮬레이터와 1 이상의 하드웨어기반검증플랫폼(FPGA 보드 또는 시뮬레이션가속기 또는 하드웨어에뮬레이터)을 사용하여서 병렬적 수행이 가능하도록 구성한다 (상기 2 이상의 프로세서의 각각이 별도의 컴퓨터에 존재하는 경우에는 다른 프로세서들과는 컴퓨터간의 네트워크로 연결된다). 이와 같이 구성된 환경에서 각 시뮬레이터에 수행되는 설계객체는 트란젝션수준에서 모델링되는데, 위에서 언급한 방식대로의 저장소자출력유지 변환법을 이용하거나 혹은 RTL-to-SystemC 변환툴(예로, Carbon Design Systems사의 VSP, 또는 Tenison Automation사의 VTOC, 또는 Verilator 등)을 사용하여 자동화된 방식대로 모델링(이를 VP 설계객체 모델링방법1 이라고 칭함)되거나, 또는 수작업으로 모델링(이를 VP 설계객체 모델링방법2 라고 칭함)되거나, 또는 상기 환경에서 각 하드웨어검증플랫폼에 수행되는 설계객체는 원 RTL 설계객체가 논리합성 과정을 거쳐서 구현된 것(이를 VP 설계객체 모델링방법3 이라고 칭함)이다. 즉 본 특허에서의 VP 내의 각 설계객체들은 각 설계객체의 특성상에 따라서 VP 설계객체 모델링방법1, 또는 VP 설계객체 모델링방법2, 또는 VP 설계객체 모델링방법3 중의 한 방법에 의하여 모델링되고, 이들 VP 설계객체들은 별도의 프로세서에 의하여 수행되면서 병렬수행 방식으로 연동되어진다. 본 특허에서는 VP 모델 중에서 병렬수행 방식의 시뮬레이션이 가능하며, VP 내의 1 이상의 설계객체에 대한 모델링에 위에서 자세하게 설명된 "저장소자출력유지 변환법"을 사용한 VP 모델을 "병렬수행 가능한 하이브리드-VP 모델"이라고 칭하기로 한다. 이와 같은 예를 구체적으로 든다면 프로세서 코어(ARM 코어, DSP 코어 등)들 또는 온칩버스 코어(예로 AMBA AHP 버스, APB 버스, AXI 버스 등)들 또는 표준화된 모듈(예로 PCI-X 모듈, SATA 모듈, USB 모듈 등)들은 대부분 명령어수준 시뮬레이터들 또는 트란젝션수준 모델들이 벤더들로부터 이미 구현되어져서 제공되어짐으로 VP 설계객체 모델링방법2를 사용하는 것이며, 합성가능한 RTL IP들 중 1 이상을 "저장소자출력유지 변환법"을 통하여 자동화된 방법으로 모델링하고, 새롭게 설계되어져야 하는 IP들만 VP 설계객체 모델링방법2로 모델링 하면 된다. 즉 본 특허에서의 VP 모델링 방법은 한가지의 모델링 방법에 얽매이지 않고 VP 내의 설계객체의 특성과 요구사항에 따라서 3가지 중에 제일 적합한 방법을 사용하여서 신속하게 구성할 수 있게 하며, 구성된 VP는 병렬수행 방식으로 연동시킴으로서 시뮬레이션의 속도를 최대한 높일 수 있도록 한다. 앞에서 이미 설명된 본 특허에서의 자동변환 방식은 개개의 주도메인 부분설계객체 별로 혹은 주도메인 부분설계객체 경계 단위로(즉 2 이상의 주도메인 부분설계객체를 묶어서) 병렬수행 방식의 각 시뮬레이터에서 수행될 수 있는 적합한 설계객체들을 만들어 낸다.
병렬수행 방식의 시뮬레이션에서 가장 문제가 되는 것은 각 시뮬레이터 간 또는 시뮬레이터와 하드웨어기반검증플랫폼간의 통신 오버헤드와 동기 오버헤드를 최대한으로 낮추는 것이다. 이를 위하여 본 특허에서의 VP에 대한 병렬수행 방식의 시뮬레이션에서는 3가지 방법을 사용하여서 각 시뮬레레이터 간 또는 시뮬레이터와 하드웨어기반감증플랫폼간의 통신 오버헤드와 동기 오버헤드를 낮춘다. 첫번째 방법은 트란젝터(transactor)(트란젝터란 시그널-수준의 데이터를 트란젝션-수준의 데이터로 변환하거나, 또는 트란젝션-수준의 데이터를 시그널-수준의 데이터로 변환하는 설계객체임)를 사용하여서 통신 오버헤드와 동기 오버헤드를 줄이는 것이다. 즉 트란젝터를 사용하면 시뮬레이터 간 또는 시뮬레이터와 하드웨어기반검증플랫폼간의 동기 횟수를 줄이는 것(예로, 매 사이클 대신에 어려 사이클의 트란젝션 단위로 동기화 수행)이 가능해짐으로 병렬수행 방식의 시뮬레이션의 속도를 높이는 것이 가능하다. 이와 같은 트란젝터는 SystemC 또는 SystemVerilog를 사용하여서 구술하는 것도 가능하고, 트란젝터 생성툴(예로 Spiratech의 Cohesive)을 사용하여서 만들어낼 수 있다. 두번째 방법은 인크리멘탈 시뮬레이션을 통하여 통신 오버헤드 및 동기 오버헤드를 낮출 수 있다. 인크라멘탈 시뮬레이션의 구체적 설명은 별도의 특허 10-2004-93310에서의 시뮬레이션 방법을 참조하기로 한다. 세번째 방법은 예상입력과 예상출력을 사용한 병렬시뮬레이션을 통하여 통신 오버헤드 및 동기 오버헤드를 낮출 수 있다. 세번째 방법의 구체적 설명은 별도의 특허 10-2006-92574에서의 예상입력과 예상출력을 사용한 병렬시뮬레이션 방법을 참조하기로 한다. 최적화 구성요소에 의하여 최적화 과정 단계가 수행되어진 후에는 이의 결과(최적화되어진 자료구조의 형태로 표현됨)는 출력부 구성요소에 의하여 SystemC, C/C++, SystemVerilog 등의 최종코드 생성 언어의 문법에 맞는 코드로 출력되어진다.
상기 목적 외에 본 발명의 다른 목적 및 이점들은 첨부한 도면을 참조한 실시 예에 대한 상세한 설명을 통하여 명백하게 드러나게 될 것이다.
도1 은, 컴퓨터에서 운영되는 본 발명의 검증 소프트웨어와 시뮬레이터를 갖는 컴퓨터로 구성된 본 발명에 관한 설계 검증 장치의 일 예를 개략적으로 도시한 도면이다.
도2 는, 컴퓨터에서 운영되는 본 발명의 검증 소프트웨어와 2 이상의 시뮬레이터를 갖는 2 이상의 컴퓨터들과 이들 컴퓨터들을 연결하는 컴퓨터 네트워크로 구성된 본 발명에 관한 설계 검증 장치의 또 다른 일 예를 개략적으로 도시한 도면이다.
도3 은, VP의 구성 일 예를 대응되는 RTL DUV 일 예와 비교하여서 개략적으로 도시한 도면이다. 예에서는 VP는 DUV와 동일하게 여섯개의 설계블럭과 온칩버스로 구성되어져 있음을 보이고 있다.
도4 는, 도3 의 VP를 7개의 시뮬레이터를 이용하여서 병렬적으로 수행하는 상황의 일 예를 개략적으로 도시한 도면이다. VP내의 3개의 설계객체(338, 348, 358)들은 본 특허에서의 자동화된 방법을 사용하여서 RTL에서 생성시킨 설계객체들로 가정하고, 동기 오버헤드를 줄여주기 위하여 추가적인 트란젝터(111)를 상기 3개의 설계객체에 부가한 상황을 나타내고 있다.
도5 는, 도3 의 VP를 5개의 시뮬레이터와 2개의 하드웨어기반검증플랫폼을 이용하여서 병렬적으로 수행하는 상황의 또 다른 일 예를 개략적으로 도시한 도면이다. 이 예에서는 VP내의 2개의 설계객체(348, 358)들은 본 특허에서의 자동화된 방법을 사용하여서 RTL에서 생성시킨 설계객체들로 그리고 VP내의 또 다른 2개의 설계객체들(318, 328)은 합성가능한 RTL 모델을 상기 하드웨어기반검증플랫폼 상에 구현한 것으로 가정하고, 동기 오버헤드를 줄여주기 위하여 추가적인 트란젝터(111)를 상기 2개의 설계객체(348, 358)에 부가한 상황과 합성가능한 별도의 추가적인 트란젝터(112)를 상기 또 다른 2개의 설계객체(318, 328)에 부가한 상황을 나타내고 있다.
도6 은, 원 설계 코드(a) 에서부터 본 특허의 방법을 통하여서 VP(b)를 자동적으로 생성하는 과정의 일 예를 개략적으로 도시한 도면이다.
도7 은, 도6의 예에서의 변환을 위하여 원 설계 코드를 파싱하고 일레보레이션하여 구조적 형태로 변환된 상황의 예를 개략적으로 도시한 도면과, 이 구조적 형태에서부터 생성된 VP를 3개의 시뮬레이터에 나누어서 병렬적 수행을 가능하게 3개의 단일클럭 주도메인들 각각을 3개의 시뮬레이터 각각에 할당하는 상황의 예를 도시한 도면이다.
도8 은, 또 다른 원 설계 코드 예를 파싱하고 일레보레이션하여 구조적 형태로 변환된 상황의 또 다른 예를 개략적으로 도시한 도면이다. 여기에는 3개의 단일클럭 주도메인들과 1개의 다중클럭 주도메인이 존재하는 것을 보여주고 있다.
도9 는, 사이클정확한 시그널(a) 과, 사이클정확한 트란젝션(b) 과, 사이클준정확한 트란젝션(c) 의 일 예들을 보여주고 있다.
상술한 바와 같이, 본 발명에 따른 검증 장치 및 이를 이용한 설계 검증 방법은 초대규모급 설계를 ESL 기반에서 수행하는 경우에 ESL 모델을 신속하게 생성하여, 이를 이용한 ESL 설계를 효과적으로 진행하는 것을 가능하게 한다.
이상 설명한 내용을 통해 당업자라면 본 발명의 기술사상을 일탈하지 아니하는 범위에서 다양한 변경 및 수정이 가능함을 알 수 있을 것이다. 따라서, 본 발명의 기술적 범위는 실시 예에 기재된 내용으로 한정되는 것이 아니라 특허 청구의 범위에 의하여 정하여져야만 한다.

Claims (5)

  1. DUV 내의 1 이상의 설계객체를 파싱하고 일레보레이션하는 단계와,
    파싱되고 일레보레이션된 상기 1 이상의 설계객체에 대하여 시뮬레이션 속도를 높이는 최적화를 수행하는 단계와,
    상기 1 이상의 설계객체에 대한 상기 시뮬레이션 속도를 높이는 최적화가 수행되어진 최적화되어진 설계객체에 대한 코드를 출력하는 단계를 통하여 병렬수행 가능한 하이브리드-VP 모델을 생성하여,
    상기 병렬수행 가능한 하이브리드-VP 모델을 이용한 1회 이상의 병렬적 시뮬레이션을 수행하는 시뮬레이션 방법.
  2. 제 1 항에 있어서,
    상기 병렬수행 가능한 하이브리드-VP 모델 내의 상기 1 이상의 설계객체에 대하여 상기 시뮬레이션 속도를 높이기 위한 최적화 단계에서 저장소자출력유지 변환법이 사용되어진 시뮬레이션 방법.
  3. 제 1 항에 있어서,
    상기 병렬수행 가능한 하이브리드-VP 모델의 병렬수행 방식의 시뮬레이션에서 통신 오버헤드 또는 동기 오버헤드를 줄이기 위하여 트란젝터를 이용하는 시뮬레이션 방법.
  4. 제 1 항에 있어서,
    상기 병렬수행 가능한 하이브리드-VP 모델을 생성하기 위한 최적화 단계에서 저장소자출력유지 변환법이 사용되어져서 1 이상의 단일클럭 주도메인 설계객체들을 가지는 상기 병렬수행 가능한 하이브리드-VP 모델이 생성되고, 상기 병렬수행 가능한 하이브리드-VP 모델을 이용한 1회 이상의 병렬적 시뮬레이션에서 상기 1 이상의 단일클럭 주도메인 설계객체들에 대해서는 사이클-기반 시뮬레이션 방식으로 수행하는 시뮬레이션 방법
  5. 삭제
KR1020060098689A 2005-10-10 2006-10-10 전자시스템수준 설계 방식에서의 효과적인 설계 검증 장치및 이를 이용한 검증 방법 KR100800412B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR1020050095803 2005-10-10
KR20050095803 2005-10-10
KR20060019738 2006-03-01
KR1020060019738 2006-03-01

Publications (2)

Publication Number Publication Date
KR20070039865A KR20070039865A (ko) 2007-04-13
KR100800412B1 true KR100800412B1 (ko) 2008-02-01

Family

ID=38160523

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060098689A KR100800412B1 (ko) 2005-10-10 2006-10-10 전자시스템수준 설계 방식에서의 효과적인 설계 검증 장치및 이를 이용한 검증 방법

Country Status (1)

Country Link
KR (1) KR100800412B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010007018A (ko) * 1999-06-26 2001-01-26 양세양 혼합된 에뮬레이션과 시뮬레이션이 가능한 혼합 검증 장치및 이를 이용한 혼합 검증 방법
KR20030023485A (ko) * 2001-09-14 2003-03-19 양세양 에뮬레이션과 시뮬레이션 정식검증을 혼용한 설계 검증 장치
KR20050101105A (ko) * 2004-03-09 2005-10-20 양세양 검증 성능을 높이는 시뮬레이션 기반의 검증 장치 및 이를이용한 시뮬레이션 방법
KR20060101127A (ko) * 2005-03-17 2006-09-22 양세양 Esl 설계 방식에서의 효과적인 함수적 설계 검증 장치 및이를 이용한 검증 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010007018A (ko) * 1999-06-26 2001-01-26 양세양 혼합된 에뮬레이션과 시뮬레이션이 가능한 혼합 검증 장치및 이를 이용한 혼합 검증 방법
KR20030023485A (ko) * 2001-09-14 2003-03-19 양세양 에뮬레이션과 시뮬레이션 정식검증을 혼용한 설계 검증 장치
KR20040063846A (ko) * 2001-09-14 2004-07-14 양세양 다양한 검증 플랫폼들의 통합 사용을 지원하는 검증 장치및 이를 이용한 검증 방법
KR20050101105A (ko) * 2004-03-09 2005-10-20 양세양 검증 성능을 높이는 시뮬레이션 기반의 검증 장치 및 이를이용한 시뮬레이션 방법
KR20060101127A (ko) * 2005-03-17 2006-09-22 양세양 Esl 설계 방식에서의 효과적인 함수적 설계 검증 장치 및이를 이용한 검증 방법

Also Published As

Publication number Publication date
KR20070039865A (ko) 2007-04-13

Similar Documents

Publication Publication Date Title
US8781808B2 (en) Prediction-based distributed parallel simulation method
US20130179142A1 (en) Distributed parallel simulation method and recording medium for storing the method
US10031986B1 (en) System and method for creating a spice deck for path-based analysis of an electronic circuit design using a stage-based technique
US20070276645A1 (en) Power modelling in circuit designs
Bricaud Reuse methodology manual: for system-on-a-chip designs
US8650513B2 (en) Reducing x-pessimism in gate-level simulation and verification
US8000950B2 (en) Random initialization of latches in an integrated circuit design for simulation
Cohen et al. Using PSL/Sugar for formal and dynamic verification: Guide to Property Specification Language for Assertion-based Verification
US20200401750A1 (en) Verifying glitches in reset path using formal verification and simulation
US7210109B2 (en) Equivalence checking of scan path flush operations
US7254793B2 (en) Latch modeling technique for formal verification
US11526641B2 (en) Formal gated clock conversion for field programmable gate array (FPGA) synthesis
US20210374314A1 (en) Engineering Change Order Scenario Compression by Applying Hybrid of Live and Static Timing Views
Batten An open-source python-based hardware generation, simulation, and verification framework
KR20060101127A (ko) Esl 설계 방식에서의 효과적인 함수적 설계 검증 장치 및이를 이용한 검증 방법
Mehta et al. SystemVerilog Assertions
KR100800412B1 (ko) 전자시스템수준 설계 방식에서의 효과적인 설계 검증 장치및 이를 이용한 검증 방법
Kommuru et al. ASIC design flow tutorial using synopsys tools
KR20080096723A (ko) 가변적 동기/통신 방식에 의한 분산 병렬 시뮬레이션 방법
KR101328263B1 (ko) 체계적 점진적 구체화를 통한 전자시스템수준에서부터게이트수준까지의 검증 방법
US20240111660A1 (en) Managing high performance simulation representation of an emulation system
US20230177244A1 (en) Creation of reduced formal model for scalable system-on-chip (soc) level connectivity verification
US20240104279A1 (en) Multicycle path prediction of reset signals
US11176293B1 (en) Method and system for emulation clock tree reduction
US20230195982A1 (en) Transformations for multicycle path prediction of clock signals

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
A302 Request for accelerated 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: 20120103

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee