KR101328263B1 - 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
KR101328263B1
KR101328263B1 KR20060092574A KR20060092574A KR101328263B1 KR 101328263 B1 KR101328263 B1 KR 101328263B1 KR 20060092574 A KR20060092574 A KR 20060092574A KR 20060092574 A KR20060092574 A KR 20060092574A KR 101328263 B1 KR101328263 B1 KR 101328263B1
Authority
KR
Grant status
Grant
Patent type
Prior art keywords
simulation
model
local
level
abstraction
Prior art date
Application number
KR20060092574A
Other languages
Korean (ko)
Other versions
KR20070039857A (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
Grant date

Links

Images

Abstract

본 발명은 추상화수준이 높은 시스템 수준으로부터 수차례의 구체화 과정을 통하여 이루어지는 디지털 시스템의 설계를 위한 설계 검증을 설계 전체 과정에서 체계적이며 효율적으로 수행하는 검증 장치와 이를 이용한 체계적이며 효과적인 검증 방법에 관한 것이다. The invention systematically using systematically throughout the process of design verification design for the design of a digital system formed by a specified course of several times from a higher system level, the level of abstraction and a verification device to efficiently perform it, and relates to an effective verification method .
본 발명에서는 임의의 컴퓨터에서 수행되어지는 본 발명의 검증 소프트웨어로 하여금 원 설계 코드에 부가적인 코드나 부가적인 회로를 추가하고, 필요시에는 원 설계 코드로 구술된 모델보다 추상화 수준이 높은 모델을 생성하기 위하여 원 설계 코드와는 다른 코드로 본 발명의 검증 소프트웨어 등을 사용한 자동화된 방식 또는 수동적 방식을 통한 모델링 과정을 통하여 얻게 되는 상기 추상화 수준이 높은 모델을 대상으로 하는 1회 이상의 시뮬레이션도 수행하게 한다. Generate in the present invention, additional code or additional circuitry added to, and if necessary a high level of abstraction than the dictation model to the original design code model in this causes the original design code by the verification software in the invention to be performed on any computer makes the original design code and are performed at least once a simulation destined to this higher model, the abstraction level that is obtained through the modeling process through the automated system or a passive manner using the validation software, of the present invention with a different code in order to . 시뮬레이션 수행은 상이한추상수준 동일모델 또는 후단 시뮬레이션 대상이 되는 모델을 이용하는 앞단 시뮬레이션과 앞단 시뮬레이션 대상이 되는 모델과 상이한추상수준 동일모델 또는 앞단 시뮬레이션 대상이 되는 모델을 이용하는 후단 시뮬레이션으로 나누어지며, 앞단 시뮬레이션의 시뮬레이션 결과를 효과적으로 이용하는 후단 시뮬레이션은 1 또는 2 이상의 컴퓨터에서 수행되는 1 회 이상의 시뮬레이션을 1 또는 2 이상의 시뮬레이터를 이용하여 순차적 수행을 가능하게 할뿐만 아니라, 2 이상의 컴퓨터에서 돌아가는 2 이상의 시뮬레이터를 이용하여 상호 최대한 독립적인 병렬적 수행을 가능하게 함으로서, 또는 추상화 상위수준의 모델을 추상화 하위수준의 모델과 함께 시뮬레이션하여서 2 이상의 컴퓨터에서 돌아가는 2 이상의 시뮬레이터 Simulation performed is divided into a rear end simulation using different level of abstraction, the same model or a rear end simulation front-end using the model to be subjected to simulate the front end of the simulation model that is subject to a different level of abstraction, the same model or a model that the front end simulation target, the front-end simulation the rear end using a simulation result effectively simulations cross using two or more simulators back not only makes it possible to perform sequential use of one or more simulated one or more than one simulator, the at least two computers is carried out in one or two or computer by enabling full independent parallel execution, or abstraction hayeoseo a model of high-level simulation with a model of the lower level of abstraction than two simulators running on two or more computers 이용하여 상호 최대한 독립적인 병렬적 수행을 가능하게 함으로서 전체 검증 시간과 검증 비용의 대폭적인 단축을 가능하게 하고, 검증의 효율성을 크게 높일 수 있게 한다. By using the cross possible to enable independent parallel performed and enabling the widespread reduction in overall verification time and the verification cost, it makes it possible to significantly improve the efficiency of verification.
하드웨어 검증 Hardware Verification

Description

체계적 점진적 구체화를 통한 전자시스템수준에서부터 게이트수준까지의 검증 방법 {Verification Method from Electronic System Level to Gate Level Using Systematic Progressive Refinement} Proven methods from electronic system level through a systematic progressive elaboration by gate-level {Verification Method from Electronic System Level to Gate Level Using Systematic Progressive Refinement}

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

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

면. if.

도3 은, ESL 모델의 계층구조 일 예를 이에 대응되는 RTL 모델의 계층구조의 일 예 3 is one example of the hierarchical structure of the ESL of the model hierarchy In one example corresponding RTL model

와 비교하여서 개략적으로 도시한 도면. Hayeoseo compared to a schematic view.

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

와 비교하여서 개략적으로 도시한 도면. Hayeoseo compared to a schematic view.

도5 는, 분산병렬 시뮬레이션의 수행이 2 이상의 컴퓨터들이 컴퓨터네트워크로 연 5 is opened to perform the simulation is distributed parallel to two or more computers in the computer network,

결된 상황에서 수행되어지는 상황의 일 예를 개략적으로 도시한 도면. A schematic diagram illustrating an example of a situation to be performed in the connected situation.

도6 은, 추상화 상위수준 모델을 이용한 앞단 시뮬레이션에서 t-DCP를 획득하고 추 6 is obtained the t-DCP in the front part simulation with a higher level of abstraction model and estimation

상화 하위수준 모델을 이용한 후단 시뮬레이션을 시간분할적병렬수행으로 진행되는 Which proceeds to the rear end simulation using the low-level virtualization model with a time division ever parallelism

일 예를 개략적으로 도시한 도면. One example of a schematic view.

도7 은, 추상화 상위수준 모델을 이용한 앞단 시뮬레이션에서 s-DCP를 획득하고 추 7 is obtained for s-DCP in the front part simulation with a higher level of abstraction model and estimation

상화 하위수준 모델을 이용한 후단 시뮬레이션을 분산처리적병렬수행으로 진행되는 Which proceeds to the rear end simulation using the low-level virtualization model with distributed parallel execution processing enemy

일 예를 개략적으로 도시한 도면. One example of a schematic view.

도8 은, 본 특허에서 제시한 분산처리적병렬시뮬레이션을 위하여 부가되는 부가코 8 is a portion that is added to a dispersion treatment ever parallel simulation proposed in this patent nose

드의 내부를 구성하는 컴퍼넌트들의 구성 일 예를 개략적으로 도시한 도면. An example of the configuration of the components which make up the interior of the de schematically shows.

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

란젝션수준에서의 트란젝션 단위의 사이클정확한 버스 동작상황의 일 예를 개략적 It is a schematic of an example of the correct bus cycle operation status of Tran projection unit in the projection level

으로 도시한 도면. Diagram showing the.

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

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

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

의 설계객체로 대체하여서 추상화 중간수준의 혼합된 설계객체 DO_t_mixed(i)들을 Hayeoseo designed to replace the object of the design objects DO_t_mixed (i) a mixture of middle-level abstraction

생성하는 일 예를 개략적으로 도시한 도면. Creation date for a schematic view of a.

도12 는, 도11 에서 예시한 여섯 개의 혼합된 설계객체 DO_t_mixed(1), DO_t_mixed(2), .., DO_t_mixed(6)를 이용한 여섯의 혼합 시뮬레이션의 독립적 병 12 is a diagram of six mixed design object illustrated in 11 DO_t_mixed (1), DO_t_mixed (2), .., independently of the mixing bottle of six simulated using DO_t_mixed (6)

렬 실행과 이 실행 과정에서 1 또는 2 이상의 시뮬레이션 시점들 또는 구간들 The column is run and execute the process one or two or more simulation time or interval at

에서 수집된 상태정보들을 이용하여서 후단 시뮬레이션 단계인 RTL 모델에 대한 시 Hayeoseo using the status information collected at the time of the rear end of RTL model simulation step

뮬레이션을 시간분할적병렬수행으로 수행하는 일 예를 개략적으로 도시한 도면. One example of a schematic view of performing the simulation with a time division ever parallelism.

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

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

도14 는, 점진적 구체화 과정을 거쳐서 트란젝션 수준의 모델에서부터 RTL 모델을 FIG. 14 is through the progressive elaboration process models from an RTL model of dextran rejection level

거쳐서 게이트수준의 모델까지 생성되는 과정의 일 예를 개략적으로 도시한 도면. Via a schematically shows an example of the process that is generated by the model of a gate level diagram.

도15 는, 점진적 구체화 과정을 거쳐서 사이클정확 트란젝션 수준의 모델을 이용한 15 is materialized through a gradual process with cycle accurate model of dextran rejection level

검증에서부터 RTL 모델을 이용한 검증을 거쳐서 게이트수준의 모델을 이용한 검증 Through the verification using the RTL model from the verification by the verification model of the gate level

까지 진행되는 과정에 s-DCP 또는 t-DCP를 이용하여서 추상화 하위수준 모델에 Hayeoseo using the s-DCP or t-DCP in the process of going on a low-level abstraction to model

대한 시뮬레이션을 분산처리적병렬수행 또는 시간분할적병렬수행으로 진행하는 To proceed with the simulation of the distributed processing performed in parallel or time division ever ever parallelism

것의 일 예를 개략적으로 도시한 도면. An example of what a view schematically showing.

도16 은, 본 특허에서의 시뮬레이션 방법을 진행하는 예제 모델의 일부분을 개략적 16 is a schematic of a portion of the model sample to proceed with the simulation method of the present patent

으로 도시한 도면. Diagram showing the.

도17 은, 도16 에서 예시한 예제 모델을 분산처리적병렬시뮬레이션으로 수행시키기 Figure 17 is, to carry out the example model shown in Figure 16 as parallel distributed processing ever simulation

위하여 본 특허의 검증 소프트웨어를 이용하여 부가 코드를 부가한 상황의 일 예를 For an example of adding an additional code using the validation software of the patent situation,

부분적으로 개략적으로 도시한 도면 A view schematically showing part

도18 은, 도16 에서 예시한 예제 모델을 분산처리적병렬시뮬레이션으로 수행시키기 Figure 18 is, to carry out the example model shown in Figure 16 as parallel distributed processing ever simulation

위하여 본 특허의 검증 소프트웨어를 이용하여 부가 코드를 부가한 상황의 일 예를 For an example of adding an additional code using the validation software of the patent situation,

또 다른 부분적으로 개략적으로 도시한 도면 In a schematic view of the other part,

도19 는, 도16 에서 예시한 예제 모델을 분산처리적병렬시뮬레이션으로 수행시키기 19 is to carry out the example model shown in Figure 16 as parallel distributed processing ever simulation

위하여 본 특허의 검증 소프트웨어를 이용하여 부가 코드를 부가한 상황의 일 예를 For an example of adding an additional code using the validation software of the patent situation,

또 다른 부분적으로 개략적으로 도시한 도면 In a schematic view of the other part,

도20 은, 분산처리적병렬수행/단일수행 혼용방식의 수행 상황의 일 예를 개략적으 20 is a schematic of an example of the lead do with how the distribution process ever parallelism / single mixing method performed

로 도시한 도면. A diagram showing a.

도21 은, 시뮬레이션가속을 통한 시뮬레이션을 분산처리적병렬수행으로 진행함으로 By 21 is conducted through the simulation the simulation acceleration in a distributed processing enemy parallelism

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

감소시키는 상황의 일 예를 개략적으로 도시한 도면. Reducing a schematic diagram illustrating an example of a situation in which.

도22 는, 본 특허에서의 분산처리적병렬수행 방식의 시뮬레이션을 위한 2 이상의 22 is 2 or more for the simulation of the distribution process ever parallelism scheme in this patent

컴퓨터에 인스톨된 2 이상의 로컬컴퓨터들의 논리적연결구조 방식들의 몇가지 사례 Some examples of the at least two local logical link structure approach of computers installed on the computer

들을 개략적으로 도시한 도면. A simplified view of the drawings.

도23 은, 분산병렬 시뮬레이션을 2 이상의 컴퓨터들과 이들 컴퓨터에 인스톨된 2 23 is the installed parallel distributed simulation of two or more of these computers and in the computer 2

이상의 HDL 시뮬레이터들을 이용하여서 구성한 분산병렬 시뮬레이션 환경의 일 예 One example of a parallel distributed simulation environment configured hayeoseo use more than HDL simulator

를 개략적으로 도시한 도면. A view schematically showing.

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

도시한 도면. The illustrated diagram.

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

개략적으로 도시한 도면. A schematic view.

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

로 실행되는 로컬시뮬레이션 수행의 흐름도의 일 예를 개략적으로 도시한 도면. A schematic diagram illustrating an example of a flow diagram of a simulation performed locally running in.

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

로 실행되는 로컬시뮬레이션 수행의 흐름도의 또 다른 일 예를 개략적으로 도시한 Schematically illustrates another example of a flow diagram of a simulation performed locally running in

도면. drawing.

도28 은 별방식의 논리적연결구조에서 로컬시뮬레이터로 실행되는 로컬시뮬레이션 28 is a simulation running on the local structure of a logical connection by the way to the local simulator

수행의 흐름도의 일 예를 개략적으로 도시한 도면. One example of a schematic view of a flowchart performed.

도29 는 별방식의 논리적연결구조에서 중앙컴퓨터에 존재하는 SW서버 모듈로 수행 29 is carried out with SW server modules in a central computer in the logical structure of the connection-specific manner

되는 과정의 흐름도의 일 예를 개략적으로 도시한 도면. One example of a schematic view of a flow chart of processes.

도30 은, 도8 의 본 특허에서 제시한 분산처리적병렬시뮬레이션을 위하여 부가되는 30 is added to a dispersion treatment ever parallel simulation proposed in this patent in FIG. 8

부가 코드 내부를 구성하는 컴퍼넌트들 일부분에 대하여 이들의 행태를 모조코드 Dummy code for their behavior with respect to the component parts that make up the inner code added

형식으로 구술한 예를 개략적으로 도시한 도면. An oral form such as a schematic view.

도31 은, 도8 의 본 특허에서 제시한 분산처리적병렬시뮬레이션을 위하여 부가되는 31 is added to a dispersion treatment ever parallel simulation proposed in this patent in FIG. 8

부가 코드 내부를 구성하는 컴퍼넌트들 또 다른 일부분에 대하여 이들의 행태를 모 They base their behavior with respect to the component to another part constituting the inner code added

조코드 형식으로 구술한 예를 개략적으로 도시한 도면. View showing an example in the oral action code form. FIG.

도32 는, 본 특허에서 제시한 분산처리적병렬시뮬레이션을 위하여 부가되는 부가코 32 is a portion that is added to a dispersion treatment ever parallel simulation proposed in this patent nose

드의 내부를 구성하는 컴퍼넌트들의 구성의 다른 일 예를 개략적으로 도시한 도면 Drawing another example of the configuration of the components which make up the interior of the de schematically showing

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

일 예를 개략적으로 도시한 도면. One example of a schematic view.

<도면의 주요부분에 대한 부호의 설명> <Description of the Related Art>

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

35 : 컴퓨터 35: Computer

37 : ESL 모델 38 : 설계블록을 나타내는 설계객체 37: ESL model 38: the design object that is designed to block

39 : 설계모듈을 나타내는 설계객체 39: Design object that represents a design module

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

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

53 : 추상화 상위수준에서 구술된 DUV와 TB 모두를 포함하는 설계객체 53: Designing an object that contains all of the DUV and TB dictation from a higher level of abstraction

54 : 예상입출력이용-런/실제입출력이용-런 제어모듈 54: input and output using estimated-run / physical IO used-run control module

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

58 : 예상출력/실제출력 비교모듈 58: Expected Output / Actual Output Compare module

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

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

62 : 검증 소프트웨어로써 검증대상 설계코드에 부가되어진 부가 코드 62: Additional Code been added to the verification target validation software as a design code

64 : 분산병렬 시뮬레이션을 위한 통신 및 동기화 모듈 64: Communication and synchronization module for a parallel distributed simulation

333 : 별방식의 연결구조에서 분산병렬 시뮬레이션 수행 시에 로컬시뮬레이션들의 333: local simulation of a parallel distributed simulation when performed on the connection structure by way of

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

343 : 분산병렬 시뮬레이션 환경에서 로컬시뮬레이션을 수행하는 시뮬레이터 343: simulator for performing simulation in a local parallel distributed simulation environments

353 : 중앙컴퓨터 353: a central computer

354 : 외곽컴퓨터 354: outside computer

370 : GL 모델 370: GL models

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

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

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

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

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

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

387 : RTL 모델에 존재하지 않으나 GL 모델에는 존재하는 설계모듈을 나타내는 설 387: install module that represents the design does not exist in the RTL model GL models exist

계객체 System objects

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

420 : RTL 모델 내의 버스중재기 및 어드레스디코더를 포함하는 온칩 버스 설계객 420: on-chip bus design customers containing recovered and the address bus of the decoder in the RTL model

sieve

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

644 : 분산병렬 시뮬레이션을 위한 로컬시뮬레이션 런-타임 모듈 644: run simulations locally for distributed parallel simulation-Time Module

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

648 : 하드웨어기반검증플랫폼 648: hardware-based verification platform

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

660 : 분산병렬 시뮬레이션에서 로컬시뮬레이터에 수행되도록 분할된 모델내의 설 660: set in the divided models to be carried out in a local simulator on distributed parallel simulation

계객체 System objects

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

674 : Socket API 674: Socket API

676 : TCP/IP socket 676: TCP / IP socket

678 : Device API 678: Device API

680 : Device Driver 680: Device Driver

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

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

본 발명은 전자적 시스템 수준(Electronic System Level: 앞으로 ESL로 약칭함)에 서부터 게이트 수준까지로의 설계를 시뮬레이션을 이용하여 체계적으로 검증하는 기술에 관한 것으로, 설계된 수백만 게이트급 이상의 디지털 시스템을 검증하고자 하는 경우에 검증의 성능과 효율성을 증가시키는 검증 방법에 관한 것이다. The present invention is an electronic system level: to verify the millions of gate-level or more digital systems as, designed according to the verified systematically described using the simulation for the design of a to seobuteo to (Electronic System Level forward abbreviated as ESL) gate level If verification relates to a method for increasing the performance and efficiency of the verification. 반도체 설계 검증에서 시뮬레이션(simulation)이란 소프트웨어적으로 DUV(Design Under Verification) 또는 DUV내의 1 이상의 설계객체(추후에 정의됨)와 이를 구동하는 테스트벤치를 컴퓨터로 실행가능한 모델(computer-executable model)로서 구성하고, 이와 같은 컴퓨터로 실행가능한 모델을 시뮬레이션 컴파일 과정을 통하여 컴퓨터의 기계언어(machine instruction)들의 시퀀스로 바꾸어서 컴퓨터를 이용하여서 실행시키는 과정이다. A simulation (simulation) is by software DUV (Design Under Verification) or (defined later) of 1 or more design objects in the DUV and run a test bench for driving it to a computer which model (computer-executable model) in a semiconductor design verification a process of configuration and, on the other through a computer-executable model simulation compilation process such as changing a sequence of the machine language of the computer (machine instruction) executed hayeoseo using a computer. 따라서, 시뮬레이션의 실행은 기본적으로 컴퓨터의 기계언어들의 순차적인 수행(sequential execution)을 통하여 이루어지게 되는데, 현재 다양한 시뮬레이션 기술(이벤트-구동 시뮬레이션(event-driven simulation), 사이클-기반 시뮬레이션(cycle-based simulation), 컴파일방식 시뮬레이션(compiled simulation), 해석방식 시뮬레이션(interpreted simulation), 동시-시뮬레이션(co-simulation) 등)들이 존재하고 있다. Thus, the execution of the simulation is basically there is be achieved through the sequential performed (sequential execution) of the machine language of a computer, present various simulation techniques (Event-driven simulation (event-driven simulation), cycle-driven simulation (cycle-based simulation), compiled simulation (compiled simulation), the simulation analysis method (interpreted simulation), co-simulation, and (co-simulation), and so on) are present. 즉 시뮬레이션이란 설계대상 또는 구현대상이 되는 설계객체를 적정한 추상화 수준(abstraction level, 반도체 설계에서는 게이트-수준, 레지스터전송-수준, 트란젝션-수준, 아키텍춰-수준, 행위-수준, 알고리즘-수준 등의 다양한 추상화 수준 등이 존재함)에서의 모델링 과정(modeling process)을 통하여 컴퓨터를 이용하여 소프트웨어적으로 수행시켜서 해당 설계객체의 동작기능 또는 동작특성 등을 모의적으로 컴퓨터 상에서 실현시키는 다양한 과정들을 모두 통칭하는 것이다. That is simulated is the design object that is designed target or implement subject appropriate levels of abstraction (abstraction level, in semiconductor design, the gate-like level-level, the register transfer-level, Tran projection-level, ahkitekchwo-level behavior-level algorithm collectively, all of the various processes to achieve the various levels of abstraction, such as is present also) modeling process (modeling process) for using the computer by performing a software operation function or operating characteristic of the design object through in a simulated on a computer to. 이와 같은 시뮬레이션의 장점은 설계객체를 실제적으로(physically) 구현하기 전에 이의 동작기능 또는 동작특성 등을 가상적으로(virtually) 컴퓨터 상에서 미리 예측해볼 수 있을 뿐만 아니라 소프트웨어적인 방식임으로 높은 유연성을 제공받을 수 있다는 것이며, 단점으로는 시뮬레이션의 수행이 결국은 기계언어들의 시퀀스가 순차적인 수행을 통하여 이루어지게 됨으로 시뮬레이션 대상의 되는 설계객체의 복잡도가 큰 경우(예로 최근의 반도체는 1억 게이트급 이상의 설계들도 다수 존재함)에는 시뮬레이션의 수행 속도가 매우 느리다(예로 상기 1억 게이트급의 설계를 이벤트-구동 시뮬레이션으로 수행하는 경우의 시뮬레이션 속도가 1 cycle/sec가 되고 시뮬레이션을 100,000,000 사이클 수행하여야 한다면 약 3.2년이 소요됨)는 것이다. An advantage of such simulations can not only try predict a design object on the practical (physically) like its operating functions or operating characteristics virtually before implementation (virtually) computer that can be provided with high flexibility randomly software way will, disadvantages to perform the simulation in the end, if the complexity of the design objects of doemeuro be performed a sequence of machine language through the sequential performing simulation target is large (for example a plurality FIG semiconductor is over 100 million gate-level designs of recent there also), the execution speed of the simulation is very slow (for example the design of a gate-level the 100M event - if should perform simulation cycle speed is 1, the cycle / sec, and the simulation 100 million in the case of performing the driving simulation is approximately 3.2 years it is soyodoem). 따라서, 본 특허에서 시뮬레이션이라함은 DUV 또는 DUV 내의 1 이상의 설계객체를 적정한 추상화 수준에서 소프트웨어적으로 모델링하여서 이를 소프트웨어적으로 실행시키는 모든 방법을 가르킨다. Thus, the term simulate in this patent is hayeoseo modeling the one or more design objects in the DUV or DUV in software at an appropriate level of abstraction, all point to the method of running them in software. 좀 더 구체적으로 설명한다면, DUV 또는 DUV 내의 1 이상의 설계객체의 특정 추상화 수준의 행태(behavior)를 궁극적으로 특정한 컴퓨터 자료구조(data structure)와 이 특정한 자료구조에 대한 일정한 오퍼레이션(operation)들로 정의되어지도록 구현함으로서 이를 컴퓨터 실현가능한(computer-executable) 형태로 만들고, 여기에 입력 값들이 인가되면서 컴퓨터로 동작시키는 과정 또는 입력 값들로써 컴퓨터에서 일련의 연산(computation) 또는 프로세싱(processing)을 포함하는 과정이라면 모두 시뮬레이션이라고 정의한다 (따라서, 상용 시뮬레이터를 이용하여 이루어지는 시뮬레이션뿐만 아니라, 상기 정의에 부합되는 과정이라면 자체적으로 제작한 시뮬레이터에 의한 시뮬레이션과 상기 시뮬레이션 프로세스와 동일한 과정을 통한 모델링을 통하여 컴퓨터 상에서 가상적 More if specifically defines the behavior (behavior) of the DUV or a specific abstraction level of design objects more than one in the DUV with the ultimate in particular computer data structure (data structure) and the specific data structure constant operation (operation) of the so that by implementing the making them into computer feasible (computer-executable) form, the process of deulrosseo applied to input value here as the process for operating a computer or input from the computer includes a series of operation (computation) or processing (processing) If If the process is defined as both the simulation (and thus, as well as simulations made using a commercially available simulator, consistent with the definition virtually on a computer through the modeling through the same process, and the simulation and the process simulation by the production simulator itself 로 수행되어지는 소프트웨어 프로세스라면 모두 시뮬레이션으로 정의하기로 한다). If the software process being performed in all it will be defined as a simulation).

최근에 집적회로(IC: Integrated Circuit)의 설계 및 반도체 공정기술이 급격하게 발달함에 따라 디지털 회로 또는 디지털 시스템 설계의 규모가 최소 수천만 게이트급에서 수억 게이트급까지 커짐은 물론 그 구성이 극히 복잡해지고 있는 추세이고, 이와 같은 추세는 계속적으로 확대되고 있는 추세이다. Recently, integrated circuit: being extremely complicated design and semiconductor process technology is rapidly developed as the size of the digital circuit or digital system design increases at least tens of millions of gate-level to hundreds of millions of gate-level in accordance with, as well as the structure of (IC Integrated Circuit) trend, and this trend is a trend that is being continually expanded. 특히 SOC(System On Chip)으로 통칭되는 최근의 시스템급의 집적회로들은 대부분 1 이상의 프로세서 코어(RISC 코어 또는 DSP 코어 등으로, 구체적 예로는 ARM사의 ARM11 코어 또는 CEVA사의 Teak DSP 코어)를 내장하고 칩 기능의 상당 부분들을 소프트웨어로 구현하는 추세이다. In particular SOC (System On Chip), the recent integrated circuit of the system class are mostly one or more processor cores, called a built-in and chip (the RISC core or a DSP core, etc., and specifically examples include ARM's ARM11 core or CEVA's Teak DSP Core) a trend that implements much of the functionality in software. 그리고, 시장에서의 경쟁은 더욱 더 치열해지므로 빠른 시간 내에 우수한 제품을 개발하여야만 함으로 설계 기간의 단축은 제품의 성공을 결정하는 매우 중요한 요소로 되어져 버렸다. And shorten the design cycle by hayeoyaman develop excellent products in the year since the competition in the market is more and more fierce fast time been abandoned as a very important factor in determining the success of a product. 따라서 최근의 칩 설계에서는 ESL 설계 기법이 새로운 설계 방식으로 산업체에서 많은 주목을 받고 있다. Thus, recent chip design, has received a lot of attention in the industry with this new design approach ESL design methodology. 이와 같은 전통적인 디지털 하드웨어 설계에서 적용하여 왔던 RTL(Register Transfer Level) 설계기법보다 추상화 수준(abstraction level)(추후에 설명됨)이 높은 ESL 설계 기법을 적용하여 설계되는 칩들은 칩 설계와 더불어서 이 칩을 구동시키는 소프트웨어의 개발도 동시에 수행되어져야만 한다. Such traditional RTL been applied in digital hardware design (Register Transfer Level) abstraction level than design techniques (abstraction level) (to be described later), the chip, the chip is designed to apply a high ESL design techniques In addition to the chip design development of software for driving also perfected at the same time is carried out. 따라서, 하드웨어의 설계와 동시에 소프트웨어 개발을 진행시키기 위하여서 해당 하드웨어를 소프트웨어적으로 모델링한 가상 플랫폼(Virtual Platform, 앞으로 VP로 약칭함)을 만들어서 시스템 수준의 모델(ESL 모델)로 아키텍춰 탐색(architecture exploration), 소프트웨어 개발, 하드웨어/소프트웨어 동시 검증(HW/SW co-verification), 시스템 검증(system verification)에 사용하는 것이 최근의 추세인데, 이는 수행 가능한 스펙(executable specification)의 역할(즉 레퍼런스 모델의 역할)도 수행한다. Thus, (hereinafter Virtual Platform, coming as VP) the hardware In order simultaneously with the design of the hardware to push forward the development of software virtual platforms modeled in software to create a system-level model search ahkitekchwo as (ESL model) (architecture exploration) , role (ie the role of the reference model), software development, hardware / software co-verification (HW / SW co-verification), system verification (system verification) is inde recent trend, which is executable specification (executable specification) to be used in Fig performs. 이와 같은 VP는 추상화 수준을 높여서 만들게 됨으로 신속하게 만들 수 있을 뿐만 아니라, 구현가능한 DUV를 설계하기 이전에 DUV에 대한 VP를 먼저 만들어 놓으면 이 VP를 이용하여서 구현가능한 DUV가 존재하기 이전에 TB에 대한 검증을 미리 진행할 수도 있음으로 여러 면에서 유리하다. Such VP of raising the level of abstraction make doemeuro quickly as you can make, as well, implementation to design a possible DUV release made before the VP for DUV first to hayeoseo using the VP implementable DUV exists to previously for TB which may proceed to verify the advance is beneficial in many ways. 이와 같은 VP는 현재 SOC 설계 방법에서 보편화된 플랫폼기반의 설계(PBS: Platform-based Design)에서 중요한 역할을 수행하는데, VP는 일반적으로 트란젝션(transaction) 수준에서 온-칩 버스(on-chip bus)를 정해진 버스규약(bus protocol)에 맞추어서 모델링한 버스 모델(이와 같이 트란젝션 수준에서 모델링된 것을 TLM 모델이라함)을 핵심 컴퍼넌트화 하여서 이 버스에 연결되어지는 설계블럭들을 트란젝션 수준(transaction level)에서 모델링하여 이들 트란젝션 수준의 설계블럭들을 추상화되어진 버스규약에 맞추어 버스 모델과 통신이 이루어질 수 있게 함으로서 상대적으로 높은 시뮬레이션 수행속도(대략 RTL 모델의 수행속도와 비교하여 100배-10,000배)를 가능하게 한다. Such a VP is currently designing a platform common in SOC design methodology (PBS: Platform-based Design), to play an important role in the VP are typically Tran rejection came from the (transaction) level (chip bus on-chip bus ) the specified bus protocol (bus protocol) in a bus model modeling conformity (thus referred to as the TLM model to model from dextran rejection level), a key component Chemistry hayeoseo Tran a design block that is connected to the bus rejection level (transaction level ) 100 times -10,000-fold) by modeling as compared with the execution speed of these Tran projection level of the bus model according to the bus protocol abstraction been the design block and by allowing the communication can be carried out relatively high simulation speed (about in the RTL model It makes it possible. 현재 이와 같은 VP를 생성시키고 수행시키는 상용 툴들로서는 ARM사의 MaxSim, CoWare사의 ConvergenSC, Cadence사의 Insicive, Summit Design사의 VisualElite, Vast Systems Technology사의 VSP, Synopsys사의 SystemStudio, TenisonEDA사의 VTOC, Carbon Design Systems사의 VSP, Virutech사의 VirtualPlatform 등이 있다. Currently this as a commercial tool for producing the same VP and performing the ARM's MaxSim, CoWare's ConvergenSC, Cadence's Insicive, Summit Design Inc. VisualElite, Vast Systems Technology Inc. VSP, Synopsys, Inc. SystemStudio, TenisonEDA's VTOC, Carbon Design Systems, Inc. VSP, there is such Virutech's VirtualPlatform. SOC 설계에서는 이 VP는 소프트웨어를 개발할 수 있을 정도의 빠른 수행 속도가 제일 중요함으로 Verilog나 VHDL과 같은 언어를 이용하여서 레지스터전송수준(RTL)에서 모델링하지 않고, C/C++ 또는 SystemC와 같은 언어를 이용하여서 RTL 보다 추상화 수준이 높은 트란젝션 수준 또는 알고리즘 수준(algorithmic level)에서 모델링하고 있다. SOC design, the VP is by faster execution speed enough to develop the software, the most important hayeoseo using languages ​​such as Verilog or VHDL is not modeled in the register transfer level (RTL), using languages ​​such as C / C ++ or SystemC hayeoseo and modeling at a high level of abstraction than RTL Tran rejection level or level algorithm (algorithmic level). 시스템 설계에서 매우 중요한 개념인 추상화 수준(abstraction level)이란 해당 설계객체(추후에 설명됨)의 구술의 구체화 정도를 표현하는 단계로, 디지털 시스템의 경우에는 추상화 수준이 낮은 단계에서부터 높은 단계로 레이아웃-수준, 트란지스터-수준, 게이트-수준, RTL(레지스터전송-수준), 트란젝션 수준, 알고리즘 수준 등으로 나눌 수 있다. A very important concept a level of abstraction from system design (abstraction level) is its design objects to the step of expressing the embodied amount of spoken of (as described later), in the case of a digital system layout with high level from the low level of abstraction level - can be divided into, Tran rejection level, the algorithm level, such as level, Tran register-level, the gate-level, RTL (register transfer level). 즉, 게이트-수준은 RTL 보다 추상화 수준이 낮고, RTL 수준은 트란젝션 수준보다 추상화 수준이 낮으며, 트란젝션 수준은 알고리즘 수준보다 추상화 수준이 낮다. That is, the gate-level is low in a low level of abstraction than RTL, RTL level were below the level of abstraction Tran rejection level, Tran rejection level is at the level of abstraction than the algorithm level. 따라서, 특정 설계객체 A 의 추상화 수준이 트란젝션이고, 이를 더욱 구체화시켜서 표현한 설계객체 B가 RTL이면 설계객체 A는 설계객체 B보다 추상화 수준이 높다고 정의 한다. Therefore, the level of abstraction of the specific design object A Tran projection, is further embodied by this design that the image of the object B RTL design object A defines higher level of abstraction than the design object B. 뿐만 아니라 설계객체 X가 내부에 설계객체 A와 설계객체 C를 가지고 있고 설계객체 Y는 내부에 A를 구체화한 설계객체 B와 설계객체 C를 가지고 있다면, 설계객체 X는 설계객체 Y보다 추상화 수준이 높다고 정의한다. If as well as the design object X has a design object A and the design object C on the inside and the design object Y has a design object B and the design object C embodying the A inside, the design object X is the level of abstraction than the design object Y The high definition. 뿐만 아니라, 같은 게이트수준 또는 같은 RTL에서는 지연시간 모델을 얼마나 더 정확이 하였느냐에 따라서 추상화 수준의 높고 낮음을 결정할 수 있다. In addition, as well, such as RTL or gate level can be determined as the higher of the low level of abstraction, depending on how hast more accurate delay models. 즉, 지연시간 모델이 정확한 것이 추상화 수준이 낮다고 이야기하는데, 예로서 같은 게이트수준이라고 하더라도 제로지연시간모델(zero-delay model)의 네트리스트가 단위지연시간모델(unit-delay model)의 네트리스트보다 추상화 수준이 높다고 하고, 단위지연시간모델의 네트리스트가 SDF(Standard Delay Format)를 이용한 풀타이밍모델(full-timing model)의 네트리스트보다 추상화 수준이 높다고 정의한다. That is, more netlist in that the delay model accurate story A low level of abstraction, even as the gate level such as for example, zero-delay model (zero-delay model) of the net list is the unit delay model (unit-delay model) this higher level of abstraction, and the higher level of abstraction than the defined netlist is a netlist of the unit delay model SDF (Standard delay Format) with a full timing model (full-timing model). 최근의 SOC 설계는 칩으로 최종적으로 구현되어져야 하는 대상을 시초 설계객체로 정의하고, 이 시초 설계객체를 처음 추상화 수준(예로 트란젝션 수준)에서부터 점진적 구체화 과정(progressive refinement process)를 통하여서 목표로 하는 마지막 추상화 수준(예로 게이트-수준)까지 구체화 시켜가는 과정이라고 정의될 수 있다 (도 14 참조). Recent SOC design tonghayeoseo the progressive elaboration process (progressive refinement process) from defined targets that must be eventually implemented in a chip in the beginning designed objects, and the first level of abstraction the beginning design objects (eg dextran rejection level) which aims The last level of abstraction (e.g. a gate-level) may be defined as the process of embodiment to up (see Fig. 14). 점진적 구체화(progressive refinement) 과정을 통한 설계 기법은 플랫폼 기반의 설계와 함께 최근의 SOC의 설계 복잡도에 효율적으로 대처하면서 설계를 진행시킬 수 있는 유일한 설계 기법으로 대부분의 SOC 설계들은 이와 같은 점진적 구체화 과정을 통하여 진행되어진다. Progressive elaboration (progressive refinement) design techniques through the process, most of the SOC design is the only design techniques that can proceed with the design while efficiently responding to the design complexity of recent SOC with the design of the platform are such a progressive elaboration process It is through proceeds. 점진적 구체화 과정을 통한 설계 기법의 핵심은 추상화 상위 수준에서 모델링된 설계객체 MODEL_DUV(HIGH) 내에 존재하는 설계 블럭들을 단계별로 구체화시켜서 MODEL_DUV(HIGH)보다 추상화 하위 수준에서 모델링되는 설계객체 MODEL_DUV(LOW)를 자동화된 방식(예로 논리합성 또는 상위수준합성)으로 또는 수작업 방식으로 또는 자동화된 방식과 수작업 방식을 혼용하여서 얻는 과정이라고 요약할 수 있다. Design through progressive elaboration process of the design objects MODEL_DUV (LOW) are modeled in the abstract low-level core by step embodied in the design blocks that exist in the design objects MODEL_DUV (HIGH) modeling abstraction higher level than MODEL_DUV (HIGH) technique an automated manner the process of obtaining hayeoseo mix (for example the logic composition or a high-level synthesis) or by manual methods or automated methods and manual methods can be summarized as. 이의 구체적 예로서는 우선 ESL에서부터 RTL로 구체화하는 단계인 ESL 모델에서부터 구현가능한 RTL 모델을 얻는 과정(이 과정은 현재 수작업으로 진행되거나 또는 상위수준합성 방식 또는 이를 혼용한 방식으로 진행됨)에서는 ESL 모델이 MODEL_DUV(HIGH)가 되고, 구현가능한 RTL 모델이 MODEL_DUV(LOW)가 되는 것이며, 다시 RTL에서부터 게이트 수준으로 구체화하는 단계인 구현가능한 RTL 모델에서부터 게이트 수준 모델(즉, 게이트-수준 네트리스트)를 얻는 과정(이 과정은 현재 대부분 논리합성 방식으로 진행됨)에서는 구현가능한 RTL 모델이 MODEL_DUV(HIGH)가 되고, 게이트 수준 모델이 MODEL_DUV(LOW)가 된다. Its specific examples include the process first obtaining a implementable RTL model from step a ESL model shaping from ESL to RTL this ESL model (this process is currently hand proceeds to, or proceeds to a higher level synthesis methods or manner which mix them) MODEL_DUV ( HIGH) is, the implementation is based on a possible RTL model that MODEL_DUV (LOW), the gate-level model (that is, the gate from the stage of implementable RTL model to re-refine from RTL to the gate level - the process of obtaining the level netlist) (a the process proceeds to the most current logic synthesis method) is implementable RTL model, and the MODEL_DUV (HIGH), the gate-level model is the MODEL_DUV (LOW). 이 게이트 수준 모델은 배치 및 배선(placement and routing) 과정에서 추출된 지연시간 정보(Standard Delay Format으로 표현됨)를 부가(back-annotation)함으로서 타이밍정확한 게이트 수준 모델이 된다 (앞으로는 모델이라고 하면 특별한 언급이 없는 한, DUV(Design Under Verification으로 추후에 설명됨)와 TB(Test Bench로 추후에 설명됨)를 모두 포함하고 있는 것으로 정의한다). This gate-level model is the timing accurate gate level model by adding (back-annotation) the delay time information (represented by Standard Delay Format) extracted in the process of placement and routing (placement and routing) (future otherwise noted when said model (to be described later as Design Verification Under) one, DUV and no TB is defined as having both a (to be described later in Test Bench)).

여기에서 한가지 언급할 것은 ESL 모델이라고 하더라도 ESL 모델 내부에 존재하는 모든 설계객체들이 시스템 수준으로 존재하여야만 하는 것은 아니며, RTL 모델이라고 하더라도 RTL 모델 내부에 존재하는 모든 설계객체들이 레지스터전송 수준으로 존재하여야만 하는 것은 아니라는 것이다. Even as this is ESL model to one kind mentioned in all design objects that exist inside the ESL models are not necessarily that must exist at the system level, even as RTL model that must exist in all design objects are register transfer level that exists inside the RTL model It will not. 즉, ESL 모델이라고 하더라도 이 모델 내부의 특정 소수의 설계객체들은 레지스터전송 수준으로 존재하고 이들 설계객체들 추상화용 래퍼(wrapper)로 감싸버림으로서 시스템 수준으로 존재하는 다른 다수의 설계객체들과 추상화 수준을 맞추어 냄으로서 ESL 모델로서 취급되어질 수 있고, RTL 모델이라고 하더라도 이 모델 내부의 특정 소수의 설계객체들은 게이트 수준으로 존재하지만 RTL 수준으로 존재하는 다른 다수의 설계객체들과 같이 RTL 모델로서 취급되어질 수도 있다. That is, although it ESL model The model design object within a specific small number of are register transfer level to exist and these design objects abstraction wrapper (wrapper) present in the system level as the wrapped abandoned by many other design object and the level of abstraction that uses It can be treated as ESL model as a clearance fit to, even if called RTL model design object for a specific small number of the internal model are present in a gate level, but may be treated as a RTL model, as with the other plurality of design objects in a RTL level have. 같은 이유에서 GL 모델에서도 특정 소수의 설계객체(예로서 논리합성으로 게이트수준의 네트리스트를 생성시키지 않는 메모리블럭)들은 레지스터전송 수준으로 존재할 수도 있다. The design of a particular object in a small number GL model for the same reason (such as a block of memory that does not generate a net list of a gate level logic composition) may be present as a register transfer level. 따라서 본 특허에서 "특정 추상화 수준의 모델" 이라고 하면 ESL에서부터 GL에까지 점진적 구체화 과정에서 존재할 수 있는 다양한 추상화 수준들(ESL, RTL, GL 추상화 수준뿐만 아니라 이들의 혼합된 형태의 추상화 수준들인 ESL/RTL 혼합된 추상화 수준, RTL/GL 혼합된 추상화 수준, ESL/RTL/GL 혼합된 추상화 수준 등도 모두 포함하는 추상화 수준들)에서 존재하는 설계 대상이 되는 어떠한 형태의 모델들 중에 하나를 특정하는 명칭이고, 일반적으로 지칭되어지는 “추상화 수준”이라고 하면 ESL, RTL, GL 뿐만 아니라 ESL에서부터 GL에까지 점진적 구체화 과정에서 존재할 수 있는 다양한 추상화 수준들(예로, ESL/RTL 혼합된 추상화 수준, RTL/GL 혼합된 추상화 수준, ESL/RTL/GL 혼합된 추상화 수준 등)도 모두 포함되는 명칭임을 강조해 둔다. Therefore, in the present patent Speaking "of a particular level of abstraction model" of various levels of abstraction that may be present in the progressive elaboration process from ESL far GL (ESL, RTL, GL levels of abstraction which are well abstraction level of the mixture of these ESL / RTL and identifying the one of the mixed abstraction level, RTL / GL mixed levels of abstraction, ESL / RTL / GL of the level of abstraction to include any mixed level of abstraction) is present in any form model that is the design target in the name, Speaking of "levels of abstraction" in general that a is referred to the various levels of abstraction that may be present in the progressive elaboration process far ESL, RTL, GL as well as from ESL GL (for example, ESL / RTL mixed abstraction level, RTL / GL mixed abstraction level, ESL / RTL / GL mixed levels of abstraction, etc.) that also puts emphasis on the name to be included. 예로서, DUV 내부에 4개의 설계객체 A, B, C, D가 서브모듈로서 존재하고 A와 B는 ESL, C는 RTL, 그리고 D는 GL 추상화 수준에서 구술됨으로서 DUV가 ESL/RTL/GL이 혼합된 형태의 추상화 수준 모델이라고 하더라도 이 DUV는 특정 추상화 수준의 모델이라고 지칭할 수 있다 (일반적으로 이 경우에는 추상화 수준이 제일 높은 수준에 맞추어 이야기하는 것으로 하기로 함. 즉 ESL/RTL이 혼합된 형태의 모델을 특정 추상화 수준의 모델이라고 지칭하는 경우에는 RTL 모델이라 하지 않고 ESL 모델이라 함. 또 다른 예로 untimed-트란젝션/timed-트란젝션이 혼합된 모델을 특정 추상화 수준의 모델이라고 지칭하는 경우에는 timed-트란젝션 모델이라 하지 않고 untimed-트란젝션 모델이라함). By way of example, are four design objects A, B, C, D within the DUV present as a sub-module, and the A and B is ESL, C is RTL, and D is GL by being spoken in the level of abstraction DUV the ESL / RTL / GL It agreed to that, even if that level of abstraction, the model of the mixed form of the DUV story can be referred to as a model of a particular level of abstraction (usually in this case, the level of abstraction is tailored to the highest level, ie ESL / RTL mixed If you refer to a model of the form as the model of a certain level of abstraction, the term ESL model is not called RTL model. another example is the rejection untimed- Tran / timed- Tran rejection is mixed models if you are referred to as models of a particular level of abstraction It has referred untimed- Tran projection model is not as timed- Tran projection models). 뿐만 아니라, 구체적으로 ESL/RTL/GL이 혼합된 모델 내지는 ESL/RTL이 혼합된 모델 내지는 untimed-트란젝션/timed-트란젝션이 혼합된 모델이라고 구체적으로 지칭하는 것도 가능하다. In addition, it is also possible to specifically referred to as specifically ESL / RTL / GL a model naejineun ESL / RTL is a mixture model naejineun mixed untimed- projection Tran / Tran timed- projection, a mixed model. 앞으로, 추상화 수준이 혼합된 형태의 모델의 경우에 추상화 수준이 혼합된 형태임을 분명하게 이야기할 필요가 있는 경우에는 추상화 상위/하위 혼합수준 모델, 또는 추상화 혼합수준 모델이라 칭하기로 하지만, 일반적으로 특정 추상화 수준의 모델이라 함은 해당 특정 추상화 수준보다 낮은 추상화 수준으로 구술된 1 이상의 설계객체를 부분적으로 가지고 있는 모델도 포함되는 것으로 생각한다. In future, be referred to as a level of abstraction in this case it is necessary to speak clearly that the level of abstraction mixing in the case of the model of the mixed form types are abstractions of parent / child mixed level models, or abstractions mixed level models, usually specific as the model of abstraction levels are also thought to include models that take part in the one or more design objects dictated by the low level of abstraction than that particular level of abstraction.

ESL에서 중요한 개념인 트란젝션(transaction)이란 RTL의 시그널 또는 핀(pin)과 대응되는 개념으로 시그널 또는 핀 상에서 나타내어지는 정보는 비트 또는 비트벡터로만 표현되어질 수 있는 것임에 반하여서, 트란젝션은 논리적 연관성이 있는 복수개의 시그널들 또는 핀들을 하나의 단위로서 정의하여서 나타내어지는 정보를 의미하며, 정보의 전달은 함수호출(function call)을 이용한다. Important concepts of tran projection (transaction) is the information indicated on the signal or pin signal or pin as a concept corresponding to the (pin) of the RTL from the ESL is hayeoseo half will which can be expressed as pure vector bit or bits, Tran projection is logical It means information that is hayeoseo defining a plurality of signals, or pins that are associated as a unit shown and the transmission of information is used in the function calls (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)) 등과 같이 의미 해석이 가능한 심벌로서 나타낼 수 있는데, 이와 같은 것을 트란젝션이라 칭한다. For example there is always the address signal N- bits, the logical relationship of the data signal M- bit, the control signal configured P- bits Total (N + M + P) of signals which are configured in the design of any of the processor modules and the random memory module with N- bit address bus, M- bit data bus, P- bits every cycle When a control bus (N + M + P) in place of the binary vector means the analysis is difficult to be composed of a bit vector READ (ADDR (address_value ), 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 ( It may indicate a possible symbol, such as a semantic analysis data_value)), that this projection is referred to as a Tran. 또한 트란젝션은 하나의 사이클 단위에서 뿐만 정의될 수 있을 뿐만 아니라(이를 단일사이클 단위의 트란젝션(cycle-accurate transaction)이라 칭하기로 하고, ca-트란젝션으로 약칭한다), 여러 사이클 단위로도 확장되어져서 정의되는 트란젝션(이를 여러사이클단위의 트란젝션(timed transaction 또는 cycle-count transaction 또는 PV-T transaction 또는 cycle-approximate transaction 등 여러 명칭으로 불림)이라 칭하기로 하고, 본 특허에서는 timed-트란젝션으로 단일명으로 약칭한다)도 있을 수도 있다 (이와 같이 여러 사이클 단위에서 정의되는 timed-트란젝션은 Transaction_name(start_time, end_time, other_attributes)로 표현되어질 수 있다). Further rejection is a tran only as may be defined in units of cycles as (and in this, referred to as a dextran rejection (cycle-accurate transaction) of the single cycle unit, and abbreviated as ca- dextran rejection), also extends to multiple cycle unit It is referred to as a dextran rejection (called them as many names such as the number of cycle units Tran projection (timed transaction or cycle-count transaction or PV-T transaction or cycle-approximate transaction) that is so defined, and in this projection, the Tran patent timed- as it may be also abbreviated as a single name) (Thus timed- Tran projection which is defined in several cycles unit (start_time, end_time, other_attributes Transaction_name) can be expressed as). 또한 트란젝션은 시간개념이 없는 트란젝션(이를 untimed-트란젝션으로 약칭함)까지도 포함한다. Tran also includes projection, even (abbreviated as it untimed- Tran rejection) Tran rejection no concept of time. 사실 트란젝션에 대한 표준화된 일관된 정의는 없으나, 위에서 설명한 것과 같이 untimed-트란젝션, timed-트란젝션, ca-트란젝션으로 나누는 것이 제일 일반적이다. But the fact is consistent with the defined standards for Tran rejection, it is usually best to divide untimed- Tran rejection, timed- Tran rejection, ca- Tran rejection, as described above. 이와 같이 트란젝션 내에서도 추상화 수준에 따라서 추상화 수준이 제일 높지만 시간정확성이 제일 낮은 untimed-트란젝션에서부터 추상화 수준이 제일 낮지만 시간정확성이 제일 높은 ca-트란젝션, 그리고 추상화수준과 시간정확성이 이들의 중간수준이 timed-트란젝션으로 나누어 질 수 있다. Thus, according to Tran levels of abstraction within the abstraction level of rejection is high, but the best time accuracy from the lowest untimed- Tran rejection only low levels of abstraction best time accuracy is the highest ca- Tran rejection, and the level of abstraction and time accuracy of these intermediate this level can be divided into timed- Tran rejection.

구체화 과정은 점진적 방식으로 일어남으로서 VP에 존재하는 트란젝션 수준의 설계객체들이 단계적으로 구체화를 위한 변환 과정을 통하여서 최소한 비트수준의 사이클 정확도를 가지는(bit-level cycle-accurate) RTL 수준의 설계객체들로 바뀌어지게 된다. The concrete course is designed objects of dextran rejection levels present in the VP as occurs in a gradual manner to gradually tonghayeoseo the conversion process for embodying at least with cycle accuracy of the bit depth (bit-level cycle-accurate) RTL level design objects It will be changed to. 이와 같은 변환 과정의 마지막에는 VP에 존재하는 모든 트란젝션 수준의 설계객체들이 RTL 수준의 설계객체들로 변환되어져서 존재하게(따라서 트란젝션 수준 VP가 구현가능한 RTL 모델로 변환되게) 된다. End of this conversion is all that is tran design object of rejection levels are present so it is converted into a design object in the RTL level (and thus be a dextran rejection level VP convert implementable RTL model) present in the VP. 또한 구현가능한 RTL 모델에 존재하는 RTL 수준의 설계객체들이 단계적으로 구체화를 위한 변환 과정을 통하여서 비트수준의 타이밍 정확도를 가지는(bit-level timing-accurate) 게이트 수준의 설계객체들로 바뀌어지게 된다. Also it is replaced with implementable RTL model (bit-level timing-accurate) design objects of the gate level design object in the RTL level are gradually tonghayeoseo the conversion process for the embodiment with a timing accuracy of the bit-level present in the. 이와 같은 변환 과정의 마지막에는 RTL 모델에 존재하는 모든 RTL 수준의 설계객체들이 게이트 수준의 설계객체들로 변환되어져서 존재하게(따라서 RTL 모델이 게이트 수준 모델로 변환되게) 된다. The end of this process there is conversion (RTL model presented is therefore converted into a gate-level model), there exist all the design objects of the RTL level so that it is converted into a design object in the gate level to the RTL model. 도14 는 이와 같은 과정을 예로서 보여주고 있다. Figure 14 illustrates such a process as an example. 트란젝션 수준 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)로 변환된다. Tran rejection level DUV the sub-block in the (ESL) 4 Tran projection level of the design object DO_esl_1, DO_esl_2, DO_esl_3, if you have a DO_esl_4, four Tran rejection level design objects step by step to gradually refine the process as roughness RTL level as to the design of the replacement object DO_rtl_1, DO_rtl_2, DO_rtl_3, DO_rtl_4 is finally converted to a register transfer level DUV (RTL) consisting only of the design of RTL-level objects DO_rtl_1, DO_rtl_2, DO_rtl_3, DO_rtl_4. 또한, 레지스터전송수준 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)로 변환된다. In addition, the register transfer level DUV (RTL) if the sub-block has four design object DO_rtl_1, DO_rtl_2, DO_rtl_3, DO_rtl_4 within, the four RTL design objects of the gate level as rough a progressive elaboration process step-by-step design object DO_gl_1, DO_gl_2, as replaced with DO_gl_3, DO_gl_4 is finally converted to gate level DUV (GL) which is composed only of the gate level design object DO_gl_1, DO_gl_2, DO_gl_3, DO_gl_4.

SOC 설계에서는 설계되어져야 하는 대상이 두 가지가 있는데, 그 하나는 DUV(Design Under Verification)이고, 또 다른 하나는 DUV를 시뮬레이션하기 위한 테스트벤치(testbench, 앞으로는 이를 TB로 약칭함)이다. There are two targets to be designed in the SOC design, one is a (Under Design Verification) DUV, and the other is a test bench (hereinafter this testbench, in the future, TB) for simulating the DUV. DUV는 궁극적으로 반도체 제조 공정을 거쳐서 칩으로 만들어지는 설계 대상이고, 테스트벤치는 구현된 해당 칩이 장착되어서 동작하는 주변상황을 모델링한 것으로서 DUV의 시뮬레이션에 사용된다. DUV is ultimately targeted design made of a chip through a semiconductor manufacturing process, the test bench is modeled as the circumstances that this operation be implemented in the chip mounting is used for the simulation of the DUV. DUV를 시뮬레이션 하는 경우에 테스트벤치가 DUV에 입력을 인가하고 인가된 입력으로 DUV에서 출력되는 결과를 받아들여서 처리하는 것이 일반적이다. It is common to the test bench processing must yield to the result outputted from the DUV to the input applied to the DUV and an applied input in the case of simulating the DUV. 이들 DUV와 테스트벤치는 일반적으로 계층적인 구조로 내부에 다양한 1 이상의 하위모듈들을 가지고 있는데, 이들 하위모듈 각각을 설계 블록이라고 할 수 있고, 설계 블록 내부에는 설계 모듈들이 존재하고, 설계 모듈 내부에는 서브모듈들이 존재한다. These DUV the test bench is there generally have a variety of one or more sub-modules inside a hierarchical structure, and can be described as these sub-modules, each of the design blocks, the design block inside the design modules are present, and design module inside the sub there are modules. 이와 같은 설계 블록들, 또는 설계 모듈들, 또는 서브모듈들이나 DUV, 그리고 테스트벤치 각각 또는 일부분 또는 이들의 조합들 또는 이들의 조합들의 일부분을 모두 본 특허에서는 설계객체(design object)들 (구체적 예로는, Verilog의 경우에는 module, VHDL인 경우에는 entity, SystemC의 경우에는 sc_module들이 모두 설계객체의 일 예임)이라고 지칭하기로 한다. This design blocks, or design modules, or sub-modules or DUV, and the test bench of this patent the design object (design object) both a portion of each or a part or combinations thereof, or combination thereof (specific examples are , in the case of Verilog has to be referred to as a module, VHDL, if the case of the entity, SystemC has foreordained sc_module are all one of the design objects). 따라서 VP도 설계객체의 하나로 볼 수 있으며, VP의 일부분 또는 VP내의 1 이상의 설계 블록들 또는 설계 블럭들의 일부분 또는 이 블록 내부의 설계 모듈들 또는 이들의 일부분 또는 이 설계 모듈 내부의 서브모듈들 또는 이들의 일부분 등도 모두 설계객체로 볼 수 있다 (즉 DUV와 TB의 전체 또는 DUV와 TB 내부의 임의의 부분을 모두 설계객체로 볼 수 있다). Thus VP also be viewed as one of the design object, and, within a portion or a block of a portion or at least one design blocks or design block in the VP of the VP design modules, or a portion or the design module inside the sub-module thereof are all part of the like to see the design object (that is both a full or DUV with any portion of the internal TB of DUV and TB can be considered as a design object).

그러나, 이와 같은 현재의 점진적 구체화를 통한 설계에서는 추상화 상위수준에서의 검증이 매우 빠르게 수행될 수 있으나 추상화 하위수준에서의 검증은 상대적으로 느리게 수행되어짐으로 점진적 구체화 과정을 통하여 추상화 하위 단계로 진행될수록 검증 속도가 크게 떨어지는 문제점이 있다. However, In such a design through the current progressive elaboration of the verification of abstraction higher level can be carried out very quickly, but verification of abstraction lower levels slows progression to abstraction sub-step through the progressive elaboration process is relatively slow perform doeeojim verification there is a significant drop speed issues. 일반적인 단일 시뮬레이션 방식(본 특허에서 단일 시뮬레이션 방식이란 넓은 의미로 정의되어져서 1개의 시뮬레이터를 사용하는 경우에 뿐만 아니라, 2 이상의 시뮬레이터를 사용하는 경우(예로 Verilog 시뮬레이터와 Vera 시뮬레이터를 동시에 사용하는 경우)라도 이 2 이상의 시뮬레이터를 하나의 CPU 상에서 수행시키는 것을 단일 시뮬레이션 방식으로 정의함)에 대비하여서, 검증 속도를 높이는 방법으로 2 이상의 시뮬레이터들을 분산병렬(distributed parallel) 방식으로 실행시키는 방법이 있다. Typical single simulation method (single simulation method is a method in which if so defined in a broad sense as well as in the case of using a single simulator, using at least two simulators (e.g. if using a Verilog simulator and Vera simulator at the same time in the present patent) any hayeoseo preparation for defining the two or more simulators in a single simulation method to that performed on a single CPU), a method for executing the (distributed parallel distributed parallel two or more simulators) method as a way to increase the verification rate. 이 시뮬레이터의 일 예로들로는 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 시뮬레이터 등이 있음) 시뮬레이터들이 있다. As an example of the simulator include (which include Hardware Description Language, Cadence's NC-Verilog / Verilog-XL and X-sim, Synopsys Inc. VCS, Mentor's ModelSim, Aldec's Riviera / Active-HDL, Fintronic's FinSim) HDL simulator or HVL (such that the System Description Language, SystemC simulator, Cadence's Incisive simulator) (Hardware Verification Language, Cadence's e simulator, such as that of Synopsys Vera simulator) simulator or simulators there are SDL. 또 다른 구분으로는 이벤트-구동(event-driven) 시뮬레이터 또는 사이클-기반(cycle-based) 시뮬레이터들이 있는데, 본 특허에서 언급하는 시뮬레이터들은 이들 시뮬레이터들을 모두를 가르킨다. Further divided into an event-driven (event-driven) or the simulator cycle There are based (cycle-based) simulator, the simulator as referred to in this patent are the points to all these simulators. 따라서 2 이상의 시뮬레이터들을 사용하는 경우에는 상기에서 언급된 어떤 종류의 시뮬레이터들을 이용할 수 있을 뿐만 아니라, 이들 다른 종류의 시뮬레이터를 자유롭게 혼용하여 사용할 수 있다. Therefore, when using two or more simulators, as well as make use of some type of simulator mentioned above, it may be used by mixing these different types of simulators freely. 시뮬레이션의 분산수행(distributed processing) 방식인 분산병렬 시뮬레이션(distributed parallel simulation) (혹은 병렬분산 시뮬레이션(parallel distributed simulation)이라고도 하거나 간략히 병렬 시뮬레이션(parallel simulation)이라고도 하는데, 본 특허에서는 분산병렬 시뮬레이션이라 명칭함)은 제일 일반적인 병렬시뮬레이션 방식으로 시뮬레이션 대상이 되는 DUV와 TB(즉 특정 추상화 수준의 모델)를 2 이상의 설계객체들로 나누어서 이들 나누어진 각각의 설계객체를 별도의 시뮬레이터에 분산시켜서 수행시키는 방식이다 (도 5 참조). Performing dispersion of the simulation (distributed processing) scheme, distributed parallel simulation (distributed parallel simulation) (or also called parallel distributed simulation (parallel distributed simulation), also known as or fewer parallel simulation (parallel simulation), also in the present patent names as distributed parallel simulation) is the most common parallel simulation method to simulate the target is DUV and TB is a scheme of performing dispersing each design object divided by the design (ie a particular level of abstraction model) two or more objects divided these in a separate simulator (FIG. 5). 따라서 분산병렬 시뮬레이션을 위해서는 시뮬레이션 대상이 되는 모델을 2 이상의 설계객체들로 나누는 분할(partition) 과정이 필요하다. Therefore, this division (partition) the process of dividing the model into two or more designs are simulated target object is required for distributed parallel simulation. 따라서 본 특허에서는 분할 과정을 통하여 특정 로컬시뮬레이션(추후에 정의됨)에서 수행되어져야 하는 설계객체를 로컬설계객체라 칭하기로 한다. In this patent, and the design object through the segmentation process should be performed in a specific local simulation (as defined later) is referred to as a local design object.

최근에는 기가비트 이더넷 등의 고속의 컴퓨터네트워크로 2 이상의 컴퓨터들을 연결하고 이들 각각의 컴퓨터 상에서 시뮬레이터를 수행(본 특허에서는 이들 분산병렬 시뮬레이션을 가능하게 하는 2 이상의 시뮬레이터들 각각의 시뮬레이터에서 수행되는 시뮬레이션을 로컬시뮬레이션이라 칭하고, 해당 시뮬레이터를 로컬시뮬레이터라고 칭한다)하거나, 또는 2 이상의 중앙처리장치(CPU)를 장착한 멀티프로세서 컴퓨터(예로, 펜티움 듀얼코어 칩과 AMD 듀얼코어 칩은 프로세서코어가 2개로 이를 이용하여도 멀티프로세서 컴퓨터를 구성할 수 있으며 1 이상의 시스템보드 상에 여러개의 CPU 칩들을 장착하여서도 멀티프로세서 컴퓨터를 구성할 수 있음)에서 이들 각각의 CPU 상에서 시뮬레이터를 수행시킴으로서 분산병렬 시뮬레이션을 수행하는 것이 가능하 Recently, a local simulation connected to two or more computers in a high-speed computer networks, such as Gigabit Ethernet and perform a simulation on each of the computer thereof (the patent, carried out in each of the simulator of two or more simulators for enabling these distributed parallel simulation referred to as simulation, the simulator is called a local simulator), or computer (e.g. a multi-processor equipped with two or more central processing unit (CPU), a Pentium dual core chip and AMD dual core chip by using this, the processor core is in two also possible to carry out a multi-processor to configure the computer, perform the simulation on each CPU thereof in may be constructed a multi-processor computer hayeoseo mounting the multiple CPU chip on the at least one system board) by dispersing parallel simulation and 다. All. 그러나, 이와 같은 통상적인 분산병렬 방식을 통한 시뮬레이션은 시뮬레이터들 간의 통신 오버헤드 및 동기 오버헤드(communication overhead and synchronization overhead)로 인하여 성능 향상이 매우 제약적이라는 문제점이 있다. However, there is such a conventional Distributed Simulation via a parallel simulator is in communication between the overhead and synchronization overhead (communication overhead and synchronization overhead) to the problem of improving performance is very limited due. 분산병렬 시뮬레이션에서의 동기화 방법은 크게 두가지가 있는데 하나는 보수적(conservative) 방식(혹은 비관적 방식이라고도 함)이고 또 다른 하나는 낙관적(optimistic) 방식이다. Synchronization method in a parallel distributed simulation there are two significant one is conservative (also known as a method or pessimistic) (conservative) method and another one is optimistic (optimistic) method. 보수적 방식의 동기화는 시뮬레이션 이벤트의 전후 인과관계(causality relation)가 시뮬레이터들 간에서도 반드시 유지됨으로서 롤백(roll-back)이 필요하지 않으나 분산병렬 시뮬레이션의 속도가 제일 느린 로컬 시뮬레이션으로 한정되어진다는 문제점과 과도한 동기화가 일어나는 문제점이 있고, 낙관적 방식의 동기화는 시뮬레이션 이벤트의 전후 인과관계가 시뮬레이터들간에 일시적으로 유지되지 못하게 될 수 있고 이를 수정하기 위한 롤백이 필요함으로서 전체의 롤백의 횟수를 줄이는 것이 분산병렬 시뮬레이션의 성능에 큰 영향을 미치게 된다. Synchronization of conservative manner rolls (roll-back) this is not required, but the speed of distributed parallel simulation is limited to the slowest local simulation problem as by being be maintained between the front and rear causation of simulation events (causality relation) simulator and there is a problem that excessive synchronization occurs, the synchronization of the optimistic approach is that before and after the causality of the simulation events to be able to be temporarily held in the simulator between and is distributed parallel simulation to roll back to reduce the number of times of the entire rolled back by need to modify them It is in effect a huge impact on performance. 그러나 지금까지의 낙관적 방식에 의한 분산병렬 시뮬레이션에서는 각 로컬 시뮬레이션이 다른 로컬 시뮬레이션들과의 동기화 과정 없이 진행하는 시뮬레이션 시점들이 롤백이 일어나는 것을 최소한으로 되도록 특별하게 고려되어진 것이 아님으로 인하여 과도한 롤백을 초래하게 되는 결과를 초래함으로서 전체 시뮬레이션의 성능을 크게 떨어뜨리게 한다. However, the distributed parallel simulation by the optimistic approach until now due to not to been considered so special that a minimum to simulate the time to rollback occurs that each local simulation proceeds without syncing process with other local simulation will result in excessive rollback by the results in tteurige significantly degrade the performance of the overall simulation. 통상적인 낙관적 방식의 분산병렬 시뮬레이션이나 보수적 방식의 분산병렬 시뮬레이션의 구체적 수행방법 및 구현방법은 여러 문헌들 또는 논문들로 이미 잘 알려져 있음으로 본 특허에서 이의 자세한 설명은 생략하기로 한다. Conventional concrete implementation of the parallel distributed simulation of optimistic approach parallel distributed simulation or conservative approach of the method and implementation method thereof, a detailed description in this patent as that well known in the literature, or paper will be omitted. 단, 한가지 더 언급할 것은 분산병렬 시뮬레이션을 수행하는 프로세서들의 수는 분산병렬 시뮬레이션의 성능을 최대한으로 하기 위해서는 로컬 시뮬레이션의 수와 같게 하는 것이 바람직하지만, 프로세서들의 수가 2 이상(즉, 2 이상의 컴퓨터가 네트워크로 연결되어 있거나 또는 멀티프로세서 컴퓨터에 프로세서가 2 이상)만 된다면 로컬 시뮬레이션의 수가 2 보다 많다고 하더라도 2 이상의 로컬 시뮬레이션을 하나의 프로세서로 수행하게 함으로서 이와 같은 경우에도 분산병렬 시뮬레이션이 가능하다는 것이다. However, one more thing to mention the number of processors to perform a distributed parallel simulation is preferably equal to the number of the local simulation to the performance of a distributed parallel simulation as much as possible, but the number of the processors of two or more (i.e., two or more computer that it is connected to the network, or if only a multi-processor computer processor is 2 or more) can be distributed parallel simulation even if even if the number of the local simulation Having greater than 2 such as this, by performing two or more of the local simulation a processor. 결론적으로, 현재의 보수적 방식의 동기화 방법과 통신 방법이나 낙관적 방식의 동기화 방법이나 통신 방법들 모두 2 이상의 시뮬레이터들을 이용한 분산병렬 시뮬레이션의 성능을 크게 떨어뜨리는 제약 요소가 되는 문제점이 있다. Consequently, the current conservative method of synchronization with the communication method and the optimistic mode of the synchronization method and the communication method are all problems that have constraints break significantly affect the performance of the parallel distributed simulation using two or more simulators.

뿐만 아니라, 점진적 구체화 과정을 통한 설계에서는 추상화 상위 수준의 모델이 추상화 하위 수준의 모델의 레퍼런스 모델(reference model)의 역할을 수행하는 것이 매우 중요한데 이와 같이 레퍼런스 모델의 역할을 수행하기 위해서는 추상화 상위 수준의 모델과 추상화 하위 수준의 모델간의 모델 일관성(model consistency)을 유지시키는 것이 필요하다. In addition, the design through the progressive elaboration process of a model of abstraction higher level, it is very important that the role of the reference model (reference model) model of abstraction lower level in order to thus act as a reference model of abstraction higher level it is necessary to maintain a consistent model and the abstract model (model consistency) between the lower-level model. 그러나, 현재의 점진적 구체화 방법에서는 이들 다른 추상화 수준들에서 존재하는 2 이상의 모델들간의 모델 일관성을 유지시키는 효과적인 방법이 없다. However, the method embodied in the present progressive is no effective way to maintain a model of consistency between two or more models that exist in these different levels of abstraction.

뿐만 아니라, 점진적 구체화 과정을 통한 설계 과정에서 발견되는 설계오류들을 제거하는 디버깅(하드웨어 디버깅 또는 소프트웨어 디버깅) 과정이 체계적이지 못함으로 인하여서 매우 많은 시간이 소요되는 문제점이 있다. In addition, there is a problem that is very time consuming because of the debugging server (hardware or software debugging, debugging) does not have a systematic process designed to remove the errors found in the design process through the progressive elaboration process.

본 발명에서는 시스템 수준에서의 트란젝션 수준 모델(앞으로 이를 ESL 모델이라 약칭함)에서부터 시작하여 점진적 구체화 과정을 통한 설계로 구현가능한 레지스터전송 수준 모델(앞으로 이를 RTL 모델이라 약칭함)을 얻고, 다시 구현가능한 RTL 모델에서부터 점진적 구체화 과정을 통한 설계로 게이트 수준 모델(앞으로 이를 GL 모델이라 약칭함) (GL 모델은 배치 & 배선 과정을 수행할 수 있는 특정 구현라이브러리의 셀들의 연결구조를 표현한 게이트수준 네트리스트임)을 얻는 ESL-to-Gate 설계 과정을 크게 나누어서 두 단계로 보기로 한다. In the present invention, to obtain a (hereinafter referred to as RTL model forward) Tran rejection level model (forward this ESL model as abbreviated hereinafter) from the progressive elaboration process registers the transport level, the model implemented in the design by starting at the system level, implemented again available with design through progressive elaboration process from RTL model gate-level models (hereinafter referred to as GL model forward) (GL model is gate level net representation of the cell connection structure of a specific implementation of a library that can do the placement and wiring process list Im) greatly dividing the ESL-to-Gate design process, to get it into view in two stages. 우산 첫 번째 단계는 ESL 모델에서부터 RTL 모델을 구체화 시키는 과정으로 이를 ESL-to-RTL 설계 과정이라 칭하기로 한다. Umbrellas The first step will be referred to this ESL-to-RTL design process, a process that embodies the RTL models from the ESL model. 두 번째 단계는 RTL 모델에서부터 GL 모델을 구체화 시키는 과정으로 이를 RTL-to-GL 설계 과정이라 칭하기로 한다. The second step will be referred to as a process, it RTL-to-GL design process that embodies the GL model from the RTL model. 또한 이들 점진적 구체화 과정 상에서 다양한 추상수준들에서 존재하는 복수개의 다양한 모델들을 본 특허에서는 “상이한추상수준 동일모델”들이라 통칭하기로 한다. In addition, this plurality of different models that exist in a variety of level of abstraction over these progressive elaboration process patents will be collectively referred to wandering "different level of abstraction, the same model."

일반적으로 추상화 상위 수준의 모델을 추상화 하위 수준의 모델로 구체화시키는 과정에 있어서 추상화 상위 수준의 모델 MODEL_DUV(HIGH)과 추상화 하위 수준의 모델 MODEL_DUV(LOW) 모두에 일정한 정도로 동일한 또는 유사한 계층구조가 존재하고 있도록 하는 것이 매우 중요하다 (도 3과 도 4 참조). In general abstraction in the model of a higher level in the process of embodying a model of abstract lower level of abstraction higher-level model MODEL_DUV (HIGH) and the abstraction of the low-level model MODEL_DUV (LOW) all have the same or a similar layer structure to some degree exist in, and it is very important that (see Fig. 3 and 4). SOC 설계에서는 설계 대상이 되는 DUV의 복잡도가 매우 높음으로 이와 같이 다른 추상화 수준들에서의 모델들이 계층 구조의 최상위에서부터 최하위까지에서 일정한 정도로 동일한 또는 유사한 계층구조를 일반적으로 자연스럽게 가지고 있게 된다. The SOC design is possible to have naturally the same or a similar hierarchy to some degree in the hierarchy from the model are in different levels of abstraction complexity is thus a very high DUV top of which is designed to target the lowest general. 우선, 이와 같이 동일한 또는 유사한 계층구조를 최상위수준에서부터 일정한 수준까지 가지고 있게 되면, 이들 다른 추상화 수준의 모델들내에 존재하는 1 이상의 설계객체들간에도 DUV와 동일하게 모델들 간에 대응되는 설계객체들이 존재하게 되는데 이와 같은 상황은 추상화 수준이 ESL 모델과 RTL 모델 사이와 RTL 모델과 계층구조를 허물지 않은 게이트수준 모델 사이에서 일반적으로 존재한다. First, as there are design object corresponding to this way between the same or a similar hierarchy when they become have to a certain level from the highest level, as in the DUV even between these different levels of abstraction present in the model of at least one design object model there is such a situation is present in generally between levels of abstraction model and the ESL RTL RTL model between the model and the hierarchy that are not fault gate level model. 그리고, 게이트수준에서 바운더리스캔(boundary scan) 구조를 삽입하고 혹은 수작업설계 과정등에 의하여 게이트수준 모델의 계층구조가 RTL 모델의 계층구조와 약간 달라질 수는 있지만 계층구조가 크게 달라지는 것은 아님으로 이와 같은 경우에도 게이트수준 모델의 계층구조와 RTL 모델의 계층구조는 극히 유사함으로 인하여 이들 계층구조하에서 존재하는 상위 추상화 수준에서의 설계객체와 대응되는 하위 추상화 수준에서의 설계객체를 쉽게 찾을 수 있다. Then, when at the gate level of insert boundary scan (boundary scan) structure, or a hand-design process, the layer structure of a gate-level model can slightly differ from the hierarchical structure of the RTL model by the like, but as this as but not the hierarchy differs greatly in the hierarchy of the hierarchical RTL and gate-level models of the model you can easily find a design object in the lower level of abstraction that is due by the design very similar to the corresponding objects in the upper level of abstraction that exists under these hierarchies. 뿐만 아니라, 게이트수준 모델이 논리합성과정에서 계층구조를 보존하지 않도록 진행된 경우에도 게이트수준 모델에 존재하는 설계객체명(인스턴스명)들이 대응되는 RTL 모델의 설계객체에 대한 정보를 가지고 있음으로 이와 같은 경우에도 상위 추상화 수준에서의 설계객체와 대응되는 하위 추상화 수준에서의 설계객체를 쉽게 찾을 수 있다. In addition, with the information on the design objects in the RTL model is a gate-level model design object name existing in the gate-level model, even when conducted not to preserve the hierarchy in the logic synthesis process (an instance name) that corresponds to that in this even if you can easily find a design object in the lower level of abstraction that corresponds to the design of objects in the upper levels of abstraction. 따라서, 본 특허에서는 이와 같이 다른 추상화수준에서 존재하는 모델들이 계층구조 상에서 최상위수준에서부터 일정한 수준까지 일정한 정도로 동일한 계층구조를 유지하고 있거나, 추상화 상위수준 모델에 존재하는 설계객체를 추상화 하위수준 모델에 존재하는 설계객체들에 대응(이를 부분계층대응관계라 칭하기로 함)시킬 수 있다고 가정한다. Thus, the presence of the design object that the present patent, or are thus maintaining the same hierarchy so constant up to a certain level from the highest level on the models hierarchy that exists in different levels of abstraction, present in the abstract high-level model in abstract lower level model correspond to the design object that is assumed that (hereinafter referred to as section layer corresponding relationship) can. 예로, 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과 대응된다. For example, in the TLM model DUV (TLM) 4 of design blocks B (1) _tlm, B (2) _tlm, B (3) _tlm, B (4) _tlm is valid, and through the progressive elaboration process from the DUV (TLM) there is a case of designing a DUV (RTL) as designed DUV (RTL) Figure 4 design blocks B (1) in the _rtl, B (2) _rtl, B (3) _rtl, B (4) _rtl, and B ( 1) _tlm is corresponding to the B (1) _rtl B (2) _tlm correspond to B (2) _rtl and B (3) _tlm is corresponding to the B (3) _rtl B (4) _tlm is B (4) it corresponds with _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과 대응된다. Also in another example RTL model DUV (RTL) 4 of design blocks B (1) _rtl, B (2) _rtl, B (3) _rtl, B (4) _rtl is valid, and designed with progressive elaboration process from the RTL model as a design for DUV (GL), and if added are Boundary Ranges scan cells in the process in a hierarchy that exists on the gate level B (0) _gl, B (1) _gl, B (2) _gl, B (3) _gl, if the B (4) _gl is B (1) _gl correspond to B (1) _rtl and B (2) _gl is corresponding to the B (2) _rtl B (3) _gl is B (3) _rtl and response and B (4) _gl corresponds to B (4) _rtl. 따라서 점진적 구체화 과정을 통한 설계는 이들 추상화 상위수준 모델에 존재하는 1 이상의 설계객체들이 추상화 하위수준 모델에 존재하는 설계객체들로 변환되어지는 과정이다. Therefore, the design with progressively refine the process is a process these abstracts one or more design objects in a higher-level models that are converted to the design objects in the lower-level abstraction model. SOC 설계에서 이와 같은 설계객체들의 예들로는 RISC 프로세서코어, DSP 프로세서코어, 메모리블럭, MPEG 디코더블럭, JPEG 디코더블럭, MP3 디코더블럭, 이더넷 코어, PCI-X 코어, DMA 콘트롤러블럭, 메모리 콘트롤러블럭 등이 있으며 일반적으로 매우 복잡한 기능을 수행하는 설계블록들이 된다. The examples of such a design object in SOC designs include RISC processor cores, DSP processor core and memory blocks, MPEG decoder block, JPEG decoder block, MP3 decoder block, Ethernet core, PCI-X core, the DMA controller block, the memory controller blocks etc. and it is designed to block that typically perform very complex functions.

따라서 이들 DUV 내의 설계객체들 각각을 구체화시키는 과정에는 여러 설계자들이 참여하여 병렬적으로 진행하게 되는데, 설계자들의 개개 능력과 경험에 따라서 그리고 설계객체의 난이도에 따라서 개개의 설계객체들을 구체화시키는 과정에 소요되는 시간도 일정하지가 않게 된다. Therefore, it takes a process that embodies the individual design objects according to their courses to incorporate each of the design objects in DUV are there is to proceed in parallel by multiple designers to participate, depending on the individual designers' skills and experience and the difficulty of design objects time may be not a non-uniform. 이와 같은 구체화 과정은 설계자의 노하우에 크게 의존하는 매뉴얼 방식으로 진행될 수도 있으며, 상위수준 합성툴(예로 Forte Design사의 Cynthesizer 혹은 Mentor Graphic사의 Catapult C 등) 또는 논리수준 합성툴(예로 Synopsys사의 DesignCompiler 혹은 Synplicity사의 Synplify 등) 등을 이용하는 자동화된 방식으로 진행될 수 있다. This embodied process can also proceed in the manual method, which largely depends on the designer's know-how, high-level synthesis tools (e.g. Forte Design's Cynthesizer or Mentor Graphic's Catapult C, and so on) or a logical-level synthesis tools (e.g. Synopsys Inc. DesignCompiler or Synplicity's Synplify, etc.) can be carried out in an automated manner using, etc. 그런데, 구체화 과정의 최종 단계에서는 구체화된 특정 설계객체가 올바르게 구체화되어졌는지를 검증하여야 하는데, 다른 설계객체들은 아직 구체화가 완료되지 않은 상황에서 특정 설계객체 B(i)_refined의 구체화가 올바르게 이루어졌는가를 효과적으로 검증하는 방법은 추상화 상위수준에서 이미 존재하고 있는 상위수준 모델에 존재하는 B(i)_refined와 대응되는 설계객체 B(i)_abst를 B(i)_refined로 대체하여서 추상화수준이 혼합된 모델 MODEL_DUV(MIXED)를 만들고 이를 수행시켜서 얻어지는 수행결과를 MODEL_DUV(HIGH)의 수행결과와 비교하는 것이다. However, the Were in the final stages of refinement process to be validated for the specific design object shape whether embodied properly, other design objects made certain design object B (i) the specification of _refined in circumstances that have not yet materialized is completed correctly method for verifying effectively hayeoseo alternative design object B (i) _abst corresponding to the abstraction B already present in the upper levels, and present a higher-level model, which (i) _refined in B (i) _refined level of abstraction mixed model MODEL_DUV creating a (MIXED) to compare the performance results obtained by doing this and the result of executing the 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이 올바르게 구체화가 진행되었는지를 검증할 수 있다. If described with the example mentioned above, in parallel the process embodying the B (1) present in DUV_TLM _tlm, B (2) _tlm, B (3) _tlm, B (4) _tlm each document by a plurality of designers enemy as soon as if that past is proceeding chronologically to B (4) embodies the completion of _rtl, B (3) _rtl, B (2) _rtl, B (1) net of _rtl, first B (4) _rtl is completed B designer in charge of the embodiment of (4) are configured to MODEL_DUV (MIXED) _4 = (B (1) _tlm, B (2) _tlm, B (3) _tlm, B (4) _rtl) by running them (i.e. simulation hayeoseo) MODEL_DUV (HIGH) = (B (1) _tlm, B (2) _tlm, B (3) _tlm, B (4) _tlm) of the simulation run as compared with the result of B (4) _rtl correctly embodied as spring We can verify that progress. 이와 같은 방식으로 나머지 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)를 구성하여서 해당 설계블럭이 올바르게 구체화가 진행되었는지를 검증할 수 있다. In this manner the remaining B (3) _rtl, B (2) _rtl, B (1) _rtl are also embodied each MODEL_DUV (MIXED) _3 = Upon completion (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, hayeoseo configure B (4) _tlm) may verify whether the corresponding design block embodiment is correct. 또 다른 예를 가지고 설명한다면, 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이 올바르게 구체화가 진행되었는지를 검증할 수 있다. In addition, if explained with the other embodiment, standing the process embodying the present in DUV_RTL B (1) _rtl, B (2) _rtl, B (3) _rtl, B (4) _rtl respectively by a plurality of designers parallel If that passes proceeds chronologically to B (4) refine the completed _gl, B (3) _gl, B (2) _gl, B (1) in order (the subscript Im representing gl a gate level) of _gl the first B 4, the _gl a designer in charge of the embodiment of B (4) Upon the completion are MODEL_DUV (MIXED) _4 = (B (1) _rtl, B (2) _rtl, B (3) _rtl, B (4) _gl) configuration, by executing this MODEL_DUV (HIGH) = (B (1) _rtl, B (2) _rtl, B (3) _rtl, B (4) _rtl) B (4) _gl a spring as compared to the simulation results of this you can verify that the correct shape is in progress. 이와 같은 방식으로 나머지 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)를 구성하여서 해당 설계블럭이 올바르게 구체화가 진행되었는지를 검증할 수 있다. In this manner the remaining B (3) _gl, B (2) _gl, B (1) _gl are also embodied each MODEL_DUV (MIXED) _3 = Upon completion (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, hayeoseo configure B (4) _rtl) may verify whether the corresponding design block embodiment is correct. 그런데, 여기에서 하나 언급하여야 할 것은 MODEL_DUV(MIXED)에 존재하는 설계객체들 중에서 구체화가 된 설계객체 B(i)_refined의 입출력 포트들의 추상화 수준이 구체화가 안되어진 설계객체들 B(k)_abst의 입출력 포트들의 추상화 수준과 맞지 않음으로 인하여 이들 B(i)_refined와 B(k)_abst 간의 연결에 추가적인 인터페이스가 필요할 수 있다. However, it should be one mentioned herein MODEL_DUV (MIXED) the present designing objects in a materialized the design object B (i) the level of abstraction of the input and output ports of _refined this embodiment has not been designed object in B (k) of _abst the B (i) due to a mismatch with the level of abstraction of the input and output ports _refined and B (k) may require an additional interface for connection between _abst.

예로, ESL에서 RTL로 구체화되어지는 경우에는 ESL에서는 트란젝션 수준이며 RTL에서는 핀 시그널 단위의 사이클 수준임으로 이들간의 인터페이스의 역할을 수행하는 트란젝터(transactor)가 필요하게 된다. For example, in the case which is embodied in the RTL in the ESL ESL Tran rejection level and the RTL that Tran projector (transactor) serving as the interface between these in the cycle of the pin sujunim signal unit is required. 이와 같은 트란젝터는 ESL의 트란젝션의 추상화 정도에 따라서 달라질 수 있는데, 예로 ESL의 트란젝션의 추상화 정도가 단일사이클단위의(cycle-accurate) 트란젝션 수준이라고 한다면 아주 간단한 트란젝터를 사용할 수 있으며 만일 추상화 정도가 timed-트란젝션 수준이라고 한다면 상대적으로 복잡한 트란젝터를 사용하게 된다. Such Tran projector is may vary depending on the abstraction level of dextran rejection of the ESL, for example, if the abstraction level of dextran rejection of ESL that (cycle-accurate) Tran rejection level of single-cycle units can use a very simple Tran projector and ten thousand days If that is the degree of abstraction timed- Tran rejection level is used for relatively complex Tran projector. 또한 RTL에서 GL로 구체화되어지는 경우에는 RTL의 입출력 포트와 GL의 입출력 포트는 모두 핀 시그널 단위에서는 동일함으로서 별도의 포트 인터페이스는 필요하지 않지만, 만일 GL에서 검증하고자 하는 것이 타이밍 검증의 경우에는 이 포트 인터페이스 경계에서 GL에서 맞는 타이밍을 가지는 시그널들을 생성시키기 위해서 이들 간의 타이밍 조정의 역할을 수행하는 타이밍조정기(timing adjustor)가 필요할 수 있다 (타이밍조정기에 사용되는 지연시간 값들은 SDF를 분석하거나, 또는 라이브러리셀들의 지연시간 파라메터를 분석하거나, 또는 SDF를 이용한 게이트수준의 타이밍시뮬레이션을 짧은 시뮬레이션 시간 구간만에서 수행하거나, 또는 정적타이밍분석(static timing analysis)을 수행하거나, 또는 이들을 조합적으로 이용하여서 얻을 수 있음). In addition, if that is embodied in the GL in the RTL is a RTL input port and output port of the GL is by the same in both the pin signal unit separate port interface is not required, has a port for that timing verification to ten thousand and one to verify the GL It may require timing adjuster (timing adjustor) to perform the role of a timing adjustment between them at the interface boundary in order to generate a signal with a timing fits in GL (delay value used for the timing adjuster are analyzed, or library, SDF analysis of the delay parameters of the cells, or perform any using SDF timing simulation of gate-level in a very short simulation time period, or perform a static timing analysis (static timing analysis), or can be obtained hayeoseo use them in combination has exist). 이상과 같이, 점진적 구체화 과정에서 DUV에 존재하는 1 이상의 특정 설계객체가 B(i)_refined로 구체화된 경우에 이를 추상화 상위수준의 모델 MODEL_DUV(HIGH)에 존재하는 해당 설계객체 B(i)_abst와 대체하여서 추상화 중간수준의 모델 MODEL_DUV(MIXED)_i를 만들어 내는 구체화 단계를 “부분 구체화”(partial refinement) 단계라 칭하기로 하고 이와 같은 과정을 부분 구체화 과정이라 칭하기로 한다. As described above, the design object B (i) _abst that particular design object, one or more present in the DUV in the progressive elaboration process is present in B (i) if embodied in _refined model of this abstraction higher level in MODEL_DUV (HIGH) and alternative hayeoseo will be referred to as a concrete step to create a model MODEL_DUV (MIXED) _i intermediate level of abstraction is referred to as a "partial materialized" (partial refinement) step and embodies this process part of the process.

상기의 부분 구체화 단계 이후에는 추상화 상위수준의 모델 MODEL_DUV(HIGH)에 존재하는 구체화 대상이 되는 모든 설계객체들을 구체화된 설계객체들로 대체(구체화 대상이 되지 않거나 구체화가 필요없는 설계객체가 존재할 수 있으며, 이와 같은 경우에는 해당 설계객체는 구체화하지 않음)하여서 추상화 하위수준의 모델 MODEL_DUV(LOW)를 만들어 내는 구체화 단계를 “완전 구체화”(complete refinement) 단계라 칭하기로 하고 이와 같은 과정을 완전 구체화 과정이라 칭하기로 한다. Part embodied stage of the since there may exist a design object alternative (not or not materialize target needs embodied in the design object embodies all the design objects that embody the target present in the model MODEL_DUV (HIGH) of abstraction higher level , in this case, the corresponding design object does not materialize) hayeoseo the concrete steps to create the model MODEL_DUV (LOW) abstraction sub-level is referred to as a "fully materialized" (complete refinement) step and embodies this process completely process called It shall be referred. 즉, ESL에서 RTL로 구체화되는 단계에서는 완전 구체화 과정에서 MODEL_DUV(RTL)을 얻게되며, RTL에서 GL로 구체화되는 단계에서는 완전 구체화 과정에서 MODEL_DUV(GL)을 얻게 된다. That is, in steps, as embodied in the ESL is obtained by RTL the MODEL_DUV (RTL) in the fully embodied process, the steps embodied in the RTL in the GL is obtained MODEL_DUV (GL) in the fully specified process. 상기의 예로 설명하자면, 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)가 구성되어지게 된다. To explain an example of the above, in the steps as embodied in the ESL to RTL be embodied all four design objects, and B (3) _rtl Among the steps to screen specific to GL in RTL four design objects (e. G. B (3) _rtl memory module arbitrarily) MODEL_DUV through a complete embodiment the process if it is not necessary to be specified (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) it is be configured.

완전 구체화 과정을 통하여 얻어진 추상화 하위수준의 모델 MODEL_DUV(LOW)을 최종적으로 실행시켜 얻어진 결과를 추상화 상위수준의 모델 MODEL_DUV(HIGH)의 시뮬레이션 실행결과와 비교하거나 필요시 추가적으로 추상화 중간수준의 모델 MODEL_DUV(MIXED)_i과도 비교함으로서 점진적 구체화 과정을 통하여 설계가 올바르게 수행되었는지를 검증할 수 있다. Fully refine the resulting abstraction of a lower level model MODEL_DUV (LOW) to a final result run was obtained by abstraction of the higher-level model MODEL_DUV (HIGH) simulation execution results and comparison or model of additional abstraction medium as required for by the process MODEL_DUV (MIXED ) _i can verify that the design is done correctly through the progressive elaboration process by comparing the transient. 그러나, 이와 같이 점진적 구체화 과정으로 진행되는 설계에서 자연스럽게 적용되는 점진적 구체화 방식의 검증 과정에서 부분 구체화 과정에서 수행되는 검증은 추상화 중간수준의 모델 MODEL_DUV(MIXED)_i에 존재하는 설계객체들이 아직도 대부분 추상화 상위수준에서 존재하고 있음으로 MODEL_DUV(MIXED)_i를 대상으로 하는 검증 실행속도가 추상화 상위수준의 모델 MODEL_DUV(HIGH)를 대상으로 하는 검증 실행속도에 비하여 꽤 떨어지게 되고 (일반적으로 실제 SOC 설계에서 DUV에서 온칩버스를 통하여 연결되는 설계객체들의 수는 적게는 10개 많게는 100개 정도가 됨), 완전 구체화 과정에서 수행되는 검증은 MODEL_DUV(LOW)에 존재하는 설계객체들 전부 또는 대부분이 추상화 하위수준에서 존재하고 있음으로 MODEL_DUV(LOW)를 대상으로 하는 검증 실행속도가 추상화 상위수 However, thus verification is carried out in part embodied process in the verification process of gradually refine methods to be applied naturally designed to be conducted progressively refine the process, most designed objects in the model MODEL_DUV (MIXED) _i abstraction intermediate levels are still abstractions top quite apart than the verify execution rate within the scope of the present and that the MODEL_DUV (MIXED) _i in level to verify execution rate within the scope of the model MODEL_DUV (HIGH) of abstraction higher level and (usually on-chip in the DUV in the actual SOC design the number of design objects that are connected through a bus as little Becomes many as about 100 to 10), the verification is carried out in a fully embodies the process is present in the present design objects in all or most of abstraction lower level of the MODEL_DUV (LOW) in MODEL_DUV to verify the execution speed can be higher abstraction that target (LOW) 의 모델 MODEL_DUV(HIGH)를 대상으로 하는 검증 실행속도에 비하여 크게 떨어지게 됨으로서 효과적인 검증 진행에 큰 장해요소가 되게 된다. The model MODEL_DUV largely drops as compared to verify execution rate within the scope of the (HIGH) by being presented is a major obstacle to effective verification element proceeds. 구체적 예로서는 ESL 모델에 비하여 이를 구체화한 RTL 모델의 검증 실행속도는 ESL 모델의 검증 실행속도에 비하여 최소 10배에서 최대 10,000배 이상 느려지며, RTL 모델에 비하여 이를 구체화한 GL 모델의 검증 실행속도는 RTL 모델의 검증 실행속도에 비하여 최소 100배에서 최대 300배 이상 느려지게 됨으로서 이와 같은 점진적 구체화를 통한 검증에서 전체 검증 시간을 크게 늘리게 되는 큰 문제점이 되게 된다. Specifically, examples of the RTL model incorporating them than the ESL model verification execution speed is said at least 10 times slower than 10,000 times that the verification speed of execution of the ESL model, verifying running speed of the GL model incorporating them than the RTL model is RTL the main problem which greatly increased the overall verification time in the verification with this embodiment, such gradually by being slowed down up to more than 300-fold in at least 100-fold is to be compared with the verification execution speed of the model.

따라서, 본 발명의 목적은 시스템 수준에서부터 게이트 수준까지 진행되는 설계를 점진적 구체화를 통하여 진행하는 과정에 적용되는 검증 과정을 설계 과정과 같이 점진적 구체화를 통하여서 효과적으로 진행할 수 있는 체계적인 검증 방법을 제공함에 있다. Accordingly, it is an object of the present invention to provide a systematic verification method tonghayeoseo progressive embodied as the design process the verification process applicable to the process can proceed effectively to progress through the specified progressive design that proceeds from the system level down to the gate level. 즉 이전 시뮬레이션 실행 과정에서 얻어지는 정보를 활용하여 현재 시뮬레이션의 실행 시간을 단축시키는 방법을 제공하는 것이 대표적인 사례이다. I.e., using information obtained from a previous simulation execution and to provide a method for shortening the duration of the current simulation is a prime example.

본 발명의 또 다른 목적은, 점진적 구체화를 통하여 진행되는 설계에서 진행되는 검증이 점진적 구체화 과정을 통하여 추상화 하위 단계로 진행될수록 검증 속도가 점차적으로 또는 크게 떨어지는 문제점을 해결하는 체계적인 검증 방법을 제공함에 있다. A further object of the present invention is to provide a systematic verification method for incremental verification is in progress in the design to be conducted through the progressive elaboration through the embodied process proceeds to abstraction substeps The more verification rate is gradually or resolve significantly lowered . 즉 추상화 상위수준의 모델을 대상으로 하는 시뮬레이션 실행 과정에서 얻어지는 정보를 활용하여 현재 추상화 하위수준의 모델을 대상으로 하는 시뮬레이션의 실행 속도를 높이는 방법을 제공하는 것이 대표적인 사례이다. That is, it is typical practice to use the information obtained by the simulation execution process that targets a model of a higher level of abstraction to provide a method for increasing the execution speed of the simulation model that targets a current abstract lower level.

본 발명의 또 다른 목적은, 설계 및 검증을 추상화 상위수준에서부터 추상화 하위수준으로까지 점진적 구체화 방식으로 진행되는 전체 과정이 체계적이며 자동화된 방식으로 진행될 수 있도록 하는 것이다. Another object of the present invention is to make the whole process is systematic and can proceed in an automated manner that goes gradually refine methods to design and verify a higher level of abstraction from abstraction to lower level.

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

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

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

본 발명의 또 다른 목적은, 점진적 구체화 과정을 통한 설계 과정에서 발견되는 설계오류들을 제거하는 디버깅(하드웨어 디버깅 또는 소프트웨어 디버깅) 과정을 체계적으로 수행할 수 있도록 함으로서 신속한 디버깅을 통한 설계 오류를 수정하는 방법을 제공함에 있다. How to fix design errors through rapid debugging by allowing another object of the present invention can perform debugging (hardware debugging or software debugging) process to remove the design error is found in the design process through the progressive elaboration process of systematically It is to provide a.
한번 더 한번 강조할 것은, 앞단 시뮬레이션 과정에서 구해진 예상입력(expected input)과 예상출력(expected output)을 이용하여서 후단 시뮬레이션을 분산처리적병렬시뮬레이션으로 진행하는 경우에는 이미 언급되었듯이 대부분의 경우에 있어서 앞단 시뮬레이션과 후단 시뮬레이션에서 1 이상의 설계객체가 디버깅 또는 스펙 변경으로 국지적으로 변경되어진 상황이거나, 또는 앞단 시뮬레이션에서의 시뮬레이션 대상이 되는 설계객체의 추상화 수준이 후단 시뮬레이션에서의 시뮬레이션 대상이 되는 설계객체의 추상화 수준과 다르다는 것이다. It is to be emphasized once more time, if hayeoseo using the estimated input (expected input) and the estimated output (expected output) obtained in a front end simulation process proceeds to the rear end simulation in a distributed processing enemy parallel simulation, As already mentioned, in most cases front-end simulation with either situation been the one or more design objects from the rear end simulation locally changed to debug or specification change, or front-end simulation of abstraction of the design level of abstraction of the design objects that simulation object is the simulated target at the rear end simulation objects in It is different from the level. 따라서 본 특허의 청구항들에서도 앞단 시뮬레이션과 후단 시뮬레이션을 언급하는 상황에서는 이와 같은 상황이 적용됨을 주의한다. Therefore, the situation in which this patent refers to the front end and rear end simulation simulating in the claims should note that this applies this situation.

상기 목적들을 달성하기 위하여, 본 발명에 따른 설계 검증 방법을 적용하기 위하여 필요한 설계 검증 장치는 검증 소프트웨어와 1 또는 2 이상의 시뮬레이터가 인스톨된 1 또는 2 이상의 컴퓨터로 구성될 수 있다. In order to achieve the above object, the design verification necessary to apply a design verification method in accordance with the present invention apparatus may be of a verification software and one or more computers, one or two or more of the simulator 2 are installed. 본 발명에서의 설계 검증 방법을 적용할 수 있는 또 다른 설계 검증 장치는 검증 소프트웨어와 1 또는 2 이상의 시뮬레이터가 인스톨된 1 또는 2 이상의 컴퓨터와 상기 1 또는 2 이상의 컴퓨터에 연결된 1 또는 2 이상의 시뮬레이션가속기 또는 FPGA 보드로 구성된다. Another applicable design verification method according to the present invention, the design verification device verification software and one or two or more of the simulator is installed with one or two or more computers and the one or one or two or more simulation accelerator or two or more connected to the computer It consists of a FPGA board. 검증 소프트웨어는 컴퓨터에서 실행되며, 만일 상기 설계 검증 장치에 2 이상의 컴퓨터들이 있는 경우에는 이들 2 이상의 컴퓨터는 네트워크(예로 이더넷 혹은 기가비트이더넷)로 연결되어져서 컴퓨터들 간에 파일들 또는 데이터의 이동을 네트워크를 통하여 가능하게 한다. Verification software is run on the computer, an emergency the design verification device network files or data movement between when there are two or more computers, those two or more computers are so connected to a network (e.g. Ethernet or Gigabit Ethernet) computer, It enables through. 설계 검증 용도의 상기 1 또는 2 이상의 시뮬레이터는 이벤트-구동 시뮬레이터(event-driven simulator)로만 구성(분산병렬 시뮬레이션을 이벤트-구동 시뮬레이터들로만 구성하여서 병렬 시뮬레이션하는 것을 PDES(Parallel Discrete Event Simulation)이라 함)될 수도 있고, 혹은 이벤트-구동 시뮬레이터와 사이클-기반 시뮬레이터(cycle-based simulator)로 같이 구성 될 수도 있고, 혹은 사이클-기반 시뮬레이터로만 구성될 수도 있고, 혹은 사이클-기반 시뮬레이터와 트란젝션-기반 시뮬레이터(transaction-based simulator)로 같이 구성될 수도 있고, 혹은 트란젝션 시뮬레이터로만 구성될 수도 있고, 혹은 이벤트-구동 시뮬레이터와 트란젝션-기반 시뮬레이터로 같이 구성될 수도 있고, 혹은 이벤트-구동 시뮬레이터와 사이클-기반 시뮬레이터와 트란젝션-기반 시뮬레이터로 같이 구성 The one or two or more simulators for design verification purposes are event-driven simulators (event-driven simulator) only configuration - is (event distributed parallel simulation referred to parallel simulation hayeoseo consists only driving simulator Parallel Discrete Event Simulation (PDES)) It may have, or event-driven simulator as the cycle-based simulator may be configured as a (cycle-based simulator), or the cycle may be configured only based simulator, or the cycle-based simulator and the Tran projection-based simulator (transaction It may be configured as a simulator -based), or may be configured Tran projection simulator only, or event-based, and may be configured as a simulator, or event-driven simulators and Tran projection driving simulators and cycle-based simulator and as to the simulator based configuration-dextran rejection 수도 있는 등 본 특허에서의 시뮬레이터의 구성은 매우 다양한 방식으로 구성할 수 있다. Also including the configuration of the simulator according to the present patent it can be configured in a wide variety of ways that. 따라서, 상기 2 이상의 시뮬레이터가 이벤트-구동 시뮬레이터와 사이클-기반 시뮬레이터로 구성된 경우에는 이를 이용한 분산병렬 시뮬레이션이 부분적으로는 이벤트-구동 시뮬레이션 방식으로 진행되고 다른 부분은 사이클-기반 시뮬레이션 방식으로 진행되는 동시-시뮬레이션(co-simulation) 모드로 진행되게 된다. Thus, the two or more simulation events - the same time is conducted based on the simulation method-driven simulator cycle is configured as a base simulator distributed parallel simulation using the same are partly event - the procedure proceeds to the driving simulation system other part cycles It is to be conducted by simulation (co-simulation) mode. 혹은 상기 2 이상의 시뮬레이터가 이벤트-구동 시뮬레이터와 사이클-기반 시뮬레이터와 트란젝션-기반 시뮬레이터로 구성된 경우에는 이를 이용한 분산병렬 시뮬레이션이 부분적으로는 이벤트-구동 시뮬레이션 방식으로 진행되고 다른 부분은 사이클-기반 시뮬레이션 방식으로 진행되고 또 다른 부분은 트란젝션-기반 시뮬레이션 방식으로 진행되는 동시-시뮬레이션 모드로도 진행되어질 수 있다. Or that the two or more simulation event-driven simulator as the cycle-based simulator and the Tran projection - is configured as a base simulator distributed parallel simulation using the same are partly event - the procedure proceeds to the driving simulation system other part cycle-driven simulation method another part is going to Tran projection-can be conducted as a simulation mode that simultaneously proceed is based on simulation method.

구체적 예를 든다면, AMBA 플랫폼 기반의 특정 추상화수준 SOC 모델에 대한 통상적인 분산병렬 시뮬레이션 또는 본 특허의 분산처리적병렬시뮬레이션(추후에 정의됨)의 경우에 버스중재기와 어드레스디코더를 포함하는 온칩 버스 설계객체는 ca-트란젝션수준에서 모델링된 블럭으로 이 블럭의 시뮬레이션을 담당하는 로컬시뮬레이션은 사이클-기반 시뮬레이션 방식으로 진행되고, 나머지 모든 설계객체들(ARM 코어, DSP, 메모리콘트롤러, DAM 콘트롤러, 기타주변장치들)은 RTL에서 모델링된 블럭들로 이들 블럭들 각각의 로컬시뮬레이션들은 이벤트-기반 시뮬레이션 방식으로 진행될 수 있다. And if there are any specific examples, AMBA platforms based on the particular level of abstraction SOC model conventional distributed for parallel simulation or distributed processing enemy parallel simulation of the present patent on-chip that includes recovering the address decoder of the bus in the case of a (defined later) bus design object ca- Tran as modeled in block projection local simulation levels responsible for the simulation of a block cycle in progress, based on the simulation method, the balance of the design object (ARM core, DSP, memory controller, DAM controller, other peripherals s) with the modeled blocks in each local RTL simulation of these blocks are event-based simulation method may proceed.

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

본 특허에서 제안되는 점진적 구체화 과정을 통한 설계에서 적용되는 체계적인 점진적 구체화 검증 방식(Systematically Progressive Refinement Verification Method 앞으로는 이를 SPR 검증 방식으로 약칭함)은 RTL에서 구현가능한 RTL 모델을 대상으로 하는 RTL 검증 실행에 ESL 모델을 대상으로 하는 시스템수준 검증 실행의 결과 또는 ESL에서 RTL로 점진적 구체화 과정을 진행하는 과정에서 구성되는 1 이상의 추상화 중간수준의 모델들인 MODEL_DUV(MIXED)_i들을 대상으로 하는 1 이상의 ESL/RTL 혼합검증 실행의 결과들을 활용하여서 RTL 검증 실행을 병렬적으로 실행하거나 부분적으로만 실행(부분적으로만 실행하는 것에서는 인크리멘탈 시뮬레이션 기법을 활용할 수 있는데, 인크리멘탈 시뮬레이션 기법을 추후에 설명함)함으로서 RTL 검증을 신속하게 수행하는 것이 가능하다. Systematic progressive elaboration verification methods to be applied in the design through the progressive elaboration process proposed in this patent (Systematically Progressive Refinement Verification Method in the future abbreviated it as SPR validated method) is ESL to RTL verification runs that target the possible implementation of RTL models from RTL model ESL / RTL mixed validate one or more of the system-level verification runs MODEL_DUV (mIXED), which are models of abstraction, mid-level more than one composed while going through the progressive elaboration process to RTL in the results, or ESL _i to target to target hayeoseo utilizing the results of execution running RTL verification executed in parallel or executed only partially by (from running only partially is may take advantage of the incremental simulation techniques, incremental, described a mental simulation techniques in the future) RTL it is possible to quickly perform the verification. 뿐만 아니라, SPR 검증 방식은 GL에서 구현가능한 GL 모델을 대상으로 하는 GL 검증 실행에 RTL 모델을 대상으로 하는 RTL 검증 실행의 결과 또는 RTL에서 GL로 점진적 구체화 과정을 진행하는 과정에서 구성되는 추상화 중간수준의 모델들인 1 이상의 MODEL_DUV(MIXED)_i들을 대상으로 하는 1 이상의 RTL/GL 혼합검증 실행의 결과들을 활용하여서 GL 검증 실행을 병렬적으로 실행하거나 부분적으로만 실행(부분적으로만 실행하는 것에서는 인크리멘탈 시뮬레이션 기법을 활용할 수 있는데, 인크리멘탈 시뮬레이션 기법을 추후에 설명함)함으로서 GL 검증을 신속하게 수행하는 것도 가능하다. As well as, SPR proven method of abstraction intermediate level configuration while going through the process of gradually materialized as GL in the results or RTL for RTL verification runs that target the RTL models in the GL verification runs that target achievable GL models with the GL utilizing the model, which are one or more MODEL_DUV (mIXED) the result of at least one RTL / GL mixed validation runs for the targeted _i hayeoseo from running GL verification executed in parallel or partially executed in execute (only partially the incremental may utilize a mental simulation techniques, it is possible to quickly perform the verification by GL incremental, it described a mental simulation techniques in the future). 뿐만 아니라, ESL에서 다양한 트란젝션 수준의 ESL 모델을 대상으로 하는 ESL 검증 실행에 추상화가 높은 트란젝션 모델을 대상으로 하는 시스템수준 검증 실행의 결과 또는 점진적 구체화 과정을 진행하는 과정에서 구성되는 추상화가 높은 트란젝션 모델과 추상화가 낮은 트란젝션 모델을 혼용한 1 이상의 모델 MODEL_DUV(MIXED_AT_TLM)_i들을 대상으로 하는 1 이상의 트란젝션 혼합검증 실행(예로 MODEL_DUV(MIXED_AT_TLM)내의 특정 설계객체는 ca-트란젝션 수준의 설계객체이고 나머지 설계설계들은 timed-트란젝션 수준의 설계객체들로 구성하여 혼합검증 실행)의 결과들을 활용하여서 ESL 검증 실행을 병렬적으로 실행하거나 부분적으로만 실행(부분적으로만 실행하는 것에서는 인크리멘탈 시뮬레이션 기법을 활용할 수 있는데, 인크리멘탈 시뮬레이션 기법을 추후에 In addition, an abstraction composed while going through the various outcomes of the dextran rejection level of ESL model system that targets the abstraction of high Tran projection model for ESL verification runs that target level validation Run or progressive elaboration process in the ESL High the specific design object in the projection Tran model abstraction and the low dextran mixed projection model for one or more models MODEL_DUV (MIXED_AT_TLM) at least one projection, the Tran mixed validation runs for the targeted _i (Examples MODEL_DUV (MIXED_AT_TLM) is designed in the ca- Tran rejection level object and the other design are designed to take advantage from the results of timed- Tran rejection level of running mixed verification consists of the design object) accomplished by issuing the ESL verification executed in parallel or partially executed in execute (only partially the incremental may utilize a mental simulation techniques, in the future the incremental simulation 명함)함으로서 ESL 검증을 신속하게 수행하는 것이 가능하다. Business card), by it it is possible to quickly perform an ESL verification.

이와 같은 검증 실행은 기본적으로 1 또는 2 이상의 시뮬레이터를 이용한 시뮬레이션 방식으로 진행되어지지만, 이뿐만 아니라 1 또는 2 이상의 시뮬레이터에 1 또는 2 이상의 시뮬레이션가속기 또는 1 또는 2 이상의 하드웨어에뮬레이터 또는 1 또는 2 이상의 FPGA 보드 등과 같은 하드웨어기반검증플랫폼을 시뮬레이터와 같이 사용한 시뮬레이션가속 방식으로 진행하는 것도 가능하다. Such a verification run is basically the first or but it proceeds with simulation method using two or more simulators, This not only to the above 1 or 2, the simulator 1 or 2 or more simulated accelerator or one or two or more hardware emulator or one or two or more FPGA boards hardware-based it is possible to proceed to the validation platform simulate accelerated used as the simulator, such as. 이와 같은 1 또는 2 이상의 시뮬레이션가속기 또는 1 또는 2 이상의 하드웨어에뮬레이터 또는 1 또는 2 이상의 FPGA 보드를 1 또는 2 이상의 시뮬레이터와 같이 사용하여 시뮬레이션의 수행속도를 높이는 시뮬레이션가속 방식도 넓은 의미에서는 시뮬레이션임으로 앞으로 본 특허에서는 특별한 언급이 없는 한 검증 이라는 용어와 시뮬레이션 이라는 용어는 서로 교환하여서 사용할 수 있는 것(즉, 본 특허에서는 정식검증(formal verification)은 고려하지 않기로 하며 따라서 검증이라하면 동적검증(dynamic verification) 기법인 시뮬레이션만을 생각하기로 함)으로 하여서 지금부터는 검증 이라는 용어 대신에 시뮬레이션으로 대체하여서 사용하기로 하며, 이 시뮬레이션에는 시뮬레이터를 사용하는 시뮬레이션 뿐만 아니라 시뮬레이션가속기 또는 하드웨어에뮬레이 In such one or two or more simulation accelerator or one or two or more hardware emulator, or 1 or 2 or more by using the FPGA board, such as one or two or simulator wide simulate accelerated to increase the execution speed of the simulation it is also meant simulation randomly forward this patent the phosphorus in the validation term terms simulation that is to available hayeoseo exchange (that is, this patent otherwise specified formal verification (formal verification) is not to taken into account, and therefore the dynamic verification if as verified (dynamic verification) method Do you think only a simulation) to hayeoseo to use hayeoseo replaced by a simulation instead of the term verification from now on, and this simulation, simulation as well as the simulation accelerator or hardware emulation using a simulator 터 또는 FPGA 보드를 시뮬레이터와 함께 사용하는 시뮬레이션가속까지도 포함되는 것으로 한다. And to be included even accelerated simulation using the emitter or FPGA board with the simulator.

위에서 이미 언급된대로 본 특허에서의 SPR 검증 방식에서는 추상화 하위수준에서 이루어지는 시뮬레이션의 병렬적 실행 또는 부분적으로만의 실행을 위하여 점진적 구체화 과정에서의 앞서서 수행된 또는 상기 추상화 하위수준에서 이루어지는 시뮬레이션과 같이 수행되는 추상화 상위수준에서 이루어지는 시뮬레이션 결과 또는 추상화 중간수준에서 이루어지는 1 이상의 시뮬레이션 결과를 활용하거나, 또는 동일한 추상화 수준에서 이루어지는 시뮬레이션의 병렬적 실행 또는 부분적으로만의 실행을 위하여 점진적 구체화 과정에서의 동일한 추상화 수준에서 앞서서 수행된 시뮬레이션 결과를 활용한다. Of the SPR verification scheme according to the present patent, as already mentioned above, carried out in advance in the progressive elaboration process for execution of parallel execution or partially euroman of comprising simulation in abstract lower level or to be performed, as the abstracted simulation takes place in the low-level utilizing one or more simulations performed in comprising simulation results or abstraction medium in abstract high-level, or performed in advance on the same level of abstraction in the progressive elaboration process for parallel execution or execution of the partially euroman of comprising simulation in the same level of abstraction the simulation utilizes the results. 뿐만 아니라, 드물게는 본 특허에서의 SPR 검증 방식에서는 특정 추상화 수준에서 이루어지는 시뮬레이션의 병렬적 실행 또는 부분적으로만의 실행을 위하여 점진적 구체화 과정에서의 앞서서 수행된 추상화 하위수준에서 이루어진(통상적으로 설계 과정에서는 재반복(iteration)이 필요하게 되는데, 이 재반복 과정에서 추상화 하위수준의 시뮬레이션 수행 후에 추상화 상위수준의 시뮬레이션이 진행되어질 수 있음) 시뮬레이션 결과를 활용하기도 한다. In addition, in rare cases the SPR verification method, (typically a design process made in an abstract lower level performed in advance in the progressive elaboration process for the simulated parallel execution or execution of the partially euroman in place in a particular level of abstraction in the present patent Re there is the repeat (iteration) this need it, or the material after repeated abstraction perform a low-level simulation of the process that there is a higher level of abstraction can be simulated in process) utilizing a simulation result. 이상과 같이 본 특허에서의 핵심 사항 중의 하나는 앞서서 수행되어진 시뮬레이션의 결과를 활용하여서 나중에 수행되는 시뮬레이션을 신속하게 수행할 수 있게 하는 것인데, 앞서서 수행되어진 시뮬레이션이 나중에 수행되는 시뮬레이션에 비하여 상대적으로 추상화가 높은 수준 또는 동일한 추상화 수준에서 수행되는 것이 일반적이지만, 경우에 따라서는 앞서서 수행되어진 시뮬레이션의 추상화 수준이 나중에 수행되는 시뮬레이션에 비하여 추상화 수준이 낮을 수도 있다. One of the key points of the present patent as described above would be to make the simulation hayeoseo utilizing the results of the been performed simulation performed later in advance can be performed quickly and relatively abstraction is compared with the simulation is carried out simulation is performed later been ahead of While it is generally performed at a high level or the same level of abstraction, as the case may be a lower level of abstraction than the simulation is performed a level of abstraction of the simulation performed later been before. 뿐만 아니라, 앞서서 수행된 시뮬레이션과 나중에 수행되는 시뮬레이션 사이에 시뮬레이션 대상이 되는 1 이상의 모델내에 존재하는 1 이상의 설계객체들에 대한 수정이 가해질 수도 있다. In addition, the modifications to the simulation and design one or more objects present in the one or more model between the simulation that is performed later, the target simulation performed in advance may be applied.

앞서서 수행되어진 시뮬레이션이 나중에 수행되는 시뮬레이션에 비하여 상대적으로 추상화가 높은 경우에 대해서는 좀 더 구체적으로 설명하면, 점진적 구체화 과정에서의 추상화 상위수준 모델을 이용한 추상화 상위수준에서 이루어지는 시뮬레이션에서 이 시뮬레이션 실행 도중의 1 이상의 시뮬레이션 특정 시점 또는 특정 구간에서 수집된 추상화 상위수준 모델의 상태정보(추후에 설명됨)를 활용하거나 (이를 활용방법-1이라 칭함), 혹은 추상화 상위/하위 혼합수준 모델을 이용한 추상화 중간수준에서 이루어지는 2 이상의 시뮬레이션에서 이 2 이상의 시뮬레이션 실행 도중의 1 이상의 시뮬레이션 특정 시점 또는 특정 구간에서 수집된 추상화 중간수준 모델의 설계 상태정보(design state information으로 앞으로는 상태정보로도 약칭하기로 함)를 활용하 In the simulation carried out simulation is performed later been ahead relatively If abstraction is described in more detail for the case, high, one-way simulation running on the simulation takes place in the abstract high-level using the abstraction higher-level models in the progressive elaboration process than than a point-in-time or simulation utilizing the abstraction (described later) the state information of the higher-level model collected at specific intervals, or (referred to as a method utilizing this, -1), or in the abstraction level using the abstraction middle top / bottom level mixed model utilizing (hereinafter abbreviated to the design state information as a future state information) from two or more composed design simulation status information of the two or more simulation runs during one or more of simulation a point in time or the collected medium level of abstraction from the specific section of the model 거나 (이를 활용방법-2라 칭함), 혹은 점진적 구체화 과정에서의 추상화 상위수준 모델을 이용한 추상화 상위수준에서 이루어지는 시뮬레이션에서 이 시뮬레이션 실행 도중에 전체 시뮬레이션 구간이나 또는 특정 시뮬레이션 구간에서 수집된 추상화 상위수준 모델 내의 1 이상의 설계객체들의 입출력정보(추후에 설명됨)를 활용하거나 (이를 활용방법-3이라 칭함), 혹은 추상화 상위/하위 혼합수준 모델을 이용한 추상화 중간수준에서 이루어지는 2 이상의 시뮬레이션에서 이 2 이상의 시뮬레이션 실행 도중에 전체 시뮬레이션 구간이나 또는 특정 시뮬레이션 구간에서 수집된 2 이상의 추상화 상위/하위 혼합수준 모델들에 존재하는 추상화 하위수준의 설계객체들의 입출력정보를 활용하는 것이다 (이를 활용방법-4라 칭함). Or in the (-2 this utilization method hereinafter), or a gradual process abstraction embodied in the simulation takes place in a higher level of abstraction using a high-level model during the simulation run the entire simulation period, or collected, or at a specific high-level simulation interval abstraction model in utilizing (to be described later) input and output information of one or more object or design (referred to how this advantage -3 quot;), or the abstract parent / child model mixed level is 2 or more simulation runs on two or more simulation takes place in the abstraction level using the intermediate the way to utilize the output information of the entire simulation interval or object or design of lower-level abstractions that exist in two or more specific simulated abstraction upper / lower-level mixed models collected in the interval (hereinafter referred to how this advantage -4).

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

의 추상화 상위수준의 모델(즉, 이 추상화 상위수준의 모델은 상기 각 로컬시뮬레이션에서 수행되어져야 하는 로컬설계객체들 전체로 구성되는 DUV와 TB 전체 모델보다 추상화 수준이 높다) 또는 시뮬레이션이 빠르게 수행되어질 수 있도록 최적화되어진 DUV와 TB 전체 모델(시뮬레이션이 빠르게 수행되어질 수 있도록 최적화시키는 방법들은 여러가지들이 알려져 있지만, 이들 중 이벤트-구동 방식으로 시뮬레이션하지 않고 사이클-기반 방식으로 시뮬레이션하는 것이 대표적 예임. 일반적으로 사이클-기반 방식의 시뮬레이션이 이벤트-구동 방식의 시뮬레이션보다 10배 정도 빠름. 이벤트-구동 방식의 시뮬레이션과 사이클-기반 방식의 시뮬레이션의 설명은 지면 제약 상 생략함으로 자세한 것은 관련서적을 참조함)을 상기 로컬설계객체와 같이 수행하면 Of abstraction higher level of the model to be performed (that is, the abstract model of the upper level is at a high level of abstraction than the DUV and TB full model consisting of all of the local design objects that should be performed on each of the local simulation) or simulation speed can DUV and TB throughout the model been optimized (methods of simulation optimized to be quickly performed are different are known, but those of the event-cycle without the simulation-driven - it is representative foreordained that the simulation-based approach typically cycle - based scheme simulating the event-fast order of magnitude than that of the driven simulation event-driving system simulation and cycle also in the base system simulation description, see the related books is ground more by omitting the constraints) for the local When you perform as designed objects 서 상기 수행되는 DUV와 TB의 추상화 상위수준의 모델 또는 상기 수행되는 시뮬레이션이 빠르게 수행되어질 수 있도록 최적화되어진 DUV와 TB 전체 모델에서 동적으로 얻어지는 동적정보를 상기 로컬설계객체를 시뮬레이션 하기위한 예상입력(expected input)과 상기 로컬설계객체의 시뮬레이션의 예상출력(expected output)으로 이용하여 다른 로컬시뮬레이션들과의 동기 오버헤드와 통신 오버헤드를 최소화하면서 분산 병렬 시뮬레이션이 가능해지도록 함(좀 더 자세한 내용은 추후에 설명됨)으로서, 시뮬레이션의 속도를 높이게 된다. Standing above perform predictive input for simulating the dynamic local design object, the dynamic information obtained from DUV and TB throughout the model been optimized to be the simulation is carried out quickly that DUV and TB model or the performance of abstraction higher level (expected input) and the estimated output (expected output) with use of the box so that the distributed parallel simulation possible while minimizing the synchronization overhead and communication overhead of the other local simulation (for more details of the simulation of the local design object in the future as described search), and increase the speed of the simulation.

모델 (예로 특정 ESL 모델)의 상태정보란 특정 시뮬레이션 시점(예로, 시뮬레이션 시점 29,100,511 나노초) 또는 일정 시뮬레이션 시간구간(예로 시뮬레이션 시점 29,100,200 나노초에서부터 29,100,300 나노초까지의 100 나노초 구간)에서 특정 추상화 수준의 모델링을 통하여 모델 내에 존재하는 플립플롭 모델이나 래치 모델 혹은 메모리 모델 혹은 궤환루프를 이루는 조합적 경로 (combinational feedback loop) 모델이 가져야 하는 변수들이나 시그널들의 값들을 포함한 동적정보를 말한다 (모델의 동적정보 또는 설계객체의 동적정보란 시뮬레이션 과정에서 특정 시뮬레이션 시점 또는 특정 시뮬레이션 구간(시뮬레이션 전체 구간일 수 있음)에서의 상기 모델 또는 상기 설계객체에 존재하게 되는 1 이상의 시그널들 또는 신호선들의 논리값들, 또는 모델 또는 설계객체 Status information of the model (for example particular ESL model) is through the modeling of a certain level of abstraction in a particular simulation time (for example, the simulation time 29,100,511 nanoseconds) or a predetermined simulation time interval (for example simulation time 100 nanoseconds range from 29.1002 million nanoseconds to 29.1003 million nanoseconds) refers to dynamic information, including the values ​​of the variables or signals which are present the flip-flop model or latch model or memory model or combinatorial paths forming the feedback loop (combinational feedback loop) model in have model (the dynamic information or design object model dynamic information is a specific simulation simulation time point or a specific region in the process simulation (simulation which may be a full segment) model or the logical values ​​of the one or more signals that are present in the design object or signal lines, or the design or model of the object in 존재하게 되는 1 이상의 변수들의 값 또는 상수들 값을 말함. 이들 동적정보는 시뮬레이션 실행 과정에서 얻을 수 있는데, 시뮬레이션 실행 과정에서 동적정보를 얻는 실 예를 든다면 대표적인 방법이 Verilog 시뮬레이터에서는 $dumpvars, $dumpports, $dumpall, $readmemb, $readmemh 등의 시스템테스크 또는 사용자정의 시스템테스크(user-defined system task)를 사용하여서 얻을 수 있으며(좀 더 구체적 방법들은 별도로 출원된 국내특허 10-2005-95803, 10-2005-116706, 10-2006-19738의 내용을 참조함), 얻어진 동적정보는 VCD 또는 SHM 또는 VCD+ 또는 FSDB 형식 또는 사용자가 정의한 임의의 이진형식 또는 텍스트형식 등으로 저장도 가능함). Refers to the value or the constant of the one or more variables exist value. The dynamic information may be obtained from the simulation execution process, if there are any real example of obtaining the dynamic information from the simulation executing process the exemplary method Verilog simulator $ dumpvars, $ dumpports, $ dumpall, $ readmemb, $ readmemh of system tasks or to obtain hayeoseo using a user-defined system tasks (user-defined system task), and (more specifically, how are the domestic patent 10-2005-95803, it filed 10 separate -2005-116706, also refer to the content of the 10-2006-19738), dynamic information is available is also stored in a VCD or SHM or VCD + or FSDB format or any text format or binary format defined by the user) is obtained. 설계객체의 상태정보란 특정 시뮬레이션 시점 또는 일정 시뮬레이션 시간구간에서의 설계객체에 존재하는 플립플롭 출력이나 래치 출력 혹은 메모리 혹은 궤환루프는 이루는 조합적 경로를 구술하고 있는 모든 변수나 시그널들의 값들을 포함한 동적정보를 말한다. Status information of the design object is dynamic, including a flip-flop output and the latch output, or memory, or feedback loop, the value of all the variables or signals that dictate the combinatorial path forms present in the design object in a given simulation time or a predetermined simulation time interval says the information.

또한 설계객체의 입력정보란 특정 시뮬레이션 시간구간(이 특정 시뮬레이션 시간구간은 시뮬레이션 전체 시간구간이 될 수 있음)에서의 설계객체의 모든 입력(input), 입출력(inout) 상에서의 값들을 말하고, 설계객체의 출력정보란 특정 시뮬레이션 시간구간(시뮬레이션 전체 시간구간이 될 수 있음)에서의 설계객체의 모든 출력(output), 입출력 상에서의 값들을 말하고, 설계객체의 입출력정보란 특정 시뮬레이션 시간구간(시뮬레이션 전체 시간구간이 될 수 있음)에서의 설계객체의 모든 입력, 출력, 입출력 상에서의 값들을 말한다. Further to say the value on every input (input), input and output (inout) of the design object in is the input information of the design object (in this particular simulation time interval is the simulation may be a full time period) specified simulation time interval, the design object of the output information is a specific simulation time period (simulation total time could be a period) all of the output (output) of the design object in, say the value on the input and output, input and output information is a region-specific simulation time of the design object (simulated total time It refers to a value on all input, output, input-output of a design object in the subject to this section).

본 특허에서 제시되는 시뮬레이션 방법은 앞서서도 이미 언급된 것과 같이 점진적 구체화 진행 과정 중에서 동일한 추상화수준 모델을 이용한 시간적으로 앞에서 수행된 시뮬레이션 결과를 이용하여서 동일한 추상화수준 모델을 이용한 나중에 수행되는 시뮬레이션을 병렬적 또는 부분적으로 실행함으로서 시뮬레이션을 빠르게 수행하거나, 또는 점진적 구체화 진행 과정 중에서 추상화 하위수준 모델을 이용한 시간적으로 앞에서 수행된 시뮬레이션 결과를 이용하여서 추상화 상위수준 모델을 이용한 나중에 수행되는 시뮬레이션을 병렬적 또는 부분적으로 실행함으로서 시뮬레이션을 빠르게 수행하는 것도 가능하지만, 좀 더 일반적인 상황에서의 본 특허에서 제시되는 시뮬레이션 방법은 점진적 구체화 진행 과정 중에서 추상화 상위수준 모델을 Simulation methods are proposed in this patent is the simulation is also hayeoseo already using progressively refine the course in time of simulation results performed earlier by using the same level of abstraction model from the as mentioned done later using the same level of abstraction model in advance parallel or performing a simulation by partially running quickly, or gradually materialized hayeoseo using the temporal simulation results performed earlier by using abstraction lower-level model from the process by running a simulation that is performed later using abstraction higher-level models in parallel or in part, simulation method presented in this patent in the simulation can be performed faster, but more general, the situation is a higher-level abstraction model in progress progressive elaboration 용하는 시뮬레이션 결과를 이용하여서 추상화 하위수준 모델을 이용한 시뮬레이션을 병렬적 또는 부분적으로 실행하거나, 또는 추상화 상위수준 모델을 추상화 하위수준 모델을 대상으로하는 로컬시뮬레이션에서 추상화 하위수준 모델과 함께 실행하여 상기 추상화 하위수준 모델을 대상으로하는 로컬시뮬레이션에서의 예상입력(expected input)과 예상출력(expected output)을 구하여 이를 이용함으로서 추상화 하위수준 모델을 대상으로하는 로컬시뮬레이션을 빠르게 수행하는 것이다. Hayeoseo using simulation results for executing the simulation using abstract lower level models in parallel or in part, or abstract high-level model, the abstraction run with abstract lower level models in the local simulation that targets the low-level model, the abstraction obtain the expected input (expected input) and the expected outputs (expected output) at the local simulate that target the lower-level models to quickly perform a local simulation to target lower-level abstraction model by using it. 즉. In other words. 본 특허에서는 디버깅이나 스펙 변경들에 의하여 1 이상의 설계객체가 변경되기 전에 수행되어진 시뮬레이션의 결과를 이용하여서, 또는 추상화 상위수준 모델 M(HIGH)을 이용한 시뮬레이션 결과를 이용하여서, 또는 추상화 상위수준 모델 M(HIGH)를 함께 이용하여서 추상화 하위수준 모델 M(LOW)을 이용한 시뮬레이션을 빠르게 수행하는 것에 촛점을 맞추고 있다. This patent, hayeoseo using a simulation result of been carried out before the one or more design objects by the debugging or specification change change, or hayeoseo using the simulation results using the abstract high-level model M (HIGH), or abstract high-level model M hayeoseo use (HIGH) together and focused to quickly perform simulations using a low-level abstraction model M (LOW). 따라서 상기 추상화 상위수준 모델 M(HIGH)을 이용한 시뮬레이션을 빠르게 수행하는 방법은 본 특허에서의 방법을 연속적으로 적용하여서 상기 추상화 상위수준 모델 M(HIGH)보다 더 추상화 수준이 높은 모델 M(HIGHER)(이 경우에는 상대적으로 M(HIGHER)가 추상화수준이 높은 모델이고, M(HIGH)가 추상화수준이 낮은 모델이 됨)을 이용하는 시뮬레이션 결과를 이용하거나, 또는 통상적인 분산병렬 시뮬레이션을 이용하는 것도 가능하고, 또는 일반적인 단일 시뮬레이션을 이용하는 것도 가능하다. Accordingly, the abstract high-level model M (HIGH) To quickly perform the simulation are the hayeoseo continuously applied to the method of the patent wherein the abstract high-level model with high more levels of abstraction than M (HIGH) model M (HIGHER) using ( in this case, a relatively M (hIGHER) the level of abstraction is high model, M (hIGH) is also possible to use by using the simulation result using the search is a low model abstraction levels), or a conventional distributed parallel simulation, or it is also possible to use a common single simulation. 본 특허에서 특정 추상화 수준 모델을 이용한 시뮬레이션을 병렬적 실행하는 것에는 분산처리적병렬수행(distributed-processing-based parallel execution, 이를 앞으로 DPE로 약칭함)과 시간분할적병렬수행(timed-sliced parallel execution, 이를 앞으로 TPE로 약칭함)(추후 자세히 설명됨) 모두를 포함한다 (즉, 분산처리적병렬수행 방식의 병렬시뮬레이션과 시간분할적병렬수행 방식의 병렬시뮬레이션은 본 특허에서 제안하는 새로운 방식의 시뮬레이션만을 지칭하는 용어임). As the parallel running simulation with a unique level of abstraction model in this patent is a distributed processing enemy parallelism (distributed-processing-based parallel execution, hereinafter it to forward DPE) and time division ever parallelism (timed-sliced ​​parallel execution , to be described it in the future (later in detail abbreviated to TPE)) includes both (i. e., parallel simulation of the distribution process ever parallelism manner parallel simulations and time division ever parallelism scheme is the simulation of the new method proposed in this patent Im term that refers only). 자세한 설명을 위해서 우선 t-DCP(Temporal Design Check Point)와 s-DCP(Spatial Design Check Point)를 정의하기로 한다. Will be defined the first t-DCP (Temporal Design Check Point) and s-DCP (Spatial Design Check Point) for a detailed description.

t-DCP란 DUV 또는 DUV 내의 1 이상의 설계객체들을 대상으로 하는 시뮬레이션이 시뮬레이션 시간 0 이외의 임의의 시간 Ta에서부터 시작되어질 수 있도록 하는데 필요한 상기 DUV 또는 DUV 내의 1 이상의 설계객체들에 관한 동적정보(dynamic information)로 정의된다 (설계객체의 동적정보란 시뮬레이션 과정에서 특정 시뮬레이션 시점 또는 특정 시뮬레이션 구간(시뮬레이션 전체 구간일 수 있음)에서의 상기 설계객체에 존재하게 되는 1 이상의 시그널들 또는 신호선들 상의 논리값들, 또는 설계객체에 존재하게 되는 1 이상의 변수들 상의 값 또는 상수들 값임). t-DCP is a dynamic information related to one or more design objects in the DUV or DUV needed to be started from an arbitrary time Ta other than the simulation the simulation time 0 that target one or more design objects in the DUV or DUV (dynamic is defined as the information), the (dynamic information is a simulation process of a specific simulation time or a specific simulation period (simulation which may be the entire period from the design object) present in the design object to one or more of signals or signal lines on the logical value of the , or the constant value or on the one or more variables that are present in the design object value). 따라서, 설계객체의 상태정보는 t-DCP의 구체적 일 예이다. Thus, the status information of the design object is a specific example of a t-DCP. 그런데, 시뮬레이션이 가능한 모델은 DUV와 TB를 모두 포함하고 있어야만 한다. However, the simulation model is possible, there must include all of the DUV and TB. 따라서 시뮬레이션이 시뮬레이션 시간 0 이외의 임의의 시간 Ta에서부터 시작되어질 수 있도록 하려면 DUV를 Ta에서부터 수행할 수 있어야 할 뿐만 아니라 TB도 고려하여 주어야 한다. To ensure that the simulation can be started from any time Ta other than zero simulation time as well as be able to perform the DUV from Ta to TB should also be considered. 이를 위해서는 대략 3가지 방법을 생각할 수 있다. To do so can be considered roughly three ways. 그 첫번째 방법은 TB는 시뮬레이션 시간 0에서부터 실행시키고 DUV는 Ta에서부터 실행시키는 방식이다. The first method is a method to be performed from TB simulation time 0 and DUV is running from Ta. 이를 위해서는 TB가 반응적 TB(reactive TB)인 경우에는 DUV의 출력정보(따라서 이 출력정보를 앞선 시뮬레이션에서 획득하는 것이 필요함)를 이용하여서 우선 TB만을 시뮬레이션 시간 0에서부터 Ta까지 진행시킨 이후에 Ta에서부터는 TB와 DUV가 함께 연동하면서 수행될 수 있게 하거나, 또는 TB가 비반응적 TB(non-reactive TB)인 경우에는 우선 TB만을 시뮬레이션 시간 0에서부터 Ta까지 진행시킨 이후에 Ta에서부터는 TB와 DUV가 함께 연동하면서 수행될 수 있게 하면 된다. For this purpose, if TB is a reactively TB (reactive TB), the output information of the DUV hayeoseo use (thus is required for obtaining the output information in a previous simulation) first from Ta after which proceed only TB from the simulation time 0 to Ta It is that from after that proceeds if able to be performed while interlocking with the TB and DUV, or TB is non-reactively TB (non-reactive TB), first only the TB from the simulation time 0 to Ta Ta is TB and DUV and interlocking together and when to be performed. 그 두번째 방법은 TB도 시뮬레이션 시간 Ta에서부터 시작할 수 있도록 TB를 저장(save)하고 재시행(restart)하는 것이다. The second way is to store TB also be started from the simulation time Ta TB (save), and to retry (restart). 즉 TB도 DUV와 유사하게 시뮬레이션의 상태를 저장하거나 TB의 상태(TB의 상태란 시뮬레이션 특정시점 또는 일정기간에서의 TB내에 선언된 모든 변수들과 상수들의 값)를 저장함으로서 이를 이를 재설정함으로서 재시행되어진다. That is retried TB also by storing the status of similar simulation with DUV or by saving the state of TB (the values ​​of all the variables and constants are declared in the TB in the state of the TB field simulation a point in time or over a period of time), it resets this It is is. 그런데 하드웨어를 모델링한 DUV와는 달리 TB는 테스트 환경을 모델링한 것임으로 TB의 상태를 임의의 시점에서 재시행하려면 TB의 구술 형식을 제안하여야 하거나(예로, TB도 합성가능한 형식으로 구술) 또는 추가적인 수작업 과정을 거치는 과정이 필요하다. But unlike DUV modeling hardware TB is to enforce again the status of TB in the will of modeling a test environment at any time must propose an oral form of TB, or (for example, TB is also dictated a synthesizable format) or additional hand this process is necessary to go through the process. 세번째로는, TB의 주요요소중의 하나인 입력생성서브컴퍼넌트를 알고리즘방식의 입력생성서브컴퍼넌트 대신에 패턴방식의 입력생성서브컴퍼넌트로 대체하는 것이다. A third is to generate one of the input sub-components of the main elements of the TB replaced by the input pattern generating subcomponents of the system in place of input generated subcomponents of algorithmically. 입력생성서브컴퍼넌트는 DUV에 입력스티뮬러스를 공급하는 역할을 담당하는데 알고리즘방식의 입력생성에서는 DUV로의 입력공급을 시뮬레이션 시점 0에서부터 시작하지 않고 임의의 시점 Ta에서부터 시작하는 것이 어려운데 비하여 패턴방식의 입력생성은 패턴 포인터등을 이용함으로서 DUV로의 입력공급을 시뮬레이션 임의의 시점 Ta에서부터 시작하는 것이 매우 용이하다. Input generated subcomponent is the stimulus generation algorithm method plays a role of supplying the input stimulus in the DUV without entering the input supply to the DUV from the simulation time point 0 the input of that pattern way compared difficult starting from an arbitrary point in time Ta produced is very easy to start the input supply to the DUV by using a pointer such as a pattern simulating, from an arbitrary point in time Ta. 따라서, 패턴방식의 입력생성서브컴퍼넌트를 이용하기 위해서는 앞서서 진행된 시뮬레이션 진행과정에서 원 TB에서 생성되어져서 DUV에 인가되어지는 입력정보들을 시뮬레이션 전구간에 걸쳐서 탐침하여 1 이상의 파일로 저장하고, 이를 이 후에 수행되는 시뮬레이션에서 활용함으로서 TB를 임의의 시점 Ta에서부터 동작시키는 것이 가능한데, 이와 같은 패턴방식의 TB는 리그레션 데스트(regression test)에서 많이 이용되어지는 방법이다. Therefore, in order to use the pattern input methods generation subcomponent so it is generated in advanced simulations circle TB in the process prior to the probe input information that is applied to the DUV over the simulation jeongugan stored as one or more files, and do so after it is possible by utilizing the simulation in the TB is to operate, from an arbitrary point in time Ta, TB of this pattern method is a method which is widely used in desk regression (regression test). 이상의 방법들을 중 하나를 적용하기 위해서는 시뮬레이션 대상이 되는 모델 또는 시뮬레이션 환경에 부가적인 코드인 부가 코드를 부가할 필요성이 있는데 이와 같은 부가 코드는 본 특허에서의 검증 소프트웨어를 통하여 자동적으로 부가시킬 수 있다 (부가 코드의 구체적 예는 도 16과 도 17과 도 18을 참조함). There is to apply one of the above methods need to add an additional code on the model or simulation environment in which the simulated target additional code The additional code, such as may be automatically added in through the verification software in the present patent ( specific examples of the additional code is also refer to FIG. 18 and FIG. 16 and 17).

DUV 또는 DUV 내의 1 이상의 설계객체들의 상태정보와 같은 t-DCP를 이용하여서 DUV 또는 DUV 내의 1 이상의 설계객체들을 대상으로 하는 시뮬레이션이 시뮬레이션 시간 0 이외의 임의의 시간 Ta에서부터 시작되어질 수 있도록 하는 자세한 방법은 별도의 국내특허(10-2005-116706)에 이미 자세하게 설명되어져 있음으로 이를 참조하기로 하고 본 특허에서는 이에 대한 자세한 설명은 지면 제약상 생략하기로 한다. For details on this simulation that target one or more design objects in hayeoseo DUV or DUV using the same t-DCP with status information of DUV or design object, at least one in the DUV to be started from an arbitrary time Ta other than the simulation time 0 will be given to reference it in that already been described in detail in a separate Korean Patent (10-2005-116706), detailed description thereof is omitted in this patent are surface pharmaceutically.

이와 같은 t-DCP를 활용하게 되면 DUV에 대한 임의의 시뮬레이션을 시뮬레이션 시간 상에서 복수개의 시간 소구간(슬라이스)들로 나누고, 시뮬레이션시간소구간별로 독립적으로 시뮬레이션이 진행되어질 수 있음으로 시간병렬적인 시뮬레이션이 가능하게 된다. The this When utilizing such t-DCP gave any simulation of DUV on the simulation time of a plurality of timestamp intervals (slices), the simulation time predetermined intervals independently simulation is a time parallel simulation can be conducted by It is possible. 다만, 별도의 국내특허 10-2005-116706에서도 이미 설명된대로 현재 대부분의 HDL 시뮬레이터들이 동작되어지는 방식인 시뮬레이션이 이벤트 발생에 의하여 진행되는 이벤트 구동(event driven) 방식의 시뮬레이션인 경우에는 DUV 또는 DUV 내의 1 이상의 설계객체들의 상태정보와 같은 t-DCP를 이용하여서 DUV 또는 DUV 내의 1 이상의 설계객체들을 대상으로 하는 시뮬레이션이 시뮬레이션 시간 0 이외의 임의의 특정 시간 Ta에서부터 재시작(re-start) 되더라도 이벤트의 손실이 전혀 발생하지 않고 상기 임의의 특정 시간 Ta에서부터 시뮬레이션이 Ta 이후로까지 진행되어지더라도 시뮬레이션 시간 0에서부터 시뮬레이션이 시작되어서 Ta까지 진행되어지고 Ta 이후로까지 계속 진행되는 것과 상기 Ta에서부터 시작하여서 그 이후로는 동일한 시뮬레이션 결과를 얻을 수 있 However, if it is a separate Korean Patent 10-2005-116706 in which currently are operating, most of the HDL simulator, as previously described method of simulation is the simulation of the event-driven approach (event driven) is conducted by the event occurs, DUV or DUV hayeoseo used in the t-DCP, such as status information of one design object more even DUV or restart (re-start) from any particular time Ta other than the simulation the simulation time 0 that target one or more design objects in the DUV of events hayeoseo without any loss occurs from the any particular time Ta simulation progresses are not even from the simulation time zero simulation is started be being conducted to Ta begins to that proceed to a subsequent Ta from the Ta until after Ta that since we have to get the same simulation results 록 하는 것이 매우 중요하다. Rock it is very important to. 상기 별도의 특허 10-2005-116706에서는 이와 같은 것이 가능한 구체적 방법들을 자세히 설명하고 있는데 본 특허에서는 지면 제약상 자세한 설명은 생략하는 대신(자세한 것은 10-2005-116706을 참고)에, 핵심 사항에 대해서만 언급하기로 한다. Instead (for details refer to 10-2005-116706) to the separate 10-2005-116706 In this patent there is described in detail and specifically how the potential of the ground in this patent pharmaceutically detailed description is omitted, only the key points It will be mentioned. 즉 상기 임의의 특정 시간 Ta에서부터 재시뮬레이션이 올바르게 되기 위해서는 앞서서 수행된 시뮬레이션에서 시점 Ta에서의 상태정보만을 저장하지 않고 일정한 시간구간 (Ta - d) (d는 모델에서 한 이벤트에 의하여 다른 이벤트가 트리거되는 최대 시간 간격으로 d 값은 시뮬레이션 대상이 되는 모델에 따라서 달라지는데 사용자로부터 받을 수 있거나 혹은 자동화된 방식으로 계산되어질 수 있음) 에서부터 Ta까지의 상태정보를 저장하고(예로, Ta가 10,000,000나노초인 경우에 상태정보 저장은 10,000,000나노초에서의 한 시점에서만 수행하지 않고 9,999,990나노초부터 10,000,000나노초까지의 10나노초 시간구간에 걸쳐서 진행함. 이 경우에 d = 10 나노초임) 이와 같이 일정한 시간구간에서 저장된 상태정보를 이용하여서 재-시작도 상기 일정한 시간구간에서 진행( That is in order, from the any particular time Ta is re-simulation is properly simulated constant time intervals without saving only the status information at the time point Ta in performed in advance (Ta - d) (d is the other event triggered by an event in the model the maximum time interval d value storing state information from that therefore varies can be calculated or can be obtained from a user or an automated fashion to a model that simulates the destination) to Ta and (for example that, in the case where Ta is 10 million nanoseconds state information storage is also conducted over a period of 10 nanoseconds, the time interval without having to perform only one time in 10 million nanoseconds from 9.99999 million nanoseconds to 10 million nanoseconds. in this case, in d = 10 nano-seconds) using the stored state information at regular time intervals as described above hayeoseo re-start also held in the fixed time interval ( 서의 예로, 9,999,990나노초에서부터 10,000,000나노초까지에서 저장된 상태정보를 이용하여서 재-시작을 9,999,990나노초에서부터 10,000,000나노초까지에서 진행)한다. 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). 본 특허에서의 분산처리적병렬시뮬레이션에서 1 이상의 로컬시뮬레이션이 이벤트-구동 방식의 시뮬레이션으로 수행되는 경우에는 이와 같은 이벤트 손실이 없는 재-시작이 올바른 롤백 수행에 있어서 매우 중요한데, 상기의 방법을 사용하게 되면 올바른 롤백 수행이 가능하게 된다. Present in distributed processing enemy parallel simulation in the patent one or more local simulation event - if done by the simulation of the driving method, this material does not have such an event loss - very important in the beginning is carried out right roll back, to use the above method If it is possible to perform proper rollback.

s-DCP란 DUV 또는 DUV 내의 2 이상의 설계객체들을 대상으로 하는 시뮬레이션을 2 이상의 시뮬레이터들에 나누어서 분산병렬 시뮬레이션을 수행하는 경우에 이들 2 이상의 시뮬레이터들에 나누어진 설계객체들간에 분산병렬 시뮬레이션 실행 과정에서 필요한 시그널값들의 올바른 전달 또는 트란젝션값들의 올바른 전달을 위한 통신(communication) 및 동기화(synchronization)를 최소화 하는 것에 필요한 상기 DUV 또는 TB의 상이한추상수준 동일모델에 관한 동적정보 또는 이 상이한추상수준 동일모델 내의 1 이상의 설계객체들에 관한 동적정보, 또는 상기 DUV 또는 TB에 관한 동적정보 또는 DUV 또는 TB 내의 1 이상의 설계객체들에 관한 동적정보, 또는 상기 DUV와 TB의 추상화 상위수준 모델, 또는 시뮬레이션이 빠르게 수행되어질 수 있도록 최적화(예로, VCS의 two-state sim s-DCP is in the distributed parallel simulation execution process between the design object divided in these two or more simulation case of performing simulation of two distributed parallel simulation by dividing the above simulator that target two or more design objects in the DUV or DUV dynamic information, or a different level of abstraction, the same model for communication (communication) and a different level of abstraction, the same model of the DUV or TB required to minimize the synchronization (synchronization) for the correct delivery of the correct transfer or dextran rejection value of the required signal value the dynamic information, or dynamic information, or the abstract high-level of the DUV and TB model relating to dynamic information, or one or more design objects in the DUV or TB relating to the DUV or TB relating to within one or more design objects, or simulating fast optimized to be performed (for example, VCS of the two-state sim ulation 옵션으로 최적화되거나, 또는 VCS의 Radiant Technology 등과 같은 방식으로 최적화되거나, 또는 이들 두 방법들의 조합된 방식으로 최적화. 뿐만 아니라 NC-sim 또는 ModelSim의 경우에서도 VCS와 유사한 최적화기법들을 사용하여서 최적화)되어진 DUV와 TB 전체 모델로 정의된다. Or optimize ulation options, or or optimized in the same way as the VCS for Radiant Technology, or been these two methods optimize the combined approach of, as well as NC-sim or hayeoseo even if the ModelSim uses optimization techniques similar to VCS optimization) DUV and TB is defined as the entire model. 이와 같은 s-DCP는 분산병렬 시뮬레이션에서 특정 로컬시뮬레이터로 수행되는 특정 로컬설계객체가 시뮬레이션되는 과정에서 함께 시뮬레이션되면서 상기 특정 로컬설계객체의 로컬시뮬레이션 S_l(k) 수행의 예상입력(expected input)과 예상출력(expected output)(본 특허에서 "로컬시뮬레이션 수행의 예상입력과 예상출력"이라 함은 실제 수행에 앞서서 또는 실제 수행 도중에 예측되어진 예상입력과 예상출력을 정의하는 용어임. 구체적으로 실제 수행에 앞서서 또는 실제 수행 도중에 예측되어진 이라는 의미는 해당 시뮬레이션 실행 시작 전에 예측되어지거나, 또는 해당 시뮬레이션의 실행 도중에 해당 입력을 인가하는 특정 시뮬레이션 시점에 앞서서 또는 이 특정 시뮬레이션 시점에서 동적으로 예측되어지고 해당 출력이 출력되는 또 다른 특정 시뮬레이 Such s-DCP is distributed parallel simulation as simulated together in the course of a specific local design object, the simulation is performed in a specific local simulator on the expected input of performing the local simulation S_l (k) of the specific local design object (expected input) and the estimated output term (expected output) (the patent on the "expected input of the local simulation performed with the expected output" represents the term used to define the predicted expected input and expected output been in the middle or in practice prior to the actual performance. More specifically, prior to the actual performance or meaning been predicted during the actual performance is or is predicted before the simulation is running start, or prior to the specified simulation time for applying the input during the execution of the simulation or being dynamic prediction in this particular simulation time of the output, the output another specific simulator 시점에 앞서서 또는 이 또 다른 특정 시뮬레이션 시점에서 동적으로 예측되어지거나, 또는 이 둘을 혼용한 방식으로 예측되어지는 것 모두를 포함하는 의미임. 따라서 s-DCP는 추상화 상위수준의 DUV와 TB 전체 모델 자체일 수도 있으며, 빠르게 시뮬레이션될 수 있도록 최적화된 DUV와 TB 전체 모델 자체일 수도 있으며, 혹은 시간적으로 앞서서 수행된 시뮬레이션에서 수집된 1 이상의 설계객체에 대한 입출력정보, 혹은 이들의 조합일 수 있음)을 얻는 것에 사용되어져서, 우선 상기 예상입력을 상기 특정 로컬설계객체에 인가하여 실제 로컬시뮬레이션 S_l(k)을 실행시켜 얻어진 상기 특정 로컬설계객체의 실제출력(actual output) 값이 상기 예상출력과 일치한다면 다른 로컬시뮬레이터들로 수행되는 시뮬레이션 대상이 되는 모델 내의 여타의 로컬설계객체들 Prior to the time or the or the dynamic prediction in another specific simulation time or means Im so s-DCP is DUV and TB entire model of abstraction higher level that includes all that which is predictable in a way you mix the two, may be a self, which can be quickly and may be optimized to be simulated DUV and TB throughout the model itself, or the input and output information on the time the simulated one or more design objects collected by the performed prior to, or a combination thereof) to so used as to obtain, first, if by applying the estimated input to the specific local design object, the actual local simulate the actual output value (actual output) of the specific local design objects obtained by executing the S_l (k) matches the expected output the rest of the local design objects in the model of the simulation is performed subject to other local simulator 의 통신 및 동기화를 생략하고 이 특정 로컬시뮬레이션 S_l(k)의 시뮬레이션 시간을 독립적으로 앞으로 진행시킬 수 있는 역할을 수행하게 된다. Omit the communication and synchronization, and will perform the role to push forward the simulation time of the particular local simulation S_l (k) independently. 상기 특정 로컬설계객체의 로컬시뮬레이션 수행의 예상입력과 예상출력으로 사용되어지는 상기 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 코드 또는 이들의 조합) 또는 시뮬 The specific to the local design object that is on the local simulation performed using the expected input and expected output the s-DCP provides information and its simulated progress along the control (estimated input and output use - the run proceeds, the actual input and output use - the run proceeds, do roll back, etc. as each to be described later) functions to separate codes (a separate code so is dictated as HDL, such as Verilog or SystemVerilog or VHDL or included in the model dictated by HDL, or a C / C ++ / SystemC order to or is so is oral interface to the model dictated by HDL through such PLI / VPI / FLI, or so is dictated by HDL and C / C ++ / SystemC mix through such PLI / VPI / FLI included in the model dictated by HDL At the same time that this doeeojim interface) the target design simulation code (normal HDL code or SystemC code or C / C ++ code, or HVL SDL code or code, or a combination thereof) or the simulator 이션 환경(예로, 시뮬레이션 컴파일 또는 일레보레이션 또는 실행을 위한 시뮬레이션스크립트)에 부가되어져야 하는데 통상적으로는 모델의 TB 부분(즉 DUV의 바깥 부분)에 부가되어지고 C/C++ 코드로서도 부가(본 특허에서 이 부가되는 코드 전체를 "부가 코드"로 통칭함)되어지는 것이 일반적이나 경우에 따라서는 DUV에도 일부분이 부가되어지며, 이와 같은 과정은 본 특허에서의 검증 소프트웨어가 시뮬레이션 대상이 되는 모델을 구술한 1 이상의 설계소스 파일 또는 시뮬레이션 환경 파일 등을 읽어들여서 자동화된 방식으로 생성시킬 수 있다 (구체적인 예는 도 16, 도 17, 도 18, 도 19를 참조. 부가 코드의 내부구조와 내부기능은 도 8, 도 27을 참조). Orientation environment to be added to (e.g., simulation simulation script for compiling or ilebo illustration or running) typically is added as a portion is being C / C ++ code into the TB of the model (i.e., outside of the DUV) (this patent this becomes the additional code whole that is being hereinafter collectively referred to as "addition code") added is thus is a portion to DUV in general or case, such a process in the dictation model is verified software in this patent that this simulation target can be read deulyeoseo generated in an automated manner and the like for one or more design source files or the simulation configuration file (specific example with reference to Fig. 16, 17, 18, 19. additional internal structure of the code and the internal features are also 8, with reference to Fig. 27). 이와 같은 부가 코드가 해당 로컬시뮬레이션 대상이 되는 로컬설계객체에 우선 예상입력을 인가하고, 상기 로컬설계객체가 시뮬레이션되면서 상기 로컬설계객체에서 출력되는 실체 출력을 예상출력과 비교하여 이 비교가 일치하면 그 다음 예상입력을 인가하게 되는 것임으로 통상적인 테스트벤치의 기능(입력을 인가하고 출력이 예상대로 나오는지를 조사하는 기능이 일반적인 테스트벤치의 기본 기능임)과 매우 유사함으로 이와 같은 기능을 수행할 수 있는 부가 코드를 자동화된 방식으로 생성시키는 것이 어렵지 않게 가능하다. By this, such additional codes match, that the comparison is applied to the local simulation first estimated input to a local design object that is subject to, the local design object is simulated as compared with the expected output for instance output generated from the local design objects that of a conventional test bench shall be that applied to the next expected input capability (applied to the input and the output is the ability to investigate comes out as expected, the basic functions being of the general test bench) to perform such functions by very similar it is possible without difficulty to generate an additional code in an automated fashion. 뿐만 아니라, 롤포워드(roll-forward)가 필요한 경우(롤포워드가 필요한 경우란, 다른 로컬시뮬레이션에서 수행된 실제출력과 예상출력의 불일치가 발생하고 이 불일치 시뮬레이션 시점 t_d가 이 로컬시뮬레이션의 현재 시뮬레이션 시점 t_c보다 시간적으로 미래에 존재함으로 이 로컬시뮬레이션을 시뮬레이션 시점 t_d까지 진행시키도록 하여야 할 경우를 말함. 그러나 t_c에서부터 t_d까지 이 로컬시뮬레이션을 예상입출력이용-런 방식으로 진행하다가 t_c에서부터 t_d사이의 시뮬레이션 시점 t_b에서 이 로컬시뮬레이션에서 실제출력과 예상출력의 불일치가 발생하면 이 로컬시뮬레이션은 t_b에서 진행을 일시 정지하고 이 새로운 롤백가능 시점 t_b와 롤백가능성 발생을 다른 로컬 시뮬레이션들에게 알려야 함. 따라서, 롤포워드는 이 로컬시뮬레이션 입장에서 In addition, roll-forward (roll-forward) are needed (if the roll-forward needed is, the mismatch of the actual output and the expected output has been performed in different local simulation occurs and the current simulation of the mismatch simulation local simulation is time t_d point by temporally than t_c exist in the future, saying the case will be to proceed with this local simulation to simulate the time t_d But from t_c to t_d the local simulations predicted output use - simulation time between the while proceeding to run way from t_c t_d If the discrepancy of the actual output and expected output occurs at the local simulation in t_b that this local simulation to pause the progress in t_b and inform the new roll back point is t_b and rollback possibility to other local simulations. Therefore, the roll forward in this simulation, the local perspective 는 예상입출력이용-런 방식으로 계속 시뮬레이션을 진행하는 것임으로 롤포워드를 특별하게 취급할 필요가 없음)에는 계속하여서 예상입출력이용-런을 진행하고 롤백이 필요한 경우에 롤백을 수행하고 이 롤백되어진 시점에서부터 실제입출력이용-런(본 특허에서 실제입출력이용-런 방식이란 분산병렬 시뮬레이션에서 각 로컬시뮬레이션들간의 데이터 - 각 로컬시뮬레이션들에 있어서 다른 로컬시뮬레이션들에서부터 오는 입력 또는 다른 로컬시뮬레이션들로 나가는 출력 - 전달을 실제로 수행하며 이 과정에서 필요한 동기화를 위하여 통상적인 보수적 방식의 동기화 또는 낙관적 방식의 동기화로 동기화를 진행하는 방식을 말함. 데이터전달(통신) 및 동기화를 수행하는 간격은 시뮬레이션 최소 정밀도(precision) 단위일 수도 있고, 시뮬레이션 최소 The use of expected output - time been performing a rollback, if necessary, proceed to a run and rollback, and the rollback - hayeoseo continue there need not be treated as a special roll with will to proceed with the continued simulation to run the way forward), and predicted output used from the actual input and output using-run (as seen from the patent actually output using-run scheme is data between each local simulation in a distributed parallel simulation output linking with other local simulations from coming input or other local simulation according to the respective local simulation - actually performing the transmission, and refers to conventional conservative way synchronization or system to proceed to synchronize with a sync optimistic manner to the synchronization required by the process. interval for performing data transmission (communication) and the synchronization simulation minimum accuracy (precision) It may be a unit, at least simulation 간(time unit) 단위일 수도 있고, 사이클 단위일 수도 있고, 트란젝션 단위일 수도 있는 등 다양함) 방식에 의한 통상적인 분산병렬 시뮬레이션(따라서 실제입출력이용-런 과정에서는 통상적인 보수적 분산병렬 시뮬레이션으로 진행할 수도 있을 뿐만 아니라, 통상적인 낙관적 분산병렬 시뮬레이션으로 진행할 수도 있음)이 수행되도록 제어하면 되는데, 이와 같이 제어하는 방법도 롤백을 위해서는 통상적인 낙관적 분산병렬 시뮬레이션에서 사용하는 롤백 방법들(낙관적 분산병렬 시뮬레이션에서는 반드시 롤백이 가능하도록 지원하여야 함으로, 롤백을 위한 다양한 방법들은 이미 많은 낙관적 분산병렬 시뮬레이션 관련 문헌들에서 자세히 설명되어 있음으로 이에 대한 자세한 설명은 지면 제약상 본 특허에서는 생략하며, 이를 위해서는 상기 문헌들 In a conventional conservative distributed parallel simulation in the run-process-to-(time unit) may be a unit, it may be a cycle-by-cycle, Tran projection unit one may like diversity) conventional distributed parallel simulation according to the method (and thus the actual input and output used in the not only may proceed, conventional optimistic dispersion there is when a parallel simulation controlled so that the may proceed) is performed, and thus a method of controlling also to the rollback rollback used in conventional optimistic distributed parallel simulation method (optimistic distributed parallel simulation in necessarily by to be supported to enable roll back, a variety of methods for rollback are detailed description thereof with that already described in detail in a number of optimistic distributed parallel simulation literature will be omitted in the ground pharmaceutically this patent, to do this in the literature 참고하기로 함) 또는 별도의 특허(10-2005-116706) 에서 이미 자세하게 설명된 저장(save) 및 재출발(re-start) 방법을 원용하면 되고 (예로, 설계 상태정보를 1 이상의 시뮬레이션 시점 또는 시뮬레이션 일정구간에서 파일로 저장하고 롤백 시에 상기 설계 상태정보가 저장된 1 이상의 시뮬레이션 시점 또는 구간 중의 특정 시뮬레이션 시점 또는 구간에서 재출발시키는 구체적 방법은 Verilog의 경우에는 force/release 명령어 구문 또는 PLI/VPI의 acc_set_value() 함수를 사용하여 상기 특정 시뮬레이션 시점 또는 구간에서 설계 상태정보를 구성하는 해당 로컬설계객체의 변수들에 상기 저장된 상태정보 정보를 다시 쓰는 것이다. When reference is to a) or the distance to a separate storage has already been detailed in the patent (10-2005-116706) (save) and restart (re-start) method (for example, the design condition information for one or more simulation time or simulation for the specific method of storage in the predetermined period to a file and the design condition information is restarted at a specific simulation time or interval of the stored one or more simulation time or interval at the time of rollback, Verilog is acc_set_value of force / release command syntax or PLI / VPI ( ) to write the stored state information to the information variables of the local design objects that make up the design condition information from the specified simulation time interval or by using the function. 특히, 매 롤백 시마다 별도의 시뮬레이션 컴파일을 다시 수행하지 않고서도 설계 상태정보를 해당 로컬설계객체의 변수들에 재설정하는 방법은 VPI/PLI의 acc_set_value()를 사용하여서 파일로부터 상기 해당 로컬설계객체들의 변수들에 재설정할 설계 상태정보 값들을 상기 특정 시뮬레이션 시점 또는 구간에서 읽어들여서 해당 로컬설계객체들의 변수들에 설정하게 하면서, 해당 설계 상태정보 값들을 가지고 되는 상기 파일의 내용이 시뮬레이션 재출발 시점 또는 구간이 되는 상기 특정 시뮬레이션 시점 또는 구간에서의 해당 로컬설계객체들의 변수들 값을 가지도록끔 매 롤백 수행 전에 동적으로 바꿈으로서 가능하다), 통상적인 실제입출력이용-런 방식의 분산병렬 시뮬레이션은 이미 널리 알려져 있음으로 이 또한 상기 부가 코드와 이와 같은 기능을 In particular, the parameters of every rolling back each time a separate method to reset also the design state information simulation compiled without performing again the parameters for the local design objects, the above from the file hayeoseo use acc_set_value () of the VPI / PLI local design object as to the setting of the design state information values ​​to be reset to the variables of the particular simulation reads at the time or interval corresponding local design object, the contents of the file that has the appropriate design condition values ​​simulation that this restart time or interval the specific simulation dynamically is possible by changing the time or interval corresponding off the variables values ​​of local design objects so that it in before performing sheet roll back), the typical physical IO used - in that the distributed parallel simulation of the run method is already known the addition of the additional code and this function 수행하도록 자동화된 방식으로 상기 부가 코드를 생성하는 것이 어렵지 않게 가능하다 (구체적 예는 도 16, 도 17, 도 18, 도 19 참조하며, 이와 같은 기능을 수행하는 부가 코드의 구조적 구성은 도 8에, 모조코드는 도 27에 예시되어 있음). In an automated way to do it is possible without difficulty to the additional code generation (specifically, examples 16, 17, 18, see Fig. 19, and this structural configuration of the additional code that performs the same function in Figure 8 , the dummy code that is illustrated in Fig. 27). 즉, 분산병렬 시뮬레이션 환경에서 각기 다른 로컬시뮬레이터들에서 수행되는 로컬설계객체들 각각은 본 특허의 분산처리적병렬수행 방식(추후에 정의됨)을 위하여 부가되어지는 부가 코드로 인하여 우선 s-DCP에서 구해지는 예상입력을 활용하여서 각 로컬시뮬레이터들 각각으로써 로컬설계객체들 각각을 독립적으로 시뮬레이션 수행시켜서 각 로컬설계객체들의 출력값들을 각각 구하게 되고, 이들 실제출력값들 각각을 s-DCP에서 구해지는 예상출력들과 비교하여 이들 비교가 일치하게 되면 로컬시뮬레이터들간에 통신 및 동기화를 완전하게 또는 최대한 생략하고 각 로컬시뮬레이션 시간을 앞으로 진행(이와 같은 진행 방식을 예상입출력이용-런 방식이라 칭하고, 아래에서 더 추가적으로 설명함)하게 됨으로서 시뮬레이션 속도를 크게 높이는 것이 That is, each local design objects that are performed in different local simulator on distributed parallel simulation environment in addition is added to code first s-DCP due to which for the dispersion treatment ever parallel execution method of the present patent (as defined later) hayeoseo utilize the predictive input obtained each as a local simulator respectively, by independently performing the simulation of the local design objects each of which is rescued each of output values ​​of each local design object, those expected to be the actual output values, respectively obtained in the s-DCP output and by When matches are these comparative local simulator between communication and completely or possible omit the synchronization proceeds each of the local simulation time forward (to this proceeds the same way as expected input and output using comparison - referred to as the run method, more further described below, to increase significantly the speed of the simulation by being hereinafter) 가능하게 되는 것이다. It will be made possible. 만일, s-DCP의 예상출력들과 비교하여 이들 비교가 일치하지 않으면(이를 예상출력/실제출력 불일치시점이라 칭함) 이 경우에서만 로컬시뮬레이터들간에 통신 및 동기화 과정을 수행하면서 분산병렬 시뮬레이션을 진행하게 된다. If, if compared with the expected output of the s-DCP these comparisons do not match (referred to this as expected output / actual output disparity point) to proceed the distributed parallel simulation while performing communication and synchronization procedure to the local simulator between only in this case do. 또한, 한번 로컬시뮬레이터들간에 통신 및 동기화 과정을 수행하는 실제입출력이용-런 방식으로 전환(이 전환시점을 앞으로는 실제입출력이용-런 적용시점이라고 칭함. 이 실제입출력이용-런 적용시점이 될 수 있는 시점은 일반적으로 분산병렬 시뮬레이션을 진행하는 로컬시뮬레이션들 각각의 상기 예상출력/실체출력 불일치시점들에서 제일 시간적으로 뒤에 있는 시점 - 즉, 제일 시간적으로 과거인 시점 - t_lock 또는 이 t_lock 보다 시간적으로 뒤에 있는 임의의 시점 t_advance_lock이 될 수 있음. 그러나 시뮬레이션 성능 최적화를 위해서는 실제입출력이용-런 적용시점을 t_lock에 최대한 가깝도록 설정하는 것이 시뮬레이션의 성능을 최적화할 수 있음. 따라서 각 로컬 시뮬레이션은 예상입출력이용-런 방식의 시뮬레이션 진행 과정에서 예상출력/실제출 In addition, once the real input and output used to perform the communication and the synchronization process between local simulator - referred to as the run application time point of the actual input and output using-run manner to a conversion (a future actual input and output using the switch point. Which may be the time the run application time is generally the time that the first time in the local simulation of each of the estimated output / entities output disparity point after traveling the distributed parallel simulation - that is, the first time in the past in point-in time behind the more t_lock or t_lock . may be any point t_advance_lock of However, in order to simulate the performance optimized physical IO used - that is to establish as far as close to a run-applied time in t_lock to optimize simulation performance, so each local simulations predicted output using - run expected output / actual submitted in the course of the simulation method 불일치시점을 만나게 되면 예상입출력이용-런 방식의 시뮬레이션 수행을 중지하고, 다른 모든 로컬 시뮬레이션들이 자신의 예상출력/실제출력 불일치시점을 알 수 있도록 자신의 예상출력/실제출력 불일치시점을 다른 모든 로컬 시뮬레이션들에게 알려야 함. 또한 각 로컬 시뮬레이션은 t_lock 시점 또는 t_advance_lock 시점으로 롤백할 수 있도록 로컬시뮬레이션의 시뮬레이션 상태(시뮬레이션 상태란 특정 시뮬레이션 시점에서의 시뮬레이션 프로세스의 실행이미지를 저장하여 체크포인트화 한 것으로 상용 시뮬레이터들을 대부분 이와 같은 체크포인트 기능이 있음. 예로, Synopsys사의 VCS 또는 Cadence사의 NC-Verilog 또는 Mentor사의 ModelSim 등의 시뮬레이터들의 save/restart 기능) 또는 로컬시뮬레이션으로 수행되는 1 이상의 로컬설계객체들의 상태정보를 t_lock If you encounter a discrepancy time of expected output used - to stop the execution of the run method simulation, and all other local simulation to their expected outputs / actual output disparity their expected outputs / actual output mismatch all other local simulate the time so you know when to also inform the addition of commercial simulators that each local simulation is to save the execution image of the simulation process of the local simulation simulation conditions (simulated condition is certain simulation of time to roll back to t_lock point or t_advance_lock point checkpoint Chemistry most that this checkpoint function. for example, Synopsys VCS's or at Cadence NC-Verilog or Mentor's t_lock the simulator of the save / restart function) or state information of the local design object, at least one simulation is performed with a local, such as ModelSim 점 또는 1 이상의 t_advance_lock 시점에서 주기적으로 또는 비주기적(실행에 앞서 설정한 특정조건 만족시 저장이 일아나도록)으로 저장하는 것이 필요함)한 후에도 계속적으로 실제 시뮬레이션 과정에서 발생하는 실제입력(actual input) 값들(이 실제입력값들은 분산병렬 시뮬레이션이 실제입출력이용-런 방식으로 진행되면서 이 분산병렬 시뮬레이션 환경의 1 이상의 다른 로컬시뮬레이션에서부터 오게 됨)을 s-DCP에서 구해진 예상입력들과 비교하다가 혹은 실제 시뮬레이션 과정에서 발생하는 실제출력값들을 s-DCP에서 구해진 예상출력들과 비교하다가(비교의 효율성을 위하여 예상값 - 예상출력 또는 예상입력 - 들과 실제 시뮬레이션 과정에서 발생하는 실제값 - 실제출력 또는 실제입력 - 들의 추상화 수준을 동일하게 맞추어서 비교하는 것도 가능한데, Periodically or non-periodically, even after it is needed) to save a (certain conditions two days to analog storage satisfies a set prior to execution) continuously the actual input occurring in the actual simulation process in the sense or t_advance_lock point than 1 (actual input) values ​​(the actual input values ​​are distributed parallel simulation physical IO used - a distributed search come from another local simulation least one of the parallel simulation environment progresses, the run method) the s-DCP while compared to the estimated input obtained from or physical simulation while the actual output values ​​generated in the process compared with the estimated output obtained from the s-DCP (estimated value for the efficiency of the comparison - the expected output or estimated input-and actual value occurring in the actual simulation process - the actual output or the actual input- it is also possible to compare their conformity to the same level of abstraction, 이와 같이 예상값과 실제값의 추상화 수준을 맞추는 기능을 수행하는 모듈을 어뎁터(adaptor) 또는 트란젝터(transactor)라 함. Thus, the module that performs the functions to match the level of abstraction of the expected and actual values ​​referred adapter (adaptor) or projector Tran (transactor). 예로 RTL에서 진행되는 분산병렬 시뮬레이션에서 예상값들과 실제값들의 비교는 실제값의 추상화 수준을 예상값과 같은 추상화 수준인 ca-트란젝션으로 올려서 비교하는 것도 가능할 뿐만 아니라, RTL 추상화 수준의 예상값들과 ca-트란젝션 수준의 실제값들을 모두 timed-트란젝션 추상화 수준으로 동일하게 올려서 비교하는 것도 가능), 일정횟수(이는 시뮬레이션 수행에 앞서서 입력으로서 설정하거나, 또는 시뮬레이션 과정 중에서 순응적으로 변경하는 것도 가능함) 이상으로 상기 비교가 같아진다면 이 시점에서부터는(이 시점을 앞으로는 실제입출력이용-런 해제시점이라고 칭함) 로컬시뮬레이터들을 실제입출력이용-런 방식에서 다시 해제시켜서 통신 오버헤드 및 동기 오버헤드를 다시 제거하고 시뮬레이션이 진행(이 경우에는 분산병렬 시뮬레이 Examples comparison of expected value and the actual value of distributed parallel simulation in progress at the RTL is also available as well, RTL abstraction level of the expected value comparing raise the level of abstraction of the actual value to the level of abstraction of ca- Tran rejection, such as the expected value and ca- tran can be all of the actual value of the rejection level compared to the same by raising the timed- Tran rejection level of abstraction), for setting as an input in advance of performing a certain number of times (this simulation, or simulation, adaptive changes in the process it is acceptable) jindamyeon the comparison equal to or higher from this point (the point in time in the future physical IO used - referred to as run-off time) the local simulator physical IO used - by re-released from the run-way communication overhead and synchronization overhead again removed, and the simulation is conducted (in this case, the distributed parallel simulated 의 로컬 시뮬레이션들 각각이 다른 로컬 시뮬레이션들과의 통신 및 동기화를 생략하고 독립적으로 진행할 수 있음으로 매우 빠르게 진행되어짐. 위에서 설명한 실제입출력이용-런 방식으로 진행되는 것과 대비하여서, 본 특허에서는 이와 같이 로컬시뮬레이션들 각각이 다른 로컬시뮬레이션들과의 통신 및 동기화를 생략하고 완전 독립적으로 진행하는 방식을 예상입출력이용-런 방식이라 칭함)되어질 수 있게 되며, 이상과 같은 예상입출력이용-런 방식의 시뮬레이션 진행과 실제입출력이용-런 방식의 시뮬레이션 진행 과정을 번갈아 가면서 반복함으로서 분산병렬 시뮬레이션의 성능을 크게 높일 수 있게 된다. Of doeeojim omit the communication and synchronization between the local simulation of each of the other local simulation and proceeds very quickly as may proceed independently of the actual input and output use described above. Hayeoseo compared to that proceeds to the run way, local as described above in the present patent the simulation of each skip the communication and synchronization with other local simulation and completely independent of the manner in which proceeds expected input and output used - referred to as the run method) it is able to be, expected input and output using the above-progress of run system simulation and physical IO use-alternate simulated progress of the run-way by repeating can be increased significantly the performance of a parallel distributed simulation. DUV와 TB내에 존재하는 1 이상의 설계객체들에 대한 입출력정보 또는 상기 DUV와 TB보다 추상화 수준이 높게 구술된 DUV와 TB를 모두 포함하는 시뮬레이션 모델 또는 시뮬레이션이 빠르게 수행되어질 수 있도록 최적화되어진 DUV와 TB 전체 모델은 s-DCP의 구체적 일 예들이다. Total DUV and TB the DUV and simulation model or simulation of the input and output information or the DUV and levels of abstraction than TB for one or more design objects present in the TB includes all of the high oral DUV and TB been optimized to be performed quickly s model of the concrete-DCP are one example. 뿐만 아니라 분산병렬 시뮬레이션에서 각 로컬시뮬레이션에서 수행되도록 나누어진 설계의 일부분(로컬시뮬레이터에 의하여 수행되는 설계의 일부분, 즉 로컬설계객체)이 DUV 내에 존재하는 설계객체들(예로 Verilog 설계의 경우에는 설계객체들은 module들, VHDL 설계의 경우에는 설계객체들은 entity들, SystemC 설계의 경우에는 설계객체들은 sc_module들임)의 경계(boundary)와 일치하지 않는 경우에는 상기 각 로컬시뮬레이션들에서 수행되도록 나누어진 각 설계의 일부분들(즉, 분산병렬 시뮬레이션을 위하여 각각의 로컬시뮬레이터에 존재하게 되는 전체설계의 일부분들) 각각의 입출력정보가 s-DCP가 된다. As well as distributed parallel simulation part of the design is divided to run on each local simulation in (part of the design is carried out by local simulator, that is, the local design object) the design object present in the DUV (for example, the design object for Verilog design are each designed divided to run on the module in the case of a VHDL design, the design objects entity in the case of SystemC design, the design objects boundary (boundary) and if it does not match, each of the local simulation of sc_module deulim) the portion (i.e., part of an overall design that is present in each local simulator for a distributed parallel simulation), each input and output information is the s-DCP.

위에서 설명된 s-DCP를 이용한 통신 오버헤드 및 동기 오버헤드를 최소화시키는 분산병렬 시뮬레이션 과정에서 한가지 더 생각하여야 할 것은 상기 예상출력/실제출력 불일치시점들이 각 로컬시뮬레이터에서 수행되는 각 로컬설계객체마다 다를 수 있다는 것이다. It is also one kinds to be thinking more on distributed parallel simulation process, which minimizes the communication overhead and synchronization overhead using the s-DCP described above, the expected output / actual output disparity point are different for each local design object to be performed on each local simulator that they can. 이와 같은 경우에는 적어도 이 2 이상의 예상출력/실제출력 불일치시점들 중에서 시뮬레이션 시간 상에서 제일 과거시점인 시점 t_e에서부터 모든 로컬시뮬레이터들을 상기 통신 및 동기화 과정을 거치는 실제입출력이용-런 방식으로 수행하여야 한다. Such a case, at least the at least two expected output / actual output time of the mismatch of all the local simulator from a view point on a past t_e best simulation time in the communication and passes the synchronization process using the actual input and output - to be performed in a run-way. 이를 위해서 상기 제일 과거시점 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에서부터 다시 통신 및 동기화를 진행하지 않아도 되는 다음의 실제입출력이용-런 해제시점까지 진행한다). For this purpose, all the simulations more advanced than the most past time t_e may need to be rolled back (roll-back) to the time point t_e (if there are any specific example four design objects have been conducted respectively without going through the base-synchronous communication each time the design simulation object 1 = 1,000,000ns, design objects 1,000,010ns 2 =, 3 = 1,000,020ns design object, design object 4 = 1,000,030ns the t_e the 1,000,000ns is designed object if two, three design object, design objects 4 following which do not need to proceed with the re-communication, and synchronization from the run-time application 1,000,000ns - are also rolled back to 1,000,000ns and, distributed parallel simulation of at least the actual input and output used to target all of the design object-run manner by using the actual input and output It proceeds to run off point) using the actual input and output. 이와 같은 롤백을 위해서는 시뮬레이션 저장 및 재출발(save & restart) 기능을 이용하면 되는데, 시뮬레이션 저장 및 재출발 방법은 시뮬레이션 상태(simulation state)를 시뮬레이션 과정에서 주기적으로 또는 1 이상의 특정 시점에서 저장시켜서 이를 재로딩하여 재실행시키는 방법과 설계 상태(design state)(설계 상태는 해당 설계객체의 상태정보를 가르킴)를 시뮬레이션 과정에서 주기적으로 또는 1 이상의 특정 시점 혹은 구간에서 저장시켜서 이를 재로딩하여 재실행시키는 방법 등이 있는데, 이에 대한 자세한 방법도 별도의 국내특허들(10-2005-116706, 10-2006-19738)에서 가시도(visibility)를 얻기 위하여 또는 시뮬레이션을 신속하게 수행하기 위하여 사용한 방법을 적용하면 됨으로 본 특허에서는 이에 대한 자세한 설명은 지면 제약상 생략하기로 한다. In order for such a rollback there is when using a simulated storage and restarting (save & restart) function, simulation save, and to restart method is simulated state (simulation state) stored in the point-in-time, periodically or one or more during the simulation by reloading them redo method for the design conditions (design state) by storing in a periodic or at least one point in time or interval in the course of (design condition gareukim status information for the design object) simulating there is such a method for re-executed to re-load it, the detailed method of FIG doemeuro applying the method used to perform the simulation, or quickly to get the visibility (visibility) in a separate Korean Patent (10-2005-116706, 10-2006-19738) Therefore, in this patent for a detailed description thereof will be omitted Once the pharmaceutical. 단, 상기 시뮬레이션 저장 및 재출발을 가능하게 하려면 시뮬레이션 수행 도중에 위에서 언급된 대로 주기적으로 또는 1 이상의 특정 시점 혹은 구간에서 시뮬레이션 상태나 설계 상태를 저장하는 과정이 필요한데(이와 같은 과정을 체크포인트(checkpoint) 과정 또는 체크포인팅이라 칭하고, 이 과정을 통하여 체크포인트를 생성한다고 칭함), 상기 1 이상의 특정 시뮬레이션 시점 혹은 구간에서 시뮬레이션의 상태나 설계 상태를 저장하여서 추후에 상기 1 이상의 특정 시뮬레이션 시점 혹은 구간에서부터 재-시뮬레이션(re-simulation)을 수행할 수 있게한 상기 1 이상의 특정 시뮬레이션 시점 혹은 구간 각각을 체크포인트라 칭한다. However, the simulation requires a process of storing save, and to enable the restart, as mentioned above, during execution of simulation, the simulation status periodically, or at least one point in time or interval or design condition (this check process, such as point (checkpoint) process or referred to as checkpointing, that through this process create a checkpoint quot;), said at least one specific simulation hayeoseo at the point or segment stores the status of the simulation and design state material from a specific simulation time or period and the one or more later simulations one or more the one capable of performing (re-simulation) is referred to as a specific simulated time intervals, or checks the respective points. 따라서 상기 설명된 롤백이 수행되어져야 하는 경우에 실제 롤백이 이루어지는 시점은 예상출력과 실제출력의 불일치가 발생한 시점들 중에서 제일 시간적으로 과거인 불일치 시점 t_est이 아니고 이 t_est과 동일하거나 또는 시간적으로 과거 방향으로 t_est와 제일 가까운 특정 체크포인트가 롤백 대상 시점이 된다. Therefore, the time when the when actual roll back when a rollback be is performed explanation expected output and not the mismatch point t_est past the first time from the time point mismatch occurs in the actual output the same as the t_est or temporally past direction in particular the t_est the nearest check point is a point in time rollback target.

본 특허에서의 분산처리적병렬수행 방식의 통신 오버헤드와 동기 오버헤드의 최소화를 위하여 사용되는 예상입력/예상출력은 비트/비트벡터 타입의 시그널 단위로 표현될 수도 있고, 혹은 상위 추상화 데이터구조(예로, 레코드 타입 등) 타입의 트란젝션 단위로 표현될 수도 있다. And the present patent distributed processing enemy parallelism scheme in the communication overhead and expected to be used in order to minimize the synchronization overhead in / expected output may be expressed as a signal unit of the bit / bit-vector type, or parent abstract data structure ( for example, it may be represented by Tran projection unit of a record type, etc.) type. 트란젝션 단위의 경우에는 매사이클의 트란젝션일 수도 있고, 여러사이클의 트란젝션일 수도 있다. In the case of dextran, the projection unit may be a dextran rejection of each cycle, may be a dextran rejection of several cycles. 따라서 예상입력과 실제입력의 비교 또는 예상출력과 실제출력의 비교는 모델의 추상화 수준에 따라서 시그널 단위에서 수행되어지거나, 또는 매사이클의 트란젝션 단위에서 수행되어지거나, 또는 여러사이클의 트란젝션 단위 등 여러 추상화수준에서 수행되어질 수 있다. Therefore, a comparison of expected input and the comparison or the expected output and the actual output of the physical inputs or performed in the signal unit, depending on the level of abstraction of the model, or or is carried out at Tran projection unit of each cycle, or several cycles Tran rejection unit etc. It can be performed on multiple levels of abstraction. 따라서, 본 특허에서 예상출력과 실제출력의 비교 또는 예상입력과 실제입력의 비교를 이야기하는 경우에는 상기의 비교들이 모델의 추상화 수준에 따라서 시그널 단위에서 수행되어지거나, 또는 매사이클의 트란젝션 단위에서 수행되어지거나, 또는 여러사이클의 트란젝션 단위에서 수행되어지거나, 또는 시간개념이 없는 트란젝션(un-timed transaction) 단위에서 수행되어지는 것들 모두 포함하는 것이다. Thus, when talking on a comparison or expected input and comparison of the actual type of the expected output with the actual output from this patent, the comparison of that or is performed on the signal unit according to the abstraction level of the model, or in a tran projection unit of each cycle or is carried out, or is carried out in several cycles or dextran rejection units, or to include all concept of time is not rejection Tran (un-timed transaction) to be performed in those units.

위에서 설명한 본 특허에서의 분산병렬 시뮬레이션 방법을 본 특허에서는 s-DCP를 이용한 분산적병렬수행(Distributed Parallel Execution) 방식 또는 줄여서 분산처리적병렬수행 방식 또는 분산처리적병렬시뮬레이션(즉 분산처리적병렬수행 방식 또는 분산처리적병렬시뮬레이션이란 통상적인 분산병렬 시뮬레이션 방식이 아니라 s-DCP를 활용한 예상입력과 예상출력을 사용하여 분산시뮬레이션의 통신 오버헤드와 동기 오버헤드를 최소화시키는 본 특허에서 제안되어지는 분산병렬 시뮬레이션 방식만을 말함)이라고 칭하기로 한다. In the distributed parallel simulation method according to the present patent described above patent distributed parallelism with s-DCP (Distributed Parallel Execution) scheme or by reducing dispersion treatment ever parallelism scheme or a distributed processing enemy parallel simulation (i.e. distributed processing enemy parallelism scheme or a distributed processing enemy parallel simulation is conventional distributed parallel simulation method is not using the expected input and expected output utilizing s-DCP which is proposed in the patent to minimize the communication overhead and synchronization overhead of a distributed simulation dispersion and referring only to that referred) parallel simulation method. 이와 같은 s-DCP를 이용한 분산적병렬수행 방식이 최대한의 성능을 내기 위해서는 실제입출력이용-런 해제의 총 횟수와 각각의 실제입출력이용-런 적용시점부터 실제입출력이용-런 해제시점까지의 전체 시간(즉, 실제입출력이용-런 방식으로 시뮬레이션이 수행되는 전체 시간)을 최소한으로 하는 것이 매우 중요하다. Such s-DCP distributed parallelism using the scheme in order to get the maximum performance of physical IO used - the total number of run-off and the respective actual output used-run applying physical IO used from the time-run total time of release and the time it is very important to a minimum (i.e., the actual input and output method using a run the total time that the simulation is carried out). 이를 위해서는 각 로컬시뮬레이션 수행의 예상입력과 예상출력을 구하는데 사용되어지는 s-DCP의 정확도가 매우 중요하다. For this purpose it is important that the accuracy of s-DCP that was used to obtain the expected input and expected output of each local performing simulation. 즉 s-DCP의 정확도가 높을수록 시뮬레이션 전체 구간에서 실제입출력이용-런 방식으로 수행되는 구간은 최소한으로 할 수 있고 대부분의 구간을 예상입출력이용-런 방식으로 수행할 수 있음으로 인하여 분산병렬 시뮬레이션의 성능을 결정적으로 제약하는 요소인 통신 오버헤드와 동기 오버헤드를 크게 줄일 수 있기 때문에 분산병렬 시뮬레이션의 성능을 크게 높일 수 있다. That s-DCP accuracy is higher the simulated physical IO used in all sectors of-period is performed in the run method will be minimal, and most of the period expected output used - in a distributed parallel simulation because of that can be done in the run mode since the elements of the communication overhead and synchronization overhead for pharmaceutical performance conclusively be significantly reduced can significantly improve the performance of a parallel distributed simulation. 그러나 s-DCP의 정확도뿐만 아니라 s-DCP를 획득하는데 필요한 시간, 즉 s-DCP 획득시간도 매우 중요하다. However, the time required for the accuracy of s-DCP, as well as acquiring the s-DCP, ie it is also very important s-DCP acquisition time. 왜냐하면, s-DCP의 정확도가 제일 높은 것은 똑같은 추상화 수준의 모델(즉, 분산병렬 시뮬레이션 대상이 되는 모델)로 시뮬레이션하여서 로컬설계객체를 위한 예상입력과 예상출력 또는 예상입력 또는 예상출력을 얻는 것이 제일 정확하지만, 이 경우에는 이를 획득하는데 소요되는 시간이 일반적으로 매우 길어짐으로 대부분의 경우에는 많은 문제가 있다. Because, s-DCP accuracy is the highest thing in the same abstraction level models (ie, distributed parallel simulation models that target) to simulate hayeoseo to obtain the expected inputs and expected outputs or expected to enter or expected outputs for local design objects first correct, but in this case there are many, many issues in this case generally very lengthened the time it takes to obtain them. 그러나, 최소한 똑같은 추상화 수준의 모델로 시뮬레이션하면서 s-DCP를 얻는 이와 같은 방법이 매우 효율적인 경우가 있는데, 리그레션 테스트(regression test)를 수행하는 경우 또는 설계가 매우 국지적으로 변경된 경우 또는 일반적으로 특정 테스트벤치를 사용한 시뮬레이션은 전체 검증 과정에서 오직 한번만 수행되지는 않음으로 먼저 앞서서 수행된 1 이상의 시뮬레이션 과정에서 기 획득된 s-DCP를 활용할 수 있는 경우들이 그와 같은 경우이다. However, at least there is the same level of abstraction of the case while the simulation to model such a way to get the s-DCP very efficient, league, if regression test cases to perform (regression test) or design is very locally altered or generally specific test simulation with benches is if you can make use of the s-DCP group obtained not only in a first simulation process carried out ahead of the one or more is not done only once in the entire verification process are like that. 즉, 역호환성(back-ward compatibility)을 조사하는 리그레션 테스트에서는 대부분의 테스트들이 오류 발견 없이 패스되어지는데 이와 같은 리그레션 테스트 과정을 앞서서 같은 수준의 추상화 수준의 설계객체를 이용하여서 시뮬레이션하면서 얻어진 s-DCP를 활용하여서 본 특허에서의 s-DCP를 이용한 분산적병렬수행 방식 또는 분산적병렬수행/단일수행 혼용방식(추후에 설명됨)으로 시뮬레이션을 수행하면 이 얻어진 s-DCP의 정확도가 매우 높음으로 대부분의 테스트에서 상기의 실제입출력이용-런 해제의 총 횟수와 각각의 실제입출력이용-런 해제시점부터 실제입출력이용-런 적용시점까지의 전체 시간이 최소한으로 할 수 있음으로 리그레션 테스트를 분산병렬 시뮬레이션 방식으로 시뮬레이션의 성능을 최대한으로 하여 매우 신속하게 수행하는 것이 가능 That is, backward compatibility (back-ward compatibility) of the regression tests for irradiating the obtained while most of the tests simulating hayeoseo using the error path is makin this regression testing process design objects of the same level of abstraction level prior to without finding s utilizing -DCP hayeoseo distributed parallelism with s-DCP in the present patent system or distributed parallel execution / single mixing method carried out when performing a simulation with a (to be described later), the s-DCP accuracy is very high in the obtained in most of the tests using the the actual input-run total number of times and each physical output using the free-run-off physical IO used from the time - rUN applied disperse the regression testing that the total time and the time can be minimized in a parallel manner to simulate the performance of a simulation as possible it can be carried out very quickly 다. The. 디버깅이나 스펙 변경 등으로 인하여 설계가 국지적으로만 변경된 경우에도 설계가 변경되기 이전의 시뮬레이션 과정에서 수집한 s-DCP를 이용하여서 분산적병렬수행 방식 또는 분산적병렬수행/단일수행 혼용방식(추후에 설명됨) 또는 인크리멘탈 시뮬레이션을 활용한 분산처리적병렬 방식(추후에 설명됨)으로 시뮬레이션을 수행하게 되면 시뮬레이션의 성능을 최대한으로 하여 매우 신속하게 수행하는 것이 가능하다. For debugging or specification change such as due to the design it is locally only, even if it has changed hayeoseo using a s-DCP collected from previous simulation process to design changes distributed parallel execution mode or distributed parallel execution / single performing mixing method (later When the described search) or incremental described in mental simulation distributed processing enemy parallel (further utilizing) to perform the simulation by a simulation of the performance as much as possible it is possible to carry out very quickly.

뿐만 아니라 본 특허에서의 분산처리적병렬수행 방식에 의한 분산병렬 시뮬레이션을 수행 도중에 1 이상의 실제입출력이용-런 적용시점 t_lockstep부터 실제입출력이용-런 방식에 의한 분산병렬 시뮬레이션을 수행하는 것이 바람직스럽지 않은 경우(예로, 시뮬레이터의 라이센스 수가 많지 않아서 장시간 특정 시뮬레이션 태스크에 많은 시뮬레이터 라이센스를 할당할 수 없는 경우, 또는 실제입출력이용-런 방식의 분산병렬 시뮬레이션을 수행하는 경우에 기대되는 시뮬레이션 성능 향상이 크지 않은 경우, 등)에는 상기 실제입출력이용-런 방식의 분산병렬 시뮬레이션을 수행할 수 있는 시점 t_lockstep에서부터 상기 실제입출력이용-런 방식의 분산병렬 시뮬레이션을 수행하는 대신 단일 시뮬레이터를 사용하여서 DUV에 대한 단일 시뮬레이션을 수행(이 경 If undesirable to carry out the distributed parallel simulation using run-way-as well as the present patent distributed processing, distributed parallel simulate the way one or more physical input and output used to perform according to the parallel execution method of the in-run application physical IO used from the time t_lockstep (for example, in the case because there are only a limited number of the simulator's license that can not be assigned a number of simulator license for a long time a particular simulation task, or the actual input and output use - if this simulation performance improvement is not greater that expected in the case of performing distributed parallel simulation of the run way, etc.), the actual input and output use - from the point t_lockstep capable of performing distributed parallel simulation of the run way the actual input and output using-hayeoseo using a single simulator instead of performing distributed parallel simulation of the run way perform a single simulation for DUV ( In this case 에 TB에 대한 시뮬레이션은 상기 단일 시뮬레이터로 같이 시뮬레이션할 수도 있고, TB가 DUV를 수행하는 시뮬레이터와 다른 시뮬레이터(예로 HVL 시뮬레이터)로 수행하여야 하는 경우에는 TB는 다른 시뮬레이터로 연동시뮬레이션할 수도 있다. 이에 관한 좀 더 자세한 설명은 추후에 함)하는 것도 가능하다. The simulation of the TB may also be simulated as shown by the single simulator, TB cases to be carried out by the simulator and another simulator (e.g. HVL simulator and so on) that perform the DUV, the TB may be simulated linked to the other simulator. This relates a more detailed description it is possible to also at a later date).

즉 이와 같은 수행에서는 전체 시뮬레이션 시간의 일정기간 동안(예로서는, 시뮬레이션 시점 0에서부터 첫번째 예상출력/실제출력 불일치 시점까지)에서는 본 특허에서의 분산처리적병렬수행 방식을 채용한 분산병렬 시뮬레이션을 수행함으로서 로컬시뮬레이터들간의 동기 오버헤드와 통신 오버헤드를 최소화시키면서 분산병렬 시뮬레이션을 신속하게 수행하고 분산병렬 시뮬레이션의 끝에서 생성할 수 있는 DUV의 t-DCP(DUV의 t-DCP는 로컬시뮬레이션에서 수행되는 DUV내의 설계객체들의 t-DCP들 을 모두 합치면 됨)를 생성하고, 이 생성된 DUV의 t-DCP를 이용하여서 DUV에 대한 시뮬레이션을 상기 실제입출력이용-런 적용시점에서부터는 단일 시뮬레이션으로 수행시키는 것도 가능하다 (즉 이 방식에서 실제적으로는 상기 실제입출력이용-런 적용시점에서부터 That is, by this way the like performed for a period of time of the total simulation time in (example, from the simulation time point 0 to the first expected output / actual output disparity point) performing distributed parallel simulation employing a distributed processing enemy parallelism scheme in this patent local in the DUV that is synchronization of the simulator between while minimizing the overhead and communication overhead quickly performing distributed parallel simulation, DUV of t-DCP (DUV of t-DCP that can be generated at the end of the distributed parallel simulation is performed on the local simulation generating a search, combined all the t-DCP of the design object), and the resulting DUV of hayeoseo using the t-DCP the simulation for DUV actually output using-run application from the point it is possible to perform a single simulation (that in practice, the actual output used in this way - from the point application run 는 분산병렬 시뮬레이션으로 진행하지 않고 단일 시뮬레이션이 진행됨). It has a single simulation progresses, without proceeding to the parallel distributed simulation). 이와 같은 본 특허에서의 방식을 앞으로는 "분산처리적병렬수행/단일수행 혼용방식"이라고 칭하기로 한다. Such a system in the future, this patent is referred to as "enemy parallel distributed processing performed / carried out single mixed mode". 즉, 분산처리적병렬수행/단일수행 혼용방식에서는 s-DCP와 t-DCP를 모두 활용하게 된다 (단일 시뮬레이션을 위해서는 별도의 시뮬레이션 컴파일이 필요함). In other words, it will utilize all of the s-and t-DCP DCP in the distribution process ever parallelism / single performing mixing method (which requires a separate simulations to compile a single simulation).

뿐만 아니라, 또 다른 변형으로는, 상기 실제입출력이용-런 적용시점에서부터는 앞서의 분산처리적병렬수행 방식에서와는 다른 구성으로서 분산처리적병렬수행을 진행하는 것도 가능하다. As well as, still another variation, the physical input and output using-run application from the point it is also possible to proceed with the dispersing processing enemy parallelism as another configuration than on distributed processing enemy parallelism scheme above. 예로, DUV내에 4개의 설계객체 B0, B1, B2, B3가 존재하고 초기의 분산처리적병렬수행에서는 4대의 컴퓨터에서 수행되는 4개의 시뮬레이터 각각에 B0, B1, B2, B3를 할당하여서 실제입출력이용-런 적용시점까지 수행하고, 이 시점 이후부터는 2개의 시뮬레이터만을 사용하여서 첫번째 시뮬레이터에는 B0만을 할당하고(예로, B0는 TB 설계객체임) 두번째 시뮬레이터에는 B1과 B2와 B3를 할당하여서 두 시뮬레이터만으로 실제입출력이용-런 방식의 분산병렬 시뮬레이션을 진행하고, 나머지 2개의 시뮬레이터들은 다른 시뮬레이션 태스크를 수행할 수 있게 하는 것도 가능한데 (이와 같은 경우에는 특정 로컬시뮬레이션에 대하여 시뮬레이션 컴파일이 새롭게 필요함. 예로 위 예에서는 B0에 대한 로컬시뮬레이션은 새로운 시뮬레이션 컴파일이 필요없이 계속적으로 시뮬 For example, hayeoseo assign four design object B0, B1, B2, B3 is present and the initial distribution process ever parallelism to each of the four simulation performed on four computers B0, B1, B2, B3 physical IO used in the DUV - performed to run-applied time, and hayeoseo use of only two simulator after this point, the first simulator is assigned only B0 and (e.g., B0 is TB design object Im) actually only two simulators hayeoseo second simulator is assigned to B1 and B2 and B3 input and output use. it is also possible to make progress a distributed parallel simulation of the run way and the other two simulators to perform another simulation task (in this case, it requires a new simulation compiled for a particular local simulation examples in the example above, B0 local simulation on the simulator continuously without the need for a new simulation compilation 이션 진행이 가능하지만, B1과 B2와 B3에 대한 로컬시뮬레이션은 새로운 시뮬레이션 컴파일이 필요함), 이와 같은 방식은 모두 본 특허에서의 분산처리적병렬수행 방식에 포함되는 것으로 정의한다.그러나, 상기와 같은 경우들 이외의 일반적 시뮬레이션 과정에서는 s-DCP가 시뮬레이션 모델이 아니고 동적정보인 경우에 s-DCP를 얻기 위하여 매우 긴 시뮬레이션의 시간이 필요한 동일한 추상화 수준에서의 시뮬레이션을 선수행하면서 얻는 것은 현실적으로 문제가 있다. Orientation progress is possible, the local simulation of the B1 and B2 and B3 are defined as being all of the need for), this method is new simulation compilation included in the distribution process ever parallelism scheme in this patent, but as described above in general, the simulation process other than if s-DCP is not a simulation model to obtain while performing a simulation at the same level of abstraction required time for a very long simulation line to get the s-DCP in the case of dynamic information has practical problems . 이와 같은 경우에는, 대신에 점진적 구체화 방식의 설계 과정에서 존재하는 추상화 상위수준에서의 모델을 s-DCP로 활용하거나 또는 시뮬레이션이 빠르게 수행되어질 수 있도록 최적화되어진 DUV와 TB 전체 모델을 s-DCP로 활용하거나 또는 상기 추상화 상위수준에서의 모델을 이용한 시뮬레이션에서 얻어지는 동적정보를 활용하여 s-DCP를 얻는 것이 효율적이다 (앞에서 이미 언급된 활용방법-3, 활용방법-4). In such cases, utilizing instead a gradual materialization method DUV and TB throughout the model been utilized or simulation is optimized to be quick performing model in abstraction higher level that exists in the design process to the s-DCP in a s-DCP or the abstraction utilizing the dynamic information obtained from the simulation using the model of the upper level to be effective is to obtain a s-DCP (method already mentioned advantage of the front-3, -4 Practices). 예를 든다면, 게이트수준에서의 타이밍시뮬레이션을 위해서는 각 로컬시뮬레이션에서 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개의 RT And if there are any example, the timing simulated utilizing the RTL model or in RTL / Gate Level mixing model directly s-DCP, or simulation so rapidly perform optimization model of the gate level in each of the local simulation to the in gate level directly utilized as a s-DCP, or RTL simulation process dynamic information, dynamic information, the s-DCP (for example, RTL / gate level mixed models or more obtained in the s-DCP utilized or RTL / gate level mixed simulation process as obtained from that the input and output information of gate level design objects existing in each model of the sum with respect to all of the RTL / gate level and the one or more mixed model. for the specific example that has already been described above GL model DUV (GL) = (B (1) _gl, B (2) _gl, B (3) _gl, B consists of (4) _gl) RTL model DUV (RTL) = (B (1) _rtl, B (2) _rtl, B (3) _rtl, B if it is composed of (4) _rtl), 4 of RT L/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 시뮬레이션 L / GL DUV (MIXED) the mixed model _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 ), the MODEL_DUV (mIXED) _1 = (B (1) _gl, B (2) _rtl, B (3) _rtl, B (4) _rtl) 4 models configuration, four ESL / RTL mixed model thereof to the of the model DUV (MIXED) in the simulation using _1 B (1) input and output information of _gl, model DUV (MIXED) in the simulation using _2 in the simulation using the B (2) output information of _gl, DUV (MIXED) _3 B ( 3) in the simulation using the input and output information of _gl, DUV (MIXED) _4 B (4) to obtain the input and output information of _gl utilized as s-DCP) to the sum all of the four input and output information, to the RTL simulation ESL model or ESL / RTL model to take advantage of the s-DCP, or take advantage of the RTL model simulation, optimization is performed so quickly as s-DCP, or ESL simulation 정에서 얻어지는 동적정보를 s-DCP로 활용하거나 또는 ESL/RTL 혼합 시뮬레이션 과정에서 얻어지는 동적정보를 s-DCP(예로, 1 이상의 ESL/RTL 혼합 모델들의 각 모델 내에 존재하는 RTL 설계객체의 입출력 정보를 상기 1 이상의 ESL/RTL 혼합 모델들 모두에 대하여 합한 것. Dynamic information is obtained from the dynamic information of s-DCP utilized or ESL / RTL mixed simulation process to be obtained at still s-DCP (for example, the input and output information of the RTL design objects existing in the respective models of the one or more ESL / RTL Mixed Model the sum with respect to all of the ESL or more of the 1 / RTL mixed model. 구체적 예로 앞에서 이미 설명된 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)로 Examples of the specific examples is already explained above RTL model DUV (RTL) = (B (1) _rtl, B (2) _rtl, B (3) _rtl, B (4) _rtl) consists of ESL model DUV (ESL) = (B (1) _tlm, B (2) _tlm, B (3) _tlm, B (4) _tlm) if it is composed of the four ESL / RTL mixed model DUV (mIXED) of _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) made up of four models _tlm) and, in these four ESL / RTL mixed models of simulation using the model DUV (mIXED) _1 B (1) input and output information of _rtl, model DUV (MIXED) in the simulation using _2 B (2) in the simulation using the input and output information, DUV (MIXED) _3 of _rtl B (3) simulation using the input and output information, DUV (MIXED) _4 in _rtl the gained input and output information of B (4) to s-_rtl DCP) to put together all of the four input and output information 용하고, ESL 시뮬레이션을 위해서는 현 ESL 수준 모델보다 상위수준의 트란젝션 모델을 s-DCP로 활용하거나, 혹은 시뮬레이션이 빠르게 수행되도록 최적화된 현 ESL 수준의 트란젝션 모델을 s-DCP로 활용하거나, 혹은 현 ESL 수준보다 상위수준의 트란젝션 모델을 이용한 ESL 시뮬레이션 과정에서 얻어지는 동적정보를 s-DCP로 활용하거나 또는 현 ESL 수준보다 상위수준의 트란젝션 모델(TLM 모델)과 현 ESL 수준과 같은 트란젝션수준 모델(TLM 모델)을 혼용한 혼합 시뮬레이션 과정에서 얻어지는 동적정보를 s-DCP(예로, 1 이상의 timed-트란젝션/ca-트란젝션 혼합 모델들의 각 모델 내에 존재하는 ca-트란젝션 수준의 설계객체의 출력 정보를 상기 1 이상의 timed-트란젝션/ca-트란젝션 혼합 모델에 대하여 합한 것. For the order of the ESL simulation utilizing a dextran rejection model of the current ESL level optimized to take advantage of the Tran projection model, a higher level in s-DCP, or simulation is performed faster than the current ESL level models to s-DCP, or Tran projection at the same level as the current ESL level than the use of dynamic information obtained from the ESL simulation procedure using the dextran rejection models of a higher level as s-DCP or a higher level of dextran rejection models than current ESL level (TLM model) and the current ESL level model the dynamic information obtained from a mixture of process simulation mix (TLM model) s-DCP (for example, at least one of ca- timed- Tran Tran design projection-level objects existing in each model of the projection / projection ca- Tran mixed model to output information with respect to the sum of said at least one projection, timed- Tran / Tran ca- projection mixed model. 구체적 예로 앞에서 이미 설명된 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을 이용한 시뮬레이션 Examples of the specific examples is already explained above ca-tlm level of ESL model DUV (ca-tlm) = (B (1) _ca-tlm, B (2) _ca-tlm, B (3) _ca-tlm, B (4 ) _ca-tlm) composed and timed-tlm level of ESL model DUV (timed-tlm) = (B (1) _timed-tlm, B (2) _timed-tlm, B (3) _timed-tlm, B (4 ) if composed of _timed-tlm), the four timed-tlm / ca-tlm DUV the mixed model (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) composed of four models, the four timed- Tran projection / ca - Tran projection mixed models of model DUV (mIXED) in the simulation using _1 B (1) _ca-tlm output information, model DUV (mIXED) in the simulation using _2 B (2) _ca-tlm output information, DUV of (MIXED) simulation using _3 에서는 B(3)_ca-tlm의 출력 정보, DUV(MIXED)_4를 이용한 시뮬레이션에서는 B(4)_ca-tlm의 출력 정보를 얻고 이들 4개의 출력 정보들을 모두 합친것이 s-DCP. 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. 또 다른 예로, 1 이상의 ca-트란젝션/RTL 혼합 모델들의 각 모델 내에 존재하는 RTL 수준의 설계객체의 출력 정보를 상기 1 이상의 ca-트란젝션/RTL 혼합 모델에 대하여 합한 것. As another example, the sum with respect to the at least one projection, the ca- Tran / RTL output information of a design object in the RTL level present in each model of the mixed model over the first projection, the ca- Tran / RTL mixed model. 구체적 예로 앞에서 이미 설명된 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의 출력 정보를 얻고 Examples of the specific examples is already explained above ca-tlm level of ESL model DUV (ca-tlm) = (B (1) _ca-tlm, B (2) _ca-tlm, B (3) _ca-tlm, B (4 ) _ca-tlm consists of) RTL model DUV (rtl) = (B (1) _rtl, B (2) _rtl, B (3) _rtl, if it consists of a B (4) _rtl), 4 of ca DUV the -tlm / RTL mixed model (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, made up of four models of B (4) _ca-tlm), and these four ca- Tran projection / RTL mixture model of the model DUV (mIXED) in the simulation using _1 B (1) outputs information of _rtl, model DUV (MIXED) in the simulation using _2 B (2) output information of _rtl, DUV (MIXED) in the simulation using _3 the simulation using the B (3) output information of _rtl, DUV (MIXED) _4 B (4) of _rtl to obtain an output information 들 4개의 출력 정보들을 모두 합친것이 s-DCP. Is s-DCP put together all of the four output information. 또 다른 예로, 1 이상의 RTL/GL 혼합 모델들의 각 모델 내에 존재하는 GL 수준의 설계객체의 출력 정보를 상기 1 이상의 RTL/GL 혼합 모델에 대하여 합한 것. As another example, the sum with respect to the one or more output information of a design object in the RTL level GL / GL mixed model existing in the model for each of one or more RTL / GL mixed model. 구체적 예로 앞에서 이미 설명된 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)로 활용하는 것이다. Examples of the specific examples is already explained above RTL model DUV (rtl) = (B (1) _rtl, B (2) _rtl, B (3) _rtl, B (4) _rtl) consists of GL model DUV (rtl) = (B (1) _gl, B (2) _gl, B (3) _gl, B (4) _gl) if configured to, DUV (mIXED) four RTL / GL mixed model _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) made up of four models _rtl) and, in these four RTL / GL mixed models of simulation using the model DUV (mIXED) _1 B (1) _gl of the output information, model DUV the simulation using (MIXED) _2 B (2) output information of _gl, DUV (MIXED) in the simulation using _3 B (3) output information of _gl, DUV (MIXED) in the simulation using _4 B (4) to obtain a printout of _gl to utilize a s-DCP) to put together all the information of these four outputs. 이와 같이 추상화 상위수준에서의 모델을 s-DCP로 활용하거나, 혹은 시뮬레이션이 빠르게 수행되도록 최적화된 동일한 추상화수준 모델을 s-DCP로 활용하거나, 혹은 상기 추상화 상위수준에서의 모델을 이용한 시뮬레이션에서 얻어지는 동적정보를 s-DCP로 활용하거나, 혹은 상기 시뮬레이션이 빠르게 수행되도록 최적화된 동일 추상화수준의 모델을 이용한 시뮬레이션에서 얻어지는 동적정보를 s-DCP로 활용하게 되면, 시뮬레이션의 속도가 매우 빠름으로 예상입력과 예상출력을 얻는 과정이 매우 신속하게 이루어 질 수 있다. Thus, utilizing the model of abstraction higher level in s-DCP, or simulation utilizing the same level of abstraction model optimized to quickly perform a s-DCP, or obtained by the simulation using the model in the abstract high-level dynamic use the information to s-DCP, or wherein when the simulation is the use of dynamic information obtained from using a model of the optimized same abstraction level simulation to quickly performed in s-DCP, the simulation speed is very fast expected input and expected the process of obtaining the output can be done very quickly. 따라서 이와 같이 얻어진 s-DCP의 정확도가 만족할 수준이 되는 것이 문제인데, 논리적으로 점진적 구체화 과정을 통하여 구체화되어지는 추상화 상위수준 모델과 하위수준 모델 간에는 모델 일관성이 존재하게 됨으로서 추상화 상위수준의 모델을 수행하여 얻어진 s-DCP의 정확도는 매우 높다고 생각할 수 있다. Accordingly Thus inde is problem that the accuracy of the smile level of the resulting s-DCP, logically progressive elaboration perform embodied abstracted high-level model and the low-level model model of abstraction higher level by being the model consistency exists between which through the process the accuracy of s-DCP obtained can be considered very high.

이상적으로 이들 점진적 구체화 과정에서 존재하는 모델간의 일관성이 완벽하게 존재하게 되면 실제입출력이용-런 방식을 한 번도 적용하지 않고 전체 시뮬레이션이 수행되는 것도 가능하며, 이들 모델간의 일관성이 높으면 높을수록 실제입출력이용-런 해제의 총 횟수와 각각의 실제입출력이용-런 적용시점부터 실제입출력이용-런 해제시점까지의 전체 시간을 최소한으로 하는 것이 가능함으로 모델간의 일관성을 높이는 것이 중요하다. Ideally When there be consistency between the models that exist in these progressive elaboration process complete physical IO used - without applying the run method once, and can also be the entire simulation is performed, the higher the consistency between the models using actual output - it is important that the total time of the run-off to the point that it is possible to improve the consistency between models with minimum - the total number of run-off and the respective actual output available - from applying run-time of physical IO used. 그러나, 점진적 구체화 과정을 통한 설계에서 존재하는 다양한 추상화 수준들에서 바로 인접한 추상화 수준들(예로, ca-트란젝션 모델과 RTL 모델, 또는 RTL 모델과 게이트수준 모델 등)에서의 모델들 간에는 매우 높은 모델 일관성을 유지시키는 것이 가능한 동시에, 이와 같은 상황이 자연스럽게 만족되게 된다. However, the level of abstraction in the immediate vicinity of various levels of abstraction that exists in the design process through the progressive elaboration (eg, ca- Tran projection model and the RTL model, or RTL model and gate-level models) models, highly models in between At the same time capable of maintaining a consistent, this situation is to be naturally satisfied. 만일, 추상화 상위수준의 모델을 시뮬레이션하여 얻어진 s-DCP의 정확도가 만족스럽지 못한 경우(추상화 상위수준의 모델의 모델링이 잘못된 경우 또는 상위수준에서의 추상화로 인하여 상위수준의 특성상 추상화 상위수준의 모델의 정확도나 추상화 상위수준의 모델을 시뮬레이션하여 얻어지는 동적정보의 정확도가 낮을 수 밖에 없는 경우)에는 s-DCP의 정확도를 높이는 과정을 진행하여야 한다. If, abstraction, if the parent did not level model seureopji simulation accuracy of the resulting s-DCP satisfy the (modeling of abstraction higher level models of incorrect or if the top level of the high-level nature abstracted top level of the model due to the abstraction of the If the precision or accuracy of the information obtained by the dynamic simulation model of higher abstraction level not bound to low) it should continue the process of increasing the accuracy of the s-DCP. 따라서 처음부터 정확도가 높은 추상화 상위수준의 모델을 사용하거나 또는 이와 같이 추상화 상위수준의 모델의 모델링이 잘못된 경우에는 추상화 상위수준의 모델을 수정하여 올바른 추상화 상위수준의 모델을 얻고 이 올바른 상위수준의 모델을 시뮬레이션하여 정확도가 높은 동적정보를 얻어서 s-DCP의 정확도를 높이거나 또는 모델링이 잘못된 추상화 상위수준의 모델을 시뮬레이션하여 얻어진 동적정보를 수정하여서 정확도가 높은 s-DCP를 얻거나 또는 정확도가 상대적으로 떨어지는 추상화 상위수준의 모델을 시뮬레이션하여 얻어지는 동적정보를 동적으로(dynamically)나 정적으로(statically) 수정하여서 정확도가 높은 s-DCP를 얻을 수도 있다. Therefore, using the first accurate model of higher abstraction higher level from, or in this case as a model of abstraction of the top-level model is incorrect, modify the model of abstraction higher level to get a model of correct abstraction higher level model of the correct top level simulations or decrease the s-DCP accuracy of obtaining the dynamic information with high accuracy or modeling the wrong abstraction simulation by modifying the dynamic information obtained by the model of the high-level hayeoseo accuracy to obtain a higher s-DCP or accuracy relative You may obtain dynamic information obtained dynamically (dynamically) or statically (statically) modified s-DCP hayeoseo high accuracy by simulating the fall of abstraction higher level models. 정확도가 높은 추상화 상위수준의 모델을 상대적으로 적은 노력을 들이고 만드는 방법의 일 예는 최근들어 트란젝션수준모델(TLM: Transaction-Level Model) 방법에서 많이 사용되는 모델 내의 특정블럭을 외부와 인터페이스되는 통신모듈(communication module)과 내부 계산모듈(computation module)로 나누고 이 특정모듈의 입출력 타이밍정확도는 내부 계산모듈은 그대로 두고(예로 내부 계산모듈은 untimed-트란젝션 수준으로 구술된 것을 사용) 외부와 인터페이스되는 통신모듈에 희망하는 수준의 타이밍 정보를 부가(timing annotation)함으로서, 입출력 관점에서 보면 해당 모듈수준에서 필요한 타이정확도(예로 매사이클 단위의 정확도 또는 여러사이클 단위의 정확도 등)를 달성할 수 있으면서도 높은 시뮬레이션 속도를 달성할 수 있는데, 이와 같은 모델을 통하여 정확도 One example of how accuracy is making deulyigo relatively little effort into a model of higher abstraction higher level recently, Tran rejection level model (TLM: Transaction-Level Model) How much communication is a specific block in the model used for the external and interfaces module (communication module) and divided into the calculation module (computation module) output timing accuracy of a particular module, the internal calculation module, leaving (for example an internal calculation module that uses a dictation to untimed- Tran rejection level) which interfaces with an external to achieve additional (timing annotation) by, from the input aspect tie accuracy required in the module level (e.g. accuracy of the precision or the number of cycle-by-cycle of each cycle unit, and so on) the level timing information for the desired communication module with all high simulation There can achieve the speed, accuracy, through this model 높은 s-DCP를 얻을 수 있다. It is possible to obtain a high s-DCP. 또한 이와 같은 모델의 특정 트란젝션수준 통신모듈에 트란젝터를 부가하여서 입출력 관점에서 해당 모듈의 추상화 수준을 다른 추상화수준의 트란젝션수준 또는 레지스터전송수준으로 변환시키는 것도 가능하고, 상위수준 합성툴(예로 Forte Design사의 Cynthesizer의 TLM synthesis 등)을 사용하면 해당 TLM 통신모듈을 하드웨어적으로 구현가능한 시그널단위의 사이클정확성을 가지는 통신모듈로 합성하여 내는 것도 가능함으로서 이를 이용하여서도 s-DCP의 정확도가 높은 모델을 생성시키는 것도 가능하다. In addition, this hayeoseo of adding dextran projector in particular dextran rejection level of a communication module of the model is also possible to convert the abstract level of the module with Tran rejection level or a register transfer level of the different levels of abstraction in the input-output point of view, and high-level synthesis tools (e.g. using Forte Design of the company Cynthesizer TLM synthesis, and so on) When the TLM communication module hardware implementation possible signal cycle accuracy for having also possible by the high model accuracy is also s-DCP hayeoseo use them that were synthesized to the communication module unit it is possible to produce. 또한 s-DCP를 수정하여서 정확도가 높은 s-DCP를 얻을 수 있는 상황의 구체적 예를 든다면, 상기 추상화 상위수준에서의 모델이 ca-트란젝션 수준이거나 timed-트란젝션 수준인 경우에 이와 같은 트란젝션이 온칩 버스 프로토콜(on-chip bus protocol)(예로 AMBA 버스 프로토콜) 규약을 만족하여야 함으로 이 버스 프로토콜 규약에 위배되는 s-DCP를 이 버스 프로토콜 규약에 맞는 s-DCP로 수정함으로서 s-DCP의 정확도를 높일 수 있다. Further, if s-DCP surface modify the hayeoseo costs specific examples of situations in which the accuracy to obtain a high s-DCP, the model in the higher-level abstraction ca- Tran rejection level or a timed- Tran rejection level such Tran rejection of the on-chip bus protocol (on-chip bus protocol) by comply with the contract (eg AMBA bus protocol) by modifying the s-DCP to violate the bus protocol conventions as s-DCP for the bus protocol convention s-DCP It can improve the accuracy. s-DCP를 수정하여서 정확도가 높은 s-DCP를 얻을 수 있는 상황의 또 다른 구체적 예른 든다면, GL 모델에 대한 분산처리적병렬시뮬레이션(분산처리적병렬시뮬레이션이란 본 특허에서의 분산처리적병렬수행 방식을 통한 분산병렬 시뮬레이션을 의미함. 따라서 분선처리적병렬수행 방식의 시뮬레이션, 분산처리적병렬시뮬레이션, 분산처리적병렬수행 방식의 분산병렬 시뮬레이션은 모두 본 특허에서 제시한 새로운 방식의 분산병렬 시뮬레이션을 가르키는 같은 용어들임)을 수행하고자 하는 경우에 RTL 시뮬레이션 또는 RTL/GL 혼합 시뮬레이션에서 얻어진 s-DCP에 대한 정확도를 높이기 위해서 SDF를 분석하거나 또는 라이브러리셀들의 지연시간 파라미터를 분석하거나 또는 SDF를 이용한 게이트수준의 타이밍시뮬레이션을 짧은 시뮬레이션 시간 구간만에서 수 If s-DCP modified hayeoseo costs accuracy is high s-DCP get another specific situation yereun that the a, a dispersion treatment ever parallel simulation (distributed processing enemy parallel simulation of the GL model is distributed processing enemy parallelism in the present patent means a distributed parallel simulation through the system, so a distributed processing enemy parallelism scheme simulation, distributed processing enemy parallel simulation, distributed parallel simulation of the distribution process ever parallelism scheme is both a distributed parallel simulation of the new method proposed in this patent pointing at the gate with the RTL simulation or RTL / GL mixed simulation analysis of the SDF in order to enhance the accuracy of the s-DCP or analyze the delay parameters of the library cell or SDF obtained if it is desired to perform deulim like terminology) can the level of the timing simulation simulation in a short period of time only 행하거나 또는 정적타이밍분석(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)), 플립플롭의 비동기 셋 인에블 에지에서 플립플롭 출력이 변하는 시점까지의 a Line, or a static timing analysis (static timing analysis) to perform, or those hayeoseo use in combination a specific signal line only in the design object (s example the clock signal line, and the flip-flop output signal which forms the input information of each local simulation) for accurate delay time information (for example, the delay value of the flip-flop clock input when the flip-flop (clock skew delay), the positive edge sensitive flip-flop output is byeonhaneunga have much of a delay time after a rising edge occurs on the clock input clock -to-Q delay time (clock-to-Q (high_to_low), clock-to-Q (low_to_high)), the negative edge sensitive flip-flop output with some delay time after the falling edge occurs on the clock input of byeonhaneunga clock- to-Q delay time (clock-to-Q (high_to_low), clock-to-Q (low_to_high)), in the block edges in the asynchronously set flip-flop and the time change is a flip-flop output set_to_Q 지연시간, 플립플롭의 비동기 리셋 인에블 에지에서 플립플롭 출력이 변하는 시점까지의 areset_to_Q 지연시간, 등)를 얻고 이를 s-DCP에 반영함으로서 s-DCP의 정확도를 높일 수 있다 (즉 위 예를 든 경우의 게이트수준 타이밍시뮬레이션을 분산병렬 시뮬레이션으로 수행하기 위한 각 로컬시뮬레이션들을 위한 모델의 분할은 분할을 통하여 얻어지는 각 로컬시뮬레이션의 해당 로컬설계객체의 출력들이 모두 플립플롭의 출력들이 되도록 분할함). set_to_Q delay time, gaining areset_to_Q delay, etc.) of the asynchronous reset of the flip-flop and the time that changes the flip-flop output in the block edges can increase the accuracy by s-DCP reflected in the s-DCP (i.e. above example a box divided so that the gate-level timing division of the model for each local simulation simulation for performing a distributed parallel simulations both to each local simulate the output of the local design objects of the obtained through the division output of the flip-flop of all cases) . s-DCP를 수정하여서 정확도가 높은 s-DCP를 얻을 수 있는 상황의 또 다른 구체적 예를 든다면, RTL 모델에 대한 분산처리적병렬시뮬레이션을 수행하고자 하는 경우에 ESL 시뮬레이션 또는 ESL/RTL 혼합 시뮬레이션에서 얻어진 s-DCP에 대한 정확도를 높이기 위해서 RTL 함수적시뮬레이션을 짧은 시뮬레이션 시간 구간만에서 수행하여서 ESL 모델에는 존재하지 않는 정확한 타이밍 정보(예로, 클럭이 라이징된 후에 플립플롭의 출력이 변하는데 걸리는 시간, 비동기 클럭들간의 위상차이 등)를 얻고 이를 s-DCP에 반영함으로서 s-DCP의 정확도를 높일 수 있다. Modifying the s-DCP hayeoseo surface accuracy costs still another specific example of the conditions that can obtain a high s-DCP, if you want to perform distributed processing enemy parallel simulation of the RTL model in ESL simulation or ESL / RTL mixing simulation on in order to increase the accuracy of the resulting s-DCP RTL functional simulation of a short simulation time hayeoseo performed at intervals only accurate timing information does not exist, the ESL model (for example, after the clocks are rising that takes to the output of the flip-flop changes the time, to obtain a phase difference, and so on) between the asynchronous clocks can be increased by s-DCP accuracy reflected in the s-DCP.

뿐만 아니라 이와 같은 s-DCP의 수정은 분산병렬 시뮬레이션 시작 전에 정적 방식으로(statically) 진행되어질 수 있을 뿐만 아니라, 필요에 따라서는 분산병렬 시뮬레이션의 실행 도중에 동적 방식으로도(dynamically)(즉, 분산병렬 시뮬레이션이 진행되면서 s-DCP의 수정이 이루어짐) 진행되어질 수 있다. In addition, this modification of the s-DCP as the distributed parallel simulation before starting, as well as can be conducted in a static manner (statically), required dispersion thus is a (dynamically) (that is, in a dynamic way during the execution of a distributed parallel simulation in parallel the modification of the s-DCP yirueojim as the simulation proceeds) can be conducted. 분산병렬 시뮬레이션의 실행 도중에 동적으로 s-DCP의 수정(s-DCP 자체가 이미 동적정보인 경우)이 이루어지고 이를 예상입력 또는 예상출력으로 사용하는 일 예를 구체적으로 든다면, ca-트란젝션 수준에서 수행되어진 앞단 시뮬레이션에서 수집된 예상입력과 예상출력을, 후단 시뮬레이션인 RTL에서 이벤트 구동 방식의 시뮬레이션을 이용한 분산처리적병렬시뮬레이션에서 이용하는 경우에 시뮬레이션 초기에는 ca-트란젝션 수준에서 수행되어진 시뮬레이션에서 수집된 정확도가 떨어지는 동적정보로부터 얻어진 s-DCP로부터의 예상입력과 예상출력을 이용하여 RTL에서의 분산처리적병렬시뮬레이션을 수행하면서 이 분산처리적병렬시뮬레이션의 결과를 동적으로 반영하여서 상기 정확도가 떨어지는 s-DCP의 정확도를 높이고(구체적 예로서, ca-트란젝션 수 Dynamically modifying the s-DCP (s-DCP itself is already a dynamic information) plane is made and it costs one example in detail using the estimated input or expected output, ca- Tran rejection level during the execution of a parallel distributed simulation collecting the expected input and expected output gathered in simulation been front end, at the rear end of the simulation in the case of using parallel distributed processing enemy in RTL simulation using a simulation of the event-driven simulation, simulation has been carried out at the initial ca- Tran rejection level performed in the accuracy of using the expected input and expected output from the s-DCP obtained from falling dynamic information hayeoseo dynamically reflect the result of this distribution process ever parallel simulation while performing distributed processing enemy parallel simulation in the RTL s is the accuracy falling increase the accuracy of -DCP (as specific examples, ca- Tran can projection 준에서는 존재하지 않는 타이밍 파라메터인 모델내의 사용자 클럭이 라이징되고 모델내의 플립플롭의 출력이 클럭 라이징된 시점부터 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에서부터 얻어진 예상입력과 예상출력을 시뮬레이션 초기 이후부터에서의 예상입력 In the user clock in the nonexistent timing parameters of the model it is rising so that the change in the subsequent (# 1 to Verilog syntax) one nanosecond, the output of the flip-flop from the clock rising point in the model providing such a case is RTL models of oral conditions: (clock-to-Q delay event situation) the RTL simulation run come within the initial dynamic out the RTL from the simulation results in the ca- Tran reflected in the s-DCP collected from the simulation of the projection, the level (i. e., ca- Tran simulate the s-DCP will reflect the timing information of clock-to-Q delay of 1 nanosecond not collected from in rejection level) to improve the accuracy of the s-DCP, expected input from the s-DCP is a precision higher and utilizing estimated output) input from the expected since a dynamic way the expected input and expected output obtained from the s-DCP accuracy is increased by simulation initial 예상출력으로 이용하게되면 시뮬레이션 초기 이후부터에서는 정확도가 동적으로 높아진 s-DCP를 이용하는 효과적인 분산처리적병렬시뮬레이션이 가능해진다 (즉 이와 같은 방식은 시뮬레이션 초기에는 s-DCP의 정확도가 상대적으로 낮아서 실제입출력이용-런 방식의 수행이 진행되어지면서, 이 실제입출력이용-런 방식의 수행 과정에서 정확도가 낮은 s-DCP의 정확도를 상기 실제입출력이용-런 방식의 수행 중에서 즉각적으로(on-the-fly) 수집되는 동적정보를 이용하여서 높이는 과정 - 이와 같은 과정을 동적배움(dynamic learning) 과정이라고 생각할 수 있음 -을 거쳐서 이 정확도가 높아진 s-DCP를 활용한 예상입출력이용-런 방식의 수행이 진행되어지게 함으로서 상기 시뮬레이션 초기 이후부터에서는 예상입출력이용-런 방식의 수행이 극대화가 될 수 있게 The use of the estimated output simulation, it is accuracy can be dynamically efficient distributed processing enemy parallel simulation using the increased s-DCP as early after (i.e. in this manner are simulated initially, the accuracy of s-DCP relatively low physical IO use - as is performed in the run method proceeds, the actual input and output using-run manner the course of accuracy the physical input and output using the accuracy of the low s-DCP in the - immediately from the execution of the run-way (on-the-fly) collection process to increase hayeoseo a dynamic information - this dynamic learning the same process (dynamic learning) process can be thought of as a - a through projected output using utilizing the s-DCP is a precision higher-performing of the run way be proceeded by the simulation, since the initial estimated input and output use - it allows this to be a way to maximize the performance of the run 행된다). It is a row). 이와 같은 기법은 상기에서 설명된 RTL에서의 분산처리적병렬시뮬레이션에서뿐만 아니라, GL에서의 타이밍을 고려한 분산처리적병렬시뮬레이션에서도 적용되어질 수 있다. Such a technique is not only the parallel distributed processing enemy in the RTL simulation described above, can be applied in a parallel distributed processing ever simulation considering the timing in the GL. 즉, 앞단 시뮬레이션 단계인 RTL 시뮬레이션에서 수집된 정확도가 상대적으로 떨어지는 s-DCP를 활용한 후단 시뮬레이션 단계인 GL에서의 타이밍을 고려한 분산처리적병렬시뮬레이션 과정 중에서 시뮬레이션 진행과 동시에 상기 정확도가 상대적으로 떨어지는 원(original) s-DCP를 실제입출력이용-런 방식으로 진행되는 타이밍시뮬레이션 실행 중에 동적으로 획득되는 시뮬레이션의 결과(이 시뮬레이션의 결과는 실제입출력이용-런 방식으로 진행되는 분산처리적병렬시뮬레이션에서 취득되는 동적정보임으로 GL에서의 정확한 타이밍 정보를 모두 포함하고 있는 시뮬레이션의 결과임)를 이용하여서 정확도가 높은 s-DCP로 바뀌어내고, 이 정확도가 높은 s-DCP에서의 예상입력과 예상출력을 활용한 분산처리적병렬시뮬레이션을 이후부터 진행함으로서 예상입출 That is, the front end of the simulation stage, the accuracy collected from RTL simulation relatively less s-DCP a rear end simulation stage-one from dispersion treatment ever parallel simulation process regarding the timing of the GL at the same time as the simulation proceeds the accuracy relatively less by utilizing (original) s-DCP a physical IO used - the results of the simulation are dynamically acquire the timing simulation execution proceeds to the run method (the results of the simulation, the actual input and output use - which is obtained from the dispersion process ever parallel simulation is conducted as a run method out dynamic information arbitrarily changed to s-DCP accuracy is high hayeoseo using Lim) the result of the simulation, which contains all of the correct timing information in GL, distributed by the accuracy utilizing the expected input and expected output at a high s-DCP by proceeding since the parallel processing simulation ever expected teller 력이용-런 방식의 진행을 극대화시킬 수 있다. Using force - can maximize the proceeds of the run way.

따라서, 본 특허에서는 위에서 설명한 s-DCP의 정확도를 높이는 이와 같은 과정들 모두를 통칭하여서 앞으로 "s-DCP 정확도증강 과정"이라 칭한다. Thus, the present patent, referred hayeoseo a process such as this to both increase the accuracy of s-DCP described above in the future referred to as "s-DCP accuracy enhancement process". 단, 원 s-DCP가 앞선 시뮬레이션에서 수집된 동적정보가 아니고, 추상화 상위수준의 모델인 경우에는 s-DCP 정확도증강 과정은 상기 추상화 상위수준의 모델인 원 s-DCP가 수행되어지면서 수집되는 동적정보의 정확도를 시뮬레이션 시간 도중에 실시간으로 증강시키는 과정을 말한다. However, the source s-DCP dynamic is not the dynamic information gathered from the previous simulation, in the case of the abstract high-level model, s-DCP accuracy enhancement process As a model, the source s-DCP in the abstraction higher level is performed collected the accuracy of the information during the simulation time refers to the process of enhancing real-time. 특히 위에서 방금 설명된 후단 시뮬레이션의 시뮬레이션 진행 초기에 동적으로 수집되어지는 동적정보를 활용하여서 후단 시뮬레이션이 진행되어지고 있는 과정에서의 앞단 시뮬레이션에서 구해진 정확도가 떨어지는 s-DCP의 정확도를 높이거나, 또는 추상화 상위수준의 모델인 원 s-DCP가 수행되어지면서 수집되는 동적정보의 정확도를 시뮬레이션 시간 도중에 실시간으로 동적으로 높이거나, 또는 시뮬레이션이 빠르게 수행되도록 최적화된 동일 추상화수준의 모델인 원 s-DCP가 수행되어지면서 수집되는 동적정보의 정확도를 시뮬레이션 시간 도중에 실시간으로 동적으로 높이는 것들인 본 특허에서의 s-DCP 정확도증강 과정들을 모두 "동적배움을 이용한 s-DCP 정확도증강 과정"이라고 모두 칭하기로 한다. Especially hayeoseo advantage of dynamic information that dynamically gathers in just a simulation conducted early in the rear simulation described above, the rear end simulation progress is being process, the accuracy obtained on the front end simulation, increase the accuracy of falling s-DCP on or in, or abstraction a high-level model, the original s-DCP is performed in real time the accuracy of the dynamic information is collected as during the simulation time dynamic height, or equal to the simulation is optimized to quickly perform the level of abstraction of the model, the original s-DCP is carried out It is all of the s-DCP accuracy enhancement process according to the present ones as acquisition accuracy with dynamic information in real time during a simulation time in a dynamic increase in that patent and in all that "s-DCP accuracy enhancement process using the dynamic learning" referred.

s-DCP의 정확도증강 과정의 또 다른 구체적 예는 몇가지만 더 들면 다음과 같다. Another specific example of a s-DCP accuracy enhancement of the process is, for only a few more below. 우선 추상화 상위수준의 모델(이 추상화 상위수준의 모델은 원 시뮬레이션 대상이 되는 추상화 하위수준의 모델과 부분계층대응관계가 있음)을 시뮬레이션하여 얻어진 1차 s-DCP 또는 1차 t-DCP를 이용하여서 원 시뮬레이션 대상이 되는 추상화 하위수준의 모델인 DUV내에 존재하는 설계객체들(이들 설계객체들 각각은 부분계층대응관계에 의하여 상위수준의 모델에서도 동일하게 존재함) 또는 DUV를 대상으로 하는 병렬적으로 진행 가능한 시뮬레이션을 1회 이상 진행하여서 정확도가 향상된 2차 s-DCP를 얻을 수 있다. First of abstraction higher level of the model (model of abstraction higher level that the abstraction of low-level model and the sublayer corresponding relationship that won simulation target) simulations hayeoseo using the primary s-DCP or primary t-DCP obtained the original simulation object is the design object that is present in the DUV model abstract lower level is in parallel to target (each of these design object is the same as present in the model of the upper level by the sublayer corresponding relationship) or DUV hayeoseo forward progress can simulate more than once can achieve better accuracy secondary s-DCP. 구체적 예로서는, 1차 s-DCP를 사용하여서 각 설계객체들 각각에 예상입력을 인가하면서 시뮬레이션(이 시뮬레이션은 각 설계객체별로 완전히 독립적임으로 병렬시뮬레이션으로 수행 가능함)하는 것이 가능하고 이 시뮬레이션 과정에서 이들 각 설계객체들의 출력들을 취합하게 되면 2차 s-DCP를 얻게되는데 이 2차 s-DCP는 원 시뮬레이션 대상이 되는 모델내에 존재하는 설계객체들을 대상으로 하여서 얻어지는 것임으로 매우 높은 정확도를 얻는 것이 가능하다. Specifically, examples include 1 hayeoseo using the difference s-DCP simulation while applying a predictive input to each of the each of the design object (in this simulation are randomly completely independent of each design object performed in parallel simulation is acceptable) is possible, and in the simulation process, each of these to When collecting the outputs of the design object, it is possible the second s-DCP will get an obtaining this second s-DCP has a very high accuracy will be obtained hayeoseo the design object present in the model that won simulation target to target. 다른 구체적 예로서는, 상기 추상화 상위수준의 모델을 시뮬레이션하여 얻어진 1차 t-DCP를 이용하여서 추상화 하위수준의 모델인 DUV에 대한 시뮬레이션을 시간상에서 복수개 시뮬레이션시간소구간들로 나누어서 병렬적으로 진행(TPE 방식의 병렬시뮬레이션)하면서 이 시뮬레이션 과정에서 DUV내의 각 설계객체들의 입력과 출력들을 취합하게 되면 정확도가 향상된 2차 s-DCP를 얻는 것이 가능하다. Dividing in other specific examples, the abstraction plurality of simulation time to simulate in time for the higher-level model by simulating the hayeoseo using the primary t-DCP obtained in model DUV of abstraction low-level predetermined intervals proceed in parallel (TPE approach of the accuracy when the aggregate of the inputs and outputs of each design object in the DUV in the simulation process, the simulation in parallel) while it is possible to obtain an enhanced second s-DCP. s-DCP 정확도증강의 또 다른 구체적 예로서는, 추상화 상위수준으로 구술된 다수의 설계객체들과 추상화 하위수준으로 구술된 소수의 설계객체들로 구성된 2 이상의 혼합된 추상화 수준의 모델들을 대상으로 진행하는 2 이상의 병렬시뮬레이션에서 수집된 상기 추상화 하위수준으로 구술된 모든 설계객체들(이 모든 설계객체들로 상기 하위 추상화 수준의 모델이 구성됨)의 2 이상의 동적정보들을 시뮬레이션 시간 상에서 시간맞춤(time alignment)함(시간맞춤이란 상기 추상화 하위수준의 설계객체들 각각에 대한 동적정보들이 추상화 상위수준의 모델의 부정확성으로 인해서 시뮬레이션 시간 상에서 서로간에 어긋나있을 수 있음으로 이 동적정보들을 시뮬레이션 시간 상에서 일치시키는 것을 말함. 이 시간맞춤은 트란젝션 수준에서 수행하게 되면 용이하 2, the s-DCP accuracy enhancement another specific example, abstracted dictated to a higher level of a plurality of design objects and the two or more mixed levels of abstraction models consisting of the design object, a few oral abstraction lower level of which goes to the destination the more parallel the simulation of all the design objects dictated by the abstract lower level collected by the box time alignment (time alignment), the on simulation time dynamic information of two or more of (two in all the design objects adapted model of the lower-level of abstraction) ( time alignment is saying that that dynamic information for each of the design objects of the abstracts low-level are matched on the simulation time of the dynamic information to can be shifted between each other on simulation time due to the inaccuracy of abstraction higher level models. this time, for custom or less when performed at the level of rejection Tran 게 수행할 수 있음. 예로, 1 이상의 모델들을 대상으로 하는 1 이상의 시뮬레이션에서 수집된 모델 내의 1 이상의 설계객체들의 동적정보들에서 동일한 특정 트란젝션의 시작시점을 찾아서 이 시점에 맞추면 됨)으로서 정확도가 증강된 s-DCP를 얻을 수 있다. Can I perform. For example, find the start of the same specific Tran rejection in the dynamic information of the design objects more than 1 in a collecting model from one or more simulations that target one or more models fit them this time being) as accurate it is possible to obtain an augmented DCP-s. s-DCP 정확도증강의 또 다른 구체적 예로서는, 추상화 상위수준의 모델을 대상으로 진행하는 시뮬레이션 또는 추상화 상위수준으로 구술된 다수의 설계객체들과 추상화 하위수준으로 구술된 소수의 설계객체들로 구성된 2 이상의 혼합된 추상화 수준의 모델들을 대상으로 진행하는 2 이상의 병렬시뮬레이션에서 수집된 모델 내의 설계객체들에 대한 동적정보들을 분산처리적병렬수행 방식에서의 각 로컬시뮬레이션의 예상입력과 예상출력으로 사용하여 실제입력 또는 실제출력과 비교하는 과정을 트란젝션 수준에서 진행하는 것이다. s-DCP accuracy enhancement another specific example, abstraction higher-level simulation to proceed with the model target or abstraction of a number dictated by the higher-level of two or more, consisting of the design objects of the oral few to design objects and abstracts low-level the actual type on the expected input and expected output of each local simulation of the dynamic information in parallel to perform distributed processing manner for the design objects in the acquisition model from at least 2 to proceed with the model of a mixed level of abstraction targeting parallel simulation or to the process of comparing the actual output level of progress in the tran rejection. 즉 이들 예상입력과 실제입력 또는 예상출력과 실제출력이 핀수준의 사이클 단위에서는 다르다고 하더라도 트란젝션수준의 여러 사이클 단위에서는 동일할 수 있음으로 예상입력과 실제입력과의 비교 또는 예상출력과 실제출력과의 비교를 핀수준의 사이클 단위로 하지않고 트란젝션수준의 여러 사이클 단위로 한다면 s-DCP의 정확도를 높일 수 있다. That is, these estimated input and actual input or expected output with the actual output pin-level even if the different in the cycle unit Tran Multiple cycle unit of the rejection level compared with the expected input and actual input may be the same or expected output with the actual output and If not a comparison of a cycle unit of the pin level by several cycles of units Tran rejection level may increase the accuracy of s-DCP. 즉, 사이클 단위의 핀수준 s-DCP 정확도를 높이는 것은 상대적으로 오버헤드가 크기 때문에, 이 대신에 예상입력과 실제출력과의 비교 또는 예상출력과 실제출력과의 비교를 트란젝션단위 s-DCP 정확도 수준으로 진행(구체적 방법의 예로는, 예상값과 실제값 비교를 우선 트란젝션단위로 진행하여 실제트란젝션에 매칭되는 예상트란젝션을 찾고, 이 매칭된 예상트란젝션에서 실제트란젝션과 사이클단위로 비교하여 같은지 틀린지를 판단함. 따라서 이와 같은 트란젝션단위로 예상값과 실제값을 비교하는 경우에는 절대적 시뮬레이션 시간을 기준으로 예상트란젝션과 실제트란젝션을 비교하지 않고, 해당 트란젝션 단위에서의 어의(語義)를 기준으로 예상트란젝션과 실제트란젝션을 비교함. 예로, 특정 예상트란젝션의 시작시간이 1,080ns이고 종료시간이 1 In other words, raising the pin level s-DCP accuracy cycle unit since the overhead in the relative size, instead of the expected input and comparison or expected output with the actual output and the comparison of the actual output tran projection unit s-DCP accuracy an example of a process (specifically, how the level is, the expected value and the actual value is compared to first tran proceeds to a projection unit searching estimated tran projection is matched to the actual Tran projection, the actual Tran projection, and the cycle unit in a matching it expected Tran projection Compare also the same judge teulrinji and therefore this case of comparing the estimated value and the actual value to Tran projection unit, without comparing the estimated tran projection from the actual dextran rejection, based on the absolute simulation time, air in the Tran projection unit of comparing the (語義) estimated tran projection and the actual projection, Tran, based on the Examples, and the start time of a certain estimated tran 1,080ns projection and the end time 1 ,160ns이고, 특정 실제트란젝션의 시작시간이 1,000ns이고 종료시간이 1,080ns이라고 하더라도 이 예상트란젝션과 실제트란젝션이 트란젝션 단위에서의 어의가 일치한다면 이 예상트란젝션과 실제트란젝션은 매칭되는 것 임. 이와 같이 매칭되는 예상트란젝션과 실제트란젝션의 절대적 시뮬레이션 시간이 달라질 수 있는 이유는 추상화 상위수준 모델의 부정확성 또는 추상화로 인한 정보의 소실 등에서 찾을 수 있음. 따라서 트란젝션 수준에서의 예상값과 실제값의 매칭은 이를 고려하여야 함. 또한, 다른 추상화 수준의 트란젝션들 간 또는 특정 추상화 수준의 트란젝션과 이를 구체화시킨 RTL의 이벤트시퀀스간에는 이들이 나타나는 시뮬레이션 시간 뿐만 아니라 이들 트란젝션들이 나타나는 순서 또는 트란젝션과 이벤트시퀀스가 나타나는 순서도 달라 , 160ns, and the start time of a particular physical Tran rejection, even if it 1,000ns and end time 1,080ns If the expected and actual Tran Tran rejection rejection rejection Tran matches the semantics of the units is expected to Tran Tran projection and the actual projection is matched it being. may you find this way matching reasons that may affect the expected Tran rejection and absolute simulation time of the actual Tran projection that is, etc. loss of information due to inaccuracies or abstraction of abstraction higher level models. Therefore, estimated at Tran rejection level to be considered this is the matching of the value and the actual value also. in addition, different levels of abstraction of the tran rejection of liver or particular level of abstraction of the tran projection and simulation time they appear between the RTL of the sequence of events that embody them, as well as order these Tran rejection to appear or a dextran rejection flowchart and the sequence of events that appears different 수 있다. 예로 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-트란젝션임. May Examples Tran projection in timed- Tran rejection level T_timed = {T1, T2, T3, T4} and Tran found in Tran projection T_ca in ca- Tran rejection level which embodies this projection, the projection is a tran order of T1 T_timed , T2, T3, another sequence T3 = {t31, t32} and not the order of the T4, T1 = {t11, t12, t13, t14}, T4 = {t41, t42}, T2 = {t21, t22, t23} ( tij is a responsibility of the cycle unit ca- Tran rejection. 예로 timed-트란젝션 T3는 ca-트란젝션 t31과 t32의 2개로 이루어짐)로 트란젝션이 나타날 수 있음으로 이와 같은 경우에서도 예상트란젝션과 실제트란젝션의 절대적 시뮬레이션 시간이 달라질 수 있다. Examples timed- Tran projection T3 is the absolute time of the simulation forecast from the actual projection Tran Tran projection may vary in this case, as may appear in the Tran projection ca- Tran projection t31 and t32 of the two yirueojim). 따라서 이 경우에도 트란젝션 수준에서의 예상값과 실제값의 매칭은 이를 고려하여야 함)하게 되면 예상값(예상입력 또는 예상출력)이 온-칩 버스 규격에 위배되는지 여부를 쉽게 파악하고 필요시 이를 수정할 수 있는 등의 과정을 통하여 효과적으로 s-DCP의 정확도를 높이는 것이 가능하며, 이와 같은 트란젝션수준의 s-DCP를 이용함으로서 s-DCP의 정확도를 증강하는 본 특허에서의 s-DCP 정확도증강 과정을 "트란젝션화를 통한 s-DCP 정확도증강 과정"이라 칭하기로 한다. So also should match the expected value and the actual value of the tranche rejection level in this case will take this into account) make when the expected value (expected to enter or expected outputs) are on-when identifying whether a violation of the chip bus specification easily and needs it is possible through a process such as that can be modified to effectively increase the accuracy of s-DCP, and this tran s-DCP accuracy enhancement process in the projection, the level of this patent to enhance the s-DCP accuracy by using the s-DCP a will be referred to as "s-DCP accuracy enhancement process through the tran projection screen". 이와 같은 트란젝션화를 통한 s-DCP 정확도증강 과정도 s-DCP가 추상화 상위수준의 시뮬레이션 모델인 경우에는 로컬시뮬레이션이 진행되는 과정에서 상기 추상화 상위수준의 시뮬레이션 모델로부터 얻어지는 동적정보에 대하여 진행하는 것도 가능하다. In this tran process s-DCP accuracy enhancement process through the projection screen case s-DCP is a simulation model of abstraction higher level, the local simulation proceeds the same also goes for the dynamic information obtained from the simulation model of the abstract high-level It is possible.

또 한가지 언급할 것은, 상기에서 설명된 예상입력과 예상출력을 이용하는 시뮬레이션 방식은 이미 설명된 것과 같이 2 이상의 프로세서를 이용한 분산병렬 시뮬레이션의 성능을 높일 수 있을 뿐만 아니라, 단일 프로세서(여기에는 최근의 인텔사의 펜티엄 듀얼코어도 포함됨)를 이용하는 경우에도 시뮬레이션이 2 이상의 프로세 스나 쓰레드(thread)로 나누어져서 수행되어야 하는 경우에서도 상기 2 이상의 프로세스와 쓰레드간의 프로세스간통신(Inter-Process Communication) 오버헤드와 프로세스동기(Process Synchronization) 오버헤드도 크게 낮출 수 있다는 것이다. Further it is to one kinds mentioned, the simulation method using the expected input and expected output is described in the above, as already described, as well as improving the performance of distributed parallel simulation using two or more processors, a single processor (on which the latest Intel Corporation Pentium dual-core is also included), the even simulate two or more processes or threads (liver in the case that must be done so by dividing the thread) process between the two or more processes or threads communicate (inter-process communication) overhead to the process when using synchronization (synchronization Process) is that the overhead be reduced significantly.

t-DCP를 이용하게 되면 TPE 방식의 병렬시뮬레이션이 가능하고, s-DCP를 이용하게 되면 DPE 방식의 병렬시뮬레이션이 가능하다. The use of a t-DCP when enabling the simulation of the TPE parallel manner, and using the s-DCP can be parallel simulation of the DPE method. TEP 방식의 병렬시뮬레이션은 전체 시뮬레이션 시간구간을 2 이상의 시뮬레이션시간소구간(이를 슬라이스라 칭함)으로 나누어서 이들 2 이상의 시뮬레이션소구간들 각각을 독립적으로 수행하는 것이다. Parallel Simulation of TEP approach is to simulate the entire time interval of two or more predetermined simulation time interval (hereinafter referred to this slice) by dividing perform these two or more simulation predetermined intervals, respectively independently. DEP 방식의 병렬시뮬레이션은 시뮬레이션 대상이 되는 전체 설계객체(DUV와 TB)를 2 이상의 부분설계객체들로 나누어서 이들 2 이상의 부분설계객체들 각각을 별도의 시뮬레이터에서 분산병렬 방식으로 수행하는 것이다. Parallel Simulation of DEP method is to perform a complete design object (DUV and TB) of at least two parts designed divided into objects each of these two or more parts designed object to be simulated target in a distributed parallel in separate simulators. 앞에서 이미 언급한 대로 t-DCP와 s-DCP의 정확도가 매우 중요한데, 이외에도 이들을 획득하는 것에 소요되는 시간이 과도하지 않아야 하는 것도 매우 중요하다. As already mentioned, t-DCP and s-DCP accuracy is very important for, in addition it is very important that this should not be too time-consuming to acquire them. 따라서, 시뮬레이션 대상이 되는 특정 추상화수준의 설계객체를 시뮬레이션하여서 t-DCP와 s-DCP를 획득하는 것이 가능한 경우는 리그레션 테스트 또는 설계변경이 국지적으로 이루어진 경우이며. Therefore, when it is possible to obtain a certain level of abstraction hayeoseo simulate the design object and t-DCP DCP-s that simulation object is the case the regression test or design changes made locally by. 이외의 경우들에서는 상기 특정 추상화수준보다 높은 단계의 모델을 시뮬레이션하여서 t-DCP와 s-DCP를 획득하는 것이 빠른 획득시간과 더불어 이들의 정확도도 높일 수 있는 효율적 방법이다. In the case other than the way it is effective also to improve their accuracy with fast acquisition time for acquiring the particular level of abstraction model simulation hayeoseo t-DCP DCP-s and a high level of more. TPE 방식의 병렬시뮬레이션에서 위에서 언급한 세가지의 활용방법들에 대하여 좀 더 자세하게 설명하면 다음과 같다. In more detail with respect to the three kinds of methods utilized in the above mentioned parallel simulation of the TPE method as follows. 우선 활용방법-1에서는 추상화 상위수준 모델을 대상으로 하는 시뮬레이션 과정에서 1 이상의 시뮬레이션 특정시점 또는 특정구간에서의 추상화 상위수준 모델의 상태정보를 수집하고 이 추상화 상위수준 모델의 상태정보를 상기 1 이상의 시뮬레이션 특정시점 또는 특정구간에서의 추상화 하위수준 모델의 상태정보로 변환(변환 방법의 구체적 내용은 국내특허(10-2005-116706)에서 설명된 것을 참조)하고 이 변환된 추상화 하위수준 모델의 상태정보들을 이용하여서 추상화 하위수준 모델에 대한 시뮬레이션을 슬라이스별로 병렬적으로 수행하거나 또는 특정 슬라이스만을 수행함으로 상기 추상화 하위수준 모델에 대한 시뮬레이션을 신속하게 수행하는 것이 가능하다. Method 1 First utilized in high-level abstraction model simulating the high-level abstraction model state to collect information and status information of a higher level of abstraction models for simulating one or more simulations from a point in time or a certain period in the process of targeting said at least one of (refer to the explanation on the concrete contents of the conversion method is Korean Patent (10-2005-116706)), a point in time, or converted to a low-level state information of abstraction model at a particular interval and the status information of the converted low-level abstract model a hayeoseo using the simulation for a low-level abstraction model in parallel by each slice, or carrying out only a specific slice is possible to quickly perform the simulation on the low-level abstraction model. 활용방법-2에서는 2 이상의 추상화 중간수준 모델(추상화 상위수준 설계객체들과 추상화 하위수준 설계객체를 동시에 가지고 있는 DUV)을 독립적으로 병렬수행하고 이와 같은 병렬수행 과정에서 추상화 하위수준 설계객체들에 대한 상태정보들을 모두 합하여서 추상화 하위수준 모델에 대한 상태정보를 얻고, 이 추상화 하위수준 모델에 대한 시뮬레이션을 슬라이스별로 병렬적으로 수행하거나 또는 특정 슬라이스만을 수행함으로 상기 추상화 하위수준 모델에 대한 시뮬레이션을 신속하게 수행하는 것이 가능하다 (도6 참조). Method 2 for utilizing the at least two abstraction models medium independently perform parallel the (abstract high-level design objects and DUV with a lower level of abstraction design object at the same time) and for this parallelism abstraction process low-level design object in such standing by adding together the status information to obtain status information about the abstract lower level model, the abstraction performing a simulation on lower-level models in parallel for each slice or a simulation on the abstract low-level model quickly by only performing certain slice it is possible to carry out (see Fig. 6). 이들 추상화 상위수준 모델을 수행하거나 또는 2 이상의 추상화 중간수준 모델들을 병렬적 또는 순차적으로 수행하여서 얻어진 t-DCP를 활용하여서 추상화 하위수준 모델을 시뮬레이션 시간 상에서 2 이상의 시뮬레이션시간소구간들인 슬라이스로 나누어서 병렬적으로 수행하거나 나누어진 슬라이스들만을 순차적으로 수행함으로서 추상화 하위수준 모델에 대한 시뮬레이션을 신속하게 수행시키는 구체적 방법은 국내특허(10-2005-116706)와 국내특허(10-2006-19738)에 자세히 언급되어 있음으로 본 특허에서는 자세한 설명은 생략하기로 한다. These abstractions hayeoseo perform a high-level model, or two or utilize more abstract medium parallel or t-DCP obtained hayeoseo performed sequentially models divided into slices, which are two or more simulation time stamp interval of abstraction low-level model on the simulation time parallel specifically, a method for the simulation of a low-level abstract model by performing only a binary perform or divided slices in sequence quickly are referred to in detail in the Korean Patent (10-2005-116706) and the Korean Patent (10-2006-19738) in the present patent, a detailed description will be omitted. 다만, 추상화 상위수준에서 s-DCP를 획득하는 경우와 같이 추상화 상위수준에서 t-DCP를 획득하는 경우에 t-DCP를 신속하게 획득하는 것은 가능하나 t-DCP의 정확도가 낮을 수 있음으로 이 경우에도 s-DCP와 같이 정확도를 높이는 방법이 필요하다. However, in this case, the thing that abstraction higher level abstraction higher level, as in the case of obtaining s-DCP in the case of obtaining a t-DCP quickly obtain the t-DCP may lower the accuracy of the possible but t-DCP even though there is a need for a method to increase the accuracy, such as 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까지 기다리면 된다 (즉 더 이상 변하지 않는 시점에서의 상태정보가 정확도가 증강된 상태정보임). To this end, the abstract high-level model stored state information to re-abstraction higher-level models in from T_f point to T_r point for on the front end simulation in T_f point (or from an earlier point in time) force and abstracts of T_r time after release from T_r point input information of the higher-level model, the user clock source inside DUV exists as not supply all user clocks are from (the input information is the front end to the simulation saved be collected in) continue to remain the same even after T_r point (where, TB, and PLL There is waiting until the user clock signals are also also to keep the value of the T_r time after T_r time) while the time T_s to stabilize the state information in the T_r point does not change any more, if applicable (i.e. longer is constant Im status information at the time the accuracy of the enhanced status information). 단, 비동기적인 사용자클럭들(이들 사용자클럭들은 완전 독립적)이 2 이상 존재하고 T_r과 상기 변하지 않는 시점 T_s 사이에 사용자클럭들의 이벤트가 존재한 경우에는 위에서 언급된 과정을 반복적으로 진행하여야 한다. However, when an asynchronous user clocks (these are completely independent of the user clock) there are two or more, and the event of the user between the time a clock is constant and the T_r T_s there are to be conducted to the procedure mentioned above repeatedly.

또한, 추상화 상위수준 모델을 대상으로 한 시뮬레이션 과정에서 얻어진 1차 t-DCP를 활용한 추상화 하위수준 모델을 대상으로 한 TPE 방식의 시뮬레이션에서도 상기 추상화 상위수준 모델의 낮은 정확도로 인하여 상기 추상화 상위수준 모델 내에 존재하는 1 이상의 설계객체들에서 수집된 동적정보들이 시뮬레이션 시간 상에서 어긋나 있을 수 있으며 이로 인하여 상기 1차 t-DCP의 정확도가 떨어질 수 있다. Further, the abstract high-level model, the simulation process the first t-DCP Abstraction low-level model, low accuracy due to the abstraction higher-level models in the simulation of the TPE approach the abstract high-level model targeting leverage obtained in targeting the the dynamic information may be collected in one or more design objects that are present in the shifted time on the simulation, and due to this may reduce the accuracy of the first t-DCP. 따라서 이와 같은 경우에도 s-DCP 정확도증강 과정에서 설명한 시간맞춤(time alignment)함으로서 t-DCP 정확도를 높일 수도 있다. Thus in this case it may be to increase the time alignment (time alignment) by t-DCP accuracy described in the s-DCP accuracy enhancement process. 따라서 이와 같은 t-DCP 정확도를 높이는 모든 과정을 본 특허에서는 t-DCP 정확도증강 과정이라 칭한다. Therefore, the entire process to increase the accuracy of such a t-DCP this patent is referred to as t-DCP accuracy enhancement process. 위에서 설명한 본 특허에서의 t-DCP를 이용한 병렬 시뮬레이션 방법을 본 특허에서는 t-DCP를 이용한 시간적병렬수행(Timed Parallel Execution) 방식 또는, 이를 줄여서 시간분할적병렬수행 방식(즉 시간분할적병렬수행 방식이란 t-DCP를 활용하여 전체 시뮬레이션 구간을 2 이상의 슬라이스로 나누고 이 슬라이스별로 병렬수행을 진행하는 본 특허에서 제안한 병렬시뮬레이션 방식만을 말함)이라 칭하기로 한다. In this parallel simulation method using a t-DCP in the patents described above patent temporal parallelism with t-DCP (Timed Parallel Execution) system or, for short this time division ever parallelism scheme (that is time division ever parallelism scheme use of means t-DCP will be the entire simulation divided by the interval of 2 or more, will be referred to as a slice refers only) parallel simulation method proposed in this patent to proceed with parallel execution by the slice.

이와 같은 추상화 상위수준 모델 또는 추상화 중간수준 모델을 이용한 시뮬레이션 결과를 추상화 하위수준 모델을 이용한 시뮬레이션에 활용하는 본 특허에서의 시뮬레이션 방법을 통해서 추상화 하위수준 모델을 이용한 시뮬레이션의 속도를 높일 수 있을 뿐만 아니라, 추상화 상위수준 모델과 추상화 하위수준 모델 간의 일관성 여부를 효과적으로 조사할 수 있다. This abstract high-level model or abstract the simulation results using the mid-level model, as well as to increase the simulation speed of using the abstract low-level model through a simulation method according to the present patent utilizing the simulation using abstract lower level model, whether the consistency between the higher-level abstraction model with low-level abstraction model can be investigated effectively. 즉 추상화 상위수준 모델 또는 추상화 중간수준 모델을 이용한 시뮬레이션 결과를 이용한 추상화 하위수준에서의 추상화 하위수준 모델을 대상으로 하는 시뮬레이션 결과가 추상화 상위수준 모델 또는 추상화 중간수준 모델을 이용한 시뮬레이션 결과와 맞지 않는 결과이면 이는 바로 추상화 상위수준 모델과 추상화 하위수준 모델 간의 불일관성의 구체적 사례를 예시하는 것임으로 이의 원인을 분석하여 제거함으로서 다른 추상화 수준들에서 존재하는 모델 간의 일관성을 효과적으로 유지할 수 있다. That is if the result is the simulation result that targets the abstract lower level models in the abstract lower level with simulation results using the abstract high-level model or abstraction medium model does not match the simulation results using the abstract high-level model or abstraction medium model This can be by direct high-level abstraction models and analysis by eliminating the causes thereof as an abstraction that will illustrate specific examples of the non-consistency between the lower-level model to maintain consistency between models that exist in different abstraction levels effectively.

위에서 언급된 두가지 방식의 병렬시뮬레이션인 DPE와 TPE에서는 앞단 시뮬레이션과 후단 시뮬레이션이 동일한 추상화 수준의 동일한 설계검증 대상으로 시뮬레이션을 하는 것도 가능하지만, 일반적으로는 앞단 시뮬레이션과 후단 시뮬레이션이 동일한 추상화 수준의 동일한 설계검증 대상으로 시뮬레이션을 하는 것이 아니고 다른 추상화 수준의 설계검증 대상으로 시뮬레이션을 하는 것이다. In the the two methods mentioned above, a parallel simulation of DPE and TPE can be a simulation with a front end of the simulation with the same design verification of the rear end of the simulation, the same level of abstraction, the target but, in general, the same design, the front end of the simulation and the rear end simulation of the same level of abstraction not that the simulation to verify that the target will be simulated with design validation objects of different levels of abstraction. 즉, s-DCP 또는 t-DCP를 신속하게 획득하기 위한 목적의 앞단 시뮬레이션은 상대적으로 추상화 수준이 높은 상위수준에서 모델링된 모델을 대상으로 하여서 이루어지는 것이 일반적이고, 원래의 시뮬레이션 목적을 위한 후단 시뮬레이션은 상대적으로 앞단 시뮬레이션에서 사용된 모델보다 추상화 수준이 낮은 하위수준에서 모델링된 모델을 대상으로 하여서 이루어진다는 것이다 (단, 이미 설명한 것과 같이, s-DCP를 이용하는 분산처리적병렬시뮬레이션에서는 s-DCP가 추상화 상위수준의 시뮬레이션 모델 자체또는 시뮬레이션이 빠르게 수행되도록 최적화된 동일 추상화수준의 시뮬레이션 모델 자체도 될 수 있음으로, 앞단 시뮬레이션이 반드시 필요한 것은 아님을 주의한다). That is, s-DCP or front end of the simulation for the purpose of quickly obtaining a t-DCP's and relatively be made hayeoseo targeting modeled model in a high high-level level of abstraction general, the rear end of the simulation for the original simulation purposes it is relatively made hayeoseo targeting modeled model in the model is the low level of abstraction lower level than in the front-end simulation (where, as described above, the distributed processing enemy parallel simulation using the s-DCP is s-DCP abstraction a simulation model itself can also be the same optimized so that the upper levels of the simulation model itself or the abstraction level simulation performed quickly and carefully front end of the simulation is not necessarily required). 또한, 본 특허에서는 시간적으로 앞서서 수행된 시뮬레이션 결과를 이용하여서 시간적으로 후에 수행되어지는 시뮬레이션을 빠르게 수행하는 것에 촛점 하나를 맞추고 있으며, 따라서 상기 시간적으로 앞서서 수행되는 시뮬레이션을 빠르게 수행하는 방법은 이 시뮬레이션보다 시간적으로 더 앞서서 수행되는 시뮬레이션 결과에서 s-DCP를 구하고 이를 이용한 본 특허에서의 분산처리적병렬방식의 시뮬레이션을 이용하거나 혹은 통상적인 다양한 분산병렬 시뮬레이션(일반적인 분산병렬 시뮬레이션) 방식을 이용하는 것도 가능하다. In addition, and this patent the hayeoseo using the simulation result performed before the time-aligning the one focus as to temporally perform the simulation speed being carried out after, and therefore how quickly the simulation that is performed in advance as the time is more than the simulation it is also possible to use a temporally more simulated result in s-DCP to obtain them using distributed processing utilization simulation of parallel, or conventional various distributed parallel simulation in this patent do ahead (common distributed parallel simulation) method.

뿐만 아니라, 본 특허에서 제안하는 분산처리적병렬시뮬레이션과 별도의 특허 10-2004-93310에서 제시한 앞서서 수행된 시뮬레이션의 결과를 재활용하여서 1 이상의 설계객체가 수정된 경우에 수행되어지는 시뮬레이션을 신속하게 수행하는 인크리멘탈 시뮬레이션(incremental simulation)을 같이 활용하면 또 다른 효율적인 시뮬레이션이 가능하다. In addition, the results of the distributed processing hayeoseo recycling ever parallel simulations and the simulations carried ahead presented in a separate patent 10-2004-93310 proposed in this patent to the simulation to be performed when the one or more design objects are corrected promptly by using as the incremental simulation (simulation incremental) to perform it can be another efficient simulation. 즉 앞서서 수행된 시뮬레이션에서 수집된 1 이상의 설계객체들에 대한 동적정보(상태정보, 입력정보, 출력정보 등)을 활용하여서 디버깅 또는 스펙 변경 등으로 인하여 1 이상의 설계객체들에 대한 수정이 이루어지고 난 후에 수행되는 시뮬레이션을 본 특허에서의 분산처리적병렬시뮬레이션으로 수행하는 경우에 시뮬레이션 처음(시뮬레이션 시간 0)에서부터 2 이상의 로컬시뮬레이션을 이용한 분산병렬시뮬레이션을 수행하는 대신에 특허 10-2004-93310에서 제시한 인크리멘탈 시뮬레이션 기법을 사용하여서 시뮬레이션 시간 0에서부터 특정 시뮬레이션 시점 ts까지는 수정이 이루어진 1 이상의 로컬설계객체들과 이들의 입력정보를 이용하거나 또는 수정이 이루어진 1 이상의 로컬설계객체들과 수정이 이루어지지 않은 설계객체들의 일부분(예로 상태정 That is simulated dynamic information on the one or more design objects collected in the (status information, input information, output information, etc.) to take advantage of the modifications to one or more design objects due to debug or specification changes, and comprises I hayeoseo performed before the simulation is performed after proposed in patent 10-2004-93310, instead of performing a parallel distributed simulation using simulation first (simulation time 0) from at least two local simulation in the case of performing the dispersion process ever parallel simulation of the present patent incremental hayeoseo using simulation techniques simulation time 0 from the particular simulation support point ts using the modified one or more local design objects made with those of the input information by the or modified modified with one or more local design object consisting done a portion of the design object (e.g. status information 저장이 용이하지 않은 테스트벤치 등과 같은 설계객체)들과 이들의 입력정보들을 이용하여서 단일 시뮬레이션 S_s으로 진행하고 ts 이후부터는 상기 단일 시뮬레이션을 분산처리적병렬시뮬레이션의 한 로컬시뮬레이션 S_l(i)으로 전환(2 이상의 로컬시뮬레이션들로 전환시키는 것도 가능)하는 동시에(단일 시뮬레이션 S_s를 한 로컬시뮬레이션 S_l(i)로 전환시키면 추가적인 컴파일이 필요없이 ts에서부터 중단없이 시뮬레이션을 진행할 수 있음), 상기 분산처리적병렬시뮬레이션의 1 이상의 다른 로컬시뮬레이션들에서는 상기 S_l(i)에서 수행되어지는 설계객체들 이외의 설계객체들(이 설계객체들은 수정이 이루어지지 않은 설계객체들임)이 이들의 수정이 이루어지기 전 시뮬레이션 과정에서 수집된 ts(이벤트 구동 시뮬레이션의 경우에는 ts은 한 시점이 Thereafter hayeoseo using the design object) and their input information such as a test bench that is not susceptible to storage proceed in a single simulation S_s and ts convert the single simulation as a local simulation S_l (i) of the distributed processing enemy parallel simulation ( it is also possible to switch to the two or more local simulation), while when switched to (local simulation S_l (i a single simulation S_s) can proceed with the simulation without interruption from ts without the need for additional compiled), the distributed processing enemy parallel simulation in one or more other local simulation of the design object other than the designed object to be performed by the S_l (i) (the design objects design object deulim not been corrected is made) is the entire simulation process being these modifications made for the collected ts (event-driven simulation, ts is the time point 아니고 일정한 구간임)에서의 상태정보들을 가지고 ts에서부터 시뮬레이션을 진행하도록 한다면 시뮬레이션 시간 0에서부터 ts까지는 시뮬레이션 수행에 필요한 시뮬레이터의 라이센스 숫자를 최소화시킬 수 있는 추가적인 이점이 있다 (여기서 ts을 결정하는 것이 중요한데, ts은 시간적으로 시뮬레이션 시간 0에서 최대한 멀리 떨어져있으면서 동시에 ts까지는 수정에 의한 변경 이후의 시뮬레이션에서 수정이 이루어지지 않은 설계객체들의 시뮬레이션 결과는 수정 이전의 시뮬레이션 결과들과 동일하다는 조건을 만족하는 특정 체크포인트여야 함. Not if certain interval Im) has the status of the to proceed simulation from ts has the additional benefit of minimizing the license number required for the simulations carried out from the simulation time zero until ts simulator (here it is important to determine the ts, ts are specific checkpoints that time satisfied the conditions are the same as the full simulation of the designed object was not modified done from afar while at the same time, simulate future changes caused by modified by ts off the previous modified simulations in the simulation time 0 It must be. 구체적 결정 방법은 특허 10-2004-93310을 참조). Specific determination method, refer to Patent 10-2004-93310). 본 특허에서 이와 같은 시뮬레이션 방식을 "인크리멘탈 시뮬레이션을 활용한 분산처리적병렬시뮬레이션" 또는 "인크리멘탈 시뮬레이션을 활용한 분산처리적병렬수행 방식의 시뮬레이션"이라고 칭하기로 하며, 인크리멘탈 시뮬레이션의 자세한 방법은 별도의 특허 10-2004-93310을 참조하기로 한다. In this patent this the same simulation scheme as referred as "Incremental simulation distributed processing enemy parallel simulation utilizing" or "simulation of incremental simulation distributed processing enemy parallelism utilizing method", and Incremental of mental simulation for the method to refer to a separate patent 10-2004-93310.

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

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

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

면이다. A surface.

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

도4 는, RTL 모델의 계층구조 일 예를 이에 대응되는 GL 모델의 계층구조의 일 예와 비교하여서 개략적으로 도시한 도면이다. 4 is hayeoseo comparing the RTL model hierarchy and its one example of the hierarchical structure of the corresponding model GL example a schematic view. 이 예에서는 GL 모델에 바운더리 스캔셀을 가지고 있는 추가적인 계층구조를 나타내는 설계객체 387이 존재한다. In this example, there is a design object 387 representing the additional layer structure having a boundary scan cell in the model GL.

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

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

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

도8 은, 본 특허에서 제시한 분산처리적병렬시뮬레이션을 위하여 부가되는 설계코드(부가 코드) 내부를 구성하는 컴퍼넌트들의 구성 일 예를 개략적으로 도시한 도면이다. 8 is a block diagram illustrating a configuration example of a component for adding configure the internal design codes (additional code) that is parallel to the enemy simulation proposed in this patent dispersion treatment. 즉, 분산병렬 시뮬레이션 환경을 구성하는 각 로컬시뮬레이터 또는 로컬하드웨어기반검증플랫폼(본 특허에서 하드웨어기반검증플랫폼은 하드웨어에뮬레이터 또는 시뮬레이션가속기 또는 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이 됨)에 부가되어지는 부가 코드 That is, balancing hardware based verification platform on each local simulator or local hardware based verification platform (this patent constituting a parallel simulation environment, and collectively refer to the hardware emulator or simulation accelerator or FPGA board, currently this example of the hardware-based verification platform Cadence's 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 in this series, etc.), part of the verification target model M performed in 404 (when these local simulator and it conforms collect all portions of validated target models that are performed at the local hardware-based verification platform being validated target model M ) additional code to be added to the (62)의 행태(behavior)를 컴퍼넌트들로 구성한 일 예를 개략적으로 도시한 도면이다. A diagram schematically illustrating one configuration example of the behavior (behavior) of 62 with the component. 따라서 상기의 부가 코드(62)는 모델에 부가되어져서 도8 에 보이는 컴퍼넌트들(예상입출력이용-런/실제입출력이용-런 제어모듈(54), 예상입력/실제입력 선택모듈(56), 예상출력/실제출력 비교모듈(58), 예상입력/실제입력 비교모듈(59), s-DCP 생성/저장 모듈(60))의 기능을 수행할 수 있어야 한다. Therefore, the additional code (62) of the component shown in Figure 8, so it is added to the model (estimated input and output using the-run / physical IO used-run control module 54, the estimated input / actual input selection module 56, the estimated output / actual comparison output module 58, must be able to carry out the functions of the input estimated / actual comparison input module (59), s-DCP produced / storage module 60). 상기 각 모듈별로 행태를 다시 정리하면 다음과 같다. When the rearrangement the behavior of each module as follows. 예상입출력이용-런/실제입출력이용-런 제어모듈(54)은 예상출력/실제출력 비교모듈(58)과 예상입력/실제입력 비교모듈(59)과 분산병렬 시뮬레이션을 위한 통신 및 동기화 모듈(64)로부터 입력들을 받아서 이 입력들의 값들과 현재 로컬시뮬레이션이 예상입출력이용-런 방식으로 진행되는지 혹은 실제입출력이용-런 방식으로 진행되는지의 현 상태(따라서, 예상입출력이용-런/실제입출력이용-런 제어모듈(54)은 내부적으로 현재 로컬시뮬레이션이 예상입출력이용-런 방식으로 진행되는지 혹은 실제입출력이용-런 방식으로 진행되는지를 판단할 수 있는 상태변수를 가지고 있음)에 따라서 예상입력/실제입력 선택모듈(56)로 출력을 생성하여 예상입력/실제입력 선택모듈(56)이 예상입력을 선택하게 하던지, 또는 실제입력을 선택하게 하던지, 또는 실제입력을 Expected input and output using-run / physical IO used-run control module 54 is expected output / actual output comparison module 58 and the estimated input / actual input comparison module (59) and distributed communication and synchronization module for Parallel Simulation (64 ) receives inputs from values ​​and the currently used local simulation the expected input and output of the input-run manner that the progress or actual output used - the current state of that the proceeding to the run-way (thus, expected input and output using-run / physical IO used-run control module 54 is internal to the current local simulation the expected input and output use - that goes to the run method or a physical IO used - estimated in / real type selected according to that with the state variables that may be determined whether the process proceeds to the run method) Either it generates the output to the module 56, select the predictive input estimated input / actual input selection module 56, or selected No matter the actual input, or a real input 선택하기 전에 롤백이 필요하게 되면 롤백 수행을 제어하게 된다. If a rollback is required before selected is controlled to perform the rollback. 즉, 현재 로컬시뮬레이션이 예상입출력이용-런 방식으로 진행 중에 있으면서(따라서 예상입출력이용-런/실제입출력이용-런 제어모듈(54)은 현재 예상입력/실제입력 선택모듈(56)이 예상입력을 선택하도록 하는 출력을 예상입력/실제입력 선택모듈(56)에 보내어 제어 중) 동시에 예상출력/실제출력 비교모듈(58)에서부터 예상출력과 실제출력이 다르다는 판단이 입력으로서 오게되면 예상입출력이용-런/실제입출력이용-런 제어모듈(54)은 예상입력/실제입력 선택모듈(56)이 실제입력을 선택하도록 출력을 예상입력/실제입력 선택모듈(56)에 보내고 내부의 현재 상태변수를 예상입출력이용-런에서 실제입출력이용-런으로 스위칭하고 동시에 분산병렬 시뮬레이션을 위한 통신 및 동기화 모듈(64)로부터 롤백을 위한 특정 롤백 시간이 입력되면 상기 특정 롤백 That is, the current local simulation the expected input and output use - the run control module 54 is currently estimated input / actual input selection module 56, the estimated input-while underway in the run method (therefore expected input and output using-run / physical IO used When an output to select predictive input / sent to the actual input selection module 56 control medium) at the same time the expected output / actual output compared from the module 58 the expected output and the actual output is different than determining it comes as an input estimated output using-run / physical IO used-run control module 54 is expected in / real type selection module 56 sends the output to select the actual input to the expected input / actual input selection module 56, estimated the current state variable in the input and output use-physical IO used in the run-rollback when the specific switch to the run and at the same time, input a specific time for rolling back the roll back from the communication and synchronization module 64 for a parallel distributed simulation 간으로 롤백을 수행할 수 있게 제어도 수행하며, 현재 로컬시뮬레이션이 실제입출력이용-런 방식으로 진행되고 있으면서(따라서 예상입출력이용-런/실제입출력이용-런 제어모듈(54)은 현재 예상입력/실제입력 선택모듈(56)이 실제입력을 선택하도록 하는 출력을 예상입력/실제입력 선택모듈(56)에 보내어 제어 중) 동시에 예상입력/실제입력 비교모듈(59)에서부터 예상입력과 실제입력이 일정 횟수 이상 같다는 판단이 입력으로 오게되면 예상입출력이용-런/실제입출력이용-런 제어모듈(54)은 예상입력/실제입력 선택모듈(56)이 예상입력을 선택하도록 출력을 예상입력/실제입력 선택모듈(56)에 보내고 동시에 내부의 현재 상태변수를 실제입출력이용-런에서 예상입출력이용-런으로 스위칭하게 된다. And to be able to perform a rollback perform control between the current local simulation physical IO used - while the procedure proceeds to run-way (thus expected input and output using-run / physical IO used-run control module 54 is currently estimated input / actual input selecting module 56 is the expected input and actual input event to output to select the actual input from the expected input / of sending control the actual input selection module 56) at the same time expected input / actual input comparison module (59) When the number of times at least equal to determined when it comes to the type expected input and output using-run / physical IO used-run control module 54 is expected in / real type selection module 56, the input estimate the output is to select the predictive input / actual input selection send to the module 56 at the same time, the current state variable in the use of the actual input-output - is switched to the run-expected output used in the run. 뿐만 아니라, 예상입출력이용-런/실제입출력이용-런 제어모듈(54)은 내부의 현재 상태를 분산병렬 시뮬레이션을 위한 통신 및 동기화 모듈(64)를 통하여 다른 로컬시뮬레이션들에게 알리기 위한 두개의 출력(실제입출력이용-런 필요, 예상입출력이용-런 가능)을 분산병렬 시뮬레이션을 위한 통신 및 동기화 모듈(64)로 보내고, s-DCP 생성/저장 모듈(60)을 제어하여서 s-DCP 생성/저장 모듈(60)이 맞는 예상입력 또는 예상출력을 맞는 타이밍에 출력하도록 한다. In addition, the estimated input and output using-run / physical IO used-run control module 54 has two outputs to inform the other local simulation by way of the communication and synchronization module 64 for distributed parallel simulation of the current state of the inside ( the actual input-output using-run desired, expected input and output using-run available) dispersion having a communication and synchronization module 64 for parallel simulation, s-DCP produced / stored hayeoseo control module (60) s-DCP produced / storage module 60 to output the input to a timing estimated or expected outputs match. 예상출력/실제출력 비교모듈(58)은 s-DCP 생성/저장 모듈(60)에 저장된 예상출력과 로컬시뮬레이터에서 수행되는 설계 검증 대상 모델의 일부분(404)에서부터 로컬시뮬레이션 실행 과정에서 실제적으로 나오게 되는 실제출력을 비교하여, 이 비교가 일치하면 예상입출력이용-런/실제입출력이용-런 제어모듈(54)에 일치함을 출력으로 보내고 이 비교가 불일치하면 예상입출력이용-런/실제입출력이용-런 제어모듈(54)에 불일치함을 출력으로 보내는 동시에 분산병렬 시뮬레이션을 위한 통신 및 동기화 모듈(64)로 롤백을 위한 현재의 시뮬레이션 시간을 보내어 다른 로컬 시뮬레이션들에게 이들 정보(롤백을 위한 현재의 시뮬레이션 시간)를 보낼 수 있게 한다. Expected output / actual output comparison module 58 is s-DCP from the generation / storage module 60, a portion 404 of the design verification target model the expected outputs and performing the local simulator stored in being practically out of the local simulation execution process by comparing the actual output, when the comparison matches expected input and output using-run / physical IO used-run when sending to the output that corresponds to the control module 54, the comparison is a mismatch estimated output using-run / physical IO used-run sending the current simulation time for rollback to the communication and synchronization module 64 for distributed parallel simulation at the same time are sent to the output that the inconsistency in the control module 54 thereof to the other local simulation information (current simulation time for rollback ) should be able to send.

예상입력/실제입력 비교모듈(59)는 s-DCP 생성/저장 모듈(60)에 저장된 예상입력과 분산병렬 시뮬레이션을 위한 통신 및 동기화 모듈(64)로부터 오는 다른 1 이상의 로컬시뮬레이션으로부터의 실제입력을 비교하여 이 비교가 일정 횟수만큼 일치하게 되면 이를 예상입출력이용-런/실제입출력이용-런 제어모듈(54)에 출력으로 보내게 된다. Estimated input / actual input comparison module 59 is a real input from s-DCP produced / storage module 60 is expected to enter the distributed communication and other one or more local simulation comes from a synchronization module 64 for parallel simulation stored in the It is sent as an output to the run control module 54 - if the comparison by the comparison to match a certain number of times, this output using estimated-run / physical IO used. 예상입력/실제입력 비교모듈(59)과 예상출력/실제출력 비교모듈(58)은 비트 시그널 단위와 시뮬레이션 절대시간만을 기준으로 하여서 실제값과 예상값을 비교하는 것이 아니라, 앞서서 이미 설명한대로 "시간맞춤"과 "트란젝션화를 통한 s-DCP 정확도증강 과정" 등을 통하여 실제값과 예상값의 같음과 다름을 판단한다는 것에 유의한다. Estimated input / actual input comparison module 59 and the expected output / actual output comparison module 58 is not to compare the simulation never only hayeoseo based on the actual values ​​of time and the expected values ​​with the bit signal unit, as already described before "time it should be noted that through such alignment "and" s-DCP accuracy enhancement process through Tran projection screen "determine the actual value equals the difference of the expected value. 마지막으로, 예상입력/실제입력 선택모듈(56)은 예상입출력이용-런/실제입출력이용-런 제어모듈(54)의 출력으로써 통신 및 동기화 모듈(64)로부터 오는 실제입력과 s-DCP 생성/저장 모듈(56)에 저장된 예상입력 중에서 하나를 선택하여서 이 로컬시뮬레이터에서 수행되는 설계 검증 대상 모델의 일부분(404)에 입력으로 인가한다. Finally, the estimated input / actual input selecting module 56 is expected input and output using-run / physical IO used - the actual input and s-DCP produced comes from the communication and synchronization module 64 as the output of the run control module 54 / is applied as an input to the portion 404 in the design verification is performed on the target model, the local simulator hayeoseo select one of the estimated input stored in the storage module 56. 만일, 검증 대상 모델 M의 일부분(404)이 로컬하드웨어기반검증플랫폼 상에서 시뮬레이션가속모드로 수행되는 경우에는 부가되는 부가 코드(62)는 합성가능한(synthesizable) 형태로 존재하여야 하며, 검증 대상 모델 M의 일부분(404)이 로컬시뮬레이터 상에서 수행되는 경우에는 부가되는 부가 코드(62)는 시뮬레이션가능한 형태로 존재하기만 하면 됨으로 이 부가되는 부가 코드는 HDL(예로 Verilog, VHDL 등) 코드 또는 SDL(예로 SystemC, SystemVerilog 등) 코드 또는 C/C++ 코드 또는 이들의 조합 형태로 다양하게 존재할 수 있다. If, a portion 404 of the subject model M in the case performed by the simulation acceleration mode on the local hardware based verification platform, additional code is added (62) are to be present in the form synthesizable (synthesizable), verification target model M portion 404 is, simply, the presence in the simulation can form additional code 62 to be added if that is performed on the local simulator additional code doemeuro is negative, the HDL (example Verilog, VHDL, and so on) code or SDL (Examples SystemC, SystemVerilog, etc.) may be present in the code or C / C ++ code, or a variety of combinations of these forms. 뿐만 아니라, 이와 같은 부가되는 부가 코드(62)는 본 특허의 검증 소프트웨어에 의하여 자동적으로 생성되어진다. Furthermore, this additional code (62) to be added is such is to be automatically generated by the software validation of this patent. 도 8에서 예시한 예에서는 부가 코드(62) 전체가 HDL 시뮬레이터 외부에서 C/C++ 또는 SystemC 코드 형태로 존재하여서 VPI/PLI/FLI를 통하여 HDL로 표현된 검증 대상 모델 M의 일부분(404)과 인터페이스되어 연동되어지는 상황을 나타내고 있지만, 앞서서 이미 언급되어진 것과 같이 부가 코드(62)의 일부분은 HDL도 표현되어지고 나머지는 C/C++ 또는 SystemC 코드 형태로 표현되어지는 것도 가능하다. In the example illustrated in Figure 8, additional code (62) All the HDL simulator hayeoseo present externally in the form C / C ++ or SystemC code VPI / PLI / FLI verified target model M part 404 of the representation as HDL through the interface it is a portion of the additional code (62) as been shown to be linked to the situation, but has already been mentioned before is also expressed HDL rest which can be expressed as C / C ++ or SystemC code form. 또한 도 8에서 통상적인 분산병렬 시뮬레이션에서 필요한 통상적인 통신 및 동기화 모듈은 분산병렬 시뮬레이션을 위한 통신 및 동기화 모듈(64)로 표시되어 있다. In addition, conventional communication and synchronization modules necessary in the conventional parallel distributed simulation in Figure 8 is shown as a communication and synchronization module 64 for a parallel distributed simulation. 앞서서 이미 언급된 것과 같이 도8 에서는 s-DCP 생성/저장 모듈(60)에 저장된 s-DCP는 앞선 시뮬레이션 수행 과정에서 얻어진 동적정보로부터 해당 로컬시뮬레이션에서 수행되는 로컬설계객체의 입출력정보를 얻고 이를 예상입력(50)과 예상출력(52)으로 사용하고 있는 것임으로, 상기 예상입력(50)과 예상출력(52)은 파일형태로 저장되어져서 HDL 코드(예로, Verilog에서의 $readmemb, 혹은 $readmemh) 또는 VPI/PLI/FLI를 이용하여 C/C++ 코드에 의하여 읽어지도록 하는 것도 가능하다 (s-DCP에 추상화 상위수준의 모델을 포함시켜, 이 추상화 상위수준의 모델을 추상화 하위수준의 모델인 로컬설계객체와 같이 시뮬레이션하면서 상기 추상화 상위수준의 모델에서부터 예상입력과 예상출력을 동적으로 생성시켜서 이를 상기 로컬설계객체에 대한 시뮬레이션에 이용하는 예는 Ahead of the Figure 8, as already mentioned s-DCP stored in the s-DCP produced / storage module 60 obtains the input information for the local design object to be performed on that local simulation from the dynamic information obtained in the previous simulation execution process estimated this input 50 and the expected output 52 as will in use, the estimated input 50 and the expected output 52 is so stored as a file HDL code (for example, $ readmemb in Verilog, or $ readmemh ) or a VPI / PLI / using the FLI C / C ++ to it is also possible to so read by the code (including the model of abstraction higher level in the s-DCP, the abstraction of a local model of the higher-level model of abstract lower level and simulation, such as for example, an object designed for use in the high-level of abstraction from the simulation model by dynamically generate the expected input and expected output for this to the local design of the object are 도32 를 참조함). Also see FIG. 32).

특히, 도8 또는 도32 와 같은 구성으로 분산처리적병렬시뮬레이션에서의 각 로컬시뮬레이션들을 위한 부가 코드를 구성하게 되면 예상입출력이용-런 수행을 모든 로컬시뮬레이션들이 일관되게 똑같이 예상입출력이용-런 수행으로 진행할 수 있을 뿐만 아니라(즉 예상입출력이용-런 수행이 되는 경우는 로컬시뮬레이션들 모두가 함께 예상입출력이용-런 방식으로 수행됨), 각 로컬시뮬레이션별로도 예상입출력이용-런 수행을 진행(예로, 특정한 로컬시뮬레이션들은 실제입출력이용-런 방식으로 진행되고 나머지 로컬시뮬레이션들은 예상입출력이용-런 방식으로 진행)할 수도 있다. In particular, the estimated input and output used when the configuration an additional code for each of the local simulation of the distribution process ever parallel simulate a structure as shown in Fig. 8 or 32 to the run performed - a run carried out all the local simulation consistently equally expected input and output using not only can proceed as well (that is expected input and output use - if this happens perform a local simulation of all with expected output using-performed the run method), each local simulation also expected input and output using-process (an example of a run carried out, a specific local simulations using real input and output - and proceeds to run the rest of the local system are simulated using estimated output - may be conducted as the run method). 이와 같이 각 로컬시뮬레이션별로도 예상입출력이용-런 수행을 진행하게 되는 경우에 분산병렬 시뮬레이션 전체로 보면 분산병렬 시뮬레이션의 통신 오버헤드 또는 동기 오버헤드를 완전하게 제거할 수는 없지만(모든 로컬시뮬레이션들이 모두 동일하게 예상입출력이용-런 방식으로 수행하게 되는 상황에서는 통신 오버헤드와 동기 오버헤드는 전혀 없게 되지만, 이 경우에는 특정 로컬시뮬레이션들은 실제입출력이용-런 방식으로 진행되고 다른 로컬시뮬레이션들은 예상입출력이용-런 방식으로 진행됨) 통신 오버헤드 또는 동기 오버헤드를 상당하게 낮추는 것이 가능함으로 많은 이득을 기대할 수 있다. Thus, for each local simulation also expected input and output use - to look completely remove the communication overhead or the synchronization overhead of distributed parallel simulation as a whole distributed parallel simulation in the case where the progress of the run performed, but (all local simulation are all equally expected input and output use - in a situation that it would take to run-way communication, but the overhead and synchronization overhead is totally impossible, in this case, a specific local simulations physical IO used - and proceeds to run the way other local simulations using estimated input and output - It progresses to the run method) to lower considerably the communication overhead or the synchronization overhead can be expected much gain as possible.

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

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

도11 은, 도10 에서 예시한 ESL 모델내의 설계객체들 각각을 대응되는 RTL 모델내의 설계객체로 대체하여서 추상화 중간수준의 혼합된 설계객체 DO_t_mixed(i)들을 생성하는 일 예를 개략적으로 도시한 도면이다. 11 is a view also in alternative hayeoseo schematically showing an example of generating the design object DO_t_mixed (i) a mixture of abstraction medium for each of the design objects in the ESL model illustrated at 10 as a design object in the corresponding RTL model to be. 도11 에서 예시한 경우와 같이 ESL 모델에서부터 점진적 구체화 과정으로 생성된 ESL/RTL 추상화 혼합수준의 모델(예로 DO_t_mixed(2))을 생성한 경우에 이 ESL/RTL 추상화 혼합수준의 모델의 시뮬레이션 속도가 추상화 상위수준의 ESL 모델의 시뮬레이션 속도에 비하여 상당히 떨어지는 경우에도 본 특허에서의 분산처리적병렬수행 방식을 통하여 ESL/RTL 추상화 혼합수준의 모델에 대한 시뮬레이션 속도를 높일 수 있다. Case illustrated in Figure 11 and the simulation speed of this ESL / RTL abstraction mixed level of the model when creating the progressive elaboration process, the ESL / RTL abstraction mixed level of the model generated in (example DO_t_mixed (2)) from the ESL model as even if high-level abstraction of the ESL considerably less than the speed of the simulation model through the dispersion treatment ever parallelism scheme in this patent it is possible to increase the speed of simulation to the model of the ESL / RTL abstraction level mixed.

구체적 예로, 도11 에서 DO_t_mixed(2)의 경우에 분산처리적병렬수행 방식의 분산병렬 시뮬레이션을 두개의 로컬시뮬레이션으로 구성하고, 하나의 로컬시뮬레이션에서는 설계객체 DO2_rtl와 트란젝션과 RTL간의 변환을 위한 트란젝터를 수행시키고 나머지 하나의 로컬시뮬레이션에서는 다른 모든 트란젝션 수준의 설계객체들을 수행시키도록 구성하게 되면 ESL/RTL 추상화 혼합수준의 모델 DO_t_mixed(2)의 시뮬 레이션 속도를 모델 DO_t_mixed(2) 전체를 하나의 시뮬레이션으로 수행하는 것에 비하여 효과적으로 높일 수 있다. Specifically, for example, a configuration in the 11 DO_t_mixed (2) when in a distributed parallel simulation of the distribution process ever parallelism scheme of the two local simulation, and the one of the local simulation Tran for conversion between the design object DO2_rtl and Tran projection and RTL When configured to perform a projector and performs the remaining one design object for all other Tran rejection level in the local simulation models for simulation speed of the model DO_t_mixed (2) of the ESL / RTL abstraction mix level DO_t_mixed (2) one full the can effectively be enhanced as compared to performing the simulation. 물론, 3 이상의 로컬시뮬레이션으로 구성되는 분선처리적병렬시뮬레이션 방식의 분산병렬 시뮬레이션을 이용하여서 추상화 혼합수준의 모델의 시뮬레이션 속도를 높이는 것도 일반적으로 가능하다. Of course, hayeoseo using distributed parallel simulation of a distributed parallel processing ever simulation system consisting of three or more local simulation also increase the speed of the simulation of mixed abstraction level model is generally possible.

도12 는, 도 11에서 예시한 여섯 개의 혼합된 설계객체 DO_t_mixed(1), DO_t_mixed(2), .., DO_t_mixed(6)를 이용한 여섯의 혼합 시뮬레이션의 독립적 병렬 실행과 이 실행 과정에서 1 이상의 시뮬레이션 시점들에서 수집된 상태정보들을 이용하여서 후단 시뮬레이션 단계인 RTL 모델에 대한 시뮬레이션을 시간분할적병렬수행으로 수행하는 일 예를 개략적으로 도시한 도면이다. 12 is a diagram of six mixed design object illustrated in 11 DO_t_mixed (1), DO_t_mixed (2), .., DO_t_mixed (6) one or more simulations from independent parallel execution and the execution of the simulation of six mixed with hayeoseo using the status information collected at the time of a block diagram illustrating an example of the simulation for the RTL simulation models trailing phase to the time division ever parallelism.

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

도14 는, 점진적 구체화 과정을 거쳐서 트란젝션 수준의 모델에서부터 RTL 모델을 거쳐서 게이트수준의 모델까지 생성되는 과정의 일 예를 개략적으로 도시한 도면이다. Figure 14 is, via a gradual process embodies a diagram illustrating an example of a process model that is generated by the gate-level via the RTL model from the model of dextran rejection level.

도15 는, 점진적 구체화 과정을 거쳐서 사이클정확 트란젝션 수준의 모델을 이용한 검증에서부터 RTL 모델을 이용한 검증을 거쳐서 게이트수준의 모델을 이용한 검증까지 진행되는 과정에 s-DCP 또는 t-DCP를 이용하여서 추상화 하위수준 모델에 대한 시뮬레이션을 분산처리적병렬수행 또는 시간분할적병렬수행으로 진행하는 상황의 일 예를 개략적으로 도시한 도면이다. Figure 15 is, via a progressive elaboration process cycle accurate Tran rejection level of model abstraction hayeoseo using the s-DCP or t-DCP in the process of going through the verification using the RTL model from Test to the verification using a model of a gate level using an example of a situation to progress the simulation model for the low-level in a distributed processing enemy parallelism or time division ever parallelism a schematic view. 도면에서 DCP는 s-DCP 또는 t-DCP를 가르킨다. In the drawings points to the DCP is s-or t-DCP DCP.

도16 은, 본 특허에서의 시뮬레이션 방법을 진행하는 예제 모델의 일부분을 개략적으로 도시한 도면이다. 16 is a view generally showing a portion of the model sample to proceed with the simulation method of the present patent.

도17 과 도18 과 도19 는, 도16 에서 예시한 예제 모델을 분산처리적병렬시뮬레이션으로 수행하기 위하여 본 특허의 검증 소프트웨어를 이용하여 부가 코드를 부가한 상황의 일 예를 부분적으로 나누어서 개략적으로 도시한 도면들이다. Schematic Figure 17 and Figure 18 and Figure 19, also using the validation software of this patent to carry out a dispersion treatment ever parallel simulate the example model shown in 16 additional dividing an example of a situation, adding a code to the part It is shown by the drawing.

도20 은, 분산처리적병렬수행/단일수행 혼용방식의 수행 상황의 일 예를 개략적으로 도시한 도면이다. 20 is a diagram illustrating an example of a state of performing dispersion treatment ever parallelism / single performing mixing method.

도21 은, 시뮬레이션가속을 통한 시뮬레이션을 분산처리적병렬수행으로 진행함으로서 시뮬레이터와 하드웨어기반검증플랫폼 간의 동기 오버헤드 및 통신 오버헤드를 감소시키는 상황의 일 예를 개략적으로 도시한 도면이다. 21 is a diagram illustrating an example of a situation to reduce the progress by a simulation by the simulation acceleration in a distributed processing simulator ever parallelism and synchronization between the hardware platform based verification overhead and communication overhead. 즉 통상적인 시뮬레이션가속 기법은 모델에서 합성가능한 설계객체(통상적으로 DUV)는 하드웨어기반검증플랫폼 내의 1 이상의 FPGA 또는 1 이상의 불리안프로세서에 구현하고 합성가능하지 않은 설계객체(통상적으로 TB)는 시뮬레이터에 구현하여 이들을 물리적으로 연결(예로 PCI를 통하여 연결)하여 하드웨어기반검증플랫폼과 시뮬레이터를 병렬적으로 연동시키는 것임으로 2개의 로컬시뮬레이션을 통한 분산병렬 수행되어지는 것과 동일하다. That is conventional simulation acceleration technique is hardware based verification least one FPGA or 1 implements the above-Boolean processor, and synthetic non-design object (typically TB) in the platform synthesizable design object (typically DUV) in the model in the simulator it is the same as those implemented by physically connected (connected through a PCI example) hardware-based verification and simulation platform that the dispersion is carried out in parallel with the will of two local simulation of parallel interlocking with. 따라서 본 특허에서 제안한 분산처리적병렬수행 방식을 통상적인 시뮬레이션가속에서 아무 변경없이 적용가능하며, 이를 통하여 통상적인 시뮬레이션가속에서 존재하는 하드웨어기반검증플랫폼과 시뮬레이터 간의 통신 오버헤드와 동기 오버헤드를 최소화시키는 것도 가능하다. Therefore, applicable without any changes to the proposed distribution process ever parallelism approach in this patent in the conventional simulation acceleration, and to minimize the hardware based verification platform and the simulator communication overhead and synchronization overhead between existing in the conventional simulation acceleration through which it is possible.

이와 같은 시뮬레이션가속에서의 특정한 시뮬레이션 수행 SA_run(j)에서 사용되는 예상입력과 예상출력은 다른 경우들과 마찬가지로 SA_run(j)보다 시간적으로 앞서서 수행되어진 선행 시뮬레이션 수행 SIM_run(i)의 시뮬레이션 과정에서 수집된 동적정보로부터 얻어진다 (SIM_run(i)과 SA_run(j) 사이에 스펙 변경 또는 디버깅 과정을 통하여 모델 내의 1 이상의 설계객체에 대한 부분적 변경이 일어날 수도 있다). Such simulation specific simulation performed in an acceleration expected type used in SA_run (j) with the expected output is collected during the simulation of like other cases SA_run temporally been performed preceding the simulation performed in advance of (j) SIM_run (i) is obtained from the dynamic information (SIM_run (i) and SA_run (j) may be in a partially modified for one or more design objects in the model through the specification change, or debugging occur between). 또한, 상기 선행 시뮬레이션 수행 SIM_run(i)는 SA_run(j)가 수행되는 동일한 하드웨어기반검증플랫폼을 시뮬레이터와 같이 이용하여서 수행되어질 수 있고, 이 뿐만 아니라, SA_run(j)가 수행되는 동일한 하드웨어기반검증플랫폼이 아닌 별도의 1 또는 2 이상의 시뮬레이터만을 이용(이 경우 모델 전체가 상기 1 또는 2 이상의 시뮬레이터만을 사용해서 시뮬레이션되어짐)하여서 시뮬레이션되는 것 또한 가능한데 이와 같은 경우에는 상기 별도의 1 또는 2 이상의 시뮬레이터만을 이용하여서 시뮬레이션되는 모델의 추상화수준이 하드웨어기반검증플랫폼으로 수행되는 설계객체와 같은 추상화 수준일 수도 있지만 시뮬레이션의 속도를 높이기 위하여서 하드웨어기반검증플랫폼으로 수행되는 설계객체보다 높은 추상화 수준일 수도 있다. In addition, the prior simulation performed SIM_run (i) is SA_run (j) is carried out the same hardware-based verification and the platform can be performed hayeoseo used as the simulator, this as well, the same hardware-based verification that SA_run (j) is performed platform It is not to separate one or two or more using only simulators (the whole in this case model doeeojim simulation using only the one or two or more simulators) hayeoseo simulation also possible this is hayeoseo using only the additional one or two or more simulation case It may be a level of abstraction in the simulation model abstraction levels such as design objects that perform hardware-based verification platform, but it may be a higher level of abstraction than the design objects that perform hardware-based verification platform in order to speed up the simulation. 예로, 하드웨어기반검증플랫폼으로 수행되는 설계객체 DUV가 RTL이면 시뮬레이션되는 모델(이 모델은 DUV를 포함하고 있음)의 추상화 수준은 ca-트란젝션수준 모델이거나, 하드웨어기반검증플랫폼으로 수행되는 설계객체 DUV가 GL이면 시뮬레이션되는 모델(이 모델은 DUV를 포함하고 있음)의 추상화 수준은 RTL 모델일 수 있다. For example, hardware-based verification to perform the design object is to be DUV the RTL simulation models platform abstraction level (in this model that includes a DUV) is ca- Tran or rejection level model, design objects DUV is carried out in hardware based verification platform the simulation model is to be GL level of abstraction (a model that includes a DUV) may be the RTL model. 즉, 통상적인 시뮬레이션가속의 경우에도 본 특허에서의 분산처리적병렬수행 방식을 채용함으로서 시뮬레이션가속의 진행 전 과정을 1회 이상의 예상입출력이용-런 진행 과정과, 필요시에 1회 이상의 실제입출력이용-런 진행 과정이 번갈아 가면서 진행되는 것으로 수행가능하며, 이전 시뮬레이션 진행에서 수집된 동적정보에서부터 얻어진 높은 정확도의 예상입력과 예상출력을 사용함으로서 시뮬레이션가속 진행의 대부분의 시간을 예상입출력이용-런 방식으로 진행 가능하게 함으로서 통신 오버헤드와 동기 오버헤드를 크게 감소시켜서 시뮬레이션가속의 속도를 크게 높이는 것이 가능하다. That is, the conventional simulation acceleration in a distributed processing enemy parallelism manner adopted by simulation acceleration in progress the whole process using at least one estimated input and output in the present patent for-run process and, at least one physical input and output use time if necessary - a run and can be performed to proceed the process is conducted alternately, using previous simulated expected most of the time in the simulated acceleration proceeds by using a highly accurate expected input and expected output obtained from the dynamic information collected on the progress output - to a run way It can be improved by greatly reducing the communication overhead and synchronization overhead by enabling progress significantly accelerate the speed of the simulation.

단, 이와 같은 예상입력과 예상출력을 저장하기 위한 하드웨어기반검증플랫폼에 존재하는 메모리의 용량이 충분이 큰 경우에는 모든 예상입력과 예상출력을 하드웨어기반검증플랫폼에 존재하는 메모리에 이들 전부를 한번에 저장시키고, 하드웨어기반검증플랫폼에 존재하는 메모리의 용량이 크지 않은 경우에는 모든 예상입력과 예상출력을 하드웨어기반검증플랫폼에 연결되어진 컴퓨터 상의 대용량의 기억장치(하드디스크 또는 주기억장치)에 우선 저장시키고, 하드웨어기반검증플랫폼에는 예상입력과 예상출력의 일부분만을 저장할 수 있는 일정크기의 버퍼를 두고 시뮬레이션가속 실행 과정에서 필요한 부분만을 동적으로 상기 컴퓨터 상의 대용량의 기억장치에서부터 상기 버퍼로 버스트(burst) 방식으로 옮겨서 처리하는 방식을 채용할 수도 However, storing such a case, this large enough amount of memory present in the hardware-based verification platform for storing the expected input and expected output for all the expected input and expected output for all of these to the memory present in the hardware-based verification platform at a time, and, when the amount of memory present in the hardware-based verification platform is not large, the were first stored on any mass storage of on the computer been estimated input and expected output connected to the hardware based verification platform device (hard disk or main memory unit), hardware based validation platform, then the process move to the expected input and a burst (burst) from the expected output only with a buffer having a predetermined size simulate accelerated execution memory only dynamically the capacity on the machine parts required for storing a portion of said buffered the way that might be adopted 다. The.
뿐만 아니라, 본 특허에서의 분산처리적병렬수행 방식을 채용한 시뮬레이션가속에서는 하드웨어기반검증플랫폼 상에서 수행되는 설계객체(통상적으로 DUV) DO_on_hwp를 예상입력으로 시뮬레이션 시점 0에서부터 선실행시키고 DO_on_hwp의 실제출력을 예상출력과 비교하는 과정을 먼저 진행시킨 후에(DO_on_hwp의 실제출력과 예상출력이 달라지는 시뮬레이션 시점 T_diff(1)까지), 시뮬레이터 상에서 수행되는 설계객체(통상적으로 TB)의 실행을 뒤따라서 진행하고(시뮬레이션 시점 0에서부터 T_diff(1)까지. 따라서 시뮬레이션 시점 0에서부터 T_diff(1)까지는 예상입출력이용-런 방식으로 DUV 실행 시작 후에 예상입출력이용-런 방식으로 TB 실행이 시작됨. 즉 이와 같은 실행에서는 TB 실행과 DUV 실행은 독립적으로 진행되어지지만 TB 실행은 DUV 실행을 앞설 수 없게 됨), T_ In addition, the design object (typically DUV) running DO_on_hwp from the simulation time point 0 to the estimated input line and the actual output of DO_on_hwp is carried out in a simulated acceleration employing the dispersion process ever parallelism scheme in hardware based verification platform of the present patent proceeding according back execution after going through the process of comparing the expected output first design object (typically a TB) is carried out on the simulator (actual output and simulation time to T_diff (1) the expected output varies in DO_on_hwp) and (simulation from the point 0 T_diff (1) to thus from the simulation time point 0 T_diff (1) until the expected input and output using-run scheme as expected input and output use after DUV execution start-run approach to started the TB executed That is, in this run as TB runs and DUV run, but progress is being run independently TB can not run ahead of the DUV), T_ diff(1)에서부터 T_match(1)까지는 DUV와 TB를 실제입출력이용-런 방식으로 동시에 실행하고, T_match(1)에서부터 T_diff(2)까지 예상입출력이용-런 방식으로 DUV 실행 시작 후에 예상입출력이용-런 방식으로 TB 실행을 시작하고(이와 같은 실행에서도 TB 실행과 DUV 실행은 독립적으로 진행되어지지만 TB 실행은 DUV 실행을 앞설 수 없게 됨), T_diff(2)에서부터 T_match(2)까지 다시 DUV와 TB를 실제입출력이용-런 방식으로 동시에 실행하고, T_match(2)에서부터 T_diff(3)까지 다시 예상입출력이용-런 방식으로 DUV 실행 시작 후에 예상입출력이용-런 방식으로 TB 실행의 시작(이와 같은 실행에서도 TB 실행과 DUV 실행은 독립적으로 진행되어지지만 TB 실행은 DUV 실행을 앞설 수 없게 됨)을 최소 1회 이상 반복할 수 있다. From diff (1) by T_match (1) using the DUV and TB physical IO - from a run way, T_match (1) and run at the same time T_diff (2) used to expected output-run scheme as expected input and output use after DUV execution start - the run way to start the TB runs and DUV and TB again (this also run run TB execution and DUV as independently, but progress is to TB running search can not be ahead of the DUV run), from T_diff (2) to T_match (2) the actual input and output using-run with the run method at the same time, T_match (2) from T_diff (3) used to re-estimated output-run scheme as expected input and output use after DUV execution start-run scheme as the start of the TB executed (this also runs DUV and TB run run run, but proceeds independently of TB may not be able to stay ahead of the search run DUV) repeating at least once. 이와 같은 방식에서는 TB가 DUV 보다 먼저 선실행될 수 없게 함으로서 TB에 대한 롤백이 필요하지 않게 된다. In this way no TB can be performed first line than DUV is not necessary to roll back on by TB. 뿐만 아니라 이와 같은 분산처리적병렬수행 방식을 채용한 시뮬레이션가속의 경우에 예상입력과 예상출력이 분산처리적병렬수행 방식을 채용한 상기 시뮬레이션가속 실행 이전에 수행된 임의의 시뮬레이션 실행에서 수집되고, 상기 임의의 시뮬레이션 실행 후에 디버깅 또는 스펙 변경 등에 의하여 DUV와 TB 내의 1 이상의 설계객체가 변경되고, 하드웨어기반검증플랫폼으로 수행되는 로컬시뮬레이션에 상기 변경된 1 이상의 설계객체가 모두 포함되어져 있다면 상기 하드웨어기반검증플랫폼으로 수행되는 로컬시뮬레이션에 대한 롤백까지도 필요하지 않게 된다. As well as being collected from this dispersion treatment ever expected input and expected output any simulation run is performed on the simulated acceleration run before employing a distributed processing enemy parallelism scheme in the case of adopting the parallel execution method simulating acceleration of the and the one or more design objects in the DUV and TB change by for debugging or specification change after any of the simulation run, the one or more design objects the changed to the local simulation to be performed in hardware based verification platform there been included in both the hardware-based verification platform even rollback to the local simulation to be performed is not required. 또한 이와 같은 방식은 상기 통상의 시뮬레이션 가속에서 본 특허에서의 분산처리적병렬시뮬레이션 방식을 이용하는 경우에 적용 가능할 뿐만 아니라, 앞서서 설명한 본 특허에서의 시뮬레이터들만을 이용한 분산처리적병렬수행 방식의 상황에서도 적용하여서 1 이상의 특정 로컬시뮬레이션에서의 롤백을 필요로 하지 않게 하는 것도 또한 가능하나, 이와 같은 방식은 롤백을 필요로 하는 경우에 비하여 추가적인 로컬시뮬레이션들간의 수행 순서의 제약에 의하여 시뮬레이션 속도의 저하가 발생할 수도 있다. Also applied in this manner is how the distribution process ever parallel execution method using a simulator only in this patent not only be applicable to the case of using the distributed processing enemy parallel simulation method of the present patent, as described before in the conventional simulation acceleration hayeoseo also does not require the rollback of at least one specific local simulation can also be one, this approach is if you need to roll back to a further possible that the local simulation between perform sequence simulation speed by the constraints of the degradation occurs in comparison have.
하드웨어기반검증플랫폼 상에서 수행되는 설계객체에 대한 롤백이 필요한 경우에는 상용 하드웨어기반검증플랫폼(예로 Cadence사의 Palladium 시리즈/Extreme 시리즈, Mentor사의 Vstation 시리즈, EVE사의 ZeBu 시리즈, Fortelink사의 Gemini 시리즈, Tharas사의 Hammer 시리즈 등)에서 제공하는 롤백 기능을 이용하거나 또는 별도의 특허(US 6,701,491)에서 제안된 출력탐침/입력탐침 기능을 이용하거나 또는 설계객체 내에 존재하는 플립플롭들 또는 래치들에 대하여 쉐도우레지스터(shadow register)를 두고 이용함으로서 롤백 기능을 손쉽게 구현 가능하다. If the rollback of the design objects that are performed on a hardware-based verification platform necessary commercial hardware-based verification platform (eg Cadence's Palladium Series / Extreme series, Mentor's Vstation series, EVE's ZeBu series, Fortelink's Gemini Series, Tharas's Hammer Series etc.) using a rollback or a shadow register (shadow register) with respect to a separate patent (s flip-flop using the outputs probe / type probe features proposed in US 6,701,491), or present in the design object or the latch provided by the the place can be easily implemented by the use of the rollback feature.
본 특허에서 언급하는 분산병렬 시뮬레이션 환경에서 1 이상의 특정 로컬시뮬레이션은 시뮬레이터로 수행되거나 이 로컬시뮬레이션에서 수행되는 검증 대상 모델의 일부분이 합성가능한 경우에는 하드웨어기반검증플랫폼(시뮬레이션가속기 또는 하드웨어에뮬레이터 또는 FPGA 보드를 통칭)으로 수행되어질 수 있고, 시뮬레이터로 수행되는 경우에는 이 시뮬레이터로는 이벤트-구동 Verilog 시뮬레이터 또는 SystemVerilog 시뮬레이터 또는 VHDL 시뮬레이터 또는 SystemC 시뮬레이터, 혹은 사이클-기반 SystemC 시뮬레이터 또는 VHDL 시뮬레이터 또는 Verilog 시뮬레이터 또는 SystemVerilog 시뮬레이터가 사용될 수 있을 뿐만 아니라, Vera 시뮬레이터 또는 e 시뮬레이터 등의 여타 임의의 반도체설계용 시뮬레이터까지도 사용될 수 있다. 1 specific local simulation over a distributed parallel simulation environment as referred to in this patent is carried out in the simulator or the if the synthesizable portion of the subject model to be performed on the local simulation, hardware-based verification platform (simulation accelerator or a hardware emulator or FPGA board If a popular name) may be carried out by performing a simulator in the simulator event-driven Verilog simulator or SystemVerilog simulator or VHDL simulator, or SystemC simulator, or cycle-driven SystemC simulator or a VHDL simulator or Verilog simulator or SystemVerilog simulator used It can not only may be used, even Vera simulator or simulators for any semiconductor other design simulator such as the e. 따라서 분산병렬 시뮬레이션을 수행하는 1 이상의 로컬시뮬레이션들에서 특정 로컬시뮬레이션들은 이벤트-구동 방식으로 진행되고, 분산병렬 시뮬레이션 과정에서 이들과 연동하는 다른 로컬시뮬레이션들은 사이클-기반 방식으로 진행(예로, 도 5에서 온-칩 버스 설계객체(420) 사이클-기반으로 동작하고, 나머지 설계객체들(380, 381, 382, 383, 384, 385)은 이벤트-구동 방식으로 동작)될 수도 있다. Therefore, a specific local simulation at one or more local simulation for performing distributed parallel simulations event - the procedure proceeds to the driving method, another local simulation to work with these in a distributed parallel simulation procedure are the cycle in progress (for example, based on the way, in FIG. 5 on-may be operated as a driving system) chip bus design object 420 cycle operation based on, and the rest of the design object (380, 381, 382, ​​383, 384, 385) is an event. 물론, 분산병렬 시뮬레이션을 수행하는 모든 로컬 시뮬레이션들이 이벤트-구동 방식으로 진행(이와 같은 이벤트-구동 방식의 분산병렬 시뮬레이션은 PDES(Parallel Distributed Event-driven Simulation)이라고 한다)될 수도 있고, 분산병렬 시뮬레이션을 수행하는 모든 로컬 시뮬레이션들이 사이클-기반 방식으로 진행될 수도 있다. Of course, all of the local simulation events are to perform distributed parallel simulation proceeds to drive system - may be (this event is referred to as distributed parallel simulation of the driving method Parallel Distributed Event-driven Simulation (PDES)), the distributed parallel simulation all you have to perform a local simulation cycle may proceed based approach.

삭제 delete

삭제 delete

도22 는, 본 특허에서의 분산처리적병렬수행 방식의 시뮬레이션을 위한 2 이상의 컴퓨터에 인스톨된 2 이상의 로컬컴퓨터들의 논리적연결구조 방식들의 몇가지 사례들을 예시한 도면이다. Figure 22 is a diagram illustrating several examples of how the logical connection structure of the two or more local computers installed in two or more computer for the simulation of the distribution process ever parallelism scheme in this patent. 도22 에서 도시한 로컬컴퓨터들의 논리적연결구조 방식들 이외에도 로컬컴퓨터들의 다양한 논리적연결구조 방식들이 있을 수 있으며, 본 특허에서 언급한 분산처리적병렬수행 방식의 시뮬레이션은 로컬컴퓨터들의 다양한 논리적연결구조 방식들에 적용되어질 수 있다. Are also in addition to the logical connection structure scheme of the local computer, shown at 22 may be various logical connection structure scheme of the local machine, the mentioned patent dispersion treatment simulation of parallelism scheme is different logical connection between the local machine structural way on can be applied.

도23 은, 분산병렬 시뮬레이션을 2 이상의 컴퓨터들과 이들 컴퓨터에 인스톨된 2 이상의 HDL 시뮬레이터들을 이용하여서 구성한 분산병렬 시뮬레이션 환경의 일 예를 개략적으로 도시한 도면으로, 본 특허에서의 분산처리적병렬수행 방식의 분산병렬 시뮬레이션도 이와 같은 환경에 적용할 수 있다. 23 is a distributed parallel simulation of two or more computers and hayeoseo use of the two or more HDL simulator installed on their computer a diagram showing an example of a configured distributed parallel simulation environment, schematically, a distributed processing enemy parallelism in the present patent parallel distributed simulation system can also be applied to this environment.

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

도25 는, 본 특허에서의 분산처리적병렬시뮬레이션의 전체 진행 흐름도의 일 예를 개략적으로 도시한 도면이다. 25 is a diagram illustrating an example of a flow chart of the distributed processing overall progress ever parallel simulation in this patent. 따라서 분산처리적병렬시뮬레이션의 전체 진행을 위한 다른 여러 진행 흐름도들도 얼마든지 존재할 수 있다. Therefore, there may be any number of these other different progression flowchart for the entire progress of the parallel distributed processing ever simulation. 뿐만 아니라, 전체 진행 흐름도에서의 각 서브블럭(예로, 도25 에서 S200 또는 S202 또는 S204 또는 S206 또는 S208 또는 S210 또는 S212)의 실행 순서는 전체 진행의 올바른 수행을 방해하지 않는 한 변화될 수 있고, 혹은 2 이상의 서브블럭들도 전체 진행의 올바른 수행을 방해하지 않는 한 동시에 수행되어질 수도 있다. In addition, the order of execution of each sub-block (by way of example in, FIG. 25 S200 or S202 or S204 or S206 or S208 or S210 or S212) of the overall proceeds flow diagram may be a change that does not interfere with the proper performance of the overall progress, or even two or more sub-blocks may be performed at the same time it does not interfere with the correct execution of the entire process.

도25 에서 예시된 분산처리적병렬시뮬레이션의 전체 진행 흐름도를 설명하면, 시작과 종료를 제외하고 총 8개의 서브블럭들로 구성되어 있다. Turning to the distributed processing proceeds ever full flow chart of the parallel simulation illustrated in FIG. 25, except for the beginning and the end, and is composed of eight sub-blocks. S200 단계에서 분산처리적병렬시뮬레이션 하고자 하는 모델을 읽어들이고 S202 단계로 진행한다. It reads the model to simulate enemy parallel distributed processing in step S200 and proceeds to step S202. S202 단계에서는 분산처리적병렬시뮬레이션 대상 모델에 대한 분할 수행하여 각 로컬시뮬레이션 대상이 되는 설계객체를 생성하고, 분산병렬시뮬레이션의 각 로컬시뮬레이션 대상이 되는 설계객체 또는 시뮬레이션 환경(예로 별방식의 논리적연결구조에서 중앙컴퓨터에 존재하는 SW서버 모듈)을 위한 부가코드를 생성하고 S204 단계로 진행한다. S202 step, the dispersion treatment ever performing division for parallel simulation object model to generate a design object, each local simulation target, and the logical connection of the design object or simulation environment (system specific example in which each local simulation target of distributed parallel simulation structure in generates additional code for a server module SW) present in the central computer, and proceeds to step S204. S204 단계에서는 s-DCP 획득을 위한 앞단 시뮬레이션 대상 모델을 읽어들이고 S206 단계로 진행한다. In step S204 reads the target front-end simulation models for obtaining s-DCP proceeds to step S206. S206 단계에서는 앞단 시뮬레이션 대상 모델에 대한 시뮬레이션컴파일 수행하고 S208 단계로 진행한다. In step S206 performs simulation compilation target for the front-end simulation models, and then proceeds to step S208. S208 단계에서는 앞단 시뮬레이션 수행하면서, s-DCP 획득하고 S210 단계로 진행한다. In Step S208, while performing the simulation front-end, to obtain s-DCP, and then proceeds to step S210. S210 단계에서는 분산처리적병렬시뮬레이션을 위한 각 로컬시뮬레이션 대상 설계객체별 시뮬레이션컴파일 수행하고 S212 단계로 진행한다. In step S210 performed compile each local design simulation target object by simulation for distributed processing enemy parallel simulation and proceeds to step S212. 이와 같은 분산처리적병렬시뮬레이션을 위한 각 로컬시뮬레이션 대상 설계객체별 시뮬레이션컴파일 수행 시에 상기 S202 단계에서 부가되어진 부가코드들도 같이 컴파일되어진다. In addition, such as when performing compile each local design simulation target object by simulation for the parallel distributed processing ever simulation been added in the step S202 is also the code is compiled. S212 단계에서는 분산처리적병렬시뮬레이션을 수행하고 전체 과정을 종료하게 된다. In step S212 and performs a parallel distributed processing ever simulation and ends the entire process.

도26 은, 본 특허에서의 분산처리적병렬시뮬레이션 수행(도25 에서의 서브블럭 S212)을 위한 각 로컬시뮬레이터로 실행되는 로컬시뮬레이션 수행의 흐름도의 일 예를 개략적으로 도시한 도면이다. 26 is a view showing an example of a flowchart of performing a local simulation executed by each local simulator schematically for (sub-block of S212 in FIG. 25) perform distributed processing enemy parallel simulation in this patent. 따라서 분산처리적병렬시뮬레이션 수행을 위한 다른 여러 진행 흐름도들도 얼마든지 존재할 수 있다. Therefore, there may be any number of these other various proceeds flow chart for carrying out distributed processing enemy parallel simulation. 뿐만 아니라, 이 분산처리적병렬시뮬레이션 수행을 위한 진행 흐름도에서의 각 서브블럭의 실행 순서는 전체 진행의 올바른 수행을 방해하지 않는 한 변화될 수 있고, 혹은 2 이상의 서브블럭들도 전체 진행의 올바른 수행을 방해하지 않는 한 동시에 수행되어질 수도 있다.도33 은, 본 특허에서의 분산처리적병렬시뮬레이션의 전체 진행 흐름도의 또 다른 일 예를 개략적으로 도시한 도면이다. In addition, the order of execution of the sub blocks in the proceeding flow diagram for the performing distributed processing enemy parallel simulation may be a change that does not interfere with the proper performance of the overall progress, or two or more sub-blocks are also the correct performance of the overall progress one at the same time may be performed. Fig. 33 is a diagram showing another example of a flow chart of the distributed processing overall progress ever parallel simulation in this patent does not interfere with. 따라서 분산처리적병렬시뮬레이션의 전체 진행을 위한 다른 여러 진행 흐름도들도 얼마든지 존재할 수 있다. Therefore, there may be any number of these other different progression flowchart for the entire progress of the parallel distributed processing ever simulation. 뿐만 아니라, 전체 진행 흐름도에서의 각 서브블럭(예로, 도33 에서 S201 또는 S203 또는 S211 또는 S213)의 실행 순서는 전체 진행의 올바른 수행을 방해하지 않는 한 변화될 수 있고, 혹은 2 이상의 서브블럭들도 전체 진행의 올바른 수행을 방해하지 않는 한 동시에 수행되어질 수도 있다. In addition, each sub-block of the overall proceeds flow chart (for example, S201 or S203 or S211 or S213 in FIG. 33), the execution order of the may be a change that does not interfere with the proper performance of the overall progress, or two or more sub-blocks It may also be performed at the same time that does not interfere with the proper performance of the entire process.

도33 에서 예시된 분산처리적병렬시뮬레이션의 전체 진행 흐름도를 설명하면, 시작과 종료를 제외하고 총 4개의 서브블럭들로 구성되어 있다. When an explanatory flow chart for the overall progress of the parallel distributed processing ever simulation illustrated at 33, and except for the beginning and the end, and is composed of a total of four sub-blocks. S201 단계에서 분산처리적병렬시뮬레이션 하고자 하는 모델을 읽어들이고 S203 단계로 진행한다. It reads the model to simulate enemy parallel distributed processing in step S201 and proceeds to step S203. S203 단계에서는 분산처리적병렬시뮬레이션 대상 모델에 대한 분할 수행하여 각 로컬시뮬레이션 대상이 되는 설계객체를 생성하고, 분산병렬시뮬레이션의 각 로컬시뮬레이션 대상이 되는 설계객체 또는 시뮬레이션 환경(예로 별방식의 논리적연결구조에서 중앙컴퓨터에 존재하는 SW서버 모듈)을 위한 부가코드를 생성하고 S211 단계로 진행한다. S203 step, the dispersion treatment ever parallel simulation object model division performed by creating a design object, each local simulation target, and the logical connection of the design object or simulation environment (system specific example in which each local simulation target of distributed parallel simulation of the structure in generates additional code for a server module SW) present in the central computer, and proceeds to step S211. S203 단계에서 생성되는 부가코드는 상기 로컬시뮬레이션 대상이 되는 설계객체보다 추상화 상위수준에 있는 DUV와 TB를 s-DCP에 포함하고 있다. Additional code generated in step S203 includes a DUV and TB on the level of abstraction higher than the design object that is the target to simulate the local s-DCP. S211 단계에서는 분산처리적병렬시뮬레이션을 위한 각 로컬시뮬레이션 대상 설계객체별 시뮬레이션컴파일 수행하고 S213 단계로 진행한다. In step S211 performed compile each local design simulation target object by simulation for distributed processing enemy parallel simulation and proceeds to step S213. 이와 같은 분산처리적병렬시뮬레이션을 위한 각 로컬시뮬레이션 대상 설계객체별 시뮬레이션컴파일 수행 시에 상기 S203 단계에서 부가되어진 부가코드들도 같이 컴파일되어진다. In addition, such as when performing compile each local design simulation target object by simulation for the parallel distributed processing ever simulation been added in the step S203 is also the code is compiled. S213 단계에서는 분산처리적병렬시뮬레이션을 수행하고 전체 과정을 종료하게 된다. In step S213 and performs a parallel distributed processing ever simulation and ends the entire process.

도26 은, 본 특허에서의 분산처리적병렬시뮬레이션 수행(도25 에서의 서브블럭 S212)을 위한 각 로컬시뮬레이터로 실행되는 로컬시뮬레이션 수행의 흐름도의 일 예를 개략적으로 도시한 도면이다. 26 is a view showing an example of a flowchart of performing a local simulation executed by each local simulator schematically for (sub-block of S212 in FIG. 25) perform distributed processing enemy parallel simulation in this patent. 따라서 분산처리적병렬시뮬레이션 수행을 위한 다른 여러 진행 흐름도들도 얼마든지 존재할 수 있다. Therefore, there may be any number of these other various proceeds flow chart for carrying out distributed processing enemy parallel simulation. 뿐만 아니라, 이 분산처리적병렬시뮬레이션 수행을 위한 진행 흐름도에서의 각 서브블럭의 실행 순서는 전체 진행의 올바른 수행을 방해하지 않는 한 변화될 수 있고, 혹은 2 이상의 서브블럭들도 전체 진행의 올바른 수행을 방해하지 않는 한 동시에 수행되어질 수도 있다. In addition, the order of execution of the sub blocks in the proceeding flow diagram for the performing distributed processing enemy parallel simulation may be a change that does not interfere with the proper performance of the overall progress, or two or more sub-blocks are also the correct performance of the overall progress there was a time may be carried out does not interfere.

도26 에서 예시된 분산처리적병렬시뮬레이션 수행의 전체 진행 흐름도를 설명하면, 시작과 종료를 제외하고 총 15개의 서브블럭들로 구성되어 있다. FIG. Turning to the overall progress of the flow chart illustrating the parallel distributed processing ever simulation performed at 26, except for the beginning and the end, and is composed of a total of 15 sub-blocks. S398 단계에서 현재 시뮬레이션시간을 0으로 설정하고, S402 단계로 진행한다. It sets the current simulation time at the step S398 to zero, and the process proceeds to step S402. S402 단계에서 로컬시뮬레이션의 현재 시뮬레이션시점이 체크포인트를 생성하여 하는 시점이고 사전에 이 시점에서 체크포인트가 생성이 않되었으면 지금 체크포인트를 생성하고 지금 체크포인트를 생성한 경우에만 다른 로컬시뮬레이션에서부터 롤백가능성이 발생하였는지를 조사하여 롤백가능성이 발생한 경우에는 S410 단계로 진행하고, 롤백가능성 이 발생하지 않은 경우에는 로컬시뮬레이션의 현재 시뮬레이션시간이 실제롤포워드-시점과 같으면 S418 단계로 진행하고 시뮬레이션 종료시간과 같거나 크면 S422 단계로 진행하고 그렇치 않으면 예상입력을 이용하여 시뮬레이션 진행하여 실제출력 얻음과 동시에 실제출력과 예상출력을 비교하고 S406 단계로 진행한다. In the S402 step and point to the current simulation time for the local simulation generates a checkpoint possibilities when you're at this point, the checkpoint in advance does this generation now create the checkpoint and roll back from another local simulation only if you create a checkpoint Now If the investigation whether the generation rollback likely occurred, proceed to the S410 step, and roll back if possible does not occur, the current simulation time on the simulation, the actual roll-forward-same as the same as the time proceeds to S418 steps and simulating the end time, or greater proceeds to step S422, and if Relatively comparing the actual output and the expected output obtained at the same time and the actual output proceeds simulation using the estimated input and then proceeds to step S406. S406 단계에서는 S402 단계의 시뮬레이션에서 얻어진 실제출력과 예상출력 비교하여 일치하면 S404 단계로 진행하고, 이 비교가 일치하지 않으면 S408 단계로 진행한다. In step S406 matches by comparing the actual output obtained in step S402 of simulated and estimated output goes to step S404 and, if the comparison does not match, the process proceeds to step S408. S404 단계에서는 실제출력의 이벤트시간(변화가 발생한 시간)을 로컬시뮬레이션의 현재 시뮬레이션시간으로 설정하고 S402 단계로 진행한다. In step S404, it sets the time of the event (time a change occurs) of the actual output to the current simulation time on the simulation, and then proceeds to step S402. S408 단계에서는 시뮬레이션을 일시적으로 멈추고, 다른 로컬시뮬레이션들에게 롤백가능성 발생을 전달하고 현재 시뮬레이션시간(롤백가능 시점)도 다른 로컬시뮬레이션들에 전달하고 S410 단계로 진행한다. In step S408 to stop the simulation temporarily, transfer the rollback possibility to other local simulation and delivered to the current simulation other local simulation time (rollback point is), and then proceeds to step S410. S410 단계에서는 롤백가능성이 발생한 모든 로컬시뮬레이션들의 현재 시뮬레이션시간(롤백가능 시점)들을 획득하여, 이것들로부터 로컬시뮬레이션의 롤백/롤포워드 필요성을 판단하고 동시에 실제롤백-시점/실제롤포워드-시점을 결정하고 S412 단계로 진행한다. In step S410 to obtain the current simulation time (rollback available time) of all the local simulation is rolled back likely occurred, determining a rollback / rollforward need for local simulation from these and the actual roll back at the same time-point / actual roll forward-and determine when the process proceeds to step 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)는 롤포워드를 수행하여야 한다. That is, the roll back all local simulation each time by the local simulation likely occurred T_rb = (t_rb (1), t_rb (2), .., t_rb (N-1), t_rb (N)) (t_rb (i) is there is likely to roll back the local simulation i rollback is possible rollback point is also shown the time) that occurred, the actual roll back-point t_rb (1), t_rb (2), .., t_rb (N-1), t_rb (N ), the smallest value (i.e., in time of t_rb (FINAL) = min (t_rb (1 first past time)), and among these, t_rb (2), .., t_rb (N-1), t_rb (N)) FIG current simulation time t_c (k) of a particular local simulation LP (k) to perform 26 side is greater than or same than T_rb (FINAL) the specific local simulation LP (k) is required to perform roll back and, t_c (k) the less than T_rb (FINAL) the specific local simulation LP (k) are to be performed to the roll forward. S412 단계에서는 롤백이 필요하면 S414 단계로 진행하고, 롤백이 필요하지 않으면 S416 단계로 진행한다. In step S412 when a rollback is required proceeds to step S414, and if you do not need to roll back the flow advances to step S416. S416 단계에서는 롤포워드가 필요하면 S402 단계로 진행하고, 롤포워드가 필요하지 않으면 S418 단계로 진행한다. If in step S416 requires roll-forward goes to step S402, and if you do not need to roll forward the process proceeds to step S418. S414 단계에서는 로컬시뮬레이션의 롤백을 실행하고 S418 단계로 진행한다. In Step S414 execute a rollback of the local simulation and proceeds to step S418. S418 단계에서는 실제입력을 이용하여 시뮬레이션하고 얻어진 실제출력을 입력으로 사용하는 다른 로컬시뮬레이션으로 전달함과 동시에, 실제입력과 예상입력을 비교하며, 로컬시뮬레이션의 현재 시뮬레이션 시간이 시뮬레이션 종료시간과 같으면 종료하고, 같지 않으면 S420 단계로 진행한다. In S418 step the simulation using the actual input and at the same time as passing the actual output resulting in a different local simulation using the input, comparing the actual input and the expected input, and the current simulation time on the simulation ends the same as the simulation end time, and If, like advances to step S420. S420 단계에서는 상기 S418 단계에서 실제입력과 예상입력을 비교하여서 일치된 횟수가 미리 정해진 일정횟수(예로, 3번)이상 일치한지를 판단하여 일정횟수 일치하게 되었으면 S421 단계로 진행하고 그렇치 않으면 S418 단계로 진행한다. In step S420 the S418 step the actual input and the comparison hayeoseo a matching number of times a predetermined constant number of times the estimated input from not (for example, three) if it determines whether at least match match a certain number of times ahead and Relatively to the S421 step S418 step ongoing. S422 단계에서는 다른 로컬시뮬레이션들이 모두 종료되었으면 이 로컬시뮬레이션 수행도 종료하게 되고, 그렇치 않으면 S424 단계로 진행한다. In step S422 if another local simulation to both ends and the ends are also performed locally simulation, Relatively, if the process proceeds to step S424. S424 단계에서는 이 로컬시뮬레이션의 롤백의 필요성이 있는지로 조사하여 필요하지 않으면 S422 단계로 진행하고 롤백의 필요성이 있으면 S426 단계로 진행한다. In step S424 you do not need to investigate whether there is a need for a rollback of the local simulation if the necessity of proceeding to step S422, and the rollback proceeds to step S426. S426 단계에서는 실제롤백-시점 결정 후에 롤백을 실행하고, S418 단계로 진행한다. In step S426 the actual roll back-running rolling back after the time determined, and the process proceeds to step S418.

도27 은, 본 특허에서의 분산처리적병렬시뮬레이션 수행(도25 에서의 서브블럭 S212)을 위한 각 로컬시뮬레이터로 실행되는 로컬시뮬레이션 수행의 흐름도의 또 다른 일 예를 개략적으로 도시한 도면이다. 27 is a parallel distributed processing ever simulation performed diagram showing another example of a flowchart of performing a local simulation executed by each local simulator schematically for (sub-block of S212 in FIG. 25) in this patent. 따라서 분산처리적병렬시뮬레이션 수행 을 위한 다른 여러 진행 흐름도들도 얼마든지 존재할 수 있다. Therefore, there may be any number of these other various proceeds flow chart for carrying out distributed processing enemy parallel simulation. 뿐만 아니라, 이 분산처리적병렬시뮬레이션 수행을 위한 진행 흐름도에서의 각 서브블럭의 실행 순서는 전체 진행의 올바른 수행을 방해하지 않는 한 변화될 수 있고, 혹은 2 이상의 서브블럭들도 전체 진행의 올바른 수행을 방해하지 않는 한 동시에 수행되어질 수도 있다. In addition, the order of execution of the sub blocks in the proceeding flow diagram for the performing distributed processing enemy parallel simulation may be a change that does not interfere with the proper performance of the overall progress, or two or more sub-blocks are also the correct performance of the overall progress there was a time may be carried out does not interfere.

도27 에서 예시된 분산처리적병렬시뮬레이션 수행의 전체 진행 흐름도를 설명하면, 시작과 종료를 제외하고 총 16개의 서브블럭들로 구성되어 있다. Turning to the overall progress flowchart of FIG performed parallel distributed processing ever simulation illustrated in 27, except for the beginning and the end, and is composed of a total of 16 sub-blocks. S298 단계에서 현재 시뮬레이션시간을 0으로 설정하고, S300 단계로 진행한다. It sets the current simulation time at the step S298 to zero, and the process proceeds to step S300. S300 단계에서 다른 로컬시뮬레이션에서부터 롤백가능성 발생이 전달되어지면 S310 단계로 진행하고, 그렇치 않은 경우에는 S302 단계로 진행한다. When in the step S300, the rollback likelihood transferred from the other local simulation proceeds to step S310, and if Relatively not, the process proceeds to step S302. S302 단계에서는 로컬시뮬레이션의 현재 시뮬레이션 시점이 체크포인트를 생성하여야 하는 시점이고 사전에 이미 체크포인트가 생성 않되었으면 체크포인트를 생성하고, 로컬시뮬레이션의 현재 시뮬레이션 시점이 실제롤포워드-시점과 같으면 S318 단계로 진행하고 시뮬레이션 종료시간과 같거나 크면 S318 단계로 진행하고 그렇치 않으면 예상입력을 이용하여 시뮬레이션 진행하여 실제출력 얻음과 동시에 실제출력과 예상출력을 비교하고 S306 단계로 진행한다. In step S302, if the time is already checkpoint prior to the current simulation time for the local simulation must create a checkpoint not generate Generate checkpoint and current local Simulation Simulation time of the actual roll-forward - as S318 step is the same as the point progress and equal to or greater than the simulation end time proceeds to step S318, and if Relatively comparing the actual output and the expected output obtained at the same time and the actual output proceeds simulation using the estimated input and then proceeds to step S306. S306 단계에서는 S302 단계의 시뮬레이션에서 얻어진 실제출력과 예상출력 비교하여 일치하면 S304 단계로 진행하고, 이 비교가 일치하지 않으면 S308 단계로 진행한다. In step S306 matches by comparing the actual output and the estimated output obtained from the simulation of step S302 proceeds to step S304 and, if the comparison does not match, the process proceeds to step S308. S304 단계에서는 실제출력의 이벤트시간(변화가 발생한 시간)을 로컬시뮬레이션의 현재 시뮬레이션시간으로 설정하고 S300 단계로 진행한다. In step S304, it sets the time of the event (time a change occurs) of the actual output to the current simulation time on the simulation, and then proceeds to step S300. S308 단계에서는 시뮬레이션을 일시적으로 멈추고, 다른 로컬시뮬레이션들에게 롤 백가능성 발생을 전달하고 현재 시뮬레이션시간(롤백가능 시점)도 다른 로컬시뮬레이션들에 전달하고 S310 단계로 진행한다. In step S308 to stop the simulation temporarily, transfer the roll-back possibility to other local simulation and delivered to the current simulation time (rollback point is) other local simulation and proceeds to step S310. S310 단계에서는 롤백가능성이 발생한 모든 로컬시뮬레이션들의 현재 시뮬레이션 시간(롤백가능 시점)들을 획득하여, 이것들로부터 로컬시뮬레이션의 롤백/롤포워드 필요성을 판단하고 동시에 실제롤백-시점/실제롤포워드-시점을 결정하고 S312 단계로 진행한다. In step S310 to obtain the current simulation time (rollback available time) of all the local simulation is rolled back likely occurred, determining a rollback / rollforward need for local simulation from these and the actual roll back at the same time-point / actual roll forward-and determine when It proceeds to step 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)는 롤포워드를 수행하여야 한다. That is, the roll back all local simulation each time by the local simulation likely occurred T_rb = (t_rb (1), t_rb (2), .., t_rb (N-1), t_rb (N)) (t_rb (i) is there is likely to roll back the local simulation i rollback is possible rollback point is also shown the time) that occurred, the actual roll back-point t_rb (1), t_rb (2), .., t_rb (N-1), t_rb (N ), the smallest value (i.e., in time of t_rb (FINAL) = min (t_rb (1 first past time)), and among these, t_rb (2), .., t_rb (N-1), t_rb (N)) FIG current simulation time t_c (k) of a particular local simulation LP (k) performing a 27 is greater than or equal to T_rb (FINAL) the specific local simulation LP (k) is required to perform a rollback, and the t_c (k) T_rb It is smaller than (FINAL) the specific local simulation LP (k) are to be performed to the roll forward. S312 단계에서는 롤백이 필요하면 S314 단계로 진행하고, 롤백이 필요하지 않으면 S316 단계로 진행한다. In step S312 if a rollback is required proceed to step S314, and if you do not need to roll back the process proceeds to step S316. S316 단계에서는 롤포워드가 필요하면 S302 단계로 진행하고, 롤포워드가 필요하지 않으면 S318 단계로 진행한다. If in step S316 requires roll-forward process proceeds to step S302, and if you do not need to roll forward the process proceeds to step S318. S314 단계에서는 로컬시뮬레이션의 롤백을 실행하고 S318 단계로 진행한다. In Step S314 execute a rollback of the local simulation and proceeds to step S318. S318 단계에서는 실제입력을 이용하여 시뮬레이션하고 얻어진 실제출력을 입력으로 사용하는 다른 로컬시뮬레이션으로 전달함과 동시에, 실제입력과 예상입력을 비교하며, 로컬시뮬레이션의 현재 시뮬레이션 시간이 시뮬레이션 종료시간 과 같으면 종료하고, 같지 않으면 S320 단계로 진행한다. In S318 step the simulation using the actual input and at the same time as passing the actual output resulting in a different local simulation using the input, comparing the actual input and the expected input, and the current simulation time on the simulation ends the same as the simulation end time, and If, like advances to step S320. S320 단계에서는 상기 S318 단계에서 실제입력과 예상입력을 비교하여서 일치된 횟수가 미리 정해진 일정횟수(예로, 3번)이상 일치한지를 판단하여 일정횟수 일치하게 되었으면 S321 단계로 진행하고 그렇치 않으면 S318 단계로 진행한다. In S320 step S318 step the actual input and the comparison hayeoseo a matching number of times a predetermined constant number of times the estimated input from not (for example, three) if it determines whether at least match match a certain number of times ahead and Relatively to the S321 step S318 step ongoing. S322 단계에서는 다른 로컬시뮬레이션들이 모두 종료되었으면 이 로컬시뮬레이션 수행도 종료하게 되고, 그렇치 않으면 S324 단계로 진행한다. In step S322 if another local simulation to both ends and the ends are also performed locally simulation, Relatively, if the process proceeds to step S324. S324 단계에서는 이 로컬시뮬레이션의 롤백의 필요성이 있는지로 조사하여 필요하지 않으면 S322 단계로 진행하고 롤백의 필요성이 있으면 S326 단계로 진행한다. In step S324 you do not need to investigate whether there is a need for a rollback of the local simulation if the necessity of proceeding to step S322, and the rollback proceeds to step S326. S326 단계에서는 실제롤백-시점 결정 후에 롤백을 실행하고, S318 단계로 진행한다. In step S326 the actual roll back-running rolling back after the time determined, and the process proceeds to step S318.

도26 과 도27 은 분산병렬 시뮬레이션에서 로컬시뮬레이션들의 제어와 로컬시뮬레이션들의 연결을 수행하는 중앙컴퓨터에서 존재하는 SW서버 모듈을 사용하지 않음(도22 참조)으로 이와 같은 분산병렬 시뮬레이션에서 로컬시뮬레이션들의 제어와 로컬시뮬레이션들의 연결을 각 분산병렬 시뮬레이션의 로컬시뮬레이션 런-타임 모듈들에 분산시켜서 수행되도록 하여야 함으로서 흐름도가 상대적으로 복잡해진다. Figure 26 and Figure 27 do not take up SW server module existing on the central computer to perform the connection of the control and the local simulation of the local simulation in a distributed parallel simulation (see Fig. 22) by the control of the local simulation in this way distributed parallel simulation as and the connection of the local simulation local simulation runs of each of the parallel distributed simulation a flow chart to be carried out by dispersing the time module becomes relatively complex. 별방식의 논리적연결구조(star-based logical interconnection architecture)(도22 참조)에서 분산병렬 시뮬레이션 수행 시에 로컬시뮬레이션들의 제어와 로컬시뮬레이션들의 연결을 수행하는 중앙컴퓨터에 존재하는 SW서버 모듈을 이용하는 경우의 분산처리적병렬시뮬레이션 수행(도25 에서의 서브블럭 S212)의 또 다른 예는 도28 과 도29 에 예시되어 있다. In the case of using a specific way logical connection structure (star-based logical interconnection architecture) (see Fig. 22) present SW server module to the central computer to perform the connection of the control and the local simulation of the local simulation at the time of performing distributed parallel simulation in another example of a parallel distributed processing ever simulation performed (sub-block of S212 in FIG. 25) is illustrated in Figure 29 and Figure 28. 도28 은 로컬시뮬레이터로 실행되는 로컬시뮬레이션 수행의 흐름도의 일 예를 개략적으로 도시한 도면이고 도29 는 상기 중앙컴퓨터에 존 재하는 SW서버 모듈로 수행되는 과정의 흐름도의 일 예를 개략적으로 도시한 도면이다. 28 is a view schematically showing an example of a flowchart of performing a local simulation running locally simulator, and Figure 29 is a simplified view of an example of a flow chart of processes performed by SW server module that exists on the central computer diagram.

위 여러 예들에서 알 수 있는 것과 같이 분산처리적병렬시뮬레이션 수행을 위한 다양한 여러 진행 흐름도들이 존재할 수 있다. As can be seen from the various examples above, there may be several different progress flowchart for performing distributed processing enemy parallel simulation. 뿐만 아니라, 이 분산처리적병렬시뮬레이션 수행을 위한 진행 흐름도에서의 각 서브블럭의 실행 순서는 전체 진행의 올바른 수행을 방해하지 않는 한 변화될 수 있고, 혹은 2 이상의 서브블럭들도 전체 진행의 올바른 수행을 방해하지 않는 한 동시에 수행되어질 수도 있다. In addition, the order of execution of the sub blocks in the proceeding flow diagram for the performing distributed processing enemy parallel simulation may be a change that does not interfere with the proper performance of the overall progress, or two or more sub-blocks are also the correct performance of the overall progress there was a time may be carried out does not interfere.

도28 에서 예시된 분산처리적병렬시뮬레이션 수행을 위한 로컬시뮬레이션 수행의 전체 진행 흐름도를 설명하면, 시작과 종료를 제외하고 총 15개의 서브블럭들로 구성되어 있다. FIG. Turning to the overall progress of the local simulation performed flowchart for performing a dispersion treatment ever parallel simulation illustrated at 28, except for the beginning and end consists of a total of 15 sub-blocks. S498 단계에서 현재 시뮬레이션시간을 0으로 설정하고, S502 단계로 진행한다. It sets the current simulation time at the step S498 to zero, and the process proceeds to step S502. S502 단계에서는 로컬시뮬레이션의 현재 시뮬레이션시간 정보를 생성하고, 로컬시뮬레이션의 현재 시뮬레이션시점이 체크포인트를 생성하여야 하는 시점이고 사전에 이미 체크포인트가 생성이 않되었으면 체크포인트를 생성하고, 로컬시뮬레이션의 현재 시뮬레이션시점이 실제롤포워드-시점과 같으면 S518 단계로 진행하고 시뮬레이션 종료시간과 같거나 크면 S522 단계로 진행하고 그렇치 않으면 예상입력을 이용하여 시뮬레이션 진행하여 실제출력 얻음과 동시에 실제출력과 예상출력을 비교하고 S306 단계로 진행한다. In step S502 generates a current simulation time for the local simulation and time to the current simulation time for the local simulation must create a checkpoint and when you are already a checkpoint in advance not generate create the checkpoint and the current simulation of the local simulation the time of the actual rolling forward - compared to the starting and equal progression and simulated exit if equal time or greater in progress and Relatively to S522 steps expected input actual output obtained proceeds simulation and at the same time, the actual output and the expected output using a S518 step and S306 and proceeds to the next step. S506 단계에서는 S502 단계의 시뮬레이션에서 얻어진 실제출력과 예상출력 비교하여 일치하면 S504 단계로 진행하고, 이 비교가 일치하지 않으면 S508 단계로 진행한다. If in step S506 match by comparing the actual output obtained in step S502 of simulated and estimated output goes to step S504 and, if the comparison does not match, the process proceeds to step S508. S504 단계에서는 실제출력의 이벤트시간(변화가 발생한 시간)을 로컬시뮬레이션의 현재 시뮬레이션시간으로 설정하고 S502 단계로 진행한다. In step S504, it sets the time of the event (time a change occurs) of the actual output to the current simulation time on the simulation, and then proceeds to step S502. S508 단계에서는 시뮬레이션을 일시적으로 멈추고, SW서버 모듈에 롤백가능성 발생을 전달하고 현재 시뮬레이션시간(롤백가능 시점)도 SW서버 모듈에 전달하고 S510 단계로 진행한다. In step S508 to stop the simulation temporarily, transmits a rollback possibility SW in the server module and the current simulation time (time rollback is possible) is also transmitted to the SW server module proceeds to step S510. S510 단계에서는 SW서버 모듈로부터 실제롤백-시간/실제롤-포워드시간을 획득하고 S512 단계로 진행한다. In step S510 the actual roll back from the server module SW-time / actual roll-acquiring the forward time and the process proceeds to step S512. S512 단계에서는 롤백이 필요하면 S514 단계로 진행하고, 롤백이 필요하지 않으면 S516 단계로 진행한다. In step S512 if a rollback is required proceed to step S514, and if you do not need to roll back the process proceeds to step S516. S516 단계에서는 롤포워드가 필요하면 S502 단계로 진행하고, 롤포워드가 필요하지 않으면 S518 단계로 진행한다. If in step S516 requires roll-forward goes to step S502, and if you do not need to roll forward the process proceeds to step S518. S514 단계에서는 로컬시뮬레이션의 롤백을 실행하고 S518 단계로 진행한다. In Step S514 execute a rollback of the local simulation and proceeds to step S518. S518 단계에서는 다른 로컬시뮬레이션에서부터 SW서버 모듈을 통하여 전달되는 실제입력을 이용하여 시뮬레이션하고 얻어진 실제출력을 SW서버 모듈을 통하여 이를 입력으로 사용하는 다른 로컬시뮬레이션으로 전달함과 동시에, 실제입력과 예상입력을 비교하며, 로컬시뮬레이션의 현재 시뮬레이션 시간이 시뮬레이션 종료시간과 같으면 종료하고, 같지 않으면 S520 단계로 진행한다. In S518 step and at the same time simulation from other local simulation using the actual input to be transmitted through the SW server module and passes the actual outputs obtained in the different local simulation using it as an input through the SW server module, the actual input and the expected input Compare and current simulation time for the local simulation ends the simulation is the same as the end time, and do not seem proceeds to step S520. S520 단계에서는 상기 S518 단계에서 실제입력과 예상입력을 비교하여서 일치된 횟수가 미리 정해진 일정횟수(예로, 3번)이상 일치한지를 판단하여 일정횟수 일치하게 되었으면 S521 단계로 진행하고 그렇치 않으면 S518 단계로 진행한다. In S520 step S518 step the actual input and the comparison hayeoseo a matching number of times a predetermined constant number of times the estimated input from not (for example, three) if it determines whether at least match match a certain number of times ahead and Relatively to the S521 step S518 step ongoing. S522 단계에서는 다른 로컬시뮬레이션들이 모두 종료되었으면 이 로컬시뮬레이션 수행도 종료하게 되고, 그렇치 않으면 S524 단계로 진행한다. In step S522 if another local simulation to both ends and the ends are also performed locally simulation, Relatively, if the process proceeds to step S524. S524 단계에서는 이 로컬시뮬레이션의 롤백의 필요성이 있는지로 조사하여 필요하지 않으면 S522 단계로 진행하고 롤백의 필요성이 있으면 S526 단계로 진행한다. In step S524 you do not need to investigate whether there is a need for a rollback of the local simulation if the necessity of proceeding to step S522, and the rollback proceeds to step S526. S526 단계에서는 실제롤백-시점 결정 후에 롤백을 실행하고, S518 단계로 진행한다. In step S526 the actual roll back-running rolling back after the time determined, and the process proceeds to step S518.

도29 에서 예시된 분산처리적병렬시뮬레이션 수행을 위한 SW서버 모듈의 로컬시뮬레이션 수행의 전체 진행 흐름도를 설명하면, 시작과 종료를 제외하고 총 10개의 서브블럭들로 구성되어 있다. When an explanatory flow chart of the overall progress of the local simulation performed SW server modules for performing the distributed processing enemy parallel simulation illustrated at 29, and except for the beginning and the end, and is composed of a total of 10 sub-blocks. S598 단계에서 현재 시뮬레이션시간을 0으로 설정하고, S602 단계로 진행한다. It sets the current simulation time at the step S598 to zero, and the process proceeds to step S602. S602 단계에서 모든 로컬시뮬레이션들을 예상입출력이용-런 방식으로 진행되도록 제어하면서 각 로컬시뮬레이션들의 현재 시뮬레이션시간들을 조사하고 S606 단계로 진행한다. All of the local input and output simulation estimated using in step S602 - while controlling so that the process proceeds to examine the current simulation time run-way of the respective local simulation and proceeds to step S606. S606 단계에서는 현재 예상입출력이용-런 방식으로 진행되는 1 이상의 로컬시뮬레이션에서 롤백가능성이 발생했는지를 조사하여 발생하지 않은 경우에는 S604 단계로 진행하고 발생한 경우에는 S608 단계로 진행한다. In step S606 the current estimated input and output use-case has not occurred by examining whether a rollback likely occurs in one or more local simulation is conducted as a method, if run proceeds to step S604, and has occurred, the process proceeds to step S608. S604 단계에서는 모든 로컬시뮬레이션들의 현재 시뮬레이션시간들이 시뮬레이션 종료시간이 되면 종료하고, 그렇치 않으면 S602 단계로 진행한다. In step S604 the current simulation time of all local simulation will end when the simulation end time, and Relatively If the process proceeds to step S602. S608 단계에서는 모든 롤백가능성 발생한 로컬시뮬레이션들에서부터 롤백가능 시점들 획득하여 실제롤백-시간/실제롤-포워드시간 계산하고, 각 로컬시뮬레이션들별로 예상입출력이용-런 방식 수행 또는 실제입출력이용-런 방식 수행을 결정하고, 실제입출력이용-런 방식으로 수행되어야 하는 로컬시뮬레이션들 각각에 대하여 각 로컬시뮬레이션들별로 롤백 또는 롤포워드 결정하고, 실제입출력이용-런 방식으로 수행되어야 하는 각 로컬시뮬레이션들별로 롤백 실행 또는 롤포워드가 수행되도록 각각 제어하고 S610 단계로 진행한다. The actual roll back to obtain the point is rolled back from all rollback likely occurred locally simulate the S608 stage-time / actual roll-forward time calculation, and the estimated input and output used by each of the local simulation-run method performed or physical input and output using-run method performed and the crystals were, the actual input and output using-rollback or crystal roll forward by the local simulation of each of the local simulation for each to be performed by the run way and the actual input and output using-rolled back by each of the local simulation to be performed in a run-way running or each control is rolled forward to be performed, and proceeds to step S610. S610 단계에서는 1 이상의 로컬시뮬레이션에서 실제입출력이용-런 방식에서 예상입출력이용-런 방식으로의 전환 조건이 만족하는지를 조사하여서 만족하면 S612 단계로 진행하고 만족하지 않으면 S614 단계로 진행한다. In step S610 physical IO used in one or more local simulation of expected input and output used in the method run - if satisfied hayeoseo investigated whether switching condition of the run method is satisfied and proceeds to step S612 is not satisfied and proceeds to step S614. S612 단계에서는 예상입출력이용-런 방식으로 전환 가능한 로컬시뮬레이션의 수행 방식을 예상입출력이용-런 방식으로 전환하고 S614 단계로 진행한다. In step S612 expected input and output using-the practices of the local simulation can be switched into the run way expected input and output use-switch to the run way and the process proceeds to step S614. S614 단계에서는, 로컬시뮬레이션들 개개별로 예상입출력이용-런 방식 수행 가능 로컬시뮬레이션은 예상입출력이용-런 방식의 수행, 나머지 로컬시뮬레이션들은 실제입출력이용-런 방식의 수행이 진행되도록 제어하면서, 각 로컬시뮬레이션들의 현재 시뮬레이션시간들을 조사하고 S616 단계로 진행한다. In S614 step, the local simulation of the more expected input and output used to separate - can perform a run way local simulation is expected input and output using-performing of the run way and the other local simulations physical IO used - while controlling so that the performing of the run method proceeds, each local examine the current simulation time of the simulation, and then proceeds to step S616. S616 단계에서는 현재 예상입출력이용-런 방식으로 진행되는 1 이상의 로컬시뮬레이션에서 롤백가능성이 발생한지를 조사하여, 발생한 경우에는 S608 단계로 진행하고 발생하지 않은 경우에는 S618 단계로 진행한다. In step S616 the current input and output estimated using - to investigate whether rollback possibly occurred in one or more local simulation is conducted as a run way, if occurred, goes to step S608 and has not occurred, the process proceeds to step S618. S618 단계에서는 모든 로컬시뮬레이션들의 현재 시뮬레이션시간들이 시뮬레이션시간이 되면 종료하고, 그렇치 않으면 S610 단계로 진행한다. In step S618 ends when the current simulation time to simulation time of all the local simulation, if Relatively proceeds to step S610.

도29 에서 예시된 분산처리적병렬시뮬레이션 수행을 위한 SW서버 모듈의 로컬시뮬레이션 수행의 전체 진행 흐름도에서는 각 로컬시뮬레이션별로 독립적으로 예상입출력이용-런 방식의 진행 또는 실제입출력이용-런 방식의 진행이 가능하도록 SW서버 모듈이 분산처리적병렬시뮬레이션 수행을 제어하고 있다. In FIG illustrated at 29 distributed processing ever overall progress flow chart of the local simulation performed in the SW server module for parallel simulation performed independently expected input and output used for each local simulation-run manner in progress or actual input and output using the - possible progress of the run way to the SW and the server module controls the distributed processing performed enemy parallel simulation. 그러나, 앞서서 이미 설명한 것과 같이 또 다른 구성에서는 분산처리적병렬시뮬레이션 수행을 위한 SW서버 모듈의 분산처리적병렬시뮬레이션 수행제어가 모든 로컬시뮬레이션들이 모두 다 예상입출력이용-런 방식으로 진행되는 경우에만 예상입출력이용-런 방식의 진행이 이루어지도록 하고, 나머지 상황에서는 실제입출력이용-런 방식으로 모든 로컬시뮬레이션들이 진행되도록 제어될 수 있도록 하는 것도 가능한데, 이 같은 경우는 시뮬레이션의 성능을 최대화하는 것에는 약점이 있으나 제어의 단순함에 있어서 장점이 있다. However, before the yet another configuration to perform distributed processing enemy parallel simulation of SW server module for performing distributed processing enemy parallel simulation control, as already mentioned all of the local simulation are all the expected output using-only when proceeding with a run way expected input and output use - the progress of the run way and to occur, in the rest condition the actual input and output use - it is also possible to so that it can be controlled so that all of the local simulation will proceed to run the way, the case is on maximizing the simulated performance include, but are weak there are advantages in simplicity of control.

도30 과 도31 은, 도8 의 본 특허에서 제시한 분산처리적병렬시뮬레이션을 위하여 부가되는 부가 코드 내부를 구성하는 컴퍼넌트들 각각에 대하여 이들의 행태를 모조코드(pseudo code) 형식으로 구술한 예를 개략적으로 도시한 도면이다. Figure 30 and Figure 31, for the oral their behavior in artificial Code (pseudo code) format for each of the components which make up the interior additional code is added to a dispersion treatment ever parallel simulation proposed in this patent in FIG. 8 a diagram schematically illustrating. 이와 같은 부가 코드의 컴퍼넌트들을 최대한 합성가능한 형태로 만들어서 부가한다면 하드웨어기반검증플랫폼상에서도 구현되어질 수 있는 추가적인 장점을 가질 수 있다. If these additional components make the most of such additional code to synthesizable form it may have additional benefits that can be implemented even on hardware-based verification platform.

따라서 다시 한번 강조할 것은, 본 특허에서 “시뮬레이션”이라 함은 1 또는 2 이상의 시뮬레이터만을 이용한 순수한 시뮬레이션뿐만 아니라 1 또는 2 이상의 시뮬레이터와 1 또는 2 이상의 하드웨어기반검증플랫폼을 이용한 시뮬레이션가속도 포함하는 것이라는 것이다. Therefore, to be emphasized, once again, the term "simulating" in this patent is that of simulating includes acceleration using pure simulation, as well as one or two or more simulators and one or two or more hardware-based verification platform using only one or two or more simulators. 따라서, 본 특허에서의 분산처리적병렬시뮬레이션 환경을 구성하는 각 로컬시뮬레이션은 로컬시뮬레이터에서 수행되어질 수 있을 뿐만 아니라, 혹은 로컬하드웨어기반검증플랫폼에서 시뮬레이션가속 방식으로 수행되어 질 수도 있을 뿐만 아니라, 혹은 로컬시뮬레이터와 로컬하드웨어기반검증플랫폼을 함께 이용하여서 수행되어 질 수 있다는 것도 다시 한번 강조한다. Therefore, each local simulation that is part of the distributed processing enemy parallel simulation environment of the present patent can not only be carried out on the local simulator, or is performed on the local hardware based verification platform to simulate accelerated not only may be, or local once again it emphasizes that it can be followed hayeoseo used with the simulator and the local hardware-based verification platform.

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

도32 는, 본 특허에서 제시한 분산처리적병렬시뮬레이션을 위하여 부가되는 부가코드의 내부를 구성하는 컴퍼넌트들의 구성의 다른 일 예를 개략적으로 도시한 도면이다. 32 is a diagram showing another example of the configuration of the components which make up the interior of the additional code is added to a dispersion treatment ever parallel simulation proposed in this patent. 도32 는 도8 과 매우 유사하지만, 도32 가 도8 과의 차이점은 s-DCP 생성/저장 모듈(60)에 추상화 상위수준(즉, 해당 로컬시뮬레이션에서 실행되는 로컬설계객체의 추상화 수준보다 높은 추상화수준)에서 구술된 DUV와 TB 모두를 포함하는 설계객체(53)를 두고 이 추상화 상위수준에서 구술된 DUV와 TB 모두를 포함하는 설계객체(53)를 상기 로컬시뮬레이션에서 실행되어져야 하는 로컬설계객체와 같이 실행하면서(추상화 상위수준에서 구술된 DUV와 TB 모두를 포함하는 설계객체(53)의 실행은 시뮬레이션 만으로 수행하거나, 또는 하드웨어기반검증플랫폼을 이용한 시뮬레이션가속 만으로 수행하거나, 또는 이 둘을 혼합한 방식으로 수행할 수 있음) 상기 로컬설계객체에 대한 로컬시뮬레이션을 통신 오버헤드와 동기 오버헤드를 최소한으로 하면서 진행하기 위하 Figure 32 is very similar to Figure 8, but FIG. 32 is the difference between the Figure 8 s-DCP produced / storage module 60, abstract high-level (i.e., higher than the level of abstraction of the local design objects that run on the local simulation for local design of the abstraction level) design object (53) to leave the design object (53) containing both the oral DUV and TB includes an all DUV and TB dictation in the abstract high-level in must be running on the local simulation while running, such as objects (abstract execution of the design object (53) comprising both DUV and TB orally at a higher level is carried out only by simulation, or perform only the simulated acceleration using a hardware-based validation platform, or mixing the two can be done in one system) with the local simulation of the local design objects to a minimum the communication overhead and synchronization overhead in order to proceed 필요한 예상입력과 예상출력을 동적으로 생성하여서 이용한다는 것이다. Necessary to utilize hayeoseo dynamically generate the expected input and expected output. 즉, 도32 에서 예시한 방식과 도8 에서 예시한 방식의 s-DCP 생성/저장 모듈(60)을 이용하는 방법의 차이점은, 전통적인 시뮬레이션 방법에서 시뮬레이션의 결과를 자동비교하는 방법으로서의 두 방법인 골든 모델(golden model)을 이용하는 방식(현 시뮬레이션 수행시에 골든 모델을 DUV가 같이 시뮬레이션되어지도록 하여서 골든 모델에서 동적으로 얻어지는 시뮬레이션 결과를 이용하는 방식)과 골든 벡터(golden vector)를 이용하는 방식(이미 앞선 시뮬레이션을 통하여 구해진 시뮬레이션 결과를 이용하는 방식)의 차이점과 유사하다. In other words, a difference between the method using a method of s-DCP produced / storage module 60, illustrated in a manner as in Figure 8 illustrated in 32, the two methods as a way to automatically compare the results of the simulation Golden in conventional simulation method model (golden model) to use method (hayeoseo so is the golden model DUV is simulated as at the current simulation performed scheme using a simulation result dynamically obtained from Golden model) and the method using a golden vector (golden vector) (already advanced simulation it is similar to the difference in the way of using the results obtained through a simulation). 다시 한번 강조한다면 본 특허에서의 분산처리적병렬시뮬레이션의 각 로컬시뮬레이션에서 통신 오버헤드와 동기 오버헤드를 최소화시키면서 시뮬레이션 수행이 될 수 있게하기 위하여 필요한 예상입력 또는 예상출력 또는 예상입력과 예상출력은 앞선 시뮬레이션 수행에서 수집되어서 저장된 동적정보에서부터 구하여 사용하거나, 또는 로컬설계객체보다 추상화 수준이 높은 모델을 로컬시뮬레이션에서 로컬설계객체와 같이 실행시키면서 상기 추상화 수준이 높은 모델에서부터 동적으로 구하여 사용한다. If Again the estimated necessary while minimizing the communication overhead and synchronization overhead in a distributed processing enemy each local simulation of parallel simulation in the patent to be able to be performed simulation input, or the expected output or expected input and expected output is advanced be collected by the simulation performed using the stored obtained from the dynamic information, or the local design object with higher levels of abstraction model while running as the local design object from the local simulation is used to dynamically obtain, from which the high level of abstraction model. 뿐만 아니라, 이미 수차례 언급된 것과 같이 도32 의 추상화 상위수준에서 구술된 DUV와 TB 모두를 포함하는 설계객체(53) 대신에 로컬설계객체와 동일한 추상화수준이지만 시뮬레이션이 빠르게 수행되도록 최적화되어진 DUV와 TB 모두를 포함하는 설계객체를 사용하는 것도 가능하다. As well as, DUV been optimized for, but already many times referred to the same level of abstraction and the local design object, instead of the design object (53) comprising both DUV and TB oral abstraction higher level in FIG. 32, as the simulation is performed quickly and it is also possible to use a design object that contains all of the TB.

그리고, 본 특허에서 제시한 분산처리적병렬시뮬레이션을 통하여 특정 추상화 수준의 모델(예로, 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로 활용하거나 혹은 이 새로운 모델을 이용한 시뮬레이션을 먼 And, the through distributed processing enemy parallel simulation proposed in this patent a particular level of abstraction of the model (e.g., RTL model or RTL / GL mixed level model or TLM / RTL mixed level model or TLM / RTL / GL mixed level model, etc.) If only perform simulations quickly and party optimization process, or both the process of mixing the process so that the model or process or simulated height by way of automating the level of abstraction of the design object, at least one of the model proceeds rapidly (e.g., Carbon design Systems VSP's use, or use TenisonEDA's VTOC, or Korean Patent 10-2005-95803, 10-2005-116706, methods) at least one in the model or models designed by the object in 10-2006-19738 create a new model by converting them leverage these new models to s-DCP, or long simulation using this new model, 수행하여서 얻어진 동적정보를 s-DCP로 활용하여서 상기의 분산처리적병렬시뮬레이션을 진행할 수 있다. Hayeoseo utilizing the dynamic information obtained hayeoseo performed in s-DCP may proceed to the parallel distributed processing ever simulation.

상술한 바와 같이, 본 발명의 효과는 초대규모급 설계를 ESL 기반에서 수행하는 경 우에 추상화 상위수준 모델을 이용한 시뮬레이션의 결과를 활용하여서 추상화 하위수준 모델에 대한 검증을 신속하게 수행하는 것이 가능함으로서 전체 설계 검증의 시간을 대폭적으로 단축하고 검증의 효율성을 크게 높이는 것이 가능하다. As described above, the effects of the present invention, by it is possible to quickly perform the verification of the case abstraction hayeoseo utilizing the results of the simulation with the higher-level model abstract lower level model to perform a very large class design in ESL based on the total greatly reduces the time of validation, and it is possible to greatly improve the efficiency of verification.

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

본 발명의 또 다른 효과는, 점진적 구체화를 통하여 진행되는 설계에서 진행되는 검증이 점진적 구체화 과정을 통하여 추상화 하위 단계로 진행될수록 검증 속도가 크게 떨어지는 문제점을 해결하는 체계적인 검증 방법을 제공한다. Another effect of the present invention is embodied through the verification process is gradually going on in the design is proceeding through the more progressive elaboration proceeds to sub-step abstraction provides a systematic method to solve the verification the verification rate significantly lowered.

본 발명의 또 다른 효과는, 설계 및 검증을 추상화 상위수준에서부터 추상화 하위수준으로까지 점진적 구체화 방식으로 진행되는 전체 과정이 체계적이며 자동화된 방식으로 진행될 수 있도록 한다. Another advantage of the present invention, the whole process advances to gradually refine methods for design and verification from a higher level of abstraction to a lower level of abstraction allows the systematic and conducted in an automated fashion.

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

본 발명의 또 다른 효과는, 체계적으로 유지된 모델 일관성에 근거하여서 추상화 상위 수준에서의 모델을 레퍼런스 모델로 활용하여서 점진적 구체화 과정을 통하여 추상화 하위 수준의 모델을 효과적으로 검증하는 방법을 제공한다. Another advantage of the present invention is based on the model hayeoseo consistency systematically take advantage of the higher level of abstraction in the model as a reference model hayeoseo provides a method of effectively verifying the model of the lower level of abstraction through the progressive elaboration process.

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

본 발명의 또 다른 효과는, 점진적 구체화 과정을 통한 설계 과정에서 발견되는 설계오류들을 제거하는 디버깅 과정을 체계적으로 수행할 수 있도록 함으로서 신속한 디버깅을 통한 설계 오류를 수정하는 방법을 제공한다. Another effect of the present invention provides a method of modifying a design fault with the rapid debugging by allowing you to perform the debugging process designed to remove the errors found in the design process through the progressive elaboration process systematically.

이상 설명한 내용을 통해 당업자라면 본 발명의 기술사상을 일탈하지 아니하는 범위에서 다양한 변경 및 수정이 가능함을 알 수 있을 것이다. Those skilled in the art what is described above will be appreciated that various changes and modifications within the range which does not depart from the spirit of the present invention are possible. 따라서, 본 발명의 기술적 범위는 실시 예에 기재된 내용으로 한정되는 것이 아니라 특허 청구의 범위에 의하여 정하여져야만 한다. Accordingly, the technical scope of the present invention is not limited to the contents described in the embodiment will be perfected appointed by the claims.

Claims (70)

  1. 특정의 추상화 수준을 가지는 소정의 모델을 대상으로 하는 분산 병렬 시뮬레이션 방법으로서, A parallel distributed simulation method for targeting a desired model having a certain level of abstraction,
    (a) 상기 소정의 모델을 공간적으로 복수개의 로컬설계객체들로 분할하여 시뮬레이션을 병렬적으로 수행하는 경우에, 상기 공간적으로 분할된 로컬설계객체들 대상으로 하는 복수의 시뮬레이션 각각을 로컬 시뮬레이션이라 하면, 상기 소정의 모델을 대상으로 하는 분산 병렬 시뮬레이션에서의 상기 복수의 로컬 시뮬레이션들 중 적어도 하나의 로컬 시뮬레이션을 위한 예상입력 및 예상출력을 획득하는 단계; (A) When in the case of performing the simulation is divided into a plurality of local design object, the predetermined model in space in parallel, a plurality of simulation, each of said spatially local design object divided by the target as a local simulation , obtaining the expected input and expected output of the plurality of local simulation in the parallel distributed simulation targeted to the predetermined model for the at least one local simulation;
    (b) 상기 소정의 모델을 대상으로 하는 분산 병렬 시뮬레이션의 적어도 하나의 로컬 시뮬레이션에서 상기 예상입력 및 예상출력을 이용하되, 상기 적어도 하나의 로컬 시뮬레이션에서 시뮬레이션 전체 시간 구간 중의 적어도 하나의 일부 시뮬레이션 시간 구간에서는 상기 예상입력 및 예상출력을 이용함으로서 여타의 로컬 시뮬레이션들과의 통신과 동기화를 생략하고 독립적으로 시뮬레이션을 수행하는 단계 (B) at least one local simulation, but using the expected input and expected output, the at least one at least one part of the simulation time interval of the local simulation simulates the entire time interval of the distributed parallel simulation targeting the predetermined model in the step of omitting the communication and synchronization with the expected input and local simulation of the other by using the estimated output and the simulation independently
    를 포함하는 시뮬레이션 방법. The simulation method comprising the.
  2. 제1항에 있어서, According to claim 1,
    상기 (b) 단계는, The step (b),
    (c1) 상기 복수의 로컬 시뮬레이션들 중에서 적어도 하나의 로컬 시뮬레이션이 여타의 로컬 시뮬레이션들과의 통신 및 동기화를 생략하고 상기 예상입력 및 예상출력으로 독립적으로 시뮬레이션을 수행할 수 있는지 판단하는 단계; (C1) determining whether at least one of the local simulation from among the plurality of local simulation is possible to omit the communication and synchronization with other local and simulation of the simulation independently to the expected input and expected output;
    (c2) 상기 (c1) 단계에서 독립적으로 수행할 수 있다고 판단되면 상기 적어도 하나의 로컬 시뮬레이션을 여타 로컬 시뮬레이션과 독립적으로 시뮬레이션하고, 독립적으로 수행할 수 없다고 판단되면 상기 적어도 하나의 로컬 시뮬레이션을 여타 로컬 시뮬레이션과의 통신 및 동기화를 통하여 얻어지는 실제입력을 활용하여 시뮬레이션을 수행하는 단계 (C2) local to the at least one local simulation when it is determined that can be performed independently in the (c1) step determines that it can not simulate the at least one local simulation with other local simulation and independently, and performs independently other by using the actual input is obtained through a communication and synchronization of the simulation and performing a simulation
    를 포함하는 시뮬레이션 방법. The simulation method comprising the.
  3. 제1항에 있어서, According to claim 1,
    상기 (b) 단계는, The step (b),
    (d1) 상기 복수의 로컬 시뮬레이션들 중에서 적어도 하나의 로컬 시뮬레이션이 여타의 로컬 시뮬레이션들과의 통신 및 동기화를 생략하고 상기 예상입력을 해당 로컬설계객체들 위한 시뮬레이션 입력으로써 사용한 실행으로부터 얻어진 실제출력이, 상기 (a) 단계에서 얻어진 예상출력과 일치하는지 판단하는 단계; (D1) the actual output obtained from the run with the at least one local simulation from among the plurality of local simulation by omitting the communication and synchronization with other local simulation and simulate the input for the said estimated input the local design object, determining that it matches the expected output obtained in step (a) above;
    (d2) 상기 (d1) 단계에서 상기 실제출력과 상기 예상출력이 일치하지 않는다고 판단되면, (상기 복수의 로컬 시뮬레이션들 중에서 적어도 하나의 로컬 시뮬레이션은 여타 로컬 시뮬레이션과의 통신 및 동기화를 통하여 얻어지는) 실제입력을 해당 로컬설계객체를 위한 시뮬레이션 입력으로써 활용하는 시뮬레이션 방식으로 로컬시뮬레이션을 수행하는 단계 (D2) if it is determined not to have the actual output and the expected output matching in step (d1), (at least one of the local simulation from among the plurality of local simulation is obtained through a communication and synchronization with the other local simulation) Actual performing a local simulation to simulation methods to take advantage of the simulation input as an input for the local design object
    를 포함하는 시뮬레이션 방법. The simulation method comprising the.
  4. 제1항에 있어서, According to claim 1,
    상기 (b) 단계에서, In the step (b),
    상기 복수의 로컬 시뮬레이션들 중에서 적어도 하나의 로컬 시뮬레이션이 (향후에 진행될 가능성이 있는 롤백을 위하여) 시뮬레이션 수행 과정 중에서 1회 이상의 체크포인팅을 진행하면서 수행되며, Is performed with progress of at least one of the local simulation least one check from the simulation execution process (to rollback that may take place in the future) pointing from among the plurality of local simulation,
    상기 (b) 단계는, The step (b),
    (e1) 상기 복수의 로컬 시뮬레이션들 중에서 적어도 하나의 로컬 시뮬레이션이 여타의 로컬 시뮬레이션들과의 통신 및 동기화를 생략하고 상기 예상입력을 해당 로컬설계객체들 위한 시뮬레이션 입력으로써 사용한 실행으로부터 얻어진 실제출력이, 상기 (a) 단계에서 얻어진 예상출력과 일치하는지 판단하는 단계; The actual output obtained from the run with not a communication and synchronization with the plurality of local simulation of at least one of the local simulation is other local simulation of the in and by simulation input for the said estimated input the local design object, (e1) determining that it matches the expected output obtained in step (a) above;
    (e2) 상기 (e1) 단계에서 상기 실제출력과 상기 예상출력이 일치하지 않으면, 여타의 로컬시뮬레이션들에게 상기 실제출력과 상기 예상출력의 일치하지 않음과 일치하지 않음이 발생한 해당 시뮬레이션 시간을 알리는 단계; (E2) step in (e1) step of reporting the actual output and the simulation time, if the expected output does not match, the occurrence of the other to the local simulation does not match does not match the actual output and the expected output .;
    (e3) 각 로컬 시뮬레이션은 (e2) 단계에서 실제출력과 예상출력이 일치하지 않은 로컬 시뮬레이션들이 알려온 일치하지 않음이 발생한 해당 시뮬레이션 시간과 각 로컬 시뮬레이션의 현재 시뮬레이션 시간을 비교함으로서 롤백이 필요한지를 판단하여서, 롤백이 필요하다고 판단이 되면 롤백을 수행하는 단계; (E3) each local simulation hayeoseo determining an actual output and the expected output does not correspond to the local simulation are inconsistent alryeoon is the simulation time and rollback is required by comparing the current simulation time in each of the local simulation generated in (e2) step comprising the steps of: when it is determined that the rollback is required to perform a rollback;
    (e4) 상기 복수의 로컬 시뮬레이션들 중에서 적어도 하나의 로컬 시뮬레이션은 여타 로컬 시뮬레이션과의 통신 및 동기화를 초래하면서 얻어지는 실제입력을 해당 로컬설계객체를 위한 시뮬레이션 입력으로써 활용하는 동시에, 상기 적어도 하나의 로컬 시뮬레이션이 예상입력으로써 시뮬레이션 되는 방식으로 다시 돌아가기 위하여 상기 로컬설계객체의 출력단에서의 출력과 예상출력을 비교하는 시뮬레이션 방식으로 로컬시뮬레이션을 수행하는 단계 (E4) at least one local simulation at the same time to utilize the actual input is obtained, resulting a communication and synchronization with the other local simulation by the simulation inputs for the local design object, said at least one local simulation from among the plurality of local simulation to go back to the simulation method by the estimated input and performing a local simulation to simulation by comparing the output with the expected output from the output terminal of the local design object
    를 포함하는 시뮬레이션 방법. The simulation method comprising the.
  5. 제1항에 있어서, According to claim 1,
    상기 (b) 단계에서, In the step (b),
    상기 복수의 로컬 시뮬레이션들 중에서 적어도 하나의 로컬 시뮬레이션이 (향후에 진행될 가능성이 있는 롤백을 위하여) 시뮬레이션 수행 과정 중에서 1회 이상의 체크포인팅을 진행하면서 수행되며, Is performed with progress of at least one of the local simulation least one check from the simulation execution process (to rollback that may take place in the future) pointing from among the plurality of local simulation,
    상기 (b) 단계는, The step (b),
    (f1) 상기 복수의 로컬 시뮬레이션들 중에서 적어도 하나의 로컬 시뮬레이션이 여타의 로컬 시뮬레이션들과의 통신 및 동기화를 생략하고 상기 예상입력을 해당 로컬설계객체들 위한 시뮬레이션 입력으로써 사용한 실행으로부터 얻어진 실제출력이, 상기 (a) 단계에서 얻어진 예상출력과 일치하는지 판단하는 단계; (F1) of the actual outputs obtained from the run with the at least one local simulation from among the plurality of local simulation by omitting the communication and synchronization with other local simulation and simulate the input for the said estimated input the local design object, determining that it matches the expected output obtained in step (a) above;
    (f2) 상기 (f1) 단계에서 상기 실제출력과 상기 예상출력이 일치하지 않으면, 여타의 로컬시뮬레이션들에게 상기 실제출력과 상기 예상출력의 일치하지 않음과 일치하지 않음이 발생한 해당 시뮬레이션 시간 t_d를 알리는 단계; (F2) if you are not the actual output and the expected output matching in step (f1), the other to the local simulation indicating the actual output and the simulation time t_d generated does not match does not match the expected output step;
    (f3) 각 로컬 시뮬레이션은 (f2) 단계에서 실체 출력과 예상출력이 일치하지 않은 로컬 시뮬레이션들이 알려온 일치하지 않음이 발생한 해당 시뮬레이션 시간 t_d와 각 로컬 시뮬레이션의 현재 시뮬레이션 시간 t_c를 비교하는 단계; (F3) comparing the current simulation time t_c in each local simulation (f2) in the output stage entities and expected output does not match the local simulation are alryeoon mismatch is the simulation time t_d with each generated local simulation;
    (f4) 상기 (f3)단계에서 상기 시간 t_c가 상기 시간 t_d보다 늦으면(즉, t_c>t_d인 경우) 롤백이 필요하다고 판단하고 상기 시간 t_c가 상기 시간 t_d보다 앞서면(즉, t_c<t_d인 경우) 롤포워드가 필요하다고 판단하여, 롤백이 필요하다고 판단이 되면 롤백을 수행하며 롤포워드가 필요하다고 판단이 되면 롤포워드를 수행하여서 모든 로컬 시뮬레이션들의 현재 시뮬레이션 시간을 일치시키는 단계; (F4) when in the (f3) step of the time t_c which the time later than the t_d (i.e., t_c> For t_d) determines that the rollback is required, and that the time t_c earlier than the time t_d (i.e., t_c <t_d ) placing determines that have to roll forward, hayeoseo When determined that the rollback is required to perform a rollback, and if the data shows that a necessary roll forward do rollforward match the current simulation time of all local simulation;
    (f5) 상기 모든 로컬 시뮬레이션들이 통신 및 동기화를 초래하면서 얻어지는 실제입력을 로컬설계객체를 위한 시뮬레이션 입력으로써 활용하는 동시에, 상기 적어도 하나의 로컬 시뮬레이션이 예상입력으로써 시뮬레이션 되는 방식으로 다시 돌아가기 위하여 상기 로컬설계객체의 출력단에서의 출력과 예상출력을 비교하는 시뮬레이션 방식으로 로컬시뮬레이션을 수행하는 단계 (F5) the local to the top all the local simulation will return the actual input is obtained, resulting communication and synchronization at the same time to utilize as a simulation input for local design object, the way the at least one local simulation is that the simulation as expected input performing a local simulation to simulation by comparing the output with the expected output from the output terminal of the design object,
    를 포함하는 시뮬레이션 방법. The simulation method comprising the.
  6. 제4항에 있어서, 5. The method of claim 4,
    상기 (b) 단계는, The step (b),
    (g1) 상기 복수의 로컬 시뮬레이션들 중에서 적어도 하나의 로컬 시뮬레이션이 여타 로컬 시뮬레이션과의 통신 및 동기화를 통하여 얻어지는 실제입력을 해당 로컬설계객체를 위한 시뮬레이션 입력으로써 활용하는 시뮬레이션 방식으로 로컬시뮬레이션을 수행하는 중에 얻어지는 실제출력이, 상기 (a) 단계에서 얻어진 예상출력과 일치하는지 판단하는 단계; (G1) while performing the local simulation to simulation method utilizing real input obtained at least one of the local simulation from among the plurality of local simulation by way of the communication and synchronization with the other local simulation by the simulation inputs for the local design object the actual output is obtained, determining that it matches the expected output obtained in the step (a);
    (g2) 상기 실제출력과 상기 예상출력이 일정 횟수 이상 일치하기 시작하면, 그 시점부터 상기 (a) 단계에서 얻어진 예상입력과 예상출력을 다시 이용하여 상기 복수의 로컬 시뮬레이션들 중에서 적어도 하나의 로컬 시뮬레이션은 여타의 로컬 시뮬레이션들과의 통신 및 동기화를 생략한 시뮬레이션을 수행하는 단계 (G2) the actual output and the expected output at least one of the local simulation among constant when the number of times or more beginning to match that by re-using the expected input and expected output obtained in the step (a) the plurality of local simulation from the time the step of performing simulation by omitting the communication and synchronization with the other local simulation
    를 더 포함하는 시뮬레이션 방법. The simulation method further comprises.
  7. 제2항, 또는 제3항, 또는 제4항 중 어느 한항에 있어서, A method according to any hanhang of claim 2, or 3, or 4,
    상기 적어도 하나의 로컬 시뮬레이션을 위한 예상입력 및 예상출력을 획득하는 단계가, A step of obtaining the expected input and expected output for the at least one local simulation,
    상기 특정의 추상화 수준을 가지는 소정의 모델을 대상으로 하는 분산 병렬 시뮬레이션 수행 과정 중에서 In a parallel distributed simulation execution process for a given model with the level of abstraction of the specific target
    상기 소정의 모델과 동일한 대상이지만 단지 상기 특정의 추상화 수준보다는 추상화 수준이 높은 제1 모델을, 상기 적어도 하나의 로컬 시뮬레이션에서, 해당 로컬설계객체와 함께 시뮬레이션 실행함을 통하여 달성되는 시뮬레이션 방법 Simulation method is achieved through the same object, but only the first model level of abstraction higher than the level of abstraction of the specific and the predetermined model, the at least one local simulation, also simulation run with the local design object
  8. 제2항, 또는 제3항, 또는 제4항 중 어느 한항에 있어서, A method according to any hanhang of claim 2, or 3, or 4,
    상기 적어도 하나의 로컬 시뮬레이션을 위한 예상입력 및 예상출력을 획득하는 단계가, A step of obtaining the expected input and expected output for the at least one local simulation,
    상기 특정의 추상화 수준을 가지는 소정의 모델을 대상으로 하는 분산 병렬 시뮬레이션 수행에 앞서서 Prior to performing distributed parallel to the simulation model having a predetermined level of abstraction of the specific target
    상기 소정의 모델과 동일한 대상이지만 단지 상기 특정의 추상화 수준보다는 추상화 수준이 높은 제1 모델을 대상으로 하는 별도의 시뮬레이션 실행과정 중에서 In a separate simulation execution process of the same object, but only the specific first model level of abstraction higher than the level of abstraction and the predetermined model targeted
    상기 제1 모델내에 존재하는 하나 이상의 설계객체들에의 입력정보 및 출력정보를 저장하는 것을 포함하는 시뮬레이션 방법 Simulation method comprising storing the input information and output information of the one or more design objects existing in the first model,
  9. 특정의 추상화 수준을 가지는 소정의 모델을 대상으로 하는 분산 병렬 시뮬레이션 방법으로서, A parallel distributed simulation method for targeting a desired model having a certain level of abstraction,
    (a) 상기 소정의 모델을 공간적으로 복수개의 로컬설계객체들로 분할하여 시뮬레이션을 병렬적으로 수행하는 경우에, 상기 공간적으로 분할된 로컬설계객체들 대상으로 하는 복수의 시뮬레이션 각각을 로컬 시뮬레이션이라 하면, 상기 소정의 모델을 대상으로 하는 분산 병렬 시뮬레이션에서의 상기 복수의 로컬 시뮬레이션들 중 적어도 2 이상의 로컬 시뮬레이션 간의 통신량을 감소시키기 위한 예상입력 및 예상출력을 획득하는 단계; (A) When in the case of performing the simulation is divided into a plurality of local design object, the predetermined model in space in parallel, a plurality of simulation, each of said spatially local design object divided by the target as a local simulation , obtaining the expected input and expected output for reducing the amount of communication between the plurality of local simulation of the at least two local simulation in the parallel distributed simulation targeting the predetermined model;
    (b) 상기 소정의 모델을 대상으로 하는 분산 병렬 시뮬레이션의 적어도 2 이상의 로컬 시뮬레이션에서 상기 예상입력 및 예상출력을 실제입력 및 실제출력과 함께 이용하여서, 상기 2 이상의 로컬 시뮬레이션 간의 통신량을 감소시키는 시뮬레이션을 수행하는 단계 (B) a simulation of at least two local simulation of the distributed parallel simulation targeting the predetermined model hayeoseo used with the expected input and expected output with the actual input and the actual output, reducing the amount of communication between the two or more local simulation The steps to
    를 포함하는 시뮬레이션 방법. The simulation method comprising the.
  10. 제9항에 있어서, 10. The method of claim 9,
    상기 적어도 2 이상의 로컬 시뮬레이션 간의 통신량을 감소시키기 위한 예상입력 및 예상출력을 획득하는 단계가, A step of obtaining the expected input and expected output for reducing the traffic between the at least two local simulation,
    상기 특정의 추상화 수준을 가지는 소정의 모델을 대상으로 하는 분산 병렬 시뮬레이션 수행 과정 중에서 In a parallel distributed simulation execution process for a given model with the level of abstraction of the specific target
    상기 소정의 모델과 동일한 대상이지만 단지 상기 특정의 추상화 수준보다는 추상화 수준이 높은 제1 모델을, 상기 적어도 하나의 로컬 시뮬레이션에서 상기 특정의 추상화 수준의 해당 로컬설계객체와 함께 시뮬레이션 실행하는 과정에서 상기 제1 모델 안에 존재하는 상기 로컬설계객체의 입력정보와 출력정보를 각각 예상입력과 예상출력으로서 저장함을 통하여 달성되는 시뮬레이션 방법 Wherein the same destination, but only the first model level of abstraction higher than the level of abstraction of the specific and the predetermined model, the process in the at least one local simulation to simulate running with its local design objects of the particular level of abstraction of the the input information and output information of the local design objects existing within a simulation model, each method is achieved by storing as the expected input and expected output
  11. 제9항에 있어서, 10. The method of claim 9,
    상기 적어도 2 이상의 로컬 시뮬레이션 간의 통신량을 감소시키기 위한 예상입력 및 예상출력을 획득하는 단계가, A step of obtaining the expected input and expected output for reducing the traffic between the at least two local simulation,
    상기 특정의 추상화 수준을 가지는 소정의 모델을 대상으로 하는 분산 병렬 시뮬레이션 수행에 앞서서 Prior to performing distributed parallel to the simulation model having a predetermined level of abstraction of the specific target
    상기 소정의 모델과 동일한 대상이지만 단지 상기 특정의 추상화 수준보다는 추상화 수준이 높은 제1 모델을 대상으로 하는 별도의 시뮬레이션 실행과정 중에서 In a separate simulation execution process of the same object, but only the specific first model level of abstraction higher than the level of abstraction and the predetermined model targeted
    상기 제1 모델내에 존재하는 하나 이상의 설계객체들의 입력정보 및 출력정보를 각각 예상입력과 예상출력으로서 저장하는 것을 포함하는 시뮬레이션 방법 Simulation method includes storing as the first model, each expected input and expected output the input information and output information of the one or more design objects present in the
  12. 제10항, 또는 제11항 중 어느 한항에 있어서, A method according to any hanhang of claim 10, or 11,
    상기 특정의 추상화 수준이 GL(게이트 레벨)인 경우 상기 제1 모델의 추상화 수준은 RTL(레지스터 트랜스퍼 레벨) 또는 RTL과 GL이 혼합(mixed)된 수준이고, And if the level of abstraction of the specific person GL (gate level) level of abstraction of the first model, a RTL (register transfer level) or RTL GL and a mixture (mixed) level,
    상기 특정의 추상화 수준이 RTL(레지스터 트랜스퍼 레벨)인 경우 상기 제1 모델의 추상화 수준은 ESL(Electronic System Level) 또는 ESL과 RTL이 혼합(mixed)된 수준인 시뮬레이션 방법. The simulation method of the levels of abstraction in the particular case of RTL (register transfer level) level of abstraction of the first model ESL (Electronic System Level) or ESL and RTL is mixed (mixed) level.
  13. 특정의 추상화 수준을 가지는 소정의 모델 MODEL(LOW_ABSTRACT)을 대상으로 하는 병렬 시뮬레이션 방법으로서, A parallel simulation method for targeting a desired model having a certain level of abstraction MODEL (LOW_ABSTRACT),
    (a) 상기 소정의 모델 MODEL(LOW_ABSTRACT)보다 추상화 수준이 높은 모델 MODEL(HIGH_ABSTRACT)을 대상으로 하는 시뮬레이션에서 MODEL(HIGH_ABSTRACT)에 대한 상태정보를 1 이상의 시뮬레이션 시간에서 저장하면서 시뮬레이션을 진행하는 단계; Comprising the steps of: (a) while saving the state information on the MODEL (HIGH_ABSTRACT) in the simulation that targets the predetermined model MODEL (LOW_ABSTRACT) with higher levels of abstraction model MODEL (HIGH_ABSTRACT) in one or more simulated time advances the simulation;
    (b) 상기 1 이상의 시뮬레이션 시간에서 저장된 MODEL(HIGH_ABSTRACT)의 상태정보를 활용하여 상기 소정의 모델 MODEL(LOW_ABSTRACT)에 대한 시뮬레이션을 시간분할적병렬수행 방식으로 수행하는 단계 (B) the step of utilizing information about the state of MODEL (HIGH_ABSTRACT) stored in the one or more simulation time to perform a simulation for the given model MODEL (LOW_ABSTRACT) in a time division manner ever parallelism
    를 포함하는 시뮬레이션 방법. The simulation method comprising the.
  14. 제13항에 있어서, 14. The method of claim 13,
    상기 특정의 추상화 수준을 가지는 소정의 모델 MODEL(LOW_ABSTRACT)은 ca-트란젝션 모델이며, 상기 소정의 모델보다 추상화 수준이 높은 모델 MODEL(HIGH_ABSTRACT)는 untimed-트란젝션 모델 또는 timed-트란젝션 모델인 시뮬레이션 방법. Predetermined model MODEL (LOW_ABSTRACT) of having a level of abstraction of the specific is a tran ca- projection model, a high level of abstraction than the predetermined Model MODEL (HIGH_ABSTRACT) is untimed- Tran projection model or timed- Tran projection model, the simulation Way.
  15. 2개 이상의 설계객체들로 이루어진 특정의 추상화 수준을 가지는 소정의 모델을 대상으로 하는 시뮬레이션 방법으로서, A simulation method for targeting a desired model having a certain level of abstraction consisting of two or more design objects,
    (a) 시뮬레이션 실행 과정에서 상기 소정의 모델에 존재하는 1개 이상의 설계객체에 대하여 사용될 수 있는 예상입력 및 예상출력을 먼저 획득하는 단계; Comprising the steps of: (a) In the simulation execution process Obtained expected input and expected output that may be used for the design object, one or more existing in the predetermined first model;
    (b) 상기 소정의 모델을 대상으로 하는 시뮬레이션 실행 과정에서 적어도 일부의 시뮬레이션 시간 구간 T_parts에서는 상기 예상입력 및 예상출력을 이용한 시뮬레이션을 수행하는 단계 (B) the at least part of the simulation time interval T_parts in the simulation execution process of targeting the predetermined model, the simulation with the expected input and expected output
    를 포함하는 시뮬레이션 방법. The simulation method comprising the.
  16. 제15항에 있어서, 16. The method of claim 15,
    상기 (b) 단계는, The step (b),
    (c1) 상기 1 이상의 설계객체가 다른 설계객체들과 독립적으로 상기 예상입력 및 예상출력만으로 시뮬레이션이 올바르게 수행되고 있는지를 판단하는 단계; (C1) determining that the simulation is properly performed only with the expected input and expected output the one or more design objects is independent of the other design object;
    (c2) 상기 (c1) 단계에서 독립적으로 올바르게 수행되고 있다고 판단되면 상기 다른 설계객체들에 대해서는 상기 일부의 시뮬레이션 시간 구간 T_parts 동안에서는 시뮬레이션을 실행시키지 않으며, 독립적으로 올바르게 수행되고 있지 못하다고 판단되면 상기 특정의 추상화 수준을 가지는 소정의 모델 전체에 대한 시뮬레이션 실행을 통하여 얻어지는 실제입력을 활용하여 시뮬레이션을 수행하는 단계 (C2) if it is determined that there is carried out independently correctly in the (c1) step does not run the simulation, during the simulation time interval of the portion T_parts respect to the other design object, if it is determined mothadago not been performed correctly independent of the particular the method comprising: performing a simulation by using the actual input is obtained through the simulation is running for the entire predetermined model having a level of abstraction
    를 포함하는 시뮬레이션 방법. The simulation method comprising the.
  17. 삭제 delete
  18. 삭제 delete
  19. 삭제 delete
  20. 삭제 delete
  21. 삭제 delete
  22. 삭제 delete
  23. 삭제 delete
  24. 삭제 delete
  25. 삭제 delete
  26. 삭제 delete
  27. 삭제 delete
  28. 삭제 delete
  29. 삭제 delete
  30. 삭제 delete
  31. 삭제 delete
  32. 삭제 delete
  33. 삭제 delete
  34. 삭제 delete
  35. 삭제 delete
  36. 삭제 delete
  37. 삭제 delete
  38. 삭제 delete
  39. 삭제 delete
  40. 삭제 delete
  41. 삭제 delete
  42. 삭제 delete
  43. 삭제 delete
  44. 삭제 delete
  45. 삭제 delete
  46. 삭제 delete
  47. 삭제 delete
  48. 삭제 delete
  49. 삭제 delete
  50. 삭제 delete
  51. 삭제 delete
  52. 삭제 delete
  53. 삭제 delete
  54. 삭제 delete
  55. 삭제 delete
  56. 삭제 delete
  57. 삭제 delete
  58. 삭제 delete
  59. 삭제 delete
  60. 삭제 delete
  61. 삭제 delete
  62. 삭제 delete
  63. 삭제 delete
  64. 삭제 delete
  65. 삭제 delete
  66. 삭제 delete
  67. 삭제 delete
  68. 삭제 delete
  69. 삭제 delete
  70. 삭제 delete
KR20060092574A 2005-10-10 2006-09-22 Verification Method from Electronic System Level to Gate Level Using Systematic Progressive Refinement KR101328263B1 (en)

Priority Applications (14)

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

Applications Claiming Priority (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
US12089665 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
US12987481 US8781808B2 (en) 2005-10-10 2011-01-10 Prediction-based distributed parallel simulation method

Publications (2)

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

Family

ID=38160520

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20060092574A 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
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

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030093569A1 (en) * 2001-11-09 2003-05-15 Sivier Steven A. Synchronization of distributed simulation nodes by keeping timestep schedulers in lockstep
KR20050059985A (en) * 2003-12-16 2005-06-21 양세양 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

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030093569A1 (en) * 2001-11-09 2003-05-15 Sivier Steven A. Synchronization of distributed simulation nodes by keeping timestep schedulers in lockstep
KR20050059985A (en) * 2003-12-16 2005-06-21 양세양 Performance improvement apparatus for hardware-assisted verification using massive memory and compilation avoidance and its verification method using the same
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
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

Also Published As

Publication number Publication date Type
KR20070039857A (en) 2007-04-13 application

Similar Documents

Publication Publication Date Title
Rashinkar et al. System-on-a-chip verification: methodology and techniques
Martin et al. ESL design and verification: a prescription for electronic system level methodology
US6421818B1 (en) Efficient top-down characterization method
US6295636B1 (en) RTL analysis for improved logic synthesis
US6687882B1 (en) Methods and apparatuses for non-equivalence checking of circuits with subspace
US6289498B1 (en) VDHL/Verilog expertise and gate synthesis automation system
US6263483B1 (en) Method of accessing the generic netlist created by synopsys design compilier
US6353915B1 (en) Methods for evaluating systems of electronic components
Bhatnagar Advanced ASIC Chip Synthesis: Using Synopsys® Design CompilerTM Physical CompilerTM and PrimeTime®
US5572437A (en) Method and system for creating and verifying structural logic model of electronic design from behavioral description, including generation of logic and timing models
Coelho The VHDL handbook
US6993469B1 (en) Method and apparatus for unified simulation
US6658628B1 (en) Developement of hardmac technology files (CLF, tech and synlib) for RTL and full gate level netlists
US7206967B1 (en) Chip debugging using incremental recompilation and register insertion
US6378123B1 (en) Method of handling macro components in circuit design synthesis
US6898770B2 (en) Split and merge design flow concept for fast turnaround time of circuit layout design
US5544067A (en) Method and system for creating, deriving and validating structural description of electronic system from higher level, behavior-oriented description, including interactive schematic design and simulation
US6530073B2 (en) RTL annotation tool for layout induced netlist changes
Bricaud Reuse methodology manual: for system-on-a-chip designs
Kumar et al. Profile-driven behavioral synthesis for low-power VLSI systems
US7363610B2 (en) Building integrated circuits using a common database
US6058492A (en) Method and apparatus for design verification using emulation and simulation
US6877139B2 (en) Automated approach to constraint generation in IC design
US20050268268A1 (en) Methods and systems for structured ASIC electronic design automation
US20080306721A1 (en) Dynamic-Verification-Based Verification Apparatus Achieving High Verification Performance and Verification Efficiency and the Verification Methodology Using the Same

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