KR20070039857A - Verification method from electronic system level to gate level using systematic progressive refinement - Google Patents

Verification method from electronic system level to gate level using systematic progressive refinement Download PDF

Info

Publication number
KR20070039857A
KR20070039857A KR1020060092574A KR20060092574A KR20070039857A KR 20070039857 A KR20070039857 A KR 20070039857A KR 1020060092574 A KR1020060092574 A KR 1020060092574A KR 20060092574 A KR20060092574 A KR 20060092574A KR 20070039857 A KR20070039857 A KR 20070039857A
Authority
KR
South Korea
Prior art keywords
simulation
model
level
abstraction
local
Prior art date
Application number
KR1020060092574A
Other languages
Korean (ko)
Other versions
KR101328263B1 (en
Inventor
양세양
Original Assignee
양세양
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from KR1020060068811A external-priority patent/KR20070108303A/en
Application filed by 양세양 filed Critical 양세양
Priority to PCT/KR2006/004059 priority Critical patent/WO2007043786A1/en
Priority to US12/089,665 priority patent/US20090150136A1/en
Publication of KR20070039857A publication Critical patent/KR20070039857A/en
Priority to US12/987,481 priority patent/US8781808B2/en
Application granted granted Critical
Publication of KR101328263B1 publication Critical patent/KR101328263B1/en

Links

Images

Classifications

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

Abstract

본 발명은 추상화수준이 높은 시스템 수준으로부터 수차례의 구체화 과정을 통하여 이루어지는 디지털 시스템의 설계를 위한 설계 검증을 설계 전체 과정에서 체계적이며 효율적으로 수행하는 검증 장치와 이를 이용한 체계적이며 효과적인 검증 방법에 관한 것이다.The present invention relates to a verification apparatus for systematically and efficiently performing design verification for the design of a digital system, which is carried out through multiple specification processes from a high level of abstraction, and a systematic and effective verification method using the same. .

본 발명에서는 임의의 컴퓨터에서 수행되어지는 본 발명의 검증 소프트웨어로 하여금 원 설계 코드에 부가적인 코드나 부가적인 회로를 추가하고, 필요시에는 원 설계 코드로 구술된 모델보다 추상화 수준이 높은 모델을 생성하기 위하여 원 설계 코드와는 다른 코드로 본 발명의 검증 소프트웨어 등을 사용한 자동화된 방식 내지는 수동적 방식을 통한 모델링 과정을 통하여 얻게 되는 상기 추상화 수준이 높은 모델을 대상으로 하는 1회 이상의 시뮬레이션도 수행하게 한다. 시뮬레이션 수행은 상이한추상수준 동일모델 내지는 후단 시뮬레이션 대상이 되는 모델을 이용하는 앞단 시뮬레이션과 앞단 시뮬레이션 대상이 되는 모델과 상이한추상수준 동일모델 내지는 앞단 시뮬레이션 대상이 되는 모델을 이용하는 후단 시뮬레이션으로 나누어지며, 앞단 시뮬레이션의 시뮬레이션 결과를 효과적으로 이용하는 후단 시뮬레이션은 1 내지는 2 이상의 컴퓨터에서 수행되는 1 회 이상의 시뮬레이션을 1 내지는 2 이상의 시뮬레이터를 이용하여 순차적 수행을 가능하게 할뿐만 아니라, 2 이상의 컴퓨터에서 돌아가는 2 이상의 시뮬레이터를 이용하여 상호 최대한 독립적인 병렬적 수행을 가능하게 함으로서, 내지는 추상화 상위수준의 모델을 추상화 하위수준의 모델과 함께 시뮬레이션하여서 2 이상의 컴퓨터에서 돌아가는 2 이상의 시뮬레이터를 이용하여 상호 최대한 독립적인 병렬적 수행을 가능하게 함으로서 전체 검증 시간과 검증 비용의 대폭적인 단축을 가능하게 하고, 검증의 효율성을 크게 높일 수 있게 한다.In the present invention, the verification software of the present invention, which is executed on any computer, adds additional code or additional circuits to the original design code, and generates a model having a higher level of abstraction than the model dictated by the original design code if necessary. In order to perform the above-described one or more simulations for the high level of abstraction model obtained through an automated or manual modeling process using the verification software of the present invention, the code is different from the original design code. . Simulation performance is divided into front-end simulation using the same model with the same level of abstract model or the end simulation, and the back-end simulation using the model with the same abstract level model or the front-end simulation. Back-end simulation using the simulation results effectively enables one or more simulations to be performed sequentially on one or more computers using one or more simulators, as well as mutually using two or more simulators running on two or more computers. By enabling independent parallel execution as much as possible, two or more computers running on two or more computers can be simulated with models of higher abstraction levels. It enables significant reduction in overall verification time and the verification cost by using a simulator by enabling the maximum cross-independent parallel performed, and able to greatly improve the efficiency of verification.

하드웨어 검증 Hardware verification

Description

체계적 점진적 구체화를 통한 전자시스템수준에서부터 게이트수준까지의 검증 방법 {Verification Method from Electronic System Level to Gate Level Using Systematic Progressive Refinement}Verification Method from Electronic System Level to Gate Level Using Systematic Progressive Refinement}

도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 another example of the design verification apparatus according to the present invention;

면. if.

도3 은, ESL 모델의 계층구조 일 예를 이에 대응되는 RTL 모델의 계층구조의 일 예3 is an example of a hierarchical structure of an ESL model, and an example of a hierarchical structure of an RTL model corresponding thereto.

와 비교하여서 개략적으로 도시한 도면. Schematically shown in comparison with FIG.

도4 는, RTL 모델의 계층구조 일 예를 이에 대응되는 GL 모델의 계층구조의 일 예4 is an example of the hierarchical structure of the RTL model and an example of the hierarchical structure of the GL model corresponding thereto.

와 비교하여서 개략적으로 도시한 도면. Schematically shown in comparison with FIG.

도5 는, 분산병렬 시뮬레이션의 수행이 2 이상의 컴퓨터들이 컴퓨터네트워크로 연Fig. 5 shows that two or more computers are connected to a computer network by performing distributed parallel simulation.

결된 상황에서 수행되어지는 상황의 일 예를 개략적으로 도시한 도면.Figure schematically showing an example of the situation to be carried out in the determined situation.

도6 은, 추상화 상위수준 모델을 이용한 앞단 시뮬레이션에서 t-DCP를 획득하고 추6, t-DCP is obtained and added in the preceding simulation using the abstraction high-level model.

상화 하위수준 모델을 이용한 후단 시뮬레이션을 시간분할적병렬수행으로 진행되는 The post-simulation using the imaginary low-level model is performed by time division parallel execution.

일 예를 개략적으로 도시한 도면.Figure schematically showing an example.

도7 은, 추상화 상위수준 모델을 이용한 앞단 시뮬레이션에서 s-DCP를 획득하고 추Fig. 7 shows the acquisition and addition of s-DCP in the front-end simulation using the abstraction high-level model.

상화 하위수준 모델을 이용한 후단 시뮬레이션을 분산처리적병렬수행으로 진행되는 The post-simulation using the low-level model is performed by distributed parallelism.

일 예를 개략적으로 도시한 도면.Figure schematically showing an example.

도8 은, 본 특허에서 제시한 분산처리적병렬시뮬레이션을 위하여 부가되는 부가코8 is an additional code added for the distributed parallelism simulation presented in this patent.

드의 내부를 구성하는 컴퍼넌트들의 구성 일 예를 개략적으로 도시한 도면.Figure schematically shows an example of the configuration of the components constituting the interior of the card.

도9 는, 레지스터전송수준에서의 시그널 단위의 사이클정확한 버스 동작상황과 트Fig. 9 shows cycle-correct bus operation status and signal in signal units at the register transfer level.

란젝션수준에서의 트란젝션 단위의 사이클정확한 버스 동작상황의 일 예를 개략적Outline an example of a cycle-correct bus behavior in a transaction unit at the transaction level.

으로 도시한 도면.As shown.

도10 은, 도3 에서 예시한 ESL 모델내의 설계객체들과 이에 대응되는 RTL 모델내의 FIG. 10 shows design objects in the ESL model illustrated in FIG. 3 and corresponding RTL models in FIG.

설계객체들을 개략적으로 도시한 도면.A schematic representation of design objects.

도11 은, 도10 에서 예시한 ESL 모델내의 설계객체들 각각을 대응되는 RTL 모델내FIG. 11 shows each of the design objects in the ESL model illustrated in FIG. 10 in the corresponding RTL model.

의 설계객체로 대체하여서 추상화 중간수준의 혼합된 설계객체 DO_t_mixed(i)들을 Replace the intermediate design objects DO_t_mixed (i) with the design object

생성하는 일 예를 개략적으로 도시한 도면.Figure schematically showing an example of generating.

도12 는, 도11 에서 예시한 여섯 개의 혼합된 설계객체 DO_t_mixed(1), DO_t_mixed(2), .., DO_t_mixed(6)를 이용한 여섯의 혼합 시뮬레이션의 독립적 병FIG. 12 is an independent jar of six mixed simulations using the six mixed design objects DO_t_mixed (1), DO_t_mixed (2), .., DO_t_mixed (6) illustrated in FIG.

렬 실행과 이 실행 과정에서 1 내지는 2 이상의 시뮬레이션 시점들 내지는 구간들Column execution and one or more simulation points or intervals in the execution process

에서 수집된 상태정보들을 이용하여서 후단 시뮬레이션 단계인 RTL 모델에 대한 시The state of the RTL model, which is the post-simulation stage, is obtained using the state information collected from

뮬레이션을 시간분할적병렬수행으로 수행하는 일 예를 개략적으로 도시한 도면. A diagram schematically showing an example of performing the simulation by time division parallel execution.

도13 은, 점진적 구체화 과정을 통하여 처음 추상화 수준에서부터 마지막 추상화 Fig. 13 shows the abstraction from the first level of abstraction through a gradual specification process.

수준으로 진행되는 설계 및 검증 과정의 일 예를 개략적으로 도시한 도면.A schematic illustration of an example of a design and verification process that proceeds at a level.

도14 는, 점진적 구체화 과정을 거쳐서 트란젝션 수준의 모델에서부터 RTL 모델을 Fig. 14 shows the RTL model from the transaction level model through a gradual specification process.

거쳐서 게이트수준의 모델까지 생성되는 과정의 일 예를 개략적으로 도시한 도면. A diagram schematically showing an example of a process of generating a model at the gate level through.

도15 는, 점진적 구체화 과정을 거쳐서 사이클정확 트란젝션 수준의 모델을 이용한 Fig. 15 shows a model of cycle accuracy transaction level through a gradual specification process.

검증에서부터 RTL 모델을 이용한 검증을 거쳐서 게이트수준의 모델을 이용한 검증Verification using gate level model through verification using RTL model

까지 진행되는 과정에 s-DCP 내지는 t-DCP를 이용하여서 추상화 하위수준 모델에 In the process up to using s-DCP or t-DCP

대한 시뮬레이션을 분산처리적병렬수행 내지는 시간분할적병렬수행으로 진행하는 Simulations can be performed in either distributed or time-division parallel execution.

것의 일 예를 개략적으로 도시한 도면.Schematically showing an example of the thing.

도16 은, 본 특허에서의 시뮬레이션 방법을 진행하는 예제 모델의 일부분을 개략적Figure 16 schematically illustrates a portion of an example model for running a simulation method in the present patent.

으로 도시한 도면.As shown.

도17 은, 도16 에서 예시한 예제 모델을 분산처리적병렬시뮬레이션으로 수행시키기 Fig. 17 is a diagram showing the execution of the example model illustrated in Fig. 16 by distributed parallelism simulation.

위하여 본 특허의 검증 소프트웨어를 이용하여 부가 코드를 부가한 상황의 일 예를 An example of a situation where an additional code is added using the verification software of the present patent

부분적으로 개략적으로 도시한 도면 Partially schematic drawing

도18 은, 도16 에서 예시한 예제 모델을 분산처리적병렬시뮬레이션으로 수행시키기 18 is a diagram illustrating the execution of the example model illustrated in FIG. 16 by distributed parallelism simulation.

위하여 본 특허의 검증 소프트웨어를 이용하여 부가 코드를 부가한 상황의 일 예를 An example of a situation where an additional code is added using the verification software of the present patent

또 다른 부분적으로 개략적으로 도시한 도면 Another partially schematic drawing

도19 는, 도16 에서 예시한 예제 모델을 분산처리적병렬시뮬레이션으로 수행시키기 Fig. 19 is a diagram of executing the example model illustrated in Fig. 16 by distributed parallelism simulation.

위하여 본 특허의 검증 소프트웨어를 이용하여 부가 코드를 부가한 상황의 일 예를 An example of a situation where an additional code is added using the verification software of the present patent

또 다른 부분적으로 개략적으로 도시한 도면Another partially schematic drawing

도20 은, 분산처리적병렬수행/단일수행 혼용방식의 수행 상황의 일 예를 개략적으20 schematically shows an example of a performance situation of a distributed processing parallel execution / single performance mixed method.

로 도시한 도면.As shown.

도21 은, 시뮬레이션가속을 통한 시뮬레이션을 분산처리적병렬수행으로 진행함으로21 shows that the simulation through the acceleration of the simulation is carried out by distributed processing parallel execution.

서 시뮬레이터와 하드웨어기반검증플랫폼 간의 동기 오버헤드 및 통신 오버헤드를 Sync overhead and communication overhead between the simulator and the hardware-based verification platform.

감소시키는 상황의 일 예를 개략적으로 도시한 도면.Schematically illustrating an example of a reducing situation.

도22 는, 본 특허에서의 분산처리적병렬수행 방식의 시뮬레이션을 위한 2 이상의 Fig. 22 is a schematic of two or more for simulation of a distributed processing parallel execution scheme in the present patent.

컴퓨터에 인스톨된 2 이상의 로컬컴퓨터들의 논리적연결구조 방식들의 몇가지 사례Some examples of logical connection schemes of two or more local computers installed on a computer

들을 개략적으로 도시한 도면.Schematically showing them.

도23 은, 분산병렬 시뮬레이션을 2 이상의 컴퓨터들과 이들 컴퓨터에 인스톨된 2 Fig. 23 shows two or more computers with distributed parallel simulations installed on these computers.

이상의 HDL 시뮬레이터들을 이용하여서 구성한 분산병렬 시뮬레이션 환경의 일 예An example of distributed parallel simulation environment constructed using the above HDL simulators

를 개략적으로 도시한 도면.Schematically showing a.

도24 는, 통상적인 분산병렬 시뮬레이션의 전체 진행 흐름도의 일 예를 개략적으로 Fig. 24 schematically shows an example of an overall flow chart of a typical distributed parallel simulation.

도시한 도면.Figure shown.

도25 는, 본 특허에서의 분산처리적병렬시뮬레이션의 전체 진행 흐름도의 일 예를 25 is an example of an overall flow chart of distributed processing parallel simulation in the present patent.

개략적으로 도시한 도면.Schematic drawing.

도26 은, 본 특허에서의 분산처리적병렬시뮬레이션 수행을 위한 각 로컬시뮬레이터Fig. 26 shows each local simulator for performing distributed processing parallel simulation in the present patent.

로 실행되는 로컬시뮬레이션 수행의 흐름도의 일 예를 개략적으로 도시한 도면.Schematically showing an example of a flowchart of performing a local simulation to be executed in a network.

도27 은, 본 특허에서의 분산처리적병렬시뮬레이션 수행을 위한 각 로컬시뮬레이터Fig. 27 shows each local simulator for performing distributed processing parallel simulation in the present patent.

로 실행되는 로컬시뮬레이션 수행의 흐름도의 또 다른 일 예를 개략적으로 도시한 Schematically showing another example of a flowchart of performing a local simulation performed with a

도면.drawing.

도28 은 별방식의 논리적연결구조에서 로컬시뮬레이터로 실행되는 로컬시뮬레이션 28 is a local simulation executed by a local simulator in a star logical connection structure.

수행의 흐름도의 일 예를 개략적으로 도시한 도면.Schematically illustrates an example of a flowchart of performance.

도29 는 별방식의 논리적연결구조에서 중앙컴퓨터에 존재하는 SW서버 모듈로 수행29 is performed by the SW server module existing in the central computer in the logical connection structure of the star system.

되는 과정의 흐름도의 일 예를 개략적으로 도시한 도면.Figure schematically showing an example of a flow chart of the process.

도30 은, 도8 의 본 특허에서 제시한 분산처리적병렬시뮬레이션을 위하여 부가되는 30 is added for the distributed processing parallel simulation presented in this patent of FIG.

부가 코드 내부를 구성하는 컴퍼넌트들 일부분에 대하여 이들의 행태를 모조코드 Counterfeit their behavior with respect to some of the components that make up the supplementary code.

형식으로 구술한 예를 개략적으로 도시한 도면.Schematically illustrates an example dictated in a format;

도31 은, 도8 의 본 특허에서 제시한 분산처리적병렬시뮬레이션을 위하여 부가되는 FIG. 31 is added for the distributed parallelism simulation presented in this patent of FIG.

부가 코드 내부를 구성하는 컴퍼넌트들 또 다른 일부분에 대하여 이들의 행태를 모The other parts of the components that make up the supplementary code are collected from their behavior.

조코드 형식으로 구술한 예를 개략적으로 도시한 도면.A diagram schematically showing an example dictated in Joecode format.

도32 는, 본 특허에서 제시한 분산처리적병렬시뮬레이션을 위하여 부가되는 부가코32 is an additional code added for the distributed parallelism simulation presented in this patent.

드의 내부를 구성하는 컴퍼넌트들의 구성의 다른 일 예를 개략적으로 도시한 도면Schematically showing another example of the configuration of the components constituting the interior of the card

도33 은, 본 특허에서의 분산처리적병렬시뮬레이션의 전체 진행 흐름도의 또 다른 33 is another flowchart of the overall flow of the distributed processing parallel simulation in the present patent.

일 예를 개략적으로 도시한 도면. Figure schematically showing an example.

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

32 : 검증 소프트웨어 34 : HDL 시뮬레이터32: Verification Software 34: HDL Simulator

35 : 컴퓨터35: computer

37 : ESL 모델 38 : 설계블록을 나타내는 설계객체37: ESL Model 38: Design Object Representing Design Block

39 : 설계모듈을 나타내는 설계객체39: design object representing the design module

40 : RTL 모델 42 : 온칩 버스(On-chip bus)40: RTL model 42: On-chip bus

50 : 예상입력 52 : 예상출력50: expected input 52: expected output

53 : 추상화 상위수준에서 구술된 DUV와 TB 모두를 포함하는 설계객체53: Design objects containing both DUVs and TBs dictated at higher levels of abstraction

54 : 예상입출력이용-런/실제입출력이용-런 제어모듈54: Expected I / O-run / actual I / O-run control module

56 : 예상입력/실제입력 선택모듈56: expected input / actual input selection module

58 : 예상출력/실제출력 비교모듈58: expected output / actual output comparison module

59 : 예상입력/실제입력 비교모듈 59: expected input / actual input comparison module

60 : s-DCP 생성/저장 모듈60: s-DCP generation / storage module

62 : 검증 소프트웨어로써 검증대상 설계코드에 부가되어진 부가 코드62: additional code added to the design code to be verified by the verification software

64 : 분산병렬 시뮬레이션을 위한 통신 및 동기화 모듈64: Communication and Synchronization Module for Distributed Parallel Simulation

333 : 별방식의 연결구조에서 분산병렬 시뮬레이션 수행 시에 로컬시뮬레이션들의 333: Local simulations of distributed parallel simulation

제어와 로컬시뮬레이션들의 연결을 수행하는 중앙컴퓨터에 존재하는 SW서버 모듈SW server module in the central computer that performs the connection of control and local simulations

343 : 분산병렬 시뮬레이션 환경에서 로컬시뮬레이션을 수행하는 시뮬레이터343: Simulator for Local Simulation in Distributed Parallel Simulation Environment

353 : 중앙컴퓨터353: central computer

354 : 외곽컴퓨터354: Outer Computer

370 : GL 모델370: GL model

380 : RTL 모델 내의 특정 설계객체380: specific design objects in the RTL model

381 : RTL 모델 내의 또 다른 특정 설계객체381: Another specific design object in the RTL model

382 : RTL 모델 내의 또 다른 특정 설계객체382: Another specific design object in the RTL model

383 : RTL 모델 내의 또 다른 특정 설계객체383: Another specific design object in the RTL model

384 : RTL 모델 내의 또 다른 특정 설계객체384: Another specific design object in the RTL model

385 : RTL 모델 내의 또 다른 특정 설계객체385: Another specific design object in the RTL model

387 : RTL 모델에 존재하지 않으나 GL 모델에는 존재하는 설계모듈을 나타내는 설387: A description of a design module that does not exist in the RTL model but exists in the GL model.

계객체Object

404 : 로컬시뮬레이터에서 수행되는 설계 검증 대상 모델의 일부분404: part of the design verification target model performed in the local simulator

420 : RTL 모델 내의 버스중재기 및 어드레스디코더를 포함하는 온칩 버스 설계객420: On-Chip Bus Designer Including Bus Intermediate and Address Decoder in RTL Model

sieve

606 : s-DCP 저장버퍼606: s-DCP storage buffer

644 : 분산병렬 시뮬레이션을 위한 로컬시뮬레이션 런-타임 모듈644: Local Simulation Run-Time Module for Distributed Parallel Simulation

646 : 시뮬레이션가속을 위한 통신 및 동기화 모듈646: communication and synchronization module for simulation acceleration

648 : 하드웨어기반검증플랫폼648 Hardware-based Verification Platform

650 : 시뮬레이션가속 런타임 모듈650 simulation acceleration runtime module

660 : 분산병렬 시뮬레이션에서 로컬시뮬레이터에 수행되도록 분할된 모델내의 설660: Installation in a model that is split to be performed on the local simulator in distributed parallel simulation.

계객체Object

670 : VPI/PLI/FLI670: VPI / PLI / FLI

674 : Socket API674: Socket API

676 : TCP/IP socket676: TCP / IP socket

678 : Device API678: Device API

680 : Device Driver680: Device Driver

682 : HAL(Hardware Abstraction Layer)682: Hardware Abstraction Layer (HAL)

684 : Giga-bit LAN card684: Giga-bit LAN card

본 발명은 전자적 시스템 수준(Electronic System Level: 앞으로 ESL로 약칭함)에 서부터 게이트 수준까지로의 설계를 시뮬레이션을 이용하여 체계적으로 검증하는 기술에 관한 것으로, 설계된 수백만 게이트급 이상의 디지털 시스템을 검증하고자 하는 경우에 검증의 성능과 효율성을 증가시키는 검증 방법에 관한 것이다. 반도체 설계 검증에서 시뮬레이션(simulation)이란 소프트웨어적으로 DUV(Design Under Verification) 내지는 DUV내의 1 이상의 설계객체(추후에 정의됨)와 이를 구동하는 테스트벤치를 컴퓨터로 실행가능한 모델(computer-executable model)로서 구성하고, 이와 같은 컴퓨터로 실행가능한 모델을 시뮬레이션 컴파일 과정을 통하여 컴퓨터의 기계언어(machine instruction)들의 시퀀스로 바꾸어서 컴퓨터를 이용하여서 실행시키는 과정이다. 따라서, 시뮬레이션의 실행은 기본적으로 컴퓨터의 기계언어들의 순차적인 수행(sequential execution)을 통하여 이루어지게 되는데, 현재 다양한 시뮬레이션 기술(이벤트-구동 시뮬레이션(event-driven simulation), 사이클-기반 시뮬레이션(cycle-based simulation), 컴파일방식 시뮬레이션(compiled simulation), 해석방식 시뮬레이션(interpreted simulation), 동시-시뮬레이션(co-simulation) 등)들이 존재하고 있다. 즉 시뮬레이션이란 설계대상 내지는 구현대상이 되는 설계객체를 적정한 추상화 수준(abstraction level, 반도체 설계에서는 게이트-수준, 레지스터전송-수준, 트란젝션-수준, 아키텍춰-수준, 행위-수준, 알고리즘-수준 등의 다양한 추상화 수준 등이 존재함)에서의 모델링 과정(modeling process)을 통하여 컴퓨터를 이용하여 소프트웨어적으로 수행시켜서 해당 설계객체의 동작기능 내지는 동작특성 등을 모의적으로 컴퓨터 상에서 실현시키는 다양한 과정들을 모두 통칭하는 것이다. 이와 같은 시뮬레이션의 장점은 설계객체를 실제적으로(physically) 구현하기 전에 이의 동작기능 내지는 동작특성 등을 가상적으로(virtually) 컴퓨터 상에서 미리 예측해볼 수 있을 뿐만 아니라 소프트웨어적인 방식임으로 높은 유연성을 제공받을 수 있다는 것이며, 단점으로는 시뮬레이션의 수행이 결국은 기계언어들의 시퀀스가 순차적인 수행을 통하여 이루어지게 됨으로 시뮬레이션 대상의 되는 설계객체의 복잡도가 큰 경우(예로 최근의 반도체는 1억 게이트급 이상의 설계들도 다수 존재함)에는 시뮬레이션의 수행 속도가 매우 느리다(예로 상기 1억 게이트급의 설계를 이벤트-구동 시뮬레이션으로 수행하는 경우의 시뮬레이션 속도가 1 cycle/sec가 되고 시뮬레이션을 100,000,000 사이클 수행하여야 한다면 약 3.2년이 소요됨)는 것이다. 따라서, 본 특허에서 시뮬레이션이라함은 DUV 내지는 DUV 내의 1 이상의 설계객체를 적정한 추상화 수준에서 소프트웨어적으로 모델링하여서 이를 소프트웨어적으로 실행시키는 모든 방법을 가르킨다. 좀 더 구체적으로 설명한다면, DUV 내지는 DUV 내의 1 이상의 설계객체의 특정 추상화 수준의 행태(behavior)를 궁극적으로 특정한 컴퓨터 자료구조(data structure)와 이 특정한 자료구조에 대한 일정한 오퍼레이션(operation)들로 정의되어지도록 구현함으로서 이를 컴퓨터 실현가능한(computer-executable) 형태로 만들고, 여기에 입력 값들이 인가되면서 컴퓨터로 동작시키는 과정 내지는 입력 값들로써 컴퓨터에서 일련의 연산(computation) 내지는 프로세싱(processing)을 포함하는 과정이라면 모두 시뮬레이션이라고 정의한다 (따라서, 상용 시뮬레이터를 이용하여 이루어지는 시뮬레이션뿐만 아니라, 상기 정의에 부합되는 과정이라면 자체적으로 제작한 시뮬레이 터에 의한 시뮬레이션과 상기 시뮬레이션 프로세스와 동일한 과정을 통한 모델링을 통하여 컴퓨터 상에서 가상적으로 수행되어지는 소프트웨어 프로세스라면 모두 시뮬레이션으로 정의하기로 한다).The present invention relates to a technique for systematically verifying a design from an electronic system level (abbreviated to ESL) to a gate level by using a simulation. In this case, the present invention relates to a verification method which increases the performance and efficiency of verification. In semiconductor design verification, simulation is a computer-executable model that is software-based under design (DUV) or one or more design objects in a DUV (defined later) and the test bench that drives it. The computer-implemented model is converted into a sequence of machine instructions of a computer through a simulation compilation process and executed using a computer. Therefore, the execution of the simulation is basically performed through the sequential execution of the machine language of the computer, and at present various simulation techniques (event-driven simulation, cycle-based simulation). simulation, compiled simulation, interpreted simulation, co-simulation, etc. exist. That is, simulation means design objects that are designed or implemented as appropriate abstraction levels (abstraction level, semiconductor transfer design, gate-level, register transfer-level, transaction-level, architecture-level, behavior-level, algorithm-level, etc.). Various processes that simulate the operating function or operation characteristics of the corresponding design object on the computer through software modeling through the modeling process in various levels of abstraction) It is. The advantage of such simulation is that it is possible not only to predict virtually the operation function or operation characteristics of the design object before implementing it physically, but also provide high flexibility in software. The disadvantage is that the simulation is finally performed through the sequential execution of the machine languages, so that the complexity of the design object to be simulated is large. Present), the simulation is very slow (for example, if the 100 million-gate design is performed by event-driven simulation, the simulation speed is 1 cycle / sec and about 3.2 years if the simulation is to be performed 100,000,000 cycles). Is required). Therefore, simulation in this patent refers to all methods of software modeling one or more design objects in a DUV or DUV at an appropriate level of abstraction and executing them in software. More specifically, the behavior of a particular level of abstraction of a DUV or one or more design objects within a DUV ultimately defines a particular computer data structure and certain operations on that particular data structure. Process to make it computer-executable and to operate the computer with input values applied thereto or to include a series of computations or processing in the computer as input values. If it is defined as a simulation, it is defined as a simulation (So, if the process meets the definition as well as the simulation using a commercial simulator, the simulation is performed on the computer through the simulation by the self-made simulator and the modeling through the same process as the simulation process.If a software process which is normally carried out will be both defined by simulation).

최근에 집적회로(IC: Integrated Circuit)의 설계 및 반도체 공정기술이 급격하게 발달함에 따라 디지털 회로 내지는 디지털 시스템 설계의 규모가 최소 수천만 게이트급에서 수억 게이트급까지 커짐은 물론 그 구성이 극히 복잡해지고 있는 추세이고, 이와 같은 추세는 계속적으로 확대되고 있는 추세이다. 특히 SOC(System On Chip)으로 통칭되는 최근의 시스템급의 집적회로들은 대부분 1 이상의 프로세서 코어(RISC 코어 내지는 DSP 코어 등으로, 구체적 예로는 ARM사의 ARM11 코어 내지는 CEVA사의 Teak DSP 코어)를 내장하고 칩 기능의 상당 부분들을 소프트웨어로 구현하는 추세이다. 그리고, 시장에서의 경쟁은 더욱 더 치열해지므로 빠른 시간 내에 우수한 제품을 개발하여야만 함으로 설계 기간의 단축은 제품의 성공을 결정하는 매우 중요한 요소로 되어져 버렸다. 따라서 최근의 칩 설계에서는 ESL 설계 기법이 새로운 설계 방식으로 산업체에서 많은 주목을 받고 있다. 이와 같은 전통적인 디지털 하드웨어 설계에서 적용하여 왔던 RTL(Register Transfer Level) 설계기법보다 추상화 수준(abstraction level)(추후에 설명됨)이 높은 ESL 설계 기법을 적용하여 설계되는 칩들은 칩 설계와 더불어서 이 칩을 구동시키는 소프트웨어의 개발도 동시에 수행되어져야만 한다. 따라서, 하드웨어의 설계와 동시에 소프트웨어 개발을 진행시키기 위하여서 해당 하드웨어를 소프트웨어적으로 모델링한 가상 플랫폼(Virtual Platform, 앞으로 VP로 약칭함)을 만들어서 시스템 수준의 모델(ESL 모 델)로 아키텍춰 탐색(architecture exploration), 소프트웨어 개발, 하드웨어/소프트웨어 동시 검증(HW/SW co-verification), 시스템 검증(system verification)에 사용하는 것이 최근의 추세인데, 이는 수행 가능한 스펙(executable specification)의 역할(즉 레퍼런스 모델의 역할)도 수행한다. 이와 같은 VP는 추상화 수준을 높여서 만들게 됨으로 신속하게 만들 수 있을 뿐만 아니라, 구현가능한 DUV를 설계하기 이전에 DUV에 대한 VP를 먼저 만들어 놓으면 이 VP를 이용하여서 구현가능한 DUV가 존재하기 이전에 TB에 대한 검증을 미리 진행할 수도 있음으로 여러 면에서 유리하다. 이와 같은 VP는 현재 SOC 설계 방법에서 보편화된 플랫폼기반의 설계(PBS: Platform-based Design)에서 중요한 역할을 수행하는데, VP는 일반적으로 트란젝션(transaction) 수준에서 온-칩 버스(on-chip bus)를 정해진 버스규약(bus protocol)에 맞추어서 모델링한 버스 모델(이와 같이 트란젝션 수준에서 모델링된 것을 TLM 모델이라함)을 핵심 컴퍼넌트화 하여서 이 버스에 연결되어지는 설계블럭들을 트란젝션 수준(transaction level)에서 모델링하여 이들 트란젝션 수준의 설계블럭들을 추상화되어진 버스규약에 맞추어 버스 모델과 통신이 이루어질 수 있게 함으로서 상대적으로 높은 시뮬레이션 수행속도(대략 RTL 모델의 수행속도와 비교하여 100배-10,000배)를 가능하게 한다. 현재 이와 같은 VP를 생성시키고 수행시키는 상용 툴들로서는 ARM사의 MaxSim, CoWare사의 ConvergenSC, Cadence사의 Insicive, Summit Design사의 VisualElite, Vast Systems Technology사의 VSP, Synopsys사의 SystemStudio, TenisonEDA사의 VTOC, Carbon Design Systems사의 VSP, Virutech사의 VirtualPlatform 등이 있다. SOC 설계에서는 이 VP 는 소프트웨어를 개발할 수 있을 정도의 빠른 수행 속도가 제일 중요함으로 Verilog나 VHDL과 같은 언어를 이용하여서 레지스터전송수준(RTL)에서 모델링하지 않고, C/C++ 내지는 SystemC와 같은 언어를 이용하여서 RTL 보다 추상화 수준이 높은 트란젝션 수준 내지는 알고리즘 수준(algorithmic level)에서 모델링하고 있다. 시스템 설계에서 매우 중요한 개념인 추상화 수준(abstraction level)이란 해당 설계객체(추후에 설명됨)의 구술의 구체화 정도를 표현하는 단계로, 디지털 시스템의 경우에는 추상화 수준이 낮은 단계에서부터 높은 단계로 레이아웃-수준, 트란지스터-수준, 게이트-수준, RTL(레지스터전송-수준), 트란젝션 수준, 알고리즘 수준 등으로 나눌 수 있다. 즉, 게이트-수준은 RTL 보다 추상화 수준이 낮고, RTL 수준은 트란젝션 수준보다 추상화 수준이 낮으며, 트란젝션 수준은 알고리즘 수준보다 추상화 수준이 낮다. 따라서, 특정 설계객체 A 의 추상화 수준이 트란젝션이고, 이를 더욱 구체화시켜서 표현한 설계객체 B가 RTL이면 설계객체 A는 설계객체 B보다 추상화 수준이 높다고 정의 한다. 뿐만 아니라 설계객체 X가 내부에 설계객체 A와 설계객체 C를 가지고 있고 설계객체 Y는 내부에 A를 구체화한 설계객체 B와 설계객체 C를 가지고 있다면, 설계객체 X는 설계객체 Y보다 추상화 수준이 높다고 정의한다. 뿐만 아니라, 같은 게이트수준 내지는 같은 RTL에서는 지연시간 모델을 얼마나 더 정확이 하였느냐에 따라서 추상화 수준의 높고 낮음을 결정할 수 있다. 즉, 지연시간 모델이 정확한 것이 추상화 수준이 낮다고 이야기하는데, 예로서 같은 게이트수준이라고 하더라도 제로지연시간모델(zero-delay model)의 네트리스트가 단위지연시간모델(unit-delay model)의 네트리스트보다 추상화 수준이 높다고 하고, 단위지 연시간모델의 네트리스트가 SDF(Standard Delay Format)를 이용한 풀타이밍모델(full-timing model)의 네트리스트보다 추상화 수준이 높다고 정의한다. 최근의 SOC 설계는 칩으로 최종적으로 구현되어져야 하는 대상을 시초 설계객체로 정의하고, 이 시초 설계객체를 처음 추상화 수준(예로 트란젝션 수준)에서부터 점진적 구체화 과정(progressive refinement process)를 통하여서 목표로 하는 마지막 추상화 수준(예로 게이트-수준)까지 구체화 시켜가는 과정이라고 정의될 수 있다 (도 14 참조). 점진적 구체화(progressive refinement) 과정을 통한 설계 기법은 플랫폼 기반의 설계와 함께 최근의 SOC의 설계 복잡도에 효율적으로 대처하면서 설계를 진행시킬 수 있는 유일한 설계 기법으로 대부분의 SOC 설계들은 이와 같은 점진적 구체화 과정을 통하여 진행되어진다. 점진적 구체화 과정을 통한 설계 기법의 핵심은 추상화 상위 수준에서 모델링된 설계객체 MODEL_DUV(HIGH) 내에 존재하는 설계 블럭들을 단계별로 구체화시켜서 MODEL_DUV(HIGH)보다 추상화 하위 수준에서 모델링되는 설계객체 MODEL_DUV(LOW)를 자동화된 방식(예로 논리합성 내지는 상위수준합성)으로 내지는 수작업 방식으로 내지는 자동화된 방식과 수작업 방식을 혼용하여서 얻는 과정이라고 요약할 수 있다. 이의 구체적 예로서는 우선 ESL에서부터 RTL로 구체화하는 단계인 ESL 모델에서부터 구현가능한 RTL 모델을 얻는 과정(이 과정은 현재 수작업으로 진행되거나 내지는 상위수준합성 방식 내지는 이를 혼용한 방식으로 진행됨)에서는 ESL 모델이 MODEL_DUV(HIGH)가 되고, 구현가능한 RTL 모델이 MODEL_DUV(LOW)가 되는 것이며, 다시 RTL에서부터 게이트 수준으로 구체화하는 단계인 구현가능한 RTL 모델에서부터 게이트 수준 모델(즉, 게이트-수준 네트리스 트)를 얻는 과정(이 과정은 현재 대부분 논리합성 방식으로 진행됨)에서는 구현가능한 RTL 모델이 MODEL_DUV(HIGH)가 되고, 게이트 수준 모델이 MODEL_DUV(LOW)가 된다. 이 게이트 수준 모델은 배치 및 배선(placement and routing) 과정에서 추출된 지연시간 정보(Standard Delay Format으로 표현됨)를 부가(back-annotation)함으로서 타이밍정확한 게이트 수준 모델이 된다 (앞으로는 모델이라고 하면 특별한 언급이 없는 한, DUV(Design Under Verification으로 추후에 설명됨)와 TB(Test Bench로 추후에 설명됨)를 모두 포함하고 있는 것으로 정의한다). With the recent rapid development of integrated circuit (IC) and semiconductor process technology, the scale of digital circuit or digital system design has grown from at least tens of millions of gates to hundreds of millions of gates. It is a trend, and this trend is continuously expanding. In particular, the recent system-class integrated circuits, commonly referred to as SOCs (System On Chip), are mostly embedded with at least one processor core (RISC core or DSP core, for example, ARM11 ARM or CEVA Teak DSP core). A great deal of functionality is being implemented in software. And competition in the market is fierce, so it is necessary to develop a superior product in a short time, and shortening the design period has become a very important factor in determining the success of the product. Therefore, in recent chip design, the ESL design technique is attracting much attention from the industry as a new design method. Chips designed with ESL design techniques that have higher abstraction levels (described later) than the Register Transfer Level (RTL) design techniques that have been used in traditional digital hardware designs are used in addition to the chip design. The development of the running software must also be carried out at the same time. Therefore, in order to proceed with software development at the same time as designing hardware, architecture exploration is made by system level model (ESL model) by creating virtual platform (hereinafter referred to as VP) modeling the hardware. ), Software development, hardware / software co-verification, and system verification are recent trends, which serve as an executable specification (i.e. the role of a reference model). ). Such VPs can be created quickly by increasing the level of abstraction, as well as creating a VP for the DUV before designing a viable DUV. Verification can be done in advance, which is advantageous in many ways. Such VPs play an important role in platform-based design (PBS), which is common in current SOC design methods. VPs are typically on-chip buses at the transaction level. ) Is a core component of the bus model (modeled at the transaction level, called the TLM model) modeled according to the specified bus protocol, and the transaction level of the design blocks connected to this bus. By designing these transaction level design blocks to communicate with the bus model according to the abstracted bus protocol, the simulation performance is relatively high (approximately 100 times -10,000 times compared to that of the RTL model). Make it possible. Currently, commercial tools for creating and executing such VP include ARM MaxSim, CoWare ConvergenSC, Cadence Insicive, Summit Design VisualElite, Vast Systems Technology VSP, Synopsys SystemStudio, TenisonEDA VTOC, Carbon Design Systems VSP, Virutech's VirtualPlatform. In SOC design, the VP is fast enough to develop software, so it is important not to model at the register transfer level (RTL) using languages such as Verilog or VHDL, but to use languages such as C / C ++ or SystemC. Therefore, the model is modeled at the transaction level or algorithm level, which has a higher level of abstraction than RTL. Abstraction level, a very important concept in system design, expresses the degree of dictation of the dictation of the design object (described later). It can be divided into level, transistor-level, gate-level, register transfer-level (RTL), transaction level, and algorithm level. That is, the gate-level has a lower level of abstraction than the RTL, the RTL level has a lower level of abstraction than the transaction level, and the transaction level has a lower level of abstraction than the algorithm level. Therefore, if the level of abstraction of a specific design object A is a transaction, and the design object B expressed in detail is RTL, the design object A is defined as having a higher level of abstraction than the design object B. In addition, if design object X has design object A and design object C inside, and design object Y has design object B and design object C incorporating A inside, design object X is more abstract than design object Y. It is defined as high. In addition, depending on how much more accurate the latency model is at the same gate level or the same RTL, it is possible to determine the high and low level of abstraction. In other words, the accurate latency model is said to have a low level of abstraction. For example, even if the gate level is the same, the netlist of the zero-delay model is better than the netlist of the unit-delay model. The level of abstraction is high, and the netlist of unit time model is higher than the netlist of full-timing model using SDF (Standard Delay Format). Recent SOC design defines the object to be finally implemented in the chip as the initial design object, which targets the initial design object from the initial abstraction level (e.g. transaction level) through the progressive refinement process. It can be defined as the process of shaping to the last level of abstraction (eg gate-level) (see FIG. 14). The design technique through progressive refinement process is the only design technique that can cope with the design complexity of the recent SOC with the platform-based design. It proceeds through. The core of the design technique through the gradual materialization process is to refine the design blocks existing in the design object MODEL_DUV (HIGH) modeled at the upper level of abstraction step by step to designate the design object MODEL_DUV (LOW) modeled at the lower level of abstraction than MODEL_DUV (HIGH). It can be summarized as a process obtained by using an automated method (eg, a logic synthesis or a higher level synthesis) or by a manual method or a mixture of an automated method and a manual method. As an example of this, first of all, the process of obtaining an RTL model that can be implemented from an ESL model, which is an embodiment of ESL to RTL (this process is currently performed manually or in a high-level synthesis method or a mixture thereof), is performed using the MODEL_DUV ( HIGH), and the implementable RTL model becomes MODEL_DUV (LOW), and the process of obtaining the gate-level model (ie, gate-level netlist) from the implementable RTL model, which is the step of specifying from the RTL to the gate level again ( This process is now mostly done in a logic synthesis method), and the RTL model that can be implemented becomes MODEL_DUV (HIGH) and the gate level model becomes MODEL_DUV (LOW). This gate-level model is a timing-accurate gate-level model by back-annotating the delay information (represented in Standard Delay Format) extracted during the placement and routing process. Unless otherwise defined, it includes both DUV (described later as Design Under Verification) and TB (described later as Test Bench).

여기에서 한가지 언급할 것은 ESL 모델이라고 하더라도 ESL 모델 내부에 존재하는 모든 설계객체들이 시스템 수준으로 존재하여야만 하는 것은 아니며, RTL 모델이라고 하더라도 RTL 모델 내부에 존재하는 모든 설계객체들이 레지스터전송 수준으로 존재하여야만 하는 것은 아니라는 것이다. 즉, ESL 모델이라고 하더라도 이 모델 내부의 특정 소수의 설계객체들은 레지스터전송 수준으로 존재하고 이들 설계객체들 추상화용 래퍼(wrapper)로 감싸버림으로서 시스템 수준으로 존재하는 다른 다수의 설계객체들과 추상화 수준을 맞추어 냄으로서 ESL 모델로서 취급되어질 수 있고, RTL 모델이라고 하더라도 이 모델 내부의 특정 소수의 설계객체들은 게이트 수준으로 존재하지만 RTL 수준으로 존재하는 다른 다수의 설계객체들과 같이 RTL 모델로서 취급되어질 수도 있다. 같은 이유에서 GL 모델에서도 특정 소수의 설계객체(예로서 논리합성으로 게이트수준의 네트리스트를 생성시키지 않는 메모리블럭)들은 레지스터전송 수준으로 존재할 수도 있다. 따라서 본 특허에서 "특정 추상화 수준의 모델" 이라고 하면 ESL에서부터 GL에까지 점진적 구체화 과정에서 존재할 수 있는 다양한 추상화 수준들(ESL, RTL, GL 추상화 수준뿐만 아니라 이들의 혼합된 형태의 추상화 수준들인 ESL/RTL 혼합된 추상화 수준, RTL/GL 혼합된 추상화 수준, ESL/RTL/GL 혼합된 추상화 수준 등도 모두 포함하는 추상화 수준들)에서 존재하는 설계 대상이 되는 어떠한 형태의 모델들 중에 하나를 특정하는 명칭이고, 일반적으로 지칭되어지는 “추상화 수준”이라고 하면 ESL, RTL, GL 뿐만 아니라 ESL에서부터 GL에까지 점진적 구체화 과정에서 존재할 수 있는 다양한 추상화 수준들(예로, ESL/RTL 혼합된 추상화 수준, RTL/GL 혼합된 추상화 수준, ESL/RTL/GL 혼합된 추상화 수준 등)도 모두 포함되는 명칭임을 강조해 둔다. 예로서, DUV 내부에 4개의 설계객체 A, B, C, D가 서브모듈로서 존재하고 A와 B는 ESL, C는 RTL, 그리고 D는 GL 추상화 수준에서 구술됨으로서 DUV가 ESL/RTL/GL이 혼합된 형태의 추상화 수준 모델이라고 하더라도 이 DUV는 특정 추상화 수준의 모델이라고 지칭할 수 있다 (뿐만 아니라, 구체적으로 ESL/RTL/GL이 혼합된 추상화 수준의 모델이라고 구체적으로 지칭하는 것도 가능함). 앞으로, 추상화 수준이 혼합된 형태의 모델의 경우에 추상화 수준이 혼합된 형태임을 분명하게 이야기할 필요가 있는 경우에는 추상화 상위/하위 혼합수준 모델, 내지는 추상화 혼합수준 모델이라 칭하기로 한다.One thing to note here is that not all design objects within the ESL model must exist at the system level, even for the ESL model, and all design objects within the RTL model must exist at the register transfer level, even for the RTL model. It is not. That is, even in the ESL model, a small number of design objects within this model exist at the register transfer level and are wrapped at the system level by wrapping these design objects in a wrapper for abstraction. It can be treated as an ESL model by matching the model, and even though it is an RTL model, a few of the design objects inside this model can be treated as RTL models like many other design objects that exist at the gate level but exist at the RTL level. have. For the same reason, in the GL model, a small number of design objects (e.g. memory blocks that do not generate gate-level netlists in logical synthesis) may exist at the register transfer level. Therefore, the term "specific abstraction level model" in this patent refers to the various abstraction levels (ESL, RTL, GL abstraction levels as well as their mixed forms of abstraction levels, ESL / RTL, which may exist in the process of gradual materialization from ESL to GL). Abstraction levels, including mixed abstraction level, RTL / GL mixed abstraction level, ESL / RTL / GL mixed abstraction level, etc.). The general term “abstraction level” refers to the various levels of abstraction that can exist in the gradual materialization process, from ESL to RTL and GL as well as from ESL to GL (eg, ESL / RTL mixed abstraction level, RTL / GL mixed abstraction). Levels, ESL / RTL / GL mixed abstraction levels, etc.). For example, four design objects A, B, C, and D exist as submodules inside the DUV, where A and B are dictated at ESL, C at RTL, and D at the GL abstraction level. Even with a mixed level abstraction level model, this DUV can be referred to as a model of a specific level of abstraction (as well as specifically referring to ESL / RTL / GL as a mixed level of abstraction model). In the future, in the case of a model having a mixed level of abstraction, when it is necessary to clearly state that the abstraction level is a mixed form, it will be referred to as an abstract upper / lower mixed level model or an abstract mixed level model.

ESL에서 중요한 개념인 트란젝션(transaction)이란 RTL의 시그널 내지는 핀(pin)과 대응되는 개념으로 시그널 내지는 핀 상에서 나타내어지는 정보는 비트 내지는 비트벡터로만 표현되어질 수 있는 것임에 반하여서, 트란젝션은 논리적 연관성이 있는 복수개의 시그널들 내지는 핀들을 하나의 단위로서 정의하여서 나타내어지는 정보를 의미하며, 정보의 전달은 함수호출(function call)을 이용한다. 예로 임의의 프로세서 모듈과 임의의 메모리 모듈로 구성된 설계에서 항상 존재하는 어드레스 시그널 N-비트, 데이터 시그널 M-비트, 제어 시그널 P-비트로 구성되는 총 (N+M+P)개의 시그널들을 논리적 연관성이 있는 N-비트 어드레스 버스, M-비트 데이터 버스, P-비트 제어 버스로 구성하게 되면 매 사이클을 (N+M+P) 비트벡터로 구성되는 의미 해석이 어려운 이진벡터 대신에 READ(ADDR(address_value), DATA(data_value)), 내지는 WRITE(ADDR(address_value), DATA(data_value)), 내지는 READ-WAIT(ADDR(address_value), DATA(data_value)), 내지는 WRITE-WAIT(ADDR(address_value), DATA(data_value)) 등과 같이 의미 해석이 가능한 심벌로서 나타낼 수 있는데, 이와 같은 것을 트란젝션이라 칭한다. 또한 트란젝션은 하나의 사이클 단위에서 뿐만 정의될 수 있을 뿐만 아니라(이를 단일사이클 단위의 트란젝션(cycle-accurate transaction)이라 칭하기로 하고, ca-트란젝션으로 약칭한다), 여러 사이클 단위로도 확장되어져서 정의되는 트란젝션(이를 여러사이클단위의 트란젝션(timed transaction 내지는 cycle-count transaction 내지는 PV-T transaction 등 여러 명칭으로 불림)이라 칭하기로 하고, 본 특허에서는 timed-트란젝션으로 단일명으로 약칭한다)도 있을 수도 있다 (이와 같이 여러 사이클 단위에서 정의되는 timed-트란젝션은 Transaction_name(start_time, end_time, other_attributes)로 표현되어질 수 있다). 또한 트란젝션은 시간개념이 없는 트란젝션(이를 untimed-트란젝션으로 약칭함)까지도 포함한다. 사실 트란젝션에 대한 표준화된 일관된 정의는 없으나, 위에서 설명한 것과 같이 untimed-트란젝션, timed-트란젝션, ca-트란젝션으로 나누는 것이 제일 일반적이다. 이와 같이 트란젝 션 내에서도 추상화 수준에 따라서 추상화 수준이 제일 높지만 시간정확성이 제일 낮은 untimed-트란젝션에서부터 추상화 수준이 제일 낮지만 시간정확성이 제일 높은 ca-트란젝션, 그리고 추상화수준과 시간정확성이 이들의 중간수준이 timed-트란젝션으로 나누어 질 수 있다. Transaction, which is an important concept in ESL, corresponds to the RTL signal or pin, and the information represented on the signal or pin can only be expressed as bit or bit vector, whereas transaction is logical. It refers to information represented by defining a plurality of related signals or pins as a unit, and the transfer of information uses a function call. For example, a logical association between a total of (N + M + P) signals consisting of an address signal N-bit, a data signal M-bit, and a control signal P-bit that always exist in a design consisting of any processor module and any memory module. N-bit address bus, M-bit data bus, and P-bit control bus, each cycle consists of (N + M + P) bitvectors. ), DATA (data_value)), or WRITE (ADDR (address_value), DATA (data_value)), or READ-WAIT (ADDR (address_value), DATA (data_value)), or WRITE-WAIT (ADDR (address_value), DATA ( data_value)), and the like, as a symbol that can be interpreted as meaning. Such a thing is called a transaction. Transactions can also be defined not only in one cycle unit (this is called a cycle-accurate transaction, abbreviated as a ca-transaction), and extend to multiple cycle units as well. The transaction is defined as a transaction (which is called by several names such as a timed transaction, a cycle-count transaction, or a PV-T transaction), and in this patent, abbreviated as a single name as a timed-transaction. (A timed-transaction defined in multiple cycles can be expressed as Transaction_name (start_time, end_time, other_attributes)). Transactions also include transactions without time concepts (abbreviated as untimed-transactions). In fact, there is no standardized and consistent definition of transactions, but it is most common to divide them into untimed-transactions, timed-transactions and ca-transactions as described above. As such, even within a transaction, the level of abstraction is highest depending on the level of abstraction, but the time accuracy is lowest, from the untimed transaction with the lowest level of abstraction, but the highest level of time accuracy is ca-transaction, and the level of abstraction and time accuracy The intermediate level can be divided into timed transactions.

구체화 과정은 점진적 방식으로 일어남으로서 VP에 존재하는 트란젝션 수준의 설계객체들이 단계적으로 구체화를 위한 변환 과정을 통하여서 최소한 비트수준의 사이클 정확도를 가지는(bit-level cycle-accurate) RTL 수준의 설계객체들로 바뀌어지게 된다. 이와 같은 변환 과정의 마지막에는 VP에 존재하는 모든 트란젝션 수준의 설계객체들이 RTL 수준의 설계객체들로 변환되어져서 존재하게(따라서 트란젝션 수준 VP가 구현가능한 RTL 모델로 변환되게) 된다. 또한 구현가능한 RTL 모델에 존재하는 RTL 수준의 설계객체들이 단계적으로 구체화를 위한 변환 과정을 통하여서 비트수준의 타이밍 정확도를 가지는(bit-level timing-accurate) 게이트 수준의 설계객체들로 바뀌어지게 된다. 이와 같은 변환 과정의 마지막에는 RTL 모델에 존재하는 모든 RTL 수준의 설계객체들이 게이트 수준의 설계객체들로 변환되어져서 존재하게(따라서 RTL 모델이 게이트 수준 모델로 변환되게) 된다. 도14 는 이와 같은 과정을 예로서 보여주고 있다. 트란젝션 수준 DUV(ESL) 내에 하위 블록으로 4개의 트란젝션 수준의 설계객체 DO_esl_1, DO_esl_2, DO_esl_3, DO_esl_4를 가지고 있다면, 이 4개의 트란젝션 수준의 설계객체들이 단계적으로 점진적 구체화 과정을 거침으로서 RTL 수준의 설계객체 DO_rtl_1, DO_rtl_2, DO_rtl_3, DO_rtl_4로 교체되면서 최종적으로는 RTL 수준의 설계객체 DO_rtl_1, DO_rtl_2, DO_rtl_3, DO_rtl_4 들만으로 구성되는 레지스터전송수준 DUV(RTL)로 변환된다. 또한, 레지스터전송수준 DUV(RTL)내에 하위 블록으로 4개의 설계객체 DO_rtl_1, DO_rtl_2, DO_rtl_3, DO_rtl_4를 가지고 있다면, 이 4개의 RTL 설계객체들이 단계별로 점진적 구체화 과정을 거침으로서 게이트 수준의 설계객체 DO_gl_1, DO_gl_2, DO_gl_3, DO_gl_4로 교체되면서 최종적으로는 게이트 수준의 설계객체 DO_gl_1, DO_gl_2, DO_gl_3, DO_gl_4들만으로 구성되는 게이트수준 DUV(GL)로 변환된다. The materialization process takes place in a progressive manner so that transaction-level design objects in the VP are at least bit-level cycle-accurate RTL-level design objects through the conversion process for specification. Will change to At the end of this conversion process, all transaction-level design objects in the VP are transformed into RTL-level design objects (and thus converted into an RTL model that can be implemented as a transaction-level VP). In addition, RTL-level design objects in the feasible RTL model are converted to bit-level timing-accurate gate-level design objects through the conversion process for concrete specification. At the end of this conversion process, all RTL-level design objects in the RTL model are converted to gate-level design objects (and thus the RTL model is converted to a gate-level model). Figure 14 shows this process as an example. If you have four transaction-level design objects DO_esl_1, DO_esl_2, DO_esl_3, and DO_esl_4 as sub-blocks within the transaction-level DUV (ESL), these four transaction-level design objects go through the step-by-step gradual refinement process. The design objects of DO_rtl_1, DO_rtl_2, DO_rtl_3, and DO_rtl_4 are replaced with the register transfer level DUV (RTL) consisting of only RTL-level design objects DO_rtl_1, DO_rtl_2, DO_rtl_3, and DO_rtl_4. Also, if there are four design objects DO_rtl_1, DO_rtl_2, DO_rtl_3, and DO_rtl_4 as lower blocks in the register transfer level DUV (RTL), these four RTL design objects undergo a step-by-step gradual specification process to allow gate-level design objects DO_gl_1, It is replaced by DO_gl_2, DO_gl_3, and DO_gl_4, and eventually converted to gate-level DUV (GL) consisting of only gate-level design objects DO_gl_1, DO_gl_2, DO_gl_3, and DO_gl_4.

SOC 설계에서는 설계되어져야 하는 대상이 두 가지가 있는데, 그 하나는 DUV(Design Under Verification)이고, 또 다른 하나는 DUV를 시뮬레이션하기 위한 테스트벤치(testbench, 앞으로는 이를 TB로 약칭함)이다. DUV는 궁극적으로 반도체 제조 공정을 거쳐서 칩으로 만들어지는 설계 대상이고, 테스트벤치는 구현된 해당 칩이 장착되어서 동작하는 주변상황을 모델링한 것으로서 DUV의 시뮬레이션에 사용된다. DUV를 시뮬레이션 하는 경우에 테스트벤치가 DUV에 입력을 인가하고 인가된 입력으로 DUV에서 출력되는 결과를 받아들여서 처리하는 것이 일반적이다. 이들 DUV와 테스트벤치는 일반적으로 계층적인 구조로 내부에 다양한 1 이상의 하위모듈들을 가지고 있는데, 이들 하위모듈 각각을 설계 블록이라고 할 수 있고, 설계 블록 내부에는 설계 모듈들이 존재하고, 설계 모듈 내부에는 서브모듈들이 존재한다. 이와 같은 설계 블록들, 내지는 설계 모듈들, 내지는 서브모듈들이나 DUV, 그리고 테스트벤치 각각 내지는 일부분 내지는 이들의 조합들 내지는 이들의 조합들의 일부분을 모두 본 특허에서는 설계객체(design object)들 (구체적 예로는, Verilog의 경우에는 module, VHDL인 경우에는 entity, SystemC의 경우에는 sc_module들이 모 두 설계객체의 일 예임)이라고 지칭하기로 한다. 따라서 VP도 설계객체의 하나로 볼 수 있으며, VP의 일부분 내지는 VP내의 1 이상의 설계 블록들 내지는 설계 블럭들의 일부분 내지는 이 블록 내부의 설계 모듈들 내지는 이들의 일부분 내지는 이 설계 모듈 내부의 서브모듈들 내지는 이들의 일부분 등도 모두 설계객체로 볼 수 있다 (즉 DUV와 TB의 전체 내지는 DUT와 TB 내부의 임의의 부분을 모두 설계객체로 볼 수 있다).In SOC design, there are two things that need to be designed, one is Design Under Verification (DUV), and the other is a testbench for simulating DUV (abbreviated as TB). The DUV is the design target ultimately made into a chip through the semiconductor manufacturing process, and the testbench is used to simulate the DUV by modeling the ambient conditions in which the chip is implemented. When simulating a DUV, it is common for the testbench to apply an input to the DUV and accept and process the output from the DUV with the authorized input. These DUVs and testbenches typically have a hierarchical structure with one or more submodules inside them, each of which can be called a design block, with design modules inside the design block, and a submodule inside the design module. Modules exist. Such design blocks, or design modules, or submodules or DUVs, and test benches, respectively, or in part, or combinations thereof, or portions of combinations thereof, are all referred to herein as design objects (specific examples In the case of Verilog, module, VHDL entity, and SystemC sc_module are all examples of design objects). Thus, a VP may also be regarded as one of the design objects, and a part of the VP, one or more design blocks in the VP, a part of the design blocks, the design modules in the block, the parts thereof, or the submodules in the design module 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).

그러나, 이와 같은 현재의 점진적 구체화를 통한 설계에서는 추상화 상위수준에서의 검증이 매우 빠르게 수행될 수 있으나 추상화 하위수준에서의 검증은 상대적으로 느리게 수행되어짐으로 점진적 구체화 과정을 통하여 추상화 하위 단계로 진행될수록 검증 속도가 크게 떨어지는 문제점이 있다. 일반적인 단일 시뮬레이션 방식(본 특허에서 단일 시뮬레이션 방식이란 넓은 의미로 정의되어져서 1개의 시뮬레이터를 사용하는 경우에 뿐만 아니라, 2 이상의 시뮬레이터를 사용하는 경우(예로 Verilog 시뮬레이터와 Vera 시뮬레이터를 동시에 사용하는 경우)라도 이 2 이상의 시뮬레이터를 하나의 CPU 상에서 수행시키는 것을 단일 시뮬레이션 방식으로 정의함)에 대비하여서, 검증 속도를 높이는 방법으로 2 이상의 시뮬레이터들을 분산병렬(distributed parallel) 방식으로 실행시키는 방법이 있다. 이 시뮬레이터의 일 예로들로는 HDL(Hardware Description Language, Cadence사의 NC-Verilog/Verilog-XL와 X-sim, Synopsys사의 VCS, Mentor사의 ModelSim, Aldec사의 Riviera/Active-HDL, Fintronic사의 FinSim 등이 있음) 시뮬레이터 내지는 HVL(Hardware Verification Language, Cadence사의 e 시뮬레이터, Synopsys사의 Vera 시뮬레이터 등이 있음) 시뮬레이터 내지는 SDL(System Description Language, SystemC 시뮬레이터, Cadence사의 Incisive 시뮬레이터 등이 있음) 시뮬레이터들이 있다. 또 다른 구분으로는 이벤트-구동(event-driven) 시뮬레이터 내지는 사이클-기반(cycle-based) 시뮬레이터들이 있는데, 본 특허에서 언급하는 시뮬레이터들은 이들 시뮬레이터들을 모두를 가르킨다. 따라서 2 이상의 시뮬레이터들을 사용하는 경우에는 상기에서 언급된 어떤 종류의 시뮬레이터들을 이용할 수 있을 뿐만 아니라, 이들 다른 종류의 시뮬레이터를 자유롭게 혼용하여 사용할 수 있다. 시뮬레이션의 분산수행(distributed processing) 방식인 분산병렬 시뮬레이션(distributed parallel simulation) (혹은 병렬분산 시뮬레이션(parallel distributed simulation)이라고도 하거나 간략히 병렬 시뮬레이션(parallel simulation)이라고도 하는데, 본 특허에서는 분산병렬 시뮬레이션이라 명칭함)은 제일 일반적인 병렬시뮬레이션 방식으로 시뮬레이션 대상이 되는 DUV와 TB(즉 특정 추상화 수준의 모델)를 2 이상의 설계객체들로 나누어서 이들 나누어진 각각의 설계객체를 별도의 시뮬레이터에 분산시켜서 수행시키는 방식이다 (도 5 참조). 따라서 분산병렬 시뮬레이션을 위해서는 시뮬레이션 대상이 되는 모델을 2 이상의 설계객체들로 나누는 분할(partition) 과정이 필요하다. 따라서 본 특허에서는 분할 과정을 통하여 특정 로컬시뮬레이션(추후에 정의됨)에서 수행되어져야 하는 설계객체를 로컬설계객체라 칭하기로 한다. However, in the current gradual concrete design, the verification at the upper abstraction level can be performed very quickly, but the verification at the lower level of abstraction is performed relatively slowly. There is a problem that the speed is greatly reduced. In general, a single simulation method (a single simulation method is defined in this patent in a broad sense, not only when using one simulator but also when using two or more simulators (for example, using Verilog simulator and Vera simulator simultaneously). In contrast to defining two or more simulators on a single CPU as a single simulation method, there is a method of executing two or more simulators in a distributed parallel manner to increase the verification speed. Examples of this simulator include HDL (Hardware Description Language, NC-Verilog / Verilog-XL and X-sim from Cadence, VCS from Synopsys, ModelSim from Mentor, Riviera / Active-HDL from Aldec, and FinSim from Fintronic) Or HVL (Hardware Verification Language, Cadence's e simulator, Synopsys' Vera simulator, etc.) simulator or SDL (System Description Language, SystemC simulator, Cadence's Incisive simulator, etc.) simulators. Another distinction is the event-driven simulator or the cycle-based simulators, the simulators of which are mentioned in this patent. Thus, in the case of using two or more simulators, it is possible not only to use any kind of simulators mentioned above, but also to freely use these different kinds of simulators. Distributed parallel simulation (also called parallel distributed simulation or simply parallel simulation, which is referred to in this patent as distributed parallel simulation), which is a distributed processing method of simulation. In the most common parallel simulation method, DUV and TB (ie, a model of a certain level of abstraction) to be simulated are divided into two or more design objects, and each of these divided design objects is distributed and executed in a separate simulator. 5). Therefore, for distributed parallel simulation, a partitioning process is needed to divide the model to be simulated into two or more design objects. Therefore, in this patent, a design object to be performed in a specific local simulation (to be defined later) through a division process will be referred to as a local design object.

최근에는 기가비트 이더넷 등의 고속의 컴퓨터네트워크로 2 이상의 컴퓨터들을 연결하고 이들 각각의 컴퓨터 상에서 시뮬레이터를 수행(본 특허에서는 이들 분산병렬 시뮬레이션을 가능하게 하는 2 이상의 시뮬레이터들 각각의 시뮬레이터에서 수 행되는 시뮬레이션을 로컬시뮬레이션이라 칭하고, 해당 시뮬레이터를 로컬시뮬레이터라고 칭한다)하거나, 내지는 2 이상의 중앙처리장치(CPU)를 장착한 멀티프로세서 컴퓨터(예로, 펜티움 듀얼코어 칩과 AMD 듀얼코어 칩은 프로세서코어가 2개로 이를 이용하여도 멀티프로세서 컴퓨터를 구성할 수 있으며 1 이상의 시스템보드 상에 여러개의 CPU 칩들을 장착하여서도 멀티프로세서 컴퓨터를 구성할 수 있음)에서 이들 각각의 CPU 상에서 시뮬레이터를 수행시킴으로서 분산병렬 시뮬레이션을 수행하는 것이 가능하다. 그러나, 이와 같은 통상적인 분산병렬 방식을 통한 시뮬레이션은 시뮬레이터들 간의 통신 오버헤드 및 동기 오버헤드(communication overhead and synchronization overhead)로 인하여 성능 향상이 매우 제약적이라는 문제점이 있다. 분산병렬 시뮬레이션에서의 동기화 방법은 크게 두가지가 있는데 하나는 보수적(conservative) 방식(혹은 비관적 방식이라고도 함)이고 또 다른 하나는 낙관적(optimistic) 방식이다. 보수적 방식의 동기화는 시뮬레이션 이벤트의 전후 인과관계(causality relation)가 시뮬레이터들 간에서도 반드시 유지됨으로서 롤백(roll-back)이 필요하지 않으나 분산병렬 시뮬레이션의 속도가 제일 느린 로컬 시뮬레이션으로 한정되어진다는 문제점과 과도한 동기화가 일어나는 문제점이 있고, 낙관적 방식의 동기화는 시뮬레이션 이벤트의 전후 인과관계가 시뮬레이터들간에 일시적으로 유지되지 못하게 될 수 있고 이를 수정하기 위한 롤백이 필요함으로서 전체의 롤백의 횟수를 줄이는 것이 분산병렬 시뮬레이션의 성능에 큰 영향을 미치게 된다. 그러나 지금까지의 낙관적 방식에 의한 분산병렬 시뮬레이션에서는 각 로컬 시뮬레이션이 다른 로컬 시뮬레이션들과의 동기화 과정 없이 진행하는 시뮬레 이션 시점들이 롤백이 일어나는 것을 최소한으로 되도록 특별하게 고려되어진 것이 아님으로 인하여 과도한 롤백을 초래하게 되는 결과를 초래함으로서 전체 시뮬레이션의 성능을 크게 떨어뜨리게 한다. 통상적인 낙관적 방식의 분산병렬 시뮬레이션이나 보수적 방식의 분산병렬 시뮬레이션의 구체적 수행방법 및 구현방법은 여러 문헌들 내지는 논문들로 이미 잘 알려져 있음으로 본 특허에서 이의 자세한 설명은 생략하기로 한다. 단, 한가지 더 언급할 것은 분산병렬 시뮬레이션을 수행하는 프로세서들의 수는 분산병렬 시뮬레이션의 성능을 최대한으로 하기 위해서는 로컬 시뮬레이션의 수와 같게 하는 것이 바람직하지만, 프로세서들의 수가 2 이상(즉, 2 이상의 컴퓨터가 네트워크로 연결되어 있거나 내지는 멀티프로세서 컴퓨터에 프로세서가 2 이상)만 된다면 로컬 시뮬레이션의 수가 2 보다 많다고 하더라도 2 이상의 로컬 시뮬레이션을 하나의 프로세서로 수행하게 함으로서 이와 같은 경우에도 분산병렬 시뮬레이션이 가능하다는 것이다. 결론적으로, 현재의 보수적 방식의 동기화 방법과 통신 방법이나 낙관적 방식의 동기화 방법이나 통신 방법들 모두 2 이상의 시뮬레이터들을 이용한 분산병렬 시뮬레이션의 성능을 크게 떨어뜨리는 제약 요소가 되는 문제점이 있다. Recently, two or more computers are connected by a high-speed computer network such as Gigabit Ethernet, and a simulator is performed on each of them (in this patent, simulations performed in each simulator of two or more simulators that enable these distributed parallel simulations) are performed. Multiprocessor computers (eg, Pentium dual-core chips and AMD dual-core chips are called local simulations and are referred to as local simulators), or are equipped with two or more central processing units (CPUs). It is also possible to configure a multiprocessor computer, and to perform a distributed parallel simulation by running a simulator on each of these CPUs in a multiprocessor computer with multiple CPU chips mounted on one or more system boards. end It is. However, such a conventional distributed parallel simulation has a problem in that the performance improvement is very limited due to the communication overhead and synchronization overhead between the simulators. There are two main methods of synchronization in distributed parallel simulations: one is conservative (also called pessimistic) and the other is optimistic. The conservative synchronization is that the causality relation of simulation events is maintained between simulators, so no rollback is required, but distributed parallel simulation is limited to the slowest local simulation. There is a problem of excessive synchronization, and optimistic synchronization can prevent causality between simulation events temporarily between simulators, and rollbacks are required to correct them, so reducing the total number of rollbacks is distributed parallel simulation. Will have a big impact on performance. However, up to now, distributed parallel simulations by optimistic methods have excessive rollbacks because the simulation points in which each local simulation proceeds without synchronization with other local simulations are not specially considered to minimize the rollback. This results in significant consequences for the overall simulation. Since the conventional optimistic distributed parallel simulation or the conservative distributed parallel simulation method and the implementation method thereof are well known in the literature or the literature, detailed description thereof will be omitted. One more thing to mention is that the number of processors performing distributed parallel simulations should be equal to the number of local simulations in order to maximize the performance of distributed parallel simulations. If a networked or multiprocessor computer has more than two processors), even if the number of local simulations is more than two, two or more local simulations can be performed by one processor. In conclusion, both the current conservative synchronization method and the communication method, or the optimistic synchronization method and the communication method have a problem of significantly reducing the performance of distributed parallel simulation using two or more simulators.

뿐만 아니라, 점진적 구체화 과정을 통한 설계에서는 추상화 상위 수준의 모델이 추상화 하위 수준의 모델의 레퍼런스 모델(reference model)의 역할을 수행하는 것이 매우 중요한데 이와 같이 레퍼런스 모델의 역할을 수행하기 위해서는 추상화 상위 수준의 모델과 추상화 하위 수준의 모델간의 모델 일관성(model consistency)을 유지시키는 것이 필요하다. 그러나, 현재의 점진적 구체화 방법에서는 이들 다른 추상화 수준들에서 존재하는 2 이상의 모델들간의 모델 일관성을 유지시키는 효과적인 방법이 없다. In addition, it is very important that the high-level abstraction model serves as a reference model of the low-level abstraction model in the design through the gradual materialization process. It is necessary to maintain model consistency between the model and the low-level model. However, there are no effective ways to maintain model coherence between two or more models present at these different levels of abstraction in current incremental refinement methods.

뿐만 아니라, 점진적 구체화 과정을 통한 설계 과정에서 발견되는 설계오류들을 제거하는 디버깅 과정이 체계적이지 못함으로 인하여서 매우 많은 시간이 소요되는 문제점이 있다.In addition, the debugging process for removing design errors found in the design process through a gradual materialization process is very time consuming because the system is not systematic.

본 발명에서는 시스템 수준에서의 트란젝션 수준 모델(앞으로 이를 ESL 모델이라 약칭함)에서부터 시작하여 점진적 구체화 과정을 통한 설계로 구현가능한 레지스터전송 수준 모델(앞으로 이를 RTL 모델이라 약칭함)을 얻고, 다시 구현가능한 RTL 모델에서부터 점진적 구체화 과정을 통한 설계로 게이트 수준 모델(앞으로 이를 GL 모델이라 약칭함) (GL 모델은 배치 & 배선 과정을 수행할 수 있는 특정 구현라이브러리의 셀들의 연결구조를 표현한 게이트수준 네트리스트임)을 얻는 ESL-to-Gate 설계 과정을 크게 나누어서 두 단계로 보기로 한다. 우산 첫 번째 단계는 ESL 모델에서부터 RTL 모델을 구체화 시키는 과정으로 이를 ESL-to-RTL 설계 과정이라 칭하기로 한다. 두 번째 단계는 RTL 모델에서부터 GL 모델을 구체화 시키는 과정으로 이를 RTL-to-GL 설계 과정이라 칭하기로 한다. 또한 이들 점진적 구체화 과정 상에서 다양한 추상수준들에서 존재하는 복수개의 다양한 모델들을 본 특허에서는 “상이한추상수준 동일모델”들이라 통칭하기로 한다.In the present invention, starting from the transaction level model (hereinafter, abbreviated as ESL model) at the system level, a register transfer level model (hereinafter, abbreviated as RTL model) that can be implemented as a design through a gradual specification process is obtained, and then implemented again. Gate-level model (hereafter abbreviated as GL model) from possible RTL model to design through gradual refinement process (GL model is a gate-level netlist representing the connection structure of cells of a specific implementation library that can perform the layout & wiring process) The ESL-to-Gate design process is divided into two phases. Umbrella The first step is to refine the RTL model from the ESL model. This is called the ESL-to-RTL design process. The second step is to refine the GL model from the RTL model, which will be referred to as the RTL-to-GL design process. In addition, a plurality of various models existing at various levels of abstraction in these progressive concrete processes will be collectively referred to as "different abstract level identical models".

일반적으로 추상화 상위 수준의 모델을 추상화 하위 수준의 모델로 구체화시키는 과정에 있어서 추상화 상위 수준의 모델 MODEL_DUV(HIGH)과 추상화 하위 수준의 모델 MODEL_DUV(LOW) 모두에 일정한 정도로 동일한 내지는 유사한 계층구조가 존재하고 있도록 하는 것이 매우 중요하다 (도 3과 도 4 참조). SOC 설계에서는 설계 대상이 되는 DUV의 복잡도가 매우 높음으로 이와 같이 다른 추상화 수준들에서의 모델들이 계층 구조의 최상위에서부터 최하위까지에서 일정한 정도로 동일한 내지는 유사한 계층구조를 일반적으로 자연스럽게 가지고 있게 된다. 우선, 이와 같이 동일한 내지는 유사한 계층구조를 최상위수준에서부터 일정한 수준까지 가지고 있게 되면, 이들 다른 추상화 수준의 모델들내에 존재하는 1 이상의 설계객체들간에도 DUV와 동일하게 모델들 간에 대응되는 설계객체들이 존재하게 되는데 이와 같은 상황은 추상화 수준이 ESL 모델과 RTL 모델 사이와 RTL 모델과 계층구조를 허물지 않은 게이트수준 모델 사이에서 일반적으로 존재한다. 그리고, 게이트수준에서 바운더리스캔(boundary scan) 구조를 삽입하고 혹은 수작업설계 과정등에 의하여 게이트수준 모델의 계층구조가 RTL 모델의 계층구조와 약간 달라질 수는 있지만 계층구조가 크게 달라지는 것은 아님으로 이와 같은 경우에도 게이트수준 모델의 계층구조와 RTL 모델의 계층구조는 극히 유사함으로 인하여 이들 계층구조하에서 존재하는 상위 추상화 수준에서의 설계객체와 대응되는 하위 추상화 수준에서의 설계객체를 쉽게 찾을 수 있다. 뿐만 아니라, 게이트수준 모델이 논리합성과정에서 계층구조를 보존하지 않도록 진행된 경우에도 게이트수준 모델에 존재하는 설계객체명(인스턴스명)들이 대응되는 RTL 모델의 설계객체에 대한 정보를 가지고 있음으로 이와 같은 경우에도 상위 추상화 수준에서의 설계객체와 대응되는 하위 추상화 수준에서 의 설계객체를 쉽게 찾을 수 있다. 따라서, 본 특허에서는 이와 같이 다른 추상화수준에서 존재하는 모델들이 계층구조 상에서 최상위수준에서부터 일정한 수준까지 일정한 정도로 동일한 계층구조를 유지하고 있거나, 추상화 상위수준 모델에 존재하는 설계객체를 추상화 하위수준 모델에 존재하는 설계객체들에 대응(이를 부분계층대응관계라 칭하기로 함)시킬 수 있다고 가정한다. 예로, TLM 모델 DUV(TLM) 내에 4개의 설계블럭 B(1)_tlm, B(2)_tlm, B(3)_tlm, B(4)_tlm이 존재하고, DUV(TLM)에서부터 점진적 구체화 과정을 통한 설계로서 DUV(RTL)를 설계한 경우에 DUV(RTL) 내에도 4개의 설계블럭 B(1)_rtl, B(2)_rtl, B(3)_rtl, B(4)_rtl이 존재하고, B(1)_tlm은 B(1)_rtl과 대응되고 B(2)_tlm은 B(2)_rtl과 대응되고 B(3)_tlm은 B(3)_rtl과 대응되고 B(4)_tlm은 B(4)_rtl과 대응된다. 또 다른 예로 RTL 모델 DUV(RTL) 내에 4개의 설계블럭 B(1)_rtl, B(2)_rtl, B(3)_rtl, B(4)_rtl이 존재하고, RTL 모델에서부터 점진적 구체화 과정을 통한 설계로서 DUV(GL)을 설계하고 이 과정에서 바운더스스캔셀들이 추가된 경우에 게이트수준에 존재하는 계층구조가 B(0)_gl, B(1)_gl, B(2)_gl, B(3)_gl, B(4)_gl인 경우에는 B(1)_gl은 B(1)_rtl과 대응되고 B(2)_gl은 B(2)_rtl과 대응되고 B(3)_gl은 B(3)_rtl과 대응되고 B(4)_gl은 B(4)_rtl과 대응된다. 따라서 점진적 구체화 과정을 통한 설계는 이들 추상화 상위수준 모델에 존재하는 1 이상의 설계객체들이 추상화 하위수준 모델에 존재하는 설계객체들로 변환되어지는 과정이다. SOC 설계에서 이와 같은 설계객체들의 예들로는 RISC 프로세서코어, DSP 프로세서코어, 메모리블럭, MPEG 디코더블럭, JPEG 디코더블럭, MP3 디코더블럭, 이더넷 코어, PCI-X 코어, DMA 콘트롤러블럭, 메모리 콘트롤러블럭 등이 있으며 일반적으로 매우 복잡한 기능을 수행하는 설계블록들이 된다.In general, in the process of materializing a high-level abstraction model as a low-level abstraction model, there is a similar or similar hierarchy to both a high level abstraction model MODEL_DUV (HIGH) and a low level abstraction model MODEL_DUV (LOW). It is very important (see FIGS. 3 and 4). In SOC design, the complexity of the DUV to be designed is so high that models at these different levels of abstraction generally have the same or similar hierarchy naturally to some degree from the top to the bottom of the hierarchy. First of all, having the same or similar hierarchical structure from the top level to the constant level, there is a possibility that corresponding design objects exist between models in the same way as DUV among one or more design objects existing in models of these different levels of abstraction. This situation usually exists between the ESL model and the RTL model, and between the RTL model and the gate-level model without breaking down the hierarchy. In addition, the boundary level of the gate level model may be slightly different from that of the RTL model by inserting a boundary scan structure at the gate level or by a manual design process, but the hierarchy is not significantly different. Because the hierarchy of the gate-level model and the hierarchy of the RTL model are very similar, it is easy to find the design objects at the lower abstraction level that correspond to the design objects at the higher abstraction level existing under these hierarchies. In addition, even when the gate-level model is processed to not preserve the hierarchical structure in the logic synthesis process, the design object names (instance names) present in the gate-level model have information on the design object of the corresponding RTL model. In this case, it is easy to find the design object at the lower abstraction level that corresponds to the design object at the upper abstraction level. Therefore, in this patent, models existing at different levels of abstraction maintain the same hierarchy to a certain degree from the highest level to a certain level in the hierarchy, or design objects existing in the abstraction higher level model exist in the abstraction lower level model. It is assumed that the corresponding design objects can be referred to as a partial layer correspondence relationship. For example, there are four design blocks B (1) _tlm, B (2) _tlm, B (3) _tlm, and B (4) _tlm in the TLM model DUV (TLM), and the incremental refinement process from DUV (TLM). In the case of designing a DUV (RTL) as a design, four design blocks B (1) _rtl, B (2) _rtl, B (3) _rtl, and B (4) _rtl are also present in the DUV (RTL). 1) _tlm corresponds to B (1) _rtl, B (2) _tlm corresponds to B (2) _rtl, B (3) _tlm corresponds to B (3) _rtl, and B (4) _tlm corresponds to B (4) Corresponds to _rtl. As another example, there are four design blocks B (1) _rtl, B (2) _rtl, B (3) _rtl, and B (4) _rtl in the RTL model DUV (RTL), and the design is carried out through an incremental specification process from the RTL model. In the case of designing DUV (GL) and the boundary scan cells are added in this process, the hierarchy that exists at the gate level is B (0) _gl, B (1) _gl, B (2) _gl, B (3) _gl, B (4) _gl, B (1) _gl corresponds to B (1) _rtl, B (2) _gl corresponds to B (2) _rtl, and B (3) _gl corresponds to B (3) _rtl And B (4) _gl corresponds to B (4) _rtl. Therefore, the design through the gradual materialization process is a process in which one or more design objects in these high-level abstraction models are converted into design objects in the abstraction low-level model. Examples of such design objects in SOC design include RISC processor core, DSP processor core, memory block, MPEG decoder block, JPEG decoder block, MP3 decoder block, Ethernet core, PCI-X core, DMA controller block and memory controller block. And are generally design blocks that perform very complex functions.

따라서 이들 DUV 내의 설계객체들 각각을 구체화시키는 과정에는 여러 설계자들이 참여하여 병렬적으로 진행하게 되는데, 설계자들의 개개 능력과 경험에 따라서 그리고 설계객체의 난이도에 따라서 개개의 설계객체들을 구체화시키는 과정에 소요되는 시간도 일정하지가 않게 된다. 이와 같은 구체화 과정은 설계자의 노하우에 크게 의존하는 매뉴얼 방식으로 진행될 수도 있으며, 상위수준 합성툴(예로 Forte Design사의 Cynthesizer 혹은 Mentor Graphic사의 Catapult C 등) 내지는 논리수준 합성툴(예로 Synopsys사의 DesignCompiler 혹은 Synplicity사의 Synplify 등) 등을 이용하는 자동화된 방식으로 진행될 수 있다. 그런데, 구체화 과정의 최종 단계에서는 구체화된 특정 설계객체가 올바르게 구체화되어졌는지를 검증하여야 하는데, 다른 설계객체들은 아직 구체화가 완료되지 않은 상황에서 특정 설계객체 B(i)_refined의 구체화가 올바르게 이루어졌는가를 효과적으로 검증하는 방법은 추상화 상위수준에서 이미 존재하고 있는 상위수준 모델에 존재하는 B(i)_refined와 대응되는 설계객체 B(i)_abst를 B(i)_refined로 대체하여서 추상화수준이 혼합된 모델 MODEL_DUV(MIXED)를 만들고 이를 수행시켜서 얻어지는 수행결과를 MODEL_DUV(HIGH)의 수행결과와 비교하는 것이다. 위에서 언급된 예를 가지고 설명한다면, DUV_TLM에 존재하는 B(1)_tlm, B(2)_tlm, B(3)_tlm, B(4)_tlm 각각을 구체화 하는 과정이 다수의 설계자들에 의하여서 병렬적으로 진행되어지나 시간 순으로 B(4)_rtl, B(3)_rtl, B(2)_rtl, B(1)_rtl의 순으로 구체화가 완료된다고 한다면, 우선 B(4)_rtl이 완료 되는대로 B(4)의 구체화를 담당한 설계자들은 MODEL_DUV(MIXED)_4 = (B(1)_tlm, B(2)_tlm, B(3)_tlm, B(4)_rtl)를 구성하여 이를 실행시켜서(즉 시뮬레이션하여서) MODEL_DUV(HIGH) = (B(1)_tlm, B(2)_tlm, B(3)_tlm, B(4)_tlm)의 시뮬레이션 실행결과와 비교하여 봄으로서 B(4)_rtl이 올바르게 구체화가 진행되었는지를 검증할 수 있다. 이와 같은 방식으로 나머지 B(3)_rtl, B(2)_rtl, B(1)_rtl들도 구체화가 완료 되는대로 각각 MODEL_DUV(MIXED)_3 = (B(1)_tlm, B(2)_tlm, B(3)_rtl, B(4)_tlm), MODEL_DUV(MIXED)_2 = (B(1)_tlm, B(2)_rtl, B(3)_tlm, B(4)_tlm), MODEL_DUV(MIXED)_1 = (B(1)_rtl, B(2)_tlm, B(3)_tlm, B(4)_tlm)를 구성하여서 해당 설계블럭이 올바르게 구체화가 진행되었는지를 검증할 수 있다. 또 다른 예를 가지고 설명한다면, DUV_RTL에 존재하는 B(1)_rtl, B(2)_rtl, B(3)_rtl, B(4)_rtl 각각을 구체화 하는 과정이 다수의 설계자들에 의하여서 병렬적으로 진행되어지나 시간 순으로 B(4)_gl, B(3)_gl, B(2)_gl, B(1)_gl의 순(gl은 게이트 수준을 나타내는 첨자임)으로 구체화가 완료된다고 한다면 우선 B(4)_gl이 완료 되는대로 B(4)의 구체화를 담당한 설계자들은 MODEL_DUV(MIXED)_4 = (B(1)_rtl, B(2)_rtl, B(3)_rtl, B(4)_gl)를 구성하여 이를 실행시켜서 MODEL_DUV(HIGH) = (B(1)_rtl, B(2)_rtl, B(3)_rtl, B(4)_rtl)의 시뮬레이션 실행결과와 비교하여 봄으로서 B(4)_gl이 올바르게 구체화가 진행되었는지를 검증할 수 있다. 이와 같은 방식으로 나머지 B(3)_gl, B(2)_gl, B(1)_gl들도 구체화가 완료 되는대로 각각 MODEL_DUV(MIXED)_3 = (B(1)_rtl, B(2)_rtl, B(3)_gl, B(4)_rtl), MODEL_DUV(MIXED)_2 = (B(1)_rtl, B(2)_gl, B(3)_rtl, B(4)_rtl), MODEL_DUV(MIXED)_1 = (B(1)_gl, B(2)_rtl, B(3)_rtl, B(4)_rtl)를 구성하여서 해당 설계블럭이 올바르게 구체화가 진행되었는지를 검증할 수 있다. 그런데, 여기에서 하나 언급하여야 할 것은 MODEL_DUV(MIXED)에 존재하는 설계객체들 중에서 구체화가 된 설계객체 B(i)_refined의 입출력 포트들의 추상화 수준이 구체화가 안되어진 설계객체들 B(k)_abst의 입출력 포트들의 추상화 수준과 맞지 않음으로 인하여 이들 B(i)_refined와 B(k)_abst 간의 연결에 추가적인 인터페이스가 필요할 수 있다. Therefore, in the process of materializing each of the design objects in these DUVs, several designers participate and proceed in parallel, which is required for the process of materializing individual design objects according to the designer's individual ability and experience and the difficulty of the design object. The time it takes is not constant. This specification can be done in a manual way that relies heavily on the designer's know-how. For example, Forte Design's Cynthesizer or Mentor Graphic's Catapult C, or a logic level synthesis tool (for example, Synopsys' DesignCompiler or Synplicity) Synplify, etc.) may be automated. However, in the final stage of the materialization process, it is necessary to verify whether the specific materialized design object is correctly specified. Other design objects are required to specify whether the specific materialized object B (i) _refined is correctly specified when the materialization is not completed yet. The effective verification method is a model with mixed abstraction level by replacing the design object B (i) _abst with B (i) _refined, which corresponds to B (i) _refined that already exists in the higher level model. (MIXED) makes a comparison with the result of MODEL_DUV (HIGH). Using the examples mentioned above, the process of specifying each of B (1) _tlm, B (2) _tlm, B (3) _tlm, and B (4) _tlm in DUV_TLM is paralleled by multiple designers. If the specification is completed in order of B (4) _rtl, B (3) _rtl, B (2) _rtl, and B (1) _rtl in order of time, B (4) _rtl is completed as soon as B (4) _rtl is completed. The designers responsible for specifying (4) construct MODEL_DUV (MIXED) _4 = (B (1) _tlm, B (2) _tlm, B (3) _tlm, B (4) _rtl) and run it (i.e. simulation). MODEL_DUV (HIGH) = (B (1) _tlm, B (2) _tlm, B (3) _tlm, B (4) _tlm) is compared with the simulation execution result and B (4) _rtl is correctly specified. You can verify that it has progressed. In this way, the rest of B (3) _rtl, B (2) _rtl, and B (1) _rtl are also assigned to MODEL_DUV (MIXED) _3 = (B (1) _tlm, B (2) _tlm, B ( 3) _rtl, B (4) _tlm), MODEL_DUV (MIXED) _2 = (B (1) _tlm, B (2) _rtl, B (3) _tlm, B (4) _tlm), MODEL_DUV (MIXED) _1 = ( By configuring B (1) _rtl, B (2) _tlm, B (3) _tlm, and B (4) _tlm), it is possible to verify whether the design block is correctly specified. In another example, the process of specifying each of B (1) _rtl, B (2) _rtl, B (3) _rtl, and B (4) _rtl in DUV_RTL is done in parallel by multiple designers. If the specification is completed in order of B (4) _gl, B (3) _gl, B (2) _gl, and B (1) _gl (gl is a subscript indicating gate level) As soon as (4) _gl is completed, the designers responsible for specifying B (4) specify MODEL_DUV (MIXED) _4 = (B (1) _rtl, B (2) _rtl, B (3) _rtl, B (4) _gl). Configure it and execute it to compare the simulation results of MODEL_DUV (HIGH) = (B (1) _rtl, B (2) _rtl, B (3) _rtl, B (4) _rtl). You can verify that the refinement was done correctly. In this way, the rest of B (3) _gl, B (2) _gl, and B (1) _gl are also completed. MODEL_DUV (MIXED) _3 = (B (1) _rtl, B (2) _rtl, B ( 3) _gl, B (4) _rtl), MODEL_DUV (MIXED) _2 = (B (1) _rtl, B (2) _gl, B (3) _rtl, B (4) _rtl), MODEL_DUV (MIXED) _1 = ( By configuring B (1) _gl, B (2) _rtl, B (3) _rtl, and B (4) _rtl), it is possible to verify whether the design block is correctly specified. However, one thing to mention here is that among the design objects existing in MODEL_DUV (MIXED), the abstraction level of the input / output ports of design object B (i) _refined that is embodied is not specified in the design objects B (k) _abst. Due to the inconsistency of the I / O ports, additional interfaces may be required for the connection between these B (i) _refined and B (k) _abst.

예로, ESL에서 RTL로 구체화되어지는 경우에는 ESL에서는 트란젝션 수준이며 RTL에서는 핀 시그널 단위의 사이클 수준임으로 이들간의 인터페이스의 역할을 수행하는 트란젝터(transactor)가 필요하게 된다. 이와 같은 트란젝터는 ESL의 트란젝션의 추상화 정도에 따라서 달라질 수 있는데, 예로 ESL의 트란젝션의 추상화 정도가 단일사이클단위의(cycle-accurate) 트란젝션 수준이라고 한다면 아주 간단한 트란젝터를 사용할 수 있으며 만일 추상화 정도가 timed-트란젝션 수준이라고 한다면 상대적으로 복잡한 트란젝터를 사용하게 된다. 또한 RTL에서 GL로 구체화되어지는 경우에는 RTL의 입출력 포트와 GL의 입출력 포트는 모두 핀 시그널 단위에서는 동일함으로서 별도의 포트 인터페이스는 필요하지 않지만, 만일 GL에서 검증하고자 하는 것이 타이밍 검증의 경우에는 이 포트 인터페이스 경계에서 GL에서 맞는 타이밍을 가지는 시그널들을 생성시키기 위해서 이들 간의 타이밍 조정의 역할을 수행하는 타이밍조정기(timing adjustor)가 필요할 수 있다 (타이밍조정기에 사용되는 지 연시간 값들은 SDF를 분석하거나, 내지는 라이브러리셀들의 지연시간 파라메터를 분석하거나, 내지는 SDF를 이용한 게이트수준의 타이밍시뮬레이션을 짧은 시뮬레이션 시간 구간만에서 수행하거나, 내지는 정적타이밍분석(static timing analysis)을 수행하거나, 내지는 이들을 조합적으로 이용하여서 얻을 수 있음). 이상과 같이, 점진적 구체화 과정에서 DUV에 존재하는 1 이상의 특정 설계객체가 B(i)_refined로 구체화된 경우에 이를 추상화 상위수준의 모델 MODEL_DUV(HIGH)에 존재하는 해당 설계객체 B(i)_abst와 대체하여서 추상화 중간수준의 모델 MODEL_DUV(MIXED)_i를 만들어 내는 구체화 단계를 “부분 구체화”(partial refinement) 단계라 칭하기로 하고 이와 같은 과정을 부분 구체화 과정이라 칭하기로 한다. For example, when the ESL is embodied as an RTL, a transaction level is required in the ESL, and the RTL is a cycle level in the unit of a pin signal. Therefore, a translator that functions as an interface between them is required. Such a transaction may vary depending on the degree of abstraction of the ESL transaction. For example, if the level of abstraction of the ESL transaction is a cycle-accurate transaction level, a very simple one may be used. If the degree of abstraction is a timed-transaction level, you will use a relatively complex transaction. Also, when RTL is specified as GL, the I / O port of the RTL and the I / O port of the GL are all the same in the pin signal unit, so a separate port interface is not required. In order to generate signals with correct timing in GL at the interface boundary, a timing adjuster may be required to serve as a timing adjustment between them (delay values used in the timing adjuster may be used to analyze the SDF, or By analyzing delay time parameters of library cells, or performing gate-level timing simulation using SDF in a short simulation time interval, or performing static timing analysis, or using them in combination Can be). As described above, when one or more specific design objects present in the DUV are embodied as B (i) _refined in the process of gradual materialization, the design objects B (i) _abst and the corresponding design objects existing in the model MODEL_DUV (HIGH) of the abstract level are abstracted. Alternatively, the refinement step that creates the abstraction model MODEL_DUV (MIXED) _i will be referred to as the "partial refinement" step and this process will be called the partial refinement process.

상기의 부분 구체화 단계 이후에는 추상화 상위수준의 모델 MODEL_DUV(HIGH)에 존재하는 구체화 대상이 되는 모든 설계객체들을 구체화된 설계객체들로 대체(구체화 대상이 되지 않거나 구체화가 필요없는 설계객체가 존재할 수 있으며, 이와 같은 경우에는 해당 설계객체는 구체화하지 않음)하여서 추상화 하위수준의 모델 MODEL_DUV(LOW)를 만들어 내는 구체화 단계를 “완전 구체화”(complete refinement) 단계라 칭하기로 하고 이와 같은 과정을 완전 구체화 과정이라 칭하기로 한다. 즉, ESL에서 RTL로 구체화되는 단계에서는 완전 구체화 과정에서 MODEL_DUV(RTL)을 얻게되며, RTL에서 GL로 구체화되는 단계에서는 완전 구체화 과정에서 MODEL_DUV(GL)을 얻게 된다. 상기의 예로 설명하자면, ESL에서 RTL로 구체화되는 단계에서는 4개의 설계객체들이 모두 구체화되어야 하며 RTL에서 GL로 구체 화되는 단계에서는 4개의 설계객체들 중에 B(3)_rtl은(예로 B(3)_rtl은 메모리모듈임으로) 구체화될 필요가 없다면 완전 구체화 과정을 통하여 MODEL_DUV(RTL) = (B(1)_rtl, B(2)_rtl, B(3)_rtl, B(4)_rtl)와 MODEL_DUV(GL) = (B(1)_gl, B(2)_gl, B(3)_rtl, B(4)_gl)가 구성되어지게 된다. After the above partial specification step, all design objects that are specified in the model abstract model MODEL_DUV (HIGH) of the abstraction level can be replaced with the specified design objects (design objects that are not specified or do not need to be specified may exist. In this case, the refinement step that creates the model MODEL_DUV (LOW) at the low level of abstraction by not designating the design object is called the “complete refinement” step. It will be called. That is, in the step of specifying the RTL in ESL, MODEL_DUV (RTL) is obtained during the full specification, and in the step of specifying the GL in the RTL, MODEL_DUV (GL) is obtained during the full specification. In the above example, all four design objects must be specified in the RTL specification in ESL, and B (3) _rtl (e.g., B (3) _rtl is a memory module). If it does not need to be specified, complete the specification process. MODEL_DUV (RTL) = (B (1) _rtl, B (2) _rtl, B (3) _rtl, B (4) _rtl) and MODEL_DUV (GL ) = (B (1) _gl, B (2) _gl, B (3) _rtl, B (4) _gl)

완전 구체화 과정을 통하여 얻어진 추상화 하위수준의 모델 MODEL_DUV(LOW)을 최종적으로 실행시켜 얻어진 결과를 추상화 상위수준의 모델 MODEL_DUV(HIGH)의 시뮬레이션 실행결과와 비교하거나 필요시 추가적으로 추상화 중간수준의 모델 MODEL_DUV(MIXED)_i과도 비교함으로서 점진적 구체화 과정을 통하여 설계가 올바르게 수행되었는지를 검증할 수 있다. 그러나, 이와 같이 점진적 구체화 과정으로 진행되는 설계에서 자연스럽게 적용되는 점진적 구체화 방식의 검증 과정에서 부분 구체화 과정에서 수행되는 검증은 추상화 중간수준의 모델 MODEL_DUV(MIXED)_i에 존재하는 설계객체들이 아직도 대부분 추상화 상위수준에서 존재하고 있음으로 MODEL_DUV(MIXED)_i를 대상으로 하는 검증 실행속도가 추상화 상위수준의 모델 MODEL_DUV(HIGH)를 대상으로 하는 검증 실행속도에 비하여 꽤 떨어지게 되고 (일반적으로 실제 SOC 설계에서 DUV에서 온칩버스를 통하여 연결되는 설계객체들의 수는 적게는 10개 많게는 100개 정도가 됨), 완전 구체화 과정에서 수행되는 검증은 MODEL_DUV(LOW)에 존재하는 설계객체들 전부 내지는 대부분이 추상화 하위수준에서 존재하고 있음으로 MODEL_DUV(LOW)를 대상으로 하는 검증 실행속도가 추상화 상위수준의 모델 MODEL_DUV(HIGH)를 대상으로 하는 검증 실행속도에 비하여 크게 떨어지게 됨으로서 효과적인 검증 진행에 큰 장해요소가 되게 된다. 구체적 예로서는 ESL 모델에 비하여 이를 구체화한 RTL 모델의 검증 실행속도는 ESL 모델의 검증 실행속도에 비하여 최소 10배에서 최대 10,000배 이상 느려지며, RTL 모델에 비하여 이를 구체화한 GL 모델의 검증 실행속도는 RTL 모델의 검증 실행속도에 비하여 최소 100배에서 최대 300배 이상 느려지게 됨으로서 이와 같은 점진적 구체화를 통한 검증에서 전체 검증 시간을 크게 늘리게 되는 큰 문제점이 되게 된다. The result obtained by finally executing the model abstract low-level model MODEL_DUV (LOW) obtained through the full refinement process is compared with the simulation execution result of the model abstract high-level model MODEL_DUV (HIGH) or additionally, if necessary, the model abstract low-level model MODEL_DUV (MIXED). By comparing with i), you can verify that the design was done correctly through a gradual refinement process. However, in the process of partial specification in the process of progressive materialization that is naturally applied in the design of the process of progressive specification, the design objects existing in the model MODEL_DUV (MIXED) _i of the abstraction are still mostly abstracted. Because it exists at the level, the verification execution speed for MODEL_DUV (MIXED) _i is considerably lower than the verification execution speed for high-level model MODEL_DUV (HIGH) (usually on-chip in DUV in actual SOC design). The number of design objects connected via the bus will be at least 10 and as high as 100), and the validation performed during the full specification process is that all or most of the design objects in MODEL_DUV (LOW) exist at the low level of abstraction. The execution speed of verification targeting MODEL_DUV (LOW) is higher than the abstraction. Larger drops than the verify execution rate within the scope of the model MODEL_DUV (HIGH) of the semi by being presented is a major obstacle to effective verification element proceeds. As a concrete example, the verification execution speed of the RTL model that embodies this is slower than the ESL model by 10 to 10,000 times slower than that of the ESL model, and the verification execution speed of the GL model that embodies it compared to the RSL model is RTL. As it is slowed by at least 100 times and up to 300 times compared to the verification execution speed of the model, it becomes a big problem that the total verification time is greatly increased in the verification through such progressive specification.

따라서, 본 발명의 목적은 시스템 수준에서부터 게이트 수준까지 진행되는 설계를 점진적 구체화를 통하여 진행하는 과정에 적용되는 검증 과정을 설계 과정과 같이 점진적 구체화를 통하여서 효과적으로 진행할 수 있는 체계적인 검증 방법을 제공함에 있다. Accordingly, an object of the present invention is to provide a systematic verification method that can effectively proceed the verification process applied to the process of progressing from the system level to the gate level through a gradual specification through a gradual specification like the design process.

본 발명의 또 다른 목적은, 점진적 구체화를 통하여 진행되는 설계에서 진행되는 검증이 점진적 구체화 과정을 통하여 추상화 하위 단계로 진행될수록 검증 속도가 점차적으로 내지는 크게 떨어지는 문제점을 해결하는 체계적인 검증 방법을 제공함에 있다.It is still another object of the present invention to provide a systematic verification method that solves a problem that the verification speed gradually decreases or decreases significantly as the verification progressed in the design progressing through the gradual specification process proceeds to the lower level of abstraction through the gradual specification process. .

본 발명의 또 다른 목적은, 설계 및 검증을 추상화 상위수준에서부터 추상화 하위수준으로까지 점진적 구체화 방식으로 진행되는 전체 과정이 체계적이며 자동화된 방식으로 진행될 수 있도록 하는 것이다. It is yet another object of the present invention to allow the entire process of design and verification from a higher level of abstraction to a lower level of abstraction in a gradual materialization manner in a systematic and automated manner.

본 발명의 또 다른 목적은, 여러 추상화 수준들에서 존재하는 2 이상의 모델들간의 모델 일관성을 효과적으로 유지하는 체계적인 검증 방법을 제공함에 있다. It is still another object of the present invention to provide a systematic verification method that effectively maintains model consistency between two or more models present at various levels of abstraction.

본 발명의 또 다른 목적은, 체계적으로 유지된 모델 일관성에 근거하여서 추상화 상위 수준에서의 모델을 레퍼런스 모델로 활용하여서 점진적 구체화 과정을 통하여 추상화 하위 수준의 모델을 효과적으로 검증하는 방법을 제공함에 있다. Another object of the present invention is to provide a method of effectively verifying a low level abstraction model through a gradual materialization process by using a model at a high level of abstraction as a reference model based on systematically maintained model consistency.

본 발명의 또 다른 목적은, 분산병렬 시뮬레이션에서의 동기 오버헤드와 통신 오버헤드를 효과적으로 줄임으로서 분산병렬 시뮬레이션의 속도를 높이는 방법을 제공함에 있다. It is another object of the present invention to provide a method for speeding up distributed parallel simulation by effectively reducing synchronization overhead and communication overhead in distributed parallel simulation.

본 발명의 또 다른 목적은, 점진적 구체화 과정을 통한 설계 과정에서 발견되는 설계오류들을 제거하는 디버깅 과정을 체계적으로 수행할 수 있도록 함으로서 신속한 디버깅을 통한 설계 오류를 수정하는 방법을 제공함에 있다.Still another object of the present invention is to provide a method of correcting a design error through rapid debugging by systematically performing a debugging process for removing design errors found in a design process through a gradual specification process.

상기 목적들을 달성하기 위하여, 본 발명에 따른 설계 검증 방법을 적용하기 위하여 필요한 설계 검증 장치는 검증 소프트웨어와 1 내지는 2 이상의 시뮬레이터가 인스톨된 1 내지는 2 이상의 컴퓨터로 구성될 수 있다. 본 발명에서의 설계 검증 방법을 적용할 수 있는 또 다른 설계 검증 장치는 검증 소프트웨어와 1 내지는 2 이상의 시뮬레이터가 인스톨된 1 내지는 2 이상의 컴퓨터와 상기 1 내지는 2 이상의 컴퓨터에 연결된 1 내지는 2 이상의 시뮬레이션가속기 내지는 FPGA 보드로 구성된다. 검증 소프트웨어는 컴퓨터에서 실행되며, 만일 상기 설계 검증 장치에 2 이상의 컴퓨터들이 있는 경우에는 이들 2 이상의 컴퓨터는 네트워크(예로 이더넷 혹은 기가비트이더넷)로 연결되어져서 컴퓨터들 간에 파일들 내지는 데이터의 이동을 네트워크를 통하여 가능하게 한다. 설계 검증 용도의 상기 1 내지는 2 이상의 시뮬레이터는 이벤트-구동 시뮬레이터(event-driven simulator)로만 구성(분산병렬 시 뮬레이션을 이벤트-구동 시뮬레이터들로만 구성하여서 병렬 시뮬레이션하는 것을 PDES(Parallel Discrete Event Simulation)이라 함)될 수도 있고, 혹은 이벤트-구동 시뮬레이터와 사이클-기반 시뮬레이터(cycle-based simulator)로 같이 구성 될 수도 있고, 혹은 사이클-기반 시뮬레이터로만 구성될 수도 있고, 혹은 사이클-기반 시뮬레이터와 트란젝션-기반 시뮬레이터(transaction-based simulator)로 같이 구성될 수도 있고, 혹은 트란젝션 시뮬레이터로만 구성될 수도 있고, 혹은 이벤트-구동 시뮬레이터와 트란젝션-기반 시뮬레이터로 같이 구성될 수도 있고, 혹은 이벤트-구동 시뮬레이터와 사이클-기반 시뮬레이터와 트란젝션-기반 시뮬레이터로 같이 구성될 수도 있는 등 본 특허에서의 시뮬레이터의 구성은 매우 다양한 방식으로 구성할 수 있다. 따라서, 상기 2 이상의 시뮬레이터가 이벤트-구동 시뮬레이터와 사이클-기반 시뮬레이터로 구성된 경우에는 이를 이용한 분산병렬 시뮬레이션이 부분적으로는 이벤트-구동 시뮬레이션 방식으로 진행되고 다른 부분은 사이클-기반 시뮬레이션 방식으로 진행되는 동시-시뮬레이션(co-simulation) 모드로 진행되게 된다. 혹은 상기 2 이상의 시뮬레이터가 이벤트-구동 시뮬레이터와 사이클-기반 시뮬레이터와 트란젝션-기반 시뮬레이터로 구성된 경우에는 이를 이용한 분산병렬 시뮬레이션이 부분적으로는 이벤트-구동 시뮬레이션 방식으로 진행되고 다른 부분은 사이클-기반 시뮬레이션 방식으로 진행되고 또 다른 부분은 트란젝션-기반 시뮬레이션 방식으로 진행되는 동시-시뮬레이션 모드로도 진행되어질 수 있다.In order to achieve the above objects, the design verification apparatus necessary for applying the design verification method according to the present invention may be composed of one or two or more computers in which verification software and one or two or more simulators are 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 an FPGA board. 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 1 or 2 or more simulators for design verification use only consist of event-driven simulators. (Parallel Discrete Event Simulation (PDES) is a parallel simulation by configuring distributed parallel simulations only of event-driven simulators.) It can be a combination of an event-driven simulator and a cycle-based simulator, or it can consist only of a cycle-based simulator, or a cycle-based and transaction-based simulator. It can be configured as a transaction-based simulator, or as a transaction simulator only, or as an event-driven and transaction-based simulator, or an event-driven simulator and a cycle-based simulator. And together with a transaction-based simulator It may be such that the configuration of the simulator according to the present patent can be configured in a wide variety of ways. Therefore, when the two or more simulators are composed of an event-driven simulator and a cycle-based simulator, the distributed parallel simulation using the same is partially performed in the event-driven simulation and the other part is performed in the cycle-based simulation. Proceed to co-simulation mode. Alternatively, when the two or more simulators are composed of an event-driven simulator, a cycle-based simulator, and a transaction-based simulator, distributed parallel simulation using the same is partially performed as an event-driven simulation method, and the other part is a cycle-based simulation method. The other part can also be run in the co-simulation mode, which proceeds in a transaction-based simulation.

구체적 예를 든다면, AMBA 플랫폼 기반의 특정 추상화수준 SOC 모델에 대한 통상적인 분산병렬 시뮬레이션 내지는 본 특허의 분산처리적병렬시뮬레이션(추후에 정의 됨)의 경우에 버스중재기와 어드레스디코더를 포함하는 온칩 버스 설계객체는 ca-트란젝션수준에서 모델링된 블럭으로 이 블럭의 시뮬레이션을 담당하는 로컬시뮬레이션은 사이클-기반 시뮬레이션 방식으로 진행되고, 나머지 모든 설계객체들(ARM 코어, DSP, 메모리콘트롤러, DAM 콘트롤러, 기타주변장치들)은 RTL에서 모델링된 블럭들로 이들 블럭들 각각의 로컬시뮬레이션들은 이벤트-기반 시뮬레이션 방식으로 진행될 수 있다.For example, on-chip including bus arbitrators and address decoders in the case of a conventional distributed parallel simulation of a particular abstraction-level SOC model based on the AMBA platform, or the distributed processing parallel simulations (as defined later) of this patent. The bus design object is a block modeled at the ca-transaction level. The local simulation, which is responsible for the simulation of this block, is performed in a cycle-based simulation. All other design objects (ARM core, DSP, memory controller, DAM controller, Other peripheral devices) are blocks modeled in RTL, and local simulations of each of these blocks can be run in an event-based simulation manner.

현재 레지스터전송수준에서의 칩 설계에서 사용되는 HDL(Haraware Description Language) 시뮬레이터들(구체적 예를 든다면, Cadence NC-sim, Synopsys VCS, Mentor Graphic ModelSim, Aldec Active-HDL/Riviera 등)은 모두 이벤트-구동 방식의 시뮬레이터들이다. 사이클-기반의 시뮬레이터로는 대표적으로 Synopsys의 Scirocco가 있다. The HDL (Haraware Description Language) simulators (specifically, Cadence NC-sim, Synopsys VCS, Mentor Graphic ModelSim, Aldec Active-HDL / Riviera, etc.) used in chip design at the current register transfer level are all event-specific. Drive simulators. One cycle-based simulator is Synopsys' Scirocco.

본 특허에서 제안되는 점진적 구체화 과정을 통한 설계에서 적용되는 체계적인 점진적 구체화 검증 방식(Systematically Progressive Refinement Verification Method 앞으로는 이를 SPR 검증 방식으로 약칭함)은 RTL에서 구현가능한 RTL 모델을 대상으로 하는 RTL 검증 실행에 ESL 모델을 대상으로 하는 시스템수준 검증 실행의 결과 내지는 ESL에서 RTL로 점진적 구체화 과정을 진행하는 과정에서 구성되는 1 이상의 추상화 중간수준의 모델들인 MODEL_DUV(MIXED)_i들을 대상으로 하는 1 이상의 ESL/RTL 혼합검증 실행의 결과들을 활용하여서 RTL 검증 실행을 병렬적으로 실행하거나 부분적으로만 실행(부분적으로만 실행하는 것에서는 인크리멘탈 시뮬레이션 기법을 활용할 수 있는데, 인크리멘탈 시뮬레이션 기법을 추후에 설명함)함으 로서 RTL 검증을 신속하게 수행하는 것이 가능하다. 뿐만 아니라, SPR 검증 방식은 GL에서 구현가능한 GL 모델을 대상으로 하는 GL 검증 실행에 RTL 모델을 대상으로 하는 RTL 검증 실행의 결과 내지는 RTL에서 GL로 점진적 구체화 과정을 진행하는 과정에서 구성되는 추상화 중간수준의 모델들인 1 이상의 MODEL_DUV(MIXED)_i들을 대상으로 하는 1 이상의 RTL/GL 혼합검증 실행의 결과들을 활용하여서 GL 검증 실행을 병렬적으로 실행하거나 부분적으로만 실행(부분적으로만 실행하는 것에서는 인크리멘탈 시뮬레이션 기법을 활용할 수 있는데, 인크리멘탈 시뮬레이션 기법을 추후에 설명함)함으로서 GL 검증을 신속하게 수행하는 것도 가능하다. 뿐만 아니라, ESL에서 다양한 트란젝션 수준의 ESL 모델을 대상으로 하는 ESL 검증 실행에 추상화가 높은 트란젝션 모델을 대상으로 하는 시스템수준 검증 실행의 결과 내지는 점진적 구체화 과정을 진행하는 과정에서 구성되는 추상화가 높은 트란젝션 모델과 추상화가 낮은 트란젝션 모델을 혼용한 1 이상의 모델 MODEL_DUV(MIXED_AT_TLM)_i들을 대상으로 하는 1 이상의 트란젝션 혼합검증 실행(예로 MODEL_DUV(MIXED_AT_TLM)내의 특정 설계객체는 ca-트란젝션 수준의 설계객체이고 나머지 설계설계들은 timed-트란젝션 수준의 설계객체들로 구성하여 혼합검증 실행)의 결과들을 활용하여서 ESL 검증 실행을 병렬적으로 실행하거나 부분적으로만 실행(부분적으로만 실행하는 것에서는 인크리멘탈 시뮬레이션 기법을 활용할 수 있는데, 인크리멘탈 시뮬레이션 기법을 추후에 설명함)함으로서 ESL 검증을 신속하게 수행하는 것이 가능하다. The Systematically Progressive Refinement Verification Method, which is applied in the design through the gradual materialization process proposed in this patent, is abbreviated as SPR verification method in the future.The ESL is used to execute RTL verification on RTL models that can be implemented in RTL. Mixed validation of one or more ESL / RTL targets for MODEL_DUV (MIXED) _i, one or more abstract intermediate models constructed during the process of performing system-level validation on the model or in the process of gradual materialization from ESL to RTL. By using the results of the execution to run the RTL verification run in parallel or only partially (in part, you can use the incremental simulation technique, which will be described later). It is possible to perform RTL verification quickly. . In addition, the SPR verification method is an intermediate level of abstraction that is composed of the result of RTL verification execution targeting RTL model to GL implementation that can be implemented in GL or the process of gradual materialization from RTL to GL. Utilize the results of one or more RTL / GL hybrid verification runs on one or more MODEL_DUV (MIXED) _i models of the GL verification run in parallel or only partially (increment in part The mental simulation technique can be used, which can be performed quickly by performing GL verification. In addition, the high abstraction that is formed in the process of gradual refinement or the result of the system level verification that targets the transaction model that is highly abstract in the ESL verification execution that targets various transaction level ESL models in ESL. A particular design object in one or more transaction mixture validation runs (e.g., MODEL_DUV (MIXED_AT_TLM)) that targets one or more models MODEL_DUV (MIXED_AT_TLM) _i that mixes a transaction model with a low abstraction Object and the rest of the design are composed of timed-transaction level design objects that utilize the results of the mixed verification run to run the ESL verification run in parallel or only partially (in part, only incrementally). We can use mental simulation techniques, It is possible to quickly perform ESL verification.

이와 같은 검증 실행은 기본적으로 1 내지는 2 이상의 시뮬레이터를 이용한 시뮬레 이션 방식으로 진행되어지지만, 이뿐만 아니라 1 내지는 2 이상의 시뮬레이터에 1 내지는 2 이상의 시뮬레이션가속기 내지는 1 내지는 2 이상의 하드웨어에뮬레이터 내지는 1 내지는 2 이상의 FPGA 보드 등과 같은 하드웨어기반검증플랫폼을 시뮬레이터와 같이 사용한 시뮬레이션가속 방식으로 진행하는 것도 가능하다. 이와 같은 1 내지는 2 이상의 시뮬레이션가속기 내지는 1 내지는 2 이상의 하드웨어에뮬레이터 내지는 1 내지는 2 이상의 FPGA 보드를 1 내지는 2 이상의 시뮬레이터와 같이 사용하여 시뮬레이션의 수행속도를 높이는 시뮬레이션가속 방식도 넓은 의미에서는 시뮬레이션임으로 앞으로 본 특허에서는 특별한 언급이 없는 한 검증 이라는 용어와 시뮬레이션 이라는 용어는 서로 교환하여서 사용할 수 있는 것(즉, 본 특허에서는 정식검증(formal verification)은 고려하지 않기로 하며 따라서 검증이라하면 동적검증(dynamic verification) 기법인 시뮬레이션만을 생각하기로 함)으로 하여서 지금부터는 검증 이라는 용어 대신에 시뮬레이션으로 대체하여서 사용하기로 하며, 이 시뮬레이션에는 시뮬레이터를 사용하는 시뮬레이션 뿐만 아니라 시뮬레이션가속기 내지는 하드웨어에뮬레이터 내지는 FPGA 보드를 시뮬레이터와 함께 사용하는 시뮬레이션가속까지도 포함되는 것으로 한다.Such verification is basically performed in a simulation method using one or two or more simulators, but not only one or two or more simulators, one or two or more simulation accelerators, or one or two or more hardware emulators, or one or two or more simulators. It is also possible to use hardware-based verification platforms, such as FPGA boards, to accelerate the simulation using a simulator. Since the simulation acceleration method of increasing the speed of simulation by using one or two or more simulation accelerators, one or two or more hardware emulators, or one or two or more FPGA boards together with one or two or more simulators, the present invention is a simulation in a broad sense. Unless otherwise stated, the term verification and simulation can be used interchangeably (i.e., in this patent, formal verification will not be considered, so verification is a dynamic verification technique). From now on, instead of using the term verification, we will replace it with simulation, and this simulation is not only a simulation using a simulator but also an accelerator or a simulation accelerator. It also includes simulation acceleration using a hardware emulator or FPGA board with a simulator.

위에서 이미 언급된대로 본 특허에서의 SPR 검증 방식에서는 추상화 하위수준에서 이루어지는 시뮬레이션의 병렬적 실행 내지는 부분적으로만의 실행을 위하여 점진적 구체화 과정에서의 앞서서 수행된 내지는 상기 추상화 하위수준에서 이루어지는 시뮬레이션과 같이 수행되는 추상화 상위수준에서 이루어지는 시뮬레이션 결과 내지는 추상화 중간수준에서 이루어지는 1 이상의 시뮬레이션 결과를 활용하거나, 내 지는 동일한 추상화 수준에서 이루어지는 시뮬레이션의 병렬적 실행 내지는 부분적으로만의 실행을 위하여 점진적 구체화 과정에서의 동일한 추상화 수준에서 앞서서 수행된 시뮬레이션 결과를 활용한다. 뿐만 아니라, 드물게는 본 특허에서의 SPR 검증 방식에서는 특정 추상화 수준에서 이루어지는 시뮬레이션의 병렬적 실행 내지는 부분적으로만의 실행을 위하여 점진적 구체화 과정에서의 앞서서 수행된 추상화 하위수준에서 이루어진(통상적으로 설계 과정에서는 재반복(iteration)이 필요하게 되는데, 이 재반복 과정에서 추상화 하위수준의 시뮬레이션 수행 후에 추상화 상위수준의 시뮬레이션이 진행되어질 수 있음) 시뮬레이션 결과를 활용하기도 한다. 이상과 같이 본 특허에서의 핵심 사항 중의 하나는 앞서서 수행되어진 시뮬레이션의 결과를 활용하여서 나중에 수행되는 시뮬레이션을 신속하게 수행할 수 있게 하는 것인데, 앞서서 수행되어진 시뮬레이션이 나중에 수행되는 시뮬레이션에 비하여 상대적으로 추상화가 높은 수준 내지는 동일한 추상화 수준에서 수행되는 것이 일반적이지만, 경우에 따라서는 앞서서 수행되어진 시뮬레이션의 추상화 수준이 나중에 수행되는 시뮬레이션에 비하여 추상화 수준이 낮을 수도 있다. 뿐만 아니라, 앞서서 수행된 시뮬레이션과 나중에 수행되는 시뮬레이션 사이에 시뮬레이션 대상이 되는 1 이상의 모델내에 존재하는 1 이상의 설계객체들에 대한 수정이 가해질 수도 있다.As already mentioned above, in the SPR verification scheme in this patent, the parallel execution of the simulation at the lower level of abstraction or the execution of the simulation at the lower level of abstraction is performed previously in the process of gradual specification for partial execution only. Prior to the same level of abstraction in the gradual refinement process, to take advantage of simulation results at higher levels of abstraction or at least one simulation result at intermediate levels of abstraction, or for parallel or partial execution of simulations at the same level of abstraction. Take advantage of the simulation results performed. In addition, in rare cases, in the SPR verification scheme in this patent, the abstraction is performed at a lower level of abstraction previously performed in the gradual specification process (usually in the design process) for parallel or partial execution of the simulation at a particular level of abstraction. Iteration is necessary, and in this repetition process, the simulation may be performed after the abstraction low level simulation. As mentioned above, one of the key points in this patent is to make it possible to quickly perform a simulation that is performed later by utilizing the results of the simulation that was performed earlier. Although it is generally performed at a high level or the same level of abstraction, in some cases, the level of abstraction of the simulation performed earlier may be lower than that of the simulation performed later. In addition, modifications may be made to one or more design objects existing in one or more models to be simulated between the simulations performed earlier and later.

앞서서 수행되어진 시뮬레이션이 나중에 수행되는 시뮬레이션에 비하여 상대적으로 추상화가 높은 경우에 대해서는 좀 더 구체적으로 설명하면, 점진적 구체화 과정에서의 추상화 상위수준 모델을 이용한 추상화 상위수준에서 이루어지는 시뮬레이션 에서 이 시뮬레이션 실행 도중의 1 이상의 시뮬레이션 특정 시점 내지는 특정 구간에서 수집된 추상화 상위수준 모델의 상태정보(추후에 설명됨)를 활용하거나 (이를 활용방법-1이라 칭함), 혹은 추상화 상위/하위 혼합수준 모델을 이용한 추상화 중간수준에서 이루어지는 2 이상의 시뮬레이션에서 이 2 이상의 시뮬레이션 실행 도중의 1 이상의 시뮬레이션 특정 시점 내지는 특정 구간에서 수집된 추상화 중간수준 모델의 설계 상태정보(design state information으로 앞으로는 상태정보로도 약칭하기로 함)를 활용하거나 (이를 활용방법-2라 칭함), 혹은 점진적 구체화 과정에서의 추상화 상위수준 모델을 이용한 추상화 상위수준에서 이루어지는 시뮬레이션에서 이 시뮬레이션 실행 도중에 전체 시뮬레이션 구간이나 내지는 특정 시뮬레이션 구간에서 수집된 추상화 상위수준 모델 내의 1 이상의 설계객체들의 입출력정보(추후에 설명됨)를 활용하거나 (이를 활용방법-3이라 칭함), 혹은 추상화 상위/하위 혼합수준 모델을 이용한 추상화 중간수준에서 이루어지는 2 이상의 시뮬레이션에서 이 2 이상의 시뮬레이션 실행 도중에 전체 시뮬레이션 구간이나 내지는 특정 시뮬레이션 구간에서 수집된 2 이상의 추상화 상위/하위 혼합수준 모델들에 존재하는 추상화 하위수준의 설계객체들의 입출력정보를 활용하는 것이다 (이를 활용방법-4라 칭함).In more detail, the case in which the simulation performed earlier is relatively higher than the simulation performed later is described in more detail. In the above simulation, the state information (explained later) of the abstraction high-level model collected at a specific point in time or a specific section is used (hereinafter referred to as method-1), or at the intermediate level of abstraction using the abstract / high / low mixed level model. In the two or more simulations performed, the design state information of the abstract mid-level model collected at one or more simulation specific points or intervals during the execution of the two or more simulations (design state information will be abbreviated as state information in the future). Abstraction using a higher level model, or an abstraction higher level model collected during the entire simulation interval or a specific simulation interval during execution of this simulation. Two or more simulations in two or more simulations that utilize the input and output information (described later) of one or more design objects in the object (as described in Method 3), or an intermediate level of abstraction using an abstract upper / lower mixed-level model During execution, the input and output information of the design objects of the abstraction lower level existing in two or more abstract upper / lower mixed level models collected in the entire simulation section or a specific simulation section is used (called method-4).

뿐만 아니라, 본 특허에서의 독특한 분산처리적병렬수행 방식의 병렬시뮬레이션에서는 각 로컬시뮬레이션은 로컬시뮬레이터로 수행되어져야 하는 로컬설계객체만을 수행시키지 않고(즉, 기존의 전통적인 분산병렬 시뮬레이션에서는 각 로컬시뮬레이션은 해당 로컬설계객체만을 대상으로 수행됨) 시뮬레이션 대상이 되는 DUV와 TB의 In addition, in the parallel distributed parallel simulation in this patent, each local simulation does not perform only a local design object that must be performed by the local simulator (that is, in the conventional distributed parallel simulation, each local simulation is Only the local design objects will be performed.)

의 추상화 상위수준의 모델(즉, 이 추상화 상위수준의 모델은 상기 각 로컬시뮬레이션에서 수행되어져야 하는 로컬설계객체들 전체로 구성되는 DUV와 TB 전체 모델보다 추상화 수준이 높다) 내지는 시뮬레이션이 빠르게 수행되어질 수 있도록 최적화되어진 DUT와 TB 전체 모델(시뮬레이션이 빠르게 수행되어질 수 있도록 최적화시키는 방법들은 여러가지들이 알려져 있지만, 이들 중 이벤트-구동 방식으로 시뮬레이션하지 않고 사이클-기반 방식으로 시뮬레이션하는 것이 대표적 예임. 일반적으로 사이클-기반 방식의 시뮬레이션이 이벤트-구동 방식의 시뮬레이션보다 10배 정도 빠름. 이벤트-구동 방식의 시뮬레이션과 사이클-기반 방식의 시뮬레이션의 설명은 지면 제약 상 생략함으로 자세한 것은 관련서적을 참조함)을 상기 로컬설계객체와 같이 수행하면서 상기 수행되는 DUV와 TB의 추상화 상위수준의 모델 내지는 상기 수행되는 시뮬레이션이 빠르게 수행되어질 수 있도록 최적화되어진 DUT와 TB 전체 모델에서 동적으로 얻어지는 동적정보를 상기 로컬설계객체를 시뮬레이션 하기위한 예상입력과 상기 로컬설계객체의 시뮬레이션의 예상출력으로 이용하여 다른 로컬시뮬레이션들과의 동기 오버헤드와 통신 오버헤드를 최소화하면서 분산 병렬 시뮬레이션이 가능해지도록 함(좀 더 자세한 내용은 추후에 설명됨)으로서, 시뮬레이션의 속도를 높이게 된다. The higher level of abstraction of the model (ie, the higher level of abstraction than the overall model of DUV and TB, which consists of all local design objects that must be performed in each local simulation), or the simulation can be performed quickly. DUT and TB full models optimized to be able to be optimized (There are many known ways to optimize the simulation so that it can be performed quickly, but one of them is the simulation of the cycle-based method rather than the event-driven method. -Based simulations are about 10 times faster than event-driven simulations, and descriptions of event-driven and cycle-based simulations are omitted due to space constraints. To work with design objects And the expected information for simulating the local design object and the dynamic information obtained dynamically from the DUT and TB models that are optimized to perform the simulation quickly. It can be used as an expected output of the simulation of a local design object to enable distributed parallel simulation (more on this later), while minimizing the synchronization overhead and communication overhead with other local simulations. Will increase.

모델의 상태정보란 특정 시뮬레이션 시점(예로, 시뮬레이션 시점 29,100,511 나노초) 내지는 일정 시뮬레이션 시간구간(예로 시뮬레이션 시점 29,100,200 나노초에서부터 29,100,300 나노초까지의 100 나노초 구간)에서의 모델에 존재하는 플립플롭 출력이나 래치 출력 혹은 메모리 혹은 궤환루프를 이루는 조합적 경로 (combinational feedback loop)를 구술하고 있는 모든 변수나 시그널들의 값들을 포함한 동적정보(모델의 동적정보 내지는 설계객체의 동적정보란 시뮬레이션 과정에서 특정 시뮬레이션 시점 내지는 특정 시뮬레이션 구간(시뮬레이션 전체 구간일 수 있음)에서의 상기 모델 내지는 상기 설계객체에 존재하게 되는 1 이상의 시그널들 내지는 신호선들 상의 논리값들, 내지는 모델 내지는 설계객체에 존재하게 되는 1 이상의 변수들 상의 값 내지는 상수들 값을 말함. 이들 동적정보는 시뮬레이션 실행 과정에서 얻을 수 있는데, 시뮬레이션 실행 과정에서 동적정보를 얻는 실 예를 든다면 대표적인 방법이 Verilog 시뮬레이터에서는 $dumpvars, $dumpports, $dumpall, $readmemb, $readmemh 등의 시스템테스크 내지는 사용자정의 시스템테스크(user-defined system task)를 사용하여서 얻을 수 있으며(좀 더 구체적 방법들은 별도로 출원된 국내특허 10-2005-95803, 10-2005-116706, 10-2006-19738의 내용을 참조함), 얻어진 동적정보는 VCD 내지는 SHM 내지는 VCD+ 내지는 FSDB 형식 내지는 사용자가 정의한 임의의 이진형식 또는 텍스트형식 등으로 저장도 가능함)를 말한다. 설계객체의 상태정보란 특정 시뮬레이션 시점 내지는 일정 시뮬레이션 시간구간에서의 설계객체에 존재하는 플립플롭 출력이나 래치 출력 혹은 메모리 혹은 궤환루프는 이루는 조합적 경로를 구술하고 있는 모든 변수나 시그널들의 값들을 포함한 동적정보를 말한다. The state information of a model is a flip-flop output, latch output, or memory that exists in a model at a specific simulation time point (eg, simulation time 29,100,511 nanoseconds) or a constant simulation time interval (eg, 100 nanoseconds from 29,100,200 nanoseconds to 29,100,300 nanoseconds). Or dynamic information including the values of all variables or signals that describe a combinatorial feedback loop constituting the feedback loop (dynamic information of the model or dynamic information of the design object means a specific time point or a specific simulation interval during the simulation process) One or more signals or signal lines present in the design object, or values or constants on one or more variables present in the model or design object). These dynamic information can be obtained during the simulation run. For example, the dynamic way to obtain dynamic information during the simulation run is $ dumpvars, $ dumpports, $ dumpall, $ readmemb, $ readmemh, etc. in Verilog simulator. It can be obtained by using a system task or a user-defined system task (more specific methods are the contents of Korean patents 10-2005-95803, 10-2005-116706, 10-2006-19738, which are separately filed). The obtained dynamic information can be stored in VCD, SHM, VCD +, FSDB, or any binary or text format defined by the user. The state information of a design object is a dynamic data that includes the values of all variables or signals that describe the combinatorial path of the flip-flop output, latch output, memory, or feedback loop that exist in the design object at a specific simulation time point or a certain simulation time interval. Say information.

또한 설계객체의 입력정보란 특정 시뮬레이션 시간구간(이 특정 시뮬레이션 시간구간은 시뮬레이션 전체 시간구간이 될 수 있음)에서의 설계객체의 모든 입력(input), 입출력(inout) 상에서의 값들을 말하고, 설계객체의 출력정보란 특정 시뮬레이션 시간구간(시뮬레이션 전체 시간구간이 될 수 있음)에서의 설계객체의 모든 출력(output), 입출력 상에서의 값들을 말하고, 설계객체의 입출력정보란 특정 시뮬레이션 시간구간(시뮬레이션 전체 시간구간이 될 수 있음)에서의 설계객체의 모든 입력, 출력, 입출력 상에서의 값들을 말한다.In addition, the input information of the design object refers to all input and input values of the design object in a specific simulation time interval (this specific simulation time interval may be the entire simulation time interval). The output information of the designation object refers to all outputs and values of the design object in a specific simulation time period (which can be the entire simulation time period), and the input / output information of the design object is a specific simulation time period (simulation total time). Values on all input, output, and input and output of the design object.

본 특허에서 제시되는 시뮬레이션 방법은 앞서서도 이미 언급된 것과 같이 점진적 구체화 진행 과정 중에서 동일한 추상화수준 모델을 이용한 시간적으로 앞에서 수행된 시뮬레이션 결과를 이용하여서 동일한 추상화수준 모델을 이용한 나중에 수행되는 시뮬레이션을 병렬적 내지는 부분적으로 실행함으로서 시뮬레이션을 빠르게 수행하거나, 내지는 점진적 구체화 진행 과정 중에서 추상화 하위수준 모델을 이용한 시간적으로 앞에서 수행된 시뮬레이션 결과를 이용하여서 추상화 상위수준 모델을 이용한 나중에 수행되는 시뮬레이션을 병렬적 내지는 부분적으로 실행함으로서 시뮬레이션을 빠르게 수행하는 것도 가능하지만, 좀 더 일반적인 상황에서의 본 특허에서 제시되는 시뮬레이션 방법은 점진적 구체화 진행 과정 중에서 추상화 상위수준 모델을 이용하는 시뮬레이션 결과를 이용하여서 추상화 하위수준 모델을 이용한 시뮬레이션을 병렬적 내지는 부분적으로 실행하거나, 내지는 추상화 상위수준 모델을 추상화 하위수준 모델을 대상으로하는 로컬시뮬레이션에서 추상화 하위수준 모델과 함께 실행하여 상기 추상화 하위수준 모델을 대상으로하는 로컬시뮬레이션에서의 예상입력과 예상출력을 구하여 이를 이용함으로서 추상화 하위수준 모델을 대상으로하는 로컬시뮬레이션을 빠르게 수행하는 것이다. 즉. 본 특허에서는 추상화 상위수준 모델 M(HIGH)을 이용한 시뮬레이션 결과를 이용하거나, 내지는 추상화 상위수준 모델 M(HIGH)를 함께 이용하여서 추상화 하위수준 모델 M(LOW)을 이용한 시뮬레이션을 빠르게 수행하는 것에 더 많은 촛점을 맞추고 있다. 따라서 상기 추상화 상위수준 모델 M(HIGH)을 이용한 시뮬레이션을 빠르게 수행하는 방법은 본 특허에서의 방법을 연속적으로 적용하여서 상기 추상화 상위수준 모델 M(HIGH)보다 더 추상화 수준이 높은 모델 M(HIGHER)(이 경우에는 상대적으로 M(HIGHER)가 추상화수준이 높은 모델이고, M(HIGH)가 추상화수준이 낮은 모델이 됨)을 이용하는 시뮬레이션 결과를 이용하거나, 내지는 통상적인 분산병렬 시뮬레이션을 이용하는 것도 가능하고, 내지는 일반적인 단일 시뮬레이션을 이용하는 것도 가능하다. 본 특허에서 특정 추상화 수준 모델을 이용한 시뮬레이션을 병렬적 실행하는 것에는 분산처리적병렬수행(distributed-processing-based parallel execution, 이를 앞으로 DPE로 약칭함)과 시간분할적병렬수행(timed-sliced parallel execution, 이를 앞으로 TPE로 약칭함)(추후 자세히 설명됨) 모두를 포함한다 (즉, 분산처리적병렬수행 방식의 병렬시뮬레이션과 시간분할적병렬수행 방식의 병렬시뮬레이션은 본 특허에서 제안하는 새로운 방식의 시뮬레이션만을 지칭하는 용어임). 자세한 설명을 위해서 우선 t-DCP(Temporal Design Check Point)와 s-DCP(Spatial Design Check Point)를 정의하기로 한다. As already mentioned above, the simulation method proposed in this patent uses parallel simulations to perform later simulations using the same abstraction level model using temporal simulation results using the same abstraction level model during the process of progressive refinement. By performing partial simulations to speed up the simulation, or by performing parallel or partial executions of later simulations using the abstraction higher-level models, using the simulation results previously performed using the abstraction lower-level models during the process of progressive refinement. It is also possible to perform the simulation quickly, but the simulation method presented in this patent in a more general situation is a high level of abstraction in the process of gradual materialization. The simulation results using Dell can be used to perform the simulation using the abstraction low-level model in parallel or partially, or the abstraction high-level model in conjunction with the abstraction low-level model in the local simulation targeting the abstraction low-level model. By using the expected input and expected output in the local simulation targeting the abstraction low-level model, the local simulation targeting the abstraction low-level model is performed quickly. In other words. In this patent, the simulation results using the abstraction high-level model M (HIGH) or the combination with the abstraction high-level model M (HIGH) can be used more quickly to perform the simulation using the abstraction low-level model M (LOW). The focus is on. Therefore, the method of quickly performing the simulation using the abstraction high-level model M (HIGH) is a model M (HIGHER) (higher level of abstraction than the abstraction high-level model M (HIGH) by applying the method of the present invention continuously. In this case, it is possible to use a simulation result using M (HIGHER) is a high abstraction level model and M (HIGH) is a low abstraction level model), or to use a conventional distributed parallel simulation. It is also possible to use a general single simulation. In this patent, parallel execution of a simulation using a specific abstraction level model includes distributed-processing-based parallel execution (hereinafter abbreviated as DPE) and timed-sliced parallel execution. (Abbreviated as TPE in the future) (explained in detail later), that is, parallel simulation of distributed parallel execution and parallel execution of time division parallel execution are new simulations proposed by this patent. Term referring to bay). For detailed explanation, first, Temporal Design Check Point (t-DCP) and Spatial Design Check Point (s-DCP) are defined.

t-DCP란 DUV 내지는 DUV 내의 1 이상의 설계객체들을 대상으로 하는 시뮬레이션이 시뮬레이션 시간 0 이외의 임의의 시간 Ta에서부터 시작되어질 수 있도록 하는데 필요한 상기 DUV 내지는 DUV 내의 1 이상의 설계객체들에 관한 동적정보(dynamic information)로 정의된다 (설계객체의 동적정보란 시뮬레이션 과정에서 특정 시뮬 레이션 시점 내지는 특정 시뮬레이션 구간(시뮬레이션 전체 구간일 수 있음)에서의 상기 설계객체에 존재하게 되는 1 이상의 시그널들 내지는 신호선들 상의 논리값들, 내지는 설계객체에 존재하게 되는 1 이상의 변수들 상의 값 내지는 상수들 값임). 따라서, 설계객체의 상태정보는 t-DCP의 구체적 일 예이다. 그런데, 시뮬레이션이 가능한 모델은 DUV와 TB를 모두 포함하고 있어야만 한다. 따라서 시뮬레이션이 시뮬레이션 시간 0 이외의 임의의 시간 Ta에서부터 시작되어질 수 있도록 하려면 DUV를 Ta에서부터 수행할 수 있어야 할 뿐만 아니라 TB도 고려하여 주어야 한다. 이를 위해서는 대략 3가지 방법을 생각할 수 있다. 그 첫번째 방법은 TB는 시뮬레이션 시간 0에서부터 실행시키고 DUV는 Ta에서부터 실행시키는 방식이다. 이를 위해서는 TB가 반응적 TB(reactive TB)인 경우에는 DUV의 출력정보(따라서 이 출력정보를 앞선 시뮬레이션에서 획득하는 것이 필요함)를 이용하여서 우선 TB만을 시뮬레이션 시간 0에서부터 Ta까지 진행시킨 이후에 Ta에서부터는 TB와 DUV가 함께 연동하면서 수행될 수 있게 하거나, 내지는 TB가 비반응적 TB(non-reactive TB)인 경우에는 우선 TB만을 시뮬레이션 시간 0에서부터 Ta까지 진행시킨 이후에 Ta에서부터는 TB와 DUV가 함께 연동하면서 수행될 수 있게 하면 된다. 그 두번째 방법은 TB도 시뮬레이션 시간 Ta에서부터 시작할 수 있도록 TB를 저장(save)하고 재시행(restart)하는 것이다. 즉 TB도 DUV와 유사하게 시뮬레이션의 상태를 저장하거나 TB의 상태(TB의 상태란 시뮬레이션 특정시점 내지는 일정기간에서의 TB내에 선언된 모든 변수들과 상수들의 값)를 저장함으로서 이를 이를 재설정함으로서 재시행되어진다. 그런데 하드웨어를 모델링한 DUV와는 달리 TB는 테스트 환경을 모델링한 것 임으로 TB의 상태를 임의의 시점에서 재시행하려면 TB의 구술 형식을 제안하여야 하거나(예로, TB도 합성가능한 형식으로 구술) 내지는 추가적인 수작업 과정을 거치는 과정이 필요하다. 세번째로는, TB의 주요요소중의 하나인 입력생성서브컴퍼넌트를 알고리즘방식의 입력생성서브컴퍼넌트 대신에 패턴방식의 입력생성서브컴퍼넌트로 대체하는 것이다. 입력생성서브컴퍼넌트는 DUV에 입력스티뮬러스를 공급하는 역할을 담당하는데 알고리즘방식의 입력생성에서는 DUV로의 입력공급을 시뮬레이션 시점 0에서부터 시작하지 않고 임의의 시점 Ta에서부터 시작하는 것이 어려운데 비하여 패턴방식의 입력생성은 패턴 포인터등을 이용함으로서 DUV로의 입력공급을 시뮬레이션 임의의 시점 Ta에서부터 시작하는 것이 매우 용이하다. 따라서, 패턴방식의 입력생성서브컴퍼넌트를 이용하기 위해서는 앞서서 진행된 시뮬레이션 진행과정에서 원 TB에서 생성되어져서 DUV에 인가되어지는 입력정보들을 시뮬레이션 전구간에 걸쳐서 탐침하여 1 이상의 파일로 저장하고, 이를 이 후에 수행되는 시뮬레이션에서 활용함으로서 TB를 임의의 시점 Ta에서부터 동작시키는 것이 가능한데, 이와 같은 패턴방식의 TB는 리그레션 데스트(regression test)에서 많이 이용되어지는 방법이다. 이상의 방법들을 중 하나를 적용하기 위해서는 시뮬레이션 대상이 되는 모델 내지는 시뮬레이션 환경에 부가적인 코드인 부가 코드를 부가할 필요성이 있는데 이와 같은 부가 코드는 본 특허에서의 검증 소프트웨어를 통하여 자동적으로 부가시킬 수 있다 (부가 코드의 구체적 예는 도 16과 도 17과 도 18을 참조함). t-DCP is dynamic information about one or more design objects in the DUV or DUV required to allow a simulation of one or more design objects in the DUV or DUV to be started at any time Ta other than the simulation time zero. (Dynamic information of a design object is a logic value on one or more signals or signal lines present in the design object at a specific simulation point or a specific simulation section (which may be the entire section of the simulation) during the simulation process. , Or values on one or more variables that exist in the design object or constants). Therefore, the state information of the design object is a specific example of t-DCP. However, a model that can be simulated must contain both DUV and TB. Therefore, in order for the simulation to start at any time Ta other than simulation time 0, the DUV must be able to be performed from Ta as well as the TB must be considered. There are roughly three ways to do this. The first method is to run TB from simulation time 0 and DUV from Ta. To do this, if TB is a reactive TB, the output information of the DUV (so it is necessary to obtain this output information in the previous simulation) is used to advance only TB from simulation time 0 to Ta and then from Ta. Can be performed while the TB and the DUV are interlocked together, or if the TB is a non-reactive TB, the TB and the DUV from Ta are first processed after only the TB is progressed from simulation time 0 to Ta. This can be done by interlocking together. The second method is to save and restart the TB so that the TB can also start from the simulation time Ta. In other words, TB can be retried similarly to DUV by resetting it by storing the state of the simulation or by resetting it by storing the state of TB (the state of TB is the value of all variables and constants declared in TB at a specific point in time or for a certain period). It is done. However, unlike DUV modeling hardware, TB is a modeling of test environment. In order to re-execute TB state at any point in time, TB's oral form should be suggested (eg, TB can also be synthesized) or additional manual work. You need to go through the process. Third, the input generation subcomponent, which is one of the main elements of TB, is replaced with the pattern generation input component instead of the algorithmic input generation component. The input generation subcomponent is responsible for supplying the input stimulus to the DUV.In the algorithmic input generation, it is difficult to start the input supply to the DUV from a random point of time Ta rather than starting from the simulation point of time zero. Generation is very easy to start from any point Ta by simulating the input supply to the DUV by using a pattern pointer or the like. Therefore, in order to use the pattern-based input generation subcomponent, the input information generated in the original TB and applied to the DUV in the previous simulation process is probed over the simulation simulation period and stored as one or more files, and then performed. It is possible to operate the TB from any time Ta by utilizing in the simulation, which is a pattern method TB is widely used in the regression test (regression test). In order to apply one of the above methods, it is necessary to add additional code, which is an additional code, to the model or simulation environment to be simulated, and such additional code can be automatically added through the verification software of the present patent ( Specific examples of additional codes are shown in FIGS. 16 and 17 and 18).

DUV 내지는 DUV 내의 1 이상의 설계객체들의 상태정보와 같은 t-DCP를 이용하여서 DUV 내지는 DUV 내의 1 이상의 설계객체들을 대상으로 하는 시뮬레이션이 시뮬레이 션 시간 0 이외의 임의의 시간 Ta에서부터 시작되어질 수 있도록 하는 자세한 방법은 별도의 국내특허(10-2005-116706)에 이미 자세하게 설명되어져 있음으로 이를 참조하기로 하고 본 특허에서는 이에 대한 자세한 설명은 지면 제약상 생략하기로 한다. Using t-DCP, such as the status information of one or more design objects in a DUV or DUV, a simulation of one or more design objects in the DUV or DUV can be started from any time Ta other than the simulation time zero. The detailed method is already described in detail in a separate domestic patent (10-2005-116706), and this will be referred to, and the detailed description thereof will be omitted in this patent.

이와 같은 t-DCP를 활용하게 되면 DUV에 대한 임의의 시뮬레이션을 시뮬레이션 시간 상에서 복수개의 시간 소구간(슬라이스)들로 나누고, 시뮬레이션시간소구간별로 독립적으로 시뮬레이션이 진행되어질 수 있음으로 시간병렬적인 시뮬레이션이 가능하게 된다. 다만, 별도의 국내특허 10-2005-116706에서도 이미 설명된대로 현재 대부분의 HDL 시뮬레이터들이 동작되어지는 방식인 시뮬레이션이 이벤트 발생에 의하여 진행되는 이벤트 구동(event driven) 방식의 시뮬레이션인 경우에는 DUV 내지는 DUV 내의 1 이상의 설계객체들의 상태정보와 같은 t-DCP를 이용하여서 DUV 내지는 DUV 내의 1 이상의 설계객체들을 대상으로 하는 시뮬레이션이 시뮬레이션 시간 0 이외의 임의의 특정 시간 Ta에서부터 재시작(re-start) 되더라도 이벤트의 손실이 전혀 발생하지 않고 상기 임의의 특정 시간 Ta에서부터 시뮬레이션이 Ta 이후로까지 진행되어지더라도 시뮬레이션 시간 0에서부터 시뮬레이션이 시작되어서 Ta까지 진행되어지고 Ta 이후로까지 계속 진행되는 것과 상기 Ta에서부터 시작하여서 그 이후로는 동일한 시뮬레이션 결과를 얻을 수 있도록 하는 것이 매우 중요하다. 상기 별도의 특허 10-2005-116706에서는 이와 같은 것이 가능한 구체적 방법들을 자세히 설명하고 있는데 본 특허에서는 지면 제약상 자세한 설명은 생략하는 대신(자세한 것은 10-2005-116706을 참고)에, 핵심 사항에 대해서만 언급하기로 한다. 즉 상기 임의의 특정 시간 Ta에서부터 재시뮬레이션이 올바르게 되기 위해서는 앞서서 수행된 시뮬레이션에서 시점 Ta에서의 상태정보만을 저장하지 않고 일정한 시간구간 (Ta - d) (d는 모델에서 한 이벤트에 의하여 다른 이벤트가 트리거되는 최대 시간 간격으로 d 값은 시뮬레이션 대상이 되는 모델에 따라서 달라지는데 사용자로부터 받을 수 있거나 혹은 자동화된 방식으로 계산되어질 수 있음) 에서부터 Ta까지의 상태정보를 저장하고(예로, Ta가 10,000,000나노초인 경우에 상태정보 저장은 10,000,000나노초에서의 한 시점에서만 수행하지 않고 9,999,990나노초부터 10,000,000나노초까지의 10나노초 시간구간에 걸쳐서 진행함. 이 경우에 d = 10 나노초임) 이와 같이 일정한 시간구간에서 저장된 상태정보를 이용하여서 재-시작도 상기 일정한 시간구간에서 진행(앞서의 예로, 9,999,990나노초에서부터 10,000,000나노초까지에서 저장된 상태정보를 이용하여서 재-시작을 9,999,990나노초에서부터 10,000,000나노초까지에서 진행)한다. 본 특허에서의 분산처리적병렬시뮬레이션에서 1 이상의 로컬시뮬레이션이 이벤트-구동 방식의 시뮬레이션으로 수행되는 경우에는 이와 같은 이벤트 손실이 없는 재-시작이 올바른 롤백 수행에 있어서 매우 중요한데, 상기의 방법을 사용하게 되면 올바른 롤백 수행이 가능하게 된다.By utilizing such t-DCP, the arbitrary simulation of the DUV is divided into a plurality of time intervals (slices) in the simulation time, and the simulation can be performed independently according to the simulation time intervals. It becomes possible. However, as already described in a separate domestic patent 10-2005-116706, in the case where the simulation, which is a method in which most HDL simulators are operated at present, is an event driven simulation in which an event is generated, DUV or DUV is performed. Even if a simulation of a DUV or one or more design objects in the DUV is restarted from any specific time Ta other than the simulation time 0 using t-DCP as the state information of one or more design objects in the Although no loss occurs at any given time Ta, even if the simulation proceeds after Ta, the simulation starts from simulation time 0, proceeds to Ta, continues until Ta, and starts from the Ta After that, you get the same simulation result. It is very important to make sure. The separate patent 10-2005-116706 describes in detail the specific ways in which such a thing is possible. In this patent, the detailed description of the page is omitted without limitation (see 10-2005-116706 for details). I will mention it. In other words, in order for the re-simulation to be corrected from the specific time Ta, the previous simulation does not store only the state information at the time Ta, but a certain time interval Ta-d (d is triggered by another event by one event in the model) D value depends on the model being simulated, which can be received from the user or calculated in an automated fashion, and stores state information from to Ta (for example, when Ta is 10,000,000 nanoseconds). Saving state information is not performed at one point at 10,000,000 nanoseconds, but proceeds over 10 nanosecond time intervals from 9,999,990 nanoseconds to 10,000,000 nanoseconds, in which case d = 10 nanoseconds). Re-start also proceeds in the same time interval ( Examples of standing hayeoseo re-use the saved state information from 9,999,990 to 10,000,000 ns ns - proceeds from the start, from 9,999,990 to 10,000,000 nanoseconds nanoseconds). When one or more local simulations are performed in event-driven simulation in the distributed parallelism simulation in this patent, re-start without such event loss is very important for proper rollback. If so, correct rollback is possible.

s-DCP란 DUV 내지는 DUV 내의 2 이상의 설계객체들을 대상으로 하는 시뮬레이션을 2 이상의 시뮬레이터들에 나누어서 분산병렬 시뮬레이션을 수행하는 경우에 이들 2 이상의 시뮬레이터들에 나누어진 설계객체들간에 분산병렬 시뮬레이션 실행 과정에서 필요한 시그널값들의 올바른 전달 내지는 트란젝션값들의 올바른 전달을 위한 통신(communication) 및 동기화(synchronization)를 최소화 하는 것에 필요한 상기 DUV 내지는 TB의 상이한추상수준 동일모델에 관한 동적정보 내지는 이 상이한추상수준 동일모델 내의 1 이상의 설계객체들에 관한 동적정보, 내지는 상기 DUV 내지는 TB에 관한 동적정보 내지는 DUV 내지는 TB 내의 1 이상의 설계객체들에 관한 동적정보, 내지는 상기 DUV와 TB의 추상화 상위수준 모델, 내지는 시뮬레이션이 빠르게 수행되어질 수 있도록 최적화(예로, VCS의 two-state simulation 옵션으로 최적화되거나, 내지는 VCS의 Radiant Technology 등과 같은 방식으로 최적화되거나, 내지는 이들 두 방법들의 조합된 방식으로 최적화. 뿐만 아니라 NC-sim 내지는 ModelSim의 경우에서도 VCS와 유사한 최적화기법들을 사용하여서 최적화)되어진 DUT와 TB 전체 모델로 정의된다. 이와 같은 s-DCP는 분산병렬 시뮬레이션에서 특정 로컬시뮬레이터로 수행되는 특정 로컬설계객체가 시뮬레이션되는 과정에서 함께 시뮬레이션되면서 상기 특정 로컬설계객체의 로컬시뮬레이션 S_l(k) 수행의 예상입력(expected input)과 예상출력(expected output)(본 특허에서 "로컬시뮬레이션 수행의 예상입력과 예상출력"이라 함은 실제 수행에 앞서서 내지는 실제 수행 도중에 예측되어진 예상입력과 예상출력을 정의하는 용어임. 구체적으로 실제 수행에 앞서서 내지는 실제 수행 도중에 예측되어진 이라는 의미는 해당 시뮬레이션 실행 시작 전에 예측되어지거나, 내지는 해당 시뮬레이션의 실행 도중에 해당 입력을 인가하는 특정 시뮬레이션 시점에 앞서서 내지는 이 특정 시뮬레이션 시점에서 동적으로 예측되어지고 해당 출력이 출력되는 또 다른 특정 시뮬레이션 시점에 앞서서 내지는 이 또 다른 특정 시뮬레이션 시점에서 동적으로 예측되어지거나, 내지는 이 둘 을 혼용한 방식으로 예측되어지는 것 모두를 포함하는 의미임. 따라서 s-DCP는 추상화 상위수준의 DUT와 TB 전체 모델 자체일 수도 있으며, 빠르게 시뮬레이션될 수 있도록 최적화된 DUT와 TB 전체 모델 자체일 수도 있으며, 혹은 시간적으로 앞서서 수행된 시뮬레이션에서 수집된 1 이상의 설계객체에 대한 입출력정보, 혹은 이들의 조합일 수 있음)을 얻는 것에 사용되어져서, 우선 상기 예상입력을 상기 특정 로컬설계객체에 인가하여 실제 로컬시뮬레이션 S_l(k)을 실행시켜 얻어진 상기 특정 로컬설계객체의 실제 출력값이 상기 예상출력과 일치한다면 다른 로컬시뮬레이터들로 수행되는 시뮬레이션 대상이 되는 모델 내의 여타의 로컬설계객체들과의 통신 및 동기화를 생략하고 이 특정 로컬시뮬레이션 S_l(k)의 시뮬레이션 시간을 독립적으로 앞으로 진행시킬 수 있는 역할을 수행하게 된다. 상기 특정 로컬설계객체의 로컬시뮬레이션 수행의 예상입력과 예상출력으로 사용되어지는 상기 s-DCP 정보 제공과 이에 따른 시뮬레이션 진행을 제어(예상입출력이용-런 진행, 실제입출력이용-런 진행, 롤백 수행 등으로 각각은 추후에 설명됨)하는 기능을 위해서 별도의 코드(이 별도의 코드는 Verilog 내지는 SystemVerilog 내지는 VHDL과 같은 HDL로서 구술되어져서 HDL로 구술된 모델에 포함되어지거나, 혹은 C/C++/SystemC로 구술되어져서 PLI/VPI/FLI 등을 통하여 HDL로 구술된 모델에 인터페이스되어지거나, 혹은 HDL과 C/C++/SystemC 혼용으로 구술되어져서 PLI/VPI/FLI 등을 통하여 HDL로 구술된 모델에 포함되는 동시에 인터페이스되어짐)가 시뮬레이션 대상이 되는 설계코드(통상 HDL 코드 내지는 SystemC 코드 내지는 C/C++ 코드 내지는 SDL 코드 내지는 HVL 코드 내지는 이들의 조합) 내지는 시뮬레이션 환경(예로, 시뮬레이션 컴파일 내지는 일레보레이션 내지는 실행을 위한 시뮬레이션스크립트)에 부가되어져야 하는데 통상적으로는 모델의 TB 부분(즉 DUV의 바깥 부분)에 부가되어지고 C/C++ 코드로서도 부가(본 특허에서 이 부가되는 코드 전체를 "부가 코드"로 통칭함)되어지는 것이 일반적이나 경우에 따라서는 DUV에도 일부분이 부가되어지며, 이와 같은 과정은 본 특허에서의 검증 소프트웨어가 시뮬레이션 대상이 되는 모델을 구술한 1 이상의 설계소스 파일 내지는 시뮬레이션 환경 파일 등을 읽어들여서 자동화된 방식으로 생성시킬 수 있다 (구체적인 예는 도 16, 도 17, 도 18, 도 19를 참조. 부가 코드의 내부구조와 내부기능은 도 8, 도 27을 참조). 이와 같은 부가 코드가 해당 로컬시뮬레이션 대상이 되는 로컬설계객체에 우선 예상입력을 인가하고, 상기 로컬설계객체가 시뮬레이션되면서 상기 로컬설계객체에서 출력되는 실체 출력을 예상출력과 비교하여 이 비교가 일치하면 그 다음 예상입력을 인가하게 되는 것임으로 통상적인 테스트벤치의 기능(입력을 인가하고 출력이 예상대로 나오는지를 조사하는 기능이 일반적인 테스트벤치의 기본 기능임)과 매우 유사함으로 이와 같은 기능을 수행할 수 있는 부가 코드를 자동화된 방식으로 생성시키는 것이 어렵지 않게 가능하다. 뿐만 아니라, 롤포워드(roll-forward)가 필요한 경우(롤포워드가 필요한 경우란, 다른 로컬시뮬레이션에서 수행된 실제출력과 예상출력의 불일치가 발생하고 이 불일치 시뮬레이션 시점 t_d가 이 로컬시뮬레이션의 현재 시뮬레이션 시점 t_c보다 시간적으로 미래에 존재함으로 이 로컬시뮬레이션을 시뮬레이션 시점 t_d까지 진행시키도록 하여야 할 경우를 말함. 그러나 t_c에서부터 t_d까지 이 로컬시뮬레이션을 예상입출력이용-런 방식으로 진행하다가 t_c에서부터 t_d사이의 시뮬레이션 시 점 t_b에서 이 로컬시뮬레이션에서 실제출력과 예상출력의 불일치가 발생하면 이 로컬시뮬레이션은 t_b에서 진행을 일시 정지하고 이 새로운 롤백가능 시점 t_b와 롤백가능성 발생을 다른 로컬 시뮬레이션들에게 알려야 함. 따라서, 롤포워드는 이 로컬시뮬레이션 입장에서는 예상입출력이용-런 방식으로 계속 시뮬레이션을 진행하는 것임으로 롤포워드를 특별하게 취급할 필요가 없음)에는 계속하여서 예상입출력이용-런을 진행하고 롤백이 필요한 경우에 롤백을 수행하고 이 롤백되어진 시점에서부터 실제입출력이용-런(본 특허에서 실제입출력이용-런 방식이란 분산병렬 시뮬레이션에서 각 로컬시뮬레이션들간의 데이터 - 각 로컬시뮬레이션들에 있어서 다른 로컬시뮬레이션들에서부터 오는 입력 내지는 다른 로컬시뮬레이션들로 나가는 출력 - 전달을 실제로 수행하며 이 과정에서 필요한 동기화를 위하여 통상적인 보수적 방식의 동기화 내지는 낙관적 방식의 동기화로 동기화를 진행하는 방식을 말함. 데이터전달(통신) 및 동기화를 수행하는 간격은 시뮬레이션 최소 정밀도(precision) 단위일 수도 있고, 시뮬레이션 최소 시간(time unit) 단위일 수도 있고, 사이클 단위일 수도 있고, 트란젝션 단위일 수도 있는 등 다양함) 방식에 의한 통상적인 분산병렬 시뮬레이션(따라서 실제입출력이용-런 과정에서는 통상적인 보수적 분산병렬 시뮬레이션으로 진행할 수도 있을 뿐만 아니라, 통상적인 낙관적 분산병렬 시뮬레이션으로 진행할 수도 있음)이 수행되도록 제어하면 되는데, 이와 같이 제어하는 방법도 롤백을 위해서는 통상적인 낙관적 분산병렬 시뮬레이션에서 사용하는 롤백 방법들(낙관적 분산병렬 시뮬레이션에서는 반드시 롤백이 가능하도록 지원하여야 함으로, 롤백을 위한 다양한 방법들은 이미 많은 낙관적 분산병렬 시뮬레이션 관련 문헌들에서 자세히 설명되어 있음으로 이에 대한 자세한 설명은 지면 제약상 본 특허에서는 생략하며, 이를 위해서는 상기 문헌들을 참고하기로 함) 내지는 별도의 특허(10-2005-116706) 에서 이미 자세하게 설명된 저장(save) 및 재출발(re-start) 방법을 원용하면 되고 (예로, 설계 상태정보를 1 이상의 시뮬레이션 시점 내지는 시뮬레이션 일정구간에서 파일로 저장하고 롤백 시에 상기 설계 상태정보가 저장된 1 이상의 시뮬레이션 시점 내지는 구간 중의 특정 시뮬레이션 시점 내지는 구간에서 재출발시키는 구체적 방법은 Verilog의 경우에는 force/release 명령어 구문 내지는 PLI/VPI의 acc_set_value() 함수를 사용하여 상기 특정 시뮬레이션 시점 내지는 구간에서 설계 상태정보를 구성하는 해당 로컬설계객체의 변수들에 상기 저장된 상태정보 정보를 다시 쓰는 것이다. 특히, 매 롤백 시마다 별도의 시뮬레이션 컴파일을 다시 수행하지 않고서도 설계 상태정보를 해당 로컬설계객체의 변수들에 재설정하는 방법은 VPI/PLI의 acc_set_value()를 사용하여서 파일로부터 상기 해당 로컬설계객체들의 변수들에 재설정할 설계 상태정보 값들을 상기 특정 시뮬레이션 시점 내지는 구간에서 읽어들여서 해당 로컬설계객체들의 변수들에 설정하게 하면서, 해당 설계 상태정보 값들을 가지고 되는 상기 파일의 내용이 시뮬레이션 재출발 시점 내지는 구간이 되는 상기 특정 시뮬레이션 시점 내지는 구간에서의 해당 로컬설계객체들의 변수들 값을 가지도록끔 매 롤백 수행 전에 동적으로 바꿈으로서 가능하다), 통상적인 실제입출력이용-런 방식의 분산병렬 시뮬레이션은 이미 널리 알려져 있음으로 이 또한 상기 부가 코드와 이와 같은 기능을 수행하도록 자동화된 방식으로 상기 부가 코드를 생성하는 것이 어렵지 않게 가능하다 (구체적 예는 도 16, 도 17, 도 18, 도 19 참조하며, 이와 같은 기능을 수행하는 부가 코드의 구조적 구성은 도 8에, 모조코드는 도 27에 예시되어 있음). 즉, 분산병렬 시뮬레이션 환경에서 각기 다른 로컬시뮬레이터들에서 수행되는 로컬설계객체들 각각은 본 특허의 분산처리적병렬수행 방식(추후에 정의됨)을 위하여 부가되어지는 부가 코드로 인하여 우선 s-DCP에서 구해지는 예상입력을 활용하여서 각 로컬시뮬레이터들 각각으로써 로컬설계객체들 각각을 독립적으로 시뮬레이션 수행시켜서 각 로컬설계객체들의 출력값들을 각각 구하게 되고, 이들 실제 출력값들 각각을 s-DCP에서 구해지는 예상출력들과 비교하여 이들 비교가 일치하게 되면 로컬시뮬레이터들간에 통신 및 동기화를 완전하게 내지는 최대한 생략하고 각 로컬시뮬레이션 시간을 앞으로 진행(이와 같은 진행 방식을 예상입출력이용-런 방식이라 칭하고, 아래에서 더 추가적으로 설명함)하게 됨으로서 시뮬레이션 속도를 크게 높이는 것이 가능하게 되는 것이다. 만일, s-DCP의 예상출력들과 비교하여 이들 비교가 일치하지 않으면(이를 예상출력/실제출력 불일치시점이라 칭함) 이 경우에서만 로컬시뮬레이터들간에 통신 및 동기화 과정을 수행하면서 분산병렬 시뮬레이션을 진행하게 된다. 또한, 한번 로컬시뮬레이터들간에 통신 및 동기화 과정을 수행하는 실제입출력이용-런 방식으로 전환(이 전환시점을 앞으로는 실제입출력이용-런 적용시점이라고 칭함. 이 실제입출력이용-런 적용시점이 될 수 있는 시점은 일반적으로 분산병렬 시뮬레이션을 진행하는 로컬시뮬레이션들 각각의 상기 예상출력/실체출력 불일치시점들에서 제일 시간적으로 뒤에 있는 시점 - 즉, 제일 시간적으로 과거인 시점 - t_lock 내지는 이 t_lock 보다 시간적으로 뒤에 있는 임의의 시점 t_advance_lock이 될 수 있음. 그러나 시뮬레이션 성능 최적화를 위해서는 실제입출력이용-런 적용시점을 t_lock으로 설정하는 것이 시뮬레이션의 성능을 최적화할 수 있음. 따라서 각 로컬 시뮬레이션은 예상입출력이용-런 방식의 시뮬레이션 진행 과정에서 예상출력/실제출력 불일치시점을 만나게 되면 예상입출력이용-런 방식의 시뮬레이션 수행을 중지하고, 다른 모든 로컬 시뮬레이션들이 자신의 예상출력/실제출력 불일치시점을 알 수 있도록 자신의 예상출력/실제출력 불일치시점을 다른 모든 로컬 시뮬레이션들에게 알려야 함. 또한 각 로컬 시뮬레이션은 t_lock 시점 내지는 t_advance_lock 시점으로 롤백할 수 있도록 로컬시뮬레이션의 시뮬레이션 상태 내지는 로컬시뮬레이션으로 수행되는 1 이상의 로컬설계객체들의 상태정보를 t_lock 시점 내지는 1 이상의 t_advance_lock 시점에서 주기적으로 내지는 비주기적(실행에 앞서 설정한 특정조건 만족시 저장이 일아나도록)으로 저장하는 것이 필요함)한 후에도 계속적으로 실제 시뮬레이션 과정에서 발생하는 실제 입력값들(이 실제 입력값들은 분산병렬 시뮬레이션이 실제입출력이용-런 방식으로 진행되면서 이 분산병렬 시뮬레이션 환경의 1 이상의 다른 로컬시뮬레이션에서부터 오게 됨)을 s-DCP에서 구해진 예상입력들과 비교하다가 혹은 실제 시뮬레이션 과정에서 발생하는 실제 출력값들을 s-DCP에서 구해진 예상출력들과 비교하다가(비교의 효율성을 위하여 예상값 - 예상출력 내지는 예상입력 - 들과 실제 시뮬레이션 과정에서 발생하는 실제값 - 실제출력 내지는 실제입력 - 들의 추상화 수준을 동일하게 맞추어서 비교하는 것도 가능한데, 이와 같이 예상값과 실제값의 추상화 수준을 맞추는 기능을 수행하는 모듈을 어뎁터(adaptor) 내지는 트란젝터(transactor)라 함. 예로 RTL에서 진행되는 분산 병렬 시뮬레이션에서 예상값들과 실제값들의 비교는 실제값의 추상화 수준을 예상값과 같은 추상화 수준인 ca-트란젝션으로 올려서 비교하는 것도 가능할 뿐만 아니라, RTL 추상화 수준의 예상값들과 ca-트란젝션 수준의 실제값들을 모두 timed-트란젝션 추상화 수준으로 동일하게 올려서 비교하는 것도 가능), 일정횟수(이는 시뮬레이션 수행에 앞서서 입력으로서 설정하거나, 내지는 시뮬레이션 과정 중에서 순응적으로 변경하는 것도 가능함) 이상으로 상기 비교가 같아진다면 이 시점에서부터는(이 시점을 앞으로는 실제입출력이용-런 해제시점이라고 칭함) 로컬시뮬레이터들을 실제입출력이용-런 방식에서 다시 해제시켜서 통신 오버헤드 및 동기 오버헤드를 다시 제거하고 시뮬레이션이 진행(이 경우에는 분산병렬 시뮬레이션의 로컬 시뮬레이션들 각각이 다른 로컬 시뮬레이션들과의 통신 및 동기화를 생략하고 독립적으로 진행할 수 있음으로 매우 빠르게 진행되어짐. 위에서 설명한 실제입출력이용-런 방식으로 진행되는 것과 대비하여서, 본 특허에서는 이와 같이 로컬시뮬레이션들 각각이 다른 로컬시뮬레이션들과의 통신 및 동기화를 생략하고 완전 독립적으로 진행하는 방식을 예상입출력이용-런 방식이라 칭함)되어질 수 있게 되며, 이상과 같은 예상입출력이용-런 방식의 시뮬레이션 진행과 실제입출력이용-런 방식의 시뮬레이션 진행 과정을 번갈아 가면서 반복함으로서 분산병렬 시뮬레이션의 성능을 크게 높일 수 있게 된다. DUV와 TB내에 존재하는 1 이상의 설계객체들에 대한 입출력정보 내지는 상기 DUV와 TB보다 추상화 수준이 높게 구술된 DUV와 TB를 모두 포함하는 시뮬레이션 모델 내지는 시뮬레이션이 빠르게 수행되어질 수 있도록 최적화되어진 DUT와 TB 전체 모델은 s-DCP의 구체적 일 예들이다. 뿐만 아니라 분산병 렬 시뮬레이션에서 각 로컬시뮬레이션에서 수행되도록 나누어진 설계의 일부분(로컬시뮬레이터에 의하여 수행되는 설계의 일부분, 즉 로컬설계객체)이 DUV 내에 존재하는 설계객체들(예로 Verilog 설계의 경우에는 설계객체들은 module들, VHDL 설계의 경우에는 설계객체들은 entity들, SystemC 설계의 경우에는 설계객체들은 sc_module들임)의 경계(boundary)와 일치하지 않는 경우에는 상기 각 로컬시뮬레이션들에서 수행되도록 나누어진 각 설계의 일부분들(즉, 분산병렬 시뮬레이션을 위하여 각각의 로컬시뮬레이터에 존재하게 되는 전체설계의 일부분들) 각각의 입출력정보가 s-DCP가 된다.s-DCP refers to a distributed parallel simulation of two or more design objects in a DUV or DUV divided into two or more simulators. Dynamic information about the same abstract model of the DUV or TB and the different abstract level of the same model required to minimize the communication and synchronization for the correct delivery of the required signal values or for the correct delivery of the transaction values. Dynamic information about one or more design objects in the, or dynamic information about the DUV or TB, or dynamic information about one or more design objects in the DUV or TB, or an abstraction high-level model of the DUV and TB, or simulation Optimal to be performed (E.g., optimized with the two-state simulation option of the VCS, or in the same way as the Radiant Technology of the VCS, or a combination of these two methods, as well as similar to the VCS in the case of NC-sim or ModelSim). It is defined as the entire DUT and TB models that have been optimized using optimization techniques. Such s-DCP is simulated together in a process of simulating a specific local design object performed by a specific local simulator in distributed parallel simulation, while the estimated input and the expected input of performing the local simulation S_l (k) of the specific local design object are simulated. Expected output (in this patent, "expected input and expected output of local simulation execution" is a term that defines expected input and expected output before actual execution or during actual execution. Means that it is predicted during actual execution, or is predicted before the start of the simulation execution, or before the specific simulation time for applying the input during the execution of the simulation, or dynamically predicted at this specific simulation time and the corresponding output is outputted. Another specific S-DCP means that both the DUT and TB at the higher abstraction level are either dynamically predicted at the time of the simulation, or dynamically predicted at another specific simulation point, or both. It can be the model itself, the DUT and the entire TB model optimized for rapid simulation, or it can be the input / output information for one or more design objects collected from a simulation performed earlier in time, or a combination thereof.) Is used to obtain the first input of the expected input to the specific local design object and executes the actual local simulation S_l (k) if the actual output value of the specific local design object obtained matches the expected output. Other local design objects in the model to be simulated Omit the communication and synchronization with each other and to advance the simulation time of this particular local simulation S_l (k) independently. Providing the s-DCP information which is used as the predicted input and predicted output of performing the local simulation of the specific local design object and controlling the simulation progress accordingly (expected I / O run, real I / O run, rollback, etc.) Each of which is included in a model dictated as HDL or dictated as HDL, such as Verilog, SystemVerilog, or VHDL, or in C / C ++ / SystemC. It is dictated and interfaced to HDL dictated models through PLI / VPI / FLI, or intermixed with HDL and C / C ++ / SystemC, included in models dictated by HDL through PLI / VPI / FLI, etc. Simultaneously interfaced design code (usually HDL code, SystemC code, C / C ++ code, SDL code, or HVL code) Sum) or simulation environment (for example, simulation scripts for simulation compilation, execution, or execution), typically added to the TB portion of the model (ie outside the DUV) and also as C / C ++ code. (In this patent, the entire code to be added is referred to collectively as "additional code") It is common, but in some cases, a part is also added to the DUV, such a process that the verification software in this patent is subject to simulation One or more design source files or simulation environment files that dictate the model can be read and generated in an automated manner (for specific examples, see FIGS. 16, 17, 18, and 19. Internal Structure and Internals of Additional Code) See FIG. 8, FIG. 27 for the function). This additional code first applies the expected input to the local design object to be subjected to the local simulation, and compares the actual output output from the local design object with the expected output while the local design object is simulated, and if the comparison is identical, It is possible to perform this function because it is very similar to the function of normal test bench (the function of applying input and checking whether the output is expected is the basic function of general test bench). It is not difficult to generate additional code in an automated manner. In addition, if roll-forward is required (when roll-forward is required, there is a discrepancy between the actual output and the expected output performed in another local simulation, and this mismatch simulation point in time t_d is the current simulation point in this local simulation). Since this local simulation exists in time later than t_c, it is necessary to proceed this local simulation to the time of simulation t_d, but during the simulation between t_c and t_d, the local simulation is run through the expected I / O-run method from t_c to t_d. At point t_b, if there is a discrepancy between the actual output and the expected output in this local simulation, this local simulation should pause the progress at t_b and inform other local simulations of this new rollback point in time t_b and the possibility of rollback. The forward is to this local simulation Is to continue the simulation in the expected I / O-run method, so no rollforward needs to be treated specially), continue with the I / O-run and perform a rollback if a rollback is needed and when it is rolled back. From the actual I / O-run (in this patent, the actual I / O-run method is the data between each local simulation in a distributed parallel simulation-the input from other local simulations in each local simulation or the output to other local simulations). It refers to the method that actually performs the transmission and synchronizes with the conventional conservative synchronization or the optimistic synchronization for synchronization required in this process.The interval between performing data transmission (communication) and synchronization is the simulation minimum precision. Can be units, simulation A typical distributed parallel simulation by the minimum time unit, cycle unit, transaction unit, etc., and thus a conservative distributed parallel simulation in the actual I / O process. In addition, the control method may be controlled to perform a general optimistic distributed parallel simulation, and the rollback methods used in the conventional optimistic distributed parallel simulation may be used for a rollback. Since the simulation must support rollback, various methods for rollback are already described in detail in many literatures related to optimistic distributed parallel simulation, and a detailed description thereof is omitted in the present patent due to the limitation of the paper. Reference may be made to the old reference) or a separate save and re-start method described in a separate patent (10-2005-116706). In the Verilog, a specific method of storing the file as a file in the simulation schedule section and restarting at a specific simulation point or section among one or more simulation points or sections in which the design state information is stored at the time of rollback is described in the case of the force / release command syntax or PLI / VPI. By using the acc_set_value () function, the stored state information is rewritten to variables of the corresponding local design object constituting the design state information at the specific simulation point or interval. In particular, the method of resetting the design state information to the variables of the local design object without performing a separate simulation compilation at every rollback is performed by using the acc_set_value () of VPI / PLI from the file. The design state information values to be reset at the specific simulation time point or section are read and set in the variables of the corresponding local design objects, and the contents of the file having the design state information values become the simulation restart time point or section. This is possible by dynamically changing before performing each rollback to have the values of the variables of the corresponding local design objects at the specific simulation time point or interval) .A typical parallel input / output distributed parallel simulation is already well known. This also adds It is not difficult to generate the additional code in an automated manner so as to perform the function (for specific examples, see FIGS. 16, 17, 18, and 19, and the structural configuration of the additional code for performing such a function is shown in FIG. 8, the mock code is illustrated in FIG. 27). In other words, each of the local design objects executed in different local simulators in a distributed parallel simulation environment is first used in s-DCP due to the additional code added for the distributed processing parallel execution method (defined later) of the present patent. Using the expected inputs, the local design objects are independently simulated with each of the local simulators to obtain the output values of each of the local design objects, and each of these actual outputs is the expected outputs obtained from s-DCP. If these comparisons match, the comparison and synchronization between the local simulators can be completely or completely omitted, and each local simulation time proceeded forward (this approach is called Expected I / O-Run and is further described below. Greatly speeding up the simulation by This will be possible. If these comparisons do not match when compared to the expected outputs of the s-DCP (this is called the expected output / actual output discrepancy point), then only in this case can the distributed parallel simulation be performed while communicating and synchronizing between the local simulators. do. Also, it switches to the actual I / O-run method that performs communication and synchronization process between local simulators once. (This transition point is referred to as the actual I / O-run application point in the future. The point in time is generally the point that is later in time than the expected output / actual output mismatch of each of the local simulations running the distributed parallel simulation, i.e., the point in time that is in the past in time-t_lock or later in time than this t_lock. It can be t_advance_lock at any point in time, but to optimize simulation performance, setting the actual I / O application time point to t_lock can optimize the performance of the simulation, so each local simulation is a predicted I / O-run simulation. In case of expected output / actual output mismatch in progress Stops running the predicted I / O-run simulation and sends all the other local simulations their own predicted output / actual output inconsistency so that all other local simulations know their expected output / actual output mismatch. In addition, each local simulation can be rolled back to the t_lock time or t_advance_lock time, and the state information of one or more local design objects performed by local simulation or local simulation is periodically or non-periodized at the time t_lock or more than one t_advance_lock. Actual inputs that occur during the actual simulation process (even though it is necessary to save them periodically, so that the storage occurs when certain conditions are set before execution) (these inputs are used by distributed parallel simulation -Run room Compares the expected inputs from s-DCP with the expected outputs from s-DCP or the expected outputs from s-DCP. (For the sake of efficiency, it is also possible to compare the expected value-the expected output or the expected input-with the same abstraction level between the actual value-the actual output or the actual input-generated in the actual simulation process. Modules that perform the function of matching the abstraction level of actual values are called adapters or transactors. For example, in distributed parallel simulation in RTL, the comparison between expected values and actual values is possible not only by comparing the abstraction level of the actual value to the ca-transaction, which is the same level of abstraction as the expected value, but also the expected value of the RTL abstraction level. Fields and ca-transaction levels can be compared to the same timed-transaction abstraction level), a certain number of times (which can be set as input prior to running the simulation, or can be changed adaptively during the simulation process). From this point forward, this comparison (hereafter referred to as the actual I / O release point) releases the local simulators again in the I / O method to reduce communication overhead and synchronization overhead. Remove it again and run the simulation (in this case the distributed parallel simulation Each of the local simulations in this series proceeds very quickly, allowing communication and synchronization with other local simulations to be performed independently, in contrast to the actual I / O method described above. Each of the local simulations can be referred to as a predictive I / O-run method by completely skipping communication and synchronization with other local simulations and proceeding independently. The performance of distributed parallel simulation can be greatly improved by repeating the process of real-time I / O-run simulation. Input / output information for one or more design objects in the DUV and TB, or a simulation model including all of the DUVs and TBs having a higher level of abstraction than the DUVs and TBs, or the entire DUT and TBs optimized to be performed quickly. The model is specific examples of s-DCP. In addition, in distributed parallel simulations, the design objects that are part of the design (part of the design performed by the local simulator, ie the local design object), which are divided to be performed in each local simulation, exist in the DUV (for example, in the case of Verilog designs). Objects are modules, each of which is designed to run on each of the local simulations if they do not match the boundary of the design objects, in the case of VHDL designs, and the sc_modules, in the case of SystemC designs. The input and output information of each part of (i.e., parts of the overall design that exist in each local simulator for distributed parallel simulation) becomes s-DCP.

위에서 설명된 s-DCP를 이용한 통신 오버헤드 및 동기 오버헤드를 최소화시키는 분산병렬 시뮬레이션 과정에서 한가지 더 생각하여야 할 것은 상기 예상출력/실제출력 불일치시점들이 각 로컬시뮬레이터에서 수행되는 각 로컬설계객체마다 다를 수 있다는 것이다. 이와 같은 경우에는 적어도 이 2 이상의 예상출력/실제출력 불일치시점들 중에서 시뮬레이션 시간 상에서 제일 과거시점인 시점 t_e에서부터 모든 로컬시뮬레이터들을 상기 통신 및 동기화 과정을 거치는 실제입출력이용-런 방식으로 수행하여야 한다. 이를 위해서 상기 제일 과거시점 t_e보다 더 진행된 모든 시뮬레이션들은 다시 상기 시점 t_e로 롤백(roll-back)시켜야 할 필요성이 있다 (구체적 예를 든다면 4개의 설계객체들이 통신 밑 동기를 진행하지 않고 각각 진행되어진 시뮬레이션 시간이 각각 설계객체1 = 1,000,000ns, 설계객체2 = 1,000,010ns, 설계객체3 = 1,000,020ns, 설계객체4 = 1,000,030ns인 경우에 t_e가 1,000,000ns이면 설계객체2, 설계객체3, 설계객체4들도 모두 1,000,000ns으로 롤백시키고, 모든 설 계객체들을 대상으로 하는 분산병렬 시뮬레이션을 적어도 실제입출력이용-런 방식으로 실제입출력이용-런 적용시점인 1,000,000ns에서부터 다시 통신 및 동기화를 진행하지 않아도 되는 다음의 실제입출력이용-런 해제시점까지 진행한다). 이와 같은 롤백을 위해서는 시뮬레이션 저장 및 재출발(save & restart) 기능을 이용하면 되는데, 시뮬레이션 저장 및 재출발 방법은 시뮬레이션 상태(simulation state)를 시뮬레이션 과정에서 주기적으로 내지는 1 이상의 특정 시점에서 저장시켜서 이를 재로딩하여 재실행시키는 방법과 설계 상태(design state)(설계 상태는 해당 설계객체의 상태정보를 가르킴)를 시뮬레이션 과정에서 주기적으로 내지는 1 이상의 특정 시점 혹은 구간에서 저장시켜서 이를 재로딩하여 재실행시키는 방법 등이 있는데, 이에 대한 자세한 방법도 별도의 국내특허들(10-2005-116706, 10-2006-19738)에서 가시도(visibility)를 얻기 위하여 내지는 시뮬레이션을 신속하게 수행하기 위하여 사용한 방법을 적용하면 됨으로 본 특허에서는 이에 대한 자세한 설명은 지면 제약상 생략하기로 한다. 단, 상기 시뮬레이션 저장 및 재출발을 가능하게 하려면 시뮬레이션 수행 도중에 위에서 언급된 대로 주기적으로 내지는 1 이상의 특정 시점 혹은 구간에서 시뮬레이션 상태나 설계 상태를 저장하는 과정이 필요한데(이와 같은 과정을 체크포인트(checkpoint) 과정이라 칭하고, 이 과정을 통하여 체크포인트를 생성한다고 칭함), 상기 1 이상의 특정 시뮬레이션 시점 혹은 구간에서 시뮬레이션의 상태나 설계 상태를 저장하여서 추후에 상기 1 이상의 특정 시뮬레이션 시점 혹은 구간에서부터 재-시뮬레이션(re-simulation)을 수행할 수 있게한 상기 1 이상의 특정 시뮬레이션 시점 혹은 구간 각각을 체크포인트라 칭한다. 따라서 상기 설명된 롤백이 수행되어져야 하는 경우에 실제 롤백이 이루어지는 시점은 예상출력과 실제출력의 불일치가 발생한 시점들 중에서 제일 시간적으로 과거인 불일치 시점 t_est이 아니고 이 t_est과 동일하거나 내지는 시간적으로 과거 방향으로 t_est와 제일 가까운 특정 체크포인트가 롤백 대상 시점이 된다.One more thing to consider in the distributed parallel simulation process that minimizes the communication overhead and synchronization overhead using s-DCP described above is that the expected output / actual output mismatches are different for each local design object performed in each local simulator. Can be. In such a case, all local simulators should be performed in the actual I / O method through the communication and synchronization process from the time t_e, which is the past point in the simulation time, among at least two expected output / actual output mismatch points. To this end, all simulations that are advanced more than the most recent point in time t_e need to be rolled back to the point in time t_e (specifically, four design objects are run without synchronization under communication). If t_e is 1,000,000ns when the simulation time is design object 1 = 1,000,000ns, design object 2 = 1,000,010ns, design object 3 = 1,000,020ns, and design object 4 = 1,000,030ns, respectively, design object 2, design object 3, design object 4 Roll back to 1,000,000 ns, and then perform parallel and distributed simulations on all design objects, starting at 1,000,000 ns, at the point of real I / O-run, at least in real I / O-run. Proceed to the actual I / O use-run release). To save such a rollback, a simulation save and restart function is used. The simulation save and restart method stores a simulation state at a specific time point or at one or more points in a simulation process and reloads it. There is a method of re-execution, and a design state (design state refers to state information of the corresponding design object) is periodically stored in the simulation process or at one or more specific time points or sections, and reloaded and reexecuted. Detailed methods for this may also be applied to methods used to obtain visibility or to quickly perform simulations in separate domestic patents (10-2005-116706 and 10-2006-19738). Detailed descriptions will be omitted due to space limitations. However, in order to allow the simulation to be stored and restarted, it is necessary to store the simulation state or the design state periodically or at one or more specific time points or intervals as mentioned above during the simulation (this process is called a checkpoint process). In this case, a checkpoint is generated through this process), and the state or design state of the simulation is stored at the one or more specific simulation viewpoints or sections, and later re-simulated from the one or more specific simulation viewpoints or sections. Each of the one or more specific simulation viewpoints or intervals that allow the simulation to be performed is called a checkpoint. Therefore, when the rollback described above is to be performed, the actual rollback time is not the inconsistent time t_est, which is the past in time, among the time points at which the discrepancy between the expected output and the actual output has occurred, and is equal to or in time in the past. The specific checkpoint closest to t_est is the rollback target.

본 특허에서의 분산처리적병렬수행 방식의 통신 오버헤드와 동기 오버헤드의 최소화를 위하여 사용되는 예상입력/예상출력은 비트/비트벡터 타입의 시그널 단위로 표현될 수도 있고, 혹은 상위 추상화 데이터구조(예로, 레코드 타입 등) 타입의 트란젝션 단위로 표현될 수도 있다. 트란젝션 단위의 경우에는 매사이클의 트란젝션일 수도 있고, 여러사이클의 트란젝션일 수도 있다. 따라서 예상입력과 실제입력의 비교 내지는 예상출력과 실제출력의 비교는 모델의 추상화 수준에 따라서 시그널 단위에서 수행되어지거나, 내지는 매사이클의 트란젝션 단위에서 수행되어지거나, 내지는 여러사이클의 트란젝션 단위 등 여러 추상화수준에서 수행되어질 수 있다. 따라서, 본 특허에서 예상출력과 실제출력의 비교 내지는 예상입력과 실제입력의 비교를 이야기하는 경우에는 상기의 비교들이 모델의 추상화 수준에 따라서 시그널 단위에서 수행되어지거나, 내지는 매사이클의 트란젝션 단위에서 수행되어지거나, 내지는 여러사이클의 트란젝션 단위에서 수행되어지거나, 내지는 시간개념이 없는 트란젝션(un-timed transaction) 단위에서 수행되어지는 것들 모두 포함하는 것이다.In this patent, the expected input / expected output used for minimizing the communication overhead and the synchronization overhead of the distributed parallel processing method may be expressed in a signal unit of bit / bitvector type, or a higher abstraction data structure ( For example, it may be expressed in a transaction unit of a type). In the case of a transaction unit, it may be a transaction of every cycle or a transaction of several cycles. Therefore, the comparison between the predicted input and the actual input or the comparison between the predicted output and the actual output is performed in the signal unit, in the transaction unit of every cycle, or in the transaction unit of several cycles according to the level of abstraction of the model. Can be performed at multiple levels of abstraction. Therefore, in the present patent, when the comparison between the expected output and the actual output or the comparison between the expected input and the actual input, the above comparisons are performed in the signal unit according to the abstraction level of the model, or in the transaction unit of each cycle. It includes all that is performed, or performed in a transaction unit of several cycles, or performed in an un-timed transaction unit.

위에서 설명한 본 특허에서의 분산병렬 시뮬레이션 방법을 본 특허에서는 s-DCP를 이용한 분산적병렬수행(Distributed Parallel Execution) 방식 내지는 줄여서 분산 처리적병렬수행 방식 내지는 분산처리적병렬시뮬레이션(즉 분산처리적병렬수행 방식 내지는 분산처리적병렬시뮬레이션이란 통상적인 분산병렬 시뮬레이션 방식이 아니라 s-DCP를 활용한 예상입력과 예상출력을 사용하여 분산시뮬레이션의 통신 오버헤드와 동기 오버헤드를 최소화시키는 본 특허에서 제안되어지는 분산병렬 시뮬레이션 방식만을 말함)이라고 칭하기로 한다. 이와 같은 s-DCP를 이용한 분산적병렬수행 방식이 최대한의 성능을 내기 위해서는 실제입출력이용-런 해제의 총 횟수와 각각의 실제입출력이용-런 적용시점부터 실제입출력이용-런 해제시점까지의 전체 시간(즉, 실제입출력이용-런 방식으로 시뮬레이션이 수행되는 전체 시간)을 최소한으로 하는 것이 매우 중요하다. 이를 위해서는 각 로컬시뮬레이션 수행의 예상입력과 예상출력을 구하는데 사용되어지는 s-DCP의 정확도가 매우 중요하다. 즉 s-DCP의 정확도가 높을수록 시뮬레이션 전체 구간에서 실제입출력이용-런 방식으로 수행되는 구간은 최소한으로 할 수 있고 대부분의 구간을 예상입출력이용-런 방식으로 수행할 수 있음으로 인하여 분산병렬 시뮬레이션의 성능을 결정적으로 제약하는 요소인 통신 오버헤드와 동기 오버헤드를 크게 줄일 수 있기 때문에 분산병렬 시뮬레이션의 성능을 크게 높일 수 있다. 그러나 s-DCP의 정확도뿐만 아니라 s-DCP를 획득하는데 필요한 시간, 즉 s-DCP 획득시간도 매우 중요하다. 왜냐하면, s-DCP의 정확도가 제일 높은 것은 똑같은 추상화 수준의 모델(즉, 분산병렬 시뮬레이션 대상이 되는 모델)로 시뮬레이션하여서 로컬설계객체를 위한 예상입력과 예상출력 내지는 예상입력 내지는 예상출력을 얻는 것이 제일 정확하지만, 이 경우에는 이를 획득하는데 소요되는 시간이 일반적으로 매우 길어짐으로 대부분의 경우에는 많은 문 제가 있다. 그러나, 최소한 똑같은 추상화 수준의 모델로 시뮬레이션하면서 s-DCP를 얻는 이와 같은 방법이 매우 효율적인 경우가 있는데, 리그레션 테스트(regression test)를 수행하는 경우 내지는 설계가 매우 국지적으로 변경된 경우 내지는 일반적으로 특정 테스트벤치를 사용한 시뮬레이션은 전체 검증 과정에서 오직 한번만 수행되지는 않음으로 먼저 앞서서 수행된 1 이상의 시뮬레이션 과정에서 기 획득된 s-DCP를 활용할 수 있는 경우들이 그와 같은 경우이다. 즉, 역호환성(back-ward compatibility)을 조사하는 리그레션 테스트에서는 대부분의 테스트들이 오류 발견 없이 패스되어지는데 이와 같은 리그레션 테스트 과정을 앞서서 같은 수준의 추상화 수준의 설계객체를 이용하여서 시뮬레이션하면서 얻어진 s-DCP를 활용하여서 본 특허에서의 s-DCP를 이용한 분산적병렬수행 방식 내지는 분산적병렬수행/단일수행 혼용방식(추후에 설명됨)으로 시뮬레이션을 수행하면 이 얻어진 s-DCP의 정확도가 매우 높음으로 대부분의 테스트에서 상기의 실제입출력이용-런 해제의 총 횟수와 각각의 실제입출력이용-런 해제시점부터 실제입출력이용-런 적용시점까지의 전체 시간이 최소한으로 할 수 있음으로 리그레션 테스트를 분산병렬 시뮬레이션 방식으로 시뮬레이션의 성능을 최대한으로 하여 매우 신속하게 수행하는 것이 가능하다. 디버깅이나 스펙 변경 등으로 인하여 설계가 국지적으로만 변경된 경우에도 설계가 변경되기 이전의 시뮬레이션 과정에서 수집한 s-DCP를 이용하여서 분산적병렬수행 방식 내지는 분산적병렬수행/단일수행 혼용방식(추후에 설명됨) 내지는 인크리멘탈 시뮬레이션을 활용한 분산처리적병렬 방식(추후에 설명됨)으로 시뮬레이션을 수행하게 되면 시뮬레이션의 성능을 최대한으로 하여 매우 신속하게 수 행하는 것이 가능하다.In this patent, the distributed parallel simulation method described in this patent is distributed distributed execution method using s-DCP or reduced distributed parallel execution method or distributed processing parallel simulation (ie distributed processing parallel execution). The distributed or parallel processing parallel simulation is not the conventional distributed parallel simulation method, but the distributed proposed in this patent that minimizes the communication overhead and the synchronization overhead of the distributed simulation by using the expected input and the expected output using s-DCP. Only parallel simulation method). In order to achieve the maximum performance of the distributed parallel execution method using the s-DCP, the total number of actual I / O releases and the total time from the actual I / O-run application to the time of the actual I / O-run release are required. It is very important to minimize (i.e., the total time the simulation is performed in a real-world I / O fashion). For this purpose, the accuracy of the s-DCP used to obtain the expected input and expected output of each local simulation is very important. In other words, the higher the accuracy of s-DCP, the smaller the interval that is performed by the actual I / O method in the entire section of the simulation, and most of the sections can be performed by the expected I / O-run method. Communication overhead and synchronization overhead, which are critical constraining factors, can be greatly reduced, which greatly improves the performance of distributed parallel simulation. However, not only the accuracy of the s-DCP but also the time required to acquire the s-DCP, that is, the s-DCP acquisition time, is also very important. Because the highest accuracy of s-DCP is simulated with the same level of abstraction model (i.e., the model to be distributed parallel simulation) to obtain the expected input and the expected output or the expected input or the expected output for the local design object. Although accurate, in this case the time it takes to acquire it is usually very long, and in most cases there are many problems. However, there are some cases where this method of obtaining s-DCP while simulating at least the same level of abstraction is very efficient, for example when performing a regression test or when the design has changed very locally, or in general, for a specific test. Since the simulation using the bench is not performed only once in the entire verification process, it is the case that the previously obtained s-DCP can be used in the one or more simulation processes performed earlier. In other words, in regression tests that investigate back-ward compatibility, most of the tests pass without error detection, and s obtained by simulating the regression test process using the same level of abstraction level design object. The accuracy of the obtained s-DCP is very high when the simulation is performed using a distributed parallel execution method using a s-DCP or a distributed parallel execution / single execution hybrid method (described later) using -DCP. In most tests, the regression test is dispersed by minimizing the total number of actual I / O releases and the total time from the actual I / O-run release to the time of applying the I / O run. The parallel simulation approach allows you to maximize the performance of your simulation and perform it very quickly. It is. Even if the design is only changed locally due to debugging or specification change, the distributed parallel execution method or the distributed parallel execution / single combination method (using s-DCP collected in the simulation process before the design change) If the simulation is carried out in a distributed processing parallel method (described later) using incremental simulation (explained later), the performance of the simulation can be maximized and performed very quickly.

뿐만 아니라 본 특허에서의 분산처리적병렬수행 방식에 의한 분산병렬 시뮬레이션을 수행 도중에 1 이상의 실제입출력이용-런 적용시점 t_lockstep부터 실제입출력이용-런 방식에 의한 분산병렬 시뮬레이션을 수행하는 것이 바람직스럽지 않은 경우(예로, 시뮬레이터의 라이센스 수가 많지 않아서 장시간 특정 시뮬레이션 태스크에 많은 시뮬레이터 라이센스를 할당할 수 없는 경우, 내지는 실제입출력이용-런 방식의 분산병렬 시뮬레이션을 수행하는 경우에 기대되는 시뮬레이션 성능 향상이 크지 않은 경우, 등)에는 상기 실제입출력이용-런 방식의 분산병렬 시뮬레이션을 수행할 수 있는 시점 t_lockstep에서부터 상기 실제입출력이용-런 방식의 분산병렬 시뮬레이션을 수행하는 대신 단일 시뮬레이터를 사용하여서 DUV에 대한 단일 시뮬레이션을 수행(이 경우에 TB에 대한 시뮬레이션은 상기 단일 시뮬레이터로 같이 시뮬레이션할 수도 있고, TB가 DUV를 수행하는 시뮬레이터와 다른 시뮬레이터(예로 HVL 시뮬레이터)로 수행하여야 하는 경우에는 TB는 다른 시뮬레이터로 연동시뮬레이션할 수도 있다. 이에 관한 좀 더 자세한 설명은 추후에 함)하는 것도 가능하다. In addition, it is not preferable to perform distributed parallel simulation by the actual I / O-run method from t_lockstep at the time of applying at least one actual I / O during the distributed parallel simulation by the distributed processing parallel execution method in the present patent. (For example, if you cannot assign many simulator licenses to a specific simulation task for a long time because there are not many licenses of the simulator, or if you are not expecting a significant improvement in simulation performance when performing distributed I / O-run distributed parallel simulation, Etc.) Instead of performing the distributed I / O distributed parallel simulation from the time t_lockstep where the distributed I / O distributed parallel simulation can be performed, a single simulation is performed for the DUV using a single simulator ( This In this case, the simulation for TB may be simulated with the single simulator or TB may be co-simulated with another simulator when the TB needs to be performed with a simulator that performs DUV and another simulator (for example, an HVL simulator). More detailed explanations are possible later).

즉 이와 같은 수행에서는 전체 시뮬레이션 시간의 일정기간 동안(예로서는, 시뮬레이션 시점 0에서부터 첫번째 예상출력/실제출력 불일치 시점까지)에서는 본 특허에서의 분산처리적병렬수행 방식을 채용한 분산병렬 시뮬레이션을 수행함으로서 로컬시뮬레이터들간의 동기 오버헤드와 통신 오버헤드를 최소화시키면서 분산병렬 시뮬레이션을 신속하게 수행하고 분산병렬 시뮬레이션의 끝에서 생성할 수 있는 DUV의 t-DCP(DUV의 t-DCP는 로컬시뮬레이션에서 수행되는 DUV내의 설계객체들의 t-DCP들 을 모두 합치면 됨)를 생성하고, 이 생성된 DUV의 t-DCP를 이용하여서 DUV에 대한 시뮬레이션을 상기 실제입출력이용-런 적용시점에서부터는 단일 시뮬레이션으로 수행시키는 것도 가능하다 (즉 이 방식에서 실제적으로는 상기 실제입출력이용-런 적용시점에서부터는 분산병렬 시뮬레이션으로 진행하지 않고 단일 시뮬레이션이 진행됨). 이와 같은 본 특허에서의 방식을 앞으로는 "분산처리적병렬수행/단일수행 혼용방식"이라고 칭하기로 한다. 즉, 분산처리적병렬수행/단일수행 혼용방식에서는 s-DCP와 t-DCP를 모두 활용하게 된다 (단일 시뮬레이션을 위해서는 별도의 시뮬레이션 컴파일이 필요함).In other words, in such a performance, a distributed parallel simulation using the distributed parallel processing method according to the present invention is performed for a certain period of the entire simulation time (for example, from the simulation time point 0 to the first expected output / actual output mismatch time point). DUV's t-DCP (DUV's t-DCP is a DUV that can be performed in local simulations that can be performed quickly and at the end of distributed parallel simulations while minimizing synchronization overhead and communication overhead between simulators. T-DCPs of design objects can be combined), and the generated DUV's t-DCP can be used to perform the simulation for the DUV as a single simulation from the point of application of the actual I / O. (I.e. from this point in time the actual I / O application run actually Does not proceed to distributed parallel simulation, but a single simulation). Such a scheme in the present patent will be referred to as a "distributed processing parallel / single mixed mode" from now on. In other words, both s-DCP and t-DCP are used in a distributed parallel processing / single performance hybrid method (a separate simulation compilation is required for a single simulation).

뿐만 아니라, 또 다른 변형으로는, 상기 실제입출력이용-런 적용시점에서부터는 앞서의 분산처리적병렬수행 방식에서와는 다른 구성으로서 분산처리적병렬수행을 진행하는 것도 가능하다. 예로, DUV내에 4개의 설계객체 B0, B1, B2, B3가 존재하고 초기의 분산처리적병렬수행에서는 4대의 컴퓨터에서 수행되는 4개의 시뮬레이터 각각에 B0, B1, B2, B3를 할당하여서 실제입출력이용-런 적용시점까지 수행하고, 이 시점 이후부터는 2개의 시뮬레이터만을 사용하여서 첫번째 시뮬레이터에는 B0만을 할당하고(예로, B0는 TB 설계객체임) 두번째 시뮬레이터에는 B1과 B2와 B3를 할당하여서 두 시뮬레이터만으로 실제입출력이용-런 방식의 분산병렬 시뮬레이션을 진행하고, 나머지 2개의 시뮬레이터들은 다른 시뮬레이션 태스크를 수행할 수 있게 하는 것도 가능한데 (이와 같은 경우에는 특정 로컬시뮬레이션에 대하여 시뮬레이션 컴파일이 새롭게 필요함. 예로 위 예에서는 B0에 대한 로컬시뮬레이션은 새로운 시뮬레이션 컴파일이 필요없이 계속적으로 시뮬레이션 진행이 가능하지만, B1과 B2 와 B3에 대한 로컬시뮬레이션은 새로운 시뮬레이션 컴파일이 필요함), 이와 같은 방식은 모두 본 특허에서의 분산처리적병렬수행 방식에 포함되는 것으로 정의한다.그러나, 상기와 같은 경우들 이외의 일반적 시뮬레이션 과정에서는 s-DCP가 시뮬레이션 모델이 아니고 동적정보인 경우에 s-DCP를 얻기 위하여 매우 긴 시뮬레이션의 시간이 필요한 동일한 추상화 수준에서의 시뮬레이션을 선수행하면서 얻는 것은 현실적으로 문제가 있다. 이와 같은 경우에는, 대신에 점진적 구체화 방식의 설계 과정에서 존재하는 추상화 상위수준에서의 모델을 s-DCP로 활용하거나 내지는 시뮬레이션이 빠르게 수행되어질 수 있도록 최적화되어진 DUT와 TB 전체 모델을 s-DCP로 활용하거나 내지는 상기 추상화 상위수준에서의 모델을 이용한 시뮬레이션에서 얻어지는 동적정보를 활용하여 s-DCP를 얻는 것이 효율적이다 (앞에서 이미 언급된 활용방법-3, 활용방법-4). 예를 든다면, 게이트수준에서의 타이밍시뮬레이션을 위해서는 각 로컬시뮬레이션에서 RTL 모델을 내지는 RTL/게이트수준 혼합 모델을 직접 s-DCP로 활용하거나, 혹은 시뮬레이션이 빠르게 수행되어지도록 최적화된 게이트수준의 모델을 직접 s-DCP로 활용하거나, 혹은 RTL 시뮬레이션 과정에서 얻어지는 동적정보를 s-DCP로 활용하거나 내지는 RTL/게이트수준 혼합 시뮬레이션 과정에서 얻어지는 동적정보를 s-DCP(예로, 1 이상의 RTL/게이트수준 혼합 모델들의 각 모델 내에 존재하는 게이트수준 설계객체의 입출력 정보를 상기 1 이상의 RTL/게이트수준 혼합 모델들 모두에 대하여 합한 것. 구체적 예로 앞에서 이미 설명된 GL 모델의 예 DUV(GL) = (B(1)_gl, B(2)_gl, B(3)_gl, B(4)_gl)로 구성되고 RTL 모델은 DUV(RTL) = (B(1)_rtl, B(2)_rtl, B(3)_rtl, B(4)_rtl)으로 구성되어 있는 경우 에, 4개의 RTL/GL 혼합 모델들을 DUV(MIXED)_4 = (B(1)_rtl, B(2)_rtl, B(3)_rtl, B(4)_gl), DUV(MIXED)_3 = (B(1)_rtl, B(2)_rtl, B(3)_gl, B(4)_rtl), MODEL_DUV(MIXED)_2 = (B(1)_rtl, B(2)_gl, B(3)_rtl, B(4)_rtl), MODEL_DUV(MIXED)_1 = (B(1)_gl, B(2)_rtl, B(3)_rtl, B(4)_rtl)의 4 모델들로 구성하고, 이들 4개의 ESL/RTL 혼합 모델들 중 모델 DUV(MIXED)_1을 이용한 시뮬레이션에서는 B(1)_gl의 입출력 정보, 모델 DUV(MIXED)_2을 이용한 시뮬레이션에서는 B(2)_gl의 입출력 정보, DUV(MIXED)_3을 이용한 시뮬레이션에서는 B(3)_gl의 입출력 정보, DUV(MIXED)_4를 이용한 시뮬레이션에서는 B(4)_gl의 입출력 정보를 얻고 이들 4개의 입출력 정보들을 모두 합친 것이 s-DCP)로 활용하고, RTL 시뮬레이션을 위해서는 ESL 모델 내지는 ESL/RTL 모델을 s-DCP로 활용하거나, 혹은 시뮬레이션이 빠르게 수행되어지도록 최적화한 RTL 모델을 s-DCP로 활용하거나, 혹은 ESL 시뮬레이션 과정에서 얻어지는 동적정보를 s-DCP로 활용하거나 내지는 ESL/RTL 혼합 시뮬레이션 과정에서 얻어지는 동적정보를 s-DCP(예로, 1 이상의 ESL/RTL 혼합 모델들의 각 모델 내에 존재하는 RTL 설계객체의 입출력 정보를 상기 1 이상의 ESL/RTL 혼합 모델들 모두에 대하여 합한 것. 구체적 예로 앞에서 이미 설명된 RTL 모델의 예 DUV(RTL) = (B(1)_rtl, B(2)_rtl, B(3)_rtl, B(4)_rtl)로 구성되고 ESL 모델은 DUV(ESL) = (B(1)_tlm, B(2)_tlm, B(3)_tlm, B(4)_tlm)으로 구성되어 있는 경우에, 4개의 ESL/RTL 혼합 모델들을 DUV(MIXED)_4 = (B(1)_tlm, B(2)_tlm, B(3)_tlm, B(4)_rtl), DUV(MIXED)_3 = (B(1)_tlm, B(2)_tlm, B(3)_rtl, B(4)_tlm), MODEL_DUV(MIXED)_2 = (B(1)_tlm, B(2)_rtl, B(3)_tlm, B(4)_tlm), MODEL_DUV(MIXED)_1 = (B(1)_rtl, B(2)_tlm, B(3)_tlm, B(4)_tlm)의 4 모델들로 구성하고, 이들 4개의 ESL/RTL 혼합 모델들 중 모델 DUV(MIXED)_1을 이용한 시뮬레이션에서는 B(1)_rtl의 입출력 정보, 모델 DUV(MIXED)_2을 이용한 시뮬레이션에서는 B(2)_rtl의 입출력 정보, DUV(MIXED)_3을 이용한 시뮬레이션에서는 B(3)_rtl의 입출력 정보, DUV(MIXED)_4를 이용한 시뮬레이션에서는 B(4)_rtl의 입출력 정보를 얻고 이들 4개의 입출력 정보들을 모두 합친것이 s-DCP)로 활용하고, ESL 시뮬레이션을 위해서는 현 ESL 수준 모델보다 상위수준의 트란젝션 모델을 s-DCP로 활용하거나, 혹은 시뮬레이션이 빠르게 수행되도록 최적화된 현 ESL 수준의 트란젝션 모델을 s-DCP로 활용하거나, 혹은 현 ESL 수준보다 상위수준의 트란젝션 모델을 이용한 ESL 시뮬레이션 과정에서 얻어지는 동적정보를 s-DCP로 활용하거나 내지는 현 ESL 수준보다 상위수준의 트란젝션 모델(TLM 모델)과 현 ESL 수준과 같은 트란젝션수준 모델(TLM 모델)을 혼용한 혼합 시뮬레이션 과정에서 얻어지는 동적정보를 s-DCP(예로, 1 이상의 timed-트란젝션/ca-트란젝션 혼합 모델들의 각 모델 내에 존재하는 ca-트란젝션 수준의 설계객체의 출력 정보를 상기 1 이상의 timed-트란젝션/ca-트란젝션 혼합 모델에 대하여 합한 것. 구체적 예로 앞에서 이미 설명된 ca-tlm 수준의 ESL 모델의 예 DUV(ca-tlm) = (B(1)_ca-tlm, B(2)_ca-tlm, B(3)_ca-tlm, B(4)_ca-tlm)로 구성되고 timed-tlm 수준의 ESL 모델 DUV(timed-tlm) = (B(1)_timed-tlm, B(2)_timed-tlm, B(3)_timed-tlm, B(4)_timed-tlm)으로 구성되어 있는 경우에, 4개의 timed-tlm/ca-tlm 혼합 모델들을 DUV(MIXED)_4 = (B(1)_timed-tlm, B(2)_timed-tlm, B(3)_timed-tlm, B(4)_ca-tlm), DUV(MIXED)_3 = (B(1)_timed-tlm, B(2)_timed-tlm, B(3)_ca-tlm, B(4)_timed-tlm), MODEL_DUV(MIXED)_2 = (B(1)_timed-tlm, B(2)_ca-tlm, B(3)_timed-tlm, B(4)_timed-tlm), MODEL_DUV(MIXED)_1 = (B(1)_ca-tlm, B(2)_timed-tlm, B(3)_timed-tlm, B(4)_timed-tlm)의 4 모델들로 구성하고, 이들 4개의 timed-트란젝션/ca-트란젝션 혼합 모델들 중 모델 DUV(MIXED)_1을 이용한 시뮬레이션에서는 B(1)_ca-tlm의 출력 정보, 모델 DUV(MIXED)_2을 이용한 시뮬레이션에서는 B(2)_ca-tlm의 출력 정보, DUV(MIXED)_3을 이용한 시뮬레이션에서는 B(3)_ca-tlm의 출력 정보, DUV(MIXED)_4를 이용한 시뮬레이션에서는 B(4)_ca-tlm의 출력 정보를 얻고 이들 4개의 출력 정보들을 모두 합친것이 s-DCP. 또 다른 예로, 1 이상의 ca-트란젝션/RTL 혼합 모델들의 각 모델 내에 존재하는 RTL 수준의 설계객체의 출력 정보를 상기 1 이상의 ca-트란젝션/RTL 혼합 모델에 대하여 합한 것. 구체적 예로 앞에서 이미 설명된 ca-tlm 수준의 ESL 모델의 예 DUV(ca-tlm) = (B(1)_ca-tlm, B(2)_ca-tlm, B(3)_ca-tlm, B(4)_ca-tlm)로 구성되고 RTL 모델 DUV(rtl) = (B(1)_rtl, B(2)_rtl, B(3)_rtl, B(4)_rtl)으로 구성되어 있는 경우에, 4개의 ca-tlm/RTL 혼합 모델들을 DUV(MIXED)_4 = (B(1)_ca-tlm, B(2)_ca-tlm, B(3)_ca-tlm, B(4)_rtl), DUV(MIXED)_3 = (B(1)_ca-tlm, B(2)_ca-tlm, B(3)_rtl, B(4)_ca-tlm), MODEL_DUV(MIXED)_2 = (B(1)_ca-tlm, B(2)_rtl, B(3)_ca-tlm, B(4)_ca-tlm), MODEL_DUV(MIXED)_1 = (B(1)_rtl, B(2)_ca-tlm, B(3)_ca-tlm, B(4)_ca-tlm)의 4 모델들로 구성하고, 이들 4개의 ca-트란젝션/RTL 혼합 모델들 중 모델 DUV(MIXED)_1을 이용한 시뮬레이션에서는 B(1)_rtl의 출력 정보, 모델 DUV(MIXED)_2을 이용한 시뮬레이션에서는 B(2)_rtl의 출력 정보, DUV(MIXED)_3을 이용한 시뮬레이션에서는 B(3)_rtl의 출력 정보, DUV(MIXED)_4를 이용한 시뮬레이션에서는 B(4)_rtl의 출력 정보를 얻고 이들 4개의 출력 정보들을 모두 합친것이 s-DCP. 또 다른 예로, 1 이상의 RTL/GL 혼합 모델들의 각 모델 내에 존재하는 GL 수준의 설계객체의 출력 정보를 상기 1 이상의 RTL/GL 혼합 모델에 대하여 합한 것. 구체적 예로 앞에서 이미 설명된 RTL 모델의 예 DUV(rtl) = (B(1)_rtl, B(2)_rtl, B(3)_rtl, B(4)_rtl)로 구성되고 GL 모델 DUV(rtl) = (B(1)_gl, B(2)_gl, B(3)_gl, B(4)_gl)으로 구성되어 있는 경우에, 4개의 RTL/GL 혼합 모델들을 DUV(MIXED)_4 = (B(1)_rtl, B(2)_rtl, B(3)_rtl, B(4)_gl), DUV(MIXED)_3 = (B(1)_rtl, B(2)_rtl, B(3)_gl, B(4)_rtl), MODEL_DUV(MIXED)_2 = (B(1)_rtl, B(2)_gl, B(3)_rtl, B(4)_rtl), MODEL_DUV(MIXED)_1 = (B(1)_gl, B(2)_rtl, B(3)_rtl, B(4)_rtl)의 4 모델들로 구성하고, 이들 4개의 RTL/GL 혼합 모델들 중 모델 DUV(MIXED)_1을 이용한 시뮬레이션에서는 B(1)_gl의 출력 정보, 모델 DUV(MIXED)_2을 이용한 시뮬레이션에서는 B(2)_gl의 출력 정보, DUV(MIXED)_3을 이용한 시뮬레이션에서는 B(3)_gl의 출력 정보, DUV(MIXED)_4를 이용한 시뮬레이션에서는 B(4)_gl의 출력 정보를 얻고 이들 4개의 출력 정보들을 모두 합친것이 s-DCP)로 활용하는 것이다. 이와 같이 추상화 상위수준에서의 모델을 s-DCP로 활용하거나, 혹은 시뮬레이션이 빠르게 수행되도록 최적화된 동일한 추상화수준 모델을 s-DCP로 활용하거나, 혹은 상기 추상화 상위수준에서의 모델을 이용한 시뮬레이션에서 얻어지는 동적정보를 s-DCP로 활용하거나, 혹은 상기 시뮬레이션이 빠르게 수행되도록 최적화된 동일 추상화수준의 모델을 이 용한 시뮬레이션에서 얻어지는 동적정보를 s-DCP로 활용하게 되면, 시뮬레이션의 속도가 매우 빠름으로 예상입력과 예상출력을 얻는 과정이 매우 신속하게 이루어 질 수 있다. 따라서 이와 같이 얻어진 s-DCP의 정확도가 만족할 수준이 되는 것이 문제인데, 논리적으로 점진적 구체화 과정을 통하여 구체화되어지는 추상화 상위수준 모델과 하위수준 모델 간에는 모델 일관성이 존재하게 됨으로서 추상화 상위수준의 모델을 수행하여 얻어진 s-DCP의 정확도는 매우 높다고 생각할 수 있다. In addition, as another variation, it is also possible to perform distributed parallel processing as a configuration different from the above distributed parallel processing method from the actual I / O application-run point. For example, there are four design objects B0, B1, B2, and B3 in the DUV. In the initial distributed processing, B0, B1, B2, and B3 are assigned to each of four simulators running on four computers. Run up to the point of application, and from this point on, use only two simulators, assigning only B0 to the first simulator (for example, B0 is a TB design object), and assigning B1, B2, and B3 to the second simulator. It is also possible to perform I / O-run distributed parallel simulation and to allow the other two simulators to perform different simulation tasks (in this case, a new simulation compilation is required for a specific local simulation. Local simulation for continuous simulation without the need for new simulation compilation This process is possible, but local simulations for B1, B2, and B3 require new simulation compilation), and all of these methods are defined as being included in the distributed parallel processing method in this patent. In the general simulation process other than the cases, when s-DCP is not a simulation model but dynamic information, it is practically problematic to obtain a simulation at the same level of abstraction that requires a very long simulation time to obtain s-DCP. . In this case, instead, the s-DCP model can be used as the s-DCP, or the entire DUT and TB model optimized for fast simulation can be used as the s-DCP. It is efficient to obtain s-DCP using dynamic information obtained from the simulation using the model at the upper level of the abstraction or the above-mentioned method (Utilization Method 3 and Application Method 4 mentioned above). For example, for gate-level timing simulation, use an RTL model or an RTL / gate-level mixed model directly with s-DCP in each local simulation, or use a gate-level model optimized for fast simulation. S-DCP (e.g., one or more RTL / gate level mixed models) by using s-DCP directly, or using dynamic information obtained from the RTL simulation process as the s-DCP or RTL / gate level mixed simulation. Sum of the input and output information of the gate-level design object present in each model of each of the above 1 or more RTL / gate-level mixed models As a specific example, the example of the GL model previously described DUV (GL) = (B (1) _gl, B (2) _gl, B (3) _gl, B (4) _gl), and the RTL model consists of DUV (RTL) = (B (1) _rtl, B (2) _rtl, B (3) _rtl, 4 if B (4) _rtl) RTL / GL mixed models of DUV (MIXED) _4 = (B (1) _rtl, B (2) _rtl, B (3) _rtl, B (4) _gl), DUV (MIXED) _3 = (B (1) _rtl, B (2) _rtl, B (3) _gl, B (4) _rtl), MODEL_DUV (MIXED) _2 = (B (1) _rtl, B (2) _gl, B (3) _rtl, B (4) _rtl), MODEL_DUV (MIXED) _1 = (B (1) _gl, B (2) _rtl, B (3) _rtl, B (4) _rtl) and these four ESL / RTL mixed models Among them, I / O information of B (1) _gl in simulation using model DUV (MIXED) _1, I / O information of B (2) _gl in simulation using model DUV (MIXED) _2, B in simulation using DUV (MIXED) _3. In the simulation using the input / output information of (3) _gl and DUV (MIXED) _4, the input / output information of B (4) _gl is obtained and all four input / output information are combined as s-DCP), and the ESL model is used for the RTL simulation. ESL / RTL model as s-DCP, or RTL model optimized for fast simulation, s-DCP, or ESL simulation Input / output information of the RTL design object present in each model of the s-DCP (eg, one or more ESL / RTL mixed models) by using the dynamic information obtained in the migration process as the s-DCP or the dynamic information obtained in the ESL / RTL mixed simulation process. Sum for all of the one or more ESL / RTL mixed models. As an example, an example of the RTL model described above consists of DUV (RTL) = (B (1) _rtl, B (2) _rtl, B (3) _rtl, B (4) _rtl), and the ESL model is DUV (ESL). When four BSL models are composed of (B (1) _tlm, B (2) _tlm, B (3) _tlm, B (4) _tlm), the four ESL / RTL mixed models are DUV (MIXED) _4 = (B ( 1) _tlm, B (2) _tlm, B (3) _tlm, B (4) _rtl), DUV (MIXED) _3 = (B (1) _tlm, B (2) _tlm, B (3) _rtl, B ( 4) _tlm), MODEL_DUV (MIXED) _2 = (B (1) _tlm, B (2) _rtl, B (3) _tlm, B (4) _tlm), MODEL_DUV (MIXED) _1 = (B (1) _rtl, 4 models of B (2) _tlm, B (3) _tlm, and B (4) _tlm), and B (1) in the simulation using model DUV (MIXED) _1 of these four ESL / RTL mixed models. I / O information of _rtl, model DUV (MIXED) _2, I / O information of B (2) _rtl, simulation of DUV (MIXED) _3, I / O information of B (3) _rtl, simulation using DUV (MIXED) _4 In I / O information of B (4) _rtl and all four of these I / O information are summed to s-DCP) For the ESL simulation, use the s-DCP as the higher level transaction model than the current ESL level model, or use the s-DCP as the s-DCP which is optimized to perform the simulation quickly. S-DCP uses dynamic information obtained from the ESL simulation process using the higher-level transaction model than the current ESL level, or the transaction level (TLM model) higher than the current ESL level and the same transaction level as the current ESL level. Dynamic information obtained from a mixed simulation process using a mixed model (TLM model) is obtained from s-DCP (e.g., a ca-transaction level design object present in each model of one or more timed-transaction / ca-transaction mixed models. Sum the output information for the one or more timed-transaction / ca-transaction mixture models. As an example, an example of the ca-tlm-level ESL model described above. DUV (ca-tlm) = (B (1) _ca-tlm, B (2) _ca-tlm, B (3) _ca-tlm, B (4) ESL model DUV (timed-tlm) = (B (1) _timed-tlm, B (2) _timed-tlm, B (3) _timed-tlm, B (4) 4 timed-tlm / ca-tlm mixed models, DUV (MIXED) _4 = (B (1) _timed-tlm, B (2) _timed-tlm, B (3) ) _timed-tlm, B (4) _ca-tlm), DUV (MIXED) _3 = (B (1) _timed-tlm, B (2) _timed-tlm, B (3) _ca-tlm, B (4) _timed -tlm), MODEL_DUV (MIXED) _2 = (B (1) _timed-tlm, B (2) _ca-tlm, B (3) _timed-tlm, B (4) _timed-tlm), MODEL_DUV (MIXED) _1 = 4 models of (B (1) _ca-tlm, B (2) _timed-tlm, B (3) _timed-tlm, B (4) _timed-tlm), and these four timed-transactions / ca -The output information of B (1) _ca-tlm in the simulation using model DUV (MIXED) _1 among the mixed mixture models, the output information of B (2) _ca-tlm and DUV in simulation using model DUV (MIXED) _2. Simulation using (MIXED) _3 In B (3) _ca-tlm of the output information, DUV (MIXED) is s-DCP in the simulation using the output information of getting _4 B (4) _ca-tlm put together all of the four output information. As another example, the output information of RTL level design objects present in each model of one or more ca-transaction / RTL mixed models is summed for the one or more ca-transaction / RTL mixed models. As an example, an example of the ca-tlm-level ESL model described above. DUV (ca-tlm) = (B (1) _ca-tlm, B (2) _ca-tlm, B (3) _ca-tlm, B (4) 4 ca, consisting of) _ca-tlm) and RTL model DUV (rtl) = (B (1) _rtl, B (2) _rtl, B (3) _rtl, B (4) _rtl) -tlm / RTL mixed models with DUV (MIXED) _4 = (B (1) _ca-tlm, B (2) _ca-tlm, B (3) _ca-tlm, B (4) _rtl), DUV (MIXED) _3 = (B (1) _ca-tlm, B (2) _ca-tlm, B (3) _rtl, B (4) _ca-tlm), MODEL_DUV (MIXED) _2 = (B (1) _ca-tlm, B ( 2) _rtl, B (3) _ca-tlm, B (4) _ca-tlm), MODEL_DUV (MIXED) _1 = (B (1) _rtl, B (2) _ca-tlm, B (3) _ca-tlm, In the simulation using the model DUV (MIXED) _1 among the four ca-transaction / RTL mixed models composed of four models of B (4) _ca-tlm), the output information of B (1) _rtl, the model DUV Output information of B (2) _rtl in the simulation using (MIXED) _2, output information of B (3) _rtl in the simulation using DUV (MIXED) _3, and B (4) _rtl in the simulation using DUV (MIXED) _4. Get output information The sum of these four outputs is s-DCP. As another example, the output information of the GL-level design object existing in each model of one or more RTL / GL mixed models is summed for the one or more RTL / GL mixed models. As a specific example, the example of the RTL model described above consists of DUV (rtl) = (B (1) _rtl, B (2) _rtl, B (3) _rtl, B (4) _rtl) and GL model DUV (rtl) = In the case of (B (1) _gl, B (2) _gl, B (3) _gl, B (4) _gl), four RTL / GL mixed models are obtained using DUV (MIXED) _4 = (B (1 ) _rtl, B (2) _rtl, B (3) _rtl, B (4) _gl), DUV (MIXED) _3 = (B (1) _rtl, B (2) _rtl, B (3) _gl, B (4 ) _rtl), MODEL_DUV (MIXED) _2 = (B (1) _rtl, B (2) _gl, B (3) _rtl, B (4) _rtl), MODEL_DUV (MIXED) _1 = (B (1) _gl, B (2) _rtl, B (3) _rtl, B (4) _rtl), and B (1) _gl in the simulation using model DUV (MIXED) _1 of these four RTL / GL mixed models. Output information of B (2) _gl for simulation with model DUV (MIXED) _2, output information of B (3) _gl for simulation with DUV (MIXED) _3, and simulation with DUV (MIXED) _4 Obtaining the output information of B (4) _gl and combining all four output information is used as s-DCP). In this way, the model obtained at the higher abstraction level is used as s-DCP, or the same abstraction level model optimized at the same time as the s-DCP is optimized, or the dynamics obtained from the simulation using the model at the upper level of abstraction are used. When the information is used as s-DCP or the dynamic information obtained from the simulation using the model of the same abstraction level optimized to perform the simulation is used as the s-DCP, the simulation speed is very fast. The process of getting the expected output can be done very quickly. Therefore, the accuracy of the s-DCP obtained as described above is a problem, and the model coherence exists between the abstraction high-level model and the lower-level model that are logically specified through the gradual materialization process. The accuracy of the obtained s-DCP can be considered to be very high.

이상적으로 이들 점진적 구체화 과정에서 존재하는 모델간의 일관성이 완벽하게 존재하게 되면 실제입출력이용-런 방식을 한 번도 적용하지 않고 전체 시뮬레이션이 수행되는 것도 가능하며, 이들 모델간의 일관성이 높으면 높을수록 실제입출력이용-런 해제의 총 횟수와 각각의 실제입출력이용-런 적용시점부터 실제입출력이용-런 해제시점까지의 전체 시간을 최소한으로 하는 것이 가능함으로 모델간의 일관성을 높이는 것이 중요하다. 그러나, 점진적 구체화 과정을 통한 설계에서 존재하는 다양한 추상화 수준들에서 바로 인접한 추상화 수준들(예로, ca-트란젝션 모델과 RTL 모델, 내지는 RTL 모델과 게이트수준 모델 등)에서의 모델들 간에는 매우 높은 모델 일관성을 유지시키는 것이 가능한 동시에, 이와 같은 상황이 자연스럽게 만족되게 된다. 만일, 추상화 상위수준의 모델을 시뮬레이션하여 얻어진 s-DCP의 정확도가 만족스럽지 못한 경우(추상화 상위수준의 모델의 모델링이 잘못된 경우 내지는 상위수준에서의 추상화로 인하여 상위수준의 특성상 추상화 상위수준의 모델의 정확도나 추상화 상위수준의 모델을 시뮬레이션하여 얻어지는 동적정보의 정확도가 낮을 수 밖에 없는 경우)에는 s-DCP의 정확도를 높이는 과정을 진행하여야 한다. 따라서 처음부터 정확도가 높은 추상화 상위수준의 모델을 사용하거나 내지는 이와 같이 추상화 상위수준의 모델의 모델링이 잘못된 경우에는 추상화 상위수준의 모델을 수정하여 올바른 추상화 상위수준의 모델을 얻고 이 올바른 상위수준의 모델을 시뮬레이션하여 정확도가 높은 동적정보를 얻어서 s-DCP의 정확도를 높이거나 내지는 모델링이 잘못된 추상화 상위수준의 모델을 시뮬레이션하여 얻어진 동적정보를 수정하여서 정확도가 높은 s-DCP를 얻거나 내지는 정확도가 상대적으로 떨어지는 추상화 상위수준의 모델을 시뮬레이션하여 얻어지는 동적정보를 동적으로(dynamically)나 정적으로(statically) 수정하여서 정확도가 높은 s-DCP를 얻을 수도 있다. 정확도가 높은 추상화 상위수준의 모델을 상대적으로 적은 노력을 들이고 만드는 방법의 일 예는 최근들어 트란젝션수준모델(TLM: Transaction-Level Model) 방법에서 많이 사용되는 모델 내의 특정블럭을 외부와 인터페이스되는 통신모듈(communication module)과 내부 계산모듈(computation module)로 나누고 이 특정모듈의 입출력 타이밍정확도는 내부 계산모듈은 그대로 두고(예로 내부 계산모듈은 untimed-트란젝션 수준으로 구술된 것을 사용) 외부와 인터페이스되는 통신모듈에 희망하는 수준의 타이밍 정보를 부가(timing annotation)함으로서, 입출력 관점에서 보면 해당 모듈수준에서 필요한 타이정확도(예로 매사이클 단위의 정확도 내지는 여러사이클 단위의 정확도 등)를 달성할 수 있으면서도 높은 시뮬레이션 속도를 달성할 수 있는데, 이와 같은 모델을 통하여 정확도가 높은 s-DCP를 얻을 수 있다. 또한 이와 같은 모델의 특정 트란젝션수준 통신모듈에 트란젝터를 부가하여서 입출력 관점에서 해당 모듈의 추상화 수준을 다른 추상화수준의 트란젝션수준 내지 는 레지스터전송수준으로 변환시키는 것도 가능하고, 상위수준 합성툴(예로 Forte Design사의 Cynthesizer의 TLM synthesis 등)을 사용하면 해당 TLM 통신모듈을 하드웨어적으로 구현가능한 시그널단위의 사이클정확성을 가지는 통신모듈로 합성하여 내는 것도 가능함으로서 이를 이용하여서도 s-DCP의 정확도가 높은 모델을 생성시키는 것도 가능하다. 또한 s-DCP를 수정하여서 정확도가 높은 s-DCP를 얻을 수 있는 상황의 구체적 예를 든다면, 상기 추상화 상위수준에서의 모델이 ca-트란젝션 수준이거나 timed-트란젝션 수준인 경우에 이와 같은 트란젝션이 온칩 버스 프로토콜(on-chip bus protocol)(예로 AMBA 버스 프로토콜) 규약을 만족하여야 함으로 이 버스 프로토콜 규약에 위배되는 s-DCP를 이 버스 프로토콜 규약에 맞는 s-DCP로 수정함으로서 s-DCP의 정확도를 높일 수 있다. s-DCP를 수정하여서 정확도가 높은 s-DCP를 얻을 수 있는 상황의 또 다른 구체적 예른 든다면, GL 모델에 대한 분산처리적병렬시뮬레이션(분산처리적병렬시뮬레이션이란 본 특허에서의 분산처리적병렬수행 방식을 통한 분산병렬 시뮬레이션을 의미함. 따라서 분선처리적병렬수행 방식의 시뮬레이션, 분산처리적병렬시뮬레이션, 분산처리적병렬수행 방식의 분산병렬 시뮬레이션은 모두 본 특허에서 제시한 새로운 방식의 분산병렬 시뮬레이션을 가르키는 같은 용어들임)을 수행하고자 하는 경우에 RTL 시뮬레이션 내지는 RTL/GL 혼합 시뮬레이션에서 얻어진 s-DCP에 대한 정확도를 높이기 위해서 SDF를 분석하거나 내지는 라이브러리셀들의 지연시간 파라미터를 분석하거나 내지는 SDF를 이용한 게이트수준의 타이밍시뮬레이션을 짧은 시뮬레이션 시간 구간만에서 수행하거나 내지는 정적타이밍분석(static timing analysis)을 수행하거나 내지는 이들을 조합적으로 이용하여서 설계객체내의 특정한 신호선들만(예로 클럭신호선들, 각 로컬시뮬레이션의 입력정보를 구성하는 플립플롭 출력신호선들 등)에 대해서는 정확한 지연시간 정보(예로, 플립플롭의 경우에 플립플롭 클럭입력의 지연시간 값(clock skew delay), 포지티브에지센시티브 플립플롭 출력이 클럭입력의 라이징에지 발생 후에 얼마의 지연시간을 가지고 변하는가의 clock-to-Q 지연시간(clock-to-Q(high_to_low), clock-to-Q(low_to_high)), 네가티브에지센시티브 플립플롭 출력이 클럭입력의 폴링에지 발생 후에 얼마의 지연시간을 가지고 변하는가의 clock-to-Q 지연시간(clock-to-Q(high_to_low), clock-to-Q(low_to_high)), 플립플롭의 비동기 셋 인에블 에지에서 플립플롭 출력이 변하는 시점까지의 aset_to_Q 지연시간, 플립플롭의 비동기 리셋 인에블 에지에서 플립플롭 출력이 변하는 시점까지의 areset_to_Q 지연시간, 등)를 얻고 이를 s-DCP에 반영함으로서 s-DCP의 정확도를 높일 수 있다 (즉 위 예를 든 경우의 게이트수준 타이밍시뮬레이션을 분산병렬 시뮬레이션으로 수행하기 위한 각 로컬시뮬레이션들을 위한 모델의 분할은 분할을 통하여 얻어지는 각 로컬시뮬레이션의 해당 로컬설계객체의 출력들이 모두 플립플롭의 출력들이 되도록 분할함). s-DCP를 수정하여서 정확도가 높은 s-DCP를 얻을 수 있는 상황의 또 다른 구체적 예를 든다면, RTL 모델에 대한 분산처리적병렬시뮬레이션을 수행하고자 하는 경우에 ESL 시뮬레이션 내지는 ESL/RTL 혼합 시뮬레이션에서 얻어진 s-DCP에 대한 정확도를 높이기 위해서 RTL 함수적시뮬레이션을 짧은 시뮬레이션 시간 구간만에서 수행하여서 ESL 모델에는 존재하지 않는 정확한 타이밍 정보(예로, 클럭이 라이징된 후에 플립플롭의 출력이 변하는데 걸리는 시간, 비동 기 클럭들간의 위상차이 등)를 얻고 이를 s-DCP에 반영함으로서 s-DCP의 정확도를 높일 수 있다. Ideally, if there is a complete coherence between the models that exist in these incremental refinements, the entire simulation can be performed without applying the actual I / O method once, and the higher the consistency between these models, the higher the actual I / O It is important to increase the consistency between models as it is possible to minimize the total number of run releases and the total time from each actual I / O-run to the actual I / O-run release. However, there is a very high model between models at the immediate abstraction levels (eg ca-transaction model and RTL model, or RTL model and gate-level model, etc.) at various levels of abstraction present in the design through the gradual materialization process. While it is possible to be consistent, this situation is naturally satisfied. If the accuracy of the s-DCP obtained by simulating the model of the abstraction is not satisfactory (the modeling of the abstraction higher-level model is wrong or due to the higher-level abstraction, If the accuracy of the dynamic information obtained by simulating the model of high accuracy or abstraction is low), the process of increasing the accuracy of s-DCP should be performed. Therefore, if you use a high-level abstraction model with high accuracy from the beginning, or if the modeling of the abstraction-high-level model is wrong, modify the model of the abstraction-high level model to obtain the correct abstraction-level model, and then obtain the correct higher-level model. To increase the accuracy of the s-DCP by obtaining the highly accurate dynamic information, or to correct the dynamic information obtained by simulating the high-level model of the wrong abstraction to obtain the high-precision s-DCP or the relatively accurate accuracy. Falling Abstraction High-precision s-DCP can be obtained by dynamically or statically modifying dynamic information obtained by simulating a higher-level model. An example of how to create a highly accurate abstraction high-level model with relatively little effort is to communicate a specific block in the model that is frequently used in the Transaction-Level Model (TLM) method with the external interface. The module is divided into a communication module and an internal calculation module, and the I / O timing accuracy of this specific module is left as it is (for example, the internal calculation module is dictated at an untimed-transaction level). By adding the timing annotation of the desired level to the communication module, from the input / output point of view, it is possible to achieve the required tie accuracy (e.g., accuracy in every cycle or accuracy in multiple cycles) at the module level. Speed can be achieved. It is possible to obtain a high s-DCP. It is also possible to add a transducer to a specific transaction-level communication module of such a model to convert the abstraction level of the module from the input / output point of view to a transaction level or register transfer level of another abstraction level. For example, if Forte Design's Cynthesizer's TLM synthesis is used, it is also possible to synthesize the TLM communication module into a communication module with cycle accuracy of signal unit that can be implemented in hardware. It is also possible to create models. In addition, if the s-DCP can be modified to obtain a high-precision s-DCP, such a transcript may be used when the model at the higher abstraction level is ca-transaction level or timed-transaction level. Since the projection must satisfy the on-chip bus protocol (for example AMBA bus protocol) protocol, the s-DCP can be modified by changing the s-DCP that violates this protocol to s-DCP conforming to this bus protocol protocol. You can increase the accuracy. Another specific example of a situation in which an accurate s-DCP can be obtained by modifying the s-DCP is distributed parallelism simulation for the GL model (distributed parallelism simulation in the present patent. This means that the parallel parallel simulation using the parallel processing method, the distributed parallel simulation using the distributed parallel processing, the distributed parallel simulation using the distributed parallel processing, and the distributed parallel simulation using the distributed parallel processing. In order to improve the accuracy of the s-DCP obtained from the RTL simulation or the RTL / GL mixed simulation, the SDF analysis or the delay time parameters of the library cells or the gate using the SDF are used. Level timing simulation with short simulation time intervals Or specific combinations of signal lines in the design object (e.g., clock signal lines, flip-flop output signal lines constituting the input information of each local simulation, etc.). For the correct delay time information (e.g., the clock skew delay of the flip-flop clock input in the case of flip-flops, and how much delay the positive-edge-sensitive flip-flop output changes after the rising edge of the clock input). clock-to-Q delay (clock-to-Q (high_to_low), clock-to-Q (low_to_high)), and clock of how long the negative-edge flip-flop output changes with the delay after the polling edge of the clock input occurs. -to-Q delay times (clock-to-Q (high_to_low), clock-to-Q (low_to_high)), and the flip-flop output at the asynchronous set enable edge of the flip-flop. The accuracy of s-DCP can be increased by obtaining the aset_to_Q delay to the point, the areset_to_Q delay from the flip-flop asynchronous reset enable edge to the point where the flip-flop output changes, etc.) In other words, the partitioning of the model for each local simulation to perform the gate-level timing simulation in a distributed parallel simulation is performed so that the outputs of the corresponding local design objects of each local simulation obtained through the partitioning are all the outputs of the flip-flop. Dividing). Another specific example of a situation in which an accurate s-DCP can be obtained by modifying the s-DCP is that in an ESL simulation or an ESL / RTL mixed simulation when distributed parallelism simulation of an RTL model is desired. In order to improve the accuracy of the obtained s-DCP, RTL functional simulation is performed only in a short simulation time interval, so that accurate timing information that does not exist in the ESL model (e.g., the time it takes for the output of the flip-flop to change after the clock rises, The accuracy of the s-DCP can be increased by obtaining the phase difference between the asynchronous clocks and reflecting the same in the s-DCP.

뿐만 아니라 이와 같은 s-DCP의 수정은 분산병렬 시뮬레이션 시작 전에 정적 방식으로(statically) 진행되어질 수 있을 뿐만 아니라, 필요에 따라서는 분산병렬 시뮬레이션의 실행 도중에 동적 방식으로도(dynamically)(즉, 분산병렬 시뮬레이션이 진행되면서 s-DCP의 수정이 이루어짐) 진행되어질 수 있다. 분산병렬 시뮬레이션의 실행 도중에 동적으로 s-DCP의 수정(s-DCP 자체가 이미 동적정보인 경우)이 이루어지고 이를 예상입력 내지는 예상출력으로 사용하는 일 예를 구체적으로 든다면, ca-트란젝션 수준에서 수행되어진 앞단 시뮬레이션에서 수집된 예상입력과 예상출력을, 후단 시뮬레이션인 RTL에서 이벤트 구동 방식의 시뮬레이션을 이용한 분산처리적병렬시뮬레이션에서 이용하는 경우에 시뮬레이션 초기에는 ca-트란젝션 수준에서 수행되어진 시뮬레이션에서 수집된 정확도가 떨어지는 동적정보로부터 얻어진 s-DCP로부터의 예상입력과 예상출력을 이용하여 RTL에서의 분산처리적병렬시뮬레이션을 수행하면서 이 분산처리적병렬시뮬레이션의 결과를 동적으로 반영하여서 상기 정확도가 떨어지는 s-DCP의 정확도를 높이고(구체적 예로서, ca-트란젝션 수준에서는 존재하지 않는 타이밍 파라메터인 모델내의 사용자 클럭이 라이징되고 모델내의 플립플롭의 출력이 클럭 라이징된 시점부터 1 나노초(Verilog 구문으로 #1) 이후에 변화가 되어지도록 RTL 모델이 구술된 경우에 이와 같은 상황(clock-to-Q 지연시간 이벤트 상황)을 RTL 시뮬레이션 실행 초기에 RTL 시뮬레이션 결과에서부터 동적으로 알아내어서 ca-트란젝션 수준에서의 시뮬레이션에서 수집된 s-DCP에 이를 반영 (즉, ca-트란젝션 수준에서의 시뮬레이션에서 수집된 s-DCP에는 없는 타이밍 정보인 1나노초의 clock-to-Q 지연시간을 반영)하여 s-DCP의 정확도를 높이고, 이 정확도가 높아진 s-DCP로부터의 예상입력과 예상출력을 이용함) 이 동적방식을 통하여 정확도가 높아진 s-DCP에서부터 얻어진 예상입력과 예상출력을 시뮬레이션 초기 이후부터에서의 예상입력과 예상출력으로 이용하게되면 시뮬레이션 초기 이후부터에서는 정확도가 동적으로 높아진 s-DCP를 이용하는 효과적인 분산처리적병렬시뮬레이션이 가능해진다 (즉 이와 같은 방식은 시뮬레이션 초기에는 s-DCP의 정확도가 상대적으로 낮아서 실제입출력이용-런 방식의 수행이 진행되어지면서, 이 실제입출력이용-런 방식의 수행 과정에서 정확도가 낮은 s-DCP의 정확도를 상기 실제입출력이용-런 방식의 수행 중에서 즉각적으로(on-the-fly) 수집되는 동적정보를 이용하여서 높이는 과정 - 이와 같은 과정을 동적배움(dynamic learning) 과정이라고 생각할 수 있음 -을 거쳐서 이 정확도가 높아진 s-DCP를 활용한 예상입출력이용-런 방식의 수행이 진행되어지게 함으로서 상기 시뮬레이션 초기 이후부터에서는 예상입출력이용-런 방식의 수행이 극대화가 될 수 있게 진행된다). 이와 같은 기법은 상기에서 설명된 RTL에서의 분산처리적병렬시뮬레이션에서뿐만 아니라, GL에서의 타이밍을 고려한 분산처리적병렬시뮬레이션에서도 적용되어질 수 있다. 즉, 앞단 시뮬레이션 단계인 RTL 시뮬레이션에서 수집된 정확도가 상대적으로 떨어지는 s-DCP를 활용한 후단 시뮬레이션 단계인 GL에서의 타이밍을 고려한 분산처리적병렬시뮬레이션 과정 중에서 시뮬레이션 진행과 동시에 상기 정확도가 상대적으로 떨어지는 원(original) s-DCP를 실제입출력이용-런 방식으로 진행되는 타이밍시뮬레이션 실행 중에 동적으로 획득되는 시뮬레이션의 결과(이 시뮬레이션의 결과는 실제입출력이용-런 방식으로 진행되는 분산처리적병렬시뮬레이션에서 취득되는 동적정보임으로 GL에서의 정확한 타이밍 정보를 모두 포함하고 있는 시뮬레이션의 결과임)를 이용하여서 정확도가 높은 s-DCP로 바뀌어내고, 이 정확도가 높은 s-DCP에서의 예상입력과 예상출력을 활용한 분산처리적병렬시뮬레이션을 이후부터 진행함으로서 예상입출력이용-런 방식의 진행을 극대화시킬 수 있다.Not only can this modification of the s-DCP be carried out statically before the start of the distributed parallel simulation, but also dynamically (ie distributed parallel) during the execution of the distributed parallel simulation as necessary. As the simulation progresses, modification of the s-DCP is performed). For example, ca-transaction level can be used to modify the s-DCP dynamically (if s-DCP is already dynamic information) during the execution of distributed parallel simulation and use it as expected input or expected output. When the predicted input and the predicted output collected from the previous simulation performed in the simulation are used in distributed parallelism simulation using event driven simulation in the RTL, which is the latter simulation, the simulation is performed at the ca-transaction level at the beginning of the simulation. Performing distributed parallel simulation in RTL using expected input and expected output from s-DCP obtained from dynamic information with poor accuracy, dynamically reflecting the result of this distributed parallel simulation, and reducing the accuracy of s Increase the accuracy of DCP (specifically, ca-transaction This occurs when the RTL model is dictated so that the user clock in the model, a timing parameter that does not exist at the level, rises and changes one nanosecond (# 1 in Verilog syntax) from the time the output of the flip-flop in the model rises. The same situation (clock-to-Q latency event situation) is dynamically identified from the RTL simulation results early in the RTL simulation run and reflected in the s-DCP collected from the simulation at the ca-transaction level (ie ca- The s-DCP improves the accuracy of the s-DCP by reflecting the 1-nanosecond clock-to-Q delay that is not present in the s-DCP collected in the simulation at the transaction level, and the expected input from the increased s-DCP. And the expected output). This dynamic method estimates the expected inputs and outputs from the s-DCP with increased accuracy. When used as output and expected output, effective distributed parallel simulation using s-DCP, which has increased dynamic accuracy from the beginning of the simulation, becomes possible (i.e., this method has relatively low accuracy of s-DCP at the beginning of the simulation. As the execution of the actual I / O method progresses, the accuracy of the low accuracy s-DCP during the execution of the actual I / O method is on-the-run. fly) Using the collected dynamic information, this process can be thought of as a dynamic learning process, and thus the execution of the expected I / O-run method using s-DCP, which has increased accuracy, is performed. By doing so, since the initial simulation, the performance of the I / O method can be maximized. Is conducted). This technique can be applied not only to the distributed parallelism simulation in RTL described above, but also to distributed parallelism simulation considering timing in GL. That is, in the distributed parallel parallel simulation process considering the timing in GL, which is the latter simulation stage, which uses the s-DCP, which has relatively low accuracy collected in the RTL simulation, which is the previous simulation stage, the accuracy decreases at the same time as the simulation progresses. (original) s-DCP is the result of a simulation that is obtained dynamically during a timing simulation run in real I / O. (The results of this simulation are obtained in a distributed parallelism simulation run in real I / O. Dynamic information, resulting in a simulation that contains all of the accurate timing information in GL), and then transforms it into a more accurate s-DCP and uses the expected input and output in this highly accurate s-DCP. Expected value by executing parallel parallel simulation Using force - can maximize the proceeds of the run way.

따라서, 본 특허에서는 위에서 설명한 s-DCP의 정확도를 높이는 이와 같은 과정들 모두를 통칭하여서 앞으로 "s-DCP 정확도증강 과정"이라 칭한다. 단, 원 s-DCP가 앞선 시뮬레이션에서 수집된 동적정보가 아니고, 추상화 상위수준의 모델인 경우에는 s-DCP 정확도증강 과정은 상기 추상화 상위수준의 모델인 원 s-DCP가 수행되어지면서 수집되는 동적정보의 정확도를 시뮬레이션 시간 도중에 실시간으로 증강시키는 과정을 말한다. 특히 위에서 방금 설명된 후단 시뮬레이션의 시뮬레이션 진행 초기에 동적으로 수집되어지는 동적정보를 활용하여서 후단 시뮬레이션이 진행되어지고 있는 과정에서의 앞단 시뮬레이션에서 구해진 정확도가 떨어지는 s-DCP의 정확도를 높이거나, 내지는 추상화 상위수준의 모델인 원 s-DCP가 수행되어지면서 수집되는 동적정보의 정확도를 시뮬레이션 시간 도중에 실시간으로 동적으로 높이거나, 내지는 시뮬레이션이 빠르게 수행되도록 최적화된 동일 추상화수준의 모델인 원 s-DCP가 수행되어지면서 수집되는 동적정보의 정확도를 시뮬레이션 시간 도중에 실시간으로 동적으로 높이는 것들인 본 특허에서의 s-DCP 정확도증강 과정들을 모두 "동적배움을 이용한 s-DCP 정확도증강 과정"이라고 모두 칭하기로 한다.Therefore, in the present patent, all of these processes for increasing the accuracy of s-DCP described above are collectively referred to as "s-DCP accuracy enhancement process". However, if the original s-DCP is not dynamic information collected in the previous simulation, and the model is a high level abstraction, the s-DCP accuracy enhancement process is performed by performing the original s-DCP, which is a high level abstraction model. The process of augmenting the accuracy of information in real time during the simulation time. In particular, by using the dynamic information collected dynamically at the beginning of the simulation of the trailing stage simulation just described above, the accuracy of s-DCP, which is less accurate in the leading edge simulation during the trailing stage simulation, is increased, or abstracted. The original s-DCP, which is a high-level model, is performed dynamically in real time during simulation time, or the original s-DCP, which is a model of the same level of abstraction that is optimized for fast simulation, is performed. All of the s-DCP accuracy enhancement processes in the present patent, which increase the accuracy of the dynamic information collected in real time during the simulation time, will be referred to as "s-DCP accuracy enhancement process using dynamic learning".

s-DCP의 정확도증강 과정의 또 다른 구체적 예는 몇가지만 더 들면 다음과 같다. 우선 추상화 상위수준의 모델(이 추상화 상위수준의 모델은 원 시뮬레이션 대상이 되는 추상화 하위수준의 모델과 부분계층대응관계가 있음)을 시뮬레이션하여 얻어진 1차 s-DCP 내지는 1차 t-DCP를 이용하여서 원 시뮬레이션 대상이 되는 추상화 하위수준의 모델인 DUV내에 존재하는 설계객체들(이들 설계객체들 각각은 부분계층대응관계에 의하여 상위수준의 모델에서도 동일하게 존재함)내지는 DUV를 대상으로 하는 병렬적으로 진행 가능한 시뮬레이션을 1회 이상 진행하여서 정확도가 향상된 2차 s-DCP를 얻을 수 있다. 구체적 예로서는, 1차 s-DCP를 사용하여서 각 설계객체들 각각에 예상입력을 인가하면서 시뮬레이션(이 시뮬레이션은 각 설계객체별로 완전히 독립적임으로 병렬시뮬레이션으로 수행 가능함)하는 것이 가능하고 이 시뮬레이션 과정에서 이들 각 설계객체들의 출력들을 취합하게 되면 2차 s-DCP를 얻게되는데 이 2차 s-DCP는 원 시뮬레이션 대상이 되는 모델내에 존재하는 설계객체들을 대상으로 하여서 얻어지는 것임으로 매우 높은 정확도를 얻는 것이 가능하다. 다른 구체적 예로서는, 상기 추상화 상위수준의 모델을 시뮬레이션하여 얻어진 1차 t-DCP를 이용하여서 추상화 하위수준의 모델인 DUV에 대한 시뮬레이션을 시간상에서 복수개 시뮬레이션시간소구간들로 나누어서 병렬적으로 진행(TPE 방식의 병렬시뮬레이션)하면서 이 시뮬레이션 과정에서 DUV내의 각 설계객체들의 입력과 출력들을 취합하게 되면 정확도가 향상된 2차 s-DCP를 얻는 것이 가능하다. s-DCP 정확도증강의 또 다른 구체적 예로서는, 추상화 상위수준으로 구술된 다수의 설계객체들과 추상화 하위수준으로 구술된 소수의 설계객체들로 구성된 2 이상의 혼합된 추상화 수준의 모델들을 대상으로 진행하는 2 이상의 병렬시뮬레이션에서 수집된 상기 추상화 하위수준으로 구술된 모든 설계객체들(이 모든 설계객체들로 상기 하위 추상화 수준의 모델이 구성됨)의 2 이상의 동적정보들을 시뮬레이션 시간 상에서 시간맞춤(time alignment)함(시간맞춤이란 상기 추상화 하위수준의 설계객체들 각각에 대한 동적정보들이 추상화 상위수준의 모델의 부정확성으로 인해서 시뮬레이션 시간 상에서 서로간에 어긋나있을 수 있음으로 이 동적정보들을 시뮬레이션 시간 상에서 일치시키는 것을 말함. 이 시간맞춤은 트란젝션 수준에서 수행하게 되면 용이하게 수행할 수 있음. 예로, 1 이상의 모델들을 대상으로 하는 1 이상의 시뮬레이션에서 수집된 모델 내의 1 이상의 설계객체들의 동적정보들에서 동일한 특정 트란젝션의 시작시점을 찾아서 이 시점에 맞추면 됨)으로서 정확도가 증강된 s-DCP를 얻을 수 있다. s-DCP 정확도증강의 또 다른 구체적 예로서는, 추상화 상위수준의 모델을 대상으로 진행하는 시뮬레이션 내지는 추상화 상위수준으로 구술된 다수의 설계객체들과 추상화 하위수준으로 구술된 소수의 설계객체들로 구성된 2 이상의 혼합된 추상화 수준의 모델들을 대상으로 진행하는 2 이상의 병렬시뮬레이션에서 수집된 모델 내의 설계객체들에 대한 동적정보들을 분산처리적병렬수행 방식에서의 각 로컬시뮬레이션의 예상입력과 예상출력으로 사용하여 실제입력 내지는 실제출력과 비교하는 과정을 트란젝션 수준에서 진행하는 것이다. 즉 이들 예상입력과 실제입력 내지는 예상출력과 실제출력이 핀수준의 사이클 단위에서는 다르다고 하더라도 트란젝션수준의 여러 사이클 단위에서는 동일할 수 있음으로 예상입력과 실제입력과의 비교 내지는 예상출력과 실제출력과의 비교를 핀수준의 사이클 단위로 하지 않고 트란젝션수준의 여러 사이클 단위로 한다면 s-DCP의 정확도를 높일 수 있다. 즉, 사이클 단위의 핀수준 s-DCP 정확도를 높이는 것은 상대적으로 오버헤드가 크기 때문에, 이 대신에 예상입력과 실제출력과의 비교 내지는 예상출력과 실제출력과의 비교를 트란젝션단위 s-DCP 정확도 수준으로 진행(구체적 방법의 예로는, 예상값과 실제값 비교를 우선 트란젝션단위로 진행하여 실제트란젝션에 매칭되는 예상트란젝션을 찾고, 이 매칭된 예상트란젝션에서 실제트란젝션과 사이클단위로 비교하여 같은지 틀린지를 판단함. 따라서 이와 같은 트란젝션단위로 예상값과 실제값을 비교하는 경우에는 절대적 시뮬레이션 시간을 기준으로 예상트란젝션과 실제트란젝션을 비교하지 않고, 해당 트란젝션 단위에서의 어의(語義)를 기준으로 예상트란젝션과 실제트란젝션을 비교함. 예로, 특정 예상트란젝션의 시작시간이 1,080ns이고 종료시간이 1,160ns이고, 특정 실제트란젝션의 시작시간이 1,000ns이고 종료시간이 1,080ns이라고 하더라도 이 예상트란젝션과 실제트란젝션이 트란젝션 단위에서의 어의가 일치한다면 이 예상트란젝션과 실제트란젝션은 매칭되는 것 임. 이와 같이 매칭되는 예상트란젝션과 실제트란젝션의 절대적 시뮬레이션 시간이 달라질 수 있는 이유는 추상화 상위수준 모델의 부정확성 내지는 추상화로 인한 정보의 소실 등에서 찾을 수 있음. 따라서 트란젝션 수준에서의 예상값과 실제값의 매칭은 이를 고려하여야 함. 또한, 다른 추상화 수준의 트란젝션들 간 내지는 특정 추상화 수준의 트란젝션과 이를 구체화시킨 RTL의 이벤트시퀀스간에는 이들이 나타나는 시뮬레이션 시간 뿐만 아니라 이들 트란젝션들이 나타나는 순서 내지는 트란젝션과 이벤트시퀀스가 나타나는 순서도 달라질 수 있다. 예로 timed-트란젝션 수 준에서의 트란젝션 T_timed = {T1, T2, T3, T4}과 이것을 구체화시킨 ca-트란젝션 수준에서의 트란젝션 T_ca에서 나타나는 트란젝션은 T_timed의 트란젝션 순서인 T1, T2, T3, T4의 순서가 아닌 다른 순서 T3 = {t31, t32}, T1 = {t11, t12, t13, t14}, T4 = {t41, t42}, T2 = {t21, t22, t23} (tij는 사이클단위의 ca-트란젝션임. 예로 timed-트란젝션 T3는 ca-트란젝션 t31과 t32의 2개로 이루어짐)로 트란젝션이 나타날 수 있음으로 이와 같은 경우에서도 예상트란젝션과 실제트란젝션의 절대적 시뮬레이션 시간이 달라질 수 있다. 따라서 이 경우에도 트란젝션 수준에서의 예상값과 실제값의 매칭은 이를 고려하여야 함)하게 되면 예상값(예상입력 내지는 예상출력)이 온-칩 버스 규격에 위배되는지 여부를 쉽게 파악하고 필요시 이를 수정할 수 있는 등의 과정을 통하여 효과적으로 s-DCP의 정확도를 높이는 것이 가능하며, 이와 같은 트란젝션수준의 s-DCP를 이용함으로서 s-DCP의 정확도를 증강하는 본 특허에서의 s-DCP 정확도증강 과정을 "트란젝션화를 통한 s-DCP 정확도증강 과정"이라 칭하기로 한다. 이와 같은 트란젝션화를 통한 s-DCP 정확도증강 과정도 s-DCP가 추상화 상위수준의 시뮬레이션 모델인 경우에는 로컬시뮬레이션이 진행되는 과정에서 상기 추상화 상위수준의 시뮬레이션 모델로부터 얻어지는 동적정보에 대하여 진행하는 것도 가능하다.Another specific example of the process of increasing accuracy of s-DCP is as follows. First, by using the first order s-DCP or the first order t-DCP, which is obtained by simulating a high-level model of abstraction (the model of this high-level abstraction has a partial hierarchy correspondence with the model of the lower level of abstraction that is the original simulation target). Design objects that exist in the DUV, the abstraction lower-level model that is the original simulation object, each of these design objects exist in the upper-level model by partial layer correspondence, or in parallel to the DUV. By running the simulation more than once, a second order s-DCP with improved accuracy can be obtained. As a specific example, it is possible to use a first-order s-DCP to apply an expected input to each of the design objects, while simulating them (this simulation can be performed in parallel simulation completely independent of each design object). When the outputs of the design objects are collected, the second s-DCP is obtained. The second s-DCP is obtained by targeting the design objects that exist in the model to be the original simulation object, and thus it is possible to obtain very high accuracy. As another specific example, a simulation of DUV, which is a low-level abstraction model, is performed in parallel by dividing a plurality of simulation time intervals in time using a first-order t-DCP obtained by simulating the high-level abstraction model (TPE method). In this simulation process, the inputs and outputs of each design object in the DUV can be combined to obtain a second-order s-DCP with improved accuracy. Another specific example of s-DCP accuracy augmentation is to target two or more mixed abstraction level models consisting of a number of design objects dictated by a higher level of abstraction and a few design objects dictated by a lower level of abstraction. Time alignment of two or more dynamic information of all design objects dictated by the abstraction lower level collected in the above-described parallel simulation (all the design objects constitute the model of the lower abstraction level) in simulation time ( Time alignment refers to the matching of dynamic information in simulation time because the dynamic information for each of the design objects at the lower abstraction level may be different from each other in simulation time due to the inaccuracy of the model at the higher abstraction level. Alignment is easy when done at the transaction level For example, the dynamic information of one or more design objects in a model collected in one or more simulations of one or more models can be found and matched to the beginning of the same specific transaction. Enhanced s-DCP can be obtained. Another specific example of s-DCP accuracy enhancement is a simulation of a high level abstraction model or two or more composed of a number of design objects dictated by a high level of abstraction and a small number of design objects dictated by a low level of abstraction. Actual input using dynamic information about the design objects in the model collected in two or more parallel simulations for mixed abstraction level models as expected input and expected output of each local simulation in distributed parallelism. Or, the process of comparing with the actual output is carried out at the transaction level. In other words, even though these expected inputs and actual inputs or expected outputs and actual outputs are different at the pin level cycle unit, they may be the same in several cycle units at the transaction level. The accuracy of s-DCP can be improved if the comparison is not done at the pin level cycle but at the transaction level multiple cycles. In other words, increasing the pin-level s-DCP accuracy in cycles is relatively expensive, so instead of comparing the expected input with the actual output or comparing the expected output with the actual output, the transaction unit s-DCP accuracy Progression to level (A specific example of the method is to compare the expected value with the actual value first in the unit of transaction to find the expected transaction that matches the actual transaction, and in the matched project, the actual transaction and the unit of the cycle. Therefore, when comparing the expected value and the actual value in such a transaction unit, the expected transaction and the actual transaction are not compared based on the absolute simulation time. Compare the expected transaction with the actual transaction in terms of, for example, the start time of a specific expected transaction is 1,080ns and the end time 1,160 ns, even if the start time of a specific real transaction is 1,000 ns and the end time is 1,080 ns, if the expected transaction and the actual transaction match the meaning in the unit of transaction, the expected transaction and the actual transaction match. The reason why the absolute simulation time of the matched and actual transactions can be changed can be found in the inaccuracy of the high-level abstraction model or the loss of information due to the abstraction. Value-to-actual matching must take this into account, and the order in which these transactions appear, as well as the simulation time they occur, between transactions at different levels of abstraction, or between transactions at specific levels of abstraction and the RTL's event sequences that specify them. Or the sequence in which transactions and event sequences appear For example, a transaction at the timed-transaction level T_timed = {T1, T2, T3, T4} and the transaction at the ca-transaction level that embodies it. T3 = {t31, t32}, T1 = {t11, t12, t13, t14}, T4 = {t41, t42}, T2 = {t21, t22, other than the order of T1, T2, T3, T4 t23} (tij is ca-transaction in cycles. For example, a timed-transaction T3 may consist of two ca-transactions t31 and t32), and thus, the absolute simulation time of the expected transaction and the actual transaction may be different in this case. Therefore, even in this case, the matching between the expected value and the actual value at the transaction level should be taken into account), and it is easy to determine whether the expected value (expected input or expected output) is in violation of the on-chip bus specification and, if necessary, It is possible to effectively increase the accuracy of the s-DCP through the modification process, and the s-DCP accuracy enhancement process in the present patent which enhances the accuracy of the s-DCP by using the transaction level s-DCP. It will be referred to as "s-DCP accuracy process through the transaction". In this case, the s-DCP accuracy enhancement process through the transactionalization is also performed when the s-DCP is a high level abstraction simulation model, and dynamic information obtained from the high level abstraction simulation model is performed during the local simulation. It is possible.

또 한가지 언급할 것은, 상기에서 설명된 예상입력과 예상출력을 이용하는 시뮬레이션 방식은 이미 설명된 것과 같이 2 이상의 프로세서를 이용한 분산병렬 시뮬레이션의 성능을 높일 수 있을 뿐만 아니라, 단일 프로세서(여기에는 최근의 인텔사의 펜티엄 듀얼코어도 포함됨)를 이용하는 경우에도 시뮬레이션이 2 이상의 프로세 스나 쓰레드(thread)로 나누어져서 수행되어야 하는 경우에서도 상기 2 이상의 프로세스와 쓰레드간의 프로세스간통신(Inter-Process Communication) 오버헤드와 프로세스동기(Process Synchronization) 오버헤드도 크게 낮출 수 있다는 것이다.It should be mentioned that the simulation method using the predicted input and the predicted output described above can not only improve the performance of distributed parallel simulation using two or more processors, as described above, but also provide a single processor (herein, Inter-process communication overhead and processes between the two or more processes and threads, even if the simulation is to be performed in two or more processes or threads. Process synchronization synchronization overhead can also be greatly reduced.

t-DCP를 이용하게 되면 TPE 방식의 병렬시뮬레이션이 가능하고, s-DCP를 이용하게 되면 DPE 방식의 병렬시뮬레이션이 가능하다. TEP 방식의 병렬시뮬레이션은 전체 시뮬레이션 시간구간을 2 이상의 시뮬레이션시간소구간(이를 슬라이스라 칭함)으로 나누어서 이들 2 이상의 시뮬레이션소구간들 각각을 독립적으로 수행하는 것이다. DEP 방식의 병렬시뮬레이션은 시뮬레이션 대상이 되는 전체 설계객체(DUV와 TB)를 2 이상의 부분설계객체들로 나누어서 이들 2 이상의 부분설계객체들 각각을 별도의 시뮬레이터에서 분산병렬 방식으로 수행하는 것이다. 앞에서 이미 언급한 대로 t-DCP와 s-DCP의 정확도가 매우 중요한데, 이외에도 이들을 획득하는 것에 소요되는 시간이 과도하지 않아야 하는 것도 매우 중요하다. 따라서, 시뮬레이션 대상이 되는 특정 추상화수준의 설계객체를 시뮬레이션하여서 t-DCP와 s-DCP를 획득하는 것이 가능한 경우는 리그레션 테스트 내지는 설계변경이 국지적으로 이루어진 경우이며. 이외의 경우들에서는 상기 특정 추상화수준보다 높은 단계의 모델을 시뮬레이션하여서 t-DCP와 s-DCP를 획득하는 것이 빠른 획득시간과 더불어 이들의 정확도도 높일 수 있는 효율적 방법이다. TPE 방식의 병렬시뮬레이션에서 위에서 언급한 세가지의 활용방법들에 대하여 좀 더 자세하게 설명하면 다음과 같다. 우선 활용방법-1에서는 추상화 상위수준 모델을 대상으로 하는 시뮬레이션 과정에서 1 이상의 시뮬레이션 특정시점 내지는 특정구간에서의 추상화 상위수준 모델의 상태정보를 수 집하고 이 추상화 상위수준 모델의 상태정보를 상기 1 이상의 시뮬레이션 특정시점 내지는 특정구간에서의 추상화 하위수준 모델의 상태정보로 변환(변환 방법의 구체적 내용은 국내특허(10-2005-116706)에서 설명된 것을 참조)하고 이 변환된 추상화 하위수준 모델의 상태정보들을 이용하여서 추상화 하위수준 모델에 대한 시뮬레이션을 슬라이스별로 병렬적으로 수행하거나 내지는 특정 슬라이스만을 수행함으로 상기 추상화 하위수준 모델에 대한 시뮬레이션을 신속하게 수행하는 것이 가능하다. 활용방법-2에서는 2 이상의 추상화 중간수준 모델(추상화 상위수준 설계객체들과 추상화 하위수준 설계객체를 동시에 가지고 있는 DUV)을 독립적으로 병렬수행하고 이와 같은 병렬수행 과정에서 추상화 하위수준 설계객체들에 대한 상태정보들을 모두 합하여서 추상화 하위수준 모델에 대한 상태정보를 얻고, 이 추상화 하위수준 모델에 대한 시뮬레이션을 슬라이스별로 병렬적으로 수행하거나 내지는 특정 슬라이스만을 수행함으로 상기 추상화 하위수준 모델에 대한 시뮬레이션을 신속하게 수행하는 것이 가능하다 (도6 참조). 이들 추상화 상위수준 모델을 수행하거나 내지는 2 이상의 추상화 중간수준 모델들을 병렬적 내지는 순차적으로 수행하여서 얻어진 t-DCP를 활용하여서 추상화 하위수준 모델을 시뮬레이션 시간 상에서 2 이상의 시뮬레이션시간소구간들인 슬라이스로 나누어서 병렬적으로 수행하거나 나누어진 슬라이스들만을 순차적으로 수행함으로서 추상화 하위수준 모델에 대한 시뮬레이션을 신속하게 수행시키는 구체적 방법은 국내특허(10-2005-116706)와 국내특허(10-2006-19738)에 자세히 언급되어 있음으로 본 특허에서는 자세한 설명은 생략하기로 한다. 다만, 추상화 상위수준에서 s-DCP를 획득하는 경우와 같이 추상화 상위수준 에서 t-DCP를 획득하는 경우에 t-DCP를 신속하게 획득하는 것은 가능하나 t-DCP의 정확도가 낮을 수 있음으로 이 경우에도 s-DCP와 같이 정확도를 높이는 방법이 필요하다. 이를 위해서, 앞단 시뮬레이션에서 추상화 상위수준 모델에 대한 T_f 시점에서부터 T_r 시점까지에서 저장된 상태정보를 재차 추상화 상위수준 모델에 T_f 시점에서(혹은 이전 시점에서부터) force하고 T_r 시점에서 release한 후에 T_r 시점의 추상화 상위수준 모델의 입력정보(이 입력 정보는 앞단 시뮬레이션에서 수집되어서 저장된 것)를 T_r 시점 이후에도 계속 그대로 유지(단, TB에서부터 모든 사용자클럭들이 공급되지 않고, PLL과 같이 DUV 내부에 사용자클럭 소스가 존재하는 경우에는 이 사용자클럭 시그널들도 T_r 시점 이후에 계속 T_r 시점에서의 값을 유지하도록 함)하면서 상기 T_r 시점에서의 상태정보가 더 이상 변하지 않고 안정될 시점 T_s까지 기다리면 된다 (즉 더 이상 변하지 않는 시점에서의 상태정보가 정확도가 증강된 상태정보임). 단, 비동기적인 사용자클럭들(이들 사용자클럭들은 완전 독립적)이 2 이상 존재하고 T_r과 상기 변하지 않는 시점 T_s 사이에 사용자클럭들의 이벤트가 존재한 경우에는 위에서 언급된 과정을 반복적으로 진행하여야 한다. Using t-DCP enables parallel simulation of TPE, and using s-DCP enables parallel simulation of DPE. Parallel simulation of the TEP method divides the entire simulation time interval into two or more simulation time intervals (called slices) to independently perform each of these two or more simulation intervals. DEP parallel simulation divides the entire design objects (DUV and TB) into two or more sub-design objects and executes each of these two or more sub-design objects in a distributed parallel method in a separate simulator. As mentioned earlier, the accuracy of t-DCP and s-DCP is very important, but it is also important that the time required to acquire them is not excessive. Therefore, when it is possible to obtain t-DCP and s-DCP by simulating the design object of the specific abstraction level to be simulated, regression test or design change is made locally. In other cases, acquiring t-DCP and s-DCP by simulating a model that is higher than the specific level of abstraction is an efficient way to increase their accuracy as well as a fast acquisition time. In the TPE parallel simulation, the three methods mentioned above will be explained in more detail. First, in the method 1, the state information of the abstraction high-level model is collected at one or more simulation specific points or intervals in the simulation process of the abstraction high-level model, and the state information of the abstraction high-level model is collected from the above-mentioned one or more. Convert to state information of abstraction low-level model at a specific point of time or in a specific section (for details of the conversion method, refer to that described in Korean Patent (10-2005-116706)) and state information of the converted abstraction low-level model. It is possible to quickly perform the simulation for the abstraction low-level model by performing the simulation of the abstraction low-level model in parallel for each slice or only a specific slice. In method-2, two or more abstract mid-level models (DUVs that have both abstract high-level design objects and abstract low-level design objects) are executed in parallel independently. The state information of the abstraction low-level model is obtained by adding the state information together, and the simulation of the abstraction low-level model can be performed quickly by executing the simulation of this abstraction low-level model in parallel for each slice or only performing a specific slice. It is possible to carry out (see Figure 6). By using t-DCP obtained by performing these abstraction high-level models or by executing two or more abstract intermediate models in parallel or sequentially, the abstraction low-level model is divided into slices that are two or more simulation time intervals in simulation time. A detailed method for quickly performing a simulation on an abstraction low-level model by sequentially performing only slices or divided slices is described in detail in Korean Patents (10-2005-116706) and Korean Patents (10-2006-19738). In this patent, detailed description thereof will be omitted. However, when t-DCP is acquired at a higher level of abstraction, such as when s-DCP is acquired at a higher level of abstraction, t-DCP can be obtained quickly, but the accuracy of t-DCP may be low. In addition, there is a need for a method of increasing accuracy such as s-DCP. To this end, in the previous simulation, the state information stored from the T_f time point to the T_r time point for the abstraction high-level model is re-absorbed from the T_f time point (or from the previous time point) to the high-level model and released at the T_r time point. The input information of the high-level model (this information is collected and stored in the previous simulation) remains intact even after the time T_r (however, all user clocks from TB are not supplied, and user clock sources exist inside the DUV, such as PLLs). In this case, the user clock signals also maintain the value at the time T_r after the time T_r, and wait until the state information at the time T_r does not change anymore and stabilizes (that is, no longer changes). The state information at the time point is the state information with increased accuracy. However, if there are two or more asynchronous user clocks (they are completely independent) and there is an event of the user clocks between T_r and the unchanging time T_s, the above-mentioned process should be repeated.

또한, 추상화 상위수준 모델을 대상으로 한 시뮬레이션 과정에서 얻어진 1차 t-DCP를 활용한 추상화 하위수준 모델을 대상으로 한 TPE 방식의 시뮬레이션에서도 상기 추상화 상위수준 모델의 낮은 정확도로 인하여 상기 추상화 상위수준 모델 내에 존재하는 1 이상의 설계객체들에서 수집된 동적정보들이 시뮬레이션 시간 상에서 어긋나 있을 수 있으며 이로 인하여 상기 1차 t-DCP의 정확도가 떨어질 수 있다. 따라서 이와 같은 경우에도 s-DCP 정확도증강 과정에서 설명한 시간맞춤(time alignment)함으로서 t-DCP 정확도를 높일 수도 있다. 따라서 이와 같은 t-DCP 정확도를 높이는 모든 과정을 본 특허에서는 t-DCP 정확도증강 과정이라 칭한다. 위에서 설명한 본 특허에서의 t-DCP를 이용한 병렬 시뮬레이션 방법을 본 특허에서는 t-DCP를 이용한 시간적병렬수행(Timed Parallel Execution) 방식 내지는, 이를 줄여서 시간분할적병렬수행 방식(즉 시간분할적병렬수행 방식이란 t-DCP를 활용하여 전체 시뮬레이션 구간을 2 이상의 슬라이스로 나누고 이 슬라이스별로 병렬수행을 진행하는 본 특허에서 제안한 병렬시뮬레이션 방식만을 말함)이라 칭하기로 한다. In addition, even in the TPE simulation of the abstraction lower-level model using the first-order t-DCP obtained in the simulation process of the abstraction higher-level model, the abstraction higher-level model due to the low accuracy of the abstraction-higher model Dynamic information collected from one or more design objects present within may deviate from the simulation time, thereby lowering the accuracy of the primary t-DCP. Therefore, even in this case, t-DCP accuracy may be increased by time alignment described in the s-DCP accuracy enhancement process. Therefore, all the processes for increasing the t-DCP accuracy is called t-DCP accuracy enhancement process in this patent. The parallel simulation method using t-DCP in the above-described patent includes a time parallel execution method using t-DCP or a time-division parallel execution method (ie, a time divisional parallel execution method using the t-DCP). Refers to only the parallel simulation method proposed by the present patent which divides the entire simulation section into two or more slices using t-DCP and performs parallel execution for each slice.

이와 같은 추상화 상위수준 모델 내지는 추상화 중간수준 모델을 이용한 시뮬레이션 결과를 추상화 하위수준 모델을 이용한 시뮬레이션에 활용하는 본 특허에서의 시뮬레이션 방법을 통해서 추상화 하위수준 모델을 이용한 시뮬레이션의 속도를 높일 수 있을 뿐만 아니라, 추상화 상위수준 모델과 추상화 하위수준 모델 간의 일관성 여부를 효과적으로 조사할 수 있다. 즉 추상화 상위수준 모델 내지는 추상화 중간수준 모델을 이용한 시뮬레이션 결과를 이용한 추상화 하위수준에서의 추상화 하위수준 모델을 대상으로 하는 시뮬레이션 결과가 추상화 상위수준 모델 내지는 추상화 중간수준 모델을 이용한 시뮬레이션 결과와 맞지 않는 결과이면 이는 바로 추상화 상위수준 모델과 추상화 하위수준 모델 간의 불일관성의 구체적 사례를 예시하는 것임으로 이의 원인을 분석하여 제거함으로서 다른 추상화 수준들에서 존재하는 모델 간의 일관성을 효과적으로 유지할 수 있다. The simulation method in this patent that utilizes the simulation results using the abstraction high-level model or the abstraction mid-level model for the simulation using the abstraction low-level model can not only speed up the simulation using the abstraction low-level model, You can effectively investigate the consistency between the abstraction high-level model and the abstraction low-level model. That is, if the simulation results for the abstraction lower-level model using the simulation results using the abstraction high-level model or the abstraction mid-level model do not match the simulation results using the abstraction high-level model or the abstraction mid-level model. This illustrates a specific example of inconsistency between the abstraction high-level model and the abstraction low-level model. By analyzing and eliminating the cause, it is possible to effectively maintain the consistency among the models existing at different levels of abstraction.

위에서 언급된 두가지 방식의 병렬시뮬레이션인 DPE와 TPE에서는 앞단 시뮬레이션과 후단 시뮬레이션이 동일한 추상화 수준의 동일한 설계검증 대상으로 시뮬레이션 을 하는 것도 가능하지만, 일반적으로는 앞단 시뮬레이션과 후단 시뮬레이션이 동일한 추상화 수준의 동일한 설계검증 대상으로 시뮬레이션을 하는 것이 아니고 다른 추상화 수준의 설계검증 대상으로 시뮬레이션을 하는 것이다. 즉, s-DCP 내지는 t-DCP를 신속하게 획득하기 위한 목적의 앞단 시뮬레이션은 상대적으로 추상화 수준이 높은 상위수준에서 모델링된 모델을 대상으로 하여서 이루어지는 것이 일반적이고, 원래의 시뮬레이션 목적을 위한 후단 시뮬레이션은 상대적으로 앞단 시뮬레이션에서 사용된 모델보다 추상화 수준이 낮은 하위수준에서 모델링된 모델을 대상으로 하여서 이루어진다는 것이다 (단, 이미 설명한 것과 같이, s-DCP를 이용하는 분산처리적병렬시뮬레이션에서는 s-DCP가 추상화 상위수준의 시뮬레이션 모델 자체내지는 시뮬레이션이 빠르게 수행되도록 최적화된 동일 추상화수준의 시뮬레이션 모델 자체도 될 수 있음으로, 앞단 시뮬레이션이 반드시 필요한 것은 아님을 주의한다). 또한, 본 특허에서는 시간적으로 앞서서 수행된 시뮬레이션 결과를 이용하여서 시간적으로 후에 수행되어지는 시뮬레이션을 빠르게 수행하는 것에 촛점 하나를 맞추고 있으며, 따라서 상기 시간적으로 앞서서 수행되는 시뮬레이션을 빠르게 수행하는 방법은 이 시뮬레이션보다 시간적으로 더 앞서서 수행되는 시뮬레이션 결과에서 s-DCP를 구하고 이를 이용한 본 특허에서의 분산처리적병렬방식의 시뮬레이션을 이용하거나 혹은 통상적인 다양한 분산병렬 시뮬레이션(일반적인 분산병렬 시뮬레이션) 방식을 이용하는 것도 가능하다.In the two types of parallel simulations mentioned above, DPE and TPE, it is possible for the leading and trailing simulations to simulate the same design at the same level of abstraction, but in general, the leading and trailing simulations have the same design with the same level of abstraction. The simulation is not to be verified, but to design verification at a different level of abstraction. That is, the front end simulation for the purpose of quickly obtaining s-DCP or t-DCP is generally performed on a model modeled at a higher level with a relatively high level of abstraction. This is achieved by targeting models that are modeled at lower levels of abstraction than those used in earlier simulations (as described previously, s-DCP is abstraction in distributed parallelism simulation using s-DCP). Note that the higher-level simulation model itself or the simulation model itself can be the same abstraction level optimized to perform the simulation quickly, so the earlier simulation is not necessary). In addition, the present patent focuses on one of performing a simulation that is performed later in time by using a simulation result performed earlier in time. Therefore, a method of performing the simulation performed earlier in time is faster than this simulation. It is also possible to obtain s-DCP from the simulation results performed earlier in time and use the distributed parallelism simulation in the present patent using the same, or use various conventional distributed parallel simulations (general distributed parallel simulation).

뿐만 아니라, 본 특허에서 제안하는 분산처리적병렬시뮬레이션과 별도의 특허 10-2004-93310에서 제시한 앞서서 수행된 시뮬레이션의 결과를 재활용하여서 1 이상의 설계객체가 수정된 경우에 수행되어지는 시뮬레이션을 신속하게 수행하는 인크리멘탈 시뮬레이션(incremental simulation)을 같이 활용하면 또 다른 효율적인 시뮬레이션이 가능하다. 즉 앞서서 수행된 시뮬레이션에서 수집된 1 이상의 설계객체들에 대한 동적정보(상태정보, 입력정보, 출력정보 등)을 활용하여서 디버깅 내지는 스펙 변경 등으로 인하여 1 이상의 설계객체들에 대한 수정이 이루어지고 난 후에 수행되는 시뮬레이션을 본 특허에서의 분산처리적병렬시뮬레이션으로 수행하는 경우에 시뮬레이션 처음(시뮬레이션 시간 0)에서부터 2 이상의 로컬시뮬레이션을 이용한 분산병렬시뮬레이션을 수행하는 대신에 특허 10-2004-93310에서 제시한 인크리멘탈 시뮬레이션 기법을 사용하여서 시뮬레이션 시간 0에서부터 특정 시뮬레이션 시점 ts까지는 수정이 이루어진 1 이상의 로컬설계객체들과 이들의 입력정보를 이용하거나 내지는 수정이 이루어진 1 이상의 로컬설계객체들과 수정이 이루어지지 않은 설계객체들의 일부분(예로 상태정보 저장이 용이하지 않은 테스트벤치 등과 같은 설계객체)들과 이들의 입력정보들을 이용하여서 단일 시뮬레이션 S_s으로 진행하고 ts 이후부터는 상기 단일 시뮬레이션을 분산처리적병렬시뮬레이션의 한 로컬시뮬레이션 S_l(i)으로 전환(2 이상의 로컬시뮬레이션들로 전환시키는 것도 가능)하는 동시에(단일 시뮬레이션 S_s를 한 로컬시뮬레이션 S_l(i)로 전환시키면 추가적인 컴파일이 필요없이 ts에서부터 중단없이 시뮬레이션을 진행할 수 있음), 상기 분산처리적병렬시뮬레이션의 1 이상의 다른 로컬시뮬레이션들에서는 상기 S_l(i)에서 수행되어지는 설계객체들 이외의 설계객체들(이 설계객체들은 수정이 이루어지지 않은 설계객체들임)이 이들의 수정이 이루어지기 전 시뮬레이션 과정에 서 수집된 ts(이벤트 구동 시뮬레이션의 경우에는 ts은 한 시점이 아니고 일정한 구간임)에서의 상태정보들을 가지고 ts에서부터 시뮬레이션을 진행하도록 한다면 시뮬레이션 시간 0에서부터 ts까지는 시뮬레이션 수행에 필요한 시뮬레이터의 라이센스 숫자를 최소화시킬 수 있는 추가적인 이점이 있다 (여기서 ts을 결정하는 것이 중요한데, ts은 시간적으로 시뮬레이션 시간 0에서 최대한 멀리 떨어져있으면서 동시에 ts까지는 수정에 의한 변경 이후의 시뮬레이션에서 수정이 이루어지지 않은 설계객체들의 시뮬레이션 결과는 수정 이전의 시뮬레이션 결과들과 동일하다는 조건을 만족하는 특정 체크포인트여야 함. 구체적 결정 방법은 특허 10-2004-93310을 참조). 본 특허에서 이와 같은 시뮬레이션 방식을 "인크리멘탈 시뮬레이션을 활용한 분산처리적병렬시뮬레이션" 내지는 "인크리멘탈 시뮬레이션을 활용한 분산처리적병렬수행 방식의 시뮬레이션"이라고 칭하기로 하며, 인크리멘탈 시뮬레이션의 자세한 방법은 별도의 특허 10-2004-93310을 참조하기로 한다.In addition, it is possible to quickly perform simulations performed when one or more design objects are modified by reusing the results of the distributed parallelism simulation proposed in this patent and the previous simulations presented in a separate patent 10-2004-93310. Another efficient simulation is possible by using the incremental simulation that is performed together. In other words, by using dynamic information (status information, input information, output information, etc.) of one or more design objects collected in the previous simulation, the one or more design objects are modified due to debugging or specification change. In the case where the simulation performed later is performed by the distributed parallelism simulation in the present patent, instead of performing distributed parallel simulation using two or more local simulations from the beginning of the simulation (simulation time 0), it is proposed in Patent 10-2004-93310. Using incremental simulation techniques, from the simulation time 0 to a specific simulation time ts, one or more local design objects that have been modified and one or more local design objects that have not been modified or made use of their input information or modified. Part of the design objects (eg Design objects such as testbenches, etc., which are not easy to store information, and their input information, proceed to a single simulation S_s, and after ts the single simulation is converted to a local simulation S_l (i) of distributed parallel simulation. (It is also possible to switch to two or more local simulations) (switching a single simulation S_s to one local simulation S_l (i) allows the simulation to proceed without interruption from ts without additional compilation), and the distributed parallelism In one or more other local simulations of the simulation, design objects other than the design objects performed in S_l (i) (these design objects are unmodified design objects) before the modification is made. Ts collected from ts (for event-driven simulations, ts is If you want to run the simulation from ts with the state information at the point and not the point, there is an additional advantage to minimize the number of licenses of the simulator required to run the simulation from simulation time 0 to ts (where ts is important. In particular, ts is a specific check that satisfies the condition that the simulation results of design objects that are as far apart as possible from simulation time 0 at the same time and that are not modified in the simulation after the modification by modification until ts are the same as the simulation results before the modification. Must be a point. See patent 10-2004-93310 for a specific determination method. In the present patent, such a simulation method is referred to as "distributive parallel simulation using incremental simulation" or "simulation of distributed parallel processing using incremental simulation". For a detailed method, refer to the separate patent 10-2004-93310.

상기 목적 외에 본 발명의 다른 목적 및 이점들은 첨부한 도면을 참조한 실시 예에 대한 상세한 설명을 통하여 명백하게 드러나게 될 것이다. 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 another example of the design verification apparatus according to the present invention;

면이다.Cotton.

도3 은, ESL 모델의 계층구조 일 예를 이에 대응되는 RTL 모델의 계층구조의 일 예와 비교하여서 개략적으로 도시한 도면이다. 3 is a diagram schematically illustrating an example of a hierarchical structure of an ESL model in comparison with an example of a hierarchical structure of a corresponding RTL model.

도4 는, RTL 모델의 계층구조 일 예를 이에 대응되는 GL 모델의 계층구조의 일 예와 비교하여서 개략적으로 도시한 도면이다. 이 예에서는 GL 모델에 바운더리 스캔셀을 가지고 있는 추가적인 계층구조를 나타내는 설계객체 387이 존재한다. 4 is a diagram schematically illustrating an example of the hierarchical structure of the RTL model in comparison with the example of the hierarchical structure of the GL model corresponding thereto. In this example, there is a design object 387 that represents an additional hierarchy with boundary scancells in the GL model.

도5 는, 분산병렬 시뮬레이션의 수행이 2 이상의 컴퓨터들이 컴퓨터네트워크로 연결된 상황에서 수행되어지는 상황의 일 예를 개략적으로 도시한 도면이다.5 is a diagram schematically showing an example of a situation in which the execution of distributed parallel simulation is performed in a situation where two or more computers are connected by a computer network.

도6 은, 추상화 상위수준 모델을 이용한 앞단 시뮬레이션에서 t-DCP를 획득하고 추상화 하위수준 모델을 이용한 후단 시뮬레이션을 시간분할적병렬수행으로 진행되는 일 예를 개략적으로 도시한 도면이다.FIG. 6 is a diagram schematically illustrating an example in which t-DCP is obtained in a front-end simulation using an abstraction high-level model and a time-division parallel execution of a back-end simulation using an abstraction low-level model is performed.

도7 은, 추상화 상위수준 모델을 이용한 앞단 시뮬레이션에서 s-DCP를 획득하고 추상화 하위수준 모델을 이용한 후단 시뮬레이션을 분산처리적병렬수행으로 진행되는 일 예를 개략적으로 도시한 도면이다.FIG. 7 is a diagram schematically illustrating an example in which s-DCP is obtained in a front-end simulation using an abstraction high-level model and a post-process simulation using the abstraction low-level model is performed by distributed parallelism.

도8 은, 본 특허에서 제시한 분산처리적병렬시뮬레이션을 위하여 부가되는 설계코드(부가 코드) 내부를 구성하는 컴퍼넌트들의 구성 일 예를 개략적으로 도시한 도면이다. 즉, 분산병렬 시뮬레이션 환경을 구성하는 각 로컬시뮬레이터 내지는 로컬하드웨어기반검증플랫폼(본 특허에서 하드웨어기반검증플랫폼은 하드웨어에뮬레이터 내지는 시뮬레이션가속기 내지는 FPGA 보드를 통칭하며, 현재 이와 같은 하드웨어기반검증플랫폼의 예로서는 Cadence사의 Palladium 시리즈/Extreme 시리즈, Mentor사의 Vstation 시리즈, Tharas사의 Hammer 시리즈, Fortelink사의 Gemini 시리즈, Aptix사의 SystemExplorer 시리즈, EVE사의 ZeBu 시리즈, Aldec사의 HES 시리즈, ProDesign사의 CHIPit 시리즈, HARDI사의 HAPS 시리즈, S2CInc사의 IP porter 시리즈 등이 있음)에서 수행되는 검증 대상 모델 M의 일부분(404)(이들 로컬시뮬레이터들과 로컬하드웨어기반검증플랫폼들에서 수행되는 검증 대상 모델의 일부분들을 모두 모아서 합치게 되면 검증 대상 모델 M이 됨)에 부가되어지는 부가 코드(62)의 행태(behavior)를 컴퍼넌트들로 구성한 일 예를 개략적으로 도시한 도면이다. 따라서 상기의 부가 코드(62)는 모델에 부가되어져서 도8 에 보이는 컴퍼넌트들(예상입출력이용-런/실제입출력이용-런 제어모듈(54), 예상입력/실제입력 선택모듈(56), 예상출력/실제출력 비교모듈(58), 예상입력/실제입력 비교모듈(59), s-DCP 생성/저장 모듈(60))의 기능을 수행할 수 있어야 한다. 상기 각 모듈별로 행태를 다시 정리하면 다음과 같다. 예상입출력이용-런/실제입출력이용-런 제어모듈(54)은 예상출력/실제출력 비교모듈(58)과 예상입력/실제입력 비교모듈(59)과 분산병렬 시뮬레이션을 위한 통신 및 동기화 모듈(64)로부터 입력들을 받아서 이 입력들의 값들과 현재 로컬시뮬레이션이 예상입출력이용-런 방식으로 진행되는지 혹은 실제입출력이용-런 방식으로 진행되는지의 현 상태(따라서, 예상입출력이용-런/실제입출력이용-런 제어모듈(54)은 내부적으로 현재 로컬시뮬레이션이 예상입출력이용-런 방식으로 진행되는지 혹은 실제입출력이용-런 방식으로 진행되는지를 판단할 수 있는 상태변수를 가지고 있음)에 따라서 예상입력/실제입력 선택모듈(56)로 출력을 생성하여 예상입력/실제입력 선택모듈(56)이 예상입력을 선택하게 하던지, 내지는 실제입력을 선택하게 하던지, 내지는 실제입력을 선택하기 전에 롤백이 필요하게 되면 롤백 수행을 제어하게 된다. 즉, 현재 로컬시뮬레이션이 예상입출력이용-런 방식으로 진행 중에 있으면서(따라서 예상입출력이용-런/실제입출력이용-런 제어모듈(54)은 현재 예상입력/실제입력 선택모듈(56)이 예상입력을 선택하도록 하는 출력을 예상입력/실제입력 선택모듈(56)에 보내어 제어 중) 동시에 예상출력/실제출력 비교모듈(58)에서부터 예상출력과 실제출력이 다르다는 판단이 입력으로서 오게되면 예상입출력이용-런/실제입출력이용-런 제어모듈(54)은 예상입력/실제입력 선택모듈(56)이 실제입력을 선택하도록 출력을 예상입력/실제입력 선택모듈(56)에 보내고 내부의 현재 상태변수를 예상입출력이용-런에서 실제입출력이용-런으로 스위칭하고 동시에 분산병렬 시뮬레이션을 위한 통신 및 동기화 모듈(64)로부터 롤백을 위한 특정 롤백 시간이 입력되면 상기 특정 롤백 시간으로 롤백을 수행할 수 있게 제어도 수행하며, 현재 로컬시뮬레이션이 실제입출력이용-런 방식으로 진행되고 있으면서(따라서 예상입출력이용-런/실제입출력이용-런 제어모듈(54)은 현재 예상입력/실제입력 선택모듈(56)이 실제입력을 선택하도록 하는 출력을 예상입력/실제입력 선택모듈(56)에 보내어 제어 중) 동시에 예상입력/실제입력 비교모듈(59)에서부터 예상입력과 실제입력이 일정 횟수 이상 같다는 판단이 입력으로 오게되면 예상입출력이용-런/실제입출력이용-런 제어모듈(54)은 예상입력/실제입력 선택모듈(56)이 예상입력을 선택하도록 출력을 예상입력/실제입력 선택모듈(56)에 보내고 동시에 내부의 현재 상태변수를 실제입출력이용-런에서 예상입출력이용-런으로 스위칭하게 된다. 뿐만 아니라, 예상입출력이용-런/실제입출력이용-런 제어모듈(54)은 내부의 현재 상태를 분산병렬 시뮬레이션을 위한 통신 및 동기화 모듈(64)를 통하여 다른 로컬시뮬레이션들에게 알리기 위한 두개의 출력(실제입출력이용-런 필요, 예상입출력이용-런 가능)을 분산병렬 시뮬레이션을 위한 통신 및 동기화 모 듈(64)로 보내고, s-DCP 생성/저장 모듈(60)을 제어하여서 s-DCP 생성/저장 모듈(60)이 맞는 예상입력 내지는 예상출력을 맞는 타이밍에 출력하도록 한다. 예상출력/실제출력 비교모듈(58)은 s-DCP 생성/저장 모듈(60)에 저장된 예상출력과 로컬시뮬레이터에서 수행되는 설계 검증 대상 모델의 일부분(404)에서부터 로컬시뮬레이션 실행 과정에서 실제적으로 나오게 되는 실제출력을 비교하여, 이 비교가 일치하면 예상입출력이용-런/실제입출력이용-런 제어모듈(54)에 일치함을 출력으로 보내고 이 비교가 불일치하면 예상입출력이용-런/실제입출력이용-런 제어모듈(54)에 불일치함을 출력으로 보내는 동시에 분산병렬 시뮬레이션을 위한 통신 및 동기화 모듈(64)로 롤백을 위한 현재의 시뮬레이션 시간을 보내어 다른 로컬 시뮬레이션들에게 이들 정보(롤백을 위한 현재의 시뮬레이션 시간)를 보낼 수 있게 한다. FIG. 8 is a diagram schematically showing an example of configuration of components constituting the interior of a design code (additional code) added for distributed processing parallel parallel simulation proposed in the present patent. In other words, each local simulator or local hardware-based verification platform constituting a distributed parallel simulation environment (in this patent, hardware-based verification platform is collectively referred to as a hardware emulator, a simulation accelerator, or an FPGA board. Currently, an example of such hardware-based verification platform is Cadence Corporation. Palladium series / Extreme series, Mentor's Vstation series, Tharas's Hammer series, Fortelink's Gemini series, Aptix's SystemExplorer series, EVE's ZeBu series, Aldec's HES series, ProDesign's CHIPit series, HARDI's HAPS series, S2CInc's IP porter Part of the model to be verified 404 performed on the series (e.g., series), etc. (a combination of all parts of the model to be tested performed on these local simulators and local hardware-based verification platforms) becomes the model to be verified. Added to) Is a diagram schematically showing an example in which the behavior of the code 62 is composed of components. Therefore, the additional code 62 is added to the model so that the components shown in Fig. 8 (expected input / output use-run / actual input output-run control module 54, expected input / actual input selection module 56, expected) The output / actual output comparison module 58, the expected input / actual input comparison module 59, and the s-DCP generation / storage module 60) should be able to perform the functions. The behavior of each module is summarized as follows. The expected I / O use-run / actual input output-run control module 54 communicates with the expected output / actual output comparing module 58 and the expected input / actual input comparing module 59 and the synchronization and synchronization module 64 for distributed parallel simulation. Values from these inputs and the current state of whether the current local simulation proceeds in the expected I / O-run mode or in the actual I / O-run mode (thus the expected I / O-run / actual I / O-run) The control module 54 internally selects the predicted input / actual input according to the state variable for determining whether the current local simulation is performed in the expected input / output using-run method or the actual input / output using-run method). The output is generated by the module 56 so that the expected input / actual input selection module 56 selects the expected input, or selects the actual input, or the actual input. If a rollback is required before selecting the force, control rollback execution. That is, while the local simulation is currently in progress in the I / O-run manner (thus, the I / O-run / real-input-use-run control module 54) currently expects the input / actual input selection module 56 to input the expected input. Sending an output to select to the expected input / actual input selection module 56 and controlling it) At the same time, when it is determined that the expected output and the actual output are different from the expected output / actual output comparison module 58, the estimated input / output use-run The real input / output use-run control module 54 sends the output to the predicted input / actual input selection module 56 so that the predictive input / actual input selection module 56 selects the actual input and sends the current state variable inside the predicted input / output. When a specific rollback time for a rollback is entered from the communication-synchronization module 64 for distributed parallel simulation and at the same time switching from the use-run to the actual I / O-run, the specific rollback It also controls to perform a rollback between the two. Also, while the local simulation is currently being performed in the actual I / O-run manner (the estimated I / O-run / actual I / O-run control module 54) is executed. Output is sent to the expected input / actual input selection module 56 to allow the actual input selection module 56 to select the actual input.At the same time, the expected input and the actual input are constant from the expected input / actual input comparison module 59. When it is determined that the number of times is equal to or greater than the input, the expected input / output use-run / actual input output using-run control module 54 selects the output from the expected input / actual input so that the expected input / actual input selection module 56 selects the expected input. It sends to module 56 and at the same time switches the internal current state variable from the actual I / O run to the expected I / O run. In addition, the expected I / O-run / actual I / O-run control module 54 has two outputs for informing other local simulations via the communication and synchronization module 64 for distributed parallel simulation. S-DCP generation / storage by sending the actual I / O-run, expected I / O-run possible) to the communication and synchronization module 64 for distributed parallel simulation, and controlling the s-DCP generation / storage module 60. The module 60 causes the corrected input or the expected output to be output at the correct timing. The predicted output / actual output comparison module 58 actually comes out of the local simulation execution process from the part 404 of the design verification target model performed in the local simulator and the predicted output stored in the s-DCP generation / storage module 60. Compares the actual output and if the comparison matches, the output is expected to match the expected I / O-run / actual input-output-run control module 54 and if this comparison is inconsistent, the expected I / O-run / actual-use output-run Sends the current simulation time for rollback to the communication and synchronization module 64 for distributed parallel simulations as well as outputs a mismatch to the control module 54 to the other local simulations for this information (the current simulation time for rollback). To send).

예상입력/실제입력 비교모듈(59)는 s-DCP 생성/저장 모듈(60)에 저장된 예상입력과 분산병렬 시뮬레이션을 위한 통신 및 동기화 모듈(64)로부터 오는 다른 1 이상의 로컬시뮬레이션으로부터의 실제입력을 비교하여 이 비교가 일정 횟수만큼 일치하게 되면 이를 예상입출력이용-런/실제입출력이용-런 제어모듈(54)에 출력으로 보내게 된다. 예상입력/실제입력 비교모듈(59)과 예상출력/실제출력 비교모듈(58)은 비트 시그널 단위와 시뮬레이션 절대시간만을 기준으로 하여서 실제값과 예상값을 비교하는 것이 아니라, 앞서서 이미 설명한대로 "시간맞춤"과 "트란젝션화를 통한 s-DCP 정확도증강 과정" 등을 통하여 실제값과 예상값의 같음과 다름을 판단한다는 것에 유의한다. 마지막으로, 예상입력/실제입력 선택모듈(56)은 예상입출력이용-런/실제입출력이용-런 제어모듈(54)의 출력으로써 통신 및 동기화 모듈(64)로부터 오 는 실제입력과 s-DCP 생성/저장 모듈(56)에 저장된 예상입력 중에서 하나를 선택하여서 이 로컬시뮬레이터에서 수행되는 설계 검증 대상 모델의 일부분(404)에 입력으로 인가한다. 만일, 검증 대상 모델 M의 일부분(404)이 로컬하드웨어기반검증플랫폼 상에서 시뮬레이션가속모드로 수행되는 경우에는 부가되는 부가 코드(62)는 합성가능한(synthesizable) 형태로 존재하여야 하며, 검증 대상 모델 M의 일부분(404)이 로컬시뮬레이터 상에서 수행되는 경우에는 부가되는 부가 코드(62)는 시뮬레이션가능한 형태로 존재하기만 하면 됨으로 이 부가되는 부가 코드는 HDL(예로 Verilog, VHDL 등) 코드 내지는 SDL(예로 SystemC, SystemVerilog 등) 코드 내지는 C/C++ 코드 내지는 이들의 조합 형태로 다양하게 존재할 수 있다. 뿐만 아니라, 이와 같은 부가되는 부가 코드(62)는 본 특허의 검증 소프트웨어에 의하여 자동적으로 생성되어진다. 도 8에서 예시한 예에서는 부가 코드(62) 전체가 HDL 시뮬레이터 외부에서 C/C++ 내지는 SystemC 코드 형태로 존재하여서 VPI/PLI/FLI를 통하여 HDL로 표현된 검증 대상 모델 M의 일부분(404)과 인터페이스되어 연동되어지는 상황을 나타내고 있지만, 앞서서 이미 언급되어진 것과 같이 부가 코드(62)의 일부분은 HDL도 표현되어지고 나머지는 C/C++ 내지는 SystemC 코드 형태로 표현되어지는 것도 가능하다. 또한 도 8에서 통상적인 분산병렬 시뮬레이션에서 필요한 통상적인 통신 및 동기화 모듈은 분산병렬 시뮬레이션을 위한 통신 및 동기화 모듈(64)로 표시되어 있다. 앞서서 이미 언급된 것과 같이 도8 에서는 s-DCP 생성/저장 모듈(60)에 저장된 s-DCP는 앞선 시뮬레이션 수행 과정에서 얻어진 동적정보로부터 해당 로컬시뮬레이션에서 수행되는 로컬설계객체의 입출력정보를 얻고 이를 예상입력(50) 과 예상출력(52)으로 사용하고 있는 것임으로, 상기 예상입력(50)과 예상출력(52)은 파일형태로 저장되어져서 HDL 코드(예로, Verilog에서의 $readmemb, 혹은 $readmemh) 내지는 VPI/PLI/FLI를 이용하여 C/C++ 코드에 의하여 읽어지도록 하는 것도 가능하다 (s-DCP에 추상화 상위수준의 모델을 포함시켜, 이 추상화 상위수준의 모델을 추상화 하위수준의 모델인 로컬설계객체와 같이 시뮬레이션하면서 상기 추상화 상위수준의 모델에서부터 예상입력과 예상출력을 동적으로 생성시켜서 이를 상기 로컬설계객체에 대한 시뮬레이션에 이용하는 예는 도32 를 참조함).The predicted input / actual input comparison module 59 receives the actual input from the predicted input stored in the s-DCP generation / storage module 60 and other one or more local simulations from the communication and synchronization module 64 for distributed parallel simulation. By comparison, if the comparison is matched a predetermined number of times, it is sent as an output to the expected I / O use-run / actual input output use-run control module 54. The predicted input / actual input comparison module 59 and the predicted output / actual output comparing module 58 do not compare the actual value with the expected value based only on the bit signal unit and the simulation absolute time. Note that it is determined that the difference between the actual value and the expected value is different through the "fit" and the "s-DCP accuracy process through the transaction". Finally, the expected input / actual input selection module 56 is the output of the expected input / output use-run / actual input output-run control module 54 to generate the actual input from the communication and synchronization module 64 and the s-DCP. One of the expected inputs stored in the / storage module 56 is selected and applied as input to the portion 404 of the design verification target model performed in this local simulator. If the part 404 of the verification target model M is executed in the simulation acceleration mode on the local hardware-based verification platform, the additional code 62 to be added must exist in a synthesizable form. When the portion 404 is executed on the local simulator, the additional code 62 to be added only needs to be present in a simulated form. SystemVerilog, etc.) code, or C / C + + code or a combination thereof may be present in various forms. In addition, such additional code 62 is automatically generated by the verification software of the present patent. In the example illustrated in FIG. 8, the entire additional code 62 is present in the form of C / C ++ or SystemC code outside the HDL simulator, and interfaces with a part 404 of the verification target model M expressed in HDL through VPI / PLI / FLI. As described above, a part of the additional code 62 may be represented as HDL, and the rest may be expressed as C / C ++ or SystemC code. Also shown in FIG. 8 is a typical communication and synchronization module required for a conventional distributed parallel simulation as a communication and synchronization module 64 for distributed parallel simulation. As mentioned above, in FIG. 8, the s-DCP stored in the s-DCP generation / storage module 60 obtains the input / output information of the local design object performed in the local simulation from the dynamic information obtained in the previous simulation process, and predicts it. Since the input 50 and the expected output 52 are used as the input 50 and the expected output 52, the expected input 50 and the expected output 52 are stored in a file format so that the HDL code (for example, $ readmemb or $ readmemh in Verilog) is stored. ) Or VPI / PLI / FLI so that it can be read by C / C ++ code (by including an abstraction high-level model in s-DCP, so that this abstraction high-level model is a local An example of dynamically generating expected input and expected output from the model of the upper level of abstraction while simulating with a design object and using it for simulation of the local design object. See FIG. 32).

특히, 도8 내지는 도32 와 같은 구성으로 분산처리적병렬시뮬레이션에서의 각 로컬시뮬레이션들을 위한 부가 코드를 구성하게 되면 예상입출력이용-런 수행을 모든 로컬시뮬레이션들이 일관되게 똑같이 예상입출력이용-런 수행으로 진행할 수 있을 뿐만 아니라(즉 예상입출력이용-런 수행이 되는 경우는 로컬시뮬레이션들 모두가 함께 예상입출력이용-런 방식으로 수행됨), 각 로컬시뮬레이션별로도 예상입출력이용-런 수행을 진행(예로, 특정한 로컬시뮬레이션들은 실제입출력이용-런 방식으로 진행되고 나머지 로컬시뮬레이션들은 예상입출력이용-런 방식으로 진행)할 수도 있다. 이와 같이 각 로컬시뮬레이션별로도 예상입출력이용-런 수행을 진행하게 되는 경우에 분산병렬 시뮬레이션 전체로 보면 분산병렬 시뮬레이션의 통신 오버헤드 내지는 동기 오버헤드를 완전하게 제거할 수는 없지만(모든 로컬시뮬레이션들이 모두 동일하게 예상입출력이용-런 방식으로 수행하게 되는 상황에서는 통신 오버헤드와 동기 오버헤드는 전혀 없게 되지만, 이 경우에는 특정 로컬시뮬레이션들은 실제입출력이용-런 방식으로 진행되고 다른 로컬시뮬레이션들은 예상입출력이용-런 방식 으로 진행됨) 통신 오버헤드 내지는 동기 오버헤드를 상당하게 낮추는 것이 가능함으로 많은 이득을 기대할 수 있다. In particular, if the additional code for each local simulation in the distributed parallelism simulation is configured in the configuration as shown in Figs. 8 to 32, the prediction I / O execution is performed to all the local simulations with the same prediction I / O execution. In addition to being able to proceed (i.e., if an I / O run is performed, all local simulations are performed together in an I / O run method), and each local simulation can also run an I / O run (e.g., The local simulations can be run in an actual I / O run and the rest of the local simulations can be run in an expected I / O run. In this case, when the I / O run is performed for each local simulation, the communication overhead or the synchronization overhead of the distributed parallel simulation cannot be completely eliminated. Similarly, there is no communication overhead and no synchronous overhead in a situation where the expected I / O-run method is performed, but in this case certain local simulations are run in real I / O and other local simulations are expected in I / O. It is possible to considerably reduce the communication overhead or the synchronization overhead.

도9 는, 레지스터전송수준에서의 시그널 단위의 사이클정확한 버스 동작상황과 트란젝션수준에서의 트란젝션 단위의 사이클정확한 버스 동작상황의 일 예를 개략적으로 도시한 도면이다.FIG. 9 is a diagram schematically showing an example of cycle accurate bus operation in signal units at the register transfer level and cycle accurate bus operation in transaction units at the transaction level.

도10 은, 도3 에서 예시한 ESL 모델내의 설계객체들과 이에 대응되는 RTL 모델내의 설계객체들을 개략적으로 도시한 도면이다.FIG. 10 is a diagram schematically showing design objects in the ESL model illustrated in FIG. 3 and corresponding design objects in the RTL model.

도11 은, 도10 에서 예시한 ESL 모델내의 설계객체들 각각을 대응되는 RTL 모델내의 설계객체로 대체하여서 추상화 중간수준의 혼합된 설계객체 DO_t_mixed(i)들을 생성하는 일 예를 개략적으로 도시한 도면이다. 도11 에서 예시한 경우와 같이 ESL 모델에서부터 점진적 구체화 과정으로 생성된 ESL/RTL 추상화 혼합수준의 모델(예로 DO_t_mixed(2))을 생성한 경우에 이 ESL/RTL 추상화 혼합수준의 모델의 시뮬레이션 속도가 추상화 상위수준의 ESL 모델의 시뮬레이션 속도에 비하여 상당히 떨어지는 경우에도 본 특허에서의 분산처리적병렬수행 방식을 통하여 ESL/RTL 추상화 혼합수준의 모델에 대한 시뮬레이션 속도를 높일 수 있다. FIG. 11 is a diagram schematically showing an example of generating mixed design objects DO_t_mixed (i) having an intermediate level of abstraction by replacing each of the design objects in the ESL model illustrated in FIG. 10 with the design objects in the corresponding RTL model. to be. When the ESL / RTL abstraction mixed level model (for example, DO_t_mixed (2)) generated from the ESL model by the gradual refinement process is generated as shown in FIG. Even if it is considerably lower than the simulation speed of the high-level abstraction ESL model, the distributed processing parallel execution method in this patent can increase the simulation speed for the model of the mixed ESL / RTL abstraction level.

구체적 예로, 도11 에서 DO_t_mixed(2)의 경우에 분산처리적병렬수행 방식의 분산병렬 시뮬레이션을 두개의 로컬시뮬레이션으로 구성하고, 하나의 로컬시뮬레이션에서는 설계객체 DO2_rtl와 트란젝션과 RTL간의 변환을 위한 트란젝터를 수행시키고 나머지 하나의 로컬시뮬레이션에서는 다른 모든 트란젝션 수준의 설계객체들을 수행시키도록 구성하게 되면 ESL/RTL 추상화 혼합수준의 모델 DO_t_mixed(2)의 시뮬 레이션 속도를 모델 DO_t_mixed(2) 전체를 하나의 시뮬레이션으로 수행하는 것에 비하여 효과적으로 높일 수 있다. 물론, 3 이상의 로컬시뮬레이션으로 구성되는 분선처리적병렬시뮬레이션 방식의 분산병렬 시뮬레이션을 이용하여서 추상화 혼합수준의 모델의 시뮬레이션 속도를 높이는 것도 일반적으로 가능하다. As a specific example, in the case of DO_t_mixed (2) in FIG. 11, a distributed parallel simulation of a distributed processing parallel execution method is composed of two local simulations. If you run the project and configure the other local simulation to run all other transaction-level design objects, you can set the simulation speed of the model DO_t_mixed (2) at the ESL / RTL abstraction mixed level to the entire model DO_t_mixed (2). It can be effectively increased as compared with the simulation. Of course, it is also generally possible to speed up the simulation of the model of the abstraction mixed level by using distributed parallel simulation of a parallel processing simulation method composed of three or more local simulations.

도12 는, 도 11에서 예시한 여섯 개의 혼합된 설계객체 DO_t_mixed(1), DO_t_mixed(2), .., DO_t_mixed(6)를 이용한 여섯의 혼합 시뮬레이션의 독립적 병렬 실행과 이 실행 과정에서 1 이상의 시뮬레이션 시점들에서 수집된 상태정보들을 이용하여서 후단 시뮬레이션 단계인 RTL 모델에 대한 시뮬레이션을 시간분할적병렬수행으로 수행하는 일 예를 개략적으로 도시한 도면이다.12 shows independent parallel execution of six mixed simulations using the six mixed design objects DO_t_mixed (1), DO_t_mixed (2), .., DO_t_mixed (6) illustrated in FIG. FIG. 1 is a diagram schematically illustrating an example of performing a time-partitioned parallel simulation of the RTL model, which is a post-simulation step, using state information collected at time points.

도13 은, 점진적 구체화 과정을 통하여 처음 추상화 수준에서부터 마지막 추상화 수준으로 진행되는 설계 및 검증 과정의 일 예를 개략적으로 도시한 도면이다.FIG. 13 schematically illustrates an example of a design and verification process that proceeds from an initial level of abstraction to a final level of abstraction through a gradual refinement process.

도14 는, 점진적 구체화 과정을 거쳐서 트란젝션 수준의 모델에서부터 RTL 모델을 거쳐서 게이트수준의 모델까지 생성되는 과정의 일 예를 개략적으로 도시한 도면이다.14 is a diagram schematically showing an example of a process of generating from a transaction level model through a RTL model to a gate level model through a gradual specification process.

도15 는, 점진적 구체화 과정을 거쳐서 사이클정확 트란젝션 수준의 모델을 이용한 검증에서부터 RTL 모델을 이용한 검증을 거쳐서 게이트수준의 모델을 이용한 검증까지 진행되는 과정에 s-DCP 내지는 t-DCP를 이용하여서 추상화 하위수준 모델에 대한 시뮬레이션을 분산처리적병렬수행 내지는 시간분할적병렬수행으로 진행하는 상황의 일 예를 개략적으로 도시한 도면이다. 도면에서 DCP는 s-DCP 내지는 t-DCP를 가르킨다.15 is an abstraction using s-DCP or t-DCP in the process of progressing from a cycle accurate transaction level model through a gradual specification process to a verification using a RTL model and a gate level model. A diagram schematically illustrating an example of a situation in which a simulation of a low-level model is performed in a distributed processing parallel execution or a time division parallel processing. In the figure, DCP refers to s-DCP or t-DCP.

도16 은, 본 특허에서의 시뮬레이션 방법을 진행하는 예제 모델의 일부분을 개략적으로 도시한 도면이다.Fig. 16 is a diagram schematically showing a part of an example model for carrying out the simulation method in the present patent.

도17 과 도18 과 도19 는, 도16 에서 예시한 예제 모델을 분산처리적병렬시뮬레이션으로 수행하기 위하여 본 특허의 검증 소프트웨어를 이용하여 부가 코드를 부가한 상황의 일 예를 부분적으로 나누어서 개략적으로 도시한 도면들이다.17 and 18 and 19 schematically illustrate an example of a situation in which an additional code is added by using the verification software of the present patent to perform the distributed parallelism simulation of the example model illustrated in FIG. Figures shown.

도20 은, 분산처리적병렬수행/단일수행 혼용방식의 수행 상황의 일 예를 개략적으로 도시한 도면이다.20 is a diagram schematically showing an example of a performance situation of a distributed processing parallel execution / single performance mixed method.

도21 은, 시뮬레이션가속을 통한 시뮬레이션을 분산처리적병렬수행으로 진행함으로서 시뮬레이터와 하드웨어기반검증플랫폼 간의 동기 오버헤드 및 통신 오버헤드를 감소시키는 상황의 일 예를 개략적으로 도시한 도면이다. 즉 통상적인 시뮬레이션가속 기법은 모델에서 합성가능한 설계객체(통상적으로 DUV)는 하드웨어기반검증플랫폼 내의 1 이상의 FPGA 내지는 1 이상의 불리안프로세서에 구현하고 합성가능하지 않은 설계객체(통상적으로 TB)는 시뮬레이터에 구현하여 이들을 물리적으로 연결(예로 PCI를 통하여 연결)하여 하드웨어기반검증플랫폼과 시뮬레이터를 병렬적으로 연동시키는 것임으로 2개의 로컬시뮬레이션을 통한 분산병렬 수행되어지는 것과 동일하다. 따라서 본 특허에서 제안한 분산처리적병렬수행 방식을 통상적인 시뮬레이션가속에서 아무 변경없이 적용가능하며, 이를 통하여 통상적인 시뮬레이션가속에서 존재하는 하드웨어기반검증플랫폼과 시뮬레이터 간의 통신 오버헤드와 동기 오버헤드를 최소화시키는 것도 가능하다. FIG. 21 is a diagram schematically illustrating an example of a situation in which synchronization overhead and communication overhead between the simulator and the hardware-based verification platform are reduced by proceeding the simulation through simulation acceleration to distributed parallel execution. That is, a typical simulation acceleration technique implements a design object (typically a DUV) that can be synthesized in a model on one or more FPGAs or one or more Boolean processors in a hardware-based verification platform and a non-synthesizable design object (typically a TB) on a simulator. It is implemented by physically connecting them (for example, through PCI) to connect the hardware-based verification platform and the simulator in parallel, which is the same as distributed parallel execution through two local simulations. Therefore, the distributed processing parallel execution method proposed in this patent can be applied without any change in the conventional simulation acceleration, thereby minimizing the communication overhead and the synchronization overhead between the hardware-based verification platform and the simulator existing in the conventional simulation acceleration. It is also possible.

이와 같은 시뮬레이션가속에서의 특정한 시뮬레이션 수행 SA_run(j)에서 사용되는 예상입력과 예상출력은 다른 경우들과 마찬가지로 SA_run(j)보다 시간적으로 앞서서 수행되어진 선행 시뮬레이션 수행 SIM_run(i)의 시뮬레이션 과정에서 수집된 동적정보로부터 얻어진다 (SIM_run(i)과 SA_run(j) 사이에 스펙 변경 내지는 디버깅 과정을 통하여 모델 내의 1 이상의 설계객체에 대한 부분적 변경이 일어날 수도 있다). 또한, 상기 선행 시뮬레이션 수행 SIM_run(i)는 SA_run(j)가 수행되는 동일한 하드웨어기반검증플랫폼을 시뮬레이터와 같이 이용하여서 수행되어질 수 있고, 이 뿐만 아니라, SA_run(j)가 수행되는 동일한 하드웨어기반검증플랫폼이 아닌 별도의 1 내지는 2 이상의 시뮬레이터만을 이용(이 경우 모델 전체가 상기 1 내지는 2 이상의 시뮬레이터만을 사용해서 시뮬레이션되어짐)하여서 시뮬레이션되는 것 또한 가능한데 이와 같은 경우에는 상기 별도의 1 내지는 2 이상의 시뮬레이터만을 이용하여서 시뮬레이션되는 모델의 추상화수준이 하드웨어기반검증플랫폼으로 수행되는 설계객체와 같은 추상화 수준일 수도 있지만 시뮬레이션의 속도를 높이기 위하여서 하드웨어기반검증플랫폼으로 수행되는 설계객체보다 높은 추상화 수준일 수도 있다. 예로, 하드웨어기반검증플랫폼으로 수행되는 설계객체 DUV가 RTL이면 시뮬레이션되는 모델(이 모델은 DUV를 포함하고 있음)의 추상화 수준은 ca-트란젝션수준 모델이거나, 하드웨어기반검증플랫폼으로 수행되는 설계객체 DUV가 GL이면 시뮬레이션되는 모델(이 모델은 DUV를 포함하고 있음)의 추상화 수준은 RTL 모델일 수 있다. 즉, 통상적인 시뮬레이션가속의 경우에도 본 특허에서의 분산처리적병렬수행 방식을 채용함으로서 시뮬레이션가속의 진행 전 과정을 1회 이상의 예상입출력이용-런 진행 과정과, 필요시에 1회 이상의 실제입출력이용-런 진행 과정이 번갈아 가 면서 진행되는 것으로 수행가능하며, 이전 시뮬레이션 진행에서 수집된 동적정보에서부터 얻어진 높은 정확도의 예상 입력과 예상 출력을 사용함으로서 시뮬레이션가속 진행의 대부분의 시간을 예상입출력이용-런 방식으로 진행 가능하게 함으로서 통신 오버헤드와 동기 오버헤드를 크게 감소시켜서 시뮬레이션가속의 속도를 크게 높이는 것이 가능하다. In this simulation acceleration, the predicted input and the predicted output used in SA_run (j) are collected during the simulation of SIM_run (i). Obtained from dynamic information (partial changes to one or more design objects in the model may occur through a specification change or debugging process between SIM_run (i) and SA_run (j)). Further, the preceding simulation execution SIM_run (i) can be performed using the same hardware-based verification platform on which SA_run (j) is performed, as well as the same hardware-based verification platform on which SA_run (j) is performed. It is also possible to simulate by using only one or two or more simulators (in this case, the entire model is simulated using only one or more simulators). In this case, only one or more simulators are used. The abstraction level of the model to be simulated may be the same level of abstraction as the design object performed by the hardware-based verification platform, but may be higher than the design object performed by the hardware-based verification platform to speed up the simulation. For example, if the design object DUV performed with the hardware-based verification platform is RTL, the level of abstraction of the simulated model (which contains the DUV) is the ca-transaction level model, or the design object DUV performed with the hardware-based verification platform. Is GL, the level of abstraction of the model being simulated (this model contains a DUV) can be an RTL model. In other words, even in the case of normal simulation acceleration, the distributed processing parallel execution method of the present patent is adopted, so that the entire process of simulation acceleration is performed at least once in the I / O process and at least one actual I / O process is required. This process can be performed by alternating the run process. By using the high accuracy predicted input and predicted output obtained from the dynamic information collected in the previous simulation process, most of the time of the acceleration process is estimated. It is possible to significantly increase the speed of simulation acceleration by greatly reducing communication overhead and synchronization overhead.

단, 이와 같은 예상 입력과 예상 출력을 저장하기 위한 하드웨어기반검증플랫폼에 존재하는 메모리의 용량이 충분이 큰 경우에는 모든 예상 입력과 예상 출력을 하드웨어기반검증플랫폼에 존재하는 메모리에 이들 전부를 한번에 저장시키고, 하드웨어기반검증플랫폼에 존재하는 메모리의 용량이 크지 않은 경우에는 모든 예상 입력과 예상 출력을 하드웨어기반검증플랫폼에 연결되어진 컴퓨터 상의 대용량의 기억장치(하드디스크 내지는 주기억장치)에 우선 저장시키고, 하드웨어기반검증플랫폼에는 예상 입력과 예상 출력의 일부분만을 저장할 수 있는 일정크기의 버퍼를 두고 시뮬레이션가속 실행 과정에서 필요한 부분만을 동적으로 상기 컴퓨터 상의 대용량의 기억장치에서부터 상기 버퍼로 버스트(burst) 방식으로 옮겨서 처리하는 방식을 채용할 수도 있다.However, if there is enough memory in the hardware-based verification platform to store these expected inputs and expected outputs, all the expected inputs and expected outputs are stored in the memory existing in the hardware-based verification platform at once. If the amount of memory in the hardware-based verification platform is not large, all expected inputs and expected outputs are first stored in a large amount of memory (hard disk or main memory) on the computer connected to the hardware-based verification platform. The base verification platform has a buffer of a certain size that can store only a part of the expected input and expected output, and dynamically processes only the parts needed during the simulation acceleration process from the mass storage on the computer to the buffer. We adopt way to May.

그리고 하드웨어기반검증플랫폼 상에서 수행되는 설계객체에 대한 롤백이 필요한 경우에는 상용 하드웨어기반검증플랫폼(예로 Cadence사의 Palladium 시리즈/Extreme 시리즈, Mentor사의 Vstation 시리즈, EVE사의 ZeBu 시리즈, Fortelink사의 Gemini 시리즈, Tharas사의 Hammer 시리즈 등)에서 제공하는 롤백 기능을 이용하거나 내지는 별도의 특허(US 6,701,491)에서 제안된 출력탐침/입력탐침 기능을 이용하거나 내지는 설계객체 내에 존재하는 플립플롭들 내지는 래치들에 대하여 쉐도우레지스터(shadow register)를 두고 이용함으로서 롤백 기능을 손쉽게 구현 가능하다.And if you need to roll back to a design object running on a hardware-based verification platform, commercially available hardware-based verification platforms (e.g., Cadence's Palladium series / Extreme series, Mentor's Vstation series, EVE's ZeBu series, Fortelink's Gemini series, Tharas' Hammer) Shadow registers for flip-flops or latches present in the design object using the rollback function provided in the series, etc., or using the output probe / input probe function proposed in a separate patent (US 6,701,491). By using), rollback function can be easily implemented.

본 특허에서 언급하는 분산병렬 시뮬레이션 환경에서 1 이상의 특정 로컬시뮬레이션은 시뮬레이터로 수행되거나 이 로컬시뮬레이션에서 수행되는 검증 대상 모델의 일부분이 합성가능한 경우에는 하드웨어기반검증플랫폼(시뮬레이션가속기 내지는 하드웨어에뮬레이터 내지는 FPGA 보드를 통칭)으로 수행되어질 수 있고, 시뮬레이터로 수행되는 경우에는 이 시뮬레이터로는 이벤트-구동 Verilog 시뮬레이터 내지는 SystemVerilog 시뮬레이터 내지는 VHDL 시뮬레이터 내지는 SystemC 시뮬레이터, 혹은 사이클-기반 SystemC 시뮬레이터 내지는 VHDL 시뮬레이터 내지는 Verilog 시뮬레이터 내지는 SystemVerilog 시뮬레이터가 사용될 수 있을 뿐만 아니라, Vera 시뮬레이터 내지는 e 시뮬레이터 등의 여타 임의의 반도체설계용 시뮬레이터까지도 사용될 수 있다. 따라서 분산병렬 시뮬레이션을 수행하는 1 이상의 로컬시뮬레이션들에서 특정 로컬시뮬레이션들은 이벤트-구동 방식으로 진행되고, 분산병렬 시뮬레이션 과정에서 이들과 연동하는 다른 로컬시뮬레이션들은 사이클-기반 방식으로 진행(예로, 도 5에서 온-칩 버스 설계객체(420) 사이클-기반으로 동작하고, 나머지 설계객체들(380, 381, 382, 383, 384, 385)은 이벤트-구동 방식으로 동작)될 수도 있다. 물론, 분산병렬 시뮬레이션을 수행하는 모든 로컬 시뮬레이션들이 이벤트-구동 방식으로 진행(이와 같은 이벤트-구동 방식의 분산병렬 시뮬레이션은 PDES(Parallel Distributed Event-driven Simulation)이라고 한다)될 수도 있고, 분산병렬 시뮬레이션을 수행하는 모든 로컬 시뮬레이션들이 사이클-기반 방식으로 진행될 수도 있다.In the distributed parallel simulation environment referred to in this patent, one or more specific local simulations are performed by a simulator or when a part of the model to be verified in the local simulation is compositable, a hardware-based verification platform (simulation accelerator or hardware emulator or FPGA board). Commonly used, and in the case of a simulator, an event-driven Verilog simulator, a SystemVerilog simulator, a VHDL simulator, a SystemC simulator, a cycle-based SystemC simulator, a VHDL simulator, a Verilog simulator, or a SystemVerilog simulator may be used. In addition to this, any other semiconductor design simulator such as Vera simulator or e simulator can be used. Thus, in one or more local simulations that perform distributed parallel simulation, certain local simulations are run in an event-driven manner, while other local simulations that interact with them in a distributed parallel simulation run in a cycle-based fashion (eg, in FIG. 5). The on-chip bus design object 420 may be cycle-based and the remaining design objects 380, 381, 382, 383, 384, 385 may be operated in an event-driven manner. Of course, all local simulations that perform distributed parallel simulations can be run in an event-driven fashion (such event-driven distributed parallel simulations are called Parallel Distributed Event-driven Simulations (PDESs)). All local simulations performed may be run in a cycle-based manner.

도22 는, 본 특허에서의 분산처리적병렬수행 방식의 시뮬레이션을 위한 2 이상의 컴퓨터에 인스톨된 2 이상의 로컬컴퓨터들의 논리적연결구조 방식들의 몇가지 사례들을 예시한 도면이다. 도22 에서 도시한 로컬컴퓨터들의 논리적연결구조 방식들 이외에도 로컬컴퓨터들의 다양한 논리적연결구조 방식들이 있을 수 있으며, 본 특허에서 언급한 분산처리적병렬수행 방식의 시뮬레이션은 로컬컴퓨터들의 다양한 논리적연결구조 방식들에 적용되어질 수 있다. FIG. 22 is a diagram illustrating some examples of logical connection structure schemes of two or more local computers installed in two or more computers for simulation of a distributed processing parallel execution scheme in the present patent. In addition to the logical connection structure schemes of the local computers shown in FIG. 22, there may be various logical connection structure schemes of the local computers, and the simulation of the distributed processing parallel execution scheme mentioned in the present patent includes various logical connection structure schemes of the local computers. Can be applied to

도23 은, 분산병렬 시뮬레이션을 2 이상의 컴퓨터들과 이들 컴퓨터에 인스톨된 2 이상의 HDL 시뮬레이터들을 이용하여서 구성한 분산병렬 시뮬레이션 환경의 일 예를 개략적으로 도시한 도면으로, 본 특허에서의 분산처리적병렬수행 방식의 분산병렬 시뮬레이션도 이와 같은 환경에 적용할 수 있다.23 is a diagram schematically illustrating an example of a distributed parallel simulation environment in which distributed parallel simulation is performed using two or more computers and two or more HDL simulators installed on these computers. Distributed parallel simulations can also be applied to these environments.

도24 는, 통상적인 분산병렬 시뮬레이션의 전체 진행 흐름도의 일 예를 개략적으로 도시한 도면이다. 따라서 분산병렬 시뮬레이션의 전체 진행을 위한 다른 여러 진행 흐름도들도 얼마든지 존재할 수 있다. Fig. 24 is a diagram schematically showing an example of an overall flow chart of a typical distributed parallel simulation. Thus, there can be any number of other progress flow diagrams for the overall progress of distributed parallel simulation.

도25 는, 본 특허에서의 분산처리적병렬시뮬레이션의 전체 진행 흐름도의 일 예를 개략적으로 도시한 도면이다. 따라서 분산처리적병렬시뮬레이션의 전체 진행을 위한 다른 여러 진행 흐름도들도 얼마든지 존재할 수 있다. 뿐만 아니라, 전체 진행 흐름도에서의 각 서브블럭(예로, 도25 에서 S200 내지는 S202 내지는 S204 내지는 S206내지는 S208 내지는 S210 내지는 S212)의 실행 순서는 전체 진행의 올바른 수 행을 방해하지 않는 한 변화될 수 있고, 혹은 2 이상의 서브블럭들도 전체 진행의 올바른 수행을 방해하지 않는 한 동시에 수행되어질 수도 있다. FIG. 25 is a diagram schematically showing an example of an entire flow chart of distributed processing parallel simulation in the present patent. FIG. Therefore, there can be any number of other progress flow diagrams for the overall progress of distributed parallel simulation. In addition, the order of execution of each subblock in the overall flow chart (e.g., S200 to S202 to S204 to S206 to S208 to S210 to S212 in FIG. 25) may be changed so long as it does not prevent proper performance of the entire process. Alternatively, two or more subblocks may be executed at the same time as long as they do not interfere with the correct performance of the entire process.

도25 에서 예시된 분산처리적병렬시뮬레이션의 전체 진행 흐름도를 설명하면, 시작과 종료를 제외하고 총 8개의 서브블럭들로 구성되어 있다. S200 단계에서 분산처리적병렬시뮬레이션 하고자 하는 모델을 읽어들이고 S202 단계로 진행한다. S202 단계에서는 분산처리적병렬시뮬레이션 대상 모델에 대한 분할 수행하여 각 로컬시뮬레이션 대상이 되는 설계객체를 생성하고, 분산병렬시뮬레이션의 각 로컬시뮬레이션 대상이 되는 설계객체 내지는 시뮬레이션 환경(예로 별방식의 논리적연결구조에서 중앙컴퓨터에 존재하는 SW서버 모듈)을 위한 부가코드를 생성하고 S204 단계로 진행한다. S204 단계에서는 s-DCP 획득을 위한 앞단 시뮬레이션 대상 모델을 읽어들이고 S206 단계로 진행한다. S206 단계에서는 앞단 시뮬레이션 대상 모델에 대한 시뮬레이션컴파일 수행하고 S208 단계로 진행한다. S208 단계에서는 앞단 시뮬레이션 수행하면서, s-DCP 획득하고 S210 단계로 진행한다. S210 단계에서는 분산처리적병렬시뮬레이션을 위한 각 로컬시뮬레이션 대상 설계객체별 시뮬레이션컴파일 수행하고 S212 단계로 진행한다. 이와 같은 분산처리적병렬시뮬레이션을 위한 각 로컬시뮬레이션 대상 설계객체별 시뮬레이션컴파일 수행 시에 상기 S202 단계에서 부가되어진 부가코드들도 같이 컴파일되어진다. S212 단계에서는 분산처리적병렬시뮬레이션을 수행하고 전체 과정을 종료하게 된다.Referring to the entire flow chart of the distributed parallelism simulation illustrated in FIG. 25, there are a total of eight subblocks except start and end. In step S200, the model to be distributed-parallel parallel simulation is read and the process proceeds to step S202. In step S202, the distributed processing is performed on the parallel simulation target model to generate a design object for each local simulation, and the design object or simulation environment for each local simulation of the distributed parallel simulation is a separate logical connection structure. In step S204 to generate an additional code for the SW server module existing in the central computer. In step S204 to read the leading simulation target model for s-DCP acquisition and proceeds to step S206. In step S206, the simulation compilation for the preceding simulation target model is performed, and the flow proceeds to step S208. In step S208, while performing the preceding simulation, the s-DCP is obtained and proceeds to step S210. In step S210, simulation compilation for each local simulation target design object for distributed processing parallel simulation is performed, and the flow proceeds to step S212. The additional codes added in the step S202 are also compiled when the simulation compilation for each local simulation target design object is performed for such distributed parallel processing. In step S212, distributed parallelism simulation is performed and the whole process is terminated.

도26 은, 본 특허에서의 분산처리적병렬시뮬레이션 수행(도25 에서의 서브블럭 S212)을 위한 각 로컬시뮬레이터로 실행되는 로컬시뮬레이션 수행의 흐름도의 일 예를 개략적으로 도시한 도면이다. 따라서 분산처리적병렬시뮬레이션 수행을 위한 다른 여러 진행 흐름도들도 얼마든지 존재할 수 있다. 뿐만 아니라, 이 분산처리적병렬시뮬레이션 수행을 위한 진행 흐름도에서의 각 서브블럭의 실행 순서는 전체 진행의 올바른 수행을 방해하지 않는 한 변화될 수 있고, 혹은 2 이상의 서브블럭들도 전체 진행의 올바른 수행을 방해하지 않는 한 동시에 수행되어질 수도 있다.도33 은, 본 특허에서의 분산처리적병렬시뮬레이션의 전체 진행 흐름도의 또 다른 일 예를 개략적으로 도시한 도면이다. 따라서 분산처리적병렬시뮬레이션의 전체 진행을 위한 다른 여러 진행 흐름도들도 얼마든지 존재할 수 있다. 뿐만 아니라, 전체 진행 흐름도에서의 각 서브블럭(예로, 도33 에서 S201 내지는 S203 내지는 S211 내지는 S213)의 실행 순서는 전체 진행의 올바른 수행을 방해하지 않는 한 변화될 수 있고, 혹은 2 이상의 서브블럭들도 전체 진행의 올바른 수행을 방해하지 않는 한 동시에 수행되어질 수도 있다. FIG. 26 is a diagram schematically showing an example of a flowchart of local simulation execution executed by each local simulator for distributed processing parallel simulation simulation (subblock S212 in FIG. 25) in the present patent. Thus, there can be any number of other flow diagrams for performing distributed parallel simulation. In addition, the execution order of each subblock in the progress flowchart for performing this distributed parallel simulation can be changed as long as it does not interfere with the correct performance of the entire process, or two or more subblocks also perform the correct performance of the entire process. May be performed at the same time as long as they do not interfere with each other. Fig. 33 is a diagram schematically showing another example of the entire flow chart of the distributed parallelism simulation in the present patent. Therefore, there can be any number of other progress flow diagrams for the overall progress of distributed parallel simulation. In addition, the order of execution of each subblock in the overall flow chart (e.g., S201 to S203 to S211 to S213 in FIG. 33) may be changed as long as it does not prevent the correct performance of the entire process, or two or more subblocks. May also be performed at the same time as long as it does not interfere with the correct performance of the overall progress.

도33 에서 예시된 분산처리적병렬시뮬레이션의 전체 진행 흐름도를 설명하면, 시작과 종료를 제외하고 총 4개의 서브블럭들로 구성되어 있다. S201 단계에서 분산처리적병렬시뮬레이션 하고자 하는 모델을 읽어들이고 S203 단계로 진행한다. S203 단계에서는 분산처리적병렬시뮬레이션 대상 모델에 대한 분할 수행하여 각 로컬시뮬레이션 대상이 되는 설계객체를 생성하고, 분산병렬시뮬레이션의 각 로컬시뮬레이션 대상이 되는 설계객체 내지는 시뮬레이션 환경(예로 별방식의 논리적연결구조에서 중앙컴퓨터에 존재하는 SW서버 모듈)을 위한 부가코드를 생성하고 S211 단계로 진행한다. S203 단계에서 생성되는 부가코드는 상기 로컬시뮬레이션 대상이 되 는 설계객체보다 추상화 상위수준에 있는 DUV와 TB를 s-DCP에 포함하고 있다. S211 단계에서는 분산처리적병렬시뮬레이션을 위한 각 로컬시뮬레이션 대상 설계객체별 시뮬레이션컴파일 수행하고 S213 단계로 진행한다. 이와 같은 분산처리적병렬시뮬레이션을 위한 각 로컬시뮬레이션 대상 설계객체별 시뮬레이션컴파일 수행 시에 상기 S203 단계에서 부가되어진 부가코드들도 같이 컴파일되어진다. S213 단계에서는 분산처리적병렬시뮬레이션을 수행하고 전체 과정을 종료하게 된다.Referring to the entire flow chart of the distributed parallelism simulation illustrated in FIG. 33, there are a total of four subblocks except start and end. In step S201, the model to be distributed-parallel parallel simulation is read, and the flow proceeds to step S203. In step S203, the distributed processing is performed on the parallel simulation target model to generate a design object for each local simulation, and the design object or simulation environment for each local simulation of the distributed parallel simulation is a separate logical connection structure. In step S211 generates an additional code for the SW server module existing in the central computer. The additional code generated in step S203 includes the DUV and TB in the s-DCP which are at a higher level of abstraction than the design object to be simulated locally. In step S211, simulation compilation for each local simulation target design object for distributed processing parallel simulation is performed, and the flow proceeds to step S213. The additional codes added in step S203 are also compiled when the simulation compilation for each local simulation target design object is performed for such distributed parallel processing. In step S213, distributed parallelism simulation is performed and the whole process is terminated.

도26 은, 본 특허에서의 분산처리적병렬시뮬레이션 수행(도25 에서의 서브블럭 S212)을 위한 각 로컬시뮬레이터로 실행되는 로컬시뮬레이션 수행의 흐름도의 일 예를 개략적으로 도시한 도면이다. 따라서 분산처리적병렬시뮬레이션 수행을 위한 다른 여러 진행 흐름도들도 얼마든지 존재할 수 있다. 뿐만 아니라, 이 분산처리적병렬시뮬레이션 수행을 위한 진행 흐름도에서의 각 서브블럭의 실행 순서는 전체 진행의 올바른 수행을 방해하지 않는 한 변화될 수 있고, 혹은 2 이상의 서브블럭들도 전체 진행의 올바른 수행을 방해하지 않는 한 동시에 수행되어질 수도 있다. FIG. 26 is a diagram schematically showing an example of a flowchart of local simulation execution executed by each local simulator for distributed processing parallel simulation simulation (subblock S212 in FIG. 25) in the present patent. Thus, there can be any number of other flow diagrams for performing distributed parallel simulation. In addition, the execution order of each subblock in the progress flowchart for performing this distributed parallel simulation can be changed as long as it does not interfere with the correct performance of the entire progression, or two or more subblocks also perform the correct execution of the entire progression. It may be performed at the same time as long as it does not interfere.

도26 에서 예시된 분산처리적병렬시뮬레이션 수행의 전체 진행 흐름도를 설명하면, 시작과 종료를 제외하고 총 15개의 서브블럭들로 구성되어 있다. S398 단계에서 현재 시뮬레이션시간을 0으로 설정하고, S402 단계로 진행한다. S402 단계에서 로컬시뮬레이션의 현재 시뮬레이션시점이 체크포인트를 생성하여 하는 시점이고 사전에 이 시점에서 체크포인트가 생성이 않되었으면 지금 체크포인트를 생성하고 지금 체크포인트를 생성한 경우에만 다른 로컬시뮬레이션에서부터 롤백가능성이 발생하였는지를 조사하여 롤백가능성이 발생한 경우에는 S410 단계로 진행하고, 롤백가능성 이 발생하지 않은 경우에는 로컬시뮬레이션의 현재 시뮬레이션시간이 실제롤포워드-시점과 같으면 S418 단계로 진행하고 시뮬레이션 종료시간과 같거나 크면 S422 단계로 진행하고 그렇치 않으면 예상입력을 이용하여 시뮬레이션 진행하여 실제출력 얻음과 동시에 실제출력과 예상출력을 비교하고 S406 단계로 진행한다. S406 단계에서는 S402 단계의 시뮬레이션에서 얻어진 실제출력과 예상출력 비교하여 일치하면 S404 단계로 진행하고, 이 비교가 일치하지 않으면 S408 단계로 진행한다. S404 단계에서는 실제출력의 이벤트시간(변화가 발생한 시간)을 로컬시뮬레이션의 현재 시뮬레이션시간으로 설정하고 S402 단계로 진행한다. S408 단계에서는 시뮬레이션을 일시적으로 멈추고, 다른 로컬시뮬레이션들에게 롤백가능성 발생을 전달하고 현재 시뮬레이션시간(롤백가능 시점)도 다른 로컬시뮬레이션들에 전달하고 S410 단계로 진행한다. S410 단계에서는 롤백가능성이 발생한 모든 로컬시뮬레이션들의 현재 시뮬레이션시간(롤백가능 시점)들을 획득하여, 이것들로부터 로컬시뮬레이션의 롤백/롤포워드 필요성을 판단하고 동시에 실제롤백-시점/실제롤포워드-시점을 결정하고 S412 단계로 진행한다. 즉, 롤백가능성이 발생한 모든 로컬시뮬레이션들별로 각 로컬시뮬레이션시간들 T_rb = (t_rb(1), t_rb(2), .., t_rb(N-1), t_rb(N)) (t_rb(i)은 롤백가능성이 발생한 로컬시뮬레이션 i의 롤백가능시점을 표시함)이 롤백가능시점들이 되는데, 실제롤백-시점은 t_rb(1), t_rb(2), .., t_rb(N-1), t_rb(N)들 중에서 제일 작은 값(즉, 시간적으로 제일 과거시간)인 T_rb(FINAL) = min(t_rb(1), t_rb(2), .., t_rb(N-1), t_rb(N))이 되고 도26 을 수행하는 특정 로컬시뮬레이션 LP(k)의 현재 시뮬레이션시간 t_c(k)이 T_rb(FINAL)보다 크거나 같으 면 상기 특정 로컬시뮬레이션 LP(k)는 롤백을 수행하여야 하고, t_c(k)가 T_rb(FINAL)보다 작으면 상기 특정 로컬시뮬레이션 LP(k)는 롤포워드를 수행하여야 한다. S412 단계에서는 롤백이 필요하면 S414 단계로 진행하고, 롤백이 필요하지 않으면 S416 단계로 진행한다. S416 단계에서는 롤포워드가 필요하면 S402 단계로 진행하고, 롤포워드가 필요하지 않으면 S418 단계로 진행한다. S414 단계에서는 로컬시뮬레이션의 롤백을 실행하고 S418 단계로 진행한다. S418 단계에서는 실제입력을 이용하여 시뮬레이션하고 얻어진 실제출력을 입력으로 사용하는 다른 로컬시뮬레이션으로 전달함과 동시에, 실제입력과 예상입력을 비교하며, 로컬시뮬레이션의 현재 시뮬레이션 시간이 시뮬레이션 종료시간과 같으면 종료하고, 같지 않으면 S420 단계로 진행한다. S420 단계에서는 상기 S418 단계에서 실제입력과 예상입력을 비교하여서 일치된 횟수가 미리 정해진 일정횟수(예로, 3번)이상 일치한지를 판단하여 일정횟수 일치하게 되었으면 S421 단계로 진행하고 그렇치 않으면 S418 단계로 진행한다. S422 단계에서는 다른 로컬시뮬레이션들이 모두 종료되었으면 이 로컬시뮬레이션 수행도 종료하게 되고, 그렇치 않으면 S424 단계로 진행한다. S424 단계에서는 이 로컬시뮬레이션의 롤백의 필요성이 있는지로 조사하여 필요하지 않으면 S422 단계로 진행하고 롤백의 필요성이 있으면 S426 단계로 진행한다. S426 단계에서는 실제롤백-시점 결정 후에 롤백을 실행하고, S418 단계로 진행한다.Referring to the overall flow of the distributed parallel processing simulation illustrated in Figure 26, a total of 15 subblocks except for the start and end. In step S398 to set the current simulation time to 0, and proceeds to step S402. If the current simulation time of the local simulation is to create a checkpoint in step S402, and if the checkpoint has not been created at this point in advance, it is possible to roll back from another local simulation only if the checkpoint is generated now and the checkpoint is generated now. If the possibility of rollback occurs, go to step S410. If the possibility of rollback does not occur, proceed to step S418 if the current simulation time of the local simulation is equal to the actual roll forward time. If larger, go to step S422; otherwise, proceed with the simulation using the expected input to obtain the actual output, compare the actual output with the expected output, and proceed to step S406. In step S406, the actual output obtained from the simulation in step S402 compares with the expected output, and if it matches, the process proceeds to step S404. If the comparison does not match, the process proceeds to step S408. In step S404, the event time (time of occurrence of change) of the actual output is set to the current simulation time of the local simulation, and the flow proceeds to step S402. In step S408, the simulation is temporarily stopped, and a rollback possibility occurrence is transmitted to other local simulations, and the current simulation time (rollback possible time point) is also transmitted to other local simulations, and the flow proceeds to step S410. In step S410, the current simulation times (rollback possible points in time) of all local simulations in which a rollback possibility has occurred are determined, and from these, the necessity of rollback / rollforward of local simulation is determined, and at the same time, actual rollback-time / actual rollforward-time is determined. Proceed to step S412. That is, each local simulation time T_rb = (t_rb (1), t_rb (2), .., t_rb (N-1), t_rb (N)) for each local simulation in which rollback possibility has occurred, and t_rb (i) Rollback points of local simulation i where rollback possibility has occurred), and the rollback points are t_rb (1), t_rb (2), .., t_rb (N-1), t_rb (N ), T_rb (FINAL) = min (t_rb (1), t_rb (2), .., t_rb (N-1), t_rb (N)) If the current simulation time t_c (k) of the specific local simulation LP (k) performing FIG. 26 is greater than or equal to T_rb (FINAL), the specific local simulation LP (k) should perform rollback, and t_c (k) is If less than T_rb (FINAL), the specific local simulation LP (k) should perform roll forward. In step S412, if rollback is required, the process proceeds to step S414, and if rollback is not necessary, the flow proceeds to step S416. In step S416, if roll forward is required, the flow proceeds to step S402, and if roll forward is not required, the flow proceeds to step S418. In step S414, rollback of local simulation is executed, and the flow proceeds to step S418. In step S418, the simulation is performed using the actual input and the obtained actual output is transferred to another local simulation using the input, and at the same time, the actual input is compared with the expected input, and when the current simulation time of the local simulation is equal to the simulation end time, If not, proceed to step S420. In the step S420 by comparing the actual input and the expected input in the step S418 determines whether the number of times matched more than a predetermined predetermined number of times (for example, three times), if the predetermined number of times matched to proceed to step S421, otherwise to step S418 Proceed. In step S422, if all other local simulations are finished, the local simulation is also terminated. Otherwise, the process proceeds to step S424. In step S424, it is examined whether there is a need for rollback of this local simulation, and if not necessary, the flow goes to step S422, and if there is a need for rollback, the flow proceeds to step S426. In step S426, rollback is performed after the actual rollback-time determination, and the flow proceeds to step S418.

도27 은, 본 특허에서의 분산처리적병렬시뮬레이션 수행(도25 에서의 서브블럭 S212)을 위한 각 로컬시뮬레이터로 실행되는 로컬시뮬레이션 수행의 흐름도의 또 다른 일 예를 개략적으로 도시한 도면이다. 따라서 분산처리적병렬시뮬레이션 수행 을 위한 다른 여러 진행 흐름도들도 얼마든지 존재할 수 있다. 뿐만 아니라, 이 분산처리적병렬시뮬레이션 수행을 위한 진행 흐름도에서의 각 서브블럭의 실행 순서는 전체 진행의 올바른 수행을 방해하지 않는 한 변화될 수 있고, 혹은 2 이상의 서브블럭들도 전체 진행의 올바른 수행을 방해하지 않는 한 동시에 수행되어질 수도 있다. FIG. 27 is a diagram schematically showing another example of a flowchart of local simulation performed by each local simulator for distributed processing parallel simulation (subblock S212 in FIG. 25) in the present patent. Therefore, there can be any number of other flow diagrams for performing distributed processing parallel simulation. In addition, the execution order of each subblock in the progress flowchart for performing this distributed parallel simulation can be changed as long as it does not interfere with the correct performance of the entire progression, or two or more subblocks also perform the correct execution of the entire progression. It may be performed at the same time as long as it does not interfere.

도27 에서 예시된 분산처리적병렬시뮬레이션 수행의 전체 진행 흐름도를 설명하면, 시작과 종료를 제외하고 총 16개의 서브블럭들로 구성되어 있다. S298 단계에서 현재 시뮬레이션시간을 0으로 설정하고, S300 단계로 진행한다. S300 단계에서 다른 로컬시뮬레이션에서부터 롤백가능성 발생이 전달되어지면 S310 단계로 진행하고, 그렇치 않은 경우에는 S302 단계로 진행한다. S302 단계에서는 로컬시뮬레이션의 현재 시뮬레이션 시점이 체크포인트를 생성하여야 하는 시점이고 사전에 이미 체크포인트가 생성 않되었으면 체크포인트를 생성하고, 로컬시뮬레이션의 현재 시뮬레이션 시점이 실제롤포워드-시점과 같으면 S318 단계로 진행하고 시뮬레이션 종료시간과 같거나 크면 S318 단계로 진행하고 그렇치 않으면 예상입력을 이용하여 시뮬레이션 진행하여 실제출력 얻음과 동시에 실제출력과 예상출력을 비교하고 S306 단계로 진행한다. S306 단계에서는 S302 단계의 시뮬레이션에서 얻어진 실제출력과 예상출력 비교하여 일치하면 S304 단계로 진행하고, 이 비교가 일치하지 않으면 S308 단계로 진행한다. S304 단계에서는 실제출력의 이벤트시간(변화가 발생한 시간)을 로컬시뮬레이션의 현재 시뮬레이션시간으로 설정하고 S300 단계로 진행한다. S308 단계에서는 시뮬레이션을 일시적으로 멈추고, 다른 로컬시뮬레이션들에게 롤 백가능성 발생을 전달하고 현재 시뮬레이션시간(롤백가능 시점)도 다른 로컬시뮬레이션들에 전달하고 S310 단계로 진행한다. S310 단계에서는 롤백가능성이 발생한 모든 로컬시뮬레이션들의 현재 시뮬레이션 시간(롤백가능 시점)들을 획득하여, 이것들로부터 로컬시뮬레이션의 롤백/롤포워드 필요성을 판단하고 동시에 실제롤백-시점/실제롤포워드-시점을 결정하고 S312 단계로 진행한다. 즉, 롤백가능성이 발생한 모든 로컬시뮬레이션들별로 각 로컬시뮬레이션시간들 T_rb = (t_rb(1), t_rb(2), .., t_rb(N-1), t_rb(N)) (t_rb(i)은 롤백가능성이 발생한 로컬시뮬레이션 i의 롤백가능시점을 표시함)이 롤백가능시점들이 되는데, 실제롤백-시점은 t_rb(1), t_rb(2), .., t_rb(N-1), t_rb(N)들 중에서 제일 작은 값(즉, 시간적으로 제일 과거시간)인 T_rb(FINAL) = min(t_rb(1), t_rb(2), .., t_rb(N-1), t_rb(N))이 되고 도27 을 수행하는 특정 로컬시뮬레이션 LP(k)의 현재 시뮬레이션시간 t_c(k)이 T_rb(FINAL)보다 크거나 같으면 상기 특정 로컬시뮬레이션 LP(k)는 롤백을 수행하여야 하고, t_c(k)가 T_rb(FINAL)보다 작으면 상기 특정 로컬시뮬레이션 LP(k)는 롤포워드를 수행하여야 한다. S312 단계에서는 롤백이 필요하면 S314 단계로 진행하고, 롤백이 필요하지 않으면 S316 단계로 진행한다. S316 단계에서는 롤포워드가 필요하면 S302 단계로 진행하고, 롤포워드가 필요하지 않으면 S318 단계로 진행한다. S314 단계에서는 로컬시뮬레이션의 롤백을 실행하고 S318 단계로 진행한다. S318 단계에서는 실제입력을 이용하여 시뮬레이션하고 얻어진 실제출력을 입력으로 사용하는 다른 로컬시뮬레이션으로 전달함과 동시에, 실제입력과 예상입력을 비교하며, 로컬시뮬레이션의 현재 시뮬레이션 시간이 시뮬레이션 종료시간 과 같으면 종료하고, 같지 않으면 S320 단계로 진행한다. S320 단계에서는 상기 S318 단계에서 실제입력과 예상입력을 비교하여서 일치된 횟수가 미리 정해진 일정횟수(예로, 3번)이상 일치한지를 판단하여 일정횟수 일치하게 되었으면 S321 단계로 진행하고 그렇치 않으면 S318 단계로 진행한다. S322 단계에서는 다른 로컬시뮬레이션들이 모두 종료되었으면 이 로컬시뮬레이션 수행도 종료하게 되고, 그렇치 않으면 S324 단계로 진행한다. S324 단계에서는 이 로컬시뮬레이션의 롤백의 필요성이 있는지로 조사하여 필요하지 않으면 S322 단계로 진행하고 롤백의 필요성이 있으면 S326 단계로 진행한다. S326 단계에서는 실제롤백-시점 결정 후에 롤백을 실행하고, S318 단계로 진행한다.Referring to the overall flow of the distributed parallel processing simulation illustrated in Figure 27, a total of 16 subblocks except for the start and end. In step S298 to set the current simulation time to 0, and proceeds to step S300. If the rollback possibility generation is transmitted from another local simulation in step S300, the flow proceeds to step S310, and if not, the flow proceeds to step S302. In step S302, if the current simulation point of local simulation is a point at which a checkpoint should be generated, and if a checkpoint has not already been generated in advance, a checkpoint is generated. If it is equal to or greater than the simulation end time, the process proceeds to step S318. Otherwise, the simulation proceeds using the predicted input to obtain the actual output, and compares the actual output with the expected output and proceeds to the step S306. In step S306, if the actual output obtained from the simulation in step S302 compares with the expected output, the process proceeds to step S304. If the comparison does not match, the process proceeds to step S308. In step S304, the event time (time of occurrence of change) of the actual output is set to the current simulation time of the local simulation, and the flow proceeds to step S300. In step S308, the simulation is temporarily stopped, a rollback possibility occurrence is transmitted to other local simulations, and a current simulation time (rollback possible time point) is also transmitted to other local simulations, and the flow proceeds to step S310. In step S310, the current simulation times (rollback possible points in time) of all local simulations that have rollback possibilities are obtained, and from these, the necessity of rollback / rollforward of local simulation is determined, and at the same time, actual rollback-time / actual rollforward-time is determined. Proceed to step S312. That is, each local simulation time T_rb = (t_rb (1), t_rb (2), .., t_rb (N-1), t_rb (N)) for each local simulation in which rollback possibility has occurred (t_rb (i) Rollback points of local simulation i where rollback possibility has occurred), and the rollback points are t_rb (1), t_rb (2), .., t_rb (N-1), t_rb (N ), T_rb (FINAL) = min (t_rb (1), t_rb (2), .., t_rb (N-1), t_rb (N)) If the current simulation time t_c (k) of the specific local simulation LP (k) performing FIG. 27 is greater than or equal to T_rb (FINAL), the specific local simulation LP (k) should perform rollback, and t_c (k) is T_rb If less than (FINAL), the specific local simulation LP (k) must perform a roll forward. In step S312, if rollback is required, the process proceeds to step S314. If rollback is not necessary, the flow proceeds to step S316. In step S316, if roll forward is required, the flow proceeds to step S302, and if roll forward is not required, the flow proceeds to step S318. In step S314, the rollback of the local simulation is executed, and the flow proceeds to step S318. In step S318, the real input is simulated and the obtained actual output is transferred to another local simulation using the input, and the actual input is compared with the expected input. When the current simulation time of the local simulation is equal to the simulation end time, the process ends. If not the same, proceed to step S320. In step S320 by comparing the actual input and the expected input in the step S318 determines whether the number of times matched more than a predetermined number of times (for example, three times) to match a predetermined number of times and proceeds to step S321 otherwise the step S318 Proceed. In step S322, if all other local simulations are finished, the local simulation is also terminated. Otherwise, the process proceeds to step S324. In step S324, it is examined whether there is a need for rollback of this local simulation, and if not necessary, the flow proceeds to step S322, and if there is a need for rollback, the flow proceeds to step S326. In step S326, rollback is performed after the actual rollback-time determination, and the flow proceeds to step S318.

도26 과 도27 은 분산병렬 시뮬레이션에서 로컬시뮬레이션들의 제어와 로컬시뮬레이션들의 연결을 수행하는 중앙컴퓨터에서 존재하는 SW서버 모듈을 사용하지 않음(도22 참조)으로 이와 같은 분산병렬 시뮬레이션에서 로컬시뮬레이션들의 제어와 로컬시뮬레이션들의 연결을 각 분산병렬 시뮬레이션의 로컬시뮬레이션 런-타임 모듈들에 분산시켜서 수행되도록 하여야 함으로서 흐름도가 상대적으로 복잡해진다. 별방식의 논리적연결구조(star-based logical interconnection architecture)(도22 참조)에서 분산병렬 시뮬레이션 수행 시에 로컬시뮬레이션들의 제어와 로컬시뮬레이션들의 연결을 수행하는 중앙컴퓨터에 존재하는 SW서버 모듈을 이용하는 경우의 분산처리적병렬시뮬레이션 수행(도25 에서의 서브블럭 S212)의 또 다른 예는 도28 과 도29 에 예시되어 있다. 도28 은 로컬시뮬레이터로 실행되는 로컬시뮬레이션 수행의 흐름도의 일 예를 개략적으로 도시한 도면이고 도29 는 상기 중앙컴퓨터에 존 재하는 SW서버 모듈로 수행되는 과정의 흐름도의 일 예를 개략적으로 도시한 도면이다.Figures 26 and 27 show the control of local simulations in a distributed parallel simulation as the distributed server simulation does not use the SW server module existing in the central computer that performs the control of local simulations and the connection of local simulations (see Figure 22). The flow becomes relatively complicated by having to link the local simulations with the local simulations to be distributed to the local simulation run-time modules of each distributed parallel simulation. In the case of using a SW server module that exists in a central computer that performs local control and local simulation connection when performing distributed parallel simulation in a star-based logical interconnection architecture (see FIG. 22). Another example of distributed processing parallel simulation (subblock S212 in FIG. 25) is illustrated in FIGS. 28 and 29. 28 is a diagram schematically showing an example of a flowchart of a local simulation performed by a local simulator, and FIG. 29 is a diagram schematically showing an example of a flowchart performed by a SW server module existing in the central computer. Drawing.

위 여러 예들에서 알 수 있는 것과 같이 분산처리적병렬시뮬레이션 수행을 위한 다양한 여러 진행 흐름도들이 존재할 수 있다. 뿐만 아니라, 이 분산처리적병렬시뮬레이션 수행을 위한 진행 흐름도에서의 각 서브블럭의 실행 순서는 전체 진행의 올바른 수행을 방해하지 않는 한 변화될 수 있고, 혹은 2 이상의 서브블럭들도 전체 진행의 올바른 수행을 방해하지 않는 한 동시에 수행되어질 수도 있다. As can be seen in the various examples above, there can be various various flow diagrams for performing distributed processing parallel simulations. In addition, the execution order of each subblock in the progress flowchart for performing this distributed parallel simulation can be changed as long as it does not interfere with the correct performance of the entire progression, or two or more subblocks also perform the correct execution of the entire progression. It may be performed at the same time as long as it does not interfere.

도28 에서 예시된 분산처리적병렬시뮬레이션 수행을 위한 로컬시뮬레이션 수행의 전체 진행 흐름도를 설명하면, 시작과 종료를 제외하고 총 15개의 서브블럭들로 구성되어 있다. S498 단계에서 현재 시뮬레이션시간을 0으로 설정하고, S502 단계로 진행한다. S502 단계에서는 로컬시뮬레이션의 현재 시뮬레이션시간 정보를 생성하고, 로컬시뮬레이션의 현재 시뮬레이션시점이 체크포인트를 생성하여야 하는 시점이고 사전에 이미 체크포인트가 생성이 않되었으면 체크포인트를 생성하고, 로컬시뮬레이션의 현재 시뮬레이션시점이 실제롤포워드-시점과 같으면 S518 단계로 진행하고 시뮬레이션 종료시간과 같거나 크면 S522 단계로 진행하고 그렇치 않으면 예상입력을 이용하여 시뮬레이션 진행하여 실제출력 얻음과 동시에 실제출력과 예상출력을 비교하고 S306 단계로 진행한다. S506 단계에서는 S502 단계의 시뮬레이션에서 얻어진 실제출력과 예상출력 비교하여 일치하면 S504 단계로 진행하고, 이 비교가 일치하지 않으면 S508 단계로 진행한다. S504 단계에서는 실제출력의 이벤트시간(변화가 발생한 시간)을 로컬시뮬레이션의 현재 시뮬레이션시간으로 설정하고 S502 단계로 진행한다. S508 단계에서는 시뮬레이션을 일시적으로 멈추고, SW서버 모듈에 롤백가능성 발생을 전달하고 현재 시뮬레이션시간(롤백가능 시점)도 SW서버 모듈에 전달하고 S510 단계로 진행한다. S510 단계에서는 SW서버 모듈로부터 실제롤백-시간/실제롤-포워드시간을 획득하고 S512 단계로 진행한다. S512 단계에서는 롤백이 필요하면 S514 단계로 진행하고, 롤백이 필요하지 않으면 S516 단계로 진행한다. S516 단계에서는 롤포워드가 필요하면 S502 단계로 진행하고, 롤포워드가 필요하지 않으면 S518 단계로 진행한다. S514 단계에서는 로컬시뮬레이션의 롤백을 실행하고 S518 단계로 진행한다. S518 단계에서는 다른 로컬시뮬레이션에서부터 SW서버 모듈을 통하여 전달되는 실제입력을 이용하여 시뮬레이션하고 얻어진 실제출력을 SW서버 모듈을 통하여 이를 입력으로 사용하는 다른 로컬시뮬레이션으로 전달함과 동시에, 실제입력과 예상입력을 비교하며, 로컬시뮬레이션의 현재 시뮬레이션 시간이 시뮬레이션 종료시간과 같으면 종료하고, 같지 않으면 S520 단계로 진행한다. S520 단계에서는 상기 S518 단계에서 실제입력과 예상입력을 비교하여서 일치된 횟수가 미리 정해진 일정횟수(예로, 3번)이상 일치한지를 판단하여 일정횟수 일치하게 되었으면 S521 단계로 진행하고 그렇치 않으면 S518 단계로 진행한다. S522 단계에서는 다른 로컬시뮬레이션들이 모두 종료되었으면 이 로컬시뮬레이션 수행도 종료하게 되고, 그렇치 않으면 S524 단계로 진행한다. S524 단계에서는 이 로컬시뮬레이션의 롤백의 필요성이 있는지로 조사하여 필요하지 않으면 S522 단계로 진행하고 롤백의 필요성이 있으면 S526 단계로 진행한다. S526 단계에서는 실제롤백-시점 결정 후에 롤백을 실행하고, S518 단계로 진행한다. Referring to the entire flow chart of the local simulation for the distributed parallel processing simulation illustrated in FIG. 28, there are a total of 15 subblocks except for the start and end. In step S498 to set the current simulation time to 0, and proceeds to step S502. In step S502, the current simulation time information of the local simulation is generated, and if the current simulation time of the local simulation is to generate a checkpoint and if the checkpoint has not already been generated in advance, the checkpoint is generated, and the current simulation of the local simulation. If the time point is equal to the actual roll forward time, proceed to step S518. If the time point is equal to or greater than the simulation end time, proceed to step S522. Otherwise, proceed to the simulation using the predicted input to compare the actual output with the expected output. Proceed to step. In step S506, if the actual output obtained from the simulation of step S502 compares with the expected output, the process proceeds to step S504. If the comparison does not match, the process proceeds to step S508. In step S504, the event time (time of occurrence of change) of the actual output is set as the current simulation time of the local simulation, and the flow proceeds to step S502. In step S508, the simulation is temporarily stopped, and a rollback possibility generation is transmitted to the SW server module, and the current simulation time (rollback possible time point) is also transmitted to the SW server module, and the flow proceeds to step S510. In step S510, the actual rollback time / actual roll-forward time is obtained from the SW server module, and the process proceeds to step S512. In step S512, if rollback is required, the process proceeds to step S514. If rollback is not required, the flow proceeds to step S516. In step S516, if roll forward is required, the flow proceeds to step S502, and if roll forward is not required, the flow proceeds to step S518. In step S514 it performs a rollback of the local simulation and proceeds to step S518. In step S518, a simulation is performed using the actual input transmitted through the SW server module from another local simulation, and the actual output obtained is transferred to another local simulation using this as an input through the SW server module, and the actual input and the expected input are transmitted. In comparison, if the current simulation time of the local simulation is equal to the simulation end time, the process ends. If not, the process proceeds to step S520. In step S520 compares the actual input and the expected input in step S518 determines whether the number of times matched more than a predetermined number of times (for example, three times), and if the predetermined number of times matched, proceeds to step S521 otherwise it goes to step S518 Proceed. In step S522, if all other local simulations are finished, the execution of this local simulation is also terminated. Otherwise, the process proceeds to step S524. In step S524, if there is a need for rollback of the local simulation, the process proceeds to step S522 if it is not necessary, and if it is necessary to go back to step S526. In step S526, rollback is performed after the actual rollback-time determination, and the flow proceeds to step S518.

도29 에서 예시된 분산처리적병렬시뮬레이션 수행을 위한 SW서버 모듈의 로컬시뮬레이션 수행의 전체 진행 흐름도를 설명하면, 시작과 종료를 제외하고 총 10개의 서브블럭들로 구성되어 있다. S598 단계에서 현재 시뮬레이션시간을 0으로 설정하고, S602 단계로 진행한다. S602 단계에서 모든 로컬시뮬레이션들을 예상입출력이용-런 방식으로 진행되도록 제어하면서 각 로컬시뮬레이션들의 현재 시뮬레이션시간들을 조사하고 S606 단계로 진행한다. S606 단계에서는 현재 예상입출력이용-런 방식으로 진행되는 1 이상의 로컬시뮬레이션에서 롤백가능성이 발생했는지를 조사하여 발생하지 않은 경우에는 S604 단계로 진행하고 발생한 경우에는 S608 단계로 진행한다. S604 단계에서는 모든 로컬시뮬레이션들의 현재 시뮬레이션시간들이 시뮬레이션 종료시간이 되면 종료하고, 그렇치 않으면 S602 단계로 진행한다. S608 단계에서는 모든 롤백가능성 발생한 로컬시뮬레이션들에서부터 롤백가능 시점들 획득하여 실제롤백-시간/실제롤-포워드시간 계산하고, 각 로컬시뮬레이션들별로 예상입출력이용-런 방식 수행 내지는 실제입출력이용-런 방식 수행을 결정하고, 실제입출력이용-런 방식으로 수행되어야 하는 로컬시뮬레이션들 각각에 대하여 각 로컬시뮬레이션들별로 롤백 내지는 롤포워드 결정하고, 실제입출력이용-런 방식으로 수행되어야 하는 각 로컬시뮬레이션들별로 롤백 실행 내지는 롤포워드가 수행되도록 각각 제어하고 S610 단계로 진행한다. S610 단계에서는 1 이상의 로컬시뮬레이션에서 실제입출력이용-런 방식에서 예상입출력이용-런 방식으로의 전환 조건이 만족하는지를 조사하여서 만족하면 S612 단계로 진행하고 만족하지 않으면 S614 단계로 진행한다. S612 단계에서는 예상입출력이용-런 방식으로 전환 가능한 로컬시뮬레이션 의 수행 방식을 예상입출력이용-런 방식으로 전환하고 S614 단계로 진행한다. S614 단계에서는, 로컬시뮬레이션들 개개별로 예상입출력이용-런 방식 수행 가능 로컬시뮬레이션은 예상입출력이용-런 방식의 수행, 나머지 로컬시뮬레이션들은 실제입출력이용-런 방식의 수행이 진행되도록 제어하면서, 각 로컬시뮬레이션들의 현재 시뮬레이션시간들을 조사하고 S616 단계로 진행한다. S616 단계에서는 현재 예상입출력이용-런 방식으로 진행되는 1 이상의 로컬시뮬레이션에서 롤백가능성이 발생한지를 조사하여, 발생한 경우에는 S608 단계로 진행하고 발생하지 않은 경우에는 S618 단계로 진행한다. S618 단계에서는 모든 로컬시뮬레이션들의 현재 시뮬레이션시간들이 시뮬레이션시간이 되면 종료하고, 그렇치 않으면 S610 단계로 진행한다. Referring to the overall flow of the local simulation of the SW server module for performing distributed processing parallel simulation illustrated in Figure 29, a total of 10 subblocks except for the start and end. In step S598, the current simulation time is set to 0, and the flow proceeds to step S602. In step S602, all local simulations are controlled in a predicted I / O-run manner, and the current simulation times of the respective local simulations are examined, and the flow proceeds to step S606. In step S606, it is examined whether rollback possibility has occurred in one or more local simulations that are currently performed in the predicted I / O use-run method, and if not, proceeds to step S604 and, if so, proceeds to step S608. In step S604, the current simulation times of all local simulations are terminated when the simulation end time, otherwise, the flow proceeds to step S602. In step S608, the actual rollback-time / actual roll-forward time is calculated by obtaining the rollback time points from all local simulations in which the rollback possibility has occurred, and performing the expected I / O-run method or the actual I / O-run method for each local simulation. Determine and rollback or rollforward each local simulation for each local simulation that is to be performed in an actual I / O method, and execute rollback for each local simulation that must be performed in an actual I / O method. Each control is performed so that roll forward is performed, and the flow proceeds to step S610. In step S610, by checking whether the switching condition from the actual input / output use-run method to the expected input / output use-run method is satisfied in one or more local simulations, proceeds to step S612 if it is satisfied and proceeds to step S614 if it is not satisfied. In step S612, the method of performing local simulation that can be switched to the expected I / O use-run method is switched to the expected I / O-run method, and the flow proceeds to step S614. In step S614, each of the local simulations can be performed using the estimated I / O-run method, and the local simulation performs the expected I / O-run method, while the remaining local simulations control the execution of the actual I / O method. Investigate the current simulation times of the simulations and proceed to step S616. In step S616, it is examined whether rollback possibility has occurred in one or more local simulations that are currently performed in the predicted I / O use-run method, and if so, proceeds to step S608 and, if not, proceeds to step S618. In step S618, the current simulation times of all local simulations are terminated when the simulation time reaches. Otherwise, the process proceeds to step S610.

도29 에서 예시된 분산처리적병렬시뮬레이션 수행을 위한 SW서버 모듈의 로컬시뮬레이션 수행의 전체 진행 흐름도에서는 각 로컬시뮬레이션별로 독립적으로 예상입출력이용-런 방식의 진행 내지는 실제입출력이용-런 방식의 진행이 가능하도록 SW서버 모듈이 분산처리적병렬시뮬레이션 수행을 제어하고 있다. 그러나, 앞서서 이미 설명한 것과 같이 또 다른 구성에서는 분산처리적병렬시뮬레이션 수행을 위한 SW서버 모듈의 분산처리적병렬시뮬레이션 수행제어가 모든 로컬시뮬레이션들이 모두 다 예상입출력이용-런 방식으로 진행되는 경우에만 예상입출력이용-런 방식의 진행이 이루어지도록 하고, 나머지 상황에서는 실제입출력이용-런 방식으로 모든 로컬시뮬레이션들이 진행되도록 제어될 수 있도록 하는 것도 가능한데, 이 같은 경우는 시뮬레이션의 성능을 최대화하는 것에는 약점이 있으나 제어의 단순함에 있어서 장점이 있다.In the overall flow chart of the local simulation performed by the SW server module for performing the distributed parallelism simulation illustrated in FIG. 29, the progress of the I / O method or the actual I / O method can be independently performed for each local simulation. The SW server module controls distributed processing parallel execution. However, as already explained above, in another configuration, the distributed processing of parallel processing of the SW server module for performing distributed processing parallel simulation is expected only if all local simulations are performed in the expected I / O-run manner. It is also possible to allow the use-run process to proceed, and in other situations, to control all local simulations to proceed in a real I / O use-run manner. In this case, there is a weak point in maximizing the performance of the simulation. There is an advantage in simplicity of control.

도30 과 도31 은, 도8 의 본 특허에서 제시한 분산처리적병렬시뮬레이션을 위하여 부가되는 부가 코드 내부를 구성하는 컴퍼넌트들 각각에 대하여 이들의 행태를 모조코드(pseudo code) 형식으로 구술한 예를 개략적으로 도시한 도면이다. 이와 같은 부가 코드의 컴퍼넌트들을 최대한 합성가능한 형태로 만들어서 부가한다면 하드웨어기반검증플랫폼상에서도 구현되어질 수 있는 추가적인 장점을 가질 수 있다. 30 and 31 are examples of dictating their behavior in pseudo code form for each of the components constituting the additional code added to be distributed for distributed parallelism simulation presented in the present patent of FIG. Figure is a schematic diagram. If components of such additional code are added in a form that can be synthesized as much as possible, there may be an additional advantage that can be implemented on a hardware-based verification platform.

따라서 다시 한번 강조할 것은, 본 특허에서 “시뮬레이션”이라 함은 1 내지는 2 이상의 시뮬레이터만을 이용한 순수한 시뮬레이션뿐만 아니라 1 내지는 2 이상의 시뮬레이터와 1 내지는 2 이상의 하드웨어기반검증플랫폼을 이용한 시뮬레이션가속도 포함하는 것이라는 것이다. 따라서, 본 특허에서의 분산처리적병렬시뮬레이션 환경을 구성하는 각 로컬시뮬레이션은 로컬시뮬레이터에서 수행되어질 수 있을 뿐만 아니라, 혹은 로컬하드웨어기반검증플랫폼에서 시뮬레이션가속 방식으로 수행되어 질 수도 있을 뿐만 아니라, 혹은 로컬시뮬레이터와 로컬하드웨어기반검증플랫폼을 함께 이용하여서 수행되어 질 수 있다는 것도 다시 한번 강조한다.Therefore, it should be emphasized again that "simulation" in this patent includes not only pure simulation using only one or two or more simulators, but also simulation acceleration using one or more simulators and one or more hardware-based verification platforms. Therefore, each local simulation constituting the distributed processing parallel simulation environment in the present patent may not only be performed in the local simulator, but also may be performed in the accelerated manner in the local hardware-based verification platform, or locally. It is again emphasized that this can be done using a simulator and a local hardware-based verification platform.

뿐만 아니라, 본 특허에서 제시한 분산처리적병렬시뮬레이션 방법은 트란젝션 수준에서부터 게이트 수준으로까지의 구체화 과정에 적용되어질 수 있을 뿐만 아니라, 혹은 다른 추상화 수준들에서의 구체화 과정에서도 적용되어질 수 있다.In addition, the distributed process parallel simulation method proposed in this patent can be applied not only to the specification process from the transaction level to the gate level, but also in the specification process at other levels of abstraction.

도32 는, 본 특허에서 제시한 분산처리적병렬시뮬레이션을 위하여 부가되는 부가코드의 내부를 구성하는 컴퍼넌트들의 구성의 다른 일 예를 개략적으로 도시한 도면이다. 도32 는 도8 과 매우 유사하지만, 도32 가 도8 과의 차이점은 s-DCP 생성/저장 모듈(60)에 추상화 상위수준(즉, 해당 로컬시뮬레이션에서 실행되는 로컬설계객 체의 추상화 수준보다 높은 추상화수준)에서 구술된 DUV와 TB 모두를 포함하는 설계객체(53)를 두고 이 추상화 상위수준에서 구술된 DUV와 TB 모두를 포함하는 설계객체(53)를 상기 로컬시뮬레이션에서 실행되어져야 하는 로컬설계객체와 같이 실행하면서(추상화 상위수준에서 구술된 DUV와 TB 모두를 포함하는 설계객체(53)의 실행은 시뮬레이션 만으로 수행하거나, 내지는 하드웨어기반검증플랫폼을 이용한 시뮬레이션가속 만으로 수행하거나, 내지는 이 둘을 혼합한 방식으로 수행할 수 있음) 상기 로컬설계객체에 대한 로컬시뮬레이션을 통신 오버헤드와 동기 오버헤드를 최소한으로 하면서 진행하기 위하여 필요한 예상입력과 예상출력을 동적으로 생성하여서 이용한다는 것이다. 즉, 도32 에서 예시한 방식과 도8 에서 예시한 방식의 s-DCP 생성/저장 모듈(60)을 이용하는 방법의 차이점은, 전통적인 시뮬레이션 방법에서 시뮬레이션의 결과를 자동비교하는 방법으로서의 두 방법인 골든 모델(golden model)을 이용하는 방식(현 시뮬레이션 수행시에 골든 모델을 DUV가 같이 시뮬레이션되어지도록 하여서 골든 모델에서 동적으로 얻어지는 시뮬레이션 결과를 이용하는 방식)과 골든 벡터(golden vector)를 이용하는 방식(이미 앞선 시뮬레이션을 통하여 구해진 시뮬레이션 결과를 이용하는 방식)의 차이점과 유사하다. 다시 한번 강조한다면 본 특허에서의 분산처리적병렬시뮬레이션의 각 로컬시뮬레이션에서 통신 오버헤드와 동기 오버헤드를 최소화시키면서 시뮬레이션 수행이 될 수 있게하기 위하여 필요한 예상입력 내지는 예상출력 내지는 예상입력과 예상출력은 앞선 시뮬레이션 수행에서 수집되어서 저장된 동적정보에서부터 구하여 사용하거나, 내지는 로컬설계객체보다 추상화 수준이 높은 모델을 로컬시뮬레이션에서 로컬설계객체와 같이 실행시키면서 상기 추상화 수준이 높은 모델에서부터 동적으로 구하여 사용한다. 뿐만 아니라, 이미 수차례 언급된 것과 같이 도32 의 추상화 상위수준에서 구술된 DUV와 TB 모두를 포함하는 설계객체(53) 대신에 로컬설계객체와 동일한 추상화수준이지만 시뮬레이션이 빠르게 수행되도록 최적화되어진 DUV와 TB 모두를 포함하는 설계객체를 사용하는 것도 가능하다.32 is a diagram schematically showing another example of the configuration of components constituting the inside of an additional code added for distributed processing parallel simulation proposed in the present patent. 32 is very similar to FIG. 8, but FIG. 32 differs from FIG. 8 in that the s-DCP generation / storage module 60 has a higher level of abstraction than the level of abstraction of the local design object executed in the local simulation. A design object 53 containing both DUVs and TBs dictated at a high level of abstraction and a localized design object 53 containing both DUVs and TBs dictated at this high level of abstraction should be run in the local simulation. The execution of the design object 53 including both the DUV and the TB described at the upper level of abstraction is performed only by the simulation, or by the acceleration of the simulation using the hardware-based verification platform, or both. Mixed simulation) Local simulation of the local design object can be performed with minimum communication overhead and synchronization overhead. It is used to dynamically generate the hayeoseo expected input and expected output required. That is, the difference between the method illustrated in FIG. 32 and the method of using the s-DCP generation / storage module 60 of the method illustrated in FIG. 8 is golden, which is a method of automatically comparing the results of simulations in the conventional simulation method. Using the golden model (using the simulation results obtained dynamically from the golden model by allowing the DUV to be simulated with the golden model during the current simulation) and using the golden vector (already in the simulation). This method is similar to the method of using the simulation result obtained through To reiterate once again, the expected input, expected output, or expected input and expected output needed to enable the simulation to be performed while minimizing the communication overhead and the synchronization overhead in each local simulation of the distributed parallelism simulation in the present patent. It is obtained from the dynamic information collected and stored in the simulation, or dynamically obtained from the model having the high abstraction level while executing a model having a higher abstraction level than the local design object as the local design object in the local simulation. In addition, as already mentioned several times, instead of the design object 53 including both the DUV and TB dictated at the higher level of abstraction of FIG. 32, the DUV and the optimized level of abstraction are optimized to perform the simulation quickly. It is also possible to use a design object that contains all of the TBs.

그리고, 본 특허에서 제시한 분산처리적병렬시뮬레이션을 통하여 특정 추상화 수준의 모델(예로, RTL 모델 내지는 RTL/GL 혼합수준 모델 내지는 TLM/RTL 혼합수준 모델 내지는 TLM/RTL/GL 혼합수준 모델 등)의 시뮬레이션만을 빠르게 수행시키고자 한다면 상기 모델 내지는 모델 내의 1 이상의 설계객체들의 추상화 수준을 자동화된 방법을 통하여 높이는 과정 내지는 시뮬레이션이 빠르게 진행되도록하는 최적화 과정 내지는 이 두과정을 혼용한 과정(예로, Carbon Design Systems사의 VSP를 사용하거나, 내지는 TenisonEDA사의 VTOC을 사용하거나, 내지는 국내특허 10-2005-95803, 10-2005-116706, 10-2006-19738에서의 방법들)을 통하여 상기 모델 내지는 모델 내의 1 이상의 설계객체들을 변환한 새로운 모델을 만들고, 이들 새로운 모델을 s-DCP로 활용하거나 혹은 이 새로운 모델을 이용한 시뮬레이션을 먼저 수행하여서 얻어진 동적정보를 s-DCP로 활용하여서 상기의 분산처리적병렬시뮬레이션을 진행할 수 있다. And, through the distributed parallelism simulation proposed in this patent, a model of a specific abstraction level (for example, RTL model, RTL / GL mixed level model, TLM / RTL mixed level model, or TLM / RTL / GL mixed level model, etc.) If you want to perform only the simulation quickly, the process of increasing the abstraction level of the model or one or more design objects in the model through an automated method, or the optimization process for speeding up the simulation or a combination of the two processes (for example, Carbon Design Systems) One or more design objects in the model or model using the VSP of the company, or using the VTOC of the TenisonEDA company, or the methods in Korean Patent Nos. 10-2005-95803, 10-2005-116706, 10-2006-19738). A new model that transforms the model, use it as an s-DCP, or use this new model Hayeoseo utilizing the dynamic information obtained hayeoseo the simulation first to s-DCP may proceed to the parallel distributed processing ever simulation.

상술한 바와 같이, 본 발명의 효과는 초대규모급 설계를 ESL 기반에서 수행하는 경 우에 추상화 상위수준 모델을 이용한 시뮬레이션의 결과를 활용하여서 추상화 하위수준 모델에 대한 검증을 신속하게 수행하는 것이 가능함으로서 전체 설계 검증의 시간을 대폭적으로 단축하고 검증의 효율성을 크게 높이는 것이 가능하다. As described above, the effect of the present invention is that it is possible to quickly verify the abstraction low-level model by utilizing the results of the simulation using the abstraction high-level model when performing the super-scale design based on ESL. It is possible to significantly shorten the time for design verification and greatly increase the efficiency of verification.

뿐만 아니라, 본 발명의 또 다른 효과는 시스템 수준에서부터 게이트 수준까지 진행되는 설계를 점진적 구체화를 통하여 진행하는 과정에 적용되는 검증 과정을 설계 과정과 같이 점진적 구체화를 통하여서 효과적으로 진행할 수 있는 체계적인 검증 방법을 제공한다.In addition, another effect of the present invention provides a systematic verification method that can effectively proceed the verification process applied to the process of the design progress from the system level to the gate level through the gradual specification, such as the design process do.

본 발명의 또 다른 효과는, 점진적 구체화를 통하여 진행되는 설계에서 진행되는 검증이 점진적 구체화 과정을 통하여 추상화 하위 단계로 진행될수록 검증 속도가 크게 떨어지는 문제점을 해결하는 체계적인 검증 방법을 제공한다. Another effect of the present invention is to provide a systematic verification method that solves the problem that the verification speed decreases as the verification progressed in the design progressed through the gradual specification is progressed to the lower level of abstraction through the gradual specification process.

본 발명의 또 다른 효과는, 설계 및 검증을 추상화 상위수준에서부터 추상화 하위수준으로까지 점진적 구체화 방식으로 진행되는 전체 과정이 체계적이며 자동화된 방식으로 진행될 수 있도록 한다. Another effect of the present invention is to allow the entire process of design and verification from a high level of abstraction to a low level of abstraction in a gradual materialization manner to be carried out in a systematic and automated manner.

본 발명의 또 다른 효과는, 여러 추상화 수준들에서 존재하는 2 이상의 모델들간의 모델 일관성을 효과적으로 유지하는 체계적인 검증 방법을 제공한다.Another effect of the present invention is to provide a systematic verification method that effectively maintains model consistency between two or more models present at different levels of abstraction.

본 발명의 또 다른 효과는, 체계적으로 유지된 모델 일관성에 근거하여서 추상화 상위 수준에서의 모델을 레퍼런스 모델로 활용하여서 점진적 구체화 과정을 통하여 추상화 하위 수준의 모델을 효과적으로 검증하는 방법을 제공한다. Another effect of the present invention is to provide a method of effectively verifying a low level abstraction model through a gradual materialization process by using a model at a high level of abstraction as a reference model based on systematically maintained model consistency.

본 발명의 또 다른 효과는, 분산병렬 시뮬레이션에서의 동기 오버헤드와 통신 오버헤드를 효과적으로 줄임으로서 분산병렬 시뮬레이션의 속도를 높이는 방법을 제공 한다. Another effect of the present invention is to provide a method of speeding up distributed parallel simulation by effectively reducing synchronization overhead and communication overhead in distributed parallel simulation.

본 발명의 또 다른 효과는, 점진적 구체화 과정을 통한 설계 과정에서 발견되는 설계오류들을 제거하는 디버깅 과정을 체계적으로 수행할 수 있도록 함으로서 신속한 디버깅을 통한 설계 오류를 수정하는 방법을 제공한다. Yet another effect of the present invention is to provide a method of correcting design errors through rapid debugging by systematically performing a debugging process for removing design errors found in a design process through a gradual specification process.

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

검증 소프트웨어와 1 내지는 2 이상의 시뮬레이터를 구비하는 설계검증 장치에 있어서,A design verification apparatus having verification software and one or more simulators, 상기 검증 소프트웨어는 설계검증 대상이 되는 시뮬레이션이 가능한 1 이상의 모델 내지는 시뮬레이션 환경 내지는 시뮬레이션이 가능한 1 이상의 모델과 시뮬레이션 환경에 부가적인 부가 코드를 추가하여, 상기 1 이상의 모델 중에서 특정한 모델을 이용한 앞단 시뮬레이션을 수행하면서 상기 1 이상의 모델 중에서 상기 특정한 모델 내지는 다른 특정한 모델 전체 내지는 모델 내에 존재하는 1 이상의 설계객체를 대상으로 하는 후단 시뮬레이션을 시뮬레이션 전체 시간구간에서 병렬적으로 수행하거나 내지는 시뮬레이션 특정 시간구간에서만 수행하는데 필요한 동적정보를 상기 앞단 시뮬레이션 과정에서 자동적으로 수집할 수 있도록 하고, 앞단 시뮬레이션을 상기 동적정보를 수집하면서 빠르게 수행하고, 이 수집된 동적정보를 이용하여 상기 1 이상의 모델 중에서 상기 특정한 모델 내지는 다른 특정한 모델 전체 내지는 모델 내에 존재하는 1 이상의 설계객체를 대상으로 하는 상기 후단 시뮬레이션을 신속하게 수행하는 설계 검증 장치.The verification software adds one or more models that can be simulated for design verification, or one or more models that can be simulated, and an additional additional code to the simulation environment, and performs advanced simulation using a specific model among the one or more models. The dynamics required to perform a post-end simulation targeting one or more design objects existing in the specific model or all other specific models among the one or more models in parallel or only in a simulation specific time period. It is possible to automatically collect information in the front end simulation process, and perform the front end simulation while collecting the dynamic information quickly, using the collected dynamic information 1 Design verification device to rapidly perform the rear-stage simulation that target one or more design objects present in the particular model naejineun another particular model from among the total naejineun model in the model. 검증 소프트웨어와 1 내지는 2 이상의 시뮬레이터와 1 내지는 2 이상의 하드웨어기반검증플랫폼을 구비하는 설계검증 장치에 있어서,A design verification apparatus having verification software, one or more simulators, and one or more hardware-based verification platforms, 상기 검증 소프트웨어는 설계검증 대상이 되는 시뮬레이션이 가능한 1 이상의 모델 내지는 시뮬레이션 환경 내지는 시뮬레이션이 가능한 1 이상의 모델과 시뮬레이션 환경에 부가적인 부가 코드를 추가하여, 상기 1 이상의 모델 중에서 특정한 모델을 이용한 앞단 시뮬레이션을 수행하면서 상기 1 이상의 모델 중에서 상기 특정한 모델 내지는 다른 특정한 모델 전체 내지는 모델 내에 존재하는 1 이상의 설계객체를 대상으로 하는 후단 시뮬레이션을 시뮬레이션 전체 시간구간에서 병렬적으로 수행하거나 내지는 시뮬레이션 특정 시간구간에서만 수행하는데 필요한 동적정보를 상기 앞단 시뮬레이션 과정에서 자동적으로 수집할 수 있도록 하고, 앞단 시뮬레이션을 상기 동적정보를 수집하면서 빠르게 수행하고, 이 수집된 동적정보를 이용하여 상기 1 이상의 모델 중에서 상기 특정한 모델 내지는 다른 특정한 모델 전체 내지는 모델 내에 존재하는 1 이상의 설계객체를 대상으로 하는 상기 후단 시뮬레이션을 신속하게 수행하는 설계 검증 장치. The verification software adds one or more models that can be simulated for design verification, or one or more models that can be simulated, and an additional additional code to the simulation environment, and performs advanced simulation using a specific model among the one or more models. The dynamics required to perform a post-end simulation targeting one or more design objects existing in the specific model or all other specific models among the one or more models in parallel or only in a simulation specific time period. It is possible to automatically collect information in the front end simulation process, and perform the front end simulation while collecting the dynamic information quickly, using the collected dynamic information 1 A design verification apparatus for rapidly performing the post-simulation of one or more design objects existing in the specific model or all other specific models among the models. 설계 검증을 위하여 1 이상의 모델을 대상으로 하는 시뮬레이션에 있어서,In simulations involving one or more models for design verification, 상기 시뮬레이션을 앞단 시뮬레이션 단계와 후단 시뮬레이션 단계로 나누어서 수행하며, 상기 앞단 시뮬레이션을 상기 1 이상의 모델중의 특정 모델을 대상으로 수행하면서 상기 후단 시뮬레이션을 시뮬레이션 전체 시간구간에서 병렬적으로 수행하거나 내지는 시뮬레이션 특정 시간구간에서만 수행하는데 필요한 동적정보를 상기 앞단 시뮬레이션 과정에서 자동적으로 수집하는 단계와, 이 수집된 동적정보를 이용하여 상기 1 이상의 모델 중의 동일 특정 모델 내지는 별도의 특정 모델 전체 내지는 모델 내에 존재하는 1 이상의 설계객체를 대상으로 하는 상기 후단 시뮬레이 션을 시뮬레이션 전체 시간구간에서 병렬적으로 수행하거나 내지는 시뮬레이션 특정 시간구간에서 신속하게 수행하는 단계를 포함하는 시뮬레이션 방법. The simulation is performed by dividing the front stage simulation stage and the rear stage simulation stage, and the rear stage simulation is performed in parallel over the entire time period of the simulation while the front stage simulation is performed on a specific model among the one or more models. Automatically collecting dynamic information necessary to be performed only in a section in the preceding simulation process, and using the collected dynamic information, one or more designs present in the same specific model or all other specific models or models within the one or more models. And performing the post-simulation on the object in parallel in the entire simulation time period or in a simulation specific time period. 설계 검증을 위하여 1 이상의 모델을 대상으로 하는 시뮬레이션에 있어서,In simulations involving one or more models for design verification, 상기 시뮬레이션을 앞단 시뮬레이션 단계와 후단 시뮬레이션 단계로 나누어서 수행하며, 상기 앞단 시뮬레이션을 상기 1 이상의 모델중의 특정 모델을 대상으로 수행하면서 상기 후단 시뮬레이션을 시뮬레이션 전체 시간구간에서 병렬적으로 수행하거나 내지는 시뮬레이션 특정 시간구간에서만 수행하는데 필요한 동적정보를 상기 앞단 시뮬레이션 과정에서 자동적으로 수집하는 단계와, 상기 앞단 시뮬레이션에서 수집된 동적정보를 s-DCP 정확도증강 과정을 통하여 정확도가 향상된 동적정보로 변환하는 단계 내지는 t-DCP 정확도증강 과정을 통하여 정확도가 향상된 동적정보로 변환하는 단계와, 상기 정확도가 향상된 동적정보를 이용하여 상기 1 이상의 모델 중의 동일 특정 모델 내지는 별도의 특정 모델 전체 내지는 모델 내에 존재하는 1 이상의 설계객체를 대상으로 하는 상기 후단 시뮬레이션을 시뮬레이션 전체 시간구간에서 병렬적으로 수행하거나 내지는 시뮬레이션 특정 시간구간에서 신속하게 수행하는 단계를 포함하는 시뮬레이션 방법. The simulation is performed by dividing the front stage simulation stage and the rear stage simulation stage, and the rear stage simulation is performed in parallel over the entire time period of the simulation while the front stage simulation is performed on a specific model among the one or more models. Automatically collecting the dynamic information necessary to perform only in the interval during the preceding simulation process, and converting the dynamic information collected in the preceding simulation into dynamic information with improved accuracy through an s-DCP accuracy enhancement process or t-DCP. Converting the dynamic information with improved accuracy through an accuracy-enhancing process, and using the dynamic information with improved accuracy, all of the same specific model or one or more specific models in the one or more models, Simulation-based method to perform the subsequent stage of the simulation objects in the target throughout the simulation time interval in parallel or simulation comprising the step of rapidly performed in a specific time interval naejineun. 제 3 항 내지는 제 4 항에 있어서,The method according to claim 3 or 4, 상기 앞단 시뮬레이션에서 사용하는 모델과 후단 시뮬레이션에서 사용하는 모델의 추상화 수준이 다른 시뮬레이션 방법.A simulation method having a different level of abstraction between the model used in the preceding simulation and the model used in the latter simulation. 제 3 항 내지는 제 4 항에 있어서,The method according to claim 3 or 4, 상기 앞단 시뮬레이션에서 사용하는 모델의 추상화 수준이 후단 시뮬레이션에서 사용하는 모델의 추상화 수준보다 높으며, 후단 시뮬레이션에서 사용하는 모델의 추상화 수준이 원래의 설계 검증 대상이 되는 모델의 추상화 수준과 동일하며 후단 시뮬레이션에서 사용하는 모델이 원래의 설계 검증 대상인 시뮬레이션 방법.The abstraction level of the model used in the preceding simulation is higher than the abstraction level of the model used in the latter simulation, and the abstraction level of the model used in the latter simulation is the same as the abstraction level of the model subject to the original design verification. Simulation method in which the model used is the original design verification target. 제 3 항 내지는 제 4 항에 있어서,The method according to claim 3 or 4, 상기 앞단 시뮬레이션에서 사용하는 모델과 후단 시뮬레이션에서 사용하는 모델의 추상화 수준이 동일한 시뮬레이션 방법.Simulation method of the same level of abstraction of the model used in the preceding simulation and the model used in the later simulation. 제 3 항 내지는 제 4 항에 있어서,The method according to claim 3 or 4, 상기 앞단 시뮬레이션에서 수집되는 동적정보가 s-DCP 내지는 t-DCP인 시뮬레이션 방법.The simulation method, wherein the dynamic information collected in the preceding simulation is s-DCP or t-DCP. 제 3 항 내지는 제 4 항에 있어서,The method according to claim 3 or 4, 상기 동적정보가 1 이상의 시뮬레이션 특정 시점 내지는 1 이상의 시뮬레이션 특정 구간들에서의 모델 전체 내지는 모낼 내에 존재하는 1 이상의 설계객체에 존재하는 상태정보를 포함하는 시뮬레이션 방법.And the dynamic information includes state information present in one or more design objects present in the entire model or the module at one or more simulation specific points of time, one or more simulation specific sections. 제 3 항 내지는 제 4 항에 있어서,The method according to claim 3 or 4, 상기 동적정보가 모델 내에 존재하는 1 이상의 설계객체의 입출력정보 내지는 입력정보 내지는 출력정보를 포함하는 시뮬레이션 방법.And the input / output information, input information, or output information of one or more design objects in which the dynamic information exists in the model. 제 3 항 내지는 제 4 항에 있어서,The method according to claim 3 or 4, 상기 동적정보가 모델 내에 존재하는 1 이상의 설계객체의 시뮬레이션 전체 시간구간 내지는 1 이상의 특정 시간구간의 입출력정보 내지는 입력정보 내지는 출력정보를 포함하는 시뮬레이션 방법.And the input / output information, the input information, or the output information of the entire simulation period or one or more specific time intervals of one or more design objects in which the dynamic information exists in the model. 제 3 항 내지는 제 4 항에 있어서,The method according to claim 3 or 4, 상기 동적정보가 추상화 상위수준 모델 내에 존재하는 부분계층대응관계에 있는 모든 설계객체들의 시뮬레이션 전체 시간구간 내지는 1 이상의 특정 시간구간의 입출력정보 내지는 입력정보 내지는 출력정보를 포함하는 시뮬레이션 방법.And all input / output information, input information, or output information of a simulation entire time period or one or more specific time periods of all design objects having a partial layer correspondence relationship in which the dynamic information exists in the abstraction higher level model. 제 3 항 내지는 제 4 항에 있어서,The method according to claim 3 or 4, 상기 병렬적으로 수행되는 후단 시뮬레이션이 분산처리적병렬수행인 시뮬레이션 방법.And the post-simulation performed in parallel is distributed processing parallel execution. 제 3 항 내지는 제 4 항에 있어서,The method according to claim 3 or 4, 상기 병렬적으로 수행되는 후단 시뮬레이션이 시간분할적병렬수행인 시뮬레이션 방 법.The simulation method in which the post-simulation performed in parallel is time divisional parallel execution. 제 3 항 내지는 제 4 항 내지는 제 13 항에 있어서,The method according to claim 3 or 4 or 13, 상기 병렬적으로 수행되는 후단 시뮬레이션이 분산처리적병렬수행인 검증 방법이며 앞단 시뮬레이션에서 수집된 s-DCP를 이용하거나 내지는 정확도를 증강시킨 s-DCP를 이용하여서 분산처리적병렬수행으로 진행되는 후단 시뮬레이션에서 예상입출력이용-런 방식으로 진행되는 시뮬레이션 시간구간을 최대한으로 하는 시뮬레이션 방법.The back-end simulation that is performed in parallel is a verification method of distributed parallelism, and the back-end simulation that proceeds to distributed parallelism using s-DCP collected from the previous simulation or s-DCP with enhanced accuracy. Simulation method that maximizes the simulation time interval in the expected I / O using-run method. 제 3 항 내지는 제 4 항 내지는 제 13 항에 있어서,The method according to claim 3 or 4 or 13, 상기 병렬적으로 수행되는 후단 시뮬레이션이 분산처리적병렬수행인 검증 방법이며 앞단 시뮬레이션에서 수집된 s-DCP를 이용하거나 내지는 정확도를 증강시킨 s-DCP를 이용하여서 분산처리적병렬수행으로 진행되는 후단 시뮬레이션에서 롤백 실행 횟수를 최소화하는 시뮬레이션 방법.The back-end simulation that is performed in parallel is a verification method of distributed parallelism, and the back-end simulation that proceeds to distributed parallelism using s-DCP collected from the previous simulation or s-DCP with enhanced accuracy. Simulation method to minimize the number of rollback executions in the. 제 3 항 내지는 제 4 항 내지는 제 13 항에 있어서,The method according to claim 3 or 4 or 13, 상기 병렬적으로 수행되는 후단 시뮬레이션이 분산처리적병렬수행인 검증 방법이며 앞단 시뮬레이션에서 수집된 s-DCP를 이용하거나 내지는 정확도를 증강시킨 s-DCP를 이용하여서 분산처리적병렬수행으로 진행되는 후단 시뮬레이션에서 예상출력/실제출력 불일치 횟수를 최소화하는 시뮬레이션 방법. The back-end simulation that is performed in parallel is a verification method of distributed parallelism, and the back-end simulation that proceeds to distributed parallelism using s-DCP collected from the previous simulation or s-DCP with enhanced accuracy. Simulation method to minimize the expected output / actual output discrepancy in. 설계 검증을 위하여 특정 게이트수준 모델을 대상으로 하는 게이트수준 타이밍 시뮬레이션에 있어서,In gate-level timing simulation targeting a specific gate-level model for design verification, 상기 게이트수준 타이밍 시뮬레이션을 위하여 앞단 시뮬레이션 단계와 후단 시뮬레이션 단계를 수행하며, 상기 앞단 시뮬레이션을 상기 특정 게이트수준 모델보다 추상화수준이 높은 상이한추상수준 동일모델로 수행하면서 상기 후단 시뮬레이션을 분산병렬 게이트수준 타이밍 시뮬레이션으로 수행하는데 필요한 동적정보를 상기 앞단 시뮬레이션 과정에서 자동적으로 수집하는 단계와, 상기 앞단 시뮬레이션에서 수집된 동적정보를 s-DCP 정확도증강 과정을 통하여 정확도가 향상된 동적정보로 변환하는 단계로서 상기 특정 게이트수준 모델에 존재하는 2 이상의 설계객체들을 대상으로 상기 앞단 시뮬레이션에서 수집된 동적정보를 입력정보로 이용하여서 수행하는 2 이상의 게이트수준 타이밍 시뮬레이션들 각각을 독립적으로 진행함으로서 정확도가 향상된 동적정보를 얻는 단계와, 상기 정확도가 향상된 동적정보에서부터 구해지는 분산병렬 시뮬레이션의 각 로컬시뮬레이션의 예상입력과 예상출력을 이용하여 상기 특정 게이트수준 모델 전체를 대상으로 하는 상기 후단 시뮬레이션을 통신 오버헤드 내지는 동기 오버헤드를 최소화한 분산병렬 게이트수준 타이밍 시뮬레이션으로 수행하는 단계를 포함하는 시뮬레이션 방법. For the gate level timing simulation, a front end simulation step and a rear end simulation step are performed, and the rear end simulation is performed in a parallel parallel gate level timing simulation while the front end simulation is performed with different abstract level identical models having a higher abstraction level than the specific gate level model. Automatically collecting the dynamic information necessary to perform the process in the preceding simulation step and converting the dynamic information collected in the previous simulation into dynamic information with improved accuracy through the s-DCP accuracy enhancement process. Accurately execute two or more gate-level timing simulations independently by using the dynamic information collected in the previous simulation as input information for two or more design objects in the model. Obtaining an improved dynamic information and communicating over the rear end simulation of the entire gate-level model using the predicted input and the predicted output of each local simulation of the distributed parallel simulation obtained from the improved dynamic information. And performing a distributed parallel gate-level timing simulation with minimal head or synchronization overhead. 설계 검증을 위하여 특정 추상화 수준의 모델을 대상으로 하는 분산병렬 시뮬레이션에 있어서 상기 분산병렬 시뮬레이션의 1 이상의 로컬시뮬레이션이 시뮬레이션 수행의 예상입력과 예상출력을 이용하는 분산병렬 시뮬레이션에 있어서,In distributed parallel simulation targeting a model with a certain level of abstraction for design verification, in distributed parallel simulation using one or more local simulations of the distributed parallel simulation using the expected input and the expected output of the simulation, 상기 분산병렬 시뮬레이션 수행이 상기 1 이상의 로컬시뮬레이션 수행을 다른 로컬시뮬레이션들과의 통신과 동기화를 생략하고 상기 예상입력으로 독립적으로 진행할 수 있는지를 판단하는 단계와, 상기 1 이상의 로컬시뮬레이션 수행에 의하여 얻어지는 실제출력과 상기 예상출력이 일치하는지를 판단하는 단계와, 예상입출력이용-런 방식의 수행에서 실제입출력이용-런 방식으로의 전환을 판단하는 단계와, 롤백이 필요한지를 판단하고 롤백이 필요시에 롤백을 수행하는 단계와, 실제입출력이용-런 방식의 수행에서 예상입출력이용-런 방식으로의 전환을 판단하는 단계를 포함하는 분산병렬 시뮬레이션 방법. Determining whether the distributed parallel simulation can be performed independently of the expected input by skipping the synchronization with the other local simulations and synchronizing with the other local simulations; and the actual obtained by performing the one or more local simulations. Determining whether the output matches the expected output, determining the transition from the expected I / O run to the actual I / O run method, determining whether a rollback is necessary, and performing a rollback if necessary. And performing a step of determining the switching from the actual I / O-run method to the expected I / O-run method. 설계 검증을 위하여 특정 추상화 수준의 모델을 대상으로 하는 분산병렬 시뮬레이션에 있어서 상기 분산병렬 시뮬레이션에서의 1 이상의 로컬시뮬레이션이 분산병렬 시뮬레이션 수행에 앞서서 상기 특정 추상화 수준의 모델 내지는 상이한추상수준 동일모델을 대상으로 하여서 수행된 1 이상의 이전 시뮬레이션 수행과정에서 얻어진 동적정보에서부터 구해지는 상기 1 이상의 로컬시뮬레이션 수행의 예상입력과 예상출력을 이용하는 분산병렬 시뮬레이션에 있어서,In a distributed parallel simulation targeting a model of a specific abstraction level for design verification, at least one local simulation in the distributed parallel simulation may be performed on a model of the specific abstraction level or a different abstract level identical model before performing a distributed parallel simulation. In a distributed parallel simulation using the predicted input and the predicted output of the at least one local simulation, which are obtained from the dynamic information obtained in the at least one previous simulation performed, 상기 분산병렬 시뮬레이션 수행이 상기 1 이상의 로컬시뮬레이션 수행을 다른 로컬시뮬레이션들과의 통신과 동기화를 생략하고 상기 예상입력으로 독립적으로 진행할 수 있는지를 판단하는 단계와, 상기 1 이상의 로컬시뮬레이션 수행에 의하여 얻어지는 실제출력과 상기 예상출력이 일치하는지를 판단하는 단계와, 예상입출력이용- 런 방식의 수행에서 실제입출력이용-런 방식으로의 전환을 판단하는 단계와, 롤백이 필요한지를 판단하고 롤백이 필요시에 롤백을 수행하는 단계와, 실제입출력이용-런 방식의 수행에서 예상입출력이용-런 방식으로의 전환을 판단하는 단계를 포함하는 분산병렬 시뮬레이션 방법. Determining whether the distributed parallel simulation can be performed independently of the expected input by skipping the synchronization with the other local simulations and synchronizing with the other local simulations; and the actual obtained by performing the one or more local simulations. Determining whether the output matches the expected output, determining the transition from performing the expected I / O to the actual I / O using method, determining whether a rollback is necessary, and performing a rollback if necessary. And performing a step of determining the switching from the actual I / O-run method to the expected I / O-run method. 설계 검증을 위하여 특정 추상화 수준의 모델을 대상으로 하는 시뮬레이션에 있어서,In the simulation of a model with a certain level of abstraction for design verification, 상기 시뮬레이션을 분산병렬 시뮬레이션으로 수행하며, 상기 시뮬레이션을 분산병렬 시뮬레이션으로 수행하는 과정에서 1 이상의 로컬시뮬레이션이 상기 시뮬레이션 수행에 앞서서 상기 특정 추상화 수준의 모델 내지는 상이한추상수준 동일모델을 대상으로 하여서 수행된 1 이상의 이전 시뮬레이션 수행과정에서 얻어진 동적정보를 이용함으로서 상기 분산병렬 시뮬레이션의 수행속도를 높이는 시뮬레이션 방법.The simulation is performed in a distributed parallel simulation, and in the process of performing the simulation in a distributed parallel simulation, one or more local simulations are performed on a model of the specific abstraction level or a different abstract level identical model before performing the simulation. Simulation method for increasing the performance of the distributed parallel simulation by using the dynamic information obtained in the previous simulation execution process. 제 21 항 내지는 제 49 항에 있어서,The method of claim 21 or 49, 상기 이전 시뮬레이션 수행과정에서 얻어진 동적정보를 이용함으로서 분산병렬 시뮬레이션의 동기 오버헤드 내지는 통신 오버헤드를 최소화함으로서 분산병렬 시뮬레이션의 수행속도를 높이는 시뮬레이션 방법. And a method for speeding up the execution of distributed parallel simulation by minimizing the synchronization overhead or the communication overhead of distributed parallel simulation by using the dynamic information obtained in the previous simulation. 제 21 항 내지는 제 22 항 내지는 제 49 항에 있어서,The method according to claim 21 or 22 to 49, 상기 이전 시뮬레이션 수행과정에서 얻어진 동적정보가 해당 모델에 존재하는 1 이 상의 설계객체들에 존재하는 입출력정보 내지는 입력정보 내지는 출력정보이며 이 입출력정보 내지는 입력정보 내지는 출력정보를 이용함으로서 분산병렬 시뮬레이션의 동기 오버헤드 내지는 통신 오버헤드를 최소화함으로서 분산병렬 시뮬레이션의 수행속도를 높이는 시뮬레이션 방법. The dynamic information obtained in the previous simulation is the input / output information, input information, or output information present in one or more design objects in the model. The synchronization of distributed parallel simulation is performed by using the input / output information, input information, or output information. Simulation method for increasing the speed of distributed parallel simulation by minimizing overhead or communication overhead. 제 21 항 내지는 제 22 항 내지는 제 23 항 내지는 제 49 항에 있어서,The method of claim 21, wherein 22, 23, or 49, 상기 이전 시뮬레이션 수행과정에서 얻어진 동적정보가 해당 모델에 존재하는 1 이상의 설계객체들에 존재하는 입출력정보 내지는 입력정보 내지는 출력정보이며 이 입출력정보 내지는 입력정보 내지는 출력정보를 상기 1 이상의 로컬시뮬레이션에서의 예상입력과 예상출력 내지는 예상입력 내지는 예상출력으로 이용함으로서 분산병렬 시뮬레이션의 동기 오버헤드 내지는 통신 오버헤드를 최소화함으로서 분산병렬 시뮬레이션의 수행속도를 높이는 시뮬레이션 방법. The dynamic information obtained during the previous simulation is input / output information or input information or output information present in one or more design objects present in the model, and the input / output information or input information or output information is estimated in the one or more local simulations. A simulation method for speeding up the execution of distributed parallel simulation by minimizing the synchronization overhead or the communication overhead of distributed parallel simulation by using the input and the expected output or the expected input or the expected output. 제 21 항 내지는 제 22 항 내지는 제 23 항 내지는 제 49 항에 있어서,The method of claim 21, wherein 22, 23, or 49, 상기 이전 시뮬레이션 수행과정에서 얻어진 동적정보에서부터 구해지는 상기 분산병렬 시뮬레이션의 1 이상의 로컬시뮬레이션에서의 예상입력과 예상출력을 이용하거나 내지는 예상입력을 이용하거나 내지는 예상출력을 이용함으로서 분산병렬 시뮬레이션의 동기 오버헤드 내지는 통신 오버헤드를 최소화함으로서 분산병렬 시뮬레이션의 수행속도를 높이는 시뮬레이션 방법. Synchronous overhead of distributed parallel simulation by using predicted input and predicted output, or using predicted input, or using predicted output in one or more local simulations of the distributed parallel simulation obtained from the dynamic information obtained in the previous simulation execution process. Simulation method for increasing the speed of distributed parallel simulation by minimizing the communication overhead. 제 21 항 내지는 제 22 항 내지는 제 23 항 내지는 제 24 항 내지는 제 25 항 내지Claims 21 to 22 to 23 to 24 to 25 to 25 는 제 48 항 내지는 제 49 항 내지는 제 52 항에 있어서,53. The method of claim 48, wherein 49 is 상기 이전 시뮬레이션 수행이 상기 설계 검증을 위하여 특정 추상화 수준의 모델을 대상으로 하는 시뮬레이션의 대상이 되는 모델의 특정 추상화 수준보다 추상화 수준이 높은 모델을 이용한 시뮬레이션인 검증 방법.And wherein the previous simulation is a simulation using a model having a higher abstraction level than a specific abstraction level of a model that is a target of a simulation targeting a model having a specific abstraction level for the design verification. 추상화 상위 수준에서 존재하는 모델 내지는 이 모델 내의 1 이상의 설계객체들을 대상으로 하는 1회 이상의 시뮬레이션에서 얻어지는 상기 모델 내지는 이 모델 내의 1 이상의 설계객체들의 s-DCP 내지는 t-DCP를 활용하여서 상기 추상화 상위 수준보다 추상화 수준이 낮은 하위 수준에서 존재하는 모델 내지는 이 모델 내의 1 이상의 설계객체들에 대한 1회 이상의 시뮬레이션을 병렬적으로 내지는 순차적으로 내지는 병렬적과 순차적을 혼합하여서 수행하는 시뮬레이션을 진행함으로서, 추상화 상위 수준에서부터 추상화 하위 수준으로 점진적 구체화 방식으로 진행되는 추상화 단계별 검증 과정에서 추상화 하위 수준에서 이루어지는 시뮬레이션을 빠르게 하는 과정을 포함하는 검증 방법.The higher level of abstraction by utilizing the s-DCP or t-DCP of the model or one or more design objects in the model, which is obtained from a model existing at a higher level of abstraction or one or more design objects in the model. Simultaneously perform one or more simulations of a model that exists at a lower level of abstraction or one or more design objects in this model in parallel, sequentially, or a mixture of parallel and sequential, Validation method that includes the process of speeding up simulations at the abstraction low level in the abstraction step-by-step verification process that proceeds gradually from the abstraction level to the abstraction level. 추상화 상위 수준에서 존재하는 모델 내지는 이 모델 내의 1 이상의 설계객체들을 대상으로 하는 1회 이상의 시뮬레이션에서 얻어지는 상기 모델 내지는 이 모델 내의 1 이상의 설계객체들의 s-DCP 내지는 t-DCP를 활용하여서 상기 추상화 상위 수준보다 추상화 수준이 낮은 하위 수준으로 존재하는 모델 내지는 이 모델 내의 1 이상의 설계객체들에 대한 1회 이상의 시뮬레이션을 병렬적으로 내지는 순차적으로 내지는 병렬적과 순차적을 혼합하여서 수행하는 시뮬레이션을 통하여 얻어지는 시뮬레이션 결과를 활용함으로서, 추상화 상위 수준에서부터 추상화 하위 수준으로 점진적 구체화 방식으로 진행되는 추상화 단계별 검증 과정에서 추상화 상위 수준에서 존재하는 상위 모델과 이 상위 모델이 구체화 과정을 통하여 변환되어져서 추상화 하위 수준에서 존재하게 되는 하위 모델과의 일관성 내지는 등가성을 조사하는 과정을 포함하는 검증 방법. The higher level of abstraction by utilizing the s-DCP or t-DCP of the model or one or more design objects in the model, which is obtained from a model existing at a higher level of abstraction or one or more design objects in the model. Leverage simulation results obtained from simulations that run at lower levels of abstraction or one or more simulations of one or more design objects in this model in parallel, sequentially, or a mixture of parallel and sequential Therefore, in the process of verifying the abstraction step by step from the upper level of abstraction to the lower level of abstraction, the upper model and the upper model existing at the upper level of abstraction are transformed through the specification process, and thus the lower level of abstraction. Present to verification methods, including the process of investigating the consistency naejineun equality and sub-models that stand. 제 27 항 내지는 제 28 항 에 있어서, The method according to claim 27 or 28, 추상화 하위 수준으로 존재하는 모델 내지는 이 모델 내의 1 이상의 설계객체들에 대한 1회 이상의 병렬적 시뮬레이션이 분산처리적병렬수행 내지는 시간분할적병렬수행을 포함하는 시뮬레이션 방법.A simulation method in which at least one parallel simulation of a model or at least one design object within the model comprises distributed parallelism or time divisional parallelism. 추상화 상위수준의 모델을 이용한 추상화 상위수준의 시뮬레이션 결과를 활용하여 추상화 하위수준의 모델을 이용하는 추상화 하위수준의 시뮬레이션의 전체 내지는 일부분을 분산처리적병렬수행 내지는 시간분할적병렬수행 방식으로 진행함으로서 추상화 하위수준의 시뮬레이션 결과를 얻고, 상기 추상화 상위수준의 시뮬레이션 결과와 상기 추상화 하위수준의 시뮬레이션 결과를 비교하여 추상화 상위수준 모델과 추상화 하위수준 모델 간에 모델 일관성이 있음을 판단하거나 내지는 추상화 상위수준 모델과 추상화 하위수준 모델 사이에 존재하는 모델 불일관성의 원인을 파 악하고 이 모델 불일관성의 원인을 제거함으로서 상기 시뮬레이션에서 사용된 입력 조건하에서 상기 추상화 상위수준 모델과 추상화 하위수준 모델 간에 모델 일관성을 유지하도록 하는 검증 방법.Abstraction using high level model Abstraction using high level simulation result All or part of the lower level simulation is performed by distributed parallelism or time divisional parallelism. Obtain a simulation result of the level and compare the simulation result of the abstraction higher level and the simulation result of the abstraction lower level to determine that there is model consistency between the abstraction high-level model and the abstraction lower-level model, or Identifying the cause of model inconsistencies that exist between level models and removing the cause of this model inconsistency ensures model consistency between the high-level abstraction model and the low-level abstraction model under the input conditions used in the simulation. How to verify if. 설계 검증을 위하여 특정 게이트수준 모델을 대상으로 하는 게이트수준 타이밍 시뮬레이션에 있어서,In gate-level timing simulation targeting a specific gate-level model for design verification, 상기 게이트수준 타이밍 시뮬레이션을 위하여 앞단 시뮬레이션 단계와 후단 시뮬레이션 단계를 수행하며, 상기 앞단 시뮬레이션을 상기 특정 게이트수준 모델보다 추상화수준이 높은 상이한추상수준 동일모델로 수행하면서 상기 후단 시뮬레이션을 분산병렬 게이트수준 타이밍 시뮬레이션으로 수행하는데 필요한 동적정보를 상기 앞단 시뮬레이션 과정에서 자동적으로 수집하는 단계와, 상기 수집된 동적정보로부터 분산병렬 시뮬레이션의 각 로컬시뮬레이션의 예상입력과 예상출력을 구하는 단계와, 이 예상입력과 예상출력을 로컬시뮬레이션에 이용함으로서 상기 특정 게이트수준 모델 전체를 대상으로 하는 상기 후단 시뮬레이션을 통신 오버헤드 내지는 동기 오버헤드를 최소화한 분산병렬 게이트수준 타이밍 시뮬레이션으로 수행하는 단계를 포함하는 검증 방법. For the gate level timing simulation, a front end simulation step and a rear end simulation step are performed, and the rear end simulation is performed in a parallel parallel gate level timing simulation while the front end simulation is performed with different abstract level identical models having a higher abstraction level than the specific gate level model. Automatically gathering dynamic information necessary to perform the above-described simulation process, and obtaining predicted input and predicted output of each local simulation of distributed parallel simulation from the collected dynamic information, and calculating the predicted input and predicted output. Performing the post-end simulation of the entire specific gate-level model as a distributed parallel gate-level timing simulation to minimize communication overhead or synchronization overhead by using it for local simulation. Including verification method. 설계 검증을 위하여 특정 RTL 모델을 대상으로 하는 RTL 시뮬레이션에 있어서,In RTL simulation targeting a specific RTL model for design verification, 상기 RTL 시뮬레이션을 위하여 앞단 시뮬레이션 단계와 후단 시뮬레이션 단계를 수행하며, 상기 앞단 시뮬레이션을 상기 특정 RTL 모델보다 추상화수준이 높은 상이 한추상수준 동일모델로 수행하면서 상기 후단 시뮬레이션을 분산병렬 RTL 시뮬레이션으로 수행하는데 필요한 동적정보를 상기 앞단 시뮬레이션 과정에서 자동적으로 수집하는 단계와, 상기 앞단 시뮬레이션에서 수집된 동적정보를 s-DCP 정확도증강 과정을 통하여 정확도가 향상된 동적정보로 변환하는 단계로서 상기 특정 RTL 모델에 존재하는 2 이상의 설계객체들을 대상으로 상기 앞단 시뮬레이션에서 수집된 동적정보를 입력정보로 이용하여서 수행하는 2 이상의 RTL 시뮬레이션들 각각을 독립적으로 진행함으로서 정확도가 향상된 동적정보를 얻는 단계와, 상기 수집된 동적정보로부터 분산병렬 시뮬레이션의 각 로컬시뮬레이션의 예상입력과 예상출력을 구하는 단계와, 이 예상입력과 예상출력을 로컬시뮬레이션에 이용함으로서 상기 특정 RTL 모델 전체를 대상으로 하는 상기 후단 시뮬레이션을 통신 오버헤드 내지는 동기 오버헤드를 최소화한 분산병렬 RTL 시뮬레이션으로 수행하는 단계를 포함하는 검증 방법. For the RTL simulation, a front end simulation step and a rear end simulation step are performed, and the front end simulation is required to perform the rear end simulation as a distributed parallel RTL simulation while performing the front end simulation as the same abstract level having a higher level of abstraction than the specific RTL model. Automatically collecting dynamic information in the preceding simulation process and converting the dynamic information collected in the preceding simulation into dynamic information with improved accuracy through s-DCP accuracy enhancement process. Obtaining dynamic information with improved accuracy by independently performing each of two or more RTL simulations performed by using the dynamic information collected in the preceding simulation as input information for the above-described design objects, and from the collected dynamic information. Obtaining the predicted input and the predicted output of each local simulation of the co-parallel simulation; and using the predicted input and the predicted output for local simulation, the rear end simulation of the entire RTL model is performed for communication overhead or synchronous overhead. The verification method comprising the step of performing a distributed parallel RTL simulation to minimize. 설계 검증을 위하여 특정 RTL 모델을 대상으로 하는 RTL 시뮬레이션에 있어서,In RTL simulation targeting a specific RTL model for design verification, 상기 RTL 시뮬레이션을 위하여 앞단 시뮬레이션 단계와 후단 시뮬레이션 단계를 수행하며, 상기 앞단 시뮬레이션을 상기 특정 RTL 모델보다 추상화수준이 높은 상이한추상수준 동일모델로 수행하면서 상기 후단 시뮬레이션을 분산병렬 RTL 시뮬레이션으로 수행하는데 필요한 동적정보를 상기 앞단 시뮬레이션 과정에서 자동적으로 수집하는 단계와, 상기 수집된 동적정보로부터 분산병렬 시뮬레이션의 각 로컬시뮬레이션의 예상입력과 예상출력을 구하는 단계와, 이 예상입력과 예상출력을 로컬시 뮬레이션에 이용함으로서 상기 특정 RTL 모델 전체를 대상으로 하는 상기 후단 시뮬레이션을 통신 오버헤드 내지는 동기 오버헤드를 최소화한 분산병렬 RTL 시뮬레이션으로 수행하는 단계를 포함하는 검증 방법. The front end simulation step and the rear end simulation step are performed for the RTL simulation, and the dynamics necessary to perform the rear end simulation as the distributed parallel RTL simulation are performed while performing the front end simulation with the same abstract level having higher abstraction level than the specific RTL model. Automatically collecting information in the preceding simulation process, obtaining predicted input and predicted output of each local simulation of distributed parallel simulation from the collected dynamic information, and using the predicted input and predicted output for local simulation. And performing the post-simulation of the entire RTL model as a distributed parallel RTL simulation with a minimum of communication overhead or synchronization overhead. 설계 검증을 위하여 특정 트란젝션 모델을 대상으로 하는 특정 트란젝션수준 시뮬레이션에 있어서,In a specific transaction level simulation targeting a specific transaction model for design verification, 상기 특정 트란젝션수준 시뮬레이션을 위하여 앞단 시뮬레이션 단계와 후단 시뮬레이션 단계를 수행하며, 상기 앞단 시뮬레이션을 상기 특정 트란젝션 모델보다 추상화수준이 높은 상이한추상수준 동일모델로 수행하면서 상기 후단 시뮬레이션을 분산병렬 트란젝션수준 시뮬레이션으로 수행하는데 필요한 동적정보를 상기 앞단 시뮬레이션 과정에서 자동적으로 수집하는 단계와, 상기 앞단 시뮬레이션에서 수집된 동적정보를 s-DCP 정확도증강 과정을 통하여 정확도가 향상된 동적정보로 변환하는 단계로서 상기 특정 트란젝션 모델에 존재하는 2 이상의 설계객체들을 대상으로 상기 앞단 시뮬레이션에서 수집된 동적정보를 입력정보로 이용하여서 수행하는 2 이상의 트란젝션수준 시뮬레이션들 각각을 독립적으로 진행함으로서 정확도가 향상된 동적정보를 얻는 단계와, 상기 정확도가 향상된 동적정보에서부터 구해지는 분산병렬 시뮬레이션의 각 로컬시뮬레이션의 예상입력과 예상출력을 이용하여 상기 특정 트란젝션 모델 전체를 대상으로 하는 상기 후단 시뮬레이션을 통신 오버헤드 내지는 동기 오버헤드를 최소화한 분산병렬 트란젝션수준 시뮬레이션으로 수행하는 단계를 포함하는 검증 방법. The front end simulation step and the rear end simulation step are performed for the specific transaction level simulation, and the rear end simulation is performed in a distributed parallel transaction level while the front end simulation is performed with the same abstract model having different abstraction level higher than that of the specific transaction model. Automatically collecting the dynamic information required to perform the simulation in the preceding simulation process, and converting the dynamic information collected in the preceding simulation into dynamic information with improved accuracy through the s-DCP accuracy enhancement process The accuracy is improved by independently conducting each of two or more transaction level simulations using the dynamic information collected in the previous simulation as input information for two or more design objects in the projection model. Obtaining information, and using the predicted input and the predicted output of each local simulation of the distributed parallel simulation, which are obtained from the dynamic information with improved accuracy, to perform the communication overhead or synchronization of the rear end simulation of the entire transaction model. Validation method comprising the step of performing parallel parallel transaction level simulation with minimal overhead. 설계 검증을 위하여 특정 트란젝션 모델을 대상으로 하는 특정 트란젝션수준 시뮬레이션에 있어서,In a specific transaction level simulation targeting a specific transaction model for design verification, 상기 특정 트란젝션수준 시뮬레이션을 위하여 앞단 시뮬레이션 단계와 후단 시뮬레이션 단계를 수행하며, 상기 앞단 시뮬레이션을 상기 특정 트란젝션 모델보다 추상화수준이 높은 상이한추상수준 동일모델로 수행하면서 상기 후단 시뮬레이션을 분산병렬 트란젝션수준 시뮬레이션으로 수행하는데 필요한 동적정보를 상기 앞단 시뮬레이션 과정에서 자동적으로 수집하는 단계와, 상기 수집된 동적정보로부터 분산병렬 시뮬레이션의 각 로컬시뮬레이션의 예상입력과 예상출력을 구하는 단계와, 이 예상입력과 예상출력을 로컬시뮬레이션에 이용함으로서 상기 특정 트란젝션 모델 전체를 대상으로 하는 상기 후단 시뮬레이션을 통신 오버헤드 내지는 동기 오버헤드를 최소화한 분산병렬 트란젝션수준 시뮬레이션으로 수행하는 단계를 포함하는 검증 방법. The front end simulation step and the rear end simulation step are performed for the specific transaction level simulation, and the rear end simulation is performed in a distributed parallel transaction level while the front end simulation is performed with the same abstract model having different abstraction level higher than that of the specific transaction model. Automatically collecting the dynamic information necessary to perform the simulation in the preceding simulation process, and obtaining the predicted input and the predicted output of each local simulation of the distributed parallel simulation from the collected dynamic information, and the predicted input and the predicted output. Using the local simulation to perform the post-end simulation of the entire transaction model as a distributed parallel transaction level simulation which minimizes communication overhead or synchronization overhead. Way. 제 3 항 내지는 제 4 항에 있어서,The method according to claim 3 or 4, 상기 후단 시뮬레이션이 분산처리적병렬수행/단일수행 혼용방식인 시뮬레이션 방법.And the post-stage simulation is a distributed processing parallel execution / single performance hybrid method. 제 3 항 내지는 제 4 항 내지는 제 13 항에 있어서,The method according to claim 3 or 4 or 13, 상기 후단 시뮬레이션이 분산처리적병렬수행/단일수행 혼용방식인 시뮬레이션 방법 이며 상기 분산처리적병렬수행/단일수행 혼용방식의 후단 시뮬레이션에서의 분산처리적병렬수행이 상기 앞단 시뮬레이션에서 수집된 s-DCP를 이용하거나 내지는 정확도를 증강시킨 s-DCP를 이용하여서 분산처리적병렬수행으로 진행하면서 이 분산처리적병렬수행 과정에서 t-DCP를 수집하고, 이 수집된 t-DCP를 이용하거나 내지는 정확도를 증강시킨 t-DCP를 이용하여서 상기 분산처리적병렬수행/단일수행 혼용방식의 후단 시뮬레이션에서의 단일수행이 진행되는 시뮬레이션 방법.The post-simulation method is a simulation method in which distributed parallel processing / single performance is mixed. The distributed processing parallel processing in the distributed simulation is performed using the s-DCP collected in the preceding simulation. S-DCP is used to improve the accuracy of the distributed processing, while t-DCP is collected during the distributed parallel processing, and the collected t-DCP is used to improve the accuracy. A single method in a post-simulation of the distributed parallel processing / single performance hybrid method using t-DCP. 설계 검증을 위하여 특정 추상화 수준의 모델을 대상으로 하는 시뮬레이션에 있어서 상기 시뮬레이션의 전체 시간구간에서의 특정 시뮬레이션 구간을 분산병렬 시뮬레이션으로 수행하며 상기 분산병렬 시뮬레이션에서의 1 이상의 로컬시뮬레이션이 시뮬레이션 수행의 예상입력과 예상출력을 이용하는 시뮬레이션에 있어서,In the simulation targeting a model of a certain level of abstraction for design verification, a distributed parallel simulation is performed on a specific simulation section in the entire time interval of the simulation, and at least one local simulation in the distributed parallel simulation is an expected input of performing the simulation. In simulations using 상기 분산병렬 시뮬레이션 수행이 상기 1 이상의 로컬시뮬레이션 수행을 다른 로컬시뮬레이션들과의 통신과 동기화를 생략하고 상기 예상입력으로 독립적으로 진행할 수 있는지를 판단하는 단계와, 상기 1 이상의 로컬시뮬레이션 수행에 의하여 얻어지는 실제출력과 상기 예상출력이 일치하는지를 판단하는 단계와, 분산병렬 시뮬레이션의 수행에서 단일 시뮬레이션으로의 전환을 판단하는 단계를 포함하는 시뮬레이션 방법.Determining whether the distributed parallel simulation can be performed independently of the expected input by skipping the synchronization with the other local simulations and synchronizing with the other local simulations; and the actual obtained by performing the one or more local simulations. Determining whether an output matches the expected output, and determining a switch from performing a parallel parallel simulation to a single simulation. 설계 검증을 위하여 특정 추상화 수준의 모델을 대상으로 하는 시뮬레이션에 있어서 상기 시뮬레이션 전체 시간구간에서의 특정 시뮬레이션 구간 내지는 전체 시뮬 레이션 시간구간을 분산병렬 시뮬레이션으로 수행하며 상기 분산병렬 시뮬레이션에서의 1 이상의 로컬시뮬레이션이 시뮬레이션 수행의 예상입력과 예상출력을 이용하는 시뮬레이션에 있어서,In the simulation targeting a model with a certain level of abstraction for design verification, a distributed parallel simulation is performed on a specific simulation section or an entire simulation time interval in the entire simulation time interval, and at least one local simulation in the distributed parallel simulation is performed. In the simulation using the expected input and the expected output of the simulation, 상기 분산병렬 시뮬레이션 수행이 상기 1 이상의 로컬시뮬레이션 수행을 다른 로컬시뮬레이션들과의 통신과 동기화를 생략하고 상기 예상입력으로 독립적으로 진행할 수 있는지를 판단하는 단계와, 상기 1 이상의 로컬시뮬레이션 수행에 의하여 얻어지는 실제출력과 상기 예상출력이 일치하는지를 판단하는 단계를 포함하는 시뮬레이션 방법. Determining whether the distributed parallel simulation can be performed independently of the expected input by skipping the synchronization with the other local simulations and synchronizing with the other local simulations; and the actual obtained by performing the one or more local simulations. And determining whether an output matches the expected output. 제 19 항 내지는 제 20 항 내지는 제 38 항 내지는 제 39 항 내지는 제 42 항 내지는 제 43 항 내지는 제 47 항 내지는 제 48 항 내지는 제 54 항 내지는 제 55 항에 있어서,The method according to claim 19, 20, 38, 39, 42, 42, 43, 43, 47, 48, 54, or 55, 현재 수행하고자 하는 시뮬레이션에 시간적으로 앞서서 이루어진 1회 이상의 별도의 시뮬레이션 과정에서 수집된 동적정보로부터 상기 예상입력 내지는 예상출력을 구하는 시뮬레이션 방법.A simulation method for obtaining the predicted input or predicted output from dynamic information collected in at least one separate simulation process made in advance of a simulation to be performed at present. 제 19 항 내지는 제 20 항 내지는 제 38 항 내지는 제 39 항 내지는 제 42 항 내지는 제 43 항 내지는 제 47 항 내지는 제 48 항 내지는 제 54 항 내지는 제 55 항에 있어서,The method according to claim 19, 20, 38, 39, 42, 42, 43, 43, 47, 48, 54, or 55, 현재 수행하고자 하는 시뮬레이션에 시간적으로 앞서서 이루어진 1회 이상의 별도 의 시뮬레이션 과정에서 수집된 시뮬레이션 대상이 되는 모델 내의 1 이상의 설계객체들의 입력정보와 출력정보로부터 상기 예상입력 내지는 예상출력을 구하는 시뮬레이션 방법Simulation method for obtaining the predicted input or predicted output from input information and output information of one or more design objects in the model to be collected in one or more separate simulation processes performed in advance of the current simulation 설계 검증을 위하여 특정 추상화 수준의 모델을 대상으로 하는 시뮬레이션에 있어서 상기 시뮬레이션의 전체 시간구간에서의 특정 시뮬레이션 구간을 대상으로 진행되는 분산병렬 시뮬레이션에서의 1 이상의 로컬시뮬레이션에서 시뮬레이션 수행의 예상입력과 예상출력을 이용하는 시뮬레이션에 있어서,Expected input and predicted output of simulation execution in one or more local simulations in distributed parallel simulations for a specific simulation interval over the entire time interval of the simulation in a simulation targeting a model with a certain level of abstraction for design verification. In the simulation using 상기 분산병렬 시뮬레이션 수행이 상기 1 이상의 로컬시뮬레이션 수행을 다른 로컬시뮬레이션들과의 통신과 동기화를 생략하고 상기 예상입력으로 독립적으로 진행할 수 있는지를 판단하는 단계와, 상기 1 이상의 로컬시뮬레이션 수행에 의하여 얻어지는 실제출력과 상기 예상출력이 일치하는지를 판단하는 단계와, 분산병렬 시뮬레이션의 수행에서 단일 시뮬레이션으로의 전환을 판단하는 단계를 포함하는 시뮬레이션 방법.Determining whether the distributed parallel simulation can be performed independently of the expected input by skipping the synchronization with the other local simulations and synchronizing with the other local simulations; and the actual obtained by performing the one or more local simulations. Determining whether an output matches the expected output, and determining a switch from performing a parallel parallel simulation to a single simulation. 설계 검증을 위하여 특정 추상화 수준의 모델을 대상으로 하는 시뮬레이션에 있어서 상기 시뮬레이션 전체 시간구간에서의 특정 시뮬레이션 구간 내지는 전체 시뮬레이션 시간구간을 대상으로 진행되는 분산병렬 시뮬레이션에서의 1 이상의 로컬시뮬레이션에서 시뮬레이션 수행의 예상입력과 예상출력을 이용하는 시뮬레이션에 있어서,Prediction of simulation performance in one or more local simulations in distributed parallel simulations for a specific simulation interval or the entire simulation time interval in the simulation for the model of a specific abstraction level for design verification. In simulations using inputs and expected outputs, 상기 분산병렬 시뮬레이션 수행이 상기 1 이상의 로컬시뮬레이션 수행을 다른 로컬시뮬레이션들과의 통신과 동기화를 생략하고 상기 예상입력으로 독립적으로 진행할 수 있는지를 판단하는 단계와, 상기 1 이상의 로컬시뮬레이션 수행에 의하여 얻어지는 실제출력과 상기 예상출력이 일치하는지를 판단하는 단계를 포함하는 시뮬레이션 방법.Determining whether the distributed parallel simulation can be performed independently of the expected input by skipping the synchronization with the other local simulations and synchronizing with the other local simulations; and the actual obtained by performing the one or more local simulations. And determining whether an output matches the expected output. 제 20 항 내지는 제 21 항 내지는 제 48 항 내지는 제 49 항 내지는 제 52 항에 있어서, 53. The method of claim 20, 21, 48, 49, or 52, 상기 1 이상의 이전 시뮬레이션 수행과정이 병렬 시뮬레이션이거나 병렬 시뮬레이션을 포함하는 시뮬레이션 방법. Wherein said at least one previous simulation run is parallel simulation or comprises parallel simulation. 제 3 항 내지는 제 4 항에 있어서, The method according to claim 3 or 4, 상기 동적정보가 모델 내에 존재하는 1 이상의 설계객체의 입력정보를 포함하는 시뮬레이션 방법.And the dynamic information includes input information of one or more design objects existing in the model. 제 3 항 내지는 제 4 항에 있어서,The method according to claim 3 or 4, 상기 동적정보가 모델 내에 존재하는 1 이상의 설계객체의 출력정보를 포함하는 시뮬레이션 방법.And the dynamic information includes output information of one or more design objects existing in the model. 설계 검증을 위하여 특정 추상화 수준의 모델을 대상으로 하는 분산병렬 시뮬레이 션에 있어서 상기 분산병렬 시뮬레이션의 1 이상의 로컬시뮬레이션이 시뮬레이션 수행의 예상입력과 예상출력을 이용하는 분산병렬 시뮬레이션에 있어서,In a distributed parallel simulation targeting a model of a certain level of abstraction for design verification, in a distributed parallel simulation using one or more local simulations of the distributed parallel simulation using the expected input and the expected output of the simulation, 상기 분산병렬 시뮬레이션 수행이 상기 1 이상의 로컬시뮬레이션 수행을 다른 로컬시뮬레이션들과의 통신과 동기화를 생략하고 상기 예상입력으로 독립적으로 진행할 수 있는지를 판단하는 단계와, 상기 1 이상의 로컬시뮬레이션 수행에 의하여 얻어지는 실제출력과 상기 예상출력이 일치하는지를 판단하는 단계와, 예상입출력이용-런 방식의 수행에서 실제입출력이용-런 방식으로의 전환을 판단하는 단계와, 실제입출력이용-런 방식의 수행에서 예상입출력이용-런 방식으로의 전환을 판단하는 단계를 포함하는 분산병렬 시뮬레이션 방법.Determining whether the distributed parallel simulation can be performed independently of the expected input by skipping the synchronization with the other local simulations and synchronizing with the other local simulations; and the actual obtained by performing the one or more local simulations. Determining whether the output matches the expected output, determining the switching from the expected I / O using to the actual I / O using, and using the expected I / O in performing the actual I / O using. A distributed parallel simulation method comprising determining a switch to a run method. 설계 검증을 위하여 특정 추상화 수준의 모델을 대상으로 하는 분산병렬 시뮬레이션에 있어서 상기 분산병렬 시뮬레이션에서의 1 이상의 로컬시뮬레이션이 분산병렬 시뮬레이션 수행에 앞서서 상기 특정 추상화 수준의 모델 내지는 상이한추상수준 동일모델을 대상으로 하여서 수행된 1 이상의 이전 시뮬레이션 수행과정에서 얻어진 동적정보에서부터 구해지는 상기 1 이상의 로컬시뮬레이션 수행의 예상입력과 예상출력을 이용하는 분산병렬 시뮬레이션에 있어서,In a distributed parallel simulation targeting a model of a specific abstraction level for design verification, at least one local simulation in the distributed parallel simulation may be performed on a model of the specific abstraction level or a different abstract level identical model before performing a distributed parallel simulation. In a distributed parallel simulation using the predicted input and the predicted output of the at least one local simulation, which are obtained from the dynamic information obtained in the at least one previous simulation performed, 상기 분산병렬 시뮬레이션 수행이 상기 1 이상의 로컬시뮬레이션 수행을 다른 로컬시뮬레이션들과의 통신과 동기화를 생략하고 상기 예상입력으로 독립적으로 진행할 수 있는지를 판단하는 단계와, 상기 1 이상의 로컬시뮬레이션 수행에 의하여 얻어지는 실제출력과 상기 예상출력이 일치하는지를 판단하는 단계와, 예상입출력이용- 런 방식의 수행에서 실제입출력이용-런 방식으로의 전환을 판단하는 단계와, 실제입출력이용-런 방식의 수행에서 예상입출력이용-런 방식으로의 전환을 판단하는 단계를 포함하는 분산병렬 시뮬레이션 방법.Determining whether the distributed parallel simulation can be performed independently of the expected input by skipping the synchronization with the other local simulations and synchronizing with the other local simulations; and the actual obtained by performing the one or more local simulations. Determining whether the output matches the expected output, determining the transition from the expected I / O using to the actual I / O using the run, and using the expected I / O in performing the actual I / O using A distributed parallel simulation method comprising determining a switch to a run method. 설계 검증을 위하여 특정 추상화 수준의 모델을 대상으로 하는 시뮬레이션에 있어서,In the simulation of a model with a certain level of abstraction for design verification, 상기 시뮬레이션이 분산병렬 시뮬레이션 과정을 포함하여 1 이상의 특정 시뮬레이션 시간구간을 상기 분산병렬 시뮬레이션으로 수행하고, 상기 분산병렬 시뮬레이션 과정에서 1 이상의 로컬시뮬레이션이 상기 시뮬레이션 수행에 앞서서 상기 특정 추상화 수준의 모델 내지는 상이한추상수준 동일모델을 대상으로 하여서 수행된 1 이상의 이전 시뮬레이션 수행과정에서 얻어진 동적정보를 이용함으로서 상기 분산병렬 시뮬레이션의 수행속도를 높이는 시뮬레이션 방법 .The simulation performs the distributed parallel simulation with one or more specific simulation time intervals, including a distributed parallel simulation process, wherein, in the distributed parallel simulation, one or more local simulations are performed using a model or a different abstraction level before the simulation. Simulation method to speed up the distributed parallel simulation by using dynamic information obtained from one or more previous simulations performed on the same level model. 분산처리적병렬수행 방식의 시뮬레이션 내지는 시간분할적병렬수행 방식의 시뮬레이션에서 이용되는 동적정보의 정확도증강 과정에 시간맞춤이 포함된 시뮬레이션 방법.A simulation method including time alignment in the process of increasing accuracy of dynamic information used in a distributed processing parallel execution simulation or a time division parallel execution simulation. 제 20 항 내지는 제 21 항 내지는 제 48 항 내지는 제 49 항에 있어서,50. The method of claim 20, 21, 48, or 49, 상기 이전 시뮬레이션 수행과정과 상기 현 시뮬레이션 수행과정 중간에 설계검증 대상이 되는 특정 추상화 수준의 모델에 존재하는 1 이상의 설계객체가 수정되어진 시뮬레이션 방법 내지는 검증 방법. A simulation method or a verification method in which one or more design objects existing in a model of a specific abstraction level that are subject to design verification are modified between the previous simulation process and the current simulation process. 설계 검증을 위하여 특정 추상화 수준의 모델을 대상으로 하는 시뮬레이션에 있어서,In the simulation of a model with a certain level of abstraction for design verification, 상기 시뮬레이션의 전체 시뮬레이션 시간구간 내지는 1 이상의 특정 시뮬레이션 시간구간을 분산병렬 시뮬레이션 방식으로 수행하고, 상기 분산병렬 시뮬레이션 과정에서의 1 이상의 로컬시뮬레이션이 상기 시뮬레이션 수행에 앞서서 상기 특정 추상화 수준의 모델 내지는 상이한추상수준 동일모델을 대상으로 하여서 수행된 1 이상의 이전 시뮬레이션 수행과정에서 얻어진 동적정보에서 구해지는 상기 분산병렬 시뮬레이션 과정에서의 1 이상의 로컬시뮬레이션의 예상입력과 예상출력을 이용하거나 내지는 예상입력을 이용하거나 내지는 예상출력을 이용하는 과정을 포함함으로서 상기 분산병렬 시뮬레이션에서의 동기 오버헤드 내지는 통신 오버헤드를 최소화시키는 시뮬레이션 방법.The entire simulation time interval or one or more specific simulation time intervals of the simulation are performed in a distributed parallel simulation method, wherein one or more local simulations in the distributed parallel simulation process are performed at a model of a specific abstraction level or a different abstract level before performing the simulation. Expected or predicted output using, or using, predicted input or predicted output of one or more local simulations in the distributed parallel simulation process obtained from dynamic information obtained from one or more previous simulations performed on the same model. And minimizing synchronization overhead or communication overhead in the distributed parallel simulation. 제 4 항 내지는 제 18 항 내지는 제 32 항 내지는 제 34 항에 있어서,35. The method of claim 4, 18, 32, or 34, 상기 정확도증강 과정에 트란젝션화를 통한 s-DCP 정확도증강 과정이 포함된 시뮬레이션 방법. Simulation method including the s-DCP accuracy enhancement process through the transaction to the accuracy enhancement process. 설계 검증을 위하여 특정 추상화 수준의 모델을 대상으로 하는 시뮬레이션에 있어서 상기 시뮬레이션 전체 시간구간 내지는 전체 시간구간에서의 특정 시뮬레이션 구간을 대상으로 진행되는 분산병렬 시뮬레이션에서의 1 이상의 로컬시뮬레이션에서 시뮬레이션 수행의 예상입력을 이용하는 시뮬레이션에 있어서,Expected input of the simulation performance in one or more local simulations in distributed parallel simulations for the simulation of the model at a specific abstraction level for design verification. In the simulation using 상기 분산병렬 시뮬레이션 수행이 상기 1 이상의 로컬시뮬레이션 수행을 다른 로컬시뮬레이션들과의 통신과 동기화를 생략하고 상기 예상입력으로 독립적으로 진행할 수 있는지를 판단하는 단계를 포함하는 시뮬레이션 방법.And determining whether performing the distributed parallel simulation can independently perform the at least one local simulation by skipping communication and synchronization with other local simulations and independently performing the expected input. 설계 검증을 위하여 특정 추상화 수준의 모델을 대상으로 하는 시뮬레이션에 있어서 상기 시뮬레이션이 2 이상의 시뮬레이션 프로세스 내지는 2 이상의 시뮬레이션 쓰레드로 구성되어서 상기 시뮬레이션 프로세스 내지는 시뮬레이션 쓰레드 수행시에 시뮬레이션 수행의 예상입력을 이용하는 시뮬레이션에 있어서,In a simulation targeting a model with a certain level of abstraction for design verification, the simulation is composed of two or more simulation processes or two or more simulation threads, and in the simulation using the predicted input of the simulation performance when the simulation process or the simulation thread is executed. , 특정 시뮬레이션 프로세스 수행 내지는 시뮬레이션 쓰레드 수행이 다른 시뮬레이션 프로세스 내지는 시뮬레이션 쓰레드와의 프로세스간통신과 프로세스간동기화를 생략하고 상기 예상입력으로 독립적으로 진행할 수 있는지를 판단하는 단계를 포함하는 시뮬레이션 방법.And determining whether performing a specific simulation process or performing a simulation thread can proceed independently of the predicted input by omitting interprocess communication and interprocess synchronization with another simulation process or a simulation thread. 제 19 항 내지는 제 20 항 내지는 제 38 항 내지는 제 39 항 내지는 제 42 항 내지Claims 19 to 20 to 38 to 39 to 42 to 42 to 는 제 43 항 내지는 제 47 항 내지는 제 48 항 내지는 제 54 항 내지는 제 55 항에 The method of claim 43 to 47 to 48 to 54 to 55 있어서,In 상기 예상입력 내지는 예상출력을 구하기 위하여 현재 수행하고자 하는 시뮬레이션에 시간적으로 앞서서 이루어진 1회 이상의 별도의 시뮬레이션 과정에서 수집된 동 적정보를 이용하는 시뮬레이션 방법.Simulation method using the dynamic information collected in one or more separate simulation process made in advance of the current simulation to be performed in order to obtain the expected input or expected output. 제 19 항 내지는 제 20 항 내지는 제 38 항 내지는 제 39 항 내지는 제 42 항 내지는 제 43 항 내지는 제 47 항 내지는 제 48 항 내지는 제 54 항 내지는 제 55 항에 있어서,The method according to claim 19, 20, 38, 39, 42, 42, 43, 43, 47, 48, 54, or 55, 상기 예상입력 내지는 예상출력을 구하기 위하여 현재 수행하고자 하는 시뮬레이션에 시간적으로 앞서서 이루어진 1회 이상의 별도의 시뮬레이션 과정에서 수집된 시뮬레이션 대상이 되는 모델내의 1 이상의 설계객체들의 입력정보 내지는 출력정보 내지는 입출력정보를 이용하는 시뮬레이션 방법In order to obtain the predicted input or predicted output, the input information, the output information, or the input / output information of one or more design objects in the model to be the simulation target collected in one or more separate simulation processes performed in advance of the current simulation to be performed in time Simulation method 제 19 항 내지는 제 20 항 내지는 제 38 항 내지는 제 39 항 내지는 제 42 항 내지는 제 43 항 내지는 제 47 항 내지는 제 48 항 내지는 제 54 항 내지는 제 55 항에 있어서,The method according to claim 19, 20, 38, 39, 42, 42, 43, 43, 47, 48, 54, or 55, 현재 수행하고자 하는 시뮬레이션에 시간적으로 앞서서 이루어진 1회 이상의 별도의 시뮬레이션 과정에서 수집된 시뮬레이션 대상이 되는 모델 내의 1 이상의 설계객체들의 입력정보와 출력정보로부터 내지는 시뮬레이션 대상이 되는 모델의 상이한추상수준 동일모델 내의 1 이상의 설계객체들의 입력정보와 출력정보로부터 상기 예상입력과 예상출력 내지는 예상입력 내지는 예상출력을 구하는 시뮬레이션 방법From the input information and output information of one or more design objects in the model to be collected in one or more separate simulation processes performed in advance of the simulation to be performed in time, or from different abstract levels of the model to be simulated. Simulation method for obtaining the expected input and expected output, expected input or expected output from input information and output information of one or more design objects 제 19 항 내지는 제 20 항 내지는 제 38 항 내지는 제 39 항 내지는 제 42 항 내지 는 제 43 항 내지는 제 47 항 내지는 제 48 항 내지는 제 54 항 내지는 제 55 항에 있어서,The method according to claim 19, 20, 38, 39, 42, 42, 43, 43, 47, 48, 54, or 54, 상기 예상입력 내지는 예상출력을 구하기 위하여 현재 수행하고자 하는 시뮬레이션에 시간적으로 앞서서 이루어진 1회 이상의 별도의 시뮬레이션 과정에서 수집된 시뮬레이션 대상이 되는 모델 내의 1 이상의 설계객체들의 입력정보 내지는 출력정보 내지는 입출력정보를 내지는 시뮬레이션 대상이 되는 모델의 상이한추상수준 동일모델 내의 1 이상의 설계객체들의 입력정보 내지는 출력정보 내지는 입출력정보를 이용하는 시뮬레이션 방법.Input information, output information, or input / output information of one or more design objects in the model to be the simulation target collected in one or more separate simulation processes performed in time before the simulation to be performed to obtain the expected input or expected output. Different abstract level of a model to be simulated Simulation method using input information, output information or input / output information of one or more design objects in the same model. 제 19 항 내지는 제 20 항 내지는 제 21 항 내지는 제 38 항 내지는 제 39 항 내지는 제 42 항 내지는 제 43 항 내지는 제 47 항 내지는 제 48 항 내지는 제 49 항 내지는 제 52 항 내지는 제 54 항에 있어서The method according to claim 19, 20, 21, 38, 39, 42, 42, 43, 47, 47, 48, 49, 52, 52, or 54. 상기 1 이상의 로컬시뮬레이션 중의 1 이상의 특정 로컬시뮬레이션이 하드웨어기반검증플랫폼 상에서 수행되는 시뮬레이션 방법.One or more particular local simulations of the one or more local simulations are performed on a hardware-based verification platform. 설계 검증을 위한 시뮬레이션에 있어서,In simulation for design verification, 상기 시뮬레이션이 분산처리적병렬수행 방식의 시뮬레이션을 포함하는 시뮬레이션 방법.And the simulation comprises simulation of a distributed processing parallel execution method. 제 19 항 내지는 제 20 항 내지는 제 38 항 내지는 제 39 항 내지는 제 42 항 내지 는 제 43 항 내지는 제 47 항 내지는 제 48 항 내지는 제 54 항 내지는 제 55 항에 있어서The method of claim 19 to 20 to 38 to 39 to 42 to 43 to 43 to 47 to 48 to 54 to 55. 상기 판단하는 과정이 로컬시뮬레이션의 진행 도중에 이루어지는 시뮬레이션 방법.And said determining is performed during the progress of local simulation. 설계 검증을 위하여 특정 추상화 수준의 모델을 대상으로 하는 시뮬레이션 방법에 있어서,In the simulation method targeting a model of a specific abstraction level for design verification, 상기 시뮬레이션 방법이 분산처리적병렬수행 방식의 시뮬레이션 방법이거나, 내지는 시간분할적병렬수행 방식의 시뮬레이션 방법이거나, 내지는 분산처리적병렬수행 혹은 시간분할적병렬수행을 포함하는 시뮬레이션 방법.The simulation method is a simulation method of a distributed parallel processing method, or a simulation method of a time division parallel processing method, or a simulation method comprising a distributed processing parallel processing or a time division parallel processing. 설계 검증을 위하여 특정 추상화 수준의 모델을 대상으로 하는 시뮬레이션 방법에 있어서,In the simulation method targeting a model of a specific abstraction level for design verification, 상기 시뮬레이션 방법이 인크리멘탈 시뮬레이션을 활용한 분산처리적병렬시뮬레이션이거나, 내지는 인크리멘탈 시뮬레이션을 활용한 분산처리적병렬수행 방식을 포함하는 시뮬레이션 방법.The simulation method is a distributed parallel processing using the incremental simulation, or a simulation method including a distributed parallel processing using the incremental simulation. 분산처리적병렬시뮬레이션이 동적배움을 이용한 s-DCP 정확도증강 과정 내지는 트란젝션화를 통한 s-DCP 정확도증강 과정을 포함하는 시뮬레이션 방법.A method for distributed parallelism simulation comprising s-DCP accuracy enhancement process using dynamic learning or s-DCP accuracy enhancement process through transactionalization. 시간적으로 앞서서 수행된 시뮬레이션에서 수집된 동적정보를 이용하는 분산처리적 병렬시뮬레이션 내지는 분산처리적병렬시뮬레이션의 1 이상의 로컬시뮬레이션에서 해당 로컬시뮬레이션 대상이 되는 로컬설계객체보다 추상화 수준이 높은 설계객체를 원 s-DCP로 이용하는 분산처리적병렬시뮬레이션이 동적배움을 이용한 s-DCP 정확도증강 과정 내지는 트란젝션화를 통한 s-DCP 정확도증강 과정을 포함하는 시뮬레이션 방법.In one or more local simulations of distributed parallel simulations or distributed parallel simulations using dynamic information collected in a simulation performed earlier in time, a design object with a higher level of abstraction than the local design object targeted for the local simulation is desired. A distributed parallel processing simulation using DCP includes an s-DCP accuracy enhancement process using dynamic learning or an s-DCP accuracy enhancement process through transactionalization. 분산처리적병렬시뮬레이션에서의 1 이상의 로컬시뮬레이션에서 사용되어지는 s-DCP가 해당 로컬시뮬레이션에서 수행되는 로컬설계객체보다 추상화수준이 높은 시뮬레이션 모델 내지는 로컬설계객체와 동일한 추상화수준에서 시뮬레이션이 빠르게 수행되도록 최적화되어진 시뮬레이션 모델인 시뮬레이션 방법The s-DCP, which is used in one or more local simulations in distributed parallel simulation, has a higher abstraction level than the local design object performed in the local simulation. Simulation method as a simulated model 분산처리적병렬시뮬레이션에서의 1 이상의 로컬시뮬레이션에서 사용되어지는 예상입력 내지는 예상출력 내지는 예상입력과 예상출력을 해당 로컬시뮬레이션에서 로컬설계객체와 함께 시뮬레이션되는 로컬설계객체보다 추상화수준이 높은 시뮬레이션 모델 내지는 로컬설계객체와 동일한 추상화수준에서 시뮬레이션이 빠르게 수행되도록 최적화되어진 시뮬레이션 모델에서부터 구하는 시뮬레이션 방법Expected input, predicted output, or predicted input and predicted output used in one or more local simulations in distributed parallel simulation have higher abstraction level than the local design object simulated with the local design object in the local simulation. Simulation method to obtain from simulation model that is optimized to perform simulation at the same level of abstraction as design object 제 19 항 내지는 제 20 항 내지는 제 38 항 내지는 제 39 항 내지는 제 42 항 내지는 제 43 항 내지는 제 47 항 내지는 제 48 항 내지는 제 54 항에 있어서,The method according to claim 19, 20, 38, 39, 42, 42, 43, 43, 47, 48, or 54, 상기 로컬시뮬레이션으로 수행되어져야 하는 로컬설계객체보다 추상화수준이 높은 시뮬레이션 모델 내지는 내지는 로컬설계객체와 동일한 추상화수준에서 시뮬레이션이 빠르게 수행되도록 최적화되어진 시뮬레이션 모델이 로컬설계객체와 같이 시뮬레이션 되는 과정에서 상기 로컬설계객체보다 추상화수준이 높은 시뮬레이션 모델내지는 내지는 로컬설계객체와 동일한 추상화수준에서 시뮬레이션이 빠르게 수행되도록 최적화되어진 시뮬레이션 모델에서부터 수집되는 동적정보로부터 상기 예상입력 내지는 예상출력을 구하는 시뮬레이션 방법.The local design in the process of simulating a simulation model having a higher abstraction level than the local design object to be performed by the local simulation, or a simulation model optimized to be performed quickly at the same abstraction level as the local design object as the local design object. A simulation method for obtaining the predicted input or predicted output from dynamic information collected from a simulation model having a higher abstraction level than an object or a simulation model that is optimized to perform a simulation at a same abstraction level as a local design object. 제 67 항 내지는 제 68 항 내지는 제 69 항에 있어서,70. The method of claim 67 or 68 to 69 wherein 상기 로컬설계객체보다 추상화수준이 높은 시뮬레이션 모델 내지는 로컬설계객체와 동일한 추상화수준에서 시뮬레이션이 빠르게 수행되도록 최적화되어진 시뮬레이션 모델이 DUV와 TB를 모두 포함한 설계객체인 시뮬레이션 방법Simulation method with a higher abstraction level than the local design object or a simulation object optimized for fast simulation at the same abstraction level as the local design object.
KR1020060092574A 2005-10-10 2006-09-22 Verification Method from Electronic System Level to Gate Level Using Systematic Progressive Refinement KR101328263B1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/KR2006/004059 WO2007043786A1 (en) 2005-10-10 2006-10-10 Dynamic-based verification apparatus for verification from electronic system level to gate level, and verification method using the same
US12/089,665 US20090150136A1 (en) 2005-10-10 2006-10-10 Dynamic-based verification apparatus for verification from electronic system level to gate level, and verification method using the same
US12/987,481 US8781808B2 (en) 2005-10-10 2011-01-10 Prediction-based distributed parallel simulation method

Applications Claiming Priority (14)

Application Number Priority Date Filing Date Title
KR20050095803 2005-10-10
KR1020050095803 2005-10-10
KR1020050098941 2005-10-18
KR20050098941 2005-10-18
KR20060037412 2006-04-25
KR1020060037412 2006-04-25
KR20060038426 2006-04-27
KR1020060038426 2006-04-27
KR1020060043611 2006-05-15
KR20060043611 2006-05-15
KR20060048394 2006-05-29
KR1020060048394 2006-05-29
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

Publications (2)

Publication Number Publication Date
KR20070039857A true KR20070039857A (en) 2007-04-13
KR101328263B1 KR101328263B1 (en) 2013-11-14

Family

ID=38160520

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060092574A KR101328263B1 (en) 2005-10-10 2006-09-22 Verification Method from Electronic System Level to Gate Level Using Systematic Progressive Refinement

Country Status (1)

Country Link
KR (1) KR101328263B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102493046B1 (en) * 2022-10-20 2023-01-27 부산대학교 산학협력단 Performance Improvement Method in Prediction-based Parallel Gate-level Timing Logic Simulation Using Adaptive Prediction Data

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101701800B1 (en) 2015-10-27 2017-02-02 경북대학교 산학협력단 Method for task scheduling visualization for automotive control software, recording medium and device for performing the method

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7020722B2 (en) * 2001-11-09 2006-03-28 Sun Microsystems, Inc. Synchronization of distributed simulation nodes by keeping timestep schedulers in lockstep
KR20050061268A (en) * 2003-12-16 2005-06-22 양세양 Performance improvement apparatus for hardware-assisted verification using massive memory and compilation avoidance and its verification method using the same
KR20050090053A (en) * 2004-03-06 2005-09-09 양세양 Simulation-based verification apparatus achieving high verification performance, and the simulation method using the same

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102493046B1 (en) * 2022-10-20 2023-01-27 부산대학교 산학협력단 Performance Improvement Method in Prediction-based Parallel Gate-level Timing Logic Simulation Using Adaptive Prediction Data

Also Published As

Publication number Publication date
KR101328263B1 (en) 2013-11-14

Similar Documents

Publication Publication Date Title
US8781808B2 (en) Prediction-based distributed parallel simulation method
US20130179142A1 (en) Distributed parallel simulation method and recording medium for storing the method
Coelho The VHDL handbook
US20090150136A1 (en) Dynamic-based verification apparatus for verification from electronic system level to gate level, and verification method using the same
US8468475B2 (en) Conversion of circuit description to an abstract model of the circuit
WO2007043786A1 (en) Dynamic-based verification apparatus for verification from electronic system level to gate level, and verification method using the same
US8650513B2 (en) Reducing x-pessimism in gate-level simulation and verification
KR20060005286A (en) High performance design verification apparatus using verification results re-use technique and its rapid verification method using the same
Casaubieilh et al. Functional verification methodology of Chameleon processor
US7254793B2 (en) Latch modeling technique for formal verification
TW201003444A (en) Compact circuit-simulation output
CN110785761B (en) Compression method of simulation time line in dynamic reprogramming of clock
KR20040063846A (en) Verification Apparatus Supporting the Use of Unifying Different Verification Platforms, and the Verification Method Using the Same
Tan et al. Verilog hdl simulator technology: a survey
KR101328263B1 (en) Verification Method from Electronic System Level to Gate Level Using Systematic Progressive Refinement
Atat et al. Simulink-based MPSoC design: new approach to bridge the gap between algorithm and architecture design
Kartika Analysis of “SystemC” design flow for FPGA implementation
KR20080096723A (en) Distributed parallel simulation method based on adaptive synchronization/communication scheme
KR20060101127A (en) Efficient functional verification apparatus in esl design methodology, and the verification method using the same
KR20070108303A (en) Verification method from electronic system level to gate level using systematic progressive refinement
KR20060066634A (en) Dynamic-verification-based verification apparatus achieving high verification performance and verification efficiency, and the verification methodology using the same
Erickson TLM-Driven Design and Verification–Time For a Methodology Shift
US10210294B1 (en) System and methods for simulating a circuit design
US20240111660A1 (en) Managing high performance simulation representation of an emulation system
Schirrmeister et al. Hardware-assisted verification and software development

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20161102

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180305

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20181105

Year of fee payment: 6