KR20080009246A - Efficient debugging method in dynamic-based design verification - Google Patents

Efficient debugging method in dynamic-based design verification Download PDF

Info

Publication number
KR20080009246A
KR20080009246A KR1020060117303A KR20060117303A KR20080009246A KR 20080009246 A KR20080009246 A KR 20080009246A KR 1020060117303 A KR1020060117303 A KR 1020060117303A KR 20060117303 A KR20060117303 A KR 20060117303A KR 20080009246 A KR20080009246 A KR 20080009246A
Authority
KR
South Korea
Prior art keywords
simulation
debugging
design
post
home
Prior art date
Application number
KR1020060117303A
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
Priority claimed from KR1020060068811A external-priority patent/KR20070108303A/en
Application filed by 부산대학교 산학협력단 filed Critical 부산대학교 산학협력단
Publication of KR20080009246A publication Critical patent/KR20080009246A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units

Abstract

A method for performing pure simulation effectively in dynamic-based design verification, a simulation acceleration method, or pure simulation/simulation acceleration hybrid method, and a debugging method thereof are provided to shorten whole design verification time largely by enabling a designer or a verifier to use various debugging-simulation methods capable of reducing debugging turn-around time. More than one design error is found by simulation. Causes of the design error are removed by correcting a design, and the simulation for determining whether design correction is correctly performed is performed. The simulation is performed by using more than two modes among a first assumption-based debugging and simulation mode, a second assumption-based debugging and simulation mode, and a third assumption-based debugging and simulation mode according to property of the design error.

Description

동적기반의 설계 검증에서의 효과적인 디버깅 방법 {Efficient Debugging Method in Dynamic-based Design Verification}Effective Debugging Method in Dynamic-based Design Verification

도1 은, 본 발명에 관한 설계 검증 장치의 일 예를 개략적으로 도시한 도면. 1 is a diagram schematically showing an example of a design verification apparatus according to the present invention.

도2 는, 본 발명에 관한 설계 검증 장치의 또 다른 일 예를 개략적으로 도시한 도면. 2 is a diagram schematically showing still another example of the design verification apparatus according to the present invention;

도3 은, 본 발명에 관한 설계 검증 장치의 또 다른 일 예를 개략적으로 도시한 도면. 3 is a diagram schematically showing still another example of the design verification apparatus according to the present invention;

도4 는, 본 발명에 관한 설계 검증 장치의 또 다른 일 예를 개략적으로 도시한 도면. 4 is a diagram schematically showing still another example of the design verification apparatus according to the present invention;

도5 는, 방식1-가정 기반 디버깅후-시뮬레이션 과정 내지는 방식2-가정 기반 디버깅후-시뮬레이션 과정의 일 예를 개략적으로 도시한 도면. FIG. 5 schematically illustrates an example of a scheme 1-home based post-debugging simulation or a scheme 2-home based post-debug simulation.

도6 은, 방식1-가정 기반 디버깅후-시뮬레이션 과정 내지는 방식2-가정 기반 디버깅후-시뮬레이션 과정의 또 다른 일 예을 개략적으로 도시한 도면. FIG. 6 is a diagram schematically illustrating another example of a scheme 1-home based post-debugging simulation or a scheme 2-home based post-debug simulation.

도7 은, 방식3-가정 기반 디버깅후-시뮬레이션 과정의 일 예를 개략적으로 도시한 도면. FIG. 7 is a schematic illustration of an example of a scheme-home based post-debugging simulation process. FIG.

도8 은, 방식1-가정 기반 디버깅후-시뮬레이션 과정 내지는 방식2-가정 기반 디버깅후-시뮬레이션 과정의 또 다른 일 예을 개략적으로 도시한 도면.FIG. 8 schematically illustrates another example of a scheme 1-home based post-debugging simulation or a scheme 2-home based post-debug simulation.

<도면의 주요부분에 대한 부호의 설명> <Description of the symbols for the main parts of the drawings>

32 : 검증 소프트웨어 32: Verification Software

34 : Verilog 시뮬레이터 내지는 VHDL 시뮬레이터 내지는 SystemC 시뮬레이터34: Verilog simulator or VHDL simulator or SystemC simulator

35 : 컴퓨터 35: computer

37 : 시뮬레이션가속기 내지는 하드웨어에뮬레이터37: accelerator or hardware emulator

본 발명은 디지털 시스템 내지는 디지털 논리회로를 동적기반의 방법(본 특허에서 동적기반의 방법이란 테스트벤치를 이용하는 시뮬레이션 내지는 시뮬레이션가속을 말함. 또한 본 특허에서는 시뮬레이션가속과 인서킷에뮬레이션의 혼용한 하이브리드 방식도 시뮬레이션가속으로 보도록 함)으로 검증하고자 하는 경우에 디버깅의 턴어라운드 시간(turn-around time)을 단축시키는 방법에 관한 것이다. 구체적으로 디버깅은 DUV(Design Under Verification) 내지는 TB(Test Bench)에 존재하는 1 이상의 설계 오류를 찾아내어서 제거하는 과정으로, 동적기반의 검증에서의 디버깅은 우선 디버깅을 진행하기에 앞서서 DUV와 TB를 이용한 시뮬레이션 실행(본 특허에서 시뮬레이션 실행은 시뮬레이터를 이용한 시뮬레이션뿐만 아니라 시뮬레이션가속기 내지는 하드웨어에뮬레이터를 이용한 시뮬레이션가속도 포함하는 것으로 정의함. 현재 업계에서 사용되는 시뮬레이터는 Cadence사의 Incisive simulator 내지는 NC-sim 내지는 X-sim, Synopsys사의 VCS, Mentor사의 ModelSim, Aldec사의 Riviera/Active-HDL, Fintronic사의 FimSim, Axiom사의 MP-sim과 OSCI SystemC 시뮬레이터 등이 있으며, 시뮬레이션가속기 내지는 하드웨어에뮬레이터는 Cadence사의 Extreme 시리즈, Palladium 시리즈, Mentor사의 VStation 시리즈, EVE사의 ZeBu 시리즈, Tharas사의 Hammer 시리즈, Alatek의 HES 시리즈, ProDesign사의 ChipIT 시리즈, Dynalith사의 iPROVE 시리즈, Hardi사의 HAPS 시리즈, S2C사의 IP Porter 시리즈, Liga System사의 Nitro-Sim, Fortelink사의 Gemini 시리즈 등이 있음)을 통하여 검증 대상이 되는 설계에 설계 오류가 존재하는지를 판단하는 단계(이와 같은 시뮬레이션 실행을 본 특허에서는 디버깅전-시뮬레이션이라 정의함)를 필요로 한다. 그리고 이와 같은 디버깅전-시뮬레이션에서 설계에 설계 오류가 존재하는 것이 확인되게 되면 설계 오류의 원인(root cause)을 파악하고 이를 찾아서 설계를 수정하게 된다(이를 본 특허에서는 앞단-디버깅이라 정의함). 앞단-디버깅 다음에는 상기의 특정 1 이상의 설계 오류가 앞단-디버깅에서 올바르게 제거되고 앞단-디버깅에서 이루어진 설계 수정에 의하여 새로운 오류가 도입되지 않았는지를 파악하는 1회 이상의 디버깅후-시뮬레이션(즉 본 특허에서는 앞단-디버깅 후에 앞단-디버깅이 목표대로 진행되었는지를 알아보기 위하여서 진행되는 시뮬레이션 실행을 디버깅후-시뮬레이션이라 정의함)을 진행하여서 앞단-디버깅이 바르게 진행되었는지를 판단하게 된다. 본 특허에서는 특정 앞단-디버깅과 이에 연관되는 후단-디버깅(본 특허에서는 한번의 "디버깅 과정"(debugging process)이라 하면 이와 같은 특정 앞단-디버깅과 이에 연관되는 후단-디버깅을 포함한 것으로 정의함)을 한번의 디버깅 턴어라운드라고 정의하고 이와 같은 한번의 디버깅 턴어라운드에 소요되는 전체 시간을 디버깅 턴어라운드 시간(debugging turn-around time)이라고 정의하고, 설계 검증 전체 과정에서의 모든 디버깅 턴어라운드 시간들을 합친 것은 디버깅 턴어라운드 전체시간(debugging turn-aound total time)이라고 정의한다.The present invention refers to a dynamic system based on a digital system or a digital logic circuit (in this patent, a dynamic based method refers to a simulation or simulation acceleration using a test bench. Also, in this patent, a hybrid hybrid method of simulation acceleration and in-circuit emulation is also used. The simulation method is to reduce the turn-around time of debugging when verifying with a simulation speed. Specifically, debugging is the process of finding and eliminating one or more design errors in DUV (Design Under Verification) or TB (Test Bench). Debugging in dynamic-based verification should be done prior to debugging. Simulation Execution (In this patent, simulation execution is defined to include simulation acceleration using a simulation accelerator or a hardware emulator as well as simulation using a simulator. Current simulators used in the industry are Cadence's Incisive simulator or NC-sim or X-). sim, Synopsys' VCS, Mentor's ModelSim, Aldec's Riviera / Active-HDL, Fintronic's FimSim, Axiom's MP-sim and OSCI SystemC simulators. Cadence's Extreme series, Palladium series, Mentor VStation series of company, EVE company ZeBu series, Tharas Hammer series, Alatek HES series, ProDesign ChipIT series, Dynalith iPROVE series, Hardi HAPS series, S2C IP Porter series, Liga System Nitro-Sim, Fortelink Gemini series, etc.) It is necessary to determine whether there is a design error in the design to be verified (this simulation execution is defined as pre-debugging simulation in this patent). And when it is confirmed that a design error exists in the design in the pre-debugging simulation, the root cause of the design error is identified, and the design is found and corrected (this patent is defined as front-debugging). Leading-debugging is followed by one or more post-debugging simulations to determine whether one or more of the above design errors have been correctly removed from leading-debugging and that no new errors have been introduced by design modifications made in leading-debugging (i.e. After the front end debugging, to determine whether the front end debugging proceeds to the goal, the execution of the simulation is defined as post-debug simulation) to determine whether the front end debugging proceeds correctly. The present patent defines a particular leading-debugging and associated trailing-debugging (in this patent, a single "debugging process" is defined as including such a leading leading-debugging and associated trailing-debugging). Define one debugging turnaround and define the total time spent on one such debugging turnaround as debugging turn-around time, and the sum of all debugging turnaround times throughout the design verification is the total debugging turnaround time. It is defined as (debugging turn-aound total time).

그런데, 설계 검증 전체 과정에서는 "매우 많은 횟수의 디버깅 과정들"(a very large number of debugging processes)이 진행되게 되는데, 이와 같은 매우 많은 횟수의 디버깅 과정들의 각 디버깅 과정의 후단-디버깅에 매우 많은 시간이 소요되게 된다. 특히 발견과 수정이 어려운 버그들은 통상적으로 오랜 시간의 디버깅전-시뮬레이션이 필요하게 됨으로 후단-디버깅에서의 디버깅후-시뮬레이션도 오랜시간이 필요하게 된다 (구체적 예로, 7일간의 디버깅전-시뮬레이션이 진행되어야만 발견된 특정 버그의 수정을 앞단-디버깅에서 진행한 후에 후단-디버깅에서의 디버깅후-시뮬레이션도 대략 7일간의 시뮬레이션을 요하게 됨). However, during the entire design verification process, there is a very large number of debugging processes, which are very much time-delayed after each debugging process. This will take In particular, bugs that are hard to find and fix usually require a long time of pre-debugging, so post-debug-simulation in post-debugging requires a long time (specific example, 7 days of pre-debugging-simulation proceeds). Fixing certain bugs that are found only in the front end-debugging and post-debugging-simulation in the back-debugging will also require approximately seven days of simulation).

또한, 특정 DUV에 대한 동적기반의 검증은 하나의 TB만을 사용하지 않고, 매우 많은 수의 TB를 사용(예로, 하나의 긴 TB 대신에 상대적으로 짧은 1000개의 TB를 사용)하여서 검증을 수행하게 된다. 이와 같이 하나의 TB가 아닌 여러 개의 TB를 사용하게 되면 TB 수만큼의 시뮬레이션 실행을 개개의 TB로써 많은 수의 시뮬레이터들(이를 시뮬레이션팜(simulation farm) 이라고 함)로 동시적으로 진행할 수 있음으로 "모든 TB들을 이용하는 시뮬레이션의 전체시간"을 단축할 수 있다. 그러나, 최근의 설계 복잡도로 인하여 이들 개개의 TB를 이용하는 시뮬레이션 수행시간도 시뮬레이터를 사용하게 되면 매우 길어지는 문제점이 있다. 이와 같은 시뮬레이션 시간을 단축시키기 위하여 시뮬레이션가속기 내지는 하드웨어에뮬레이터를 이용하고 있는데, 상기와 같이 매우 많은 수의 테스트벤치가 존재하는 경우에 모든 TB들을 이용하는 시뮬레이션의 전체시간을 단축시키기 위해서는 상기 시뮬레이션가속기 내지는 하드웨어에뮬레이터의 수도 많은 것이 요구된다 (예로 1000개의 TB가 있는 경우에 20대의 시뮬레이션가속기 내지는 하드웨어에뮬레이터가 있다면 각 시뮬레이션가속기 내지는 하드웨어에뮬레이터마다 50개의 TB를 할당하여서 20대의 시뮬레이션가속기 내지는 하드웨어에뮬레이터를 동시적으로 진행하여 시뮬레이션의 전체시간을 단축함).In addition, the dynamic-based verification for a particular DUV does not use only one TB, but uses a very large number of TBs (eg, relatively short 1000 TBs instead of one long TB). . Using multiple TBs instead of one TB allows you to run as many TB simulations as individual TBs on a large number of simulators (called simulation farms). Reduce the overall time of the simulation using all TBs. However, due to the recent design complexity, the simulation execution time using these individual TBs also becomes very long when using a simulator. In order to shorten the simulation time, a simulation accelerator or a hardware emulator is used. In order to shorten the overall time of the simulation using all TBs when there are a large number of test benches as described above, the simulation accelerator or the hardware emulator is used. In case of 1000 TB, 20 simulation accelerators or hardware emulators are allocated, and 50 TBs are assigned to each simulation accelerator or hardware emulator, and 20 simulation accelerators or hardware emulators are executed simultaneously. Shorten the overall time of the simulation).

그러나, 통상적으로 시뮬레이션가속기 내지는 하드웨어에뮬레이터는 시뮬레이터에 비하여 매우 고가임으로 현재 모든 회사들에서 시뮬레이터 라이센스 수는 상대적으로 많지만(회사당 많으면 1000개의 시뮬레이터 라이센스) 시뮬레이션가속기 내지는 하드웨어에뮬레이터의 수는 극히 적은 것(회사당 적게는 1-2대, 많아도 3-4대 수준)이 현실이다. 이와 같은 상황에서는 많은 수의 TB를 이용하는 동적기반의 검증을 효과적으로 진행하는 유일한 방법은 미국특허 5,937,179에서 제시한 방법과 같이 매우 적은 수의 시뮬레이션가속기 내지는 하드웨어에뮬레이터를 공유하는 것이다 (예로 1000개의 TB가 있고 1대의 시뮬레이션가속기가 있다고 가정하면 1000개의 TB에 의한 1000개의 시뮬레이션에 일정시간들에서 시뮬레이션가속기를 순서적으로 이용하고 다른시간에서는 여러개의 시뮬레이터들을 동시적으로 이용함). However, in general, simulation accelerators or hardware emulators are very expensive compared to simulators, so the number of simulator licenses or hardware emulators is relatively small (all companies have 1000 simulator licenses). At least 1-2 cars, at most 3-4 cars). In such a situation, the only way to effectively perform dynamic-based verification using a large number of TBs is to share a very small number of simulation accelerators or hardware emulators, such as the method proposed in US Pat. No. 5,937,179 (eg 1000 TB Assuming that there is one simulation accelerator, the simulation accelerators are used sequentially at a given time for 1000 simulations by 1000 TB, and at the same time, several simulators are used simultaneously).

그러나, 매우 적은 수의 시뮬레이션가속기 내지는 하드웨어에뮬레이터의 이와 같은 단순한 시간 분할을 통한 단순한 공유는 앞단-시뮬레이션, 디버깅, 후단-시뮬레이 션으로 이루어지는 동적기반 검증 프로세스를 고려하지 않고 있음으로 인하여 효율적이지 못할 뿐만 아니라, 일반적으로 설계객체의 상태정보 저장이 가능하지 않은 TB를 지원할 수 없음(즉, TB 설계객체의 상태정보 저장 및 이를 이용한 재출발이 불가능함으로 시뮬레이션가속기 내지는 하드웨어에뮬레이터를 이용한 시뮬레이션가속을 임의의 시점 t1에서부터 시뮬레이터를 이용한 시뮬레이션으로 전환할 수 없음)으로 인하여 매우 제한적인 상황(즉, TB가 입력벡터 형태이여서 이를 시뮬레이션가속과 시뮬레이션에서 사용 가능한 상황)에서만이 이용가능하다는 문제점이 있고, 매우 적은 수의 시뮬레이션가속기 내지는 하드웨어에뮬레이터를 사용하는 경우에 단위시간당 수행되는 시뮬레이션 횟수를 높이는 것에 다수의 시뮬레이션가속기 내지는 하드웨어에뮬레이터를 사용하는 경우와 비교하여서 많은 한계(단위시간에 수행되는 시뮬레이션 횟수를 다수의 시뮬레이션가속기 내지는 하드웨어에뮬레이터를 사용하는 경우에 근접하게 높일 수 없음)가 있다.However, a simple sharing through such a simple time division of very few simulation accelerators or hardware emulators is not efficient because it does not take into account the dynamic-based verification process consisting of leading-simulation, debugging, and trailing-simulation. In addition, it is not possible to support TB that generally cannot save the state information of design object (ie, it is impossible to save state information of TB design object and restart using it. There is a problem that can only be used in a very limited situation (i.e., TB is an input vector form so that it can be used in acceleration and simulation) due to the fact that it cannot be switched to simulation using the simulator. When using a number of simulation accelerators or hardware emulators, the number of simulations performed per unit time is higher than that of using a number of simulation accelerators or hardware emulators. Or hardware emulators cannot be increased closely).

따라서 본 발명의 목적은 디버깅 턴어라운드 시간을 줄일 수 있는 다양한 디버깅후-시뮬레이션 방법들을 설계자나 검증엔지니어가 이용할 수 있도록 함으로서 전체 설계 검증 시간을 크게 단축할 수 있도록 한다. 구체적으로 정확도와 수행시간면에서 트레이드오프(trade-off)가 가능한 2 이상의 디버깅후-시뮬레이션 방법들을 선택적으로 실행할 수 있도록 하여서 디버깅 턴어라운드 시간을 줄일 수 있도록 한다. Accordingly, an object of the present invention is to enable a designer or a verification engineer to use various post-debug simulation methods that can reduce debugging turnaround time, thereby greatly reducing overall design verification time. Specifically, two or more post-debug simulation methods that can be traded off in terms of accuracy and execution time can be selectively executed to reduce debugging turnaround time.

본 발명의 또 다른 목적은, 설계객체의 상태정보를 저장(save)하고 이를 후에 복귀(restore)하는 것이 불가능한 설계객체(예로 테스트벤치)를 포함하는 설계 검증 대상에 대하여서도 시뮬레이터를 이용한 시뮬레이션 실행, 내지는 시뮬레이션가속기 혹은 하드웨어에뮬레이터를 시뮬레이터와 함께 이용한 시뮬레이션 실행의 특정 시뮬레이션 시점에서 획득한 1 이상의 설계객체에 대한 상태정보를 이용하거나 내지는 추상화 상위수준에서 진행된 시뮬레이션 실행의 특정 시뮬레이션 시점 내지는 특정 시뮬레이션 구간에서 획득한 1 이상의 설계객체에 대한 상태정보를 이용하여서 디버깅 턴어라운드 시간의 단축, 내지는 디버깅 턴어라운드 시간의 단축과 버그의 존재를 파악하기 위한 디버깅전-시뮬레이션에 소요되는 시간의 단축을 함께 가능하게 하는 것이다.It is still another object of the present invention to execute a simulation using a simulator for a design verification object including a design object (eg, a test bench) that cannot save state information of a design object and later restore it. Or by using state information on one or more design objects obtained at a specific simulation point of a simulation run using a simulation accelerator or a hardware emulator in conjunction with a simulator, or at a specific simulation point or a specific simulation section of a simulation run advanced at an abstraction level. By using the status information of one or more design objects, it is possible to reduce the debugging turnaround time, or the debugging turnaround time, and the time required for the pre-debugging simulation to identify the existence of a bug. to be.

본 발명의 또 다른 목적은, 매우 적은 수의 시뮬레이션가속기 내지는 하드웨어에뮬레이터를 다수의 시뮬레이터들과 같이 효율적으로 이용하여서 많은 수의 TB를 사용하여서 검증을 수행하는 경우에 모든 TB들을 이용하는 시뮬레이션의 전체시간을 단축시키는 것(즉, 많은 수의 TB를 사용하여서 검증을 수행하는 경우에 단위 시간에 수행된 시뮬레이션 횟수를 증대시키는 것)이다. Another object of the present invention is to use the total time of a simulation using all TBs when performing verification using a large number of TBs by using a very small number of simulation accelerators or hardware emulators as efficiently as a number of simulators. To shorten (i.e. increase the number of simulations performed in unit time when verification is performed using a large number of TBs).

상기 목적들을 달성하기 위하여, 본 발명에 따른 설계 검증 방법을 적용하기 위하여 필요한 설계 검증 장치는 검증 소프트웨어와 1 내지는 2 이상의 시뮬레이터(Verilog 시뮬레이터 내지는 VHDL 시뮬레이터 내지는 SystemVerilog 시뮬레이터 내지는 SystemC 시뮬레이터 내지는 Verilog/VHDL/SystemVerilog/SystemC 시뮬레이터)가 인스톨된 1 내지는 2 이상의 컴퓨터로 구성될 수 있다. 본 발명에서의 설계 검증 방법을 적용할 수 있는 또 다른 설계 검증 장치는 검증 소프트웨어와 1 내지는 2 이상의 시뮬레이터가 인스톨된 1 내지는 2 이상의 컴퓨터와 상기 1 내지는 2 이상의 컴퓨터에 연결된 1 내지는 2 이상의 시뮬레이션가속기 내지는 하드웨어에뮬레이터(여기에는 시뮬레이션가속 기능을 가지는 1 이상의 FPGA 보드도 포함됨)으로 구성된다. 검증 소프트웨어는 컴퓨터에서 실행되며, 만일 상기 설계 검증 장치에 2 이상의 컴퓨터들이 있는 경우에는 이들 2 이상의 컴퓨터는 네트워크(예로 이더넷 혹은 기가비트이더넷)로 연결되어져서 컴퓨터들 간에 파일들 내지는 데이터의 이동을 네트워크를 통하여 가능하게 한다. 다시 한번 강조할 것은 본 특허에서의 시뮬레이션 실행(혹은 줄여서 시뮬레이션)은 시뮬레이터를 이용하여서 진행되는 것과 시뮬레이션가속기 내지는 하드웨어에뮬레이터를 이용하여서 진행되는 것 모두를 가르킨다.In order to achieve the above objects, the design verification apparatus required for applying the design verification method according to the present invention includes verification software and one or more simulators (Verilog simulator, VHDL simulator, SystemVerilog simulator, SystemC simulator, Verilog / VHDL / SystemVerilog /). SystemC simulator) may be configured with one or more computers installed. Another design verification apparatus to which the design verification method of the present invention can be applied includes one or more computers including verification software and one or more simulators, and one or two simulation accelerators connected to the one or more computers. It consists of a hardware emulator, which includes one or more FPGA boards with simulation acceleration. The verification software runs on a computer, and if there are two or more computers in the design verification device, these two or more computers are connected by a network (e.g. Ethernet or Gigabit Ethernet) to transfer the files or data between the computers. Enable it through It should be emphasized once again that simulation execution (or simulation for short) in the present patent refers to both a simulation run and a simulation accelerator or a hardware emulator.

앞단-디버깅에서 설계 수정이 이루어진 경우에 후단-디버깅에서 수행되는 디버깅후-시뮬레이션을 위한 통상적인 방법은 수정된 DUV와 TB 전체를 대상으로 하는 통상적인 시뮬레이션이다. 그러나 앞서서 이미 언급된 것과 같이 이와 같은 통상적인 시뮬레이션 방법은 매우 긴 디버깅후-시뮬레이션 시간을 요구하는 문제점이 있다. 이와 같은 문제점을 해결하기 위하여 특허 10-2004-93310에서 제시한 시뮬레이션 방법(본 특허에서는 이와 같은 시뮬레이션 방법을 인크리멘탈 시뮬레이션이라 정의함)을 이용하면 디버깅후-시뮬레이션의 시뮬레이션 시간을 효과적으로 단축시키는 것이 가능하다. 그러나, 이와 같은 인크리멘탈 시뮬레이션은 DUV와 TB 내에 존재하는 일부분의 설계객체에 대한 시뮬레이션을 시뮬레이션 시간 0에서부터 반드시 진행되어야 함으로 디버깅 턴어라운드 시간을 단축시키는 것에 한계가 있다. DUV와 TB는 일반적으로 계층적인 구조로 내부에 다양한 1 이상의 하위모듈들을 가지고 있는데, 이들 하위모듈 각각을 설계 블록이라고 할 수 있고, 설계 블록 내부에는 설계 모듈들이 존재하고, 설계 모듈 내부에는 서브모듈들이 존재한다. 이와 같은 설계 블록들, 내지는 설계 모듈들, 내지는 서브모듈들이나 DUV, 그리고 TB 각각 내지는 일부분 내지는 이들의 조합들 내지는 이들의 조합들의 일부분을 모두 본 특허에서는 설계객체(design object)들 (구체적 예로는, Verilog의 경우에는 module, VHDL인 경우에는 entity, SystemC의 경우에는 sc_module들이 모두 설계객체의 일 예임)이라고 지칭하기로 한다. 따라서 DUV도 설계객체의 하나로 볼 수 있으며, DUV의 일부분 내지는 DUV 내의 1 이상의 설계 블록들 내지는 설계 블럭들의 일부분 내지는 이 블록 내부의 설계 모듈들 내지는 이들의 일부분 내지는 이 설계 모듈 내부의 서브모듈들 내지는 이들의 일부분 등도 모두 설계객체로 볼 수 있다 (즉 DUV와 TB의 전체 내지는 DUT와 TB 내부의 임의의 부분을 모두 설계객체로 볼 수 있다).A typical method for post-debugging simulations performed in post-debugging when design modifications have been made in front-debugging is a conventional simulation of the modified DUV and TB as a whole. However, as already mentioned above, this conventional simulation method has the problem of requiring a very long post-debug simulation time. In order to solve this problem, the simulation method proposed in Patent 10-2004-93310 (this patent defines such a simulation method as incremental simulation) effectively reduces the simulation time of the post-debug simulation. It is possible. However, such incremental simulations have limitations in shortening the debugging turnaround time since the simulation of some design objects existing in the DUV and the TB must be performed from the simulation time zero. DUV and TB generally have a hierarchical structure and have various one or more submodules. Each of these submodules is a design block, and there are design modules inside the design block, and submodules inside the design module. exist. Such design blocks, or design modules, or submodules or DUVs, and TBs, respectively, to some or some of their combinations or some of their combinations, are all referred to herein as design objects (specific examples, In case of Verilog, module, VHDL entity, and SystemC sc_module are all examples of design objects). Thus, a DUV can be regarded as one of the design objects, and a part of the DUV, one or more design blocks in the DUV, a part of the design blocks, design modules within the block, sub-modules, or sub-modules within the design module are included. All of the parts of the can be viewed as design objects (ie, all of the DUV and TB or any part of the DUT and TB can be seen as design objects).

일반적으로 디버깅전-시뮬레이션을 시뮬레이션 시간 0에서부터 시뮬레이션 시간 T_o까지는 예상한대로 바르게 진행하게 되고(따라서 버그의 존재여부를 확인하지 못하고) T_o에서부터 T_e까지 진행하면서 시뮬레이션이 예상한대로 진행되지 않음으로 인하여 버그의 존재여부를 알게되게 된다. 이 특정 버그를 제거하기 위하여 앞단-디버깅에서 부분적으로 설계가 수정된 경우에 이와 같은 설계 수정이 이루어진 부분을 포함하는 설계객체의 입력값들과 출력값들은 설계 수정 이전과 설계 수정 이후에서 시뮬레이션 시간 0에서부터 시뮬레이션 시간 T_e까지 동일할 수도 있고, 시뮬레이션 시간 0에서부터 시뮬레이션 시간 T_o까지에서는 동일하지만 시뮬레이션 시간 T_o이후부터는 다를 수도 있고, 시뮬레이션 시간 T_o이전에서부터 다를 수도 있다. 또한, 상기 설계 수정이 이루어진 부분을 포함하는 설계객체의 상태정보(설계객체의 상태정보란 시뮬레이션 과정에서 특정 시뮬레이션 시점 내지는 특정 시뮬레이션 구간에서의 상기 설계객체에 존재하게 되는 플립플롭 출력값, 래치 출력값, 메모리 내용값, 그리고 조합적 폐루프가 존재하는 경우에 이 조합적 폐루프 상의 한 시그널 값들을 모두 포함하는 값을 말함)도 설계 수정 이전과 설계 수정 이후에서 시뮬레이션 시간 0에서부터T_o까지 동일할 수도 있고 다를 수도 있다. 어려운 점은 이와 같은 T_o 시간을 디버깅후-시뮬레이션 실행에 앞서서 정확하게 아는 것이 어렵다는 것이다.In general, the pre-debug simulation proceeds correctly as expected from simulation time 0 to simulation time T_o (hence the presence of bugs) and progresses from T_o to T_e so that the simulation does not proceed as expected. You will find out. If the design has been partially modified in front-debugging to eliminate this particular bug, then the inputs and outputs of the design object containing such design modifications will be generated from simulation time 0 before and after the design modification. It may be equal to the simulation time T_e, may be the same from simulation time 0 to simulation time T_o, but may be different from after simulation time T_o, or may be different from before simulation time T_o. In addition, the state information of the design object including the portion of the design modification (the design object state information is a flip-flop output value, latch output value, memory that exists in the design object at a specific simulation time point or a specific simulation section during the simulation process) The content value, and the value that includes all of the signal values on the combined closed loop, if there is a combined closed loop), may or may not be the same from simulation time 0 to T_o before and after the design modification. It may be. The difficulty is that it is difficult to know these T_o times correctly before running the post-simulation simulation.

그러나 만일 특정 디버깅에서 설계가 수정된 후에라도 이와 같은 설계가 수정된 부분을 포함하는 설계객체의 입력값들이 상기 설계 수정 이전과 설계 수정 이후에서 시뮬레이션 시간 0에서부터 시뮬레이션 시간 T_e까지에서 동일할 뿐만 아니라 시뮬레이션 시간 0에서부터 시뮬레이션 시간 T_o까지에서 상기 설계가 수정된 부분을 포함하는 설계객체의 상태정보가 상기 설계 수정 이전과 설계 수정 이후에서 동일한 경우(경우 1-1), 내지는 설계가 수정된 부분을 포함하는 설계객체(이 설계객체 가 DUV일 수 있음)의 입력값들이 상기 설계 수정 이전과 설계 수정 이후에서 시뮬레이션 시간 0에서부터 시뮬레이션 시간 T_e까지에서 동일하거나(설계가 수정된 부분을 포함하는 설계객체가 DUV인 경우이면 이는 비반응적인 TB(non-reactive TB)를 사용하는 상황임) 설계 수정 이전에 수행되는 디버깅전-시뮬레이션 실행을 시뮬레이터로 수행하며 설계 수정 이후에 설계가 수정된 부분을 포함하는 설계객체를 시뮬레이션가속기 내지는 하드웨어에뮬레이터를 이용하여서 시뮬레이션 시간 0에서부터 시뮬레이션 시간 T_o까지 수행하여서 T_o에서 얻어진 상기 설계가 수정된 부분을 포함하는 설계객체의 상태정보를 상기 설계가 수정된 부분을 포함하는 설계객체에 대한 시뮬레이터를 이용한 시뮬레이션 실행에 사용할 수 있는 경우(이와 같은 경우에는, 필요에 따라서 상기 디버깅전-시뮬레이션 실행에서 얻어진 상태정보를 "안정화된 상태정보"(본 특허에서 "안정화된 상태정보"란 시뮬레이션 시간이 진행되더라도 외부에서 추가적인 입력이벤트가 입력되지 않는 한에서는 더 이상의 상태정보 값의 변화가 없는 상태정보를 말함)로 만들어야 할 필요가 있는데, 이와 같은 안정화된 상태정보를 얻는 구체적 방법은 별도의 특허 10-2006-92574에서 설명된 "t-DCP 정확도증강 과정에서의 정확도가 증강된 상태정보를 얻는 방법"을 참고함)(경우 1-2), 내지는 설계 수정 이전에 수행되는 디버깅전-시뮬레이션 실행을 특정 추상화 수준(예로 게이트수준)에서 수행하며 설계 수정 이후에 설계가 수정된 부분을 포함하는 설계객체를 시뮬레이터를 이용하여서 상기 특정 추상화 수준(추상화 수준에 대한 자세한 설명은 별도의 특허 10-2006-92574를 참조함)보다 높은 추상화 수준(예로 레지스터전송수준)에서 시뮬레이션 시간 0에서부터 시뮬레이션 시 간 T_o까지 수행하여서 T_o에서 얻어진 상기 설계가 수정된 부분을 포함하는 설계객체의 상태정보를 상기 설계가 수정된 부분을 포함하는 설계객체에 대한 시뮬레이터를 이용한 원래의 특정 추상화 수준(예로 게이트수준)에서의 시뮬레이션 실행에 사용할 수 있는 경우(경우 1-3)에는, 각각 디버깅후-시뮬레이션을 상기 설계가 수정된 부분을 포함하는 설계객체의 상태정보를 시뮬레이션 시간 T_o에서 수정 이전의 상태정보와 동일하게 복귀(restore)하거나(경우 1-1), 내지는 디버깅후-시뮬레이션을 시뮬레이션가속기 내지는 하드웨어에뮬레이터를 이용한 시뮬레이션 시간 0에서부터 시뮬레이션 시간 T_o까지의 시뮬레이션 실행에서 시뮬레이션 시점 T_o에서 수집된 상태정보를 설계가 수정된 부분을 포함하는 설계객체의 상태정보로서 시뮬레이터를 이용한 T_o에서부터의 시뮬레이션 실행(예로 게이트수준에서의 타이밍시뮬레이션 실행)에 이용하거나(경우 1-2), 내지는 디버깅후-시뮬레이션을 추상화 상위수준에서의 시뮬레이션 실행에서 시뮬레이션 시점 T_o에서 수집된 상태정보 내지는 이 상태정보의 안정화된 상태정보를 설계가 수정된 부분을 포함하는 원래의 낮은 추상화수준의 설계객체의 상태정보로서 시뮬레이터를 이용한 T_o에서부터의 원래의 낮은 추상화수준에서의 시뮬레이션 실행에 이용(이와 같은 경우에도, 필요에 따라서 상기 추상화 상위수준에서의 시뮬레이션 실행에서 얻어진 상태정보를 "안정화된 상태정보"로 만들어야 할 필요가 있는데, 이와 같은 안정화된 상태정보를 얻는 구체적 방법은 별도의 특허 10-2006-92574에서 설명된 "t-DCP 정확도증강 과정에서의 정확도가 증강된 상태정보를 얻는 방법"을 참고함)하여서 T_o에서부터 T_e까지의 설계가 수정된 부분을 포함하는 설계객체에 대한 시뮬레이션 실행을 매 우 신속하게 진행(경우 1-3)시키면 됨으로 디버깅 턴어라운드 시간을 크게 단축시킬 수 있다 (이와 같은 디버깅후-시뮬레이션을 본 특허에서는 "가정에 근거한 디버깅후-시뮬레이션"이라 칭함). 뿐만 아니라, 상기 T_o에서의 상태정보를 얻기 위하여 시뮬레이션가속기 내지는 하드웨어에뮬레이터를 이용하거나 내지는 디버깅전-시뮬레이션에서보다 높은 추상화수준에서의 시뮬레이션을 진행하는 경우에는 DUV에 대한 통상적인 시뮬레이션을 T_o에서부터 T_e까지의 시뮬레이션 내지는 T_o에서부터 T_e를 거쳐서 T_e 이후까지의 시뮬레이션에서 진행하기 위하여 필요한 DUV의 입력값들로서 상기 시뮬레이션가속기 내지는 하드웨어에뮬레이터를 이용한 시뮬레이션을 계속적으로 선 실행시키거나 내지는 상기 높은 추상화수준에서의 시뮬레이션을 계속적으로 선 실행시켜서 얻어지는 DUV의 입력값들(이와 같은 DUV의 입력값들은 TB에서부터 DUV의 입력으로서 인가되는 것임)을 이용하여서 상기 DUV에 대한 통상적인 시뮬레이션을 T_o에서부터 T_e까지 내지는 T_o에서부터 T_e를 거쳐서 T_e 이후로까지도 계속적으로 진행시키는 것도 가능하다. 이와 같이 진행하게 되면 1 이상의 특정 버그가 앞단-디버깅을 통하여 올바르게 제거되었는지를 판단하기 위한 디버깅후-시뮬레이션 과정이 t_e 이후에도 계속적으로 진행시키면서 추가적인 1 이상의 다른 버그를 찾기 위한 또 다른 디버깅전-시뮬레이션으로 자연적으로 연결되어져서 진행(즉, t_e 이후부터의 시뮬레이션은 새로운 1 이상의 버그를 찾기 위한 새로운 디버깅전-시뮬레이션이 됨)될 수 있도록 함으로 매우 효과적인데, 이와 같은 디버깅 방법을 본 특허에서는 "중첩된 디버깅후-시뮬레이션과 디버깅전-시뮬레이션 기반의 디버깅 방법"이라 칭하기로 한다. 상기의 경우들 중 경우 1-2에서는 필요시에 시뮬레이션가속기 내지는 하드웨어에뮬레이터를 이용한 디버깅후-시뮬레이션에서의 입력스티뮬러스로는 디버깅전-시뮬레이션 과정에서 수집되어서 파일 형태로 저장된(이와 같은 경우에는 시뮬레이션가속기 내지는 하드웨어에뮬레이터는 벡터 모드로 동작됨) 내지는 내장된 메모리 형식으로 저장된(이와 같은 경우에는 시뮬레이션가속기 내지는 하드웨어에뮬레이터는 합성된 테스트벤치 모드로 동작됨. 즉 TB와 DUV가 모두 합성되어져서 시뮬레이션가속기 내지는 하드웨어에뮬레이터의 하드웨어검증플랫폼에서 동작됨으로 제일 높은 실행속도로 동작이 가능함) 입력벡터를 이용할 수 있음으로 시뮬레이션 속도를 크게 높일 수도 있다. However, even after a design is modified in a particular debugging, the inputs of a design object containing such a design modification are not only the same from simulation time 0 to simulation time T_e before and after the design modification, but also the simulation time. If the state information of the design object including the modified part of the design from 0 to the simulation time T_o is the same before and after the design modification (case 1-1), or the design including the modified part of the design The inputs of an object (this design object may be a DUV) are the same from simulation time 0 to simulation time T_e before and after the design modification, or if the design object containing the modified portion of the design is a DUV. This is a situation where non-reactive TB is used. The pre-debug simulation simulation is executed by the simulator before the modification, and after the design modification, the design object including the modified part is executed from simulation time 0 to simulation time T_o by using the accelerator or hardware emulator. When the state information of the design object including the modified part of the design obtained can be used for simulation execution using a simulator for the design object including the modified part of the design (in such a case, the debugging as necessary The state information obtained in the pre-simulation execution is referred to as "stabilized state information" ("stable state information" in this patent), even if the simulation time proceeds, there is no change in the state information value unless additional input events are input from the outside. Status information The specific method for obtaining such stabilized state information is described in the separate patent 10-2006-92574, "How to obtain state information with increased accuracy in t-DCP accuracy enhancement process". (Case 1-2), or pre-debugging simulations performed before design modification at a specific abstraction level (eg gate level), and design objects containing modifications to the design after design modification. By using a simulator to perform simulation time 0 to simulation time T_o at an abstraction level (e.g., register transfer level) higher than the specific level of abstraction (for a detailed description of the abstraction level, see separate patent 10-2006-92574). The design object including the modified part of the state information of the design object including the modified part of the design obtained in T_o If it can be used to run the simulation at the original specific abstraction level (eg gate level) using the simulator for the case (cases 1-3), then each post-debug simulation of the design object contains the modified part of the design. Restore the information to the same state information as before the modification at simulation time T_o (1-1), or run the simulation from simulation time 0 to simulation time T_o using simulation accelerator or hardware emulator. The state information collected at the simulation time point T_o is used as the state information of the design object including the modified part of the design to execute the simulation from T_o using the simulator (eg, timing simulation at the gate level) (case 1-2). ), Or post-debugging-simulation abstraction In the execution of the simulation at the level, the state information collected at the simulation time point T_o or the stabilized state information of the state information from the T_o using the simulator as the state information of the original low abstraction level design object including the modified part of the design. Originally used to run simulations at low abstraction levels (even in this case, it is necessary to make the state information obtained from the simulation execution at the higher level of abstraction as "stabilized state information" as necessary. For a specific method of obtaining the state information, refer to "How to obtain the state information with increased accuracy in the t-DCP accuracy augmentation process" described in a separate patent 10-2006-92574) and the design from T_o to T_e is modified. Run simulations very quickly on design objects containing embedded sections (cases 1-3 This greatly reduces the debugging turnaround time (this post-simulation simulation is referred to in this patent as "post-simulation based simulation"). In addition, when a simulation accelerator or a hardware emulator is used to obtain state information in the T_o, or when the simulation is performed at a higher abstraction level than in the pre-debugging simulation, the general simulation of the DUV is performed from T_o to T_e. As the input values of the DUV required for the simulation or the simulation from T_o to T_e and after T_e, the simulation accelerator or the hardware emulator continuously executes the simulation or the simulation at the high abstraction level is continuously performed. A typical simulation of the DUV is performed from T_o to T_e to T_ using the inputs of the DUV obtained by executing (the inputs of these DUVs are applied as inputs of the TB to the DUV). It is also possible to continue from o to T_e and beyond T_e. This way, the post-debug simulation to determine whether one or more specific bugs have been correctly removed through front-end debugging continues naturally after t_e, while another pre-debug simulation to find one or more additional bugs. This method is very effective by allowing the process to be linked to (ie, the simulation after t_e becomes a new pre-simulation to find one or more new bugs). -Simulation and Pre-Development-Simulation based debugging method. In the above cases, in case 1-2, the simulation accelerator or the input stimulus in the post-debug simulation using the hardware emulator is collected in the simulation process before the debugging and stored in a file form (in this case, the simulation accelerator). The hardware emulator operates in vector mode or stored in the built-in memory format (in this case, the simulation accelerator or hardware emulator operates in a synthesized testbench mode, ie both TB and DUV are synthesized to simulate accelerator or hardware). It can be operated at the highest execution speed by operating on the hardware verification platform of the emulator.) By using the input vector, the simulation speed can be greatly increased.

그러나, 이와 같은 방법을 적용하기 위한 가정은 앞에서 이미 언급된 대로 설계가 수정된 후에라도 이와 같은 설계가 수정된 부분을 포함하는 설계객체의 입력값들이 상기 설계 수정 이전과 설계 수정 이후에서 시뮬레이션 시간 0에서부터 시뮬레이션 시간 T_e까지에서 동일할 뿐만 아니라 시뮬레이션 시간 T_o에서 상기 설계가 수정된 부분을 포함하는 설계객체의 상태정보가 상기 설계 수정 이전과 설계 수정 이후에서 동일하거나, 내지는 시뮬레이션가속기 내지는 하드웨어에뮬레이터를 이용하여서 진행한 시뮬레이션의 시뮬레이션 시간 T_o에서 수집된 상태정보가 올바르거나, 내지는 추상화 상위 수준에서 진행한 시뮬레이션의 시뮬레이션 시간 T_o에서 수집된 상태정보가 올바라야만 한다는 것이다. 이와 같은 전제 조건으로서의 가정이 올바른 것인지를 확인하는 방법은 첫째로는 설계를 잘 파악하고 있는 설계자나 검증엔지니어가 이를 보장하거나, 둘째로는 가정에 근거한 디버깅후-시뮬레이션 실행 후에 별도의 디버깅후-시뮬레이션 실행을 통하여 이를 확인하는 것이다 (본 특허에 서는 이와 같은 별도의 디버깅후-시뮬레이션을 "가정확인을 위한 디버깅후-시뮬레이션"이라고 칭하기로 한다). 이와 같은 가정확인을 위한 디버깅후-시뮬레이션은 가정에 근거한 디버깅후-시뮬레이션과 동일한 시뮬레이터를 사용하여서 동일한 추상화 수준에서 실행하는 것도 가능하지만 신속한 실행을 위해서는 별도의 방법(추후에 자세히 설명됨)을 적용하는 것도 가능하다. 가정확인을 위한 디버깅후-시뮬레이션은 가정에 근거한 디버깅후-시뮬레이션과 동일한 시뮬레이터를 사용하여서 동일한 추상화 수준에서 실행하는 경우에도 가정에 근거한 디버깅후-시뮬레이션과 가정확인을 위한 디버깅후-시뮬레이션을 병렬적으로 실행하는 것이 가능할 뿐만 아니라, 혹은 가정에 근거한 디버깅후-시뮬레이션 실행과 가정확인을 위한 디버깅후-시뮬레이션 실행을 순차적으로 실행하는 경우에도 시뮬레이션팜(simulation farm)을 이용하여 시뮬레이션 총처리량(total simulation throughput)을 높이는 것에 유리하다. However, the assumption for applying this method is that even after the design has been modified as previously mentioned, the inputs of the design object containing such a modified portion of the design object have been changed from simulation time 0 before and after the design modification. The state information of the design object which is not only identical to the simulation time T_e but also includes the modified part of the design at the simulation time T_o is the same before or after the design modification, or proceeds using a simulation accelerator or a hardware emulator. The state information collected at the simulation time T_o of a simulation is correct, or the state information collected at the simulation time T_o of the simulation performed at a high level of abstraction must be correct. The first method to check whether the assumptions are correct is to ensure that the designer or verification engineer who has a good understanding of the design, or secondly, to post-debug-simulate after the execution of the assumptions based on the assumptions. This is verified by execution (in this patent, such a separate post-debug simulation is referred to as "post-debug simulation for home verification"). This post-debug simulation for assumptions can also be run at the same level of abstraction using the same simulator as for post-debug simulations based on assumptions, but a separate method (described later) can be used for faster execution. It is also possible. Post-Debugging-Simulation for Assumption Verification is performed in parallel with hypothesis-based debugging and Post-Debug-simulation for Assumption verification even when running at the same level of abstraction using the same simulator as Assumption-based Debug-Simulation. Not only is it possible to run it, but it is also possible to use a simulation farm to perform total simulation throughput, even when executing post-debug simulation simulations based on assumptions and post-debug simulation simulations for assumptions. It is advantageous to increase.

그러나, 앞에서 이미 언급된 것과 같이 가정확인을 위한 디버깅후-시뮬레이션의 신속한 실행을 위해서는 이와 같은 가정확인을 위한 디버깅후-시뮬레이션을 시뮬레이션가속기 내지는 하드웨어에뮬레이터를 이용하여서 수행하거나, 혹은 가정에 근거한 디버깅후-시뮬레이션에 비하여 상위 추상화 수준에서 수행하거나, 혹은 별도의 특허 10-2006-92574에 언급된 시간분할적병렬시뮬레이션 내지는 분산처리적병렬시뮬레이션 방법을 적용할 수 있는데 이에 대한 자세한 설명은 생략함으로 특허 10-2006-92574를 참조하기로 한다. 가정확인을 위한 이와 같은 디버깅후-시뮬레이션을 시뮬레이션가속기 내지는 하드웨어에뮬레이터를 이용하거나, 혹은 가정에 근거한 디버깅후-시뮬레이션에 비하여 상위 추상화 수준에서 수행하거나, 혹은 별도의 특허 10-2006-92574에 언급된 시간분할적병렬시뮬레이션 내지는 분산처리적병렬시뮬레이션 방법을 적용하여 신속하게 수행하기 위해서는 디버깅전-시뮬레이션 과정에서 DUV와 TB에 존재하는 1 이상의 설계객체들에 대한 입력값들 내지는 입력값들과 출력값들을 시뮬레이션 시간 전체에서 저장하는 동시에 필요에 따라서는 1 이상의 특정 시뮬레이션 시간 내지는 시뮬레이션 구간에서 DUV와 TB에 존재하는 1 이상의 설계객체들에 대한 상태정보를 저장한 후에 이들의 전체 내지는 일부분을 디버깅후-시뮬레이션 과정에서 이용하여야 한다 (이에 관련된 자세한 사항은 특허 10-2005-116706을 참조한다). However, as already mentioned above, for fast execution of post-debugging simulation for assumption verification, this post-debug simulation for assumption verification is performed by using a simulation accelerator or a hardware emulator, or post-debugging based on assumption. Compared to the simulation, it can be performed at a higher level of abstraction, or the time-divisional parallel simulation or distributed processing parallel simulation method mentioned in the separate patent 10-2006-92574 can be applied. See -92574. Such post-debugging simulations for assumption verification may be performed using a simulation accelerator or a hardware emulator, or performed at a higher level of abstraction than post-debugging simulations based on assumptions, or the time mentioned in separate patent 10-2006-92574. In order to perform fast execution by applying the partitioned parallel simulation or distributed parallel parallel simulation method, the simulation time is used to calculate the input values or input values and output values for one or more design objects in the DUV and TB during the pre-debugging simulation. At the same time, if necessary, the state information of one or more design objects in the DUV and TB can be saved at one or more specific simulation times or simulation intervals, and then all or part of them can be used in the post-simulation process. Should See patent 10-2005-116706 for related details).

본 특허에서는 위에서 설명된 방법에 따라서 "가정에 근거한 디버깅후-시뮬레이션" 내지는 "가정에 근거한 디버깅후-시뮬레이션"과 "가정확인을 위한 디버깅후-시뮬레이션"으로 이루어지는 디버깅후-시뮬레이션 방법을 "방식1-가정 기반 디버깅후-시뮬레이션"이라 칭하기로 한다.According to the above-described method, the present patent describes a post-debug-simulation method consisting of "post-simulation based on home" or "post-simulation based on home" and "post-debug simulation for home verification". Home-based post-simulation.

또한 "인크리멘탈 시뮬레이션에 의한 디버깅후-시뮬레이션" 내지는 "인크리멘탈 시뮬레이션에 의한 디버깅후-시뮬레이션"과 DUV와 TB 전체를 대상으로 하는 시뮬레이션 실행(이 시뮬레이션 실행은 시뮬레이터만을 이용할 수도 있지만, 시뮬레이션가속기 내지는 하드웨어에뮬레이터를 이용할 수도 있음)을 통한 "가정확인을 위한 디버깅후-시뮬레이션"으로 이루어지는 디버깅후-시뮬레이션 방법을 "방식2-가정 기반 디버깅후-시뮬레이션"이라 칭하기로 한다. 인크리멘탈 시뮬레이션을 통한 디버깅후-시뮬레이션에서 시뮬레이션 속도를 높이기 위해서는 디버깅전-시뮬레이션을 시뮬레이터를 이용하여 진행하였다고 하더라도 디버깅후-시뮬레이션을 부분적으로 내지는 전체적으로 시뮬레이션가속기 내지는 하드웨어에뮬레이터를 이용하여서 인크리멘탈 시뮬레이션 방식으로 진행하는 것도 가능하다. 이와 같은 시뮬레이션가속기 내지는 하드웨어에뮬레이터를 부분적으로 내지는 전체적으로 활용한 인크리멘탈 시뮬레이션 방식으로 진행되는 디버깅후-시뮬레이션에서의 입력스티뮬러스로는 디버깅전-시뮬레이션 과정에서 수집되어서 파일 형태로 저장된(이와 같은 경우에는 시뮬레이션가속기 내지는 하드웨어에뮬레이터는 벡터 모드로 동작됨) 내지는 내장된 메모리 형식으로 저장된(이와 같은 경우에는 시뮬레이션가속기 내지는 하드웨어에뮬레이터는 합성된 테스트벤치 모드로 동작됨. 즉 TB와 DUV가 모두 합성되어져서 시뮬레이션가속기 내지는 하드웨어에뮬레이터의 하드웨어검증플랫폼에서 동작됨으로 제일 높은 실행속도로 동작이 가능함) 입력벡터를 이용할 수 있음으로 시뮬레이션 속도를 크게 높일 수도 있다. 단, 이와 같은 경우에 디버깅전-시뮬레이션이 이벤트-구동 시뮬레이터를 이용하여서 이벤트 정확도를 가지고 진행되고 디버깅후-시뮬레이션이 사이클-기반 시뮬레이션가속기 내지는 하드웨어에뮬레이터를 활용하여서 사이클 정확도를 가지고 진행된 경우에는 인크리멘탈 시뮬레이션에서의 설계수정이 이루어진 설계객체들의 수정전 출력 값들(이들은 이벤트 정확도를 가지고 있음)과 수정후 출력 값들(이들은 사이클 정확도를 가지고 있음)의 비교를 위하여 두 비교 대상의 정확도를 동일하게 맞추어 주는 것이 필요하다 (인크리멘탈 시뮬레이 션 방법의 자세한 사항은 특허 10-2004-93310을 참고함). 즉, 이벤트 정확도를 가지는 수정전 입출력 값들을 사이클 정확도만을 가지도록 추상화하거나(예로, 시뮬레이터를 이용한 디버깅전-시뮬레이션의 시뮬레이션 실행에서 얻어지는 상기 설계수정이 이루어진 설계객체들의 수정전 출력값들은 구동클럭의 엑티브에지에 맞추어서 변하도록 함). 내지는 반대로 사이클 정확도를 가지는 수정후 입출력 값들을 이벤트 정확도를 가지도록 구체화(예로, 시뮬레이션가속기 내지는 하드웨어에뮬레이터를 이용한 디버깅후-시뮬레이션의 시뮬레이션 실행에서 얻어지는 상기 설계수정이 이루어진 설계객체들의 수정후 출력값들은 구동클럭의 엑티브에지 발생 후에 사전에 정해진 시연시간 후(예로, 1ns 후)에 맞추어서 변하는 것으로 봄)할 수 있는데 이와 같은 과정은 디버깅후-시뮬레이션 과정 도중에 적용되어질 수도 있고, 혹은 디버깅후-시뮬레이션 과정 전에 미리 적용되어질 수 있다. 또한 이 방식2-가정 기반 디버깅후-시뮬레이션 경우에서도 방식1-가정 기반 디버깅후-시뮬레이션 경우에서와 같이 "중첩된 디버깅후-시뮬레이션과 디버깅전-시뮬레이션 기반의 디버깅 방법"을 적용할 수 있다.In addition, "Post Debug Simulation with Incremental Simulation" or "Post Debug Simulation with Incremental Simulation" and simulation runs for the entire DUV and TB (This simulation run can be used only with the simulator, The post-debug simulation method, which consists of "post-debug simulation for home confirmation" (or may use a hardware emulator), will be referred to as "method two-home based post-debug simulation". In order to speed up the simulation in post-debugging simulation through incremental simulation, even if the pre-debug simulation is performed by using the simulator, the incremental simulation method is performed partially or entirely by using the simulation accelerator or the hardware emulator. It is also possible to proceed. The input stimulus in post-debugging simulation, which is performed by the incremental simulation method using partial or full simulation accelerator or hardware emulator, is collected during pre-simulation and stored in file form (in this case, The simulation accelerator or hardware emulator operates in vector mode or stored in the built-in memory format (in this case, the simulation accelerator or hardware emulator operates in the synthesized testbench mode, ie both the TB and DUV are synthesized. It is possible to operate at the highest execution speed by operating in the hardware verification platform of the hardware emulator.) By using the input vector, the simulation speed can be greatly increased. However, in this case, the pre-debugging simulation is performed with event accuracy using the event-driven simulator, and if the post-debugging simulation is performed with cycle accuracy using the cycle-based simulation accelerator or hardware emulator, it is incremental. It is necessary to equalize the accuracy of the two comparison targets in order to compare the pre-modification output values (these have event accuracy) and the post-modification output values (these have cycle accuracy) of the design objects that have undergone design modifications in the simulation. (See patent 10-2004-93310 for details of incremental simulation method). That is, abstract the corrected I / O values with event accuracy to have only cycle accuracy (e.g., the unmodified output values of the design modifications made by the design modification obtained in the simulation execution of the pre-debugging simulation using the simulator are adapted to the active edge of the driving clock. To change). In other words, the modified input / output values with cycle accuracy are specified to have event accuracy (for example, the post-modification output values of the design objects in which the design modification is obtained in the simulation execution of the post-debugging simulation using the accelerator or the hardware emulator are driven clocks. After the active edge of the program, it can be considered to change after a predetermined demonstration time (for example, after 1 ns). This process may be applied during the post-debugging-simulation process, or before the post-debugging-simulation process. Can be done. In addition, in this case-home-post-simulation-simulation case, the same nested post-simulation and pre-debug-simulation-based debugging method can be applied as in the case of scheme 1-home-based post-debugging-simulation.

이와 같은 인크리멘탈 시뮬레이션 방법을 이용하는 방식2-가정 기반 디버깅후-시뮬레이션은 시뮬레이션가속기 내지는 하드웨어에뮬레이터를 활용하는 경우에, 매우 적은 수의 시뮬레이션가속기 내지는 하드웨어에뮬레이터를 다수의 시뮬레이터들과 같이 효율적으로 이용하여서 많은 수의 TB를 사용하여서 검증을 수행하게 되면 모든 TB들을 이용하는 시뮬레이션의 전체시간을 단축시키는 것(혹은, 다른 말로 많은 수의 TB를 사용하여서 검증을 수행하는 경우에 단위 시간에 수행할 수 있는 시뮬레 이션 실행수를 증대시키는 것)이 다음과 같이 가능하다 (본 특허에서는 아래에서 자세하게 설명될 이와 같은 시뮬레이션을 "시뮬레이션가속기 내지는 하드웨어에뮬레이터를 우선적으로 이용하여 전환시점 Ts(i)를 결정하고 시뮬레이션가속의 결과를 이용하는 시뮬레이터를 활용한 시뮬레이션을 통한 방식2-가정 기반 디버깅후-시뮬레이션"이라 칭하기로 한다). 각각의 TB 마다 디버깅전-시뮬레이션에서 수집된 DUV의 입력정보와 출력정보(본 특허에서 입력정보와 출력정보는 DUV의 입력포트와 출력포트와 입출력포트에서의 값들만이 아니라, cross module reference(XMR)와 같은 방식으로 이루어지는 DUV 설계객체와 TB 설계객체 간의 읽기/쓰기를 고려한 것임. 구체적 예로 TB 설계객체가 DUV 설계객체의 내부 시그널을 cross module reference하여 DUV에서부터 TB로 읽어내는 경우에는 이 DUV의 내부 시그널도 DUV 출력정보에 저장하고, TB 설계객체가 DUV 설계객체의 내부 시그널을 cross module reference하여 TB에서의 시그널로 TB에서부터 DUV에 쓰는 경우에는 이 TB의 시그널도 DUV 입력정보에 저장)를 수집한 후에, 앞단-디버깅에서 설계 변경을 수행하고 디버깅후-시뮬레이션을 인크리멘탈 시뮬레이션으로 진행하는 상황에서 우선 시뮬레이션가속기 내지는 하드웨어에뮬레이터를 활용하여서 상기 디버깅전-시뮬레이션에서 수집된 DUV의 입력정보를 입력스티뮬러스로서, DUV의 출력정보를 예상출력으로서 사용하여서 시뮬레이션가속을 벡터 모드 내지는 임베디드테스트벤치 모드(TB를 DUV와 같이 합성하여서 하드웨어검증플랫폼에서 DUV와 TB를 모두 실행시키는 방식)로 실제 얻어지는 예상출력이 상기 예상출력과 달라지는 시점(특정 테스트벤치 TB_i와 관련된 이 시점을 전환시점 Ts(i)라 표시함)까지 고속으로 진행하게 되는 데, 이와 같은 진행은 전체 TB들의 각각을 대상으로 활용될 수 있는 1 내지는 2 이상의 그러나 시뮬레이터의 수에 비해서는 매우 적은 수의 시뮬레이션가속기 내지는 하드웨어에뮬레이터를 사용하여서 매우 빠른 시간안에 진행되어 진다. 시뮬레이션가속기 내지는 하드웨어에뮬레이터를 사용하여서 전체 TB들의 개개의 TB 각각으로 진행되는 이 디버깅후-시뮬레이션 진행과정에서 체크포인트(체크포인트란 1 이상의 특정 시뮬레이션 시점 내지는 시뮬레이션 구간에서 DUV의 상태정보를 저장하여서 추후에 이 저장된 상태정보를 DUV에 재설정하여서 시뮬레이션이 재실행 가능하도록 한 것을 말함)를 상기 전환시점 Ts(i)에서 생성하여서 이 전환시점 Ts(i)에서부터는 DUV와 TB(i) 전체를 대상으로 시뮬레이터를 이용한 시뮬레이션으로 진행되어질 수 있게 하거나, 내지는 이 디버깅후-시뮬레이션 진행과정에서 1 이상의 체크포인트를 주기적으로 생성하거나 비주기적으로 생성하여서 전환시점 Ts(i)보다 과거에 있으면서 Ts(i)와 제일 가까운 체크포인트에서부터는 DUV와 TB(i) 전체를 대상으로 시뮬레이터를 이용한 시뮬레이션으로 진행되어질 수 있게한다. 그러나, 상기 전환시점 Ts(i)에서부터, 내지는 전환시점 Ts(i)보다 과거에 있으면서 Ts(i)와 제일 가까운 체크포인트에서부터 DUV와 TB(i)를 대상으로 진행되는 시뮬레이터를 이용한 시뮬레이션은 TB(i)도 상기 전환시점 Ts(i)에서부터, 내지는 전환시점 Ts(i)보다 과거에 있으면서 Ts(i)와 제일 가까운 체크포인트에서부터 수행되어질 수 있어야만 가능하게 된다. 하지만, 일반적인 TB 설계객체는 합성가능하게 만들어지는 DUV 설계객체와는 다르게 TB 설계객체의 상태정보를 이용하여서 체크포인트를 만드는 것이 일반적으로 불가능하다 (TB 설계객체의 상태정보를 이용하여서 체크포인트를 만 드는 것이 가능하려면 TB도 DUV와 같이 합성가능하게 하여야 하지만, 이는 매우 큰 제약을 TB 구술방식에 가하는 것임으로 많은 문제점이 있음). 따라서 TB(i)도 상기 전환시점 Ts(i)에서부터, 내지는 전환시점 Ts(i)보다 과거에 있으면서 Ts(i)와 제일 가까운 체크포인트에서부터 수행되어질 수 있게 하는 유일한 방법은 TB(i)를 수행하는 시뮬레이터에 의한 시뮬레이션의 상태를 저장하고 이를 재출발시키는 것(즉, 설계객체의 상태정보가 아닌 시뮬레이션 상태정보를 저장하고 복원시키는 시뮬레이션의 save/restart 방법을 사용하는 것)이다 (대부분의 상용 HDL 시뮬레이터들과 SystemC 시뮬레이터들은 이와 같은 시뮬레이션 상태를 이용한 save/restart를 가능하게 하는 기구현된 시뮬레이션 명령어를 제공함). 이와 같은 방법을 사용하게 되면 인크리멘탈 시뮬레이션 방법을 채용한 디버깅후-시뮬레이션에서 DUV와 TB(i)를 대상으로 하는 시뮬레이터를 이용한 시뮬레이션이 전환시점 Ts(i)에서부터, 내지는 전환시점 Ts(i)보다 과거에 있으면서 Ts(i)와 제일 가까운 체크포인트에서부터 시작될 수 있게 하지만 이와 같은 DUV와 TB(i)를 대상으로 하는 시뮬레이터를 이용한 시뮬레이션은 하나의 시뮬레이션 실행코드(executable code)에 의하여 수행되어질 수 없고 최소 2개의 독립적 프로세스들과 이들간의 프로세스간통신(IPC: Inter-process Communication)로 이루어진 시뮬레이션에 의하여 수행되어져야 하는데, 이의 단점은 시뮬레이션 수행 시에 IPC 오버헤드로 인한 시뮬레이션 속도저하가 발생할 수 있다는 것과 각 독립적 프로세스들을 별도의 시뮬레이터에서 수행시켜야 함으로 2개의 시뮬레이터들(하나의 시뮬레이터는 DUV를 실행하고 또 하나의 시뮬레이터를 TB(i)를 실행) 내지는 3 이상의 시뮬레이터들(이와 같은 경우에는 DUV를 2 이상의 시뮬레이터들로 실행) 라이센스가 필요하다는 것이며, 장점은 이미 언급된 것과 같이 이와 같은 시뮬레이터를 이용한 시뮬레이션은 시뮬레이션 시간 0에서부터 전환시점 Ts(i)까지, 내지는 전환시점 Ts(i)보다 과거에 있으면서 Ts(i)와 제일 가까운 체크포인트까지는 실행될 필요가 없고(시뮬레이션 시간 0에서부터 전환시점 Ts(i)까지, 내지는 전환시점 Ts(i)보다 과거에 있으면서 Ts(i)와 제일 가까운 체크포인트까지는 시뮬레이션가속기 내지는 하드웨어에뮬레이터로 디버깅후-시뮬레이션의 제일 처음에서 이미 실행되었음) 전환시점 Ts(i)부터 내지는 전환시점 Ts(i)보다 과거에 있으면서 Ts(i)와 제일 가까운 체크포인트부터 진행되면 된다는 것이다 (이와 같이 시뮬레이터를 이용한 시뮬레이션은 시뮬레이션 시간 0에서부터 전환시점 Ts(i)까지, 내지는 전환시점 Ts(i)보다 과거에 있으면서 Ts(i)와 제일 가까운 체크포인트까지는 실행될 필요가 없고 전환시점 Ts(i)부터, 내지는 전환시점 Ts(i)보다 과거에 있으면서 Ts(i)와 제일 가까운 체크포인트부터 진행되는 것은 디버깅 턴어라운드 전체시간을 크게 단축하게 됨). This incremental simulation method is based on two-home-based post-debugging-simulation, which uses a small number of simulation accelerators or hardware emulators as efficiently as many simulators. Performing verification using a large number of TBs can shorten the overall time of the simulation using all TBs (or, in other words, a simulation that can be performed in unit time if the verification is performed using a large number of TBs). It is possible to increase the number of latencies as follows (in this patent, such a simulation, which will be described in detail below, may be performed using a simulation accelerator or a hardware emulator to determine the transition time Ts (i) and accelerate the simulation. Using the results of After simulation system debugging 2-home-based through the use of a simulator - will be referred to as a simulation "). For each TB, the input and output information of the DUV collected in the pre-debugging simulation (in this patent, the input and output information is not only the values at the DUV's input and output ports, but also the cross module reference (XMR). Considering read / write between the DUV design object and the TB design object in the same way as the above) For example, when the TB design object reads the DUV design object from the DUV to the TB by cross-module referencing the internal signal of the DUV design object, If the TB design object cross-references the internal signal of the DUV design object and writes it from TB to DUV as a signal from TB, the TB signal is also stored in the DUV input information. Later, in the context of making design changes in front-end debugging and running post-debug simulations to incremental simulation Using the shorthand or hardware emulator, the input information of the DUV collected in the pre-simulation is used as the input stimulus, and the output information of the DUV is used as the expected output. By combining both DUV and TB on the hardware verification platform), until the actual output is different from the expected output (this time associated with a specific testbench TB_i is denoted by the transition point Ts (i)). This is a high-speed process, which proceeds very quickly using one or more simulation accelerators or hardware emulators compared to the number of simulators that can be utilized for each of the entire TBs. It is done. During this post-debug simulation process, which proceeds to each individual TB of the entire TBs using a simulation accelerator or a hardware emulator, checkpoints (checkpoints are used to store the state information of the DUV at one or more specific simulation points or simulation intervals. The stored state information is reset to the DUV so that the simulation can be re-executed.) At the transition point Ts (i), the simulator is executed for the entire DUV and TB (i) from the transition point Ts (i). Checks closest to Ts (i) in the past than the transition point Ts (i) by generating one or more checkpoints periodically or non-periodically during the post-debug-simulation process. From the point, it simulates the entire DUV and TB (i) It should be able to proceed with simulation emitters. However, a simulation using a simulator that proceeds from the transition point Ts (i) to the DUV and TB (i) from the checkpoint closest to Ts (i) in the past than the transition point Ts (i) is performed by TB ( i) can only be performed from the transition point Ts (i), or from the checkpoint closest to Ts (i) in the past than the transition point Ts (i). However, unlike general DUV design objects that are made synthesizable, it is generally impossible to create checkpoints using the state information of TB design objects. In order to be possible, TB must be synthesizable like DUV, but there are many problems because it imposes a very large constraint on TB dictation. Thus, the only way for TB (i) to be carried out from the transition point Ts (i), or from the checkpoint closest to Ts (i), which is in the past than the transition point Ts (i), performs TB (i). It is to save the state of the simulation by the simulator and restart it (that is, to use the save / restart method of the simulation to save and restore the simulation state information rather than the state of the design object). And SystemC simulators provide implemented simulation commands that enable save / restart using these simulation states. Using this method, the simulation using the simulator for DUV and TB (i) in the post-debugging simulation using the incremental simulation method starts from the transition point Ts (i), or the transition point Ts (i). Although it is possible to start from the checkpoint closest to Ts (i) in the past, simulations using simulators such as DUV and TB (i) cannot be performed by a single simulation executable code. It must be performed by a simulation consisting of at least two independent processes and inter-process communication (IPC) between them. The disadvantages of this are that the simulation can be slowed down due to IPC overhead when performing the simulation. Each independent process must be run in a separate simulator Licenses from two simulators (one running DUV and another running TB (i)) or three or more simulators (in this case running DUV with two or more simulators), The advantage is that simulations using these simulators, as already mentioned, need to be run from simulation time 0 to the transition point Ts (i), or until the checkpoint closest to Ts (i), which is in the past than the transition point Ts (i). Without (from simulation time 0 to the transition point Ts (i), or to the checkpoint closest to Ts (i) in the past than the transition point Ts (i), after the debugging with the hardware accelerator or the hardware emulator-at the beginning of the simulation Was executed) Ts (i) and T from the transition point Ts (i) or earlier than the transition point Ts (i). (The simulation using the simulator is executed from simulation time 0 to the transition point Ts (i), or to the checkpoint closest to Ts (i) in the past than the transition point Ts (i). It is not necessary to proceed from the transition point Ts (i), or from the checkpoint closest to Ts (i) in the past than the transition point Ts (i), greatly reducing the debugging turnaround total time).

그러나, 설계에서 C 모델과 같은 외부모델(foreign model)들을 사용하거나 PLI/VPI/FLI를 이용하여서 C/C++ 코드와 같은 외부코드(foreign code)들이 같이 수행되어져야 하는 경우에는 종종 시뮬레이션의 상태정보를 저장하고 재출발시키는 방법도 매우 어렵거나 내지는 아주 불가능할 수 있다. 이와 같이 시뮬레이션가속기 내지는 하드웨어에뮬레이터에서 수행되어지는 설계객체를 제외한 나머지 설계객체전체를 수행하는 시뮬레이션의 상태를 저장하는 것이 불가능한 경우에 대해서는 다음과 같은 방법을 사용한다. 즉, 시뮬레이션가속기 내지는 하드웨어에뮬레이터를 이용하여서 설계변경된 DUV와 디버깅전-시뮬레이션에서 수집된 DUV에 대한 입력정보(입력스티뮬러스로 활용)와 출력정보(예상출력으로 활용)를 활용하여서 수행된 시뮬레이션가속에서 알아낸 전환시점 Ts(i)까지, 내지는 전환시점 Ts(i)보다 과거에 있으면서 Ts(i)와 제일 가까운 체크포인트까지는 상태저장이 이루어지지 않은 TB 설계객체(이 TB 설계객체에 외부모델들과 외부코드들이 모두 포함된 것으로 봄)만이 실제적으로 시뮬레이션 되어지고, 상태저장이 앞서서 시뮬레이션가속기 내지는 하드웨어에뮬레이터를 이용한 시뮬레이션 실행에서 이루어진 DUV 설계객체는 상기 TB 설계객체와 같이 수행되어지지만 실제적으로는 "휴면상태에 들어간 상황"(아래에서 자세히 설명됨)에서 시뮬레이션이 진행되어지고, 전환시점 Ts(i)부터 내지는 전환시점 Ts(i)보다 과거에 있으면서 Ts(i)와 제일 가까운 체크포인트부터는 이 시점까지는 휴면상태에 들어간 DUV도 "휴면상태에서 깨어나서"(아래에서 자세히 설명됨) TB 설계객체와 같이 시뮬레이션되어질 수 있게 한다. DUV 설계객체가 휴면상태에 들어간 상황이라 함은 DUV의 입출력 포트와 내부에 존재하는 모든 시그널들에 대하여 이벤트(이벤트란 논리값의 변화를 말함. 예로 0에서 1로의 변화, 0에서 X로의 변화, 내지는 0에서 Z로의 변화, 내지는 1에서 0으로의 변화, 내지는 1에서 X로의 변화, 내지는 1에서 Z로의 변화, 내지는 X에서 0으로의 변화, 내지는 X에서 1로의 변화, 내지는 X에서 Z로의 변화, 내지는 Z에서 0으로의 변화, 내지는 Z에서 1로의 변화, 내지는 Z에서 X로의 변화 등)가 전혀 발생하지 않게 하는 것이다. 이와 같은 DUV 설계객체가 일정한 시간구간 T1 < t < T2 동안 휴면상태로 들어가게 하는 구체적 방법의 예는 시뮬레이터의 force 명령을 사용하여서 DUV 설계객체에 존재하 는 모든 시그널들 각각에 대하여 특정값을 시점 T1에서 할당하고(assign) 원하는 시간구간(예로, 시뮬레이션 시점 0에서부터 전환시점 Ts(i)까지 내지는 전환시점 Ts(i)보다 과거에 있으면서 Ts(i)와 제일 가까운 체크포인트까지) T1 < t < T2 동안 유지시키면 되고(즉 원하는 시간구간 T1 < t <T2 동안에는 DUV 설계객체에 존재하는 모든 시그널들에 이벤트가 발생하지 않음. 따라서 이벤트-구동 방식의 시뮬레이션에서 특정 설계객체가 휴면 상태에 있게 되면 휴면 상태에 있는 설계객체에 대해서는 시뮬레이션 실행을 위한 오퍼레이션이 필요하지 않음으로 전체 시뮬레이션 속도가 증가하게 됨), DUV 설계객체를 휴면상태에서 깨어나게 하는 구체적 방법의 예는 시뮬레이터의 release 명령을 원하는 시점 T2 에서 사용하면 된다. 이 경우에 휴면상태에 들어가지 않은 TB 설계객체는 올바르게 동작되도록 하는 것이 중요한데, 이를 위해서 DUV가 휴면상태에 들어간 시뮬레이션 시점 0에서부터 전환시점 Ts(i)까지 내지는 전환시점 Ts(i)보다 과거에 있으면서 Ts(i)와 제일 가까운 체크포인트까지는 TB 설계객체는 디버깅전-시뮬레이션 실행 과정에서 저장된 DUV의 출력정보를 TB 설계객체의 입력스티뮬러스로 사용하여서 DUV 설계객체가 휴면상태로 들어간 경우에도 TB 설계객체가 DUV 설계객체가 정상적으로 동작하는 상황과 동일하게 올바르게 동작할 수 있게 한다 (즉, DUV 설계객체가 휴면상태에 들어간 경우에도 TB 설계객체는 DUV 설계객체가 정상적으로 동작하는 것 같이 속아 넘어가게 되는 것임). However, if the design requires foreign models, such as C models, or foreign codes, such as C / C ++ code, to be executed together using PLI / VPI / FLI, often state information of the simulation Storage and restarting can be very difficult or even impossible. As described above, when it is impossible to store the state of the simulation that performs the entire design object except the design object executed in the simulation accelerator or the hardware emulator, the following method is used. In other words, in the simulation acceleration performed by using input information (used as input stimulus) and output information (used as expected output) for the DUV modified by using the accelerator or hardware emulator and the DUV collected in the pre-debugging simulation TB design objects that have no state storage until the transition point Ts (i) found, or the checkpoint closest to Ts (i) in the past than the transition point Ts (i). Only external code is included), and the DUV design object is simulated using simulation accelerator or hardware emulator before the state storage is performed like the TB design object. In the "Enter the situation" (described below). DUVs that have been dormant from the transition point Ts (i) or from the checkpoint closest to Ts (i) from the transition point Ts (i) to this point "wake up from dormancy" (details below) Enabled to be simulated with TB design objects. When a DUV design object enters a dormant state, an event (event is a change in logic value) for all signals existing in and out of the DUV's I / O port. For example, 0 to 1 change, 0 to X change, From 0 to Z, from 1 to 0, from 1 to X, from 1 to Z, from X to 0, from X to 1, from X to Z , From Z to 0, from Z to 1, from Z to X, etc.) at all. An example of a specific way for such a DUV design object to enter a dormant state for a period of time T1 <t <T2 is to use a simulator force command to specify a specific value for each of the signals present in the DUV design object for each point in time. Is assigned to the desired time interval (for example, from simulation time 0 to the transition time Ts (i) or to the checkpoint closest to Ts (i) in the past than the transition time Ts (i)) T1 <t <T2 In the event that all the signals present in the DUV design object do not occur during the desired time period T1 <t <T2. For design objects in the model, the overall simulation speed is increased because no operation is required to run the simulation.), DUV An example of a specific method to awaken the system object in the sleep state is using at the time T2 the desired release command of the simulator. In this case, it is important to ensure that TB design objects that do not enter the dormant state operate correctly, from the point of time when the DUV enters the dormant state to the transition point Ts (i) or past the transition point Ts (i). Until the checkpoint closest to Ts (i), the TB design object uses the output information of the stored DUV as input input to the TB design object during the pre-debug simulation, so that the TB design object can be stored even when the DUV design object enters the dormant state. Ensures that the DUV design object operates correctly in the same manner as it normally does (that is, even if the DUV design object goes to sleep, the TB design object will be deceived as if the DUV design object was operating normally). .

시뮬레이션 시점 0에서부터 전환시점 Ts(i)까지 내지는 전환시점 Ts(i)보다 과거에 있으면서 Ts(i)와 제일 가까운 체크포인트까지는 DUV가 휴면상태에 들어간 상황으 로 실제적으로는 TB만이 디버깅전-시뮬레이션 과정에서 저장된 DUV의 출력정보를 이용하여서 시뮬레이션되는 것임으로 시뮬레이션을 상대적으로 빠르게 진행되는 것이 가능하다 (예로 TB의 시뮬레이션 오버헤드가 10%이고 DUV의 시뮬레이션 오버헤드가 90%이면 이와 같은 DUV를 휴면상태에 들어가게 하여 TB만을 실행하는 시뮬레이션 방식은 시뮬레이션 속도를 거의 10배 가까이 높일 수 있음). From the simulation point 0 to the transition point Ts (i) or to the checkpoint closest to the transition point Ts (i) and closest to Ts (i), the DUV enters the dormant state. Since the simulation is performed using the output information of the stored DUV, the simulation can be performed relatively quickly. (For example, if the simulation overhead of TB is 10% and the simulation overhead of DUV is 90%, such a DUV is dormant. A simulation method that runs only TBs by entering into can speed up the simulation by nearly 10 times).

시뮬레이션가속기 내지는 하드웨어에뮬레이터에서 수행되어지는 설계객체를 제외한 나머지 설계객체 전체를 수행하는 시뮬레이션의 상태를 저장하는 것이 불가능한 경우에 대해서는 다음과 같은 또 다른 방법을 사용할 수 있다. 즉, 시뮬레이션가속기 내지는 하드웨어에뮬레이터를 이용하여서 설계변경된 DUV와 디버깅전-시뮬레이션에서 수집된 DUV에 대한 입력정보(입력스티뮬러스로 활용)와 출력정보(예상출력으로 활용)를 활용하여서 수행된 시뮬레이션가속에서 알아낸 전환시점 Ts(i)까지, 내지는 전환시점 Ts(i)보다 과거에 있으면서 Ts(i)와 제일 가까운 체크포인트까지는 설계객체의 상태저장도 이루어지지 않고(설계객체의 상태저장이 이루어지는 부분은 시뮬레이션가속기 내지는 하드웨어에뮬레이터로 수행되는 설계객체로 이 설계객체의 상태정보가 저장됨), 시뮬레이션의 상태저장(시뮬레이션의 상태저장이 수행되는 부분은 시뮬레이션가속에서 시뮬레이션 상태저장 기능이 있는 시뮬레이터로 수행되어지는 설계객체로 이 설계객체는 상태저장-불가능 설계객체를 제외한 TB가 됨)도 이루어지지 않은 상태저장-불가능 설계객체(예로, 상태저장-불가능 설계객체란 DUV와 TB 전체를 포함하는 설계객체에서 시뮬레이션가속기 내지는 하드웨어에뮬레이터 내지는 시뮬레이션 상태저장 기능이 있는 시뮬레이터로 수행되는 설계객체들을 제 외한 설계객체로서, save/restart 기능을 지원하지 않는 C-모델 설계객체 내지는 파일-입출력 등을 수행하는 C/C++-코드 설계객체 등이 구체적 사례임)만이 수행 되어지고, 전환시점 Ts(i)부터 내지는 전환시점 Ts(i)보다 과거에 있으면서 Ts(i)와 제일 가까운 체크포인트부터는 DUV와 TB 전체가 같이 시뮬레이션되어질 수 있게 한다. 전환시점 Ts(i)부터 내지는 전환시점 Ts(i)보다 과거에 있으면서 Ts(i)와 제일 가까운 체크포인트부터 DUV와 TB 전체가 같이 시뮬레이션되어지기 위하여는 다음과 같은 방식을 사용할 수 있는데, 이와 같은 방식이란 시뮬레이션의 상태복원을 통하여 상기 상태저장-불가능 설계객체를 제외한 TB를 시뮬레이션 실행하는 시뮬레이터의 상태를 전환시점 Ts(i)에서 내지는 전환시점 Ts(i)보다 과거에 있으면서 Ts(i)와 제일 가까운 체크포인트에서 복원하는 동시에 시뮬레이션가속기 내지는 하드웨어에뮬레이터에서 수행한 설계객체 DO(h2s)를 시뮬레이션 실행하는 별도의 시뮬레이터에서의 상기 설계객체 DO(h2s)에 대하여 force/release 명령어 내지는 PLI/VPI/FLI 등을 사용하여서 시뮬레이션가속기 내지는 하드웨어에뮬레이터에서 수행되었던 DO(h2s)의 상태정보를 상기 시뮬레이션가속기 내지는 하드웨어에뮬레이터에서 읽어낸 상태정보와 같도록 하는 재출발후-상태초기화(state initialization after restart)를 전환시점 Ts(i)에서 내지는 전환시점 Ts(i)보다 과거에 있으면서 Ts(i)와 제일 가까운 체크포인트에서 수행한 후에 상기 시뮬레이터들을 IPC로 연동(시뮬레이션가속 시에 시뮬레이터에서 수행된 설계객체와 시뮬레이션가속기 내지는 하드웨어에뮬레이터에서 수행된 설계객체는 각각 다른 시뮬레이터에서 수행되면서 IPC로 연동되어져야 함)시키면서 시뮬레이션 실제 실행을 진행하는 방식을 말한 다 (즉 재출발후-상태초기화 과정을 통하여 전체 설계객체에서 시뮬레이션가속기 내지는 에뮬레이터에서 수행된 설계객체의 상태정보가 전환시점 Ts(i)에서 내지는 전환시점 Ts(i)보다 과거에 있으면서 Ts(i)와 제일 가까운 체크포인트에서 올바르게 설정되어지고 난 직후에, 시뮬레이션 실제 실행으로 시뮬레이션 시간이 앞으로 전진되는 것임). If it is impossible to save the state of the simulation that executes the entire design object except the design object executed in the simulation accelerator or the hardware emulator, another method may be used as follows. In other words, in the simulation acceleration performed by using input information (used as input stimulus) and output information (used as expected output) for the DUV modified by using the accelerator or hardware emulator and the DUV collected in the pre-debugging simulation Until the transition point Ts (i) found out or the checkpoint closest to Ts (i) in the past than the transition point Ts (i), the state of the design object is not stored (the part where the state of the design object is stored) The design object executed by the simulation accelerator or the hardware emulator stores the state information of the design object, and the state storage of the simulation (the part where the state storage of the simulation is performed is performed by the simulator with the simulation state storage function in the simulation acceleration). As a design object, this design object excludes stateless-impossible design objects. A stateless-impossible design object (eg, a stateless-capable design object) that is not a TB (for example, a stateless-capable design object) is a simulation accelerator, a hardware emulator, or a simulator with a simulation state storage function. As a design object excluding design objects, only C-model design objects that do not support save / restart function or C / C ++-code design objects that perform file-in / out, etc.) are executed. From Ts (i) or the checkpoint closest to Ts (i) in the past than the transition point Ts (i), the entire DUV and TB can be simulated together. In order to simulate the entire DUV and TB from the checkpoint Ts (i) or the checkpoint closest to Ts (i) in the past than the transition point Ts (i), the following method can be used. The method means that the state of the simulator that simulates the TB excluding the state storage-impossible design object through the state restoration of the simulation is in the past than the transition point Ts (i) or the transition point Ts (i) and is the first with Ts (i). Force / release command, PLI / VPI / FLI, etc. against the design object DO (h2s) in a separate simulator that restores from the nearest checkpoint and simulates the design object DO (h2s) performed by the simulation accelerator or hardware emulator. Simulate state information of DO (h2s) that was performed in the accelerator or hardware emulator using State initialization after restart, which is equal to the state information read by the accelerator or hardware emulator, is in the past than the transition point Ts (i) or the transition point Ts (i) and is the first to Ts (i). After performing at a close checkpoint, the simulators are interworked with IPC (the design objects executed in the simulator and the design accelerators performed in the simulator or the hardware emulator must be interlocked with the IPC while the simulation is accelerated). It refers to the method of performing the actual execution of the simulation (ie, state information of the design object performed by the simulation accelerator or the emulator in the entire design object through the post-restart-state initialization process is converted from the transition time Ts (i) to the transition time Ts (i Checkpoint closest to Ts (i) in the past In this simulation it will be time to move forward shortly after being set up properly, the actual simulation run).

이와 같은 방법은 시뮬레이션 시점 0에서부터 전환시점 Ts(i)까지 내지는 전환시점 Ts(i)보다 과거에 있으면서 Ts(i)와 제일 가까운 체크포인트까지는 상태저장-불가능 설계객체만이 실행되는 것임으로 이 실행을 매우 빠르게 진행되는 것이 가능하다 (예로 TB의 시뮬레이션 오버헤드가 10%이고 DUV의 시뮬레이션 오버헤드가 90%이고, 상태저장-불가능 설계객체의 오버헤드가 TB 오버헤드의 10%이면 상태저장-불가능 설계객체만을 실행하게 되면 실행 속도를 거의 100배 가까이 높일 수 있음). This is because only stateful-impossible design objects are executed from simulation time 0 to transition time Ts (i) or to the checkpoint closest to Ts (i) in the past than transition time Ts (i). It is possible to proceed very quickly (for example, if the simulation overhead of TB is 10%, the DUV's simulation overhead is 90%, and the stateful-non-design object's overhead is 10% of TB overhead, it is not stateless. Running only design objects can increase execution speed by nearly 100 times).

방식2-가정 기반 디버깅후-시뮬레이션을 통하게 되면, TB 설계객체의 상태정보에 대한 저장이 불가능한 TB에 대한 수정이 이루어진 경우에 디버깅전-시뮬레이션에서 수집된 TB의 입력정보와 출력정보를 이용하여서 디버깅후-시뮬레이션에서 TB만이 시뮬레이션 시간 0에서부터 Ts(i)까지 실제적으로 시뮬레이터로 시뮬레이션 수행되게 하고 상태정보 저장이 가능한 DUV는 시뮬레이션 시간 0에서부터 Ts(i)까지 휴면 상태(휴면 상태에 있도록 하는 구체적 방법의 일 예들은 위에서 이미 설명되었음)에 있도록 하고, Ts(i)에서부터는 TB와 DUV 모두가 시뮬레이션 수행(따라서 TB는 시뮬레이션 시간 0에서부터 Ts(i)까지는 디버깅전-시뮬레이션에서 수집된 TB의 입력정보에 의하여 입력을 받게되고 Ts(i)부터는 DUV의 출력에 의하여 입력을 받게되 는데 이와 같은 것은 조건문(if statement) 내지는 상황문(case statement) 등 으로 간단하게 구술될 수 있음)되게 하는 것도 가능하다. 상기 Ts(i)에서부터 TB와 DUV 모두가 시뮬레이션 수행되게 하기 위해서는 Ts(i)에서 DUV의 상태정보를 설정하여서 DUV를 휴면 상태에서 깨어나도록(휴면 상태에서 깨어나도록 하는 구체적 방법의 일 예들도 위에서 이미 설명하였음) 하는 것이 필요한데, 이를 위해서는 디버깅전-시뮬레이션에서 수집된 Ts(i)보다 과거에 있으면서 Ts(i)와 제일 가까운 체크포인트 CP(Ts_i)를 DUV의 초기상태로 하고 CP(Ts_i)에서부터 Ts(i)까지의 DUV의 입력정보를 이용하는 별도의 시뮬레이션(이와 같은 별도의 시뮬레이션은 시뮬레이터를 이용할 수도 있고 시뮬레이션가속기 내지는 에뮬레이터를 이용할 수도 있음) 과정을 실행하여 Ts(i)에서의 DUV 상태정보를 구하여, 이 Ts(i)에서의 DUV 상태정보를 복원하면 된다. Method 2-Home-based post-simulation-simulation allows debugging using the input and output information of the TB collected in the pre-simulation simulation when modifications are made to the TBs that cannot save the state information of TB design objects. In post-simulation, only TB can be simulated by the simulator from simulation time 0 to Ts (i) and state information can be stored. One example is already described above, and both Ts (i) and TB and DUV perform simulations (thus TB is applied to the input information of TB collected in pre-simulation from simulation time 0 to Ts (i)). The input is received by Ts (i) and the output is received by the output of the DUV. It can also be used as a simple statement (if statement or case statement). In order to simulate both the TB and the DUV from the Ts (i), an example of a specific method of setting the state information of the DUV in the Ts (i) to wake the DUV from the dormant state (the waking state from the dormant state) is also described above. To do this, checkpoint CP (Ts_i) closest to Ts (i), which is in the past than Ts (i) collected in pre-debugging simulation, is set to the initial state of DUV and Ts (i) to Ts. (i) A separate simulation using the input information of the DUV up to (i.e. such a separate simulation may use a simulator or a simulation accelerator or an emulator) to execute the process to obtain the DUV status information in Ts (i) The DUV state information in this Ts (i) may be restored.

인크리멘탈 시뮬레이션에서는 설계 변경이 된 설계객체가 상태정보 저장(save)과 복원(restore)이 가능한 설계객체인지 상태정보 저장과 복원이 불가능한 설계객체인지, 인크리멘탈 시뮬레이션을 한번의 시뮬레이션으로 진행(따라서 한번의 컴파일만 필요)할 것인지 두번의 시뮬레이션으로 진행(따라서 두번의 컴파일이 필요. 두번의 컴파일이 두번이 시뮬레이터를 이용한 두번의 시뮬레이션일 수도 있고 시뮬레이터와 시뮬레이션가속기 내지는 에뮬레이터를 이용한 한번의 시뮬레이션과 한번의 시뮬레이션가속 일 수도 있음)할 것인지, 2 이상의 프로세스와 IPC를 이용하여서 2 이상의 시뮬레이터의 연동에 의한 시뮬레이션을 진행할 것인지에 따라서, 실제적으로 TB와 DUV 전체를 대상(실제적으로 TB와 DUV 전체를 대상으로 한다는 것은 TB와 DUV 전체가 시뮬레이션되면서 TB 내지는 DUV 어느 것도 휴면 상태에 있지 않고 수행됨을 말함)으로 하는 시뮬레이션이 Ts(i)에서부터 시작될 것인지 내지는 전환시점 Ts(i)보다 과거에 있으면서 Ts(i)와 제일 가까운 체크포인트에서부터 시작될 것인지가 결정된다. In incremental simulation, a design object that has changed design is a design object that can save and restore state information, or a design object that cannot save and restore state information, and incremental simulation in one simulation ( Therefore, only one compilation is needed or two simulations (so two compilations are required. Two compilations may be two simulations using a simulator, one simulation using a simulator, an accelerator, or an emulator, and one simulation). Depending on whether you want to accelerate the simulation, or if you want to simulate simulation by linking two or more simulators using two or more processes and IPC, you can actually target the entire TB and DUV (actually the entire TB and DUV). TB and DUV full sim Will be run from Ts (i) or from the checkpoint closest to Ts (i) in the past than the transition point Ts (i). Is determined.

인크리멘탈 시뮬레이션에서 위에서 설명한 것과 같이 전환시점 Ts(i)의 결정을 위해서 시뮬레이터 대신에 시뮬레이션가속기 내지는 하드웨어에뮬레이터를 활용하게 되면 디버깅 과정에서 설계 변경이 이루어진 설계객체로서 DUV 전체로 설정하는 것이 시뮬레이션 속도의 저하를 초래하지 않고서도 가능하게 됨으로 인크리멘탈 시뮬레이션에 의하여 시뮬레이션의 매우 빠르게 수행할 수 있는 시뮬레이션 시간 구간대를 극대화시키는 중요한 장점이 있다. As described above in the incremental simulation, if the simulation accelerator or the hardware emulator is used instead of the simulator to determine the transition point Ts (i), it is the design object that the design change is made during the debugging process. Since it is possible without causing degradation, there is an important advantage of maximizing the simulation time interval that can be performed very quickly by the incremental simulation.

이상에서 설명한 것과 같이 "시뮬레이션가속기 내지는 하드웨어에뮬레이터를 우선적으로 이용하여 전환시점 Ts(i)를 결정하고 시뮬레이션가속의 결과를 이용하는 시뮬레이터를 활용한 시뮬레이션을 통한 방식2-가정 기반 디버깅후-시뮬레이션" 방법은 DUV가 하나이고 TB가 다수인 경우에서 뿐만 아니고 DUV가 2 이상이고 각 DUV에 대하여 TB가 다수인 경우(즉, 검증 대상이 되는 설계가 두개 이상인 경우)에도 적용되어져서 매우 적은 숫자의 시뮬레이션가속기 내지는 하드웨어에뮬레이터(예로 오직 1대의 시뮬레이션가속기)의 활용도를 최대한도로 하여서 다수의 시뮬레이터들과 같이 사용하여 단위 시간에 실행되는 시뮬레이션 횟수(한 시뮬레이션은 특정 DUV와 특정 TB를 이용한 한번의 시뮬레이션)를 최대한으로 높이는 것도 가능하다. 즉, 매우 적은 수의 시뮬레이션가속기 내지는 하드웨어에뮬레이터만을 이용(예로 오직 1대의 시뮬레이션가속기만을 이용)할 수 있다고 하더라도, 많은 수의 TB들 각각의 테스트벤치 TB(i)를 이용하여서 실행된 디버깅전-시뮬레이션에서 수집된 DUV 입력정보와 출력정보를 각각 앞단-디버깅에서 변경된 DUV의 입력스티뮬러스와 예상출력으로서 사용하는 시뮬레이션가속의 입력벡터 모드 내지는 임베디드테스트벤치 모드로 고속으로 동작하여 각각 TB(i)를 위한 전환시점 Ts(i)를 구하게 되는 시뮬레이션가속은 매우 많은 수의 테스트벤치 TB(i)(예로 TB가 1000개인 경우에 i=0에서부터 999까지)에 대해서도 모든 전환시점 Ts(i)(예로 TB가 1000개인 경우에 i=0에서부터 999까지)들을 신속하게 구하는 것이 가능하다는 것에 주목할 필요가 있다. 뿐만 아니라, 상기 특정 테스트벤치 TB(i)에 대응되는 전환시점 Ts(i)가 시뮬레이션가속을 통하여 구해지는 시점 이후부터는 언제라도 인크리멘탈 시뮬레이션의 완성을 위한 시뮬레이터를 이용한 시뮬레이션 실행을 시작할 수 있다는 것도 주목할 필요가 있다. 이상과 같은 이유로 인하여 시뮬레이션가속기 내지는 하드웨어에뮬레이터를 활용하는 방식2-가정 기반 디버깅후-시뮬레이션은 다수의 시뮬레이터 라이센스와 매우 적은 수의 시뮬레이션가속기 내지는 하드웨어에뮬레이터를 이용하는 경우에도 매우 많은 수의 시뮬레이션가속기 내지는 하드웨어에뮬레이터를 활용하는 것과 유사하게 단위시간당 수행되는 시뮬레이션 횟수를 높일 수 있게 된다. As described above, the method of "Two-home based post-simulation through simulation" using a simulator using a simulation accelerator or a hardware emulator to determine the transition point Ts (i) first and using the results of the simulation acceleration " This applies to not only one DUV and many TBs, but also two or more DUVs and multiple TBs for each DUV (i.e. more than one design to be validated). Maximize the utilization of hardware emulators (e.g. only one simulation accelerator) to maximize the number of simulations (one simulation with one DUV and one TB) that are run per unit time using multiple simulators. It is also possible. In other words, even if only a small number of simulation accelerators or hardware emulators can be used (e.g. only one simulation accelerator), pre-debug simulations performed using the testbench TB (i) of each of a large number of TBs. The DUV input information and output information collected from the DUV are operated at high speed in simulation acceleration input vector mode or embedded test bench mode, respectively. The simulation acceleration, which yields the transition point Ts (i), is also true for all transition point Ts (i) (e.g. TB) for a very large number of testbench TB (i) (i.e. i = 0 to 999 for 1000 TB). Note that it is possible to quickly find i) from 1000 to 999). In addition, since the transition time Ts (i) corresponding to the specific test bench TB (i) is obtained through the acceleration of the simulation, the simulation execution can be started using the simulator for the completion of the incremental simulation at any time. It is worth noting. Because of the above reasons, the method of using a simulation accelerator or a hardware emulator is based on two-home-based post-debugging-simulation even when a large number of simulator licenses and a very small number of simulation accelerators or hardware emulators are used. Similar to using, the number of simulations performed per unit time can be increased.

마지막으로, "방식3-가정 기반 디버깅후-시뮬레이션"은 다음과 같은 디버깅후-시뮬레이션 방법을 의미한다. 즉, 디버깅전-시뮬레이션에서 수집된 DUV 내의 1 이상의 설계객체들에 대한 상태정보 내지는 입력값들과 상태정보 내지는 입력값들과 출력 값들과 상태정보의 일부분 내지는 전체를 설계자 내지는 검증엔지니어가 수작업으로 수정(상태정보를 구성하는 설계객체내의 1 이상의 시그널을 삭제하거나, 내지는 1 이상의 시그널을 새롭게 추가하거나, 내지는 1 이상의 시그널을 삭제하는 동시에 또 다른 1 이상의 시그널을 새롭게 추가할 수 있음)하여서 "가정에 근거한 디버깅후-시뮬레이션"을 진행하고, 필요에 의하여 "가정확인을 위한 디버깅후-시뮬레이션"을 DUT와 TB 전체를 대상으로 하는 시뮬레이션 실행(시뮬레이터만을 이용할 수도 있고, 혹은 시뮬레이션가속기 내지는 하드웨어에뮬레이터를 이용할 수 있음)으로 진행하는 것을 "방식3-가정 기반 디버깅후-시뮬레이션"이라 칭한다(이와 같은 방식3-가정 기반 디버깅후-시뮬레이션에서도 디버깅전-시뮬레이션 실행에서 얻어진 상태정보를 이용하는 경우에, 이 디버깅전-시뮬레이션 실행에서 얻어진 상태정보를 필요에 따라서 "안정화된 상태정보"로 만들어야 할 필요가 있는데, 이와 같은 안정화된 상태정보를 얻는 구체적 방법은 별도의 특허 10-2006-92574에서 설명된 "t-DCP 정확도증강 과정에서의 정확도가 증강된 상태정보를 얻는 방법"을 참고함). 이상과 같은 "방식1-가정 기반 디버깅후-시뮬레이션", 내지는 "방식2-가정 기반 디버깅후-시뮬레이션", 내지는 "방식3-가정 기반 디버깅후-시뮬레이션"은 "가정에 근거한 디버깅후-시뮬레이션"과 "가정확인을 위한 디버깅후-시뮬레이션"으로 구성될 수 있는데 이와 같은 경우에 통상적으로는 "가정에 근거한 디버깅후-시뮬레이션"을 먼저 진행한 후에 "가정확인을 위한 디버깅후-시뮬레이션"을 진행하는 것이 일반적이지만, 경우에 따라서는 "가정확인을 위한 디버깅후-시뮬레이션"을 먼저 진행하여서 가정이 맞는지를 확인한 후에 "가정에 근거한 디버깅후-시뮬레이션"을 진행시킬 수 도 있는데, 이와 같은 판단은 설계자나 검증엔지니어가 하게 된다. Finally, "Method 3-home based post-debugging-simulation" means the following post-debugging-simulation method. That is, the designer or verification engineer manually modifies the state information or input values and state information, or some or all of the input values and output values and state information for one or more design objects collected in the pre-debugging simulation. (You can delete one or more signals in the design object constituting the status information, add one or more signals, or add one or more signals while deleting one or more signals.) Post-Dimulation-Simulation, and if necessary, run "Post-Dimulation-Simulation for Assessing" simulations for the entire DUT and TB (either using only the simulator, or using the accelerator or hardware emulator). Going on with "method 3-home based debugging Post-simulation "(in this manner, if the state information obtained from the pre-debug simulation run is also used in the three-home-based post-debug simulation, the state information obtained from this pre-debug simulation run is" stable "as needed. It is necessary to make the "status information", the specific method of obtaining such stabilized status information is a method of obtaining the status information with enhanced accuracy in the "t-DCP accuracy enhancement process described in a separate patent 10-2006-92574 "). "Method 1-home based post-debugging-simulation", or "Method 2-home based post-debugging-simulation", or "Method 3-home based post-debugging-simulation" are "home-based post-debugging-simulation" And "Post-Dimulation-Simulation for Assumptions." In this case, "Post-Dimulation-Simulation-Based Simulations" is usually performed first, followed by "Post-Dimulation-Simulation for Assumptions." In general, in some cases, "post-simulation for home verification" may be performed first to confirm that the assumption is correct before proceeding to "post-simulation based on home". The verification engineer will do it.

이와 같은 3가지 방식인 "방식1-가정 기반 디버깅후-시뮬레이션", "방식2-가정 기반 디버깅후-시뮬레이션", "방식3-가정 기반 디버깅후-시뮬레이션"을 선택적으로 이용하게 되면 각각의 특정 디버깅 상황에 따라서 디버깅 턴어라운드 시간을 효과적으로 단축하는 것이 가능해 짐으로, 여러가지 다양한 디버깅 상황들이 혼재되어 있는 전체 검증 과정에서의 디버깅 턴어라운드 전체 시간을 효과적으로 단축시키는 것이 가능해진다. 즉, 디버깅 턴어라운드 시간을 단축하기 위하여 한가지 방식을 사용하지 않고 설계자 내지는 검증엔지니어가 특정 디버깅 상황에 맞게 3가지 방식들 중에 제일 적합한 방식을 선택하여서 적용할 수 있도록 함으로서 매우 효율적으로 특정 디버깅 턴어라운드 시간과 디버깅 턴어라운드 전체 시간을 단축하는 것이 가능하다. Using these three methods, "Method 1-home based post-debugging-simulation", "Method 2-home based post-debugging-simulation", and "Method 3-home based post-debugging-simulation" Depending on the debugging situation, it is possible to effectively reduce the debugging turnaround time, thereby effectively reducing the overall debugging turnaround time during the entire verification process in which various various debugging situations are mixed. In other words, designers or verification engineers can choose one of the three methods that best suits the specific debugging situation without using one method to reduce the debugging turnaround time. It is possible to shorten the turnaround total time.

상기 목적 외에 본 발명의 다른 목적 및 이점들은 첨부한 도면을 참조한 실시 예에 대한 상세한 설명을 통하여 명백하게 드러나게 될 것이다. 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 은, 본 발명에 관한 설계 검증 장치의 일 예를 개략적으로 도시한 도면이다. 1 is a diagram schematically showing an example of a design verification apparatus according to the present invention.

도2 는, 본 발명에 관한 설계 검증 장치의 또 다른 일 예를 개략적으로 도시한 도면이다. 2 is a diagram schematically showing still another example of the design verification apparatus according to the present invention.

도3 은, 본 발명에 관한 설계 검증 장치의 또 다른 일 예를 개략적으로 도시한 도면이다. 3 is a diagram schematically showing still another example of the design verification apparatus according to the present invention.

도4 는, 본 발명에 관한 설계 검증 장치의 또 다른 일 예를 개략적으로 도시한 도면이다. 4 is a diagram schematically showing still another example of the design verification apparatus according to the present invention.

도5 는, 방식1-가정 기반 디버깅후-시뮬레이션 과정 내지는 방식2-가정 기반 디버깅후-시뮬레이션 과정의 일 예를 개략적으로 도시한 도면이다. FIG. 5 is a diagram schematically showing an example of a scheme 1-home based post-debug-simulation process or a scheme 2-home based post-debug-simulation process.

도6 은, 방식1-가정 기반 디버깅후-시뮬레이션 과정 내지는 방식2-가정 기반 디버깅후-시뮬레이션 과정의 또 다른 일 예을 개략적으로 도시한 도면이다. 구체적으로 예를 설명한다면, 시뮬레이션가속기 내지는 하드웨어에뮬레이터를 이용한 시뮬레이션 실행은 부정확한 지연시간 모델(예로, 제로지연시간 모델)을 기반으로 하는 게이트수준의 시뮬레이션이고, 시뮬레이터를 이용한 시뮬레이션 실행은 정확한 지연시간 모델을 기반으로 하는 게이트수준의 시뮬레이션(예로, 배치 & 배선 결과를 반영한 SDF를 이용한 타이밍 시뮬레이션)일 수 있다. FIG. 6 is a diagram schematically illustrating another example of a scheme 1-home based post-debugging simulation or a scheme 2-home based post-debug simulation. Specifically, the simulation execution using a simulation accelerator or a hardware emulator is a gate level simulation based on an incorrect latency model (eg, zero latency model), and the simulation execution using a simulator is an accurate latency model. Can be a gate-level simulation (eg, timing simulation using SDF reflecting placement & wiring results).

도7 은, 방식3-가정 기반 디버깅후-시뮬레이션 과정의 일 예를 개략적으로 도시한 도면이다. FIG. 7 is a diagram schematically showing an example of a scheme-home based post-debugging simulation process.

도8 은, 방식1-가정 기반 디버깅후-시뮬레이션 과정 내지는 방식2-가정 기반 디버깅후-시뮬레이션 과정의 또 다른 일 예을 개략적으로 도시한 도면이다. 구체적으로 예를 설명한다면, 추상화 상위수준에서의 시뮬레이션 실행은 사이클정확도와 레지스터정확도를 가지는 트란젝션수준(transaction level)에서의 SystemC 시뮬레이터를 이용한 시뮬레이션이고, 추상화 하위수준에서의 시뮬레이션 실행은 레지스터전송수준(register transfer level)에서의 이벤트-구동 Verilog 시뮬레이터 내지는 VHDL 시뮬레이터를 이용한 시뮬레이션일 수 있다. FIG. 8 is a diagram schematically illustrating another example of a scheme 1-home based post-debugging simulation or a scheme 2-home based post-debug simulation. Specifically, the simulation execution at the higher abstraction level is the simulation using the SystemC simulator at the transaction level with cycle accuracy and the register accuracy. It may be a simulation using an event-driven Verilog simulator or a VHDL simulator at a register transfer level.

상술한 바와 같이, 본 발명의 효과는 동적기반의 설계 검증에서의 디버깅 턴어라운드 시간을 단축시키는 효과적인 디버깅 방법 내지는 시뮬레이션 방법을 제공하는 것이다. 구체적으로는, 본 발명의 효과는 디버깅 턴어라운드 시간을 줄일 수 있는 다양한 디버깅후-시뮬레이션 방법들을 설계자나 검증엔지니어가 각 상황에 맞도록 선택적으로 이용할 수 있도록 함으로서 디버깅 턴어라운드 시간을 크게 단축할 수 있도록 한다. 본 발명의 또 다른 효과는, 설계객체의 상태정보를 저장하고 이를 후에 복귀하는 것이 불가능한 테스트벤치와 같은 설계객체를 포함하는 설계 검증 대상에 대하여서도 시뮬레이터를 이용한 시뮬레이션의 실행, 내지는 시뮬레이션가속기 혹은 하드웨어에뮬레이터를 시뮬레이터와 함께 이용한 시뮬레이션 실행의 특정 시뮬레이션 시점에서 획득한 1 이상의 설계객체에 대한 상태정보를 이용하거나 내지는 추상화 상위수준에서 진행된 시뮬레이션 실행의 특정 시뮬레이션 시점 내지는 특정 시뮬레이션 구간에서 획득한 1 이상의 설계객체에 대한 상태정보를 이용하여서 특정 버그를 제거하기 위한 디버깅 턴어라운드 시간의 단축, 내지는 특정 버그를 제거하기 위한 디버깅 턴어라운드 시간의 단축과 새로운 버그의 존재를 파악하기 위한 디버깅전-시뮬레이션에 소요되는 시간의 단축을 함께 가능하게 한다.As described above, the effect of the present invention is to provide an effective debugging method or simulation method for shortening the debugging turnaround time in dynamic-based design verification. Specifically, the effect of the present invention is to significantly reduce the debugging turnaround time by allowing a designer or a verification engineer to selectively use various post-debug simulation methods that can reduce the debugging turnaround time. Another effect of the present invention is to execute a simulation using a simulator, or a simulation accelerator or a hardware emulator, for a design verification target including a design object such as a test bench that cannot store state information of the design object and return it later. Using state information about one or more design objects acquired at a specific simulation point of a simulation run using a simulator or at least one design object obtained at a specific simulation time point or a specific simulation section of a simulation run performed at a higher level of abstraction. Use of state information to reduce debugging turnaround time to eliminate specific bugs, or to reduce debugging turnaround time to eliminate specific bugs, and to pre-debug to identify the presence of new bugs. It allows with the shortening of the time required for calibration.

이상 설명한 내용을 통해 당업자라면 본 발명의 기술사상을 일탈하지 아니하는 범위에서 다양한 변경 및 수정이 가능함을 알 수 있을 것이다. 따라서, 본 발명의 기술적 범위는 실시 예에 기재된 내용으로 한정되는 것이 아니라 특허 청구의 범위 에 의하여 정하여져야만 한다. 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 (8)

설계 검증 과정에서 1 이상의 설계 오류의 존재 여부를 시뮬레이션 실행으로 알아내고(디버깅전-시뮬레이션) 상기 1 이상의 설계 오류의 원인을 알아내어서 이를 제거하는 설계 수정을 진행하고(앞단-디버깅) 상기 설계 수정이 올바르게 진행되었는지를 판단하기 위한 시뮬레이션(디버깅후-시뮬레이션)을 진행하는 단계에 있어서,In the design verification process, the existence of one or more design errors is determined by simulation execution (pre-simulation), and the design correction is performed to determine the cause of the one or more design errors and eliminate them (front-debugging). In the step of conducting a simulation (post-debugging-simulation) to determine whether this has proceeded correctly, 상기 설계 수정이 올바르게 진행되었는지를 판단하기 위한 시뮬레이션을 상기 1 이상의 설계 오류의 특성에 따라서 방식1-가정 기반 디버깅후-시뮬레이션 방법 내지는 방식2-가정 기반 디버깅후-시뮬레이션 방법 내지는 방식3-가정 기반 디버깅후-시뮬레이션 방법들 중에서 선택된 1 내지는 2 이상의 방법을 사용하여 진행하는 디버깅 방법A simulation is performed to determine whether the design modification has been performed correctly according to the characteristics of the one or more design errors in a method 1-home based post-debugging-simulation method or method 2-home based post-debugging-simulation method or method 3-home based debugging Debugging method using 1 or 2 or more methods selected from post-simulation methods 설계 검증 과정에서 1 이상의 설계 오류의 존재 여부를 시뮬레이션 실행으로 알아내고(디버깅전-시뮬레이션) 상기 1 이상의 설계 오류의 원인을 알아내어서 이를 제거하는 설계 수정을 진행하고(앞단-디버깅) 상기 설계 수정이 올바르게 진행되었는지를 판단하기 위한 시뮬레이션(디버깅후-시뮬레이션)을 진행하는 단계에 있어서,In the design verification process, the existence of one or more design errors is determined by simulation execution (pre-simulation), and the design correction is performed to determine the cause of the one or more design errors and eliminate them (front-debugging). In the step of conducting a simulation (post-debugging-simulation) to determine whether this has proceeded correctly, 상기 설계 수정이 올바르게 진행되었는지를 판단하기 위한 시뮬레이션이 방식1-가정 기반 디버깅후-시뮬레이션 방법 내지는 방식2-가정 기반 디버깅후-시뮬레이션 방법 내지는 방식3-가정 기반 디버깅후-시뮬레이션 방법들 중에서 1 내지는 2 이상의 방법을 포함한 디버깅 방법In order to determine whether the design modification is correctly performed, the simulation is performed in a method 1-home based post-debugging-simulation method or method 2-home based post-debugging-simulation method or method 3-home-based post-debugging-simulation method. Debugging methods, including the above methods 설계 오류들을 제거하는 설계 검증 과정에서 특정 1 이상의 설계 오류의 존재 여부를 시뮬레이션 실행으로 알아내고(디버깅전-시뮬레이션) 상기 특정 1 이상의 설계 오류의 원인을 알아내어서 이를 제거하는 설계 수정을 진행하고(앞단-디버깅) 상기 설계 수정이 올바르게 진행되었는지를 판단하기 위한 시뮬레이션(디버깅후-시뮬레이션)을 진행하는 단계들을 반복적으로 진행하며,During the design verification process to eliminate design errors, the simulation run detects the presence or absence of one or more design errors (pre-debugging), and proceeds with the design modification to identify and eliminate the cause of the one or more design errors ( Fore-debugging Iteratively repeats the steps of conducting a simulation (post-debugging) to determine whether the design modification was successful, 상기 특정 1 이상의 설계 오류를 제거하기 위한 설계 수정이 올바르게 진행되었는지를 판단하기 위한 시뮬레이션을 상기 1 이상의 설계 오류의 특성에 따라서 설계자 내지는 검증엔지니어가 방식1-가정 기반 디버깅후-시뮬레이션 방법 내지는 방식2-가정 기반 디버깅후-시뮬레이션 방법 내지는 방식3-가정 기반 디버깅후-시뮬레이션 방법들 중에서 1 내지는 2 이상의 방법을 선택적으로 사용하여 진행하는 디버깅 방법According to the characteristics of the one or more design errors, a designer or a verification engineer uses a scheme 1-home-based post-debugging-simulation method or scheme 2-to determine whether a design modification for correcting the one or more design errors has been correctly performed. Home-based post-simulation method or method 3-Debugging method that selectively uses 1 or 2 or more of the home-based post-simulation method. 제 1 항 내지는 제 2 항 내지는 3 항에 있어서,The method according to claim 1 or 2 to 3, 상기 방식1-가정 기반 디버깅후-시뮬레이션 방법 내지는 방식2-가정 기반 디버깅후-시뮬레이션 방법을 통하여 진행되는 동적기반의 설계 검증 방법이 중첩된 디버깅후-시뮬레이션과 디버깅전-시뮬레이션 기반의 디버깅 방법을 포함하는 동적기반의 설계 검증 방법The dynamic-based design verification method performed by the above method 1-home based post-simulation method or the method 2-home based post-simulation method includes nested post-simulation and pre-debug-simulation debugging methods. Dynamic based design verification method 제 1 항 내지는 제 2 항 내지는 3 항에 있어서,The method according to claim 1 or 2 to 3, 상기 방식1-가정 기반 디버깅후-시뮬레이션 방법 내지는 방식2-가정 기반 디버깅후-시뮬레이션 방법을 통하여 진행되는 동적기반의 설계 검증 방법에서 1 이상의 특정 버그가 올바르게 제거되었는지를 조사하는 디버깅후-시뮬레이션에서 시뮬레이션가속기 내지는 하드웨어에뮬레이터를 이용한 시뮬레이션 실행 내지는 추상화 상위수준에서의 시뮬레이션 실행에서 시뮬레이션 시간 0 이후의 특정 시뮬레이션 시점 t_o1 내지는 특정 시뮬레이션 구간 t_o2에서 수집된 DUV의 상태정보와 t_o1 내지는 t_o2에서부터 일정 시뮬레이션 구간에서의 DUV의 입력값들을 이용하여서 상기 시뮬레이션가속기 내지는 하드웨어에뮬레이터를 이용한 시뮬레이션 실행에 이은 시뮬레이터를 이용한 시뮬레이션 실행 내지는 상기 추상화 상위수준에서의 시뮬레이션 실행에 이은 추상화 하위수준에서의 시뮬레이션 실행을 통하여 상기 특정 버그가 올바르게 제거되었는지를 조사하는 동시에 새로운 1 이상의 특정 버그의 존재 여부를 조사하는 중첩된 디버깅후-시뮬레이션과 디버깅전-시뮬레이션 기반의 디버깅 방법을 포함하는 동적기반의 설계 검증 방법Simulation in post-debug-simulation that examines whether one or more specific bugs are correctly removed in the dynamic-based design verification method performed by the method 1-home based post-debug-simulation method or the method 2-home-based post-debug-simulation method. Simulation run using an accelerator or a hardware emulator or abstraction In a simulation run at a higher level, the state information of the DUV collected at a specific simulation time point t_o1 or a specific simulation section t_o2 after the simulation time 0, and the DUV of the DUV in a certain simulation section from t_o1 to t_o2. By using the input values, the simulation accelerator or the hardware emulator can be used to execute the simulation, followed by the simulation using the simulator, or the simulation at the higher level of abstraction. Dynamic simulations, including nested post-simulation and pre-debug-simulation-based debugging methods, which examine whether a particular bug has been correctly removed by running the simulation at the lower level of the conversation, while at the same time examining the existence of one or more specific bugs. -Based design verification method 제 1 항 내지는 3 항에 있어서,The method according to claim 1 or 3, 상기 1 이상의 설계 오류의 특성에 따라서 적용되는 방식1-가정 기반 디버깅후-시뮬레이션 방법 내지는 방식2-가정 기반 디버깅후-시뮬레이션 방법 내지는 방식3-가정 기반 디버깅후-시뮬레이션 방법들 중에서 2 이상의 방법이 독립적으로 동시에 실행되는 과정을 포함하는 디버깅 방법According to the characteristics of the at least one design error, at least two of the method 1-home-based post-debugging-simulation method or the method 2-home-based post-debugging-simulation method or the method 3-home-based post-debugging-simulation method are independent. Debugging methods, including the process of running concurrently 제 1 항 내지는 제 2 항 내지는 3 항에 있어서,The method according to claim 1 or 2 to 3, 상기 방식1-가정 기반 디버깅후-시뮬레이션 방법 내지는 방식2-가정 기반 디버깅후-시뮬레이션 방법에서 가정에 근거한 디버깅후-시뮬레이션 실행과 가정확인을 위한 디버깅후-시뮬레이션을 병렬적으로 진행하는 디버깅 방법Debugging method of performing the post-debugging simulation based on the assumptions and the post-debugging-simulation for hypothesis confirmation in parallel in the method 1-home based post-debugging-simulation method or the method 2-home based post-debugging-simulation method. 제 1 항 내지는 제 2 항 내지는 제 3 항 내지는 제 4 항 내지는 제 5 항 내지는 제 6 항 내지는 제 7 항에 있어서,The method according to claim 1, 2, 3, 4, 5, 6, or 7, 상기 방식2-가정 기반 디버깅후-시뮬레이션 방법에 "시뮬레이션가속기 내지는 하드웨어에뮬레이터를 우선적으로 이용하여 전환시점 Ts(i)를 결정하고 시뮬레이션가속의 결과를 이용하는 시뮬레이터를 활용한 시뮬레이션을 통한 방식2-가정 기반 디버깅후-시뮬레이션"이 포함된 디버깅 방법The method 2- assumption based post-debug simulation method is based on the method 2- assumption based on the simulation using a simulator using a simulation accelerator or a hardware emulator to determine the transition point Ts (i) first and using the simulation acceleration results. Debugging Methods with "Post-Dimulation"
KR1020060117303A 2006-07-23 2006-11-25 Efficient debugging method in dynamic-based design verification KR20080009246A (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR1020060068811A KR20070108303A (en) 2005-10-10 2006-07-23 Verification method from electronic system level to gate level using systematic progressive refinement
KR1020060068811 2006-07-23
KR20060105947 2006-10-30
KR1020060105947 2006-10-30

Publications (1)

Publication Number Publication Date
KR20080009246A true KR20080009246A (en) 2008-01-28

Family

ID=39221726

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060117303A KR20080009246A (en) 2006-07-23 2006-11-25 Efficient debugging method in dynamic-based design verification

Country Status (1)

Country Link
KR (1) KR20080009246A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102181273B1 (en) * 2020-08-12 2020-11-20 부산대학교 산학협력단 Performance improvement method in prediction-based parallel logic simulation by dynamic reconfiguration of local design objects

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102181273B1 (en) * 2020-08-12 2020-11-20 부산대학교 산학협력단 Performance improvement method in prediction-based parallel logic simulation by dynamic reconfiguration of local design objects

Similar Documents

Publication Publication Date Title
US8781808B2 (en) Prediction-based distributed parallel simulation method
US9026966B1 (en) Co-simulation methodology to address performance and runtime challenges of gate level simulations with, SDF timing using emulators
US20080306721A1 (en) Dynamic-Verification-Based Verification Apparatus Achieving High Verification Performance and Verification Efficiency and the Verification Methodology Using the Same
US20130179142A1 (en) Distributed parallel simulation method and recording medium for storing the method
US20090150136A1 (en) Dynamic-based verification apparatus for verification from electronic system level to gate level, and verification method using the same
US11386250B2 (en) Detecting timing violations in emulation using field programmable gate array (FPGA) reprogramming
US8346527B2 (en) Simulating an operation of a digital circuit
US20220385280A1 (en) Testable time-to-digital converter
WO2005093575A1 (en) Dynamic-verification-based verification apparatus achieving high verification performance and verification efficency and the verification methodology using the same
US6775810B2 (en) Boosting simulation performance by dynamically customizing segmented object codes based on stimulus coverage
CN116992804B (en) Chip verification method and computing device
Kaja et al. Towards fault simulation at mixed register-transfer/gate-level models
US9058452B1 (en) Systems and methods for tracing and fixing unknowns in gate-level simulation
KR20080009246A (en) Efficient debugging method in dynamic-based design verification
US7051303B1 (en) Method and apparatus for detection and isolation during large scale circuit verification
KR20080096723A (en) Distributed parallel simulation method based on adaptive synchronization/communication scheme
US7246053B2 (en) Method for transforming behavioral architectural and verification specifications into cycle-based compliant specifications
KR20060066634A (en) Dynamic-verification-based verification apparatus achieving high verification performance and verification efficiency, and the verification methodology using the same
JP5831067B2 (en) Power consumption analysis method, power consumption analysis apparatus, and power consumption analysis program
KR101328263B1 (en) Verification Method from Electronic System Level to Gate Level Using Systematic Progressive Refinement
US10210294B1 (en) System and methods for simulating a circuit design
US20220300690A1 (en) Incremental compilation for fpga-based systems
KR102493046B1 (en) Performance Improvement Method in Prediction-based Parallel Gate-level Timing Logic Simulation Using Adaptive Prediction Data
US11544435B1 (en) On-the-fly computation of analog mixed-signal (AMS) measurements
KR20080039182A (en) Clock generation method in hardware-assisted verification platform, and dynamic verification method using the same

Legal Events

Date Code Title Description
N231 Notification of change of applicant
WITN Withdrawal due to no request for examination