KR20040063846A - Verification Apparatus Supporting the Use of Unifying Different Verification Platforms, and the Verification Method Using the Same - Google Patents

Verification Apparatus Supporting the Use of Unifying Different Verification Platforms, and the Verification Method Using the Same Download PDF

Info

Publication number
KR20040063846A
KR20040063846A KR1020040019066A KR20040019066A KR20040063846A KR 20040063846 A KR20040063846 A KR 20040063846A KR 1020040019066 A KR1020040019066 A KR 1020040019066A KR 20040019066 A KR20040019066 A KR 20040019066A KR 20040063846 A KR20040063846 A KR 20040063846A
Authority
KR
South Korea
Prior art keywords
verification
run
design
platform
platforms
Prior art date
Application number
KR1020040019066A
Other languages
Korean (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 KR20040063846A publication Critical patent/KR20040063846A/en
Priority to US10/591,910 priority Critical patent/US20080306721A1/en
Priority to PCT/KR2005/000668 priority patent/WO2005093575A1/en
Priority to JP2007502715A priority patent/JP2007528553A/en

Links

Classifications

    • EFIXED CONSTRUCTIONS
    • E02HYDRAULIC ENGINEERING; FOUNDATIONS; SOIL SHIFTING
    • E02FDREDGING; SOIL-SHIFTING
    • E02F3/00Dredgers; Soil-shifting machines
    • E02F3/04Dredgers; Soil-shifting machines mechanically-driven
    • E02F3/28Dredgers; Soil-shifting machines mechanically-driven with digging tools mounted on a dipper- or bucket-arm, i.e. there is either one arm or a pair of arms, e.g. dippers, buckets
    • E02F3/36Component parts
    • E02F3/3604Devices to connect tools to arms, booms or the like
    • E02F3/3686Devices to connect tools to arms, booms or the like using adapters, i.e. additional element to mount between the coupler and the tool

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Mining & Mineral Resources (AREA)
  • Civil Engineering (AREA)
  • General Engineering & Computer Science (AREA)
  • Structural Engineering (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Debugging And Monitoring (AREA)

Abstract

PURPOSE: A verification device supporting the unified use of various verification platforms and a verification method using the same are provided to increase verification speed and efficiency by heterogeneously using simulation, formal verification, simulation acceleration, hardware simulation, and prototyping on a strongly unified environment, and quickly find/debug design errors. CONSTITUTION: While performing the first verification on more than one verification platform by adding an additional code or circuit to a netlist, a verification software automatically collects the information, which is needed to perform the verification for the verification cycle time sections or the blocks existing in the netlist on the verification platform differed from the verification platform of the first verification, from the first verification process. While performing the first verification on the first verification platform, the verification software collects the minimum information and performs the verification after the first verification on the other verification platform quickly by using the collected information.

Description

다양한 검증 플랫폼들의 통합 사용을 지원하는 검증 장치 및 이를 이용한 검증 방법{Verification Apparatus Supporting the Use of Unifying Different Verification Platforms, and the Verification Method Using the Same}Verification Apparatus Supporting the Use of Unifying Different Verification Platforms, and the Verification Method Using the Same}

본 발명은 설계된 수백만 게이트급 이상의 디지탈 시스템의 설계를 검증하는 기술에 관한 것으로, 설계된 수백만 게이트급 이상의 디지탈 시스템을 시뮬레이션,정식검증, 시뮬레이션 가속, 하드웨어 에뮬레이션, 프로토타이핑들을 통하여 검증하고자 하는 경우에 검증의 성능와 효율성을 증가시키는 검증 장치 및 이를 이용한 검증 방법에 관한 것이다.The present invention relates to a technique for verifying the design of a multi-million-gate or more digital system that has been designed, and to verify the digital system of the multi-million-gate or more designed system through simulation, formal verification, simulation acceleration, hardware emulation, and prototyping. The present invention relates to a verification apparatus for increasing performance and efficiency and a verification method using the same.

최근에 집적회로의 설계 및 반도체 공정기술이 급격하게 발달함에 따라 디지탈 회로 설계의 규모가 최소 수백만 게이트급에서 수천만 게이트급까지 커짐은 물론 그 구성이 극히 복잡해지고 있는 추세이고, 이와 같은 추세는 계속적으로 확대되고 있는 추세로 가까운 미래에 일억 게이트급 이상의 설계도 예상되고 있다. 그러나, 시장에서의 경쟁은 더욱 더 치열해지므로 빠른 시간 내에 우수한 제품을 개발하여야만 함으로 빠른 시간 내에 자동화된 방법으로 설계된 회로를 효율적으로 설계 검증하기 위한 효과적인 방법의 필요성이 더욱 커지고 있다.With the recent rapid development of integrated circuit design and semiconductor process technology, the scale of digital circuit design has grown from at least millions of gates to tens of millions of gates, and its composition has become extremely complicated. As the trend is expanding, more than 100 million gate designs are expected in the near future. However, competition in the market is getting fiercer, and therefore, a good product must be developed in a short time, and there is an increasing need for an effective method for efficiently designing and verifying a circuit designed in an automated manner in a short time.

지금까지는 설계된 디지탈 회로를 설계 검증하기 위하여서 하드웨어 기술언어(Hardware Description Language, 앞으로 이를 HDL로 약칭함)를 이용한 설계 초기에는 소프트웨어적 접근법인 HDL 시뮬레이터들(예로 Verilog 시뮬레이터, VHDL 시뮬레이터, 또는 SystemC 시뮬레이터 등)이 주로 사용되어지고 있다. 이와 같은 시뮬레이터는 설계 검증 대상회로를 소프트웨어적으로 모델링한 순차적인 인스트럭션 시퀀스로 구성된 소프트웨어 코드를 컴퓨터 상에서 순차적으로 수행하여야 함으로 상기 수백만 게이트급 이상의 설계에 대해서는 시뮬레이션 성능의 저하가 설계대상의 크기에 비례하여 발생하는 것이 문제가 되고 있다. 일 예로 시스템온칩(System On a Chip, 앞으로는 이를 SOC로 약 칭함) 설계에서와 같이 1000만 게이트급 이상의 설계를 HDL 시뮬레이터로 시뮬레이션하는 경우에 현존하는제일 빠른 프로세서를 장착한 컴퓨터에서 해당 HDL 시뮬레이터로 설계를 시뮬레이션하는 경우에 시뮬레이션 속도는 레지스터전송수준(Register Transfer Level, 앞으로 이를 RTL로 약칭함)으로 하는 경우에 10 cycles/sec를 넘기기 어려우며, 게이트 수준에서 시뮬레이션을 진행하면 1-2 cycles/sec를 넘기기가 어려운 것이 매우 일반적이다. 그러나 해당 설계를 검증하고자 필요한 시뮬레이션 사이클은 최소 수백만 사이클에서부터 최대 수십억 사이클이 필요함으로 전체 시뮬레이션 시간은 상상을 초월하게 된다. 뿐만 아니라, 최근에는 이와 같은 복잡한 디지털 시스템 설계를 시뮬레이션을 이용하여 검증하는 경우에 모든 설계 오류들을 발견하여 제거할 수 있는 테스트벤치를 작성하는 것에 대한 어려움이 증대하고 있다.In the early stages of design using the Hardware Description Language (hereinafter referred to as HDL) to design-verify the designed digital circuits, HDL simulators (such as Verilog simulators, VHDL simulators, or SystemC simulators) are software approaches. This is mainly used. In such a simulator, software code consisting of a sequential instruction sequence modeling a design verification circuit in software must be sequentially executed on a computer. Therefore, the simulation performance is reduced in proportion to the size of the design target for the design of the millions or more gates. What happens is a problem. For example, when simulating more than 10 million gates with HDL simulator, such as in System On a Chip (hereafter referred to as SOC) design, it is designed as the corresponding HDL simulator on a computer equipped with the existing fastest processor. Simulation speed is difficult to exceed 10 cycles / sec when using the register transfer level (abbreviated as RTL), and 1-2 cycles / sec when performing simulation at the gate level. It is very common that it is difficult. However, the simulation cycles required to verify the design require from millions of cycles to billions of cycles, so the total simulation time is beyond imagination. In addition, in recent years, the difficulty in creating testbenches that can detect and eliminate all design errors when verifying such complex digital system designs using simulation is increasing.

이와 같은 장시간의 검증 시간의 단축과 테스트벤치 작성의 어려움을 해소시키기 위하여 현재 사용되는 기법들은 다음과 같은 것들이 있는데, 첫째는 하드웨어 기반의 검증 시스템(예로 시뮬레이션가속기, 하드웨어 에뮬레이터, 프로토타이핑시스템 등)을 사용하거나, 둘째는 특성검사(property checking) 혹은 모델검사(model checking) 내지는 등가검사(equivalence checking)과 같은 정식검증(formal verification)을 사용하는 것이다. 그러나 하드웨어 기반의 검증 시스템을 사용하는 것은 설계 초기에는 적용이 불가능하고, 합성이나 컴파일 과정이 HDL 시뮬레이티를 사용하는 것보다 오래 걸리며, 사용하기가 HDL 시뮬레이터에 비하여 매우 어렵고, 시스템의 구입 비용과 유지/보수 비용이 매우 클 뿐만 아니라, 무엇보다도 설계자나 검증엔지니어들이 HDL 시뮬레이터에 대한 선호도가 이들 하드웨어 기반의 검증 시스템에 비하여 매우 높고, HDL 시뮬레이터로는 아무 문제 없이 수행이 되는설계 코드들이 하드웨어 기반의 검증 시스템에서는 수행되지 않는 경우가 많아서 이들 하드웨어 기반의 검증 시스템들은 제한적인 상황과 제한적인 사용자들에서만 사용되고 있다. 뿐만 아니라, 이들 하드웨어기반의 검증시스템들은 시뮬레이터와 같은 수준의 제어도(controllability)와 관측도(observability)를 제공하지 못하고 설계검증대상(DUV: Design Under Verification, 이 후로는 DUV로 약칭함)에 존재하는 모든 신호선들을 탐침하게 되면 수행속도가 200% 이상 늘어나는 문제점도 가지고 있다. 또한 정식검증 툴을 이용하는 것은 등가검사이외에 특성검사나 모델검사를 적용하기 위해서는 이를 위한 추가적인 작업을 요구하게 됨으로 설계자들에게 새로운 부담을 주게 될 뿐만 아니라, 이와 같은 정식검증 기법은 검증 대상이 되는 설계의 크기가 커지게 되면 해당 기법이 상태 폭발(state explosion)의 문제로 인하여 컴퓨터 상에서 수행이 불가능해진다는 치명적인 약점이 있다.In order to reduce such a long verification time and solve the difficulty of writing a test bench, the following techniques are used. First, a hardware-based verification system (for example, a simulation accelerator, a hardware emulator, a prototyping system, etc.) is used. Or second, formal verification such as property checking or model checking or equivalence checking. However, using a hardware-based verification system is not applicable early in the design, the synthesis or compilation process takes longer than using HDL simulation, it is much more difficult to use than the HDL simulator, and Not only is the maintenance cost very high, but above all, designers and verification engineers have a higher preference for HDL simulators than these hardware based verification systems. Often not performed in a verification system, these hardware-based verification systems are used only in limited situations and in limited users. In addition, these hardware-based verification systems do not provide the same level of controllability and observability as simulators and are present in Design Under Verification (hereinafter abbreviated as DUV). If all the signal lines are probed, the performance speed is also increased by more than 200%. In addition, using the formal verification tool not only adds an equivalent inspection but also requires additional work to apply the characteristic inspection or model inspection, thereby placing a new burden on the designers. As they grow in size, there is a fatal weakness that the technique cannot be performed on a computer due to the problem of state explosion.

또 다른 문제점으로는 검증을 하기 위하여 설계 코드를 이용한 검증 실행이 일정 검증 사이클 동안(예로 시뮬레이션으로 검증을 수행하는 경우에 0 나노초 시뮬레이션 사이클에서부터 10,000,000 나노초 시뮬레이션 사이클까지) 이루어져야 하는데 이 과정에서 설계 코드의 수행이 설계자가 의도하는 대로 진행되는 가를 확인하는 과정이 반드시 필요하다. 이와 같은 확인 과정에서 필요한 것이 설계 코드에서 존재하는 시그널들이나 변수들에 대한 탐침(probing)인데, 이와 같은 탐침을 통하여 설계에 대한 가시도(visibility)가 확보되는 것이 설계 코드에 존재하는 오류들의 위치를 확인하고 제거하는 것에 반드시 필요하게 된다. 그러나 이와 같은 탐침에서의 문제점으로는 설계 코드에는 매우 많은 수의 시그널들이나 변수들이 존재하게 되는데, 이들 중에서 상기의 일정 검증 사이클 동안에서 설계 코드를 이용한 검증실행이 실제 수행되기 전에 설계 오류의 위치를 알아내고 이를 제거하기 위해서 탐침이 필요한 시그널들이나 변수들을 선정하는 것이 매우 어렵다는 것이다. 현재 사용되는 방법은 시뮬레이션 내지는 시뮬레이션가속 내지는 에뮬레이션 내지는 프로토타이핑 실행 전에 검증 대상에 존재하는 모든 시그널들과 변수들을 탐침대상으로 선정한 후에 상기 시뮬레이션 내지는 시뮬레이션가속 내지는 에뮬레이션 내지는 프로토타이핑을 실행하는 것이 한 방법이다. 그러나, 이와 같이 검증 대상에 존재하는 모든 시그널들과 변수들을 탐침대상으로 하면, 탐침대상을 정하지 않고 상기 시뮬레이션 내지는 시뮬레이션가속 내지는 에뮬레이션 내지는 프로토타이핑을 실행하는 것에 비하여 실행 속도가 최소 2배에서 최대 5배 이상 증가하게 되는 문제점이 있다.Another problem is that to perform verification, the verification run using the design code must occur during a certain verification cycle (for example, from 0 nanosecond simulation cycle to 10,000,000 nanosecond simulation cycle when performing verification by simulation). It is essential to verify that this designer is going as intended. What is needed in this verification process is the probing of signals or variables that exist in the design code. Through such a probe, the visibility of the design ensures the location of the errors in the design code. It is necessary to confirm and remove. However, the problem with these probes is that there are a large number of signals or variables in the design code. Among them, the design error is located before the actual execution of the verification using the design code. It is very difficult to select signals or variables that require a probe to produce and remove. Currently, one method is to select all the signals and variables present in the verification target before the execution of the simulation, the simulation acceleration, the emulation, or the prototyping, and then execute the simulation, the simulation acceleration, the emulation, or the prototyping. However, if all the signals and variables present in the verification target are in the coveted shape, the execution speed is at least 2 to 5 times higher than that of the simulation, the acceleration, the emulation, or the prototyping without specifying the coveted shape. There is a problem that increases over.

또 다른 문제점으로는 수백만 게이트급 이상의 디지털 시스템을 효율적으로 검증하기 위해서는 시뮬레이션, 시뮬레이션가속, 에뮬레이션, 프로토타이핑, 정식검증들 중에서 두 개 이상의 검증기술을 같이 사용한 검증 수행 과정이 요구되는데, 실제 이들 기술들을 같이 사용하는 경우에도 단지 하나의 기술(예로 시뮬레이션)을 사용하여 최대한 설계 오류들을 찾아서 수정한 후에, 또 다른 기술(예로 정식검증)을 사용하여 남아있는 설계 오류들을 찾아서 수정하는 단순한 수준에서 두 개 이상의 검증기술을 같이 사용하는 수준에 머물고 있다.Another challenge is the efficient verification of multi-million-gate or more digital systems, which requires verification using two or more verification techniques from simulation, acceleration, emulation, prototyping, and formal verification. Even when used together, two or more levels can be found in one simple technique (eg simulation) to find and correct as many design errors as possible, and then another technique (eg formal validation) to find and correct remaining design errors. It remains at the level of using verification technology together.

따라서, 본 발명의 목적은 초대규모급 디지털시스템 설계에 대한 검증을 위한 검증의 성능 향상과 효율성을 증대시키는 검증 장치 및 이를 이용한 검증 방법을 제공함에 있다. 구체적으로는 시뮬레이션, 정식검증, 시뮬레이션가속, 하드웨어에뮬레이션, 프로토타이핑 등을 강하게 통합된 환경에서 혼합적으로 사용함으로서 검증의 속도 향상과 더불어 효율성을 증대시키고, 탐침을 위한 가시도를 제공함에 있어서 검증의 성능 저하를 유발시키지 않고, 설계 오류들에 대한 신속한 발견과 디버깅을 가능하게 한다.Accordingly, an object of the present invention is to provide a verification apparatus and a verification method using the same to improve the performance and efficiency of verification for verification of a large scale digital system design. Specifically, the combination of simulation, formal verification, simulation acceleration, hardware emulation, and prototyping in a highly integrated environment increases the speed of verification, increases efficiency, and provides visibility for probes. It enables rapid discovery and debugging of design errors without causing performance degradation.

도1 (a)는 본 발명에 관한 설계 검증 장치의 일 예를 개략적으로 도시한 도면.Figure 1 (a) schematically shows an example of the design verification apparatus according to the present invention.

도1 (b)에서부터 도 1(s)까지는 본 발명에 관한 설계 검증 장치의 또 다른 일레들을 개략적으로 도시한 도면.1 (b) to 1 (s) schematically show still another example of the design verification apparatus according to the present invention.

도2 는, 본 발명에 관한 설계 검증 장치의 일 예에서 1차 검증 실행을 하드웨어에뮬레이터 내지는 시뮬레이션가속기 내지는 프로토타이핑시스템에서 수행하고, 1차 이후의 검증 실행은 1 이상의 시뮬레이터들로 병렬적으로 수행하는 과정을 개략적으로 도시한 도면.FIG. 2 is a diagram illustrating a design verification apparatus according to an embodiment of the present invention, in which a first verification execution is performed in a hardware emulator, a simulation accelerator, or a prototyping system, and a verification operation after the first is performed in parallel by one or more simulators. A schematic drawing of the process.

도3 은, 본 발명에 관한 설계 검증 장치의 일 예에서 1차 검증 실행을 하드웨어에뮬레이터 내지는 시뮬레이션가속기 내지는 프로토타이핑시스템에서 수행하고, 1차 이후의 검증 실행은 1 이상의 모델검사기 내지는 특성검사기들로 병렬적으로 수행하는 과정을 개략적으로 도시한 도면.Fig. 3 shows a first verification execution in a hardware emulator, a simulation accelerator, or a prototyping system in an example of a design verification apparatus according to the present invention, wherein the verification execution after the first step is performed in parallel with one or more model inspectors or property inspectors. Figure schematically showing the process of performing.

도4 는, 본 발명에 관한 설계 검증 장치의 일 예에서 1차 검증 실행을 하드웨어에뮬레이터 내지는 시뮬레이션가속기 내지는 프로토타이핑시스템에서 수행하고, 1차 이후의 검증 실행은 2 이상의 시뮬레이터와 모델검사기 내지는 특성검사기를 같이 사용하여 병렬적으로 수행하는 과정을 개략적으로 도시한 도면.FIG. 4 shows a first verification execution in a hardware emulator, a simulation accelerator, or a prototyping system in an example of a design verification apparatus according to the present invention, and the verification execution after the first is performed by two or more simulators and model inspectors or characteristic inspectors. Schematic diagram showing the process of performing parallel use together.

도5 는, 본 발명에 관한 설계 검증 장치의 일 예에서 1차 검증 실행을 하드웨어에뮬레이터 내지는 시뮬레이션가속기 내지는 프로토타이핑시스템에서 수행하고, 1차 이후의 검증 실행은 하나의 시뮬레이터로 순서적으로 수행하는 과정을 개략적으로 도시한 도면.5 is a process of performing a first verification execution in a hardware emulator, a simulation accelerator, or a prototyping system in an example of a design verification apparatus according to the present invention, and performing the verification operation after the first order by one simulator in sequence. Schematically showing.

도6 은, 본 발명에 관한 설계 검증 장치의 일 예에서 1차 검증 실행을 하드웨어에뮬레이터 내지는 시뮬레이션가속기 내지는 프로토타이핑시스템에서 수행하고, 1차 이후의 검증 실행은 하나의 모델검사기 내지는 특성검사기로 순서적으로 수행하는 과정을 개략적으로 도시한 도면.Fig. 6 shows a first verification execution in a hardware emulator, a simulation accelerator, or a prototyping system in an example of the design verification apparatus according to the present invention, and the verification execution after the first order is performed by one model inspector or characteristic inspector. Figure schematically showing the process of performing.

도7 은, 본 발명에 관한 설계 검증 장치의 일 예에서 1차 검증 실행을 하드웨어에뮬레이터 내지는 시뮬레이션가속기 내지는 프로토타이핑시스템에서 수행하고, 1차 이후의 검증 실행은 2 이상의 FPGA 보드로 병렬적으로 수행하는 과정을 개략적으로 도시한 도면.FIG. 7 illustrates a method of performing a first verification in a hardware emulator, a simulation accelerator, or a prototyping system in an example of a design verification apparatus according to the present invention, and performing verification after the first in parallel with two or more FPGA boards. A schematic drawing of the process.

도8 은 본 발명에서의 검증 장치를 이용하여 설계에 존재하는 1 이상의 설계오류를 발견하여 수정하는 과정을 개략적으로 도시한 순서도 도면.8 is a flow chart schematically illustrating a process of finding and correcting one or more design errors present in a design using the verification device of the present invention.

도9 는 본 발명에서의 검증 장치를 이용하여 설계 검증을 수행하는 과정을 개략적으로 도시한 순서도 도면.9 is a flow chart schematically showing a process of performing design verification using the verification apparatus in the present invention.

<도면의 주요부분에 대한 부호의 설명><Description of the code | symbol about the principal part of drawing>

28 : 프로토타이핑시스템의 시스템소프트웨어 컴퍼넌트28: system software components of the prototyping system

29 : 시뮬레이션가속기의 시스템소프트웨어 컴퍼넌트29: System Software Component of Simulation Accelerator

30 : 하드웨어에뮬레이터의 시스템소프트웨어 컴퍼넌트30: system software component of the hardware emulator

31 : 검증 소프트웨어에서 설계 코드나 합성으로 생성된 게이트수준의 네트리스트에 추가 코드나 추가 회로를 자동적으로 부가하고 검증 준비를 진행하는 소프트웨어모듈31: A software module that automatically adds additional code or additional circuitry to the gate-level netlist generated by design code or synthesis in the verification software and prepares for verification.

32 : 모델검사기 또는 특성 검사기 33 : 시뮬레이터32: model inspector or property inspector 33: simulator

34 : 검증 소프트웨어에서 검증 실행 도중에 1 이상의 컴퓨터간에 파일이나 데이터 전송을 가능하게 하고, 1차 검증 실행을 진행하고 1차 이후의 검증 실행을 위한 준비를 진행하고 1차 이후의 검증 실행을 진행시키는 소프트웨어모듈34: Software that enables the transfer of files or data between one or more computers during the verification run in the verification software, the first verification run, the preparation for the subsequent verification run, and the subsequent verification run. module

35 : 컴퓨터35: computer

36 : 하드웨어에뮬레이터 플랫폼의 하드웨어 컴퍼넌트36: Hardware components of the hardware emulator platform

37 : 시뮬레이션가속기 플랫폼의 하드웨어 컴퍼넌트37: Hardware Components of Simulation Accelerator Platform

38 : 프로토타이핑시스템 플랫폼의 하드웨어 컴퍼넌트38: hardware components of the prototyping system platform

39 : 하드웨어기반의 검증 플랫폼의 시스템소프트웨어 컴퍼넌트39: System software component of hardware-based verification platform

40 : 프로토타이핑시스템의 일종인 임의의 FPGA 보드40: Arbitrary FPGA board, a type of prototyping system

상기 목적들을 달성하기 위하여, 본 발명에 따른 검증 장치는 검증 소프트웨어와, 1 이상의 HDL 시뮬레이터 내지는 1 이상의 정식검증툴이 인스톨된 1이상의 컴퓨터와, 1 이상의 하드웨어에뮬레이터 내지는 1 이상의 시뮬레이션가속기 내지는 1 이상의 프로토타이핑시스템으로 구성된다. 또는 본 발명에 따른 검증 장치는 검증 소프트웨어와, 1 이상의 HDL 시뮬레이터가 인스톨된 1 이상의 컴퓨터와 1 이상의 정식검증툴이 인스톨된 1이상의 컴퓨터와, 1 이상의 하드웨어에뮬레이터 내지는 1이상의 시뮬레이션가속기 내지는 1 이상의 프로토타이핑시스템으로 구성된다. 본 발명의 검증 소프트웨어는 컴퓨터에서 실행되며, 만일 상기 설계 검증 장치에 2이상의 컴퓨터들이 있는 경우에는 이들 2이상의 컴퓨터는 네트워크로 연결되어져서 컴퓨터들 간에 파일들의 이동도 가능하게 한다.In order to achieve the above objects, the verification apparatus according to the present invention comprises at least one computer installed with verification software, at least one HDL simulator or at least one formal verification tool, at least one hardware emulator, at least one simulation accelerator, or at least one prototyping. It consists of a system. Alternatively, the verification apparatus according to the present invention includes verification software, one or more computers with one or more HDL simulators installed, one or more computers with one or more formal verification tools installed, one or more hardware emulators, one or more simulation accelerators, or one or more prototypes. It consists of a system. The verification software of the present invention is executed on a computer, and if there are two or more computers in the design verification apparatus, these two or more computers are connected by a network to enable the movement of files between the computers.

본 발명에서 제안되는 검증 장치와 검증 방법은 설계 코드 자체를 검증하는 함수적 검증(functional verification)에 사용될 수 있을 뿐만 아니라, 설계 코드를 합성한 게이트수준의 네트리스트를 이용한 게이트수준의 검증에서도 사용될 수있고, 또는 배치(placement) 및 배선(routing)이 되고 추출된 타이밍정보를 게이트수준의 네트리스트에 첨부시켜(back-annotated) 수행하는 타이밍 검증에서도 사용될 수 있다. 그러나 앞으로의 설명은 설계 코드 자체를 검증하는 함수적 검증에 대하여 하기로 하며, 게이트수준 검증이나 타이밍 검증에 대해서도 같은 방법을 적용할 수 있음으로 구체적 설명은 생략하기로 한다.The verification apparatus and verification method proposed in the present invention can be used not only for functional verification for verifying the design code itself, but also for gate-level verification using a gate-level netlist by synthesizing the design code. Alternatively, it may be used in timing verification in which placement and routing and extracted timing information are back-annotated to a gate-level netlist. However, in the future, the functional verification for verifying the design code itself will be described. The same method can be applied to the gate level verification or the timing verification, and thus the detailed description will be omitted.

검증 소프트웨어는 HDL(예로 Verilog, VHDL, System Verilog, System C등)을 사용하여 작성된 설계 코드를 읽은 후에 여기에다 추가적인 코드를 부가한다. 부가된 코드는 상기 설계 코드를 검증하기 위한 검증 실행 과정을 시뮬레이션가속 내지는 하드웨어에뮬레이션 내지는 프로토타이핑 내지는 시뮬레이션 내지는 정식검증의 다른 검증 기법들을 1회 이상 혼합하여 수행되는 과정을 자동화된 방식으로 일어날 수 있도록 하는데, 검증 소프트웨어는 이외의 검증 실행을 위한 준비(예로 컴파일, 로딩 등)를 진행하고, 검증 실행도 전체적으로 제어하는 역할을 수행한다. 상기 다른 검증 기법들을 1회 이상 혼합하여 수행되는 과정이란, 다른 검증 기법들을 독립적으로 사용하는 기존의 검증 방법들과는 달리 하나의 검증 기법(예로 시뮬레이션)을 수행하여 얻어진 검증 결과를 다른 검증 기법(예로 하드웨어에뮬레이션)에서 사용하여 검증을 효과적으로 수행되게 하는 것을 말한다. 구체적으로는 검증을 하기 위하여 특정 검증 플래폼(예로 HDL 시뮬레이터) 상에서 설계 코드를 이용한 검증 실행이 일정 검증 사이클 동안(예로 시뮬레이션으로 검증을 수행하는 경우에 0 나노초 시뮬레이션 사이클에서부터 10,000,000 나노초 시뮬레이션 사이클까지) 이루어져야 하는데 이 과정에서 검증 플랫폼(시뮬레이터 내지는 시뮬레이션가속기 내지는 하드웨어에뮬레이터 내지는 프로토타이핑시스템 내지는 정식검증툴와 같이 설계검증을 수행하기 위하여 설계 코드나 해당 RTL/gate-level 네트리스트/함수적등가의 다른 코드를 읽어들여 컴파일하여 실행하는 소프트웨어나 하드웨어 시스템) 상에서 설계 코드의 수행이 설계자가 의도하는 대로 진행되는 가를 확인하는 과정이 반드시 필요하다. 검증 플랫폼이 시뮬레이션가속기 내지는 하드웨어에뮬레이터 내지는 프로토타이핑시스템과 같은 하드웨어기반의 검증 시스템(hardware-assisted verification system)의 경우에는 해당 검증 플랫폼은 하드웨어 컴퍼넌트와 시스템소프트웨어 컴퍼넌트로 구성되어 있다. 이와 같은 확인 과정에서 필요한 것이 설계 코드에서 존재하는 시그널들이나 변수들에 대한 탐침(probing)이다. 이와 같은 탐침을 통하여 설계에 대한 가시도(visibility)가 확보되는 것이 설계 코드에 존재하는 오류들의 위치를 확인하고 제거하는 것에 반드시 필요하게 된다. 그러나 이와 같은 탐침에서의 문제점으로는 설계 코드에는 매우 많은 수의 시그널들이나 변수들이 존재하게 되는데 이들 중에서 상기의 일정 검증 사이클 동안에서 설계 코드를 이용한 검증 실행이 실제 수행되기 전에 설계 오류의 위치를 알아내고 이를 제거하기 위해서 탐침이 필요한 시그널들이나 변수들을 선정하는 것이 매우 어렵다는 것이다. 현재 사용되는 방법은 시뮬레이션 내지는 시뮬레이션가속 내지는 에뮬레이션 내지는 프로토타이핑 실행 전에 검증 대상에 존재하는 모든 시그널들과 변수들을 탐침대상으로 선정한 후에 상기 시뮬레이션 내지는 시뮬레이션가속 내지는 에뮬레이션 내지는 프로토타이핑을 실행하는 것이 한 방법이다. 그러나, 이와 같이 검증 대상에 존재하는 모든 시그널들과 변수들을 탐침대상으로 하면, 탐침대상을 정하지않고 상기 시뮬레이션 내지는 시뮬레이션가속 내지는 에뮬레이션 내지는 프로토타이핑을 실행하는 것에 비하여 실행 속도가 최소 2배에서 최대 5배 이상 증가하게 되는 문제점이 있다.The verification software reads design code written using HDL (eg Verilog, VHDL, System Verilog, System C, etc.) and adds additional code to it. The added code enables an automated method to perform the process of verifying the design code by performing one or more combinations of other verification techniques such as simulation acceleration, hardware emulation, prototyping, simulation, or formal verification. In addition, the verification software prepares for other verification executions (eg, compiling, loading, etc.) and controls overall verification execution. The process performed by mixing the other verification methods more than once means that the verification results obtained by performing one verification method (for example, simulation) are different from other verification methods (for example, hardware), unlike existing verification methods that independently use other verification methods. Emulation). Specifically, to perform verification, a verification run using design code on a specific verification platform (e.g. HDL simulator) must occur during a certain verification cycle (for example, from 0 nanosecond simulation cycle to 10,000,000 nanosecond simulation cycle when performing verification by simulation). In this process, the design code or other RTL / gate-level netlist / function equivalent code is read and compiled to perform the design verification, such as the verification platform (simulator, simulation accelerator, hardware emulator, prototyping system, or formal verification tool). Software or hardware system) to ensure that the execution of the design code proceeds as intended by the designer. In the case of a hardware-assisted verification system, such as a simulation accelerator, a hardware emulator, or a prototyping system, the verification platform is composed of hardware components and system software components. What is needed in this verification process is the probing of signals or variables present in the design code. The visibility of the design through these probes is essential to the identification and removal of errors in the design code. However, the problem with these probes is that there are a large number of signals or variables in the design code. Among them, the design error is located before the actual execution of the verification using the design code. To eliminate this, it is very difficult to select signals or variables that require a probe. Currently, one method is to select all the signals and variables present in the verification target before the execution of the simulation, the simulation acceleration, the emulation, or the prototyping, and then execute the simulation, the simulation acceleration, the emulation, or the prototyping. However, if all the signals and variables present in the verification target are in the coveted bed, the execution speed is at least 2 to 5 times higher than that of the simulation, the acceleration, the emulation, or the prototyping without specifying the coveted bed. There is a problem that increases over.

기존의 설계 검증을 위한 검증 실행이 하나의 검증 플랫폼만을 반복적으로 이용하여 이루어지는 것과는 달리 본 발명에서의 검증 실행은 2 이상의 상이한 검증 플랫폼을 번갈아 이용하여 어루어진다. 이를 위하여 본 발명에서 제안하는 검증장치는 검증 소프트웨어로써 설계 코드에 자동화된 방식을 통하여 부가 코드를 부가하여 특정 검증 플랫폼 상에서 1차 검증 실행을 수행하면서 1차 시뮬레이션 이후에 다른 검증 플랫폼 상에서 수행되는 검증 실행을 특정 검증사이클 구간들이나 설계 코드에 존재하는 특정 블록들에 한정하여 검증 실행들이 이루어질 수 있도록 하는데 필요한 최소한의 정보를 1차 검증 실행 과정에서 자동적으로 수집할 수 있도록 하고, 상기 1차 검증 플랫폼을 이용한 1차 검증 실행을 수행하면서 상기 최소한의 정보를 수집하고, 이 수집된 정보를 이용하여 다른 검증 플랫폼 상에서 1차 이후의 검증 실행을 신속하게 수행하는 것을 가능하게 한다. 1차 이후의 검증 실행을 신속하게 수행하기 위해서, 필요 시에 상기 1차 검증 플랫폼을 이용한 1차 검증 실행을 수행하면서 수집된 정보를 이용하여서 1차 이후의 검증 실행을 1 이상의 검증플랫폼을 이용하여 병렬적으로 수행하거나 혹은 하드웨어기반의 검증 플랫폼(예로 FPGA 보드)을 이용하여 수행하거나 혹은 검증 코드에 존재하는 특정 블록들만을 한정하여 수행함으로서 신속한 검증 실행을 가능하게 한다.Unlike existing verification runs for design verification using only one verification platform repeatedly, the verification runs in the present invention are alternately made using two or more different verification platforms. To this end, the verification apparatus proposed by the present invention is verification software that performs additional verification on a specific verification platform by adding additional code to the design code through an automated method, and then performs verification execution on another verification platform after the first simulation. It is possible to automatically collect the minimum information necessary for the verification executions to be limited to specific verification cycle sections or specific blocks existing in the design code in the first verification execution process. The minimum information is collected while performing the first verification run, and it is possible to use this collected information to quickly perform a post-primary verification run on another verification platform. In order to quickly perform the post-primary verification run, if necessary, the post-primary verification run may be performed using one or more verification platforms using information collected while performing the first verification run using the primary verification platform. This can be done in parallel, using a hardware-based verification platform (such as an FPGA board), or by limiting only certain blocks that exist in the verification code to enable rapid verification.

다음에는 본 발명에서의 검증 장치와 검증 방법들에 대한 구체적인 사례들을예시하면서 설명하기로 한다.Next, specific examples of the verification apparatus and the verification methods according to the present invention will be described with reference to examples.

첫 번째 일례로, 본 발명에서 제안하는 검증 장치는 검증 소프트웨어와 1 이상의 하드웨어에뮬레이터와 1 이상의 컴퓨터와 이 1 이상의 컴퓨터에 인스톨된 1 이상의 시뮬레이터로 구성되고, 상기 1 이상의 하드웨어에뮬레이터와 1 이상의 컴퓨터는 컴퓨터네트워크로 연결되어 있다. 이와 같은 검증 장치에서의 검증 수행은 1차 검증 실행 플랫폼을 하드웨어에뮬레이터로 하고 하드웨어에뮬레이터를 사용하여 1차 검증 실행을 수행하고, 1차 이후의 검증 실행을 1 이상의 시뮬레이터를 사용하여 진행한다. 이와 같은 방법의 장점은 수십억원 이상으로 매우 고가인 하드웨어에뮬레이터의 이용률을 높일 수 있을 뿐만 아니라, 검증의 실행 속도도 높일 수 있다. 우선 하드웨어에뮬레이터의 이용률을 높일 수 있는 것은, 하드웨어에뮬레이터만으로 설계 검증을 수행하는 경우에는 설계 오류를 발견하고 수정하기 위하여 설계 코드에 존재하는 모든 시그널들과 변수들을 탐침대상으로 선정하여 수행하게 된다. 이와 같이 설계 코드에 대하여 100% 가시도를 가질 수 있도록 지정하고 하드웨어에뮬레이션을 진행하게 되면 에뮬레이션의 속도가 그렇지 않는 경우와 비교하여서 대략 2배 이상 또는 그 이상 떨어지게 된다. 따라서 이와 같은 기존의 방법 대신에 본 발명에서의 방법은 1차 검증 실행을 하드웨어에뮬레이터를 사용하여 진행하면서 1차 이후의 검증 실행에 필요한 최소한의 시그널들과 변수들만을 검증 실행 과정에서 탐침하여 탐침에 의한 에뮬레이션의 속도 저하를 최소화시키면서 동시에 1차 검증 실행이 완료되는 즉시에 하드웨어에뮬레이터를 동일 설계에 대한 다른 검증이나 다른 설계의 검증 작업에 사용될 수 있게 함으로서 고가의 하드웨어에뮬레이터의 이용률을 높일 수 있게 한다. 1차 이후의 검증 실행은 1 이상의 시뮬레이터를 사용하여 진행된다. 1차 이후의 검증 실행을 1 이상의 시뮬레이터로 사용하여 시뮬레이션을 통하여 진행하는 경우에서 검증 실행 속도를 높일 수 있는 방법들로는 다음과 같은 방법들을 사용한다. 한가지 사용할 수 있는 방법은 2 이상의 시뮬레이터를 이용하여 2 이상의 시뮬레이션을 병렬적으로 진행하고, 필요시에는 이들 2 이상의 시뮬레이션의 결과를 통합하여 전체 검증 실행의 결과로 이용할 수 있다. 이를 위해서 하드웨어에뮬레이터를 이용하여 1차 검증 실행에서 과정에서 1차 이후의 2 이상의 시뮬레이션 실행을 병렬적으로 수행될 수 있는데 필요한 최소한의 정보를 수집하게 된다. 이와 같은 시뮬레이션 실행을 병렬적으로 수행될 수 있는데 필요한 최소한의 정보에는 두가지가 있을 수 있다. 하나는 1차 검증 실행(에뮬레이션 실행) 전체 과정에서 일정 간격(예로 검증 시간으로 50,000 나노초마다 한번씩)으로나 사용자가 원하는 1 이상의 시점에서 DUV에 존재하는 상태정보를 저장하면서 동시에 DUV에 존재하는 모든 입력과 입출력들에 대하여서 검증 실행 전체 구간에 대하여 탐침을 수행하여 저장하여 얻어지는 정보이다. 여기에서 DUV의 상태정보란 임의의 검증실행 시점에서의 DUV 내에 존재하는 모든 메모리소자(플립플롭이나 래치나 RAM 이나 ROM 그리고 조합궤환루프(combinational feedback)가 있는 논리게이트 등의 기억소자)의 값을 가르킨다. 그리고 SOC와 같은 매우 복잡한 시스템에 대용량의 메모리(예로 SDRAM이나 DDR-RAM)가 존재하는 경우에는 이와 같은 메모리들을 제외한 나머지 설계 대상을 DUV로 선정하는 것도 가능하다. 이와 같은 경우에는 상기 검증 대상에서 제외된 메모리에서 나머지 설계대상으로 인가되는 신호선들도DUV의 입력이나 입출력이 될 것임으로 이와 같은 신호선들로 상기 검증 실행 전체구간에 대하여 탐침을 수행하는 대상으로 선정되어야 한다(이 정보를 시간병렬가능정보라 칭하고, 이를 앞으로 사용함). DUV의 상태정보를 검증 실행 도중의 임의의 시점에서 저장하는 것은 현재 사용 중인 하드웨어에뮬레이터들(예로 Cadence의 Palladium이나 Cobalt, Mentor의 Celaro나 V-Station, Axis의 Extreme-Ⅱ 등) 대부분이 DUV 내부에 존재하는 어떠한 신호선들도 탐침할 수 있음으로 문제없이 가능하다. 또한 DUV의 모든 입력과 입출력들을 검증 실행 전체 구간에 걸쳐서 탐침하여 저장시키는 것은 하드웨어에뮬레이터들에 존재하는 대용량의 메모리를 이용하거나 또는 하드웨어에뮬레이터 플랫폼과 연결되어 같이 사용되는 컴퓨터에 존재하는 주메모리를 이용하거나 주메모리와 하드디스크를 이용할 수 있다. 상태정보를 이용하면 1차 이후의 검증 실행을 반드시 1차 검증 실행의 맨 시작 시점(앞으로는 이를 "0 검증사이클 시간"이라 약하여 칭함)에서부터 시작하지 않아도 되는 매우 중요한 장점이 있다. 또 다른 하나는 1차 검증 실행(에뮬레이션 실행) 전체 과정에서 DUV에 존재하는 2 이상들의 블록들 각각에 존재하는 모든 입력과 입출력들에 대하여서 검증 실행 전체 구간에 대하여 탐침을 수행하여 저장하여 얻어지는 정보이다(이 정보를 공간병렬가능정보라 칭하고, 이를 앞으로 사용함). 또한 DUV에 존재하는 2 이상들의 블록들 각각에 존재하는 모든 입력과 입출력들을 검증 실행 전 구간에 걸쳐서 탐침하여 저장시키는 것은 하드웨어에뮬레이터들에 존재하는 대용량의 메모리를 이용하거나 또는 하드웨어에뮬레이터 플랫폼과 연결되어 같이 사용되는 컴퓨터에 존재하는 주메모리를 이용하거나 주메모리와 하드디스크를 이용할 수 있다.As a first example, the verification device proposed by the present invention comprises verification software, one or more hardware emulators, one or more computers, and one or more simulators installed on the one or more computers, wherein the one or more hardware emulators and one or more computers are computers. It is connected by network. In the verification apparatus, the verification apparatus performs the first verification execution using the hardware emulator, performs the first verification execution using the hardware emulator, and performs the verification verification after the first one or more simulators. The advantage of this method is that it can increase the utilization rate of the very expensive hardware emulator, which is more than billions, and also speed up the verification. First of all, it is possible to increase the utilization rate of the hardware emulator. In the case of performing the design verification using only the hardware emulator, all signals and variables present in the design code are selected as the coveter to detect and correct design errors. By specifying 100% visibility into the design code and proceeding with hardware emulation, the speed of emulation is about two times or more slower than otherwise. Therefore, instead of the conventional method, the method of the present invention performs the first verification by using a hardware emulator and probes only the minimum signals and variables necessary for the verification after the first step in the verification execution process. Minimize the slowdown of emulation and at the same time, enable the hardware emulator to be used for other verification of the same design or verification of another design as soon as the first verification run is completed, thereby increasing the utilization of expensive hardware emulators. The verification run after the first phase is performed using one or more simulators. The following methods are used as methods to speed up the verification execution in the case where the verification execution after the first step is performed through the simulation using one or more simulators. One method can be used to run two or more simulations in parallel using two or more simulators, and, if necessary, integrate the results of these two or more simulations to use as a result of the entire verification run. To do this, the hardware emulator collects the minimum information necessary to execute two or more simulation runs in parallel after the first step in the first verification run. There can be two minimum pieces of information needed to run these simulations in parallel. One is to store all the information present in the DUV at the same time as the first verification run (emulation run) at a certain interval (e.g. once every 50,000 nanoseconds for verification time) or at one or more points of time desired by the user. Information obtained by performing a probe on the entire interval of the verification execution for the input / output and storing the same. Here, the status information of the DUV refers to the values of all memory devices (such as flip-flops, latches, RAMs, ROMs, and logic gates with combinational feedback) present in the DUV at any verification execution time. Point. If a large amount of memory (such as SDRAM or DDR-RAM) is present in a very complex system such as an SOC, it is possible to select the design target as DUV except for such a memory. In this case, the signal lines applied to the remaining design targets in the memory excluded from the verification target will also be input or input / output of the DUV, and thus, these signal lines should be selected as the targets for performing the probe for the entire verification execution region. (This information is referred to as time parallelizable information and will be used later). Storing the state information of the DUV at any point in the verification run is mostly performed by the hardware emulators currently in use (eg Cadence's Palladium or Cobalt, Mentor's Celaro or V-Station, Axis' Extreme-II, etc.). Any signal line that exists can be probed without problems. Also, probing and storing all the inputs and inputs and outputs of the DUV over the entire verification run can be done using the large amount of memory present in the hardware emulators or the main memory present in the computer used in conjunction with the hardware emulator platform. Main memory and hard disk are available. Using the state information has a very important advantage that it is not necessary to start the verification run after the first one from the start of the first verification run (hereinafter referred to as "0 verification cycle time"). The other is information obtained by performing a probe on the entire verification execution interval for all inputs and inputs and outputs present in each of the two or more blocks present in the DUV during the first verification execution (emulation execution). (This information is called spatial parallelism possible information and will be used in the future). In addition, probing and storing all inputs and inputs and outputs in each of the two or more blocks present in the DUV over the entire pre-validation interval can be performed using the large amount of memory present in the hardware emulators or connected to the hardware emulator platform. You can use the main memory in the computer you are using, or you can use the main memory and hard disk.

시간병렬가능정보는 1차 검증 실행 구간 (0,Τ)를 2 이상의 구간들(0,Τ 1), (Τ 1,Τ 2), ...(Τ n-1,Τ)로 나눌 수 있게 하고 이들 구간들을 각각 독립적으로 1차 이후의 시뮬레이션 실행에서 2 이상의 시뮬레이터들 각각에서 병렬적으로 수행되어지는 것을 가능하게 한다. 공간병렬가능정보는 DUV 전체를 2 이상의 블록들Β 1,Β 2, ...Β n으로 나눌 수 있게 하고, 이들 블록들을 각각 독립적으로 1차 이후의 시뮬레이션 실행에서 2 이상의 시뮬레이터를 각각에서 병렬적으로 수행되어지는 것을 가능하게 한다. 또한 1차 에뮬레이션을 통한 검증 실행에서 과정에서 시간병렬가능정보와 공간병렬가능정보를 동시에 수집하여 1차 이후의 시뮬레이션에서 2 이상의 시뮬레이터를 사용하여 (0,Τ 1), (Τ 1,Τ 2), ... (Τ n-1,Τ)와Β 1,Β 2, ...Β n모두에서 병렬적인 수행도 가능하다.The time parallelizable information can be divided into a first verification execution interval (0, Τ ) into two or more intervals (0, Τ 1 ), ( Τ 1 , Τ 2 ), ... ( Τ n-1 , Τ ). Each of these sections can be independently performed in parallel in each of the two or more simulators in the first and subsequent simulation runs. The spatially parallelizable information enables the entire DUV to be divided into two or more blocks Β 1 , Β 2 , ... Β n , and these blocks are each independently parallel to each other in two or more simulators in the post-first simulation run. It is possible to be performed with. In addition, the temporal parallelism and the spatial parallelism information are collected at the same time in the verification execution through the first emulation, and then (0, Τ 1 ), ( Τ 1 , Τ 2 ) using two or more simulators in the first and subsequent simulations. , ... ( Τ n-1 , Τ ) and Β 1 , Β 2 , ... Β n can all be performed in parallel.

두 번째 일례로, 본 발명에서 제안하는 검증 장치는 검증 소프트웨어와 1 이상의 시뮬레이션가속기와 1 이상의 컴퓨터와 이 1 이상의 컴퓨터에 인스톨된 1 이상의 시뮬레이터로 구성되고, 상기 1 이상의 시뮬레이션가속기와 1 이상의 컴퓨터는 컴퓨터네트워크로 연결되어 있다. 이와 같은 검증 장치에서의 검증 수행은 1차 검증 실행 플랫폼을 시뮬레이션가속기로 하여 이를 사용하여 1차 검증 실행을 수행하고, 1차 이후의 검증 실행을 1 이상의 시뮬레이터를 사용하여 진행한다. 이와 같은 방법의 장점은 수억원 이상으로 매우 고가인 시뮬레이션가속기의 이용률을 높일 수 있을 뿐만 아니라, 검증의 실행 속도도 높일 수 있다. 우선 시뮬레이션가속기의 이용률을 높일 수 있는 것은, 시뮬레이션가속기만으로 설계 검증을 수행하는 경우에는 설계 오류를 발견하고 수정하기 위하여 설계 코드에 존재하는 모든 시그널들과 변수들을 탐침대상으로 선정하여 수행하게 된다. 이와 같이 설계 코드에 대하여 100% 가시도를 가질 수 있도록 지정하고 시뮬레이션가속을 진행하게 되면 시뮬레이션가속의 실행 속도가 그렇지 않는 경우와 비교하여서 대략 2배 이상 또는 그 이상 떨어지게 된다. 따라서 이와 같은 기존의 방법 대신에 본 발명에서의 방법은 1차 검증실행을 시뮬레이션가속기를 사용하여 진행하면서 1차 이후의 검증 실행에 필요한 최소한의 시그널들과 변수들만을 검증 실행 과정에서 탐침하여 탐침에 의한 시뮬레이션가속의 실행 속도 저하를 최소화시키면서 동시에 1차 검증 실행이 완료되는 즉시에 시뮬레이션가속기를 동일 설계에 대한 다른 검증이나 다른 설계의 검증 작업에 사용될 수 있게 함으로서 고가의 시뮬레이션가속기의 이용률을 높일 수 있게 한다. 1차 이후의 검증 실행은 1 이상의 시뮬레이터를 사용하여 진행된다. 1차 이후의 검증 실행을 1 이상의 시뮬레이터로 사용하여 시뮬레이션을 통하여 진행하는 경우에서 검증 실행 속도를 높일 수 있는 방법들로는 다음과 같은 방법들을 사용한다.In a second example, the verification device proposed by the present invention comprises verification software, one or more simulation accelerators, one or more computers, and one or more simulators installed on the one or more computers, wherein the one or more simulation accelerators and one or more computers are computers. It is connected by network. In the verification apparatus, the verification verification is performed using the first verification execution platform as a simulation accelerator, and the verification is performed after the first verification using one or more simulators. The advantage of this method is that it can not only increase the utilization rate of simulation accelerator which is very expensive, but more than hundreds of millions of dollars, and also speed up the execution of verification. First of all, it is possible to increase the utilization rate of the simulation accelerator. In the case of performing the design verification with the simulation accelerator only, all signals and variables existing in the design code are selected as a tampon to detect and correct design errors. In this way, if the design code is to have 100% visibility and simulation acceleration is performed, the execution speed of the simulation acceleration is about twice or more than that of the other cases. Therefore, instead of the conventional method, the method of the present invention performs the first verification run using a simulation accelerator, and probes only the minimum signals and variables necessary for the verification run after the first probe in the verification execution process. Simultaneously, it is possible to increase the utilization rate of expensive simulation accelerators by minimizing the reduction in the execution speed of the simulation acceleration and enabling the simulation accelerator to be used for other verification of the same design or verification of another design as soon as the first verification execution is completed. do. The verification run after the first phase is performed using one or more simulators. The following methods are used as methods to speed up the verification execution in the case where the verification execution after the first step is performed through the simulation using one or more simulators.

한가지 사용할 수 있는 방법은 2 이상의 시뮬레이터를 이용하여 2 이상의 시뮬레이션을 병렬적으로 진행하고, 필요시에는 이들 2 이상의 시뮬레이션의 결과를 통합하여 전체 검증 실행의 결과로 이용할 수 있다. 이를 위해서 시뮬레이션가속기를 이용하여 1차 검증 실행에서 과정에서 1차 이후의 2 이상의 시뮬레이션 실행을 병렬적으로 수행될 수 있는데 필요한 최소한의 정보를 수행하게 된다. 이와 같은 시뮬레이션 실행을 병렬적으로 수행될 수 있는데 필요한 최소한의 정보에는 두가지가 있을 수 있다. 하나는 1차 검증 실행(시뮬레이션가속 실행) 전체 과정에서 일정 간격(예로 검증 시간으로 50,000 나노초마다 한번씩)으로나 사용자가 원하는 1 이상의 시점에서 DUV에 존재하는 상태정보를 저장하면서 동시에 DUV에 존재하는 모든 입력과 입출력들에 대하여서 검증 실행 전체 구간에 대하여 탐침을 수행하여 저장하여 얻어지는 시간병렬가능정보이다. SOC과 같은 매우 복잡한 시스템에 대용량의 메모리(예로 SDRAM이나 DDR-RAM)가 존재하는 경우에는 이와 같은 메모리들을 제외한 나머지 설계 대상을 DUV로 선정하는 것도 가능하다. 이와 같은 경우에는 상기 검증 대상에서 제외된 메모리에서 나머지 설계대상으로 인가되는 신호선들도 DUV의 입력이나 입출력이 될 것임으로 이와 같은 신호선들로 상기 검증 실행 전체 구간에 대하여 탐침을 수행하는 대상으로 선정되어야 한다. DUV의 상태정보를 검증 실행도중의 임의의 시점에서 저장하는 것은 현재 사용 중인 시뮬레이션가속기들(예로 Mentor의 NSIM 또는 ARES, Axis의 Excite-Ⅱ, Tharas의 Hammer, Pittsburgh Simulation의 V400 등) 대부분이 DUV 내부에 존재하는 어떠한 신호선들도 탐침할 수 있음으로 문제없이 가능하다. 또한 DUV의 모든 입력과 입출력들을 검증 실행 전체 구간에 걸쳐서 탐침하여 저장시키는 것은 시뮬레이션가속기들에 존재하는 대용량의 메모리를 이용하거나 또는 시뮬레이션가속기 플랫폼과 연결되어 같이 사용되는 컴퓨터에 존재하는 주메모리를 이용하거나 주메모리와 하드디스크를 이용할 수 있다. 또 다른 하나는 1차 검증 실행(시뮬레이션가속 실행) 전체 과정에서 DUV에 존재하는 2 이상들의 블록들 각각에 존재하는 모든 입력과 입출력들에 대하여서 검증 실행 전체 구간에 대하여 탐침을 수행하여 저장하여 얻어지는 공간병렬가능정보이다. DUV에 존재하는 2 이상들의 블록들 각각에 존재하는 모든 입력과 입출력들을 검증 실행 전 구간에 걸쳐서 탐침하여 저장시키는 것은 시뮬레이션가속기들에 존재하는 대용량의 메모리를 이용하거나 또는 시뮬레이션가속기 플랫폼과 연결되어 같이 사용되는 컴퓨터에 존재하는 주메모리를 이용하거나 주메모리와 하드디스크를 이용할 수 있다.One method can be used to run two or more simulations in parallel using two or more simulators, and, if necessary, integrate the results of these two or more simulations to use as a result of the entire verification run. For this purpose, the simulation accelerator is used to perform the minimum information necessary to perform two or more simulation runs in parallel after the first step in the first verification run. There can be two minimum pieces of information needed to run these simulations in parallel. One is that all inputs present in the DUV at the same time, while storing the state information present in the DUV at regular intervals (e.g. once every 50,000 nanoseconds for verification time) or at the time of the user's desired 1st verification run (simulation acceleration run). The time parallelism information obtained by performing a probe on the entire interval of the verification execution with respect to the input / output and the input / output. If there is a large amount of memory (such as SDRAM or DDR-RAM) in a very complex system such as an SOC, it is possible to select the design target as DUV except for such memory. In this case, the signal lines applied to the remaining design targets from the memory excluded from the verification target will also be input or input / output of the DUV, and thus, these signal lines should be selected as a target for performing the probe for the entire section of the verification execution. do. Storing the state information of the DUV at any point in the verification run is mostly performed inside the DUV, such as the NSX or ARES of Mentor, Excite-II of Axis, Hammer of Tharas, V400 of Pittsburgh Simulation, etc. Any signal line present in the probe can be probed without any problem. Also, probing and storing all the inputs and inputs and outputs of the DUV over the entire verification run can be done using the large amount of memory present in the simulation accelerators, or the main memory present in the computer used in conjunction with the simulation accelerator platform. Main memory and hard disk are available. The other is a space obtained by performing a probe for the entire verification execution interval for all inputs and inputs and outputs present in each of the two or more blocks present in the DUV during the first verification execution (simulation acceleration execution). Parallel information. Probing and storing all inputs and inputs and outputs in each of the two or more blocks present in the DUV over the entire period of the verification run utilizes a large amount of memory present in the simulation accelerators or is connected to the simulation accelerator platform. You can use the main memory that exists on your computer, or you can use the main memory and hard disk.

시간병렬가능정보는 1차 검증 실행 구간(0,Τ)를 2 이상의 구간들(0,Τ 1), (Τ 1,Τ 2), ... (Τ n-1,Τ)로 나눌 수 있게 하고 이들 구간들을 각각 독립적으로 1차 이후의 시뮬레이션 실행에서 2 이상의 시뮬레이터들 각각에서 병렬적으로 수행되어지는 것을 가능하게 한다. 공간병렬가능정보는 DUV 전체를 2 이상의 블록들Β 1,Β 2, ...Β n으로 나눌 수 있게 하고, 이들 블록들을 각각 독립적으로 1차 이후의 시뮬레이션 실행에서 2 이상의 시뮬레이터를 각각에서 병렬적으로 수행되어지는 것을 가능하게 한다. 또한 1차 시뮬레이션가속을 통한 검증 실행에서 과정에서 시간병렬가능정보와 공간병렬가능정보를 동시에 수집하여 1차 이후의 시뮬레이션에서 2 이상의 시뮬레이터를 사용하여 (0,Τ 1), (Τ 1,Τ 2), ... (Τ n-1,Τ)와Β 1,Β 2, ...Β n모두에서 병렬적인 수행도 가능하다.The time parallelizable information can be divided into a first verification execution interval (0, Τ ) into two or more intervals (0, Τ 1 ), ( Τ 1 , Τ 2 ), ... ( Τ n-1 , Τ ). Each of these sections can be independently performed in parallel in each of the two or more simulators in the first and subsequent simulation runs. The spatially parallelizable information enables the entire DUV to be divided into two or more blocks Β 1 , Β 2 , ... Β n , and these blocks are each independently parallel to each other in two or more simulators in the post-first simulation run. It is possible to be performed with. In addition, at the time of verification execution through the first simulation acceleration, temporal parallelism information and spatial parallelism information can be collected at the same time, and two or more simulators can be used in the post-first simulation to use (0, Τ 1 ), ( Τ 1 , Τ 2 ), ... ( Τ n-1 , Τ ) and Β 1 , Β 2 , ... Β n can all be performed in parallel.

세 번째 일례로, 본 발명에서 제안하는 검증 장치는 검증 소프트웨어와 1 이상의 프로토타이핑시스템과 1 이상의 컴퓨터와 이 1 이상의 컴퓨터에 인스톨된 1 이상의 시뮬레이터로 구성되고, 상기 1 이상의 프로토타이핑시스템과 1 이상의 컴퓨터는 컴퓨터네트워크로 연결되어 있다. 이와 같은 검증 장치에서의 검증 수행은 1차 검증 실행 플랫폼을 프로토타이핑시스템으로 하여 이를 사용하여 1차 검증 실행을 수행하고, 1차 이후의 검증 실행을 1 이상의 시뮬레이터를 사용하여 진행한다. 이와 같은 방법의 장점은 프로토타이핑시스템의 이용률을 높일 수 있을 뿐만 아니라, 검증의 실행 속도도 높일 수 있다. 우선 프로토타이핑시스템의 이용률을 높일 수 있는 것은, 프로토타이핑시스템만으로 설계 검증을 수행하는 경우에는 설계 오류를 발견하고 수정하기 위하여 설계 코드에 존재하는 모든 시그널들과 변수들을 탐침대상으로 선정하여 수행하게 된다. 이와 같이 설계 코드에 대하여 100% 가시도를 가질 수 있도록 지정하고 시뮬레이션가속을 진행하게 되면 프로토타이핑시스템의 실행 속도가 그렇지 않는 경우와 비교하여서 대략 2배 이상 또는 그 이상 떨어지게 된다(예로 FPGA를 채용한 프로토타이핑시스템의 경우에 Xilinx FPGA의 read-back 기능을 이용한 탐침으로 가시도를 얻고자 하는 경우에는 실행 속도가 100,000배 이상 저하됨). 따라서 이와 같은 기존의 방법 대신에 본 발명에서의 방법은 1차 검증 실행을 프로토타이핑시스템을 사용하여 진행하면서 1차 이후의 검증 실행에 필요한 최소한의 시그널들과 변수들만을 검증 실행 과정에서 탐침하여 탐침에 의한 프로토타이핑 시스템의 실행 속도 저하를 최소화시키면서 동시에 1차 검증 실행이 완료되는 즉시에 프로토타이핑시스템을 동일 설계에 대한 다른 검증이나 다른 설계의 검증 작업에 사용될 수 있게 함으로서 프로토타이핑시스템의 이용률을 높일 수 있게 한다. 1차 이후의 검증 실행은 1 이상의 시뮬레이터를 사용하여 진행된다. 1차 이후의 검증실행을 1 이상의 시뮬레이터로 사용하여 시뮬레이션을 통하여 진행하는 경우에서 검증 실행 속도를 높일 수 있는 방법들로는 다음과 같은 방법들을 사용한다. 한가지 사용할 수 있는 방법은 2 이상의 시뮬레이터를 이용하여 2 이상의 시뮬레이션을 병렬적으로 진행하고, 필요시에는 이들 2 이상의 시뮬레이션의 결과를 통합하여 전체검증 실행의 결과로 이용할 수 있다. 이를 위해서 프로토타이핑시스템을 이용하여 1차 검증 실행에서 과정에서 1차 이후의 2 이상의 시뮬레이션 실행을 병렬적으로 수행될 수 있는데 필요한 최소한의 정보를 수집하게 된다. 이와 같은 시뮬레이션 실행을 병렬적으로 수행될 수 있는데 필요한 최소한의 정보에는 두가지가 있을 수 있다. 하나는 1차 검증 실행(프로토타이핑시스템 실행) 전체 과정에서 일정 간격(예로 검증 시간으로 50,000 나노초마다 한번씩)으로나 사용자가 원하는 1 이상의 시점에서 DUV에 존재하는 상태정보를 저장하면서 동시에 DUV에 존재하는 모든 입력과 입출력들에 대하여서 검증 실행 전체 구간에 대하여 탐침을 수행하여 저장하여 얻어지는 시간병렬가능정보이다. SOC과 같은 매우 복잡한 시스템에 대용량의 메모리(예로 SDRAM이나 DDR-RAM)가 존재하는 경우에는 이와 같은 메모리들을 제외한 나머지 설계 대상을 DUV로 선정하는 것도 가능하다. 이와 같은 경우에는 상기 검증대상에서 제외된 메모리에서 나머지 설계대상으로 인가되는 신호선들도 DUV의 입력이나 입출력이 될 것임으로 이와 같은 신호선들로 상기 검증 실행 전체 구간에 대하여 탐침을 수행하는 대상으로 선정되어야 한다. DUV의 상태정보를 검증 실행도중의 임의의 시점에서 저장하는 것은 현재 사용 중인 프로토타이핑시스템들(예로 Aptix의 System Explorer 또는 Pathfinder IP Validation Station와 같은 상요 프로토타이핑시스템 뿐만 아니라, 설계자나 검증 엔지니어가직접 제작하는 임의의 FPGA 기반의 프로토타이핑보드 등 모두를 프로토타이핑시스템이라 할 수 있다) 대부분이 DUV 내부에 존재하는 어떠한 신호선들도 탐침할 수 있음으로 문제없이 가능하다(예로 FPGA의 read-back 기술을 이용하거나 미국특허 US6,701,491에서 제안된 기술을 사용하면 됨). DUV의 모든 입력과 입출력들을 검증 실행 전체 구간에 걸쳐서 탐침하여 저장시키는 것은 프로토타이핑시스템들에 존재하는 대용량의 메모리를 이용하거나 또는 프로토타이핑시스템의 플랫폼과 연결되어 같이 사용되는 컴퓨터에 존재하는 주메모리를 이용하거나 주메모리와 하드디스크를 이용할 수 있다. 또다른 하나는 1차 검증 실행(프로토타이핑시스템 실행) 전체 과정에서 DUV에 존재하는 2 이상들의 블록들 각각에 존재하는 모든 입력과 입출력들에 대하여서 검증실행 전체 구간에 대하여 탐침을 수행하여 저장하여 얻어지는 공간병렬가능정보이다. DUV에 존재하는 2 이상들의 블록들 각각에 존재하는 모든 입력과 입출력들을 검증 실행 전 구간에 걸쳐서 탐침하여 저장시키는 것은 프로토타이핑시스템들에 존재하는 대용량의 메모리를 이용하거나 또는 프로토타이핑시스템의 플랫폼과 연결되어 같이 사용되는 컴퓨터에 존재하는 주메모리를 이용하거나 주메모리와 하드디스크를 이용할 수 있다.As a third example, the verification device proposed by the present invention comprises verification software, one or more prototyping systems, one or more computers, and one or more simulators installed on the one or more computers, and the one or more prototyping systems and one or more computers. Is connected to a computer network. In the verification device, the verification is performed using the primary verification execution platform as a prototyping system, and the verification is performed using the at least one simulator. The advantage of such a method is that not only can the utilization of the prototyping system be increased, but also the speed of verification can be increased. First of all, it is possible to increase the utilization rate of the prototyping system. In the case of performing the design verification using the prototyping system alone, all signals and variables in the design code are selected on the tamper to detect and correct design errors. . In this way, if the design code is to have 100% visibility and the simulation acceleration is performed, the execution speed of the prototyping system is about twice or more than that of the case where it is not. In the case of a prototyping system, if you want to get visibility with probes using the read-back capability of Xilinx FPGAs, the execution speed will be more than 100,000 times.) Therefore, instead of the conventional method, the method of the present invention uses the prototyping system to perform the first probe and probe only the minimum signals and variables necessary for the first and second verifications in the verification execution process. Increase the utilization of the prototyping system by minimizing the slowing down of the prototyping system, while simultaneously allowing the prototyping system to be used for other verifications of the same design or verification of another design as soon as the first verification run is completed. To be able. The verification run after the first phase is performed using one or more simulators. The following methods are used as methods to speed up the verification execution in the case where the verification execution after the first step is performed through the simulation using one or more simulators. One method can be used to run two or more simulations in parallel using two or more simulators and, if necessary, integrate the results of these two or more simulations into the results of a full verification run. To this end, the prototyping system is used to collect the minimum information necessary to perform two or more simulation runs in parallel after the first step in the first verification run. There can be two minimum pieces of information needed to run these simulations in parallel. One is to execute the first verification run (prototyping system execution) and save all the state information present in the DUV at a certain interval (for example, once every 50,000 nanoseconds for verification time) or at one or more points of time desired by the user. Time parallelism information obtained by performing a probe on the entire verification execution section for input and input and output. If there is a large amount of memory (such as SDRAM or DDR-RAM) in a very complex system such as an SOC, it is possible to select the design target as DUV except for such memory. In this case, the signal lines applied to the remaining design targets from the memory excluded from the verification target will also be input or input / output of the DUV, and thus, these signal lines should be selected as the targets for performing the probe for the entire verification execution section. do. Storing DUV's state information at any point in the verification run is not only built by prototyping systems (such as Aptix's System Explorer or Pathfinder IP Validation Station, but also by designers or verification engineers). Any FPGA-based prototyping board can be called a prototyping system. Most of the time, it is possible to probe any signal line inside the DUV without problems (for example, using the FPGA read-back technology). Or the technique proposed in US Pat. No. 6,701,491). Probe and store all the inputs and inputs and outputs of the DUV over the entire verification run using the large amount of memory present in the prototyping systems or the main memory present in the computer used in conjunction with the platform of the prototyping system. You can use either main memory or hard disk. The other is obtained by performing a probe on the entire verification execution interval for all inputs and inputs and outputs present in each of the two or more blocks present in the DUV during the first verification execution (prototyping system execution). Space parallelizable information. Probing and storing all inputs and inputs and outputs in each of the two or more blocks present in the DUV over the entire verification run utilizes the large amount of memory present in the prototyping systems or connects to the platform of the prototyping system. So, you can use the main memory in the computer that is used together, or use the main memory and hard disk.

시간병렬가능정보는 1차 검증 실행 구간 (0,Τ)를 2 이상의 구간들 (0,Τ 1), (Τ 1,Τ 2), ... (Τ n-1,Τ)로 나눌 수 있게 하고 이들 구간들을 각각 독립적으로 1차 이후의 시뮬레이션 실행에서 2 이상의 시뮬레이터들 각각에서 병렬적으로 수행되어지는 것을 가능하게 한다. 공간병렬가능정보는 DUV 전체를 2 이상의 블록들Β 1,Β 2, ...Β n으로 나눌 수 있게 하고, 이들 블록들을 각각 독립적으로 1차 이후의 시뮬레이션 실행에서 2 이상의 시뮬레이터를 각각에서 병렬적으로 수행되어지는 것을 가능하게 한다. 또한 1차 프로토타이핑시스템 수행을 통한 검증 실행에서 과정에서 시간병렬가능정보와 공간병렬가능정보를 동시에 수집하여 1차 이후의 시뮬레이션에서 2 이상의 시뮬레이터를 사용하여 (0,Τ 1), (Τ 1,Τ 2), ... (Τ n-1,Τ)와Β 1,Β 2, ...Β n모두에서 병렬적인 수행도 가능하다.The temporal parallelism information is such that the first verification execution interval (0, Τ ) can be divided into two or more intervals (0, Τ 1 ), ( Τ 1 , Τ 2 ), ... ( Τ n-1 , Τ ). Each of these sections can be independently performed in parallel in each of the two or more simulators in the first and subsequent simulation runs. The spatially parallelizable information enables the entire DUV to be divided into two or more blocks Β 1 , Β 2 , ... Β n , and these blocks are each independently parallel to each other in two or more simulators in the post-first simulation run. It is possible to be performed with. In addition, at the time of verification execution by performing the first prototyping system, time parallel and spatial parallel information can be collected at the same time, and two or more simulators can be used in the post-first simulation to use (0, Τ 1 ), ( Τ 1 , It is also possible to perform parallel operations on Τ 2 ), ... ( Τ n-1 , Τ ) and Β 1 , Β 2 , ... Β n .

이와 같은 3가지 사례들에서 1차 이후의 시뮬레이션을 2 이상의 시뮬레이터로 병렬적으로 수행하는 것이 유리하지만, 만일 사용가능한 시뮬레이터가 하나인 경우에는 2 이상의 시뮬레이션들을 병렬적으로 수행하는 대신에 순차적으로 수행하는 것도 가능하다. 이와 같은 순차적인 수행 과정에서는 (0,Τ 1), (Τ 1,Τ 2), ... (Τ n-1,Τ)으로 시간병렬가능정보가 구성된 경우에는 검증시간에서 뒤에 있는 (Τ n-1,Τ)부터 (Τ n-1,Τ n-2)... (Τ 1,Τ 2), 그리고 제일 앞에 있는 (0,Τ 1) 등의 순서를 정하여 진행하면서 진행 도중에 설계 오류의 위치와 원인이 밝혀지게 되면 이 이후의 시뮬레이션을 생략하는 것이 가능하다.In these three cases, it is advantageous to perform the first-order simulations in parallel with two or more simulators, but if there is one simulator available, the two or more simulations are performed sequentially instead of in parallel. It is also possible. In this sequential process, if time parallelizable information consists of (0, Τ 1 ), ( Τ 1 , Τ 2 ), ... ( Τ n-1 , Τ ), the ( Τ n -1 , Τ ) through ( Τ n-1 , Τ n-2 ) ... ( Τ 1 , Τ 2 ), and the leading (0, Τ 1 ), and so on. Once the location and cause are known, it is possible to omit subsequent simulations.

네 번째 일례로, 본 발명에서 제안하는 검증 장치는 검증 소프트웨어와 1 이상의 하드웨어에뮬레이터와 1 이상의 컴퓨터와 이 1 이상의 컴퓨터에 인스톨된 1 이상의 정식검증 툴(모델검사기 내지는 특성검사기)로 구성되고, 상기 1 이상의 하드웨어에뮬레이터와 1 이상의 컴퓨터는 컴퓨터네트워크로 연결되어 있다. 이와 같은 검증 장치에서의 검증 수행은 1차 검증 실행 플랫폼을 하드웨어에뮬레이터로 하여 하드웨어에뮬레이터를 사용하여 1차 검증 실행을 수행하고, 1차 이후의 검증 실행을 1 이상의 정식검증 툴을 사용하여 진행한다. 이와 같은 방법의 장점은 수십억원 이상으로 매우 고가인 하드웨어에뮬레이터의 이용률을 높일 수 있을 뿐만 아니라, 검증의 실행 속도도 높일 수 있다. 우선 하드웨어에뮬레이터의 이용률을 높일 수 있는 것은, 하드웨어에뮬레이터만으로 설계 검증을 수행하는 경우에는 설계 오류를 발견하고 수정하기 위하여 설계 코드에 존재하는 모든 시그널들과 변수들을 탐침대상으로 선정하여 수행하게 된다. 이와 같이 설계 코드에 대하여 100% 가시도를 가질 수 있도록 지정하고 하드웨어에뮬레이션을 진행하게 되면 에뮬레이션의 속도가 그렇지 않는 경우와 비교하여서 대략 2배 이상 또는 그 이상 떨어지게 된다. 따라서 이와 같은 기존의 방법 대신에 본 발명에서의 방법은 1차 검증 실행을 하드웨어에뮬레이터를 사용하여 진행하면서 1차 이후의 검증 실행에 필요한 최소한의 시그널들과 변수들만을 검증 실행 과정에서 탐침하여 탐침에 의한 에뮬레이션의 속도 저하를 최소화시키면서 동시에 1차 검증 실행이 완료되는 즉시에 하드웨어에뮬레이터를 동일설계에 대한 다른 검증이나 다른 설계의 검증 작업에 사용될 수 있게 함으로서 고가의 하드웨어에뮬레이터의 이용률을 높일 수 있게 한다. 1차 이후의 검증 실행은 1이상의 정식검증 툴을 사용하여 진행된다. 1차 이후의 검증 실행을 1 이상의 정식검증 툴로 사용하여 모델 검사나 특성 검사 과정을 통하여 진행하는 경우에서 검증 실행 속도를 높일 수 있는 방법들로는 다음과 같은 방법들을 사용한다. 한가지 사용할 수 있는 방법은 2 이상의 정식검증 툴을 이용하여 2 이상의 모델 검사나 특성 검사를 병렬적으로 진행하고, 필요시에는 이들 2 이상의 모델 검사나 특성 검사의 결과를 통합하여 전체 검증 실행의 결과로 이용할 수 있다. 이를 위해서 하드웨어에뮬레이터를 이용하여 1차 검증 실행에서 과정에서 1차 이후의 2 이상의 정식검증의 실행을 병렬적으로 수행될 수 있는데 필요한 최소한의 정보를 수집하게 된다. 이와 같은 시뮬레이션 실행을 병렬적으로 수행될 수 있는데 필요한 최소한의 정보는 DUV에 존재하는 1 이상의 상태정보이다. 이는 1차 검증 실행(에뮬레이션 실행) 전체 과정에서 일정 간격(예로 검증 시간으로 50,000 나노초마다 한번씩)으로나 사용자가 원하는 1 이상의 시점에서 DUV에 존재하는 상태정보를 저장하여 얻어지는 시간병렬가능정보이다.As a fourth example, the verification apparatus proposed by the present invention comprises verification software, at least one hardware emulator, at least one computer, and at least one formal verification tool (model inspector or characteristic inspector) installed in the at least one computer. The hardware emulator and the one or more computers are connected by a computer network. In the verification apparatus, the verification operation is performed using the hardware emulator using the primary verification execution platform as the hardware emulator, and the verification operation after the primary is performed using one or more formal verification tools. The advantage of this method is that it can increase the utilization rate of the very expensive hardware emulator, which is more than billions, and also speed up the verification. First of all, it is possible to increase the utilization rate of the hardware emulator. In the case of performing the design verification using only the hardware emulator, all signals and variables present in the design code are selected as the coveter to detect and correct design errors. By specifying 100% visibility into the design code and proceeding with hardware emulation, the speed of emulation is about two times or more slower than otherwise. Therefore, instead of the conventional method, the method of the present invention performs the first verification by using a hardware emulator and probes only the minimum signals and variables necessary for the verification after the first step in the verification execution process. Minimizing the slowdown of emulation, the hardware emulator can be used for other verifications of the same design or verification of another design as soon as the first verification run is completed, thereby increasing the utilization of expensive hardware emulators. Post-primary verification runs are conducted using one or more formal verification tools. The following methods can be used to speed up the verification execution in the case where the verification execution after the first step is performed through the model inspection or the characteristic inspection process using one or more formal verification tools. One method is to use two or more formal verification tools to perform two or more model checks or feature checks in parallel, and, if necessary, integrate the results of these two or more model checks or feature checks as a result of the entire verification run. It is available. To do this, the hardware emulator collects the minimum information necessary to perform two or more formal verification executions in parallel after the first verification process in the first verification execution. The minimum information required to perform this simulation run in parallel is one or more state information present in the DUV. This is time parallelizable information obtained by storing the state information present in the DUV at a predetermined interval (for example, once every 50,000 nanoseconds for verification time) in the first verification execution (emulation execution), or at one or more times desired by the user.

시간병렬가능정보는 1차 검증 실행 구간 (0,Τ n)를 2 이상의 구간들 (0,Τ 1), (Τ 1,Τ 2), ... (Τ n-1,Τ n)로 나누어서 0,Τ 1,Τ 2, ...Τ n-1,Τ n시점들 각각에서의 상태들 0, 1, 2, ... n-1, n들을 모두 이용하거나 또는 이들 중에서 특정 상태들을 선택적으로 이용하여 모델검사나 특성검사를 2 이상의 정식검증 툴들 각각에 하나씩으로 초기상태로 설정하여 병렬적으로 수행되어지는 것이 가능하다. 뿐만 아니라 DUV가 1, 2, ... n과 같이 1이상의 블록들로 나누어져서 구성되어 있는 경우에 상기 특정 검증시점에서의 DUV의 특정 상태 i를 이들 블록별로 나누어서 Si1, Si2, ... Sin의 1 이상의 블록상태로 재구성하여 이들 각각의 블록상태들로 모델검사나 특성검사를 2 이상의 정식검증 툴들 각각에 하나씩 초기상태로 설정하여 블록별로 병렬적으로 수행되어지는 것도 가능하다.The time parallelizable information is obtained by dividing the first verification execution interval (0, Τ n ) into two or more intervals (0, Τ 1 ), ( Τ 1 , Τ 2 ), ... ( Τ n-1 , Τ n ) Or use all of the states S 0 , S 1 , S 2 , ... S n-1 , S n at each of the time points 0, Τ 1 , Τ 2 , ... Τ n-1 , Τ n It is possible to perform a model test or a characteristic test by using specific states among them, in parallel, by setting the initial state to one of each of two or more formal verification tools. In addition, when the DUV is configured by dividing one or more blocks, such as 1 , 2 , ... n , the specific state S i of the DUV at the specific verification point is divided into these blocks S i1 , S i2 , ... S in which one or more block states of S in are reconfigured, and each of these block states is set to the initial state, one for each of the two or more formal verification tools, and then performed in parallel for each block. It is possible.

다섯 번째 일례로, 본 발명에서 제안하는 검증 장치는 검증 소프트웨어와 1이상의 시뮬레이션가속기와 1 이상의 컴퓨터와 이 1 이상의 컴퓨터에 인스톨된 1이상의 정식검증 툴(모델검사기 내지는 특성검사기)로 구성되고, 상기 1 이상의 시뮬레이션가속기와 1 이상의 컴퓨터는 컴퓨터네트워크로 연결되어 있다. 이와 같은 검증 장치에서의 검증 수행은 1차 검증 실행 플랫폼을 시뮬레이션가속기로 하여 시뮬레이션가속기를 사용하여 1차 검증 실행을 수행하고, 1차 이후의 검증 실행을 1이상의 정식검증 툴을 사용하여 진행한다. 이와 같은 방법의 장점은 수억원 이상으로 매우 고가인 시뮬레이션가속기의 이용률을 높일 수 있을 뿐만 아니라, 검증의 실행 속도도 높일 수 있다. 우선 시뮬레이션가속기의 이용률을 높일 수 있는 것은, 시뮬레이션가속기만으로 설계 검증을 수행하는 경우에는 설계 오류를 발견하고 수정하기 위하여 설계 코드에 존재하는 모든 시그널들과 변수들을 탐침대상으로 선정하여 수행하게 된다. 이와 같이 설계 코드에 대하여 100% 가시도를 가질 수 있도록 지정하고 시뮬레이션가속을 진행하게 되면 시뮬레이션가속의 실행 속도가 그렇지 않는 경우와 비교하여서 대략 2배 이상 또는 그 이상 떨어지게 된다. 따라서 이와 같은 기존의 방법 대신에 본 발명에서의 방법은 1차 검증 실행을 시뮬레이션가속기를 사용하여 진행하면서 1차 이후의 검증 실행에 필요한 최소한의 시그널들과 변수들만을 검증 실행 과정에서 탐침하여 탐침에 의한 시뮬레이션가속의 실행 속도 저하를 최소화시키면서 동시에 1차 검증 실행이 완료되는 즉시에 시뮬레이션가속기를 동일 설계에 대한 다른 검증이나 다른 설계의 검증 작업에 사용될 수 있게 함으로서 고가의 시뮬레이션가속기의 이용률을 높일 수 있게 한다. 1차 이후의 검증 실행은 1 이상의 정식검증 툴을 사용하여 진행된다. 1차 이후의 검증 실행을 1 이상의 정식검증 툴로 사용하여 모델 검사나 특성 검사 과정을 통하여 진행하는 경우에서 검증 실행 속도를 높일 수 있는 방법들로는 다음과 같은 방법들을 사용한다. 한가지 사용할 수 있는 방법은 2 이상의 정식검증 툴을 이용하여 2 이상의 모델 검사나 특성 검사를 병렬적으로 진행하고, 필요시에는 이들 2 이상의 모델 검사나 특성 검사의 결과를 통합하여 전체 검증 실행의 결과로 이용할 수 있다. 이를 위해서 시뮬레이션가속기를 이용하여 1차 검증 실행에서 과정에서 1차 이후의 2 이상의 정식검증의 실행을 병렬적으로 수행될 수 있는데 필요한 최소한의 정보를 수집하게 된다. 이와 같은 시뮬레이션 실행을 병렬적으로 수행될 수 있는데 필요한 최소한의 정보는 DUV에 존재하는 1 이상의 상태정보이다. 이는 1차 검증 실행(시뮬레이션가속 실행) 전체 과정에서 일정 간격(예로 검증 시간으로 50,000 나노초마다 한번씩)으로나 사용자가 원하는 1 이상의 시점에서 DUV에 존재하는 상태정보를 저장하여 얻어지는 시간병렬가능정보이다.As a fifth example, the verification apparatus proposed by the present invention comprises verification software, at least one simulation accelerator, at least one computer, and at least one formal verification tool (model inspector or characteristic inspector) installed in the at least one computer. The simulation accelerator and one or more computers are connected by a computer network. In the verification apparatus as described above, the first verification execution platform is used as the simulation accelerator, and the first verification execution is performed using the simulation accelerator, and the verification execution after the first stage is performed using one or more formal verification tools. The advantage of this method is that it can not only increase the utilization rate of simulation accelerator which is very expensive, but more than hundreds of millions of dollars, and also speed up the execution of verification. First of all, it is possible to increase the utilization rate of the simulation accelerator. In the case of performing the design verification with the simulation accelerator only, all signals and variables existing in the design code are selected as a tampon to detect and correct design errors. In this way, if the design code is to have 100% visibility and simulation acceleration is performed, the execution speed of the simulation acceleration is about twice or more than that of the other cases. Therefore, instead of the conventional method, the method of the present invention performs the first verification run using a simulation accelerator, and probes only the minimum signals and variables necessary for the verification run after the first probe in the verification execution process. Simultaneously, it is possible to increase the utilization rate of expensive simulation accelerators by minimizing the reduction in the execution speed of the simulation acceleration and enabling the simulation accelerator to be used for other verification of the same design or verification of another design as soon as the first verification execution is completed. do. Post-primary verification runs are conducted using one or more formal verification tools. The following methods can be used to speed up the verification execution in the case where the verification execution after the first step is performed through the model inspection or the characteristic inspection process using one or more formal verification tools. One method is to use two or more formal verification tools to perform two or more model checks or feature checks in parallel, and, if necessary, integrate the results of these two or more model checks or feature checks as a result of the entire verification run. It is available. For this purpose, the simulation accelerator is used to collect the minimum information necessary to perform two or more formal verifications in parallel after the first step in the first verification run. The minimum information required to perform this simulation run in parallel is one or more state information present in the DUV. This is time parallelizable information obtained by storing state information present in the DUV at a predetermined interval (for example, once every 50,000 nanoseconds for verification time) or at a time desired by the user during the first verification execution (simulation acceleration execution).

시간병렬가능정보는 1차 검증 실행 구간 (0,Τ n)를 2 이상의 구간들(0,Τ 1), (Τ 1,Τ 2), ... (Τ n-1,Τ n)로 나누어서 0,Τ 1,Τ 2, ...Τ n-1,Τ n시점들 각각에서의 상태들 0, 1, 2, ... n-1, n들을 모두 이용하거나 또는 이들 중에서 특정 상태들을 선택적으로 이용하여 모델검사나 특성검사를 2 이상의 정식검증 툴들 각각에 하나씩으로 초기상태로 설정하여 병렬적으로 수행되어지는 것이가능하다. 뿐만 아니라 DUV가 1, 2, ... n과 같이 1이상의 블록들로 나누어져서 구성되어 있는 경우에 상기 특정 검증시점에서의 DUV의 특정 상태 i를 이들 블록별로 나누어서 i1, i2, ... Sin의 1 이상의 블록상태로 재구성하여 이들 각각의 블록상태들로 모델검사나 특성검사를 2 이상의 정식검증 툴들 각각에 하나씩 초기상태로 설정하여 블록별로 병렬적으로 수행되어지는 것도 가능하다.Time parallelizable information is obtained by dividing the first verification execution interval (0, Τ n ) into two or more intervals (0, Τ 1 ), ( Τ 1 , Τ 2 ), ... ( Τ n-1 , Τ n ) Or use all of the states S 0 , S 1 , S 2 , ... S n-1 , S n at each of the time points 0, Τ 1 , Τ 2 , ... Τ n-1 , Τ n Among them, it is possible to perform the model test or the property test by using specific states selectively, one by each of two or more formal verification tools, and set them to the initial state in parallel. In addition, when the DUV is configured by dividing one or more blocks, such as 1 , 2 , ... n , the specific state S i of the DUV at the specific verification point is divided into these blocks S i1 , S i2 , ... S in which one or more block states of S in are reconfigured, and each of these block states is set to the initial state, one for each of the two or more formal verification tools, and then performed in parallel for each block. It is possible.

여섯 번째 일례로, 본 발명에서 제안하는 검증 장치는 검증 소프트웨어와 1이상의 프로토타이핑시스템과 1 이상의 컴퓨터와 이 1 이상의 컴퓨터에 인스톨된 1이상의 정식검증 툴(모델검사기 내지는 특성검사기)로 구성되고, 상기 1 이상의 프로토타이핑시스템과 1 이상의 컴퓨터는 컴퓨터네트워크로 연결되어 있다. 이와 같은 검증 장치에서의 검증 수행은 1차 검증 실행 플랫폼을 프로토타이핑시스템으로 하여 프로토타이핑시스템을 사용하여 1차 검증 실행을 수행하고, 1차 이후의 검증 실행을 1 이상의 정식검증 툴을 사용하여 진행한다. 이와 같은 방법의 장점은 프로토타이핑시스템의 이용률을 높일 수 있을 뿐만 아니라, 검증의 실행 속도도 높일 수 있다. 우선 프로토타이핑시스템의 이용률을 높일 수 있는 것은, 프로토타이핑시스템만으로 설계 검증을 수행하는 경우에는 설계 오류를 발견하고 수정하기 위하여 설계 코드에 존재하는 모든 시그널들과 변수들을 탐침대상으로 선정하여 수행하게 된다. 이와 같이 설계 코드에 대하여 100% 가시도를 가질 수 있도록 지정하고 프로토타이핑시스템의 수행을 진행하게 되면 프로토타이핑의 실행 속도가 그렇지 않는 경우와 비교하여서 대략 2배 이상 또는 그 이상 떨어지게 된다. 따라서 이와 같은기존의 방법 대신에 본 발명에서의 방법은 1차 검증 실행을 프로토타이핑시스템을 사용하여 진행하면서 1차 이후의 검증 실행에 필요한 최소한의 시그널들과 변수들만을 검증 실행 과정에서 탐침하여 탐침에 의한 프로토타이핑시스템의 실행 속도 저하를 최소화시키면서 동시에 1차 검증 실행이 완료되는 즉시에 프로토타이핑시스템을 동일 설계에 대한 다른 검증이나 다른 설계의 검증 작업에 사용될 수 있게 함으로서 프로토타이핑시스템의 이용률을 높일 수 있게 한다. 1차 이후의 검증 실행은 1이상의 정식검증 툴을 사용하여 진행된다. 1차 이후의 검증 실행을 1 이상의 정식검증 툴로 사용하여 모델 검사나 특성 검사 과정을 통하여 진행하는 경우에서 검증 실행 속도를 높일 수 있는 방법들로는 다음과 같은 방법들을 사용한다. 한가지 사용할 수 있는 방법은 2 이상의 정식검증 툴을 이용하여 2 이상의 모델 검사나 특성검사를 병렬적으로 진행하고, 필요시에는 이들 2 이상의 모델 검사나 특성 검사의 결과를 통합하여 전체 검증 실행의 결과로 이용할 수 있다. 이를 위해서 프로토타이핑시스템을 이용하여 1차 검증 실행에서 과정에서 1차 이후의 2 이상의 정식검증의 실행을 병렬적으로 수행될 수 있는데 필요한 최소한의 정보를 수집하게 된다. 이와 같은 시뮬레이션 실행을 병렬적으로 수행될 수 있는데 필요한 최소한의 정보는 DUV에 존재하는 1 이상의 상태정보이다. 이는 1차 검증 실행(프로토타이핑시스템실행) 전체 과정에서 일정 간격(예로 검증 시간으로 50,000 나노초마다 한번씩)으로나 사용자가 원하는 1 이상의 시점에서 DUV에 존재하는 상태정보를 저장하여 얻어지는 시간병렬가능정보이다.As a sixth example, the verification apparatus proposed by the present invention comprises verification software, one or more prototyping systems, one or more computers, and one or more formal verification tools (model inspector or characteristic inspector) installed in the one or more computers. One or more prototyping systems and one or more computers are connected by a computer network. In the verification apparatus, the first verification execution platform is used as the prototyping system, and the first verification execution is performed by using the prototyping system, and the subsequent verification execution is performed by using one or more formal verification tools. do. The advantage of such a method is that not only can the utilization of the prototyping system be increased, but also the speed of verification can be increased. First of all, it is possible to increase the utilization rate of the prototyping system. In the case of performing the design verification using the prototyping system alone, all signals and variables in the design code are selected on the tamper to detect and correct design errors. . In this way, if the design code is to have 100% visibility and the prototyping system is executed, the execution speed of the prototyping is about 2 times or more compared to the case where it is not. Therefore, instead of such a conventional method, the method of the present invention performs the first verification by using a prototyping system, and probes only the minimum signals and variables necessary for the verification after the first step in the verification execution process. Increase the utilization of the prototyping system by minimizing the performance degradation of the prototyping system and by allowing the prototyping system to be used for other verifications or verification of the same design as soon as the first verification run is completed. To be able. Post-primary verification runs are conducted using one or more formal verification tools. The following methods can be used to speed up the verification execution in the case where the verification execution after the first step is performed through the model inspection or the characteristic inspection process using one or more formal verification tools. One method is to use two or more formal verification tools to perform two or more model checks or feature checks in parallel, and if necessary, integrate the results of these two or more model checks or feature checks as a result of the entire verification run. It is available. To this end, the prototyping system is used to collect the minimum information necessary to perform two or more formal verification runs in parallel after the first verification process. The minimum information required to perform this simulation run in parallel is one or more state information present in the DUV. This is time parallelizable information obtained by storing state information present in the DUV at a predetermined interval (for example, once every 50,000 nanoseconds for verification time) or at a time desired by the user during the first verification execution (prototyping system execution).

시간병렬가능정보는 1차 검증 실행 구간 (0,Τ n)를 2 이상의 구간들(0, 1), (Τ 1,Τ 2), ... (Τ n-1,Τ n)로 나누어서 0,Τ 1,Τ 2, ...Τ n-1,Τ n시점들 각각에서의 상태들 0, 1, 2, ... n-1, n들을 모두 이용하거나 또는 이들 중에서 특정 상태들을 선택적으로 이용하여 모델검사나 특성검사를 2 이상의 정식검증 툴들 각각에 하나씩으로 초기상태로 설정하여 병렬적으로 수행되어지는 것이 가능하다. 뿐만 아니라 DUV가 1, 2, ... n과 같이 1이상의 블록들로 나누어져서 구성되어 있는 경우에 상기 특정 검증시점에서의 DUV의 특정 상태 i를 이들 블록별로 나누어서 i1, i2... in의 1 이상의 블록상태로 재구성하여 이들 각각의 블록상태들로 모델검사나 특성검사를 2 이상의 정식검증 툴들 각각에 하나씩 초기상태로 설정하여 블록별로 병렬적으로 수행되어지는 것도 가능하다.The time parallelizable information is obtained by dividing the first verification execution interval (0, Τ n ) into two or more intervals (0, T 1 ), ( Τ 1 , Τ 2 ), ... ( Τ n-1 , Τ n ) Or use all of the states S 0 , S 1 , S 2 , ... S n-1 , S n at each of the time points 0, Τ 1 , Τ 2 , ... Τ n-1 , Τ n It is possible to perform a model test or a characteristic test by using specific states among them, in parallel, by setting the initial state to one of each of two or more formal verification tools. In addition, when the DUV is configured by dividing one or more blocks, such as 1 , 2 , ... n , the specific state S i of the DUV at the specific verification point is divided into these blocks S i1 , S i2 ... to reconfigure one or more of s in the block state in the model to test or test to the characteristics of each block of the state thereof to the initial state in one of two or more formal verification tools can be respectively to be performed in parallel for each block Do.

이와 같은 또 다른 3가지 사례들에서 1차 이후의 모델검사나 특성검사를 2이상의 정식검증 툴로 병렬적으로 수행하는 것이 유리하지만, 만일 사용가능한 정식검증 툴이 하나인 경우에는 2 이상의 모델검사나 특성검사들을 병렬적으로 수행하는 대신에 순차적으로 수행하는 것도 가능하다. 이와 같은 순차적인 수행 과정에서는 (0,Τ 1), (Τ 1,Τ 2), ... (Τ n-1 Τ)으로 시간병렬가능정보가 구성된 경우에는 검증시간에서 뒤에 있는 (Τ n-1,Τ)부터 (Τ n-1,Τ n-2) ... (Τ 1,Τ 2), 그리고 제일 앞에 있는 (0,Τ 1) 등의 순서를 정하여 진행하면서 진행 도중에 설계 오류의 위치와 원인이 밝혀지게 되면 이 이후의 정식검증 과정을 생략하는 것이 가능하다.In these three other cases, it is advantageous to perform a post-primary model test or feature test in parallel with two or more formal verification tools, but if there is only one formal verification tool available, two or more model tests or features It is also possible to perform the tests sequentially instead of performing the tests in parallel. In this sequential process, if time parallelizable information consists of (0, Τ 1 ), ( Τ 1 , Τ 2 ), ... ( Τ n-1 Τ ), the ( Τ n- 1 , Τ ) through ( Τ n-1 , Τ n-2 ) ... ( Τ 1 , Τ 2 ) and the leading (0, Τ 1 ), etc. It is possible to omit the formal verification process after this and the cause is identified.

일곱 번째 일례로, 본 발명에서 제안하는 검증 장치는 검증 소프트웨어와 1 이상의 하드웨어에뮬레이터와 1 이상의 컴퓨터와 이 1 이상의 컴퓨터에 인스톨된 1 이상의 FPGA 보드로 구성되고, 상기 1 이상의 하드웨어에뮬레이터와 1 이상의 컴퓨터는 컴퓨터네트워크로 연결되어 있다. 이와 같은 검증 장치에서의 검증 수행은 1차 검증 실행 플랫폼을 하드웨어에뮬레이터로 하여 하드웨어에뮬레이터를 사용하여 1차 검증 실행을 수행하고, 1차 이후의 검증 실행을 1 이상의 FPGA 보드를 사용하여 진행한다. 이와 같은 방법의 장점은 수십억원 이상으로 매우 고가인 하드웨어에뮬레이터의 이용률을 높일 수 있을 뿐만 아니라, 검증의 실행 속도도 높일 수 있다. 우선 하드웨어에뮬레이터의 이용률을 높일 수 있는 것은, 하드웨어에뮬레이터만으로 설계 검증을 수행하는 경우에는 설계 오류를 발견하고 수정하기 위하여 설계 코드에 존재하는 모든 시그널들과 변수들을 탐침대상으로 선정하여 수행하게 된다. 이와 같이 설계 코드에 대하여 100% 가시도를 가질 수 있도록 지정하고 하드웨어에뮬레이션을 진행하게 되면 에뮬레이션의 속도가 그렇지 않는 경우와 비교하여서 대략 2배 이상 또는 그 이상 떨어지게 된다. 따라서 이와 같은 기존의 방법 대신에 본 발명에서의 방법은 1차 검증 실행을 하드웨어에뮬레이터를 사용하여 진행하면서 1차이후의 검증 실행에 필요한 최소한의 시그널들과 변수들만을 검증 실행 과정에서 탐침하여 탐침에 의한 에뮬레이션의 속도 저하를 최소화시키면서 동시에 1차 검증 실행이 완료되는 즉시에 하드웨어에뮬레이터를 동일 설계에 대한 다른 검증이나 다른 설계의 검증 작업에 사용될 수 있게 함으로서 고가의 하드웨어에뮬레이터의 이용률을 높일 수 있게 한다. 1차 이후의 검증 실행은 1 이상의 FPGA 보드를 사용하여 진행된다. 1차 이후의 검증 실행을 1 이상의 FPGA 보드를 사용하여 진행하는 경우에서 검증 실행 속도를 높일 수 있는 방법들로는 다음과 같은 방법들을 사용한다. 한가지 사용할 수 있는 방법은 2 이상의 FPGA 보드를 이용하여 2 이상의 검증구간을 병렬적으로 진행하고, 필요시에는 이들 2 이상의 FPGA 보드의 수행 결과를 통합하여 전체 검증 실행의 결과로 이용할 수 있다. 이를 위해서 하드웨어에뮬레이터를 이용하여 1차 검증 실행에서 과정에서 1차 이후의 2 이상의 FPGA 보드의 실행을 병렬적으로 수행될 수 있는데 필요한 최소한의 정보를 수집하게 된다. 이와 같은 FPGA 보드를 이용한 검증의 실행을 병렬적으로 수행될 수 있는데 필요한 최소한의 정보에는 두가지가 있을 수 있다. 하나는 1차 검증 실행(에뮬레이션 실행) 전체 과정에서 일정 간격(예로 검증 시간으로 50,000 나노초마다 한번씩)으로나 사용자가 원하는 1 이상의 시점에서 DUV에 존재하는 상태정보를 저장하면서 동시에 DUV에 존재하는 모든 입력과 입출력들에 대하여서 검증 실행 전체 구간에 대하여 탐침을 수행하여 저장하여 얻어지는 시간병렬가능정보이다. 또 다른 하나는 1차 검증 실행(에뮬레이션 실행) 전체 과정에서 DUV에 존재하는 2 이상들의 블록들 각각에 존재하는 모든 입력과 입출력들에 대하여서 검증 실행 전체 구간에 대하여 탐침을 수행하여 저장하여 얻어지는 공간병렬가능정보이다.As a seventh example, the verification device proposed by the present invention comprises verification software, one or more hardware emulators, one or more computers, and one or more FPGA boards installed on the one or more computers. It is connected by computer network. In the verification apparatus, the verification operation is performed using the hardware emulator using the primary verification execution platform as the hardware emulator, and the verification operation after the first verification is performed using one or more FPGA boards. The advantage of this method is that it can increase the utilization rate of the very expensive hardware emulator, which is more than billions, and also speed up the verification. First of all, it is possible to increase the utilization rate of the hardware emulator. In the case of performing the design verification using only the hardware emulator, all signals and variables present in the design code are selected as the coveter to detect and correct design errors. By specifying 100% visibility into the design code and proceeding with hardware emulation, the speed of emulation is about two times or more slower than otherwise. Therefore, instead of the conventional method, the method of the present invention performs the first verification by using a hardware emulator and probes only the minimum signals and variables necessary for the verification after the first step by the probe. At the same time minimizing the slowdown of the emulation, the hardware emulator can be used for other verification of the same design or verification of another design as soon as the first verification run is completed, thereby increasing the utilization of expensive hardware emulators. Post-primary verification runs are performed using one or more FPGA boards. The following methods can be used to speed up the verification run in the case of performing the post-primary verification using more than one FPGA board. One possible method is to use two or more FPGA boards to run two or more verification intervals in parallel and, if necessary, integrate the results of these two or more FPGA boards as a result of the entire verification run. To do this, the hardware emulator collects the minimum information needed to perform parallel execution of two or more FPGA boards after the first step in the first verification run. There can be two types of minimum information needed to perform verification using these FPGA boards in parallel. One is to store all the information present in the DUV at the same time as the first verification run (emulation run) at a certain interval (e.g. once every 50,000 nanoseconds for verification time) or at one or more points of time desired by the user. Time parallelism information obtained by performing a probe on the entire interval of the verification execution for the input / output and storing the same. The other is the spatial parallelism obtained by performing a probe for the entire verification execution interval for all inputs and inputs and outputs present in each of the two or more blocks present in the DUV during the first verification execution (emulation execution). Possible information.

시간병렬가능정보는 1차 검증 실행 구간 (0,Τ)를 2 이상의 구간들 (0,Τ 1), (Τ 1,Τ 2), ... (Τ n-1 Τ)로 나눌 수 있게 하고 이들 구간들을 각각 독립적으로 1차 이후의 FPGA 보드를 통한 실행에서 2 이상의 FPGA 보드들 각각에서 병렬적으로 수행되어지는 것을 가능하게 한다. 공간병렬가능정보는 DUV 전체를 2 이상의 블록들 1, 2, ... n으로 나눌 수 있게 하고, 이들 블록들을 각각 독립적으로 1차 이후의 검증 실행에서 2 이상의 FPGA 보드들 각각에서 병렬적으로 수행되어지는 것을 가능하게 한다. 또한 1차 에뮬레이션을 통한 검증 실행에서 과정에서 시간병렬가능정보와 공간병렬가능정보를 동시에 수집하여 1차 이후의 검증 실행에서 2 이상의 FPGA 보드를 사용하여 (0,Τ 1), (Τ 1,Τ 2), ... (Τ n-1 Τ)와 1, 2, ... n모두에서 병렬적인 수행도 가능하다.The time parallelizable information allows the first verification execution interval (0, Τ ) to be divided into two or more intervals (0, Τ 1 ), ( Τ 1 , Τ 2 ), ... ( Τ n-1 Τ ) Each of these intervals can be independently performed in parallel on each of two or more FPGA boards in execution through the first and subsequent FPGA boards. The spatially parallelizable information allows the entire DUV to be divided into two or more blocks 1 , 2 , ... n , and these blocks are each independently paralleled on each of the two or more FPGA boards in the post-first verification run. To be performed as In addition, the temporal parallelism and the spatial parallelism information are collected at the same time during the verification run through the first emulation, and two (0, Τ 1 ), ( Τ 1 , Τ 2 ), ... ( Τ n-1 Τ ) and 1 , 2 , ... n are all possible in parallel.

여덟 번째 일례로, 본 발명에서 제안하는 검증 장치는 검증 소프트웨어와 1이상의 시뮬레이션가속기와 1 이상의 컴퓨터와 이 1 이상의 컴퓨터에 인스톨된 1 이상의 FPGA 보드로 구성되고, 상기 1 이상의 시뮬레이션가속기와 1 이상의 컴퓨터는 컴퓨터네트워크로 연결되어 있다. 이와 같은 검증 장치에서의 검증 수행은 1차검증 실행 플랫폼을 시뮬레이션가속기로 하여 시뮬레이션가속기를 사용하여 1차 검증 실행을 수행하고, 1차 이후의 검증 실행을 1 이상의 FPGA 보드를 사용하여 진행한다. 이와 같은 방법의 장점은 수억원 이상으로 매우 고가인 시뮬레이션가속기의 이용률을 높일 수 있을 뿐만 아니라, 검증의 실행 속도도 높일 수 있다. 우선 시뮬레이션가속기의 이용률을 높일 수 있는 것은, 시뮬레이션가속기만으로 설계 검증을 수행하는 경우에는 설계 오류를 발견하고 수정하기 위하여 설계 코드에 존재하는 모든 시그널들과 변수들을 탐침대상으로 선정하여 수행하게 된다. 이와 같이 설계코드에 대하여 100% 가시도를 가질 수 있도록 지정하고 시뮬레이션가속을 진행하게 되면 시뮬레이션가속의 실행 속도가 그렇지 않는 경우와 비교하여서 대략 2배 이상 또는 그 이상 떨어지게 된다. 따라서 이와 같은 기존의 방법 대신에 본 발명에서의 방법은 1차 검증 실행을 시뮬레이션가속기를 사용하여 진행하면서 1차 이후의 검증실행에 필요한 최소한의 시그널들과 변수들만을 검증 실행 과정에서 탐침하여 탐침에 의한 시뮬레이션가속의 실행 속도 저하를 최소화시키면서 동시에 1차 검증 실행이 완료되는 즉시에 시뮬레이션가속기를 동일 설계에 대한 다른 검증이나 다른 설계의 검증 작업에 사용될 수 있게 함으로서 고가의 시뮬레이션가속기의 이용률을 높일 수 있게 한다. 1차 이후의 검증 실행은 1 이상의 FPGA 보드를 사용하여 진행된다. 1차 이후의 검증 실행을 1 이상의 FPGA 보드를 사용하여 진행하는 경우에서 검증 실행 속도를 높일 수 있는 방법들로는 다음과 같은 방법들을 사용한다. 한가지 사용할 수 있는 방법은 2 이상의 FPGA 보드를 이용하여 2 이상의 검증구간을 병렬적으로 진행하고, 필요시에는 이들 2 이상의 FPGA 보드의 수행 결과를 통합하여 전체 검증 실행의 결과로 이용할 수 있다. 이를 위해서 시뮬레이션가속기를 이용하여 1차 검증 실행에서 과정에서 1차 이후의 2 이상의 FPGA 보드의 실행을 병렬적으로 수행될 수 있는데 필요한 최소한의 정보를 수집하게 된다. 이와 같은 FPGA 보드를 이용한 검증의 실행을 병렬적으로 수행될 수 있는데 필요한 최소한의 정보에는 두가지가 있을 수 있다. 하나는 1차 검증 실행(시뮬레이션가속 실행) 전체 과정에서 일정 간격(예로 검증 시간으로 50,000 나노초마다 한번씩)으로나 사용자가 원하는 1 이상의 시점에서 DUV에 존재하는 상태정보를 저장하면서 동시에 DUV에 존재하는 모든 입력과 입출력들에 대하여서 검증 실행 전체 구간에 대하여 탐침을 수행하여 저장하여 얻어지는 시간병렬가능정보이다. 또 다른 하나는 1차 검증 실행(시뮬레이션가속 실행) 전체 과정에서 DUV에 존재하는 2 이상들의 블록들 각각에 존재하는 모든 입력과 입출력들에 대하여서 검증 실행 전체 구간에 대하여 탐침을 수행하여 저장하여 얻어지는 공간병렬가능정보이다.As an eighth example, the verification device proposed by the present invention comprises verification software, one or more simulation accelerators, one or more computers, and one or more FPGA boards installed in the one or more computers. It is connected by computer network. In the verification apparatus, verification is performed using a simulation accelerator using the primary verification execution platform as a simulation accelerator, and the verification after the first phase is performed using one or more FPGA boards. The advantage of this method is that it can not only increase the utilization rate of simulation accelerator which is very expensive, but more than hundreds of millions of dollars, and also speed up the execution of verification. First of all, it is possible to increase the utilization rate of the simulation accelerator. In the case of performing the design verification with the simulation accelerator only, all signals and variables existing in the design code are selected as a tampon to detect and correct design errors. In this way, if the design code is designed to have 100% visibility and the simulation acceleration is performed, the execution speed of the simulation acceleration is about twice or more than that of the case where it is not. Therefore, instead of the conventional method, the method of the present invention performs the first verification run using a simulation accelerator, and probes only the minimum signals and variables necessary for the verification run after the first probe in the verification execution process. Simultaneously, it is possible to increase the utilization rate of expensive simulation accelerators by minimizing the reduction in the execution speed of the simulation acceleration and enabling the simulation accelerator to be used for other verification of the same design or verification of another design as soon as the first verification execution is completed. do. Post-primary verification runs are performed using one or more FPGA boards. The following methods can be used to speed up the verification run in the case of performing the post-primary verification using more than one FPGA board. One possible method is to use two or more FPGA boards to run two or more verification intervals in parallel and, if necessary, integrate the results of these two or more FPGA boards as a result of the entire verification run. To do this, the simulation accelerator is used to collect the minimum amount of information needed to perform parallel execution of two or more FPGA boards after the first step in the first verification run. There can be two types of minimum information needed to perform verification using these FPGA boards in parallel. One is that all inputs present in the DUV at the same time, while storing the state information present in the DUV at regular intervals (e.g. once every 50,000 nanoseconds for verification time) or at the time of the user's desired 1st verification run (simulation acceleration run). The time parallelism information obtained by performing a probe on the entire interval of the verification execution with respect to the input / output and the input / output. The other is a space obtained by performing a probe for the entire verification execution interval for all inputs and inputs and outputs present in each of the two or more blocks present in the DUV during the first verification execution (simulation acceleration execution). Parallel information.

시간병렬가능정보는 1차 검증 실행 구간 (0,Τ)를 2 이상의 구간들 (0,Τ 1), (Τ 1,Τ 2), ... (Τ n-1 Τ)로 나눌 수 있게 하고 이들 구간들을 각각 독립적으로 1차 이후의 FPGA 보드를 통한 실행에서 2 이상의 FPGA 보드들 각각에서 병렬적으로 수행되어지는 것을 가능하게 한다. 공간병렬가능정보는 DUV 전체를 2 이상의 블록들 1, 2, ... n으로 나눌 수 있게 하고, 이들 블록들을 각각 독립적으로 1차 이후의 검증 실행에서 2 이상의 FPGA 보드들 각각에서 병렬적으로 수행되어지는 것을 가능하게 한다. 또한 1차 시뮬레이션가속 실행을 통한 검증 실행의 과정에서 시간병렬가능정보와 공간병렬가능정보를 동시에 수집하여 1차 이후의 검증 실행에서 2 이상의 FPGA 보드를 사용하여 (0,Τ 1), (Τ 1,Τ 2), ... (Τ n-1 Τ)와 1, 2, ... n모두에서 병렬적인 수행도 가능하다.The time parallelizable information allows the first verification execution interval (0, Τ ) to be divided into two or more intervals (0, Τ 1 ), ( Τ 1 , Τ 2 ), ... ( Τ n-1 Τ ) Each of these intervals can be independently performed in parallel on each of two or more FPGA boards in execution through the first and subsequent FPGA boards. The spatially parallelizable information allows the entire DUV to be divided into two or more blocks 1 , 2 , ... n , and these blocks are each independently paralleled on each of the two or more FPGA boards in the post-first verification run. To be performed as In addition, in the process of verifying execution through the 1st simulation acceleration execution, the temporal parallelism information and the spatial parallelism information are simultaneously collected and two or more FPGA boards are used in the post-primary verification execution (0, Τ 1 ), ( Τ 1 , Τ 2 ), ... ( Τ n-1 Τ ) and 1 , 2 , ... n are all possible in parallel.

아홉 번째 일례로, 본 발명에서 제안하는 검증 장치는 검증 소프트웨어와 1이상의 프로토타이핑시스템과 1 이상의 컴퓨터와 이 1 이상의 컴퓨터에 인스톨된 1이상의 FPGA 보드로 구성되고, 상기 1 이상의 프로토타이핑시스템과 1 이상의 컴퓨터는 컴퓨터네트워크로 연결되어 있다. 이와 같은 검증 장치에서의 검증 수행은 1차 검증 실행 플랫폼을 프로토타이핑시스템으로 하여 프로토타이핑시스템을 사용하여 1차 검증 실행을 수행하고, 1차 이후의 검증 실행을 1 이상의 FPGA 보드를 사용하여 진행한다. 이와 같은 방법의 장점은 프로토타이핑시스템의 이용률을 높일 수 있을 뿐만 아니라, 검증의 실행 속도도 높일 수 있다. 우선 프로토타이핑시스템의 이용률을 높일 수 있는 것은, 프로토타이핑시스템만으로 설계 검증을 수행하는 경우에는 설계 오류를 발견하고 수정하기 위하여 설계 코드에 존재하는 모든 시그널들과 변수들을 탐침대상으로 선정하여 수행하게 된다. 이와 같이 설계 코드에 대하여 100% 가시도를 가질 수 있도록 지정하고 프로토타이핑시스템을 실행시키게 되면 프로토타이핑시스템의 실행 속도가 그렇지 않는 경우와 비교하여서 대략 2배 이상 또는 그 이상 떨어지게 된다. 따라서 이와 같은 기존의 방법 대신에 본 발명에서의 방법은 1차 검증 실행을 프로토타이핑시스템을 사용하여 진행하면서 1차 이후의 검증 실행에 필요한 최소한의 시그널들과 변수들만을 검증 실행 과정에서 탐침하여 탐침에 의한 프로토타이핑시스템의 실행 속도 저하를 최소화시키면서 동시에 1차 검증실행이 완료되는 즉시에 프로토타이핑시스템을 동일 설계에 대한 다른 검증이나 다른 설계의 검증 작업에 사용될 수 있게 함으로서 프로토타이핑시스템의 이용률을 높일 수 있게 한다. 1차 이후의 검증 실행은 1 이상의 FPGA 보드를 사용하여 진행된다. 1차 이후의 검증 실행을 1 이상의 FPGA 보드를 사용하여 진행하는 경우에서 검증 실행 속도를 높일 수 있는 방법들로는 다음과 같은 방법들을 사용한다. 한가지 사용할 수 있는 방법은 2 이상의 FPGA 보드를 이용하여 2 이상의 검증구간을 병렬적으로 진행하고, 필요시에는 이들 2 이상의 FPGA 보드의 수행 결과를 통합하여 전체 검증 실행의 결과로 이용할 수 있다. 이를 위해서 프로토타이핑시스템을 이용하여 1차 검증 실행에서 과정에서 1차 이후의 2 이상의 FPGA 보드의 실행을 병렬적으로 수행될 수 있는데 필요한 최소한의 정보를 수집하게 된다. 이와 같은 FPGA 보드를 이용한 검증의 실행을 병렬적으로 수행될 수 있는데 필요한 최소한의 정보에는 두가지가 있을 수 있다. 하나는 1차 검증 실행(프로토타이핑시스템 실행) 전체과정에서 일정 간격(예로 검증 시간으로 50,000 나노초마다 한번씩)으로나 사용자가 원하는 1 이상의 시점에서 DUV에 존재하는 상태정보를 저장하면서 동시에 DUV에 존재하는 모든 입력과 입출력들에 대하여서 검증 실행 전체 구간에 대하여 탐침을 수행하여 저장하여 얻어지는 시간병렬가능정보이다. 또 다른 하나는 1차 검증 실행(프로토타이핑시스템 실행) 전체 과정에서 DUV에 존재하는 2 이상들의 블록들 각각에 존재하는 모든 입력과 입출력들에 대하여서 검증 실행 전체 구간에 대하여 탐침을 수행하여 저장하여 얻어지는 공간병렬가능정보이다.As a ninth example, the verification device proposed by the present invention comprises verification software, one or more prototyping systems, one or more computers, and one or more FPGA boards installed in the one or more computers. Computers are connected by a computer network. To perform verification in such a verification device, the first verification execution platform is used as the prototyping system, and the first verification execution is performed using the prototyping system, and the first and subsequent verification execution is performed using one or more FPGA boards. . The advantage of such a method is that not only can the utilization of the prototyping system be increased, but also the speed of verification can be increased. First of all, it is possible to increase the utilization rate of the prototyping system. In the case of performing the design verification using the prototyping system alone, all signals and variables in the design code are selected on the tamper to detect and correct design errors. . By specifying 100% visibility of the design code and executing the prototyping system, the execution speed of the prototyping system is about 2 times or more slower than the case where it is not. Therefore, instead of the conventional method, the method of the present invention uses the prototyping system to perform the first probe and probe only the minimum signals and variables necessary for the first and second verifications in the verification execution process. Increase the utilization of the prototyping system by minimizing the performance degradation of the prototyping system, and simultaneously allowing the prototyping system to be used for other verifications or verification of the same design as soon as the first verification run is completed. To be able. Post-primary verification runs are performed using one or more FPGA boards. The following methods can be used to speed up the verification run in the case of performing the post-primary verification using more than one FPGA board. One possible method is to use two or more FPGA boards to run two or more verification intervals in parallel and, if necessary, integrate the results of these two or more FPGA boards as a result of the entire verification run. For this purpose, the prototyping system is used to collect the minimum amount of information needed to perform parallel execution of two or more FPGA boards after the first step in the first verification run. There can be two types of minimum information needed to perform verification using these FPGA boards in parallel. One is to execute the first verification run (prototyping system execution) and save all the state information that exists in the DUV at the same time (for example, once every 50,000 nanoseconds for verification time) or at the one or more points of time desired by the user. Time parallelism information obtained by performing a probe on the entire verification execution section for input and input and output. The other is obtained by performing a probe on the entire interval of the verification execution for all the inputs and inputs and outputs present in each of the two or more blocks present in the DUV during the first verification execution (prototyping system execution). Space parallelizable information.

시간병렬가능정보는 1차 검증 실행 구간 (0,Τ)를 2 이상의 구간들 (0,Τ 1), (Τ 1,Τ 2), ... (Τ n-1 Τ)로 나눌 수 있게 하고 이들 구간들을 각각 독립적으로 1차 이후의 FPGA 보드를 통한 실행에서 2 이상의 FPGA 보드들 각각에서 병렬적으로 수행되어지는 것을 가능하게 한다. 공간병렬가능정보는 DUV 전체를 2 이상의 블록들 1, 2, ... n으로 나눌 수 있게 하고, 이들 블록들을 각각 독립적으로 1차 이후의 검증 실행에서 2 이상의 FPGA 보드들 각각에서 병렬적으로 수행되어지는 것을 가능하게 한다. 또한 1차 프로토타이핑시스템의 실행을 통한 검증 실행의과정에서 시간병렬가능정보와 공간병렬가능정보를 동시에 수집하여 1차 이후의 검증 실행에서 2 이상의 FPGA 보드를 사용하여 (0,Τ 1), (Τ 1,Τ 2), ... (Τ n-1 Τ)와 1, 2, ... n모두에서 병렬적인 수행도 가능하다.The time parallelizable information allows the first verification execution interval (0, Τ ) to be divided into two or more intervals (0, Τ 1 ), ( Τ 1 , Τ 2 ), ... ( Τ n-1 Τ ) Each of these intervals can be independently performed in parallel on each of two or more FPGA boards in execution through the first and subsequent FPGA boards. The spatially parallelizable information allows the entire DUV to be divided into two or more blocks 1 , 2 , ... n , and these blocks are each independently paralleled on each of the two or more FPGA boards in the post-first verification run. To be performed as In addition, during the verification run through the execution of the primary prototyping system, the temporal parallelism and the spatial parallelism information are simultaneously collected and two or more FPGA boards are used in the subsequent verification run (0, Τ 1 ), ( It is also possible to perform parallel execution on Τ 1 , Τ 2 ), ... ( Τ n-1 Τ ) and 1 , 2 , ... n .

열 번째 일례로서, 본 발명에서 제안하는 검증 장치는 검증 소프트웨어와 1이상의 시뮬레이터와 1 이상의 컴퓨터와 이 1 이상의 컴퓨터에 인스톨된 1 이상의 FPGA 보드로 구성되고, 상기 1 이상의 시뮬레이터와 1 이상의 컴퓨터는 컴퓨터네트워크로 연결되어 있다. 이와 같은 검증 장치에서의 검증 수행은 1차 검증 실행 플랫폼을 1 이상의 시뮬레이터로 하여 시뮬레이터를 사용하여 1차 검증 실행을 수행하고(2이상의 시뮬레이터를 이용하는 경우에는 분산 시뮬레이션(distributed simulation)을 수행함), 1차 이후의 검증 실행을 1 이상의 FPGA 보드를 사용하여 진행한다. 이와 같은 방법의 장점은 1 이상의 시뮬레이터의 이용률을 높일 수 있을 뿐만 아니라, 검증의 실행 속도도 높일 수 있다. 우선 시뮬레이터의 이용률을 높일 수 있는 것은, 시뮬레이션만으로 설계 검증을 수행하는 경우에는 설계 오류를 발견하고 수정하기 위하여 설계 코드에 존재하는 모든 시그널들과 변수들을 탐침대상으로 선정하여 수행하게 된다. 이와 같이 설계 코드에 대하여 100% 가시도를 가질 수 있도록 지정하고 시뮬레이션을 진행하게 되면 시뮬레이션의 실행 속도가 그렇지 않는 경우와 비교하여서 대략 2배 이상 또는 그 이상 떨어지게 된다. 따라서 이와 같은 기존의 방법 대신에 본 발명에서의 방법은 1차 검증 실행을 시뮬레이션을 사용하여 진행하면서 1차 이후의 검증 실행에 필요한 최소한의 시그널들과 변수들만을검증 실행 과정에서 탐침하여 탐침에 의한 시뮬레이션의 실행 속도 저하를 최소화시키면서 동시에 1차 검증 실행이 완료되는 즉시에 상기 1이상의 시뮬레이션을 동일 설계에 대한 다른 검증이나 다른 설계의 검증 작업에 사용될 수 있게 함으로서 시뮬레이터의 이용률을 높일 수 있게 한다. 1차 이후의 검증 실행은 1 이상의 FPGA 보드를 사용하여 진행된다. 1차 이후의 검증 실행을 1 이상의 FPGA 보드를 사용하여 진행하는 경우에서 검증 실행 속도를 높일 수 있는 방법들로는 다음과 같은 방법들을 사용한다. 한가지 사용할 수 있는 방법은 2 이상의 FPGA 보드를 이용하여 2 이상의 검증구간을 병렬적으로 진행하고, 필요시에는 이들 2 이상의 FPGA 보드의 수행 결과를 통합하여 전체 검증 실행의 결과로 이용할 수 있다. 이를 위해서 시뮬레이터를 이용하여 1차 검증 실행에서 과정에서 1차 이후의 2 이상의 FPGA 보드의 실행을 병렬적으로 수행될 수 있는데 필요한 최소한의 정보를 수집하게 된다. 이와 같은 FPGA 보드를 이용한 검증의 실행을 병렬적으로 수행될 수 있는데 필요한 최소한의 정보에는 두가지가 있을 수 있다. 하나는 1차 검증 실행(시뮬레이션 실행)전체 과정에서 일정 간격(예로 검증 시간으로 50,000 나노초마다 한번씩)으로나 사용자가 원하는 1 이상의 시점에서 DUV에 존재하는 상태정보를 저장하면서 동시에 DUV에 존재하는 모든 입력과 입출력들에 대하여서 검증 실행 전체 구간에 대하여 탐침을 수행하여 저장하여 얻어지는 시간병렬가능정보이다. 또 다른 하나는 1차 검증 실행(시뮬레이션 실행) 전체 과정에서 DUV에 존재하는 2 이상들의 블록들 각각에 존재하는 모든 입력과 입출력들에 대하여서 검증 실행 전체 구간에 대하여 탐침을 수행하여 저장하여 얻어지는 공간병렬가능정보이다.As a tenth example, the verification device proposed by the present invention includes verification software, one or more simulators, one or more computers, and one or more FPGA boards installed in the one or more computers, wherein the one or more simulators and one or more computers are computer networks. Is connected. To perform the verification in such a verification apparatus, the first verification execution is performed by using the simulator using the first verification execution platform as one or more simulators (if the two or more simulators are used, distributed simulation is performed), 1 Subsequent verification runs are performed using one or more FPGA boards. The advantage of such a method is that not only can the utilization rate of one or more simulators be increased, but also the execution speed of the verification can be increased. First of all, in order to increase the utilization of the simulator, when design verification is performed only by simulation, all signals and variables existing in the design code are selected as a probe to detect and correct design errors. In this way, if the design code is designed to have 100% visibility and the simulation is performed, the execution speed of the simulation is approximately twice or more compared to the case where it is not. Therefore, instead of the conventional method, the method of the present invention performs the first verification run by using a simulation by probing only the minimum signals and variables necessary for the verification run after the first probe during the verification execution process. At the same time, it is possible to increase the utilization rate of the simulator by minimizing the degradation of the execution speed of the simulation and at the same time allowing the one or more simulations to be used for another verification of the same design or verification of another design as soon as the first verification execution is completed. Post-primary verification runs are performed using one or more FPGA boards. The following methods can be used to speed up the verification run in the case of performing the post-primary verification using more than one FPGA board. One possible method is to use two or more FPGA boards to run two or more verification intervals in parallel and, if necessary, integrate the results of these two or more FPGA boards as a result of the entire verification run. To do this, the simulator collects the minimum amount of information needed to perform parallel execution of two or more FPGA boards after the first step in the first verification run. There can be two types of minimum information needed to perform verification using these FPGA boards in parallel. One is to run the first verification run (simulation run) and save all the state information present in the DUV at a certain interval (for example, once every 50,000 nanoseconds for verification time) or at one or more points of time desired by the user. Time parallelism information obtained by performing a probe on the entire interval of the verification execution for the input / output and storing the same. The other is a spatial parallel obtained by performing a probe on the entire interval of the verification execution for all inputs and inputs and outputs present in each of the two or more blocks present in the DUV during the first verification execution (simulation execution). Possible information.

시간병렬가능정보는 1차 검증 실행 구간 (0,)를 2 이상의 구간들 (0,Τ 1), (Τ 1,Τ 2), ... (Τ n-1 Τ)로 나눌 수 있게 하고 이들 구간들을 각각 독립적으로 1차 이후의 FPGA 보드를 통한 실행에서 2 이상의 FPGA 보드들 각각에서 병렬적으로 수행되어지는 것을 가능하게 한다. 공간병렬가능정보는 DUV 전체를 2 이상의 블록들 1, 2, ... n으로 나눌 수 있게 하고, 이들 블록들을 각각 독립적으로 1차 이후의 검증 실행에서 2 이상의 FPGA 보드들 각각에서 병렬적으로 수행되어지는 것을 가능하게 한다. 또한 1차 시뮬레이션 실행을 통한 검증 실행의 과정에서 시간병렬가능정보와 공간병렬가능정보를 동시에 수집하여 1차 이후의 검증 실행에서 2이상의 FPGA 보드를 사용하여 (0,Τ 1), (Τ 1,Τ 2), ... (Τ n-1 Τ)와 1, 2, ... n모두에서 병렬적인 수행도 가능하다.The time parallelizable information enables the first verification execution interval (0, T ) to be divided into two or more intervals (0, Τ 1 ), ( Τ 1 , Τ 2 ), ... ( Τ n-1 Τ ) Each of these intervals can be independently performed in parallel on each of two or more FPGA boards in execution through the first and subsequent FPGA boards. The spatially parallelizable information allows the entire DUV to be divided into two or more blocks 1 , 2 , ... n , and these blocks are each independently paralleled on each of the two or more FPGA boards in the post-first verification run. To be performed as In addition, the temporal parallelism and the spatial parallelism information are collected at the same time during the verification run through the first simulation run, and two or more FPGA boards are used in the subsequent verification run (0, Τ 1 ), ( Τ 1 , 수행 2 ), ... ( Τ n-1 Τ ) and 1 , 2 , ... n are all possible in parallel.

1차 이후의 검증 실행을 FPGA 보드를 이용하는 경우에 시간병렬가능정보를 이용하게 되려면 FPGA 보드상의 1 이상의 해당 FPGA에 구현된 DUV 전체 또는 DUV 일부분에 존재하는 모든 플립플롭과 래치 그리고 메모리에 대한 쓰기탐침과 경우에 따라서는 읽기탐침이 필요하다. 이와 같은 FPGA에 구현된 검증대상에 대하여 읽기탐침 내지는 쓰기탐침을 수행하는 방법은 미국특허 USUS6,701,491와 PCT 출원중인 특허(PCT/KR01/01092)에 자세히 나와 있음으로 생략하기로 한다. 또한 미국특허 USUS6,701,491와 PCT 출원중인 특허(PCT/KR01/01092)를 이용하면 FPGA보드에 구현된 DUV에 대해서도 100% 가시도를 갖도록 하는 것도 가능하다.To use time-parallel information when using the FPGA board for post-primary verification runs, write probes to all flip-flops, latches, and memory present in all or part of the DUV implemented in one or more of the FPGAs on the FPGA board. And in some cases read probes. The method of performing the read probe or the write probe on the verification target implemented in the FPGA is described in detail in US Pat. No. 6,701,491 and PCT patent pending (PCT / KR01 / 01092). It is also possible to use the US patent US 6,701,491 and the PCT pending patent (PCT / KR01 / 01092) to have 100% visibility of the DUV implemented on the FPGA board.

위에서 설명한 사례들에서 1차 이후의 시뮬레이션을 2 이상의 FPGA 보드를이용하여 병렬적으로 수행하는 것이 유리하지만, 만일 사용가능한 FPGA 보드가 하나인 경우에는 2 이상의 구간별 혹은 블록별 설계 검증들을 병렬적으로 수행하는 대신에 순차적으로 수행하는 것도 가능하다. 이와 같은 구간별 순차적인 수행 과정에서는 (0,Τ 1), (Τ 1,Τ 2), ... (Τ n-1 Τ)으로 시간병렬가능정보가 구성된 경우에는 검증시간에서 뒤에 있는 ( n-1,)부터 ( n-1, n-2) ... ( 1, 2), 그리고 제일 앞에 있는 (0, 1) 등의 순서를 정하여 진행하면서 진행 도중에 설계 오류의 위치와 원인이 밝혀지게 되면 이 이후의 FPGA 보드를 이용한 설계 검증을 생략하는 것이 가능하다. 뿐만 아니라 1 이상의 FPGA 보드에 장착된 1 이상의 FPGA 보드에서의 로직용량이 DUV의 게이트 용량보다 작은 경우에는 DUV내에 존재하는 블록별이나 DUV를 임의로 분할(partition)하여 생성되는 블럭별로 상기 1 이상의 FPGA에 구현하고 검증 실행을 순차적으로 진행한다.In the examples described above, it is advantageous to perform post-primary simulations in parallel using two or more FPGA boards, but if there is one FPGA board available, two or more section- or block-by-block design verifications in parallel It is also possible to perform sequentially instead of performing. In such a piecewise sequential execution process (0, Τ 1), ( Τ 1, Τ 2), ... when the time information can be configured in parallel to the (n-1 Τ Τ) has on the back at the verification time (T n-1 , T ) through ( T n-1 , T n-2 ) ... ( T 1 , T 2 ) and the leading (0, T 1 ) Once the location and cause of the circuit is known, it is possible to bypass design verification with subsequent FPGA boards. In addition, when the logic capacity of one or more FPGA boards mounted on one or more FPGA boards is smaller than the gate capacity of the DUV, the one or more FPGAs may be applied to each of the blocks or blocks generated by arbitrarily partitioning the DUV. Implement and run verification runs sequentially.

마지막 일례로서, 본 발명에서 제안하는 검증 장치는 검증 소프트웨어와 1 이상의 시뮬레이터와 1 이상의 컴퓨터와 이 1 이상의 컴퓨터에 인스톨된 1 이상의 정식검증 툴(모델검사기 내지는 특성검사기)로 구성되어 있다. 이와 같은 검증 장치에서의 검증 수행은 1차 검증 실행 플랫폼을 1 이상의 시뮬레이터로 하여 시뮬레이터를 사용하여 1차 검증 실행을 수행하고, 1차 이후의 검증 실행을 1 이상의 정식검증 툴을 사용하여 진행한다. 이와 같은 방법의 장점은 시뮬레이터의 이용률을 높일 수 있을 뿐만 아니라, 검증의 실행 속도도 높일 수 있다. 우선 시뮬레이터의 이용률을 높일 수 있는 것은, 시뮬레이션만으로 설계 검증을 수행하는 경우에는 설계 오류를 발견하고 수정하기 위하여 설계 코드에 존재하는 모든 시그널들과 변수들을 탐침대상으로 선정하여 수행하게 된다. 이와 같이 설계 코드에 대하여 100% 가시도를 가질 수 있도록 지정하고 시뮬레이션을 진행하게 되면 시뮬레이션의 실행 속도가 그렇지 않는 경우와 비교하여서 대략 2배 이상 또는 그 이상 떨어지게 된다. 따라서 이와 같은 기존의 방법 대신에 본 발명에서의 방법은 1차 검증 실행을 1 이상의 시뮬레이터를 사용하여 진행하면서 1차 이후의 검증 실행에 필요한 최소한의 시그널들과 변수들만을 검증 실행 과정에서 탐침하여 탐침에 의한 시뮬레이션의 실행 속도 저하를 최소화시키면서 동시에 1차 검증 실행이 완료되는 즉시에 상기 1 이상의 시뮬레이터를 동일 설계에 대한 다른 검증이나 다른 설계의 검증 작업에 사용될 수 있게 함으로서 시뮬레이터의 이용률을 높일 수 있게 한다. 1차 이후의 검증 실행은 1 이상의 정식검증 툴을 사용하여 진행된다. 1차 이후의 검증 실행을 1 이상의 정식검증 툴로 사용하여 모델 검사나 특성 검사 과정을 통하여 진행하는 경우에서 검증 실행 속도를 높일 수 있는 방법들로는 다음과 같은 방법들을 사용한다. 한가지 사용할 수 있는 방법은 2 이상의 정식검증 툴을 이용하여 2 이상의 모델 검사나 특성 검사를 병렬적으로 진행하고, 필요시에는 이들 2 이상의 모델 검사나 특성 검사의 결과를 통합하여 전체 검증 실행의 결과로 이용할 수 있다. 이를 위해서 1 이상의 시뮬레이터를 이용하여 1차 검증 실행에서 과정에서 1차 이후의 2 이상의 정식검증의 실행을 병렬적으로 수행될 수 있는데 필요한 최소한의 정보를 수집하게 된다. 이와 같은 시뮬레이션 실행을 병렬적으로 수행될 수 있는데 필요한 최소한의 정보는 DUV에 존재하는 1 이상의 상태정보이다. 이는 1차 검증 실행(시뮬레이션 실행) 전체 과정에서 일정 간격(예로 검증 시간으로 50,000 나노초마다 한번씩)으로나 사용자가 원하는 1 이상의 시점에서 DUV에 존재하는 상태정보를 저장하여 얻어지는 시간병렬가능정보이다.As a last example, the verification apparatus proposed by the present invention comprises verification software, at least one simulator, at least one computer, and at least one formal verification tool (model inspector or characteristic inspector) installed in the at least one computer. In the verification apparatus, the verification is performed using the simulator using the first verification execution platform as at least one simulator, and the verification after the first is performed using at least one formal verification tool. The advantage of this method is that not only can the utilization of the simulator be increased, but the speed of the verification can be increased. First of all, in order to increase the utilization of the simulator, when design verification is performed only by simulation, all signals and variables existing in the design code are selected as a probe to detect and correct design errors. In this way, if the design code is designed to have 100% visibility and the simulation is performed, the execution speed of the simulation is approximately twice or more compared to the case where it is not. Therefore, instead of the conventional method, the method of the present invention performs the first verification using one or more simulators, and probes only the minimum signals and variables necessary for the verification after the first step in the verification execution process. It is possible to increase the utilization of the simulator by minimizing the execution speed reduction of the simulation by the same time, and at the same time, allowing the one or more simulators to be used for another verification of the same design or verification of another design as soon as the first verification execution is completed. . Post-primary verification runs are conducted using one or more formal verification tools. The following methods can be used to speed up the verification execution in the case where the verification execution after the first step is performed through the model inspection or the characteristic inspection process using one or more formal verification tools. One method is to use two or more formal verification tools to perform two or more model checks or feature checks in parallel, and, if necessary, integrate the results of these two or more model checks or feature checks as a result of the entire verification run. It is available. To this end, at least one simulator is used to collect the minimum information necessary to perform two or more formal verifications in parallel after the first step in the first verification run. The minimum information required to perform this simulation run in parallel is one or more state information present in the DUV. This is time parallelizable information obtained by storing state information present in the DUV at a predetermined interval (for example, once every 50,000 nanoseconds for verification time) or at a time desired by the user during the first verification execution (simulation execution).

시간병렬가능정보는 1차 검증 실행 구간 (0, n)를 2 이상의 구간들 (0,Τ 1), (Τ 1,Τ 2), ... (Τ n-1 Τ n)로 나누어서 0,Τ 1,Τ 2, ...Τ n-1 Τ n시점들 각각에서의 상태들 0, 1, 2, ... n-1, n들을 모두 이용하거나 또는 이들 중에서 특정 상태들을 선택적으로 이용하여 모델검사나 특성검사를 2 이상의 정식검증 툴들 각각에 하나씩으로 초기상태로 설정하여 병렬적으로 수행되어지는 것이 가능하다. 뿐만 아니라 DUV가 1, 2, ... n과 같이 1이상의 블록들로 나누어져서 구성되어 있는 경우에 상기 특정 검증시점에서의 DUV의 특정 상태 i를 이들 블록별로 나누어서 i1, i2, ... in의 1 이상의 블록상태로 재구성하여 이들 각각의 블록상태들로 모델검사나 특성검사를 2 이상의 정식검증 툴들 각각에 하나씩 초기상태로 설정하여 블록별로 병렬적으로 수행되어지는 것도 가능하다.The time parallelizable information is divided by the first verification execution interval (0, T n ) divided by two or more intervals (0, Τ 1 ), ( Τ 1 , Τ 2 ), ... ( Τ n-1 Τ n ). , Τ 1, Τ 2, ... Τ n-1 Τ n time are all using the states s 0, s 1, s 2 , ... s n-1, s n in each or certain among these Using states selectively, it is possible to perform model tests or feature tests in parallel by setting the initial state to one of each of two or more formal verification tools. In addition, when the DUV is configured by dividing one or more blocks, such as 1 , 2 , ... n , the specific state S i of the DUV at the specific verification point is divided into these blocks S i1 , S i2 , ... S in which one or more block states of S in are reconfigured, and each of these block states is set to the initial state, one for each of the two or more formal verification tools, and then performed in parallel for each block. It is possible.

만일 1차 검증 실행이 시뮬레이터를 검증 플랫폼으로 하는 시뮬레이션이라면 시간병렬가능정보에서 필요한 1 이상의 검증사이클의 특정시점에서 상태정보를 얻기 위하여 설계 코드에 추가되는 부가 코드가 직접 상태정보를 추출하는 것도 가능하고(상세한 것은 미국특허 USUS6,701,491와 PCT 출원중인 특허 PCT/KR01/01092를 참조함), HDL 시뮬레이터의 save 명령어를 사용하여 1차적으로는 시뮬레이션상태를우선 저장하고 이로부터 후에 상태정보를 추출하는 것도 가능하고, 또는 HDL 시뮬레이터에 상태정보 저장을 가능하게 하는 명령어가 존재한다면 이를 집적 이용하는 것도 가능하다.If the first verification run is a simulation using the simulator as a verification platform, additional code added to the design code may directly extract the status information to obtain status information at a specific point in time of one or more verification cycles required in the time parallelizable information. (See US Pat. No. 6,701,491 and PCT Patent Application No. PCT / KR01 / 01092, which are pending in PCT for details.) Using the save command of the HDL simulator, saving the simulation state first and extracting the state information later If there is a command to enable the state information storage in the HDL simulator, it is also possible to use it.

상기 목적 외에 본 발명의 다른 목적 및 이점들은 첨부한 도면을 참조한 실시 예에 대한 상세한 설명을 통하여 명백하게 드러나게 될 것이다.Other objects and advantages of the present invention in addition to the above object will be apparent from the detailed description of the embodiments with reference to the accompanying drawings.

도1 (a)는, 컴퓨터에서 운영되는 본 발명의 검증 소프트웨어와 상이한 2 이상의 검증 플랫폼들과 컴퓨터로 구성된 본 발명에 관한 설계 검증 장치의 일 예를 개략적으로 도시한 도면이다.Figure 1 (a) is a diagram schematically showing an example of a design verification apparatus according to the present invention composed of two or more verification platforms and a computer different from the verification software of the present invention running on a computer.

도1 (b), (c) 는, 컴퓨터에서 운영되는 본 발명의 검증 소프트웨어와 상이한 2이상의 검증 플랫폼들과 컴퓨터로 구성된 본 발명에 관한 설계 검증 장치의 또 다른 일 예들을 개략적으로 도시한 도면이다.1 (b) and (c) schematically show still another example of the design verification apparatus according to the present invention, which is composed of two or more verification platforms and computers different from the verification software of the present invention running on a computer. .

도1 (d) 는, 컴퓨터에서 운영되는 본 발명의 검증 소프트웨어와 상이한 2 이상의 검증 플랫폼들과 컴퓨터로 구성된 본 발명에 관한 설계 검증 장치의 또 다른 일 예를 개략적으로 도시한 도면으로, 구체적으로는 1차 검증 실행을 위한 플랫폼을 하드웨어에뮬레이터로 구성하고, 1차 이후의 검증 실행을 위한 플랫폼은 1 이상의 시뮬레이터로 구성한 일 예를 개략적으로 도시한 도면이다.Figure 1 (d) is a view schematically showing another example of a design verification apparatus according to the present invention composed of two or more verification platforms and computer different from the verification software of the present invention running on a computer, specifically The platform for the first verification execution is configured with a hardware emulator, and the platform for the verification execution after the first is a diagram schematically showing an example in which one or more simulators are configured.

도1 (e) 는, 컴퓨터에서 운영되는 본 발명의 검증 소프트웨어와 상이한 2 이상의 검증 플랫폼들과 컴퓨터로 구성된 본 발명에 관한 설계 검증 장치의 또 다른 일 예를 개략적으로 도시한 도면으로, 구체적으로는 1차 검증 실행을 위한 플랫폼을 시뮬레이션가속기로 구성하고, 1차 이후의 검증 실행을 위한 플랫폼은 1 이상의시뮬레이터로 구성한 일 예를 개략적으로 도시한 도면이다.Figure 1 (e) is a diagram schematically showing another example of the design verification apparatus according to the present invention composed of two or more verification platforms and computer different from the verification software of the present invention running on a computer, specifically The platform for the first verification execution is configured as a simulation accelerator, and the platform for the verification execution after the first is a diagram schematically showing an example in which one or more simulators are configured.

도1 (f) 는, 컴퓨터에서 운영되는 본 발명의 검증 소프트웨어와 상이한 2 이상의 검증 플랫폼들과 컴퓨터로 구성된 본 발명에 관한 설계 검증 장치의 또 다른 일 예를 개략적으로 도시한 도면이다.Fig. 1 (f) is a diagram schematically showing another example of a design verification apparatus according to the present invention composed of two or more verification platforms and computers different from the verification software of the present invention running on a computer.

도1 (g) 는, 컴퓨터에서 운영되는 본 발명의 검증 소프트웨어와 상이한 2 이상의 검증 플랫폼들과 컴퓨터로 구성된 본 발명에 관한 설계 검증 장치의 또 다른 일 예를 개략적으로 도시한 도면으로, 구체적으로는 1차 검증 실행을 위한 플랫폼을 시뮬레이션가속기로 구성하고, 1차 이후의 검증 실행을 위한 플랫폼은 1 이상의 모델검사기 내지는 특성검사기로 구성한 일 예를 개략적으로 도시한 도면이다.Figure 1 (g) schematically shows another example of a design verification apparatus according to the present invention composed of two or more verification platforms and computers different from the verification software of the present invention running on a computer, specifically The platform for the first verification execution is configured as a simulation accelerator, and the platform for the verification execution after the first is a diagram schematically showing an example in which one or more model inspectors or characteristic inspectors are configured.

도1 (h) 는, 컴퓨터에서 운영되는 본 발명의 검증 소프트웨어와 상이한 2 이상의 검증 플랫폼들과 컴퓨터로 구성된 본 발명에 관한 설계 검증 장치의 또 다른 일 예를 개략적으로 도시한 도면으로, 구체적으로는 1차 검증 실행을 위한 플랫폼을 하드웨어에뮬레이터로 구성하고, 1차 이후의 검증 실행을 위한 플랫폼은 1 이상의 모델검사기 내지는 특성검사기로 구성한 일 예를 개략적으로 도시한 도면이다.Figure 1 (h) is a diagram schematically showing another example of a design verification apparatus according to the present invention composed of two or more verification platforms and computer different from the verification software of the present invention running on a computer, specifically The platform for the first verification execution is configured with a hardware emulator, and the platform for the verification execution after the first is a diagram schematically showing an example in which one or more model inspectors or characteristic inspectors are configured.

도1 (i) 는, 컴퓨터에서 운영되는 본 발명의 검증 소프트웨어와 상이한 2 이상의 검증 플랫폼들과 컴퓨터로 구성된 본 발명에 관한 설계 검증 장치의 또 다른 일 예를 개략적으로 도시한 도면으로, 구체적으로는 1차 검증 실행을 위한 플랫폼을 프로토타이핑시스템으로 구성하고, 1차 이후의 검증 실행을 위한 플랫폼은 1 이상의 시뮬레이터로 구성한 일 예를 개략적으로 도시한 도면이다.Fig. 1 (i) is a diagram schematically showing another example of a design verification apparatus according to the present invention composed of two or more verification platforms and computers different from the verification software of the present invention running on a computer, specifically, The platform for the first verification run is configured with a prototyping system, and the platform for the verification after the first is a diagram schematically illustrating an example in which one or more simulators are configured.

도1 (j) 는, 컴퓨터에서 운영되는 본 발명의 검증 소프트웨어와 상이한 2 이상의 검증 플랫폼들과 컴퓨터로 구성된 본 발명에 관한 설계 검증 장치의 또 다른 일 예를 개략적으로 도시한 도면으로, 구체적으로는 1차 검증 실행을 위한 플랫폼을 프로토타이핑시스템으로 구성하고, 1차 이후의 검증 실행을 위한 플랫폼은 1 이상의 모델검사기 내지는 특성검사기로 구성한 일 예를 개략적으로 도시한 도면이다.1 (j) is a diagram schematically showing another example of a design verification apparatus according to the present invention composed of two or more verification platforms and computers different from the verification software of the present invention running on a computer, specifically, The platform for the first verification execution is composed of a prototyping system, and the platform for the verification execution after the first is a diagram schematically showing an example in which one or more model inspectors or characteristic inspectors are configured.

도1 (k) 는, 컴퓨터에서 운영되는 본 발명의 검증 소프트웨어와 상이한 2 이상의 검증 플랫폼들과 컴퓨터로 구성된 본 발명에 관한 설계 검증 장치의 또 다른 일 예를 개략적으로 도시한 도면으로, 구체적으로는 1차 검증 실행을 위한 플랫폼을 하드웨어에뮬레이터로 구성하고, 1차 이후의 검증 실행을 위한 플랫폼은 하나의 시뮬레이터로 구성한 일 예를 개략적으로 도시한 도면이다.FIG. 1 (k) is a diagram schematically showing another example of a design verification apparatus according to the present invention composed of two or more verification platforms and computers different from the verification software of the present invention running on a computer, specifically The platform for the first verification execution is configured with a hardware emulator, and the platform for the verification execution after the first is a diagram schematically showing an example in which one simulator is configured.

도1 (1) 은, 컴퓨터에서 운영되는 본 발명의 검증 소프트웨어와 상이한 2 이상의 검증 플랫폼들과 컴퓨터로 구성된 본 발명에 관한 설계 검증 장치의 또 다른 일 예를 개략적으로 도시한 도면으로, 구체적으로는 1차 검증 실행을 위한 플랫폼을 시뮬레이션가속기로 구성하고, 1차 이후의 검증 실행을 위한 플랫폼은 하나의 시뮬레이터로 구성한 일 예를 개략적으로 도시한 도면이다.1 (1) schematically shows another example of the design verification apparatus according to the present invention, which is composed of two or more verification platforms and computers different from the verification software of the present invention running on a computer, specifically The platform for the first verification execution is configured with a simulation accelerator, and the platform for the verification execution after the first is a diagram schematically showing an example in which one simulator is configured.

도1 (m) 은, 컴퓨터에서 운영되는 본 발명의 검증 소프트웨어와 상이한 2 이상의 검증 플랫폼들과 컴퓨터로 구성된 본 발명에 관한 설계 검증 장치의 또 다른 일 예를 개략적으로 도시한 도면으로, 구체적으로는 1차 검증 실행을 위한 플랫폼을 프로토타이핑시스템으로 구성하고, 1차 이후의 검증 실행을 위한 플랫폼은 하나의 시뮬레이터로 구성한 일 예를 개략적으로 도시한 도면이다.Figure 1 (m) is a diagram schematically showing another example of the design verification apparatus according to the present invention composed of two or more verification platforms and computer different from the verification software of the present invention running on a computer, specifically The prototype for the first verification run is configured with a prototyping system, and the platform for the first and subsequent verification runs is a diagram schematically showing an example in which one simulator is configured.

도1 (n) 은, 컴퓨터에서 운영되는 본 발명의 검증 소프트웨어와 상이한 2 이상의 검증 플랫폼들과 컴퓨터로 구성된 본 발명에 관한 설계 검증 장치의 또 다른 일 예를 개략적으로 도시한 도면으로, 구체적으로는 1차 검증 실행을 위한 플랫폼을 하드웨어에뮬레이터로 구성하고, 1차 이후의 검증 실행을 위한 플랫폼은 하나의 모델검사기 내지는 특성검사기로 구성한 일 예를 개략적으로 도시한 도면이다.1 (n) is a diagram schematically showing another example of a design verification apparatus according to the present invention composed of two or more verification platforms and computers different from the verification software of the present invention running on a computer, specifically FIG. 1 is a diagram schematically illustrating an example in which a platform for performing first verification is configured by a hardware emulator, and a platform for performing verification after the first is configured by one model inspector or a feature inspector.

도1 (o) 는, 컴퓨터에서 운영되는 본 발명의 검증 소프트웨어와 상이한 2 이상의 검증 플랫폼들과 컴퓨터로 구성된 본 발명에 관한 설계 검증 장치의 또 다른 일 예를 개략적으로 도시한 도면으로, 구체적으로는 1차 검증 실행을 위한 플랫폼을 시뮬레이션가속기로 구성하고, 1차 이후의 검증 실행을 위한 플랫폼은 하나의 모델검사기 내지는 특성검사기로 구성한 일 예를 개략적으로 도시한 도면이다.Fig. 1 (o) schematically shows another example of the design verification apparatus according to the present invention, which is composed of two or more verification platforms and computers different from the verification software of the present invention running on a computer, specifically, The platform for the first verification execution is configured as a simulation accelerator, and the platform for the verification execution after the first is a diagram schematically showing an example in which one model inspector or a characteristic inspector is configured.

도1 (p) 는, 컴퓨터에서 운영되는 본 발명의 검증 소프트웨어와 상이한 2 이상의 검증 플랫폼들과 컴퓨터로 구성된 본 발명에 관한 설계 검증 장치의 또 다른 일 예를 개략적으로 도시한 도면으로, 구체적으로는 1차 검증 실행을 위한 플랫폼을 프로토타이핑시스템으로 구성하고, 1차 이후의 검증 실행을 위한 플랫폼은 하나의 모델검사기 내지는 특성검사기로 구성한 일 예를 개략적으로 도시한 도면이다.Fig. 1 (p) schematically illustrates another example of a design verification apparatus according to the present invention, which is composed of two or more verification platforms and computers different from the verification software of the present invention running on a computer, specifically, The prototype for the first verification run is configured as a prototyping system, and the platform for the first and subsequent verification runs is a diagram schematically illustrating an example in which a model inspector or a property inspector is configured.

도1 (q) 는, 컴퓨터에서 운영되는 본 발명의 검증 소프트웨어와 상이한 2 이상의 검증 플랫폼들과 컴퓨터로 구성된 본 발명에 관한 설계 검증 장치의 또 다른 일 예를 개략적으로 도시한 도면으로, 구체적으로는 1차 검증 실행을 위한 플랫폼을 하드웨어에뮬레이터 내지는 시뮬레이션가속기 내지는 프로토타이핑시스템으로 구성하고, 1차 이후의 검증 실행을 위한 플랫폼은 1 이상의 FPGA 보드로 구성한 일예를 개략적으로 도시한 도면이다.Figure 1 (q) is a diagram schematically showing another example of the design verification apparatus according to the present invention composed of two or more verification platforms and computer different from the verification software of the present invention running on a computer, specifically The platform for performing the first verification is composed of a hardware emulator, a simulation accelerator, or a prototyping system, and the platform for the verification after the first is schematically illustrated as an example of configuring one or more FPGA boards.

도1 (r) 은, 컴퓨터에서 운영되는 본 발명의 검증 소프트웨어와 상이한 2 이상의 검증 플랫폼들과 컴퓨터로 구성된 본 발명에 관한 설계 검증 장치의 또 다른 일 예를 개략적으로 도시한 도면으로, 구체적으로는 1차 검증 실행을 위한 플랫폼을 1 이상의 시뮬레이터로 구성하고, 1차 이후의 검증 실행을 위한 플랫폼은 FPGA 보드로 구성한 일 예를 개략적으로 도시한 도면이다.Figure 1 (r) is a diagram schematically showing another example of the design verification apparatus according to the present invention composed of two or more verification platforms and computer different from the verification software of the present invention running on a computer, specifically The platform for the first verification execution is configured with one or more simulators, and the platform for the verification after the first is a schematic diagram of an example in which an FPGA board is configured.

도1 (s) 는, 컴퓨터에서 운영되는 본 발명의 검증 소프트웨어와 상이한 2 이상의 검증 플랫폼들과 컴퓨터로 구성된 본 발명에 관한 설계 검증 장치의 또 다른 일 예를 개략적으로 도시한 도면으로, 구체적으로는 1차 검증 실행을 위한 플랫폼을 1 이상의 모델검사기 내지는 특성검사기로 구성하고, 1차 이후의 검증 실행을 위한 플랫폼은 FPGA 보드로 구성한 일 예를 개략적으로 도시한 도면이다.Figure 1 (s) is a diagram schematically showing another example of a design verification apparatus according to the present invention composed of two or more verification platforms and computer different from the verification software of the present invention running on a computer, specifically The platform for performing the first verification is composed of one or more model inspectors or characteristic inspectors, and the platform for performing verification after the first is an example of an FPGA board.

도2 는, 컴퓨터에서 운영되는 본 발명의 검증 소프트웨어와 상이한 2 이상의 검증 플랫폼들과 컴퓨터로 구성된 본 발명에 관한 설계 검증 장치의 일 예에서 1차 검증 실행을 하드웨어에뮬레이터 내지는 시뮬레이션가속기 내지는 프로토타이핑시스템에서 수행하고, 1차 이후의 검증 실행은 2 이상의 시뮬레이터들로 병렬적으로 수행하는 과정을 개략적으로 도시한 도면이다.FIG. 2 is a diagram illustrating a design verification apparatus according to the present invention composed of two or more verification platforms and computers different from the verification software of the present invention running on a computer, in a hardware emulator, a simulation accelerator, or a prototyping system. The first and subsequent verification runs are schematically illustrated in a process performed in parallel by two or more simulators.

도3 은, 컴퓨터에서 운영되는 본 발명의 검증 소프트웨어와 상이한 2 이상의 검증 플랫폼들과 컴퓨터로 구성된 본 발명에 관한 설계 검증 장치의 일 예에서 1차검증 실행을 하드웨어에뮬레이터 내지는 시뮬레이션가속기 내지는 프로토타이핑시스템에서 수행하고, 1차 이후의 검증 실행은 2 이상의 모델검사기 내지는 특성검사기들로 병렬적으로 수행하는 과정을 개략적으로 도시한 도면이다.FIG. 3 illustrates a method of performing a first verification in a hardware emulator, a simulation accelerator, or a prototyping system in an example of a design verification apparatus according to the present invention, which is composed of two or more verification platforms and computers different from the verification software of the present invention running on a computer. Performing the verification after the first stage is a diagram schematically illustrating a process of performing in parallel with two or more model inspectors or characteristic inspectors.

도4 는, 컴퓨터에서 운영되는 본 발명의 검증 소프트웨어와 상이한 2 이상의 검증 플랫폼들과 컴퓨터로 구성된 본 발명에 관한 설계 검증 장치의 일 예에서 1차 검증 실행을 하드웨어에뮬레이터 내지는 시뮬레이션가속기 내지는 프로토타이핑시스템에서 수행하고, 1차 이후의 검증 실행은 2 이상의 시뮬레이터와 모델검사기 내지는 특성검사기를 같이 사용하여 병렬적으로 수행하는 과정을 개략적으로 도시한 도면이다.4 is a diagram illustrating a design verification apparatus according to the present invention composed of two or more verification platforms and computers different from the verification software of the present invention running on a computer, in a hardware emulator, a simulation accelerator, or a prototyping system. The first and subsequent verification runs are schematically illustrated to be performed in parallel using two or more simulators and a model inspector or a characteristic inspector together.

도5 는, 컴퓨터에서 운영되는 본 발명의 검증 소프트웨어와 상이한 2 이상의 검증 플랫폼들과 컴퓨터로 구성된 본 발명에 관한 설계 검증 장치의 일 예에서 1차 검증 실행을 하드웨어에뮬레이터 내지는 시뮬레이션가속기 내지는 프로토타이핑시스템에서 수행하고, 1차 이후의 검증 실행은 하나의 시뮬레이터로 순서적으로 수행하는 과정을 개략적으로 도시한 도면이다.Fig. 5 shows the first verification execution in a hardware emulator, a simulation accelerator or a prototyping system in an example of a design verification apparatus according to the present invention composed of two or more verification platforms and computers different from the verification software of the present invention running on a computer. The first and subsequent verification runs are schematically illustrated in a process of sequentially performing one simulator.

도6 은, 컴퓨터에서 운영되는 본 발명의 검증 소프트웨어와 상이한 2 이상의 검증 플랫폼들과 컴퓨터로 구성된 본 발명에 관한 설계 검증 장치의 일 예에서 1차 검증 실행을 하드웨어에뮬레이터 내지는 시뮬레이션가속기 내지는 프로토타이핑시스템에서 수행하고, 1차 이후의 검증 실행은 하나의 모델검사기 내지는 특성검사기로 순서적으로 수행하는 과정을 개략적으로 도시한 도면이다.FIG. 6 is a diagram illustrating a design verification apparatus according to the present invention, which is composed of two or more verification platforms and computers different from the verification software of the present invention running on a computer, in a hardware emulator, a simulation accelerator, or a prototyping system. The verification after the first step is a diagram schematically illustrating a process of sequentially performing one model inspector or a characteristic inspector.

도7 은, 컴퓨터에서 운영되는 본 발명의 검증 소프트웨어와 상이한 2 이상의 검증 플랫폼들과 컴퓨터로 구성된 본 발명에 관한 설계 검증 장치의 일 예에서 1차 검증 실행을 하드웨어에뮬레이터 내지는 시뮬레이션가속기 내지는 프로토타이핑시스템에서 수행하고, 1차 이후의 검증 실행은 2 이상의 FPGA 보드들로 병렬적으로 수행하는 과정을 개략적으로 도시한 도면이다.7 is a diagram illustrating a design verification apparatus according to the present invention composed of two or more verification platforms and computers different from the verification software of the present invention running on a computer, in a hardware emulator, a simulation accelerator, or a prototyping system. The first and subsequent verification runs are schematically illustrated in parallel with two or more FPGA boards.

도8 은 본 발명에서의 검증 장치를 이용하여 설계에 존재하는 1 이상의 설계오류를 발견하여 수정하는 과정을 개략적으로 도시한 순서도이다.8 is a flowchart schematically illustrating a process of finding and correcting one or more design errors existing in a design using the verification apparatus of the present invention.

도9 는 본 발명에서의 검증 장치를 이용하여 설계 검증을 수행하는 과정을 개략적으로 도시한 순서도이다.9 is a flowchart schematically illustrating a process of performing design verification using the verification apparatus according to the present invention.

상술한 바와 같이, 본 발명에 따른 검증 장치 및 이를 이용한 설계 검증 방법의 목적은 초대규모급 설계 검증을 위하여 검증 실행을 상이한 검증 플랫폼들인 시뮬레이터, 시뮬레이션가속기, 하드웨어에뮬레이터, 프로토타이핑시스템, 정식검증툴들을 혼용하여 수행하는 과정을, 1차 특정 검증 플랫폼을 이용한 검증 실행을 통해서 1차 이후에 추가적으로 진행될 검증 실행들을 매우 빠르고 효과적으로 진행하는 것에 필요한 최소한의 정보들을 수집하고, 이 정보를 이용하여 1차 실행 이후의 검증 실행은 상기 1차 특정 검증플랫폼과는 다른 플랫폼을 이용하여 병렬적으로 또는 순차적으로 진행함으로서 검증의 성능과 검증 플랫폼의 이용률과 검증의 효율성을 높이고 신속한 디버깅을 가능하게 한다.As described above, the purpose of the verification apparatus and the design verification method using the same according to the present invention is to perform verification verification for ultra-scale design verification by using different verification platforms such as simulators, simulation accelerators, hardware emulators, prototyping systems, and formal verification tools. The mixed process is performed by collecting the minimum information necessary to proceed very quickly and effectively after the first step through the verification execution using the first specific verification platform, and using this information after the first execution. The verification execution of the process proceeds in parallel or sequentially using a platform different from the first specific verification platform, thereby increasing the performance of the verification, the utilization of the verification platform and the efficiency of the verification, and enabling rapid debugging.

이상 설명한 내용을 통해 당업자라면 본 발명의 기술사상을 일탈하지 아니하는 범위에서 다양한 변경 및 수정이 가능함을 알 수 있을 것이다. 따라서, 본 발명의 기술적 범위는 실시예에 기재된 내용으로 한정되는 것이 아니라 특허 청구의 범위에 의하여 정하여져야만 한다.Those skilled in the art will appreciate that various changes and modifications can be made without departing from the technical spirit of the present invention. Therefore, the technical scope of the present invention should not be limited to the contents described in the embodiments, but should be defined by the claims.

Claims (17)

검증 소프트웨어와 2 이상의 다른 검증 플랫폼을 구비하는 설계검증 장치에 있어서In a design verification device having verification software and two or more different verification platforms, 상기 검증 소프트웨어는 설계 코드나 합성으로 생성된 게이트수준의 네트리스트에 자동화된 방식을 통하여 부가 코드나 부가회로를 부가하여 상기 2 이상의 다른 검증 플랫폼들 중의 1 이상의 특정 검증 플랫폼 상에서 1차 검증 실행을 수행하면서 1차 검증 실행 이후의 1차 검증 실행에 사용된 1 이상의 특정 검증 플랫폼과는 최소한 하나 이상에서 다른 1 이상의 다른 검증 플랫폼 상에서 수행되는 검증실행을 검증사이클 시간구간들이나 설계 코드나 합성으로 생성된 게이트수준의 네트리스트에 존재하는 블록들에 대하여 검증 실행들이 이루어질 수 있도록 하는데 필요한 최소한의 정보를 1차 검증 실행 과정에서 자동적으로 수집할 수 있도록 하고, 상기 1 이상의 1차 검증 플랫폼을 이용한 1차 검증 실행을 수행하면서 상기 최소한의 정보를 수집하고, 이 수집된 정보를 이용하여 상기 1차 검증 실행에 사용된 1 이상의 특정 검증 플랫폼과는 최소한 하나 이상에서 다른 1 이상의 검증 플랫폼상에서 1차 이후의 1회 이상의 검증 실행을 신속하게 수행하는 것을 가능하게 하는 설계 검증 장치.The verification software adds additional code or additional circuitry to the gate-level netlist generated by design code or synthesis in an automated manner to perform a primary verification run on one or more of the other verification platforms. At least one verification platform used for the first verification run after the first verification run, and at least one other verification platform performed on one or more other verification platforms. It is possible to automatically collect the minimum information necessary for the verification executions to be performed on the blocks existing in the level netlist in the first verification execution process, and to perform the primary verification using the one or more primary verification platforms. Collect the minimum information while doing, Using this collected information, it is possible to quickly perform one or more verification runs after the first phase on at least one verification platform different from at least one specific verification platform used for the first verification run. Design Verification Device. 제 1 항에 있어서,The method of claim 1, 상기 2 이상의 다른 검증 플랫폼들 중의 특정 검증 플랫폼 상에서 1차 검증실행을 수행하면서 1차 검증 실행 이후의 상기 1차 검증 실행에 사용된 1 이상의 특정 검증 플랫폼과는 최소한 하나 이상에서 다른 1 이상의 검증 플랫폼 상에서 수행되는 검증 실행의 검증사이클 시간구간들이나 설계 코드나 합성으로 생성된 게이트수준의 네트리스트에 존재하는 블록들에 대하여 검증 실행들이 이루어질 수 있도록 하는데 필요한 최소한의 정보를 1차 검증 실행 과정에서 자동적으로 수집할 수 있도록 하고, 상기 1차 검증 실행을 위한 1 이상의 검증 플랫폼을 이용한 1차 검증 실행을 수행하면서 상기 최소한의 정보를 수집하고, 이 수집된 정보를 이용함으로서 상기 1차 검증 실행에 사용된 1 이상의 특정 검증 플랫폼과는 최소한 하나 이상에서 다른 1 이상의 검증 플랫폼 상에서 1차 이후의 1회 이상의 검증 실행을 0 검증 사이클 시간에서부터 시작되지 않아도 되도록 함으로서 검증을 신속하게 수행하는 것을 가능하게 하는 설계 검증 장치.On at least one verification platform different from at least one other verification platform used for the first verify run after the first verify run while performing a first verify run on a particular verify platform of the at least two other verify platforms. Automatically collect the minimum information necessary to ensure that verification runs can be performed on the verification cycle time intervals of the verification runs performed or on blocks in the gate-level netlist generated by design code or synthesis. And collect the minimum information while performing the first verification run using the one or more verification platforms for the first verification run, and by using the collected information, one or more used in the first verification run. One or more swords that differ from one or more than a specific verification platform Design verification device that may enable verification by that need not be started after the first one or more verification of the execution from zero verify cycle time on the platform quickly. 제 1 항에 있어서,The method of claim 1, 2 이상의 다른 검증 플랫폼들 중의 특정 1 이상의 검증 플랫폼 상에서 1차 검증 실행을 수행하면서 1차 검증 실행 이후의 상기 1차 검증 실행에 사용된 1 이상의 특정 검증 플랫폼과는 최소한 하나 이상에서 다른 1 이상의 검증 플랫폼 상에서 수행되는 검증 실행의 검증사이클 시간구간들이나 설계 코드나 합성으로 생성된 게이트수준의 네트리스트에 존재하는 블록들에 대하여 검증 실행들이 이루어질 수 있도록 하는데 필요한 최소한의 정보를 1차 검증 실행 과정에서 자동적으로 수집할 수 있도록 하고, 상기 1차 검증 플랫폼을 이용한 1차 검증 실행을 수행하면서 상기최소한의 정보를 수집하고, 이 수집된 정보를 이용함으로서 상기 1차 검증 실행을 위한 1 이상의 검증 플랫폼을 이용한 1차 검증 실행에 사용된 1 이상의 특정 검증 플랫폼과는 최소한 하나 이상에서 다른 검증 플랫폼 상에서 1차 이후의 1회 이상의 검증 실행에서 설계 코드나 합성으로 생성된 게이트수준의 네트리스트에 존재하는 1 이상의 특정 블록들에 대해서만 검증 실행을 할 수 있도록 함으로서 검증을 신속하게 수행하는 것을 가능하게 하는 설계 검증 장치.At least one verification platform that is different from at least one other verification platform used for the first verify run after the first verify run while performing the first verify run on a particular verify platform of at least two other verify platforms. Verify cycle time intervals of the verification run performed on the system or the minimum information necessary to ensure that the verification runs can be performed on blocks in the gate-level netlist generated by the design code or synthesis. Enable the collection, perform the first verification run using the first verification platform, collect the minimum information, and use the collected information to use the first or more verification platforms for the first verification run. At least one specific verification platform used to run the verification As described above, verification can be performed quickly by allowing only one or more specific blocks present in the gate-level netlist generated by the design code or the synthesis in one or more verification executions after the first stage. Design verification device that makes it possible to do. 2 이상의 검증 플랫폼을 혼합적으로 이용하여 설계 검증 실행을 수행함으로서 설계 코드나 합성으로 생성된 게이트수준의 네트리스트에 존재하는 설계 오류의 위치를 알아내고 이를 수정하는 설계 검증 방법에 있어서,In the design verification method that locates and corrects a design error existing in the gate-level netlist generated by the design code or the synthesis by performing a design verification using a mixture of two or more verification platforms, 상기 설계 검증 실행을 상기 2 이상의 검증 플랫폼 중의 1 이상의 특정 검증플랫폼 상에서의 1차 검증 실행과 1차 이후의 검증 실행은 1차 검증 실행에 사용된 1 이상의 특정 검증 플랫폼과는 최소한 하나 이상에서 다른 1 이상의 검증 플랫폼상에서의 1회 이상의 검증 실행들로 나누어서 수행하며, 상기 1차 검증 실행을 수행하면서 1차 검증 실행 이후의 다른 검증 플랫폼 상에서 수행되는 1회 이상의 검증실행의 검증사이클 시간구간들이나 설계 코드나 합성으로 생성된 게이트수준의 네트리스트에 존재하는 블록들에 대하여 검증 실행들이 이루어질 수 있도록 하는데 필요한 최소한의 정보를 1차 검증 실행 과정에서 자동적으로 수집할 수 있도록 하고, 상기 1 이상의 1차 검증 플랫폼을 이용한 1차 검증 실행을 수행하면서 상기 최소한의 정보를 수집하고, 이 수집된 정보를 이용함으로서 상기 1차 검증 실행에 사용된 1 이상의 특정 검증 플랫폼과는 최소한 하나 이상에서 다른 1 이상의 검증 플랫폼 상에서 1차 이후의 1회 이상의 검증 실행에서 검증 실행의 특정 검증사이클 시간구간들이나 설계 코드나 합성으로 생성된 게이트수준의 네트리스트에 존재하는 1 이상의 특정 블록들에 대해서만 검증 실행을 할 수 있도록 함으로서 검증을 신속하게 수행하는 것을 가능하게 검증 방법The design verification run may be at least one different from at least one specific verification platform used for the first verification run and the first verification run on one or more specific verification platforms of the two or more verification platforms. It is divided into one or more verification runs on the verification platform, and the verification cycle time intervals or design codes of one or more verification runs performed on another verification platform after the first verification execution while performing the first verification execution. It is possible to automatically collect the minimum information necessary to allow verification executions to be performed on blocks existing in a synthetically generated gate-level netlist, and to provide the at least one primary verification platform. Collect the minimum information while performing the first verification run using By using this collected information, a particular verification cycle time period of a verification run in at least one verification run after the first phase on at least one verification platform different from at least one verification platform used in the first verification run. Verification method that enables verification to be performed quickly by performing verification only on one or more specific blocks in the gate-level netlist generated by the network, the design code, or the synthesis. 제 4 항에 있어서,The method of claim 4, wherein 2 이상의 검증 플랫폼을 혼합적으로 이용하여 설계 검증 실행을 수행함으로서 설계 코드나 합성으로 생성된 게이트수준의 네트리스트에 존재하는 설계 오류의 위치를 알아내고 이를 수정하는 설계 검증 방법에 있어서,In the design verification method that locates and corrects a design error existing in the gate-level netlist generated by the design code or the synthesis by performing a design verification using a mixture of two or more verification platforms, 상기 설계 검증 실행을 상기 2 이상의 검증 플랫폼 중의 1 이상의 특정 검증 플랫폼 상에서의 1차 검증 실행과 1차 이후의 1차 검증 실행에 사용된 1 이상의 특정 검증 플랫폼과는 최소한 하나 이상에서 다른 1 이상의 검증 플랫폼 상에서의 1회 이상의 검증 실행들로 나누어서 수행하며, 상기 1차 검증 실행을 수행하면서 1차 검증 실행 이후의 다른 검증 플랫폼 상에서 수행되는 1회 이상의 검증 실행에서 검증 실행의 특정 검증사이클 시간구간들이나 설계 코드나 합성으로 생성된 게이트수준의 네트리스트에 존재하는 1 이상의 특정 블록들에 대하여 검증 실행들이 이루어질 수 있도록 하는데 필요한 최소한의 정보를 1차 검증 실행 과정에서 자동적으로 수집할 수 있도록 하고, 상기 1 이상의 1차 검증 플랫폼을 이용한 1차 검증 실행을 수행하면서 상기 최소한의 정보를 수집하고, 이 수집된 정보를 이용하여 상기1차 이후의 검증 실행을 상기 1차 검증 실행에 사용된 1 이상의 특정 검증 플랫폼과는 최소한 하나 이상에서 다른 1 이상의 검증 플랫폼 상에서 0 검증사이클 시간에서부터 시작되지 않아도 되도록 함으로서 검증을 신속하게 수행하는 것을 가능하게 하는 검증 방법The at least one verification platform that differs from the at least one verification platform used for the first verification run on one or more of the two or more verification platforms and the one or more specific verification platforms used after the first verification run. Specific verification cycle time periods or design codes of a verification run in one or more verification runs performed on another verification platform after the first verification run while performing the primary verification run. (B) to automatically collect the minimum information necessary for the verification executions to be performed on one or more specific blocks present in the gate-level netlist generated by the synthesis, and the one or more Performing the first verification run using the first verification platform. Collect one piece of information, and use this collected information to verify that the subsequent verification run has a zero verification cycle time on at least one verification platform different from at least one particular verification platform used in the first verification run. Verification methods that enable faster verification by eliminating the need to start from scratch 제 4 항 내지는 제 5 항에 있어서,The method according to claim 4 or 5, 1차 이후의 1차 검증 실행에 사용된 1 이상의 특정 검증 플랫폼과는 최소한 하나이상에서 다른 1 이상의 검증 플랫폼 상에서의 1회 이상의 검증 실행 각각을 2 이상의 검증 플랫폼들 상에서 병렬적으로 수행함으로서 검증을 신속하게 수행하는 것을 가능하게 하는 검증 방법Fast verification by performing parallel execution on two or more verification platforms, each of one or more verification runs on one or more verification platforms, different from one or more specific verification platforms used for post-primary verification runs. Verification methods that make it possible to perform 제 6 항에 있어서,The method of claim 6, 1차 이후의 1차 검증 실행에 사용된 1 이상의 특정 검증 플랫폼과는 최소한 하나이상에서 다른 1 이상의 검증 플랫폼 상에서의 1회 이상의 검증 실행 각각을 수행하기 위한, 상기 2 이상의 검증 플랫폼들 구성을 둘 이상의 서로 상이한 각각 다른 검증 플랫폼들로 구성하여 이들을 병렬적으로 수행함으로서 검증을 신속하게 수행하는 것을 가능하게 하는 검증 방법Two or more verification platforms configured to perform each of one or more verification runs on at least one verification platform different from at least one particular verification platform used for the first verification run after the first. Verification method that consists of different different verification platforms and makes it possible to perform verification quickly by performing them in parallel 제 4 항 내지는 제 5 항에 있어서,The method according to claim 4 or 5, 1차 이후의 1차 검증 실행에 사용된 1 이상의 특정 검증 플랫폼과는 다른 검증 플랫폼 상에서의 1회 이상의 검증 실행 각각을 하나의 검증 플랫폼 상에서 순서적으로 수행함으로서 검증을 수행하는 것을 가능하게 하는 검증 방법Verification method that enables verification by sequentially performing each of one or more verification runs on a verification platform different from one or more specific verification platforms used for the first verification run after the first. 제 4 항 내지는 제 5 항 내지는 제 6 항 내지는 제 7 항 내지는 제 8 항에 있어서,The method according to claim 4, 5, 6, 7, or 8, 1차 이후의 1 이상의 검증 실행에 있어서, 검증 실행 각각에서의 실행하고자 하는 검증사이클 전체구간이나 검증사이클 특정구간을 1 이상의 특정 검증 플랫폼을 이용한 1차 검증 실행에서 수집된 2 이상의 상태정보들에서부터 시작될 수 있도록 1차 검증 실행에 사용된 1 이상의 특정 검증 플랫폼과는 다른 하나의 검증 플랫폼을 2회 이상 순서적으로 설정하고 2회 이상 순서적으로 상기 다른 하나의 검증 플랫폼을 실행시키는 과정에 있어서, 1차 검증 실행 시에 상태정보를 저장하는 시점이 검증시간 적으로 제일 뒤에 있는 상태정보를 우선 상기 하나의 검증 플랫폼에 설정하여 이 상태정보를 가지고 진행하고, 이 후의 실행들도 상기 하나의 검증 플랫폼으로써 수행하는 과정에서 1차 검증실행 과정에서 상태정보를 저장한 시점이 검증시간 적으로 뒤에 있는 것들을 우선으로 하여 상기 하나의 검증 플랫폼에 설정하여 1차 이후의 검증 실행들 각각이 2 이상의 상태정보를 이용하여 검증시간 적으로 제일 뒤에서부터 앞서는 순서대로 진행하면서 설계 코드나 합성으로 생성된 게이트수준의 네트리스트에 존재하는 시그널들과 변수들에 대한 탐침을 수행하는 설계 검증 방법In one or more verification runs after the first phase, the entire verification cycle section or verification cycle specific section to be executed in each verification execution starts from two or more status information collected in the first verification run using one or more specific verification platforms. In the process of setting up one or more verification platforms different from one or more specific verification platforms used for executing the first verification, and executing the other verification platform in order two or more times, 1 At the time of executing the next verification, the state information at which the state information is stored at the end of the verification time is first set in the one verification platform to proceed with the status information. Subsequent executions are also performed as the one verification platform. In the process of performing the first verification, the time when the state information is saved is followed by the verification time. The gate level generated by the design code or the synthesis is made by setting the one verification platform in the order of priority and performing each of the first and subsequent verification executions using the two or more state information in the order from the rearmost to the verification time. Design verification method to perform probe on signals and variables in netlist 제 1 항 내지는 제 2 항 내지는 제 3 항 내지는 제 4 항 내지는 제 5 항에 있어서,The method according to claim 1, 2, 3, 4, or 5, 최소한의 정보 수집이 1차 검증 실행 과정에서 일정 간격으로 혹은 특정 시점들에서 DUV의 상태정보와 검증사이클 전체에서 DUV의 모든 입력과 입출력 정보를 1 이상의 파일 형태로 저장하는 포함하는 설계 검증 방법Design verification method that includes minimum information collection to store all DUV status information and input / output information of DUV in the form of one or more files at regular intervals or at specific time points during the first verification process. 제 1 항 내지는 제 2 항 내지는 제 3 항 내지는 제 4 항 내지는 제 5 항에 있어서,The method according to claim 1, 2, 3, 4, or 5, 1차 검증 실행에 사용된 검증 플랫폼이 1 이상의 시뮬레이터인 경우에 있어서, 최소한의 정보 수집이 1차 검증 실행 과정에서 일정 간격으로 혹은 특정 시점들에서 시뮬레이션상태를 1 이상의 파일 형태로 저장하는 것을 포함하는 설계 검증 방법In the case where the verification platform used for the first verification run is one or more simulators, the minimum collection of information includes storing the simulation state in the form of one or more files at regular intervals or at specific points in time during the first verification run. Design verification method 제 11 항에 있어서,The method of claim 11, 상기 1 이상의 시뮬레이터를 이용한 1차 검증 실행 시행 중에 1 이상의 시점에서 시뮬레이션 상태를 저장하는 방법을 시뮬레이터의 save 명령어를 사용하고, 1차 이후의 검증 실행들을 상기 선정된 1 이상의 시뮬레이션 상태에서부터 추출된 상태정보에서부터 시작될 수 있도록 하는 설계 검증 방법Using the save command of the simulator to save the simulation state at one or more time points during the first verification execution using the one or more simulators, and the first and subsequent verification runs are extracted from the selected one or more simulation states. Verification methods to get you started 제 1 항 내지는 제 2 항 내지는 제 3 항 내지는 제 4 항 내지는 제 5 항에있어서,The method according to claim 1 or 2 to 3 or 4 to 5, 최소한의 정보 수집이 1차 검증 실행 과정에서 설계 코드나 합성으로 생성된 게이트수준의 네트리스트에 존재하는 특정 블록들의 입력과 입출력을 검증사이클 전체에서 지속적으로 탐침하여 1 이상의 파일 형태로 저장하는 것을 포함하는 설계 검증 방법.Minimal collection of information involves continuously probing and storing the inputs and inputs and outputs of specific blocks in the gate-level netlist generated by the design code or synthesis during the first verification process and storing them in one or more files. Design verification method. 제 6 항 내지는 제 7 항에 있어서,The method according to claim 6 or 7, 1차 이후의 검증 실행 각각을 1차 검증 실행 과정에서 저장된 2 이상의 DUV 상태정보들 각각을 이용하여 2회 이상의 부분 검증 실행을 하는 것으로 전환하여, 컴퓨터 네트워크로 연결된 2 이상의 컴퓨터에 인스톨된 2 이상의 검증 플랫폼들을 이용하여 상기 2 이상의 상태정보들 각각을 상기 2 이상의 검증 플랫폼 각각에 설정하여 2회 이상의 부분 검증 실행이 서로 독립적으로 상기 2 이상의 검증 플랫폼으로써 병렬적으로 실행되게 하고, 실행된 2 이상의 결과들을 컴퓨터 네트워크를 이용하여 한 컴퓨터에 전송하고 통합하여 전체의 검증 결과로 제공하는 설계 검증 방법Two or more verifications installed on two or more computers connected to the computer network by converting each subsequent verification run into two or more partial verification runs using each of two or more DUV status information stored in the first verification run. Platforms are used to set each of the at least two status information to each of the at least two verification platforms so that at least two partial verification runs can be executed in parallel with the at least two verification platforms independently of each other, Design verification method that uses computer network to transmit to one computer and integrates it as a whole verification result 제 6 항 내지는 제 7 항에 있어서,The method according to claim 6 or 7, 1차 이후의 검증 실행 각각을 1차 검증 실행을 통하여 얻어진 2 이상의 블록들과 이들 블록들 각각의 모든 입력과 입출력을 1차 검증 실행 전과정에서 탐침한 2 이상의 탐침 파일들을 컴파일하여 얻어진 2 이상의 실행 파일들을 컴퓨터 네트워크로 연결된 2 이상의 컴퓨터에 인스톨된 2 이상의 검증 플랫폼들을 이용하여 독립적으로 병렬적으로 실행하고, 실행된 2 이상의 결과들을 컴퓨터 네트워크를 이용하여 한 컴퓨터에 전송하고 통합하여 전체의 검증 결과로 제공하는 설계 검증 방법Two or more executable files obtained by compiling two or more blocks obtained through the first verification run after each first verification run, and two or more probe files that probe all inputs and inputs and outputs of each of these blocks during the first verification run. Are independently executed in parallel using two or more verification platforms installed on two or more computers connected by a computer network, and the two or more executed results are transferred and integrated into one computer using a computer network to provide a total verification result. Design verification method 제 3 항에 있어서,The method of claim 3, wherein 1차 검증 실행 시행 중에 1 이상의 시점에서 저장된 1 이상의 상태정보들 중에서 1 이상의 상태정보를 선정하여 1차 이후의 설계 검증들을 상기 선정된 1 이상의 상태정보에서부터 시작될 수 있도록 1차 검증 실행에서 사용된 검증 플랫폼과는 다른 검증 플랫폼을 1회 이상 설정한 후에 검증 실행을 1회 이상 진행하면서 설계코드나 합성으로 생성된 게이트수준의 네트리스트에 존재하는 시그널들과 변수들에 대한 탐침을 수행하는 설계 검증 방법The verification used in the first verification run to select one or more status information among the one or more status information stored at one or more time points during the first verification run so that the design verification after the first step can be started from the selected one or more status information. Design verification method that performs a probe on signals and variables in the gate-level netlist generated by design code or synthesis while performing verification at least once after setting up verification platform different from platform at least once 제 4 항에 있어서,The method of claim 4, wherein 1차 검증 실행 중에 설계 코드나 합성으로 생성된 게이트수준의 네트리스트에 존재하는 1 이상의 블록들에 대한 입력과 입출력들을 검증 실행의 검증사이클 전 과정에서 탐침하여 저장한 1 이상의 탐침 파일들 중에서 1 이상을 선정하여 1차 이후의 검증 실행들을 상기 선정된 1 이상의 탐침 파일과 해당 1 이상의 블록들을 이용하여 1차 검증 실행에서 사용된 검증 플랫폼과는 다른 검증 플랫폼을 위하여 컴파일하여 생성된 1 이상의 파일들 중에서 추가적인 탐침이 필요한 설계 코드나 합성으로 생성된 게이트수준의 네트리스트에 존재하는 시그널들과 변수들을 가지고있는 해당 1 이상의 블록들에 관계되는 파일을 이용하여 상기 추가적인 탐침을 수행하는 설계 검증 방법At least one of the one or more probe files that are stored by probing and storing inputs and inputs and outputs for one or more blocks in the gate-level netlist generated by the design code or synthesis during the first verification run. Is selected from among one or more files generated by compiling for the verification platform different from the verification platform used in the first verification run using the selected one or more probe files and the corresponding one or more blocks. Design verification method for performing the additional probe by using a file associated with the corresponding one or more blocks having signals and variables present in the gate code netlist generated by the design code or the synthesis that requires the additional probe
KR1020040019066A 2001-09-14 2004-03-16 Verification Apparatus Supporting the Use of Unifying Different Verification Platforms, and the Verification Method Using the Same KR20040063846A (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US10/591,910 US20080306721A1 (en) 2004-03-09 2005-03-09 Dynamic-Verification-Based Verification Apparatus Achieving High Verification Performance and Verification Efficiency and the Verification Methodology Using the Same
PCT/KR2005/000668 WO2005093575A1 (en) 2004-03-09 2005-03-09 Dynamic-verification-based verification apparatus achieving high verification performance and verification efficency and the verification methodology using the same
JP2007502715A JP2007528553A (en) 2004-03-09 2005-03-09 DYNAMIC VERIFICATION FOR IMPROVING VERIFICATION PERFORMANCE AND VERIFICATION EFFICIENCY-A verification method based on a basic method and a verification methodology using the same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020010057742 2001-09-14
KR20010057742 2001-09-14

Publications (1)

Publication Number Publication Date
KR20040063846A true KR20040063846A (en) 2004-07-14

Family

ID=27724590

Family Applications (4)

Application Number Title Priority Date Filing Date
KR1020020038088A KR100794916B1 (en) 2001-09-14 2002-06-26 Design Verification Apparatus For Incremental Design Verification Using Mixed Emulation and Simulation, and Design Verification Method Using the Same
KR1020020052369A KR100767957B1 (en) 2001-09-14 2002-08-28 Design Verification Method Using Mixed Emulation, Simulation, and Formal Verification
KR1020040017476A KR20040063845A (en) 2001-09-14 2004-03-09 Simulation-based Verification Apparatus Achieving High Verification Performance, and the Simulation Method Using the Same
KR1020040019066A KR20040063846A (en) 2001-09-14 2004-03-16 Verification Apparatus Supporting the Use of Unifying Different Verification Platforms, and the Verification Method Using the Same

Family Applications Before (3)

Application Number Title Priority Date Filing Date
KR1020020038088A KR100794916B1 (en) 2001-09-14 2002-06-26 Design Verification Apparatus For Incremental Design Verification Using Mixed Emulation and Simulation, and Design Verification Method Using the Same
KR1020020052369A KR100767957B1 (en) 2001-09-14 2002-08-28 Design Verification Method Using Mixed Emulation, Simulation, and Formal Verification
KR1020040017476A KR20040063845A (en) 2001-09-14 2004-03-09 Simulation-based Verification Apparatus Achieving High Verification Performance, and the Simulation Method Using the Same

Country Status (1)

Country Link
KR (4) KR100794916B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100800412B1 (en) * 2005-10-10 2008-02-01 부산대학교 산학협력단 Efficient Verification Apparatus in ESL Design Methodology, and the Verification Method Using the Same

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7222315B2 (en) 2000-11-28 2007-05-22 Synplicity, Inc. Hardware-based HDL code coverage and design analysis
US6904576B2 (en) 2002-08-09 2005-06-07 Synplicity, Inc. Method and system for debugging using replicated logic
US7213216B2 (en) 2002-08-09 2007-05-01 Synplicity, Inc. Method and system for debugging using replicated logic and trigger logic
WO2005078584A1 (en) * 2003-12-16 2005-08-25 Logic Mill Technology, Llc Performance improvement apparatus for hardware-assisted verification using massive memory and compilation avoidance and its verification method using the same
US7904859B2 (en) 2007-05-09 2011-03-08 Synopsys, Inc. Method and apparatus for determining a phase relationship between asynchronous clock signals
US7984400B2 (en) 2007-05-09 2011-07-19 Synopsys, Inc. Techniques for use with automated circuit design and simulations
US8756557B2 (en) 2007-05-09 2014-06-17 Synopsys, Inc. Techniques for use with automated circuit design and simulations
US7908574B2 (en) 2007-05-09 2011-03-15 Synopsys, Inc. Techniques for use with automated circuit design and simulations
KR100916635B1 (en) * 2009-02-27 2009-09-08 주식회사 지노스 System and method for managing the standard design
KR100929551B1 (en) * 2009-02-27 2009-12-03 주식회사 지노스 Apparatus and method for inspecting design
KR100930089B1 (en) * 2009-02-27 2009-12-07 주식회사 지노스 Apparatus and method for inspecting design
CN110632857B (en) * 2019-09-25 2022-05-17 中国工程物理研究院计算机应用研究所 Control performance verification method for large-scale hierarchical control system
KR102545302B1 (en) * 2022-10-07 2023-06-20 인하대학교 산학협력단 Automation Framework for Digital Circuit Design and Verification

Family Cites Families (2)

* 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
US5943490A (en) * 1997-05-30 1999-08-24 Quickturn Design Systems, Inc. Distributed logic analyzer for use in a hardware logic emulation system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100800412B1 (en) * 2005-10-10 2008-02-01 부산대학교 산학협력단 Efficient Verification Apparatus in ESL Design Methodology, and the Verification Method Using the Same

Also Published As

Publication number Publication date
KR20030023465A (en) 2003-03-19
KR100794916B1 (en) 2008-01-14
KR20030023485A (en) 2003-03-19
KR20040063845A (en) 2004-07-14
KR100767957B1 (en) 2007-10-17

Similar Documents

Publication Publication Date Title
US8781808B2 (en) Prediction-based distributed parallel simulation method
KR100921314B1 (en) High Performance Design Verification Apparatus Using Verification Results Re-use Technique and Its Rapid Verification Method Using the Same
US5809283A (en) Simulator for simulating systems including mixed triggers
US20090150136A1 (en) Dynamic-based verification apparatus for verification from electronic system level to gate level, and verification method using the same
US20040117168A1 (en) Global analysis of software objects generated from a hardware description
CN113255267B (en) Reprogramming detection of timing violations in simulations using Field Programmable Gate Array (FPGA)
WO2007043786A1 (en) Dynamic-based verification apparatus for verification from electronic system level to gate level, and verification method using the same
KR20040063846A (en) Verification Apparatus Supporting the Use of Unifying Different Verification Platforms, and the Verification Method Using the Same
JP2007528553A (en) DYNAMIC VERIFICATION FOR IMPROVING VERIFICATION PERFORMANCE AND VERIFICATION EFFICIENCY-A verification method based on a basic method and a verification methodology using the same
CN114756085A (en) Formalized gated clock conversion for Field Programmable Gate Array (FPGA) integration
Cheng et al. A run-time RTL debugging methodology for FPGA-based co-simulation
KR20060066634A (en) Dynamic-verification-based verification apparatus achieving high verification performance and verification efficiency, and the verification methodology using the same
KR20060101127A (en) Efficient functional verification apparatus in esl design methodology, and the verification method using the same
Hung et al. Faster FPGA debug: Efficiently coupling trace instruments with user circuitry
Banerjee et al. Design aware scheduling of dynamic testbench controlled design element accesses in FPGA-based HW/SW co-simulation systems for fast functional verification
KR101328263B1 (en) Verification Method from Electronic System Level to Gate Level Using Systematic Progressive Refinement
JPH10261002A (en) Method and device for supporting design
Zhang et al. A fast HDL model for full-custom FPGA verification
US20220300690A1 (en) Incremental compilation for fpga-based systems
US11868694B1 (en) System and method for optimizing emulation throughput by selective application of a clock pattern
US20240111660A1 (en) Managing high performance simulation representation of an emulation system
Schirrmeister et al. Hardware-assisted verification and software development
KR20050101105A (en) Simulation-based verification apparatus achieving high verification performance, and the simulation method using the same
KR20050118107A (en) Dynamic-verification-based verification apparatus achieving high verification performance and verification efficiency, and the verification methodology using the same
Siddiqui System-on-Chip (SoC) emulation

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination