KR20060101127A - Efficient functional verification apparatus in esl design methodology, and the verification method using the same - Google Patents

Efficient functional verification apparatus in esl design methodology, and the verification method using the same Download PDF

Info

Publication number
KR20060101127A
KR20060101127A KR1020050033876A KR20050033876A KR20060101127A KR 20060101127 A KR20060101127 A KR 20060101127A KR 1020050033876 A KR1020050033876 A KR 1020050033876A KR 20050033876 A KR20050033876 A KR 20050033876A KR 20060101127 A KR20060101127 A KR 20060101127A
Authority
KR
South Korea
Prior art keywords
simulation
duv
design
verification
design objects
Prior art date
Application number
KR1020050033876A
Other languages
Korean (ko)
Inventor
양세양
Original Assignee
양세양
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 양세양 filed Critical 양세양
Publication of KR20060101127A publication Critical patent/KR20060101127A/en

Links

Images

Classifications

    • DTEXTILES; PAPER
    • D06TREATMENT OF TEXTILES OR THE LIKE; LAUNDERING; FLEXIBLE MATERIALS NOT OTHERWISE PROVIDED FOR
    • D06FLAUNDERING, DRYING, IRONING, PRESSING OR FOLDING TEXTILE ARTICLES
    • D06F57/00Supporting means, other than simple clothes-lines, for linen or garments to be dried or aired 
    • D06F57/02Supporting means, other than simple clothes-lines, for linen or garments to be dried or aired  mounted on pillars, e.g. rotatably
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47FSPECIAL FURNITURE, FITTINGS, OR ACCESSORIES FOR SHOPS, STOREHOUSES, BARS, RESTAURANTS OR THE LIKE; PAYING COUNTERS
    • A47F5/00Show stands, hangers, or shelves characterised by their constructional features
    • A47F5/10Adjustable or foldable or dismountable display stands
    • A47F5/13Adjustable or foldable or dismountable display stands made of tubes or wire
    • A47F5/135Adjustable or foldable or dismountable display stands made of tubes or wire adapted for regular transport to a display area
    • A47F5/137Adjustable or foldable or dismountable display stands made of tubes or wire adapted for regular transport to a display area having wheels
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09FDISPLAYING; ADVERTISING; SIGNS; LABELS OR NAME-PLATES; SEALS
    • G09F23/00Advertising on or in specific articles, e.g. ashtrays, letter-boxes

Abstract

본 발명은 설계된 매우 복잡한 디지털 시스템의 시스템 수준에서의 설계 검증을 위한 효율적으로 수행하는 검증 장치와 이를 이용한 효과적인 검증 방법에 관한 것이다.The present invention relates to an efficient verification apparatus for design verification at the system level of a very complex digital system designed and an effective verification method using the same.

본 발명에서는 임의의 컴퓨터에서 수행되어지는 본 발명의 검증 소프트웨어로 하여금 설계 코드에 부가적인 코드나 부가적인 회로를 추가하고, 필요시에는 원 설계 코드를 추상화 수준이 높은 다른 코드로 본 발명의 검증 소프트웨어를 사용한 자동화된 방식내지는 수동적 방식을 통한 모델링 과정을 통하여 모델링하여 1회 이상의 시뮬레이션을 수행하게 한다. 시뮬레이션 수행은 추상화 수준이 높은 설계 코드를 이용하는 앞단 시뮬레이션과 추상화 수준이 낮은 후단 시뮬레이션으로 나누어지며, 앞단 시뮬레이션의 결과를 효과적으로 이용하는 후단 시뮬레이션은 1 이상의 컴퓨터에서 수행되는 1 회 이상의 시뮬레이션을 1 이상의 시뮬레이터를 이용하여 순차적 수행을 가능하게 할뿐만 아니라, 네트워크 상에서 연결된 2 이상의 컴퓨터에서 돌아가는 2 이상의 시뮬레이터를 이용하여 상호 완전 독립적인 병렬적 수행도 가능하게 함으로서 전체 검증 시간과 검증 비용의 대폭적인 단축을 가능하게 하고, 검증의 효율성을 크게 높일 수 있게 한다.In the present invention, the verification software of the present invention, which is performed on any computer, adds additional code or additional circuits to the design code, and, if necessary, converts the original design code into another code having high abstraction level. Automated method using or manual modeling through the modeling process to perform one or more simulations. Simulation execution is divided into leading simulation using high level of abstraction design code and lower simulation level of low level of abstraction. The latter simulation which uses the result of leading simulation effectively uses one or more simulations on one or more computers. In addition to enabling sequential execution, two or more simulators running on two or more computers connected to the network can also be used to perform parallel execution completely independent of each other, thereby significantly reducing overall verification time and verification cost. It can greatly increase the efficiency of verification.

Description

ESL 설계 방식에서의 효과적인 함수적 설계 검증 장치 및 이를 이용한 검증 방법{Efficient Functional Verification Apparatus in ESL Design Methodology, and the Verification Method Using the Same}Effective Functional Verification Apparatus in ESL Design Methodology, and the Verification Method Using the Same}

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

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

도3 은, VP의 구성 일 예를 대응되는 DUV 일 예와 비교하여서 개략적으로 도시한 도면.3 is a schematic illustration of an example of the configuration of a VP in comparison with the corresponding DUV example;

도4 는, s-VP의 시뮬레이션 결과를 이용하여서 DUV에 대한 시뮬레이션을 병렬적으로 수행하는 상황의 일 예를 개략적으로 도시한 도면.4 is a diagram schematically showing an example of a situation in which a simulation for a DUV is performed in parallel using a simulation result of s-VP.

도5 는, t-VP의 시뮬레이션 결과를 이용하여서 DUV에 대한 시뮬레이션을 병렬적으로 수행하는 상황의 일 예를 개략적으로 도시한 도면.5 is a diagram schematically showing an example of a situation in which a simulation for a DUV is performed in parallel by using a simulation result of t-VP.

도6 은, t-VP의 시뮬레이션 결과를 이용하여서 DUV에 대한 시뮬레이션을 병렬적으로 수행하는 상황의 또 다른 일 예를 개략적으로 도시한 도면.FIG. 6 schematically illustrates another example of a situation in which a simulation for a DUV is performed in parallel using a simulation result of t-VP. FIG.

도7 은, 도2 와 같은 장치를 이용하고 s-VP의 시뮬레이션 결과를 이용하여서 DUV에 대한 설계 검증을 신속하게 수행하는 과정을 개략적으로 도시한 도면.FIG. 7 is a schematic diagram illustrating a process of quickly performing design verification for a DUV using the apparatus as shown in FIG. 2 and using simulation results of s-VP. FIG.

도8 은, 도2 와 같은 장치를 이용하고 s-VP의 시뮬레이션 결과를 이용하여서 DUV에 대한 설계 검증을 신속하게 수행하는 또 다른 과정을 개략적으로 도시한 도면.FIG. 8 schematically illustrates another process of quickly performing design verification for a DUV using the apparatus as shown in FIG. 2 and using simulation results of s-VP.

도9 는, 도2 와 같은 장치를 이용하고 t-VP의 시뮬레이션 결과를 이용하여서 DUV에 대한 설계 검증을 신속하게 수행하는 과정을 개략적으로 도시한 도면.FIG. 9 is a schematic diagram illustrating a process of quickly performing design verification for a DUV using the apparatus as shown in FIG. 2 and using simulation results of t-VP. FIG.

도10 은, 도2 와 같은 장치를 이용하고 t-VP의 시뮬레이션 결과를 이용하여서 DUV에 대한 설계 검증을 신속하게 수행하는 또 다른 과정을 개략적으로 도시한 도면.FIG. 10 is a schematic illustration of another process of quickly performing design verification for a DUV using the same device as in FIG. 2 and using the simulation results of t-VP. FIG.

도11 은, 도2 와 같은 장치를 이용하고 t-VP의 시뮬레이션 결과를 이용하여서 DUV에 대한 설계 검증을 신속하게 수행하는 또 다른 과정을 개략적으로 도시한 도면.FIG. 11 is a schematic illustration of another process of quickly performing design verification for a DUV using the device as shown in FIG. 2 and using the simulation results of t-VP. FIG.

도12 는, (a) 원 설계 코드로부터, (b) 이를 분석하여서, (c) s-VP를 자동적으로 생성하는 과정의 일 예를 개략적으로 도시한 도면.Figure 12 is a schematic illustration of an example of a process of (a) from the original design code, (b) analyzing it, and (c) automatically generating s-VP.

〈도면의 주요부분에 대한 부호의 설명〉<Explanation of symbols for main parts of drawing>

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

35 : 컴퓨터 36 : VP35: computer 36: VP

37 : VP를 나타내는 설계객체 38 : 설계블럭을 나타내는 설계객체37: Design object representing VP 38: Design object representing Design Block

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

40 : DUV를 나타내는 설계객체40: design object representing the DUV

본 발명은 전자적 시스템 수준(Electronic System Level: 앞으로 ESL로 약칭함)에서의 설계를 검증하는 기술에 관한 것으로, 설계된 수백만 게이트급 이상의 디지털 시스템을 검증하고자 하는 경우에 검증의 성능과 효율성을 증가시키는 검증 장치 및 이를 이용한 검증 방법에 관한 것이다.TECHNICAL FIELD The present invention relates to a technique for verifying a design at an electronic system level (abbreviated as ESL in the future). An apparatus and a verification method using the same.

최근에 집적회로의 설계 및 반도체 공정기술이 급격하게 발달함에 따라 디지털 회로 내지는 디지털 시스템 설계의 규모가 최소 수백만 게이트급에서 수천만 게이트급까지 커짐은 물론 그 구성이 극히 복잡해지고 있는 추세이고, 이와 같은 추세는 계속적으로 확대되고 있는 추세로 가까운 미래에 일억 게이트급 이상의 설계도 예상되고 있다. 그러나, 시장에서의 경쟁은 더욱 더 치열해지므로 빠른 시간 내에 우수한 제품을 개발하여야만 함으로 설계 기간의 단축은 제품의 성공을 결정하는 매우 중요한 요소로 되어져 버렸다. 따라서 최근의 칩 설계에서는 ESL 설계 기법이 새로운 설계 방식으로 산업체에서 주목을 받고 있다. 이와 같은 ESL 설계 기법을 적용하여 설계되는 칩들은 대부분이 SOC(System On a Chip)인데, 이 SOC는 1개 이상의 프로세서 코어들 가지고 있음으로 이 SOC 칩 설계와 더불어서 이 칩을 구동시키는 소프트웨어의 개발도 동시에 수행되어져야만 한다. 따라서, 하드웨어의 설계와 동시에 소프트웨어 개발을 진행시키기 위하여서 해당 하드웨어를 소프트웨어적으로 모델링한 가상 플랫폼(Virtual Platform, 앞으로 VP로 약칭함)을 만들어서 사용하는 것이 추세인데, 이는 수행가능한 스펙(executable specification)의 역할도 수행한다. 이 VP는 소프트웨어를 개발할 수 있을 정도의 빠른 수행 속도가 제일 중요함으로 Verilog나 VHDL과 같은 언어를 이용하여서 레지스터전송수준(RTL)에서 모델링하지 않고, C/C++ 내지는 SystemC와 같은 언어를 이용하여서 RTL 보다 추상화 수준이 높은 트란젝션(transaction) 수준 내지는 알고리즘 수준에서 모델링하고 있다. 그러나 합성 기술의 한계로 인하여서 이와 같이 트란젝션 수준에서 모델링된 VP를 직접 이용하여 칩을 구현하는 것이 아니고, 칩을 구현하는 것은 별도의 RTL에서 코딩된 설계를 이용하여 칩을 구현하는 것이 일반적이다.With the recent rapid development of integrated circuit design and semiconductor process technology, the scale of digital circuits or digital system designs has grown from at least millions of gates to tens of millions of gates, and its composition has become extremely complicated. Is continuing to expand, with more than 100 million gate designs expected in the near future. However, competition in the market has become more intense, and the need to develop superior products in a short time has led to shorter design periods, which has become a very important factor in determining product success. Therefore, in recent chip designs, the ESL design technique is attracting attention from the industry as a new design method. Most chips designed using this ESL design technique are system on a chip (SOC), which has one or more processor cores. It must be done at the same time. Therefore, in order to proceed with the software development at the same time as the design of the hardware, the trend is to create and use a virtual platform (hereinafter, referred to as VP) that modeled the hardware in software, which is an executable specification. It also plays a role. The VP is fast enough to develop software, so it is important not to model at the register transfer level (RTL) using languages such as Verilog or VHDL, but rather than RTL using languages such as C / C ++ or SystemC. Modeling is done at the level of transaction or algorithm at high abstraction level. However, due to the limitation of the synthesis technology, it is not common to implement a chip using VP modeled at the transaction level directly, and it is common to implement a chip using a design coded in a separate RTL. .

그런데, 이와 같은 최근의 SOC 칩 설계에서도 제일 시간이 많이 소요되는 것은 칩 설계 검증으로 전체 설계 시간에서 최대 70%까지의 시간을 차지하게 되어서 이 과정이 전체 설계의 병목으로 작용하고 있는데, 이의 주된 이유는 ESL 설계에서도 하드웨어의 설계 검증은 기존의 상황과 달라진 것이 없이 동일한 방법들을 통하여 진행되고 있기 때문이다.However, the most time consuming time in such a recent SOC chip design is that chip design verification takes up to 70% of the total design time, and this process is a bottleneck for the overall design. In the ESL design, the hardware design verification is carried out through the same method without any change from the existing situation.

SOC 칩 설계에서는 기존과 같이 설계하는 대상이 두 가지가 있는데, 그 하나는 DUV(Design Under Verification)이고, 또 다른 하나는 테스트벤치(testbench, 앞으로는 이를 TB로 약칭함)이다. DUV는 궁극적으로 반도체 제조 공정을 거쳐서 칩으로 만들어지는 설계 대상이고, 테스트벤치는 구현된 해당 칩이 장착되어서 동작하는 주변상황을 모델링한 것으로서 DUV의 시뮬레이션에 사용된다. DUV를 시뮬레이션을 통하여 검증하고자 하는 경우에 테스트벤치가 DUV에 입력을 인가하고 인가된 입력으로 DUV에서 출력되는 결과를 받아들여서 처리하는 것이 일반적이다. 설명의 편의성을 위하여 앞으로 DUV는 최종적으로 칩으로 구현하기 위한 설계로 통상 RTL로 코딩된 설계 객체이며, VP는 RTL보다 상위 수준(예로, 트란젝션 수준)에서 모델 링된 모델로 정의한다. 이들 DUV와 테스트벤치는 일반적으로 계층적인 구조로 내부에 다양한 1 이상의 하위모듈들을 가지고 있는데, 이들 하위모듈 각각을 설계 블럭이라고 할 수 있고, 설계 블록 내부에는 설계 모듈들이 존재하고, 설계 모듈 내부에는 서브모듈들이 존재한다. 이와 같은 설계 블록들, 내지는 설계 모듈들, 내지는 서브모듈들이나 DUV, 그리고 테스트벤치 각각이나 이들의 조합들을 모두 설계객체(design object)들이라고 지칭하기로 한다.In SOC chip design, there are two targets to design as before, one is DUV (Design Under Verification) and the other is testbench (abbreviated as TB). The DUV is the design target ultimately made into a chip through the semiconductor manufacturing process, and the testbench is used to simulate the DUV by modeling the ambient conditions in which the chip is implemented. When a DUV is to be verified by simulation, it is common for the test bench to apply an input to the DUV and accept and process the result output from the DUV with the authorized input. For the sake of convenience, in the future, DUV is a design object ultimately implemented as a chip, and is a design object coded in RTL, and VP is defined as a model modeled at a higher level (eg, transaction level) than RTL. These DUVs and testbenches are generally hierarchical and have one or more submodules inside them. Each of these submodules can be called a design block, and there are design modules inside the design block. Modules exist. Such design blocks, or design modules, or submodules, DUVs, and test benches, or combinations thereof, are all referred to as design objects.

VP 모델링 방법에는 두 가지가 있다. 첫 번째는 DUV에 존재하는 상태정보(DUV내의 모든 기억소자들 - 기억소자는 플립플롭이나 래치, 그리고 조합루프가 있는 경우에는 조합루프에 존재하는 신호선까지를 포함 - 혹은 이들은 모델링한 모델들의 값)를 정의하기 위한 모든 변수들이나 신호선들만을 VP에서도 동일하게 갖도록 모델링 하는 것이다. 이와 같은 첫 번째 모델 기법의 장점은 DUV에서 자동화된 방법을 통하여 VP 모델을 생성할 수 있는 것인데, 단점으로는 RTL 수준의 DUV와 비교하여 모델링된 VP의 실행 속도의 증가가 제한적이라는 것이다 (이와 같은 방식을 통하여 생성된 모델을 s-VP라고 칭하기로 한다). 일반적으로 DUV는 계층 구조를 가지고 있는 것이 일반적인데, 두 번째는 VP 모델이 DUV의 계층 구조를 계층 최상위에서 일정 단계까지는 DUV와 같은 계층 구조를 가지고 있는 것이다. 예를 든다면, DUV에 최상위인 시스템, 시스템 하위에 블록, 블록 하위에 모듈의 3 단계의 계층 구조가 존재하는 경우에 VP는 최상위인 시스템, 시스템 하위에 블록의 2 단계의 계층 구조가 존재하게 되고, DUV의 시스템과 VP의 시스템, DUV의 각 블록과 VP의 대응되는 각 블록은 구조적으로 1:1로 대응된다 (도 3 참조). 이와 같은 두 번째 모 델 기법의 장점은 RTL 수준의 DUV와 비교하여 VP의 실행 속도를 매우 높일 수 있는 것이지만, 단점으로는 자동화된 방식을 통하여 모델을 생성시키는 것이 어렵기 때문에 주로 수동 방식으로 VP를 생성시키게 된다는 것이다 (이와 같은 방식을 통하여 생성된 모델을 t-VP라고 칭하기로 한다).There are two methods of VP modeling. The first is the state information present in the DUV (all memory units in the DUV, including the flip-flops or latches, and, if there is a combined loop, the signal lines present in the combined loop-or these are the values of the models modeled). This is to model all variables or signal lines to define the same in VP. The advantage of this first modeling technique is that the VP model can be generated by an automated method in the DUV. The disadvantage is that the increase in the execution speed of the modeled VP is limited compared to the DTL at the RTL level. The model generated through the method will be referred to as s-VP). In general, the DUV has a hierarchical structure. The second is that the VP model has the same hierarchical structure as the DUV from the top of the hierarchy to a certain level. For example, if there is a three-level hierarchy of systems at the top of the DUV, a block at the bottom of the system, and a module at the bottom of the block, then the VP is a system of the top level, a two-level hierarchy of blocks at the bottom of the system. The system of the DUV and the system of the VP, each block of the DUV and each corresponding block of the VP correspond structurally in 1: 1 (see FIG. 3). The advantage of this second model approach is that the VP can run very fast compared to the RTL-level DUV, but the disadvantage is that it is difficult to create the model in an automated fashion, which is why the VP is usually used manually. This model is called t-VP.

따라서, 본 발명의 목적은 SOC 설계에서 병목으로 작용하고 있는 하드웨어 검증 내지는 하드웨어/소프트웨어 동시검증을 신속하게 수행하기 위한 시뮬레이션의 성능 및 효율성을 크게 향상시키는 시뮬레이션 기반의 설계 검증 장치 및 이를 이용한 설계 검증 방법을 제공함에 있다.Accordingly, an object of the present invention is a simulation-based design verification apparatus and a design verification method using the same, which greatly improves the performance and efficiency of the simulation for quickly performing hardware verification or hardware / software simultaneous verification that is a bottleneck in SOC design. In providing.

상기 목적들을 달성하기 위하여, 본 발명에 따른 설계 검증 장치는 검증 소프트웨어와 1 이상의 시뮬레이터가 인스톨된 1 이상의 컴퓨터로 구성된다. 검증 소프트웨어는 컴퓨터에서 실행되며, 만일 상기 설계 검증 장치에 2 이상의 컴퓨터들이 있는 경우에는 이들 2 이상의 컴퓨터는 네트워크로 연결되어져서 컴퓨터들 간에 파일들의 이동을 네트워크를 통하여 가능하게 한다. 상기 1 이상의 시뮬레이터는 이벤트-구동 시뮬레이터로만 구성될 수도 있고, 혹은 이벤트-구동 시뮬레이터와 사이클-기반 시뮬레이터로 같이 구성될 수도 있고, 혹은 사이클-기반 시뮬레이터로만 구성될 수도 있고, 혹은 사이클-기반 시뮬레이터와 트란젝션-기반 시뮬레이터로 같이 구성될 수도 있고, 혹은 이벤트-구동 시뮬레이터와 사이클-기반 시뮬레이터와 트란젝션-기반 시뮬레이터로 같이 구성될 수도 있다.In order to achieve the above objects, the design verification apparatus according to the present invention comprises one or more computers in which verification software and one or more simulators are installed. The verification software runs on a computer, and if there are two or more computers in the design verification device, these two or more computers are networked to enable the movement of files between the computers via the network. The one or more simulators may consist solely of event-driven simulators, or may consist of both event-driven simulators and cycle-based simulators, or may consist solely of cycle-based simulators, or cycle-based simulators and tran It can be configured as a projection-based simulator, or as an event-driven simulator, a cycle-based simulator, and a transaction-based simulator.

VP를 이용하는 ESL 설계에서의 하드웨어 검증이나 하드웨어/소프트웨어 동시검증(HW/SW co-verification)을 신속하게 수행하기 위해여 추상화가 높은 수준에서의 VP를 실행한 결과를 활용하여서 추상화가 낮은 수준에서의 DUV에 대한 설계 검증을 수행하게 된다. 구체적으로 설계 검증을 위한 시뮬레이션 수행은 추상화 수준이 높은 VP를 이용하는 앞단 시뮬레이션과 추상화 수준이 낮은 DUV를 이용하는 후단 시뮬레이션으로 나누어지며, 앞단 시뮬레이션의 결과를 효과적으로 이용하는 후단 시뮬레이션은 1 이상의 컴퓨터에서 수행되는 1 회 이상의 시뮬레이션을 1 이상의 시뮬레이터를 이용하여 순차적 수행을 가능하게 할뿐만 아니라, 네트워크 상에서 연결된 2 이상의 컴퓨터에서 돌아가는 2 이상의 시뮬레이터를 이용하여 상호 완전 독립적인 병렬적 수행도 가능하게 함으로서 전체 검증 시간과 검증 비용의 대폭적인 단축을 가능하게 하고, 검증의 효율성을 크게 높일 수 있다. 이를 구체적으로 s-VP를 사용하는 경우와 t-VP를 사용하는 경우로 구분하여서 설명하면 다음과 같다.To quickly perform hardware verification or hardware / software co-verification in an ESL design using VP, the results of running VP at a high level of abstraction are utilized. Design verification will be performed for the DUV. Specifically, simulation for design verification is divided into front-end simulation using VP with high level of abstraction and trailing-side simulation using DUV with low level of abstraction.Back-end simulation using the result of leading-edge simulation is performed once on one or more computers. The above simulations can be performed sequentially using one or more simulators, as well as parallel execution independently of each other using two or more simulators running on two or more computers connected in a network. It allows for a significant reduction and greatly increases the efficiency of verification. In detail, this is classified into a case of using s-VP and a case of using t-VP.

s-VP를 사용하여 ESL 설계를 진행하는 경우에는, s-VP를 실행시키면서 상태정보를 1 이상의 특정 시뮬레이션 시점에서 저장한다 (이를 s-VP의 상태정보라 칭하고, n 번의 시뮬레이션 시점들을 t1, t2, .., tn으로 표기하고 각 시점에서의 상태정보는 각각 S(t1), S(t2), ..., S(tn)으로 표기한다). 또한, 경우에 따라서는 s-VP로 인가되는 모든 입력들과, 1 이상의 특정 내부 신호선들(1 이상의 특정 내부 신호선들까지 탐침하는 것이 필요한 상황은 1 이상의 블랙박스 블럭들을 s-VP에 이용하는 경우이며, 블랙박스 블럭들은 추후에 설명함)을 시뮬레이션 전 구간에 걸쳐 서 지속적으로 탐침하여 저장하는데, 탐침된 값들은 1 이상의 구간별(총 구간수는 상기 상태정보 저장 시점보다 1개가 많음)로 나누어서 저장한다 (이를 s-VP의 입력정보라 칭하고, I(t0), I(t1), I(t2), ..., I(tn)로 표기한다). 시뮬레이션 전 구간에 걸쳐서 이루어지는 상기의 탐침은 사이클 기반으로 이루어질 수 있거나, 혹은 트란젝션 기반으로 이루어 질 수 있거나, 혹은 이벤트 기반으로 이루어 질 수 있다.In the case of designing an ESL using s-VP, while executing s-VP, state information is stored at one or more specific simulation time points (this is called state information of s-VP, and n simulation time points are t1 and t2). , .., tn and state information at each time point is represented by S (t1), S (t2), ..., S (tn)). In some cases, all inputs applied to the s-VP and one or more specific internal signal lines (a situation where it is necessary to probe one or more specific internal signal lines are used when one or more black box blocks are used for the s-VP). , Black box blocks will be described later) and continuously probed and stored over the entire simulation section, and the probed values are divided and stored by one or more sections (the total number of sections is one more than the state information storage time point). (This is referred to as input information of s-VP and denoted as I (t0), I (t1), I (t2), ..., I (tn)). The probe made over the entire simulation section may be cycle based, transaction based, or event based.

이상과 같이 s-VP를 매우 빠른 시뮬레이션 속도로 실행시키면서 얻어진 S(t1), S(t2), ..., S(tn)과 경우에 따라서는 I(t0), I(t1), I(t2), ..., I(tn)까지를 DUV 검증에 이용하게 되면 RTL이나 게이트 수준에서 수행되는 DUV의 검증 시간을 크게 단축시키는 것이 가능하다. 이와 같은 검증 시간 단축은 크게 두 가지 이유에서 가능하다. 첫째로는, S(t1), S(t2), ..., S(tn)과 경우에 따라서는 I(t0), I(t1), I(t2), ..., I(tn)까지를 DUV 검증에 이용하게 되면 특정 검증 구간에서만의 DUV에 대한 시뮬레이션이 가능(도 4 참조)할 뿐만 아니라 (예로, 시뮬레이션 시에 I(tn)과 S(tn)을 이용하여서 우선 DUV의 초기 상태정보를 S(tn)으로 설정하고, I(tn)을 DUV에 인가하면서 시뮬레이션을 수행하면 1번째 구간에서부터 n번째 구간까지의 시뮬레이션은 생략하고 제일 마지막 구간인 n+1번째 구간만 시뮬레이션이 가능함), 이들 2 이상의 구긴에서의 시뮬레이션을 2 이상의 시뮬레이터들을 이용하여서 병렬적으로 수행(도 5 참조)할 수 있음으로 DUV 검증 시간을 크게 단축시킬 수 있다. 즉, n+1개의 HDL(Hardware Description Language) 시뮬레이터(예로 Synopsys의 VCS, 내지는 Cadence의 NC-Verilog, 내지는 Mentor의 ModelSim)가 n+1 의 컴퓨터에 인스톨되어 있다고 가정한다면, 1번째 구간은 첫 번째 컴퓨터와 HDL 시뮬레이터를 이용하여서 DUV에 대한 시뮬레이션을 I(t0)를 입력으로 하고 DUV의 원 초기조건(이를 S(t0)로 표기)으로써 시뮬레이션 하면서, 이와 동시에 병렬적으로 2번째 구간은 두 번째 컴퓨터와 HDL 시뮬레이터를 이용하여서 DUV에 대한 시뮬레이션을 I(t1)를 입력으로 하고 DUV의 초기 상태정보를 S(t1)으로 설정하여 시뮬레이션 하면서, 이들과 동시에 병렬적으로 3번째 구간은 두 번째 컴퓨터와 HDL 시뮬레이터를 이용하여서 DUV에 대한 시뮬레이션을 I(t2)를 입력으로 하고 DUV의 초기 상태정보를 S(t2)으로 설정하여 시뮬레이션 하는 등을 n+1번째 구간까지 하여서 n+1번째 구간은 n+1번째 컴퓨터와 HDL 시뮬레이터를 이용하여서 DUV에 대한 시뮬레이션을 I(tn)를 입력으로 하고 DUV의 초기 상태정보를 S(tn)으로 설정하여 다른 구간들과 병렬적으로 시뮬레이션 하게 되면, DUV을 이용한 전체 구간에 대한 시뮬레이션을 신속하게 수행하는 것이 가능하게 된다. 둘째로는, s-VP를 이용한 시뮬레이션 결과와 DUV를 이용한 시뮬레이션 결과를 DUV을 이용한 시뮬레이션 실행 도중에 실시간으로 비교하는 것이 가능함으로 이 두개의 시뮬레이션 결과가 불일치하는 상황이 발견되는 즉시에 DUV에 대한 시뮬레이션을 중시하고, 불일치의 원인 분석을 통한 디버깅을 즉각적으로 수행할 수 있음으로 전체의 검증 시간을 단축시키게 된다. 이와 같은 전체 과정은 본 발명에 따른 설계 검증 장치의 검증 소프트웨어에 의하여 자동화된 방식으로 준비되고 실행된다.As mentioned above, S (t1), S (t2), ..., S (tn) obtained by executing s-VP at a very fast simulation speed and in some cases I (t0), I (t1), I ( By using t2), ..., I (tn) for DUV verification, it is possible to significantly shorten the verification time of DUV performed at the RTL or gate level. This shortening of verification time is possible for two reasons. Firstly, S (t1), S (t2), ..., S (tn) and in some cases I (t0), I (t1), I (t2), ..., I (tn) When used for the DUV verification, not only the simulation of the DUV in a specific verification interval is possible (see FIG. 4), but also (the initial state of the DUV by using I (tn) and S (tn) during the simulation). If the information is set to S (tn) and I (tn) is applied to the DUV, the simulation is skipped from the first section to the nth section, and only the last section, n + 1 section, can be simulated.) In addition, the simulation on these two or more spheres can be performed in parallel using two or more simulators (see FIG. 5), thereby greatly reducing the DUV verification time. That is, assuming that n + 1 HDL (Hardware Description Language) simulators (eg Synopsys VCS, or Cadence NC-Verilog, or Mentor ModelSim) are installed on the n + 1 computer, the first section is the first Using a computer and an HDL simulator, the simulation of the DUV is simulated with I (t0) as the input and the initial initial condition of the DUV (denoted as S (t0)), at the same time the second section in parallel with the second computer. Using the HDL simulator and simulation of the DUV with I (t1) as input and the initial state information of the DUV as S (t1), the 3rd section is paralleled with the second computer and HDL. Using the simulator, I (t2) is input to simulate the DUV and the initial state information of the DUV is set to S (t2). In the n + 1 section, I (tn) is input to simulate the DUV using the n + 1th computer and the HDL simulator, and the initial state information of the DUV is set to S (tn) in parallel with the other sections. When the simulation is performed, it is possible to quickly perform the simulation for the entire section using the DUV. Second, it is possible to compare the simulation results with s-VP and the simulation results with DUV in real time during the simulation run with DUV, so that the simulation of DUV can be performed as soon as a discrepancy between the two simulation results is found. It can reduce the overall verification time by focusing and promptly debugging by analyzing the cause of the inconsistency. This entire process is prepared and executed in an automated manner by the verification software of the design verification apparatus according to the invention.

s-VP를 자동적으로 생성시키는 구체적인 방법의 일 예를 든다면, DUV를 RTL에서 Verilog나 VHDL과 같은 HDL 내지는 SystemVerilog나 SystemC와 같은 SDL- (System Description Language)로 RTL 수준에서 구술한 원 설계 코드에서 루프(loop)문들을 펼침으로(un-rolling) 루프문을 제거하거나 감지 리스트(sensitivity list)에서 불필요한 리스트들을 제거하거나, 경우에 따라서는 지연관련 구문을 제거하는 것과, 이와 같은 과정에서 빠른 논리변환(logic translation)이나 빠른 논리합성(logic synthesis) 과정을 통하여 설계 코드를 변환시키는 것으로 가능하다. 구체적으로는 원 RTL 수준의 코드를 파싱하고 일레보레이션(elaboration)하여 일반적 변환 라이브러리 셀(generic translation library cell)들로 이루어진 구조적 형태로 변환(단, 일반적 라이브러리 셀에 존재하는 저장소자인 플립플롭이나 래치는 D 타입만이 있고, D 타입의 플립플롭이나 래치의 입력은 데이터 입력과 타이밍 입력으로 나누고 출력은 데이터 출력인 Q-출력 하나이고, 데이터 입력은 D-출력 하나이고 타이밍 입력은 클럭입력, 비동기셋입력, 비동기리셋입력이다. 래치의 경우에는 클럭입력을 인에이블입력이라고도 한다)하여서 저장소자(플립플롭이나 래치)의 출력들과 타이밍 입력들과 주입력(primary input)들(테스트벤치에서 DUV로 들어가는 시그널들)을 정의하는 변수들과 시그널들만을 남기고 저장소자의 데이터 입력들과 나머지 중간 변수들이나 중간 시그널들을 최대한 제거하고(가능하다면 이들 저장소자의 데이터 입력들과 나머지 중간 변수들이나 중간 시그널들 모두를 제고하는 함), 필요시에는 주출력(primary output)(DUV에서 테스트벤치로 나가는 시그널들)들의 전부 내지는 일부분까지도 제거하는 것도 가능하다. 즉, DUV에 존재하는 모든 저장소자의 출력들과 타이밍 입력들을 저장소자의 데이터 입력들과 나머지 중간 변수들이나 중간 시그널들을 전혀 이용하지 않고 주입력들과 다른 저장소자의 출력만들을 이용하여 표현하거나, 혹은 최소한의 저장소자의 데이터 입력들과 나머지 중간 변수들이나 중간 시그널들을 같이 이용하여서 표현한다. 또한 주출력이 제거되지 않은 경우에는 제거되지 않은 주출력들도 주입력들과 저장소자의 출력만들을 이용하여 표현하거나, 혹은 최소한의 저장소자의 데이터 입력들과 나머지 중간 변수들이나 중간 시그널들을 같이 이용하여서 표현한다 (도 12 참조). 이와 같은 표현 과정에 사용될 수 있는 언어로는 SDL(System Description Language) 언어(예로 SystemC 코드 내지는 C++ 내지는 C 코드 내지는 SystemVerilog), 내지는 HDL(Hardware Description Language) 언어(예로 Verilog 내지는 VHDL)가 있다.As an example of a specific method of automatically generating s-VP, DUV can be used in RTL-level original design code dictated at RTL level in HDL such as Verilog or VHDL or SDL- (System Description Language) such as SystemVerilog or SystemC. Fast logical conversions in this process, such as removing loop statements by un-rolling loop statements, removing unnecessary lists from the sensitivity list, or in some cases removing delay-related statements. It is possible to convert design codes through logic translation or fast logic synthesis. Specifically, parsing and elaborating the original RTL-level code into a structural form of generic translation library cells (except flip-flops or latches, which are repositories in common library cells). Has only D type, the input of D type flip-flop or latch is divided into data input and timing input, the output is one data output Q-output, the data input is one D-output and the timing input is clock input and asynchronous. Set inputs, asynchronous reset inputs, in the case of latches, the clock inputs are also referred to as enable inputs, so that the outputs of the reservoir (flip-flop or latch) and the timing inputs and primary inputs (DUV in the test bench). The data inputs of the repository and the rest of the intermediate variables, leaving only the variables and signals that define Eliminate the signals as much as possible (enhancing both the data inputs of these repositories and the rest of the intermediate variables or intermediate signals, if possible) and, if necessary, all of the primary outputs (signals from the DUV to the test bench). It is also possible to remove even part of. That is, the outputs and timing inputs of all reservoirs present in the DUV are expressed using injection forces and outputs of other reservoirs without using any of the reservoir data inputs and the remaining intermediate variables or intermediate signals, or at least It is expressed using the data inputs of the repository and the remaining intermediate variables or intermediate signals. Also, if the main output is not removed, the main outputs that have not been removed can also be expressed using only the injection forces and the output of the reservoir, or by using the data inputs of the minimum reservoir together with the remaining intermediate variables or intermediate signals. (See FIG. 12). Languages that can be used in such an expression process include SDL (System Description Language) language (for example, SystemC code, C ++, C code, or SystemVerilog), or HDL (Hardware Description Language) language (for example, Verilog or VHDL).

이 과정에서 조합회로부를 모델링한 코드는 시뮬레이션 과정에서 제일 적은 횟수로 평가(evaluation)될 수 있도록 고려하거나, 매우 신속하게 평가될 수 있도록 하는 특수한 자료구조(예로 Binary Decision Diagram이나 Multiple-valued Decision Diagram 등)를 이용하여서 RTL 수준에서 표현하는 것도 가능하다. 뿐만 아니라, DUV에 내부의 설계 코드를 볼 수 없이 사용되는 IP(Intellectual Property) 블럭들이나 대용량의 메모리(RAM 이나 ROM 등) 블록들(이들을 통칭하여서 블랙박스 블록들이라 칭함)이 있는 경우에는, 이들 각 블록들의 출력들도 가-주입력(pseudo primary input)들로 처리하여서 주입력들과 동일하게 생각해주어야만 한다. 즉 DUV에 존재하는 모든 저장소자의 출력들과 타이밍 입력들, 내지는 특정 주출력들을 주입력들과 다른 저장소자의 출력들을 이용하여 표현하는 경우에 상기 가-주입력들도 주입력들과 동일하게 같이 사용하여서 상기 DUV에 존재하는 모든 저장소자의 출력들과 타이밍 입력들, 내지는 특정 주출력들을 표현하여야 한다.In this process, the code modeling the combined circuit part is considered to be evaluated the least number of times in the simulation process, or special data structure (e.g., binary decision diagram or multiple-valued decision diagram) that can be evaluated very quickly. ) Can be expressed at the RTL level. In addition, if the DUV has IP (Intellectual Property) blocks or large memory (RAM or ROM) blocks (collectively referred to as black box blocks) that are used without seeing the internal design code, The outputs of the blocks must also be treated as pseudo primary inputs and considered the same as the injection forces. That is, when the outputs and timing inputs of all reservoirs present in the DUV, or specific main outputs are expressed using the injection forces and the outputs of other reservoirs, the temporary main inputs are also used as the injection forces. The outputs and timing inputs of all the reservoirs present in the DUV must be represented, or specific main outputs.

이와 같은 변환 과정을 거쳐서 표현된 모델은 원 RTL 설계코드와 비교하여서 DUV에 존재하는 시그널들이나 변수들(구체적 예로, Verilog에서는 reg들이나 wire들, 그리고 VHDL에서는 signal들이나 variable들)의 수가 대폭적으로 감소할 뿐만 아니라 변환 과정에서 원 RTL 설계 코드에서 존재하는 루프문들이 펼쳐짐으로 루프문들이 제거되고 감지 리스트(sensitivity list)에 불필요한 리스트들이 존재할 수 없게 되고 모든 지연관련 구문들이 제거됨으로서 시뮬레이션 시에 훨씬 빠른 속도로 수행되어질 수가 있다. 뿐만 아니라, 이와 같이 표현된 모델 전체를 시뮬레이션에서 사이클 단위로 진행하거나, 혹은 트란젝션 단위로 진행하거나, 혹은 이벤트 단위로 진행시킴으로써 시뮬레이션의 속도를 높일 수도 있다. 뿐만 아니라, 이와 같이 표현된 모델을 부분적으로는 사이클 단위로 진행하고 나머지는 이벤트 단위로 진행하거나, 혹은 모델을 부분적으로는 트란젝션 단위로 진행하고 나머지는 이벤트 단위로 진행하거나, 혹은 모델을 부분적으로는 트란젝션 단위로 진행하고 나머지는 사이클 단위로 진행하거나, 혹은 모델을 부분적으로는 트란젝션 단위로 진행하고 부분적으로는 사이클 단위로 진행하고 나머지는 이벤트 단위로 진행시킴으로서 시뮬레이션의 속도를 추가적으로 높일 수도 있다.The model represented through this conversion process can significantly reduce the number of signals or variables (specifically regs or wires in Verilog and signals or variables in VHDL) compared to the original RTL design code. In addition, the loop statements existing in the original RTL design code are expanded during the conversion process, eliminating loop statements, unnecessary lists in the sensitivity list, and removing all delay-related statements. Can be performed. In addition, it is possible to speed up the simulation by advancing the entire model expressed in a cycle, simulation, or event unit in the simulation. In addition, the model expressed in this manner may be performed in part of a cycle and the rest may be performed in an event unit, or the model may be partially in a transaction unit, and the rest may be performed in an event unit, or a model may be partially formed. You can further speed up the simulation by proceeding in transaction units and the rest in cycles, or in part by modeling in transaction units, in part by cycles, and in the event units. .

다음에는 VP로서 t-VP를 사용하는 경우를 설명한다. t-VP는 최상의 계층에서부터 일정의 계층구조를 DUV와 동일하게 가지고 있다. 따라서 t-VP를 이용한 시뮬레이션을 고속으로 실행하는 과정에서 t-VP의 계층구조에서 존재하는 하부의 1 이상의 독립적 설계객체들 DO1, DO2, ..., DOi 각각에 존재하는 모든 입력들을 시뮬레이션 전 구간에 걸쳐서 탐침한다. 상기 해당 설계객체들 DO1, DO2, ..., DOi는 독립적이며 이를 모두 합치게 되면, 하드웨어 검증 내지는 하드웨어/소프트웨어 동시검증에서 검증을 하고자 하는 DUV의 제일 큰 설계객체 DO_t가 구성되도록 DO1, DO2, ..., DOi를 구성한다 (즉, DO_t = DO1 ∪ DO2 ∪ ... ∪ DOi이며 임의의 두개의 DOx ∩ DOy = Ø. 단, x와 y는 1, 2, ..., i중에서 하나이나 x와 y가 같을 수 없음). 시뮬레이션 전 구간에 걸쳐서 이루어지는 상기의 탐침은 사이클 기반으로 이루어질 수 있거나, 혹은 트란젝션 기반으로 이루어 질 수 있거나, 혹은 이벤트 기반으로 이루어 질 수 있는데, 각 설계객체들에 대한 입력탐침 결과를 I(DO1), I(DO2), ..., 1(DOi)라고 표기하기로 한다. 이들 t-VP에 존재하는 각 설계객체들은 DUV에도 존재하고 있는데, DUV에 대한 검증을 위해서 DUV에 존재하는 설계객체들 DO1, DO2, ..., DOi 각각을 I(DO1), I(DO2), ..., I(DOi)를 이용하여서 독립적으로 시뮬레이션 실행시키는 것이 가능하며, 이와 같은 시뮬레이션 실행은 2 이상의 HDL 시뮬레이터가 장착된 2 이상의 컴퓨터를 이용하여 병렬적으로 실행시키는 것이 가능하다 (i개의 컴퓨터에 장착된 i개의 HDL 시뮬레이터를 이용하면 병렬성을 최대화 시킬 수 있는데, 이 시뮬레이션을 t-2-s 시뮬레이션이라 칭하기로 한다). 이 i번의 t-2-s 시뮬레이션을 시뮬레이션 전체 구간에 걸쳐서 진행하면서 해당 설계객체들 DO1, DO2, ..., DOi 각각에 대하여 1 이상의 동일한 시뮬레이션 시점 t1, t2, ..., tn에서 상태정보를 저장한다. 여기시 주목할 점은 특정 시뮬레이션 시점 ts (s=1, 2, ..., n)에서 저장된 상태정보를 모두 합치게 되면 하드웨어 검증 내지는 하드웨어/소프트웨어 동시검증에서 검증을 하고자 하는 DUV의 제일 큰 설계객체 DO_t에 대한 상태정보 S(ts) (s=1, 2, ..., n)가 얻어진다는 것이다. 따라서 S(ts) (s=1, 2, ..., n)가 얻어진 이후에는 s-VP에서 이용한 기법을 그대로 적용하여서 S(t1), s(t2), ..., S(tn)를 DUV검증에 이용하게 되면 DUV의 검증 시간을 크게 단축시키는 것이 가능하다. S(ts)(s=1, 2, ..., n) 각각들로써 DO_t의 초기상태를 n회 설정하여 n 번의 시뮬레이션을 1개의 시뮬레이터를 이용하여 순차적 내지는 2 이상의 시뮬레이터들을 이용하여 병렬적으로 시뮬레이션하기 위하여 필요한 I(t0), I(t1), I(t2), ..., I(tn)들은 I(DO1), 1(DO2), ..., I(DOi)에서 필요한 값들만을 남기고 시간 구간별로 나눔으로서 얻어질 수 있다.Next, the case of using t-VP as VP will be described. t-VP has the same hierarchy as DUV with the highest hierarchy. Therefore, in the course of executing the simulation using t-VP at high speed, all the inputs in each of the one or more independent design objects DO1, DO2, ..., DOi, which exist in the hierarchical structure of t-VP, are all sections of the simulation. Probe over. The corresponding design objects DO1, DO2, ..., DOi are independent, and when all of them are combined, the DO1, DO2, DO2, so that the largest design object DO_t of the DUV to be verified in hardware verification or hardware / software simultaneous verification is configured. ..., construct DOi (that is, DO_t = DO1 ∪ DO2 ∪ ... ∪ DOi and any two DOx ∩ DOy = Ø, where x and y are one of 1, 2, ..., i) Or x and y cannot be the same). The probe, which is performed over the entire simulation section, may be cycle-based, transaction-based, or event-based. The input probe result for each design object may be I (DO1). , I (DO2), ..., 1 (DOi). Each of the design objects in these t-VPs also exists in the DUV. For the verification of the DUV, each of the design objects DO1, DO2, ..., DOi in the DUV is identified by I (DO1) and I (DO2). It is possible to run the simulation independently using I, DOi, and this simulation can be executed in parallel using two or more computers equipped with two or more HDL simulators. Using iHDL simulators equipped with a computer, the parallelism can be maximized. This simulation is called t-2-s simulation). This i t-2-s simulation is performed throughout the entire simulation section, and status information is provided at one or more identical simulation time points t1, t2, ..., tn for each of the corresponding design objects DO1, DO2, ..., DOi. Save it. In this case, it is important to note that the sum of the stored state information at a specific simulation time ts (s = 1, 2, ..., n) is the largest design object of the DUV to be verified by hardware verification or hardware / software simultaneous verification. Status information S (ts) (s = 1, 2, ..., n) for DO_t is obtained. Therefore, after S (ts) (s = 1, 2, ..., n) is obtained, S (t1), s (t2), ..., S (tn) is applied by applying the technique used in s-VP. When used for DUV verification, it is possible to significantly shorten the verification time of DUV. N (1) simulations are performed in parallel using either one simulator or two or more simulators by setting the initial state of DO_t n times with each of S (ts) (s = 1, 2, ..., n) I (t0), I (t1), I (t2), ..., I (tn) are only necessary values for I (DO1), 1 (DO2), ..., I (DOi) It can be obtained by dividing by time intervals.

따라서 s-VP를 이용하여 ESL 설계를 진행하는 경우에도, s-VP의 실행 결과를 활용하여서 DUV에 대한 검증을 신속하게 수행하는 것이 가능하다.Therefore, even when the ESL design is performed using the s-VP, it is possible to quickly verify the DUV by utilizing the execution result of the s-VP.

다음으로는 이와 같은 ESL 설계에서는 블랙박스 블럭들을 활용하는 경우에 대한 상황을 설명하기로 한다. 블랙박스 블럭들이란 BFM(Bus Functional Model)수준의 동작만(즉 입출력 포트에서의 사이클 기반의 동작 내지는 트란젝션 기반의 동작 내지는 이벤트 기반의 동작만)을 알 수 있고, 내부적으로 구체적인 구현 방식을 알 수 없는 설계객체들을 통칭하는데, 이의 예로서는 제 3 자로부터 공급된 프로세서 코어(예로 ARM 코어, Teak DSP 코어 MIPS 코어 등)나 메모리 코어 등이 있다. 이와 같은 블랙박스 블럭들은 통상적으로 암호화되어 있음으로 내부에 존재하는 상태정보를 시뮬레이션 도중에 1 이상의 원하는 시점에서 덤프하여서 저장하는 것이 불가능하다. 따라서 이와 같은 블랙박스 블럭들을 이용한 설계인 경우에는 VP를 시뮬레이션한 결과를 이용하여서 DUV 설계 검증을 신속하게 수행하고자 하려면 다음과 같은 두가지 방법 중의 하나를 사용하여야 한다.Next, the situation of using black box blocks in such an ESL design will be described. Black box blocks can only know the BFM (Bus Functional Model) level of operation (i.e., cycle-based or transaction-based or event-based operation at the I / O port), and the specific implementation method internally. Commonly referred to as design objects, such as processor cores (eg, ARM cores, Teak DSP cores, MIPS cores, etc.) or memory cores supplied from third parties. Since such black box blocks are usually encrypted, it is impossible to dump and store state information existing at one or more desired points during simulation. Therefore, in the case of the design using the black box blocks, one of the following two methods should be used to quickly perform the DUV design verification using the VP simulation results.

첫째는, DUV 설계 검증에서는 DUV 전체를 대상으로 시뮬레이션하는 경우에 DUV에 존재하는 모든 블랙박스 블럭들은 암호화된 설계코드를 사용하는 대신에 VP를 실행하면서 덤프된 블랙박스 블럭들의 BFM 덤프정보를 사용하여서 시뮬레이션을 수행하는 것이다. 블랙박스 블럭들의 BFM 덤프정보를 이용한다는 것은 해당 IP들을 테스트벤치화 시켜서 DUV 검증에 이용하는 것으로도 볼 수 있다.First, in the DUV design verification, when simulating the entire DUV, all the black box blocks in the DUV use BFM dump information of the black box blocks dumped while running VP instead of using the encrypted design code. Is to perform a simulation. Using the BFM dump information of the black box blocks can also be used to testbench the IPs for DUV verification.

둘째는, DUV 전체에서 블랙박스 블럭들만을 시뮬레이션 시간 0에서부터 일정 시점 ts (s=1, 2, ..., n)까지 수행시키는 과정에서 DUV의 나머지 설계객체들은 수행이 되지 않도록 디스에이블(disable)시키고, ts (s=1, 2, ..., n) 시점에 DUV의 나머지 설계객체들의 상태를 VP를 이용한 앞서서의 시뮬레이션 과정에서 수집된 상태정보 S(ts) (s=1, 2, ..., n)를 이용하여서 상태 설정을 수행한 후, ts (s=1, 2, ..., n) 시점 이후부터는 DUV 전체를 대상으로 하는 시뮬레이션을 수행하는 것이다 (도 6 참조). 상기에서 설명된 세과정에서 첫 번째 과정에서 시점 ts (s=1, 2, ..., n)까지 수행시키는 과정에서 DUV의 나머지 설계객체들은 수행이 되지 않도록 디스에이블시키는 구체적 방법 예들로는, DUV의 나머지 설계객체들의 모든 입력들을 HDL 시뮬레이터의 force 명령어를 사용하여 고정된 값으로 고정하여서 이벤트의 생성을 제거하거나, 혹은 추가코드를 부가하여서 DUV의 나머지 설계객체들의 모든 입력들에 이벤트가 입력되지 않도록 하는 것이다. 이와 같은 세과정의 진행은 사람의 개입이 없이 자동화된 방식으로 진행될 수 있는데, 이는 본 발명에서의 검증 소프트웨어가 설계 코드나 합성으로 생성된 게이트수준의 네트리스트에 자동화된 방식을 통하여 부가 코드나 부가 회로를 추가함으로서 가능하여 진다. 상기의 부가 코드나 부가 회로가 부가되어져서 수행되는 상황의 예를 설명하면, 부가 코드에 시뮬레이터에서 제공하는 다양한 제어능력(controllability) 방법들을 사용할 수 있는데 여기에는 HDL의 다양한 제어구문과 더불어서 시뮬레이터의 XMR(Cross Module Reference)을 이용하던지 혹은 force/release procedural statement 혹은 PLI/VPI/FLI와 같은 시스템테스크(system task) 등을 포함할 수 있다. 따라서, 본 검증 장치의 검증소프트웨어를 통하여서 상기의 부가 코드나 부가 회로가 원 설계 코드에 부가되어져서 상기의 여러 단계들을 자동적으로 수행할 수 있도록 한다. 이와 같은 실행도 병렬적으로 수행되는 것이 가능한데, 이에 대한 자세한 설명은 추후에 도면을 이용하여서 진행하기로 한다.Secondly, in the process of performing only the black box blocks from the simulation time 0 to the time point ts (s = 1, 2, ..., n) in the entire DUV, the remaining design objects of the DUV are disabled. And state information S (ts) (s = 1, 2, collected at the time ts (s = 1, 2, ..., n) obtained from the previous simulation using VP for the state of the remaining design objects of the DUV. After the state setting is performed using ..., n), after the time ts (s = 1, 2, ..., n), the simulation of the entire DUV is performed (see FIG. 6). As a specific example of how to disable the remaining design objects of the DUV in the process of performing the first process in the three processes described above to the time point ts (s = 1, 2, ..., n), DUV All the inputs of the rest of the design objects in the system are fixed to a fixed value using the force command of the HDL simulator to eliminate the generation of the event, or add additional code to prevent the event from being input to all inputs of the rest of the design objects in the DUV. It is. This three-step process can be carried out in an automated manner without human intervention, which means that the verification software in the present invention can be added to additional code or additions in an automated manner to the gate-level netlist generated by design code or synthesis. This is possible by adding a circuit. To explain an example of a situation in which the additional code or the additional circuit is executed, various controllability methods provided by the simulator can be used for the additional code, which includes the XMR of the simulator along with various control syntaxes of the HDL. (Cross Module Reference) or may include force / release procedural statements or system tasks such as PLI / VPI / FLI. Therefore, the above additional code or additional circuit is added to the original design code through the verification software of the present verification device so that the above steps can be automatically performed. Such execution can also be performed in parallel, which will be described in detail later with reference to the drawings.

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

도1 은, 컴퓨터에서 운영되는 본 발명의 검증 소프트웨어와 시뮬레이터를 갖는 컴퓨터로 구성된 본 발명에 관한 설계 검증 장치의 일 예를 개략적으로 도시한 도면이다.1 is a diagram schematically showing an example of a design verification apparatus according to the present invention composed of a computer having a simulator and a verification software of the present invention running on a computer.

도2 는, 컴퓨터에서 운영되는 본 발명의 검증 소프트웨어와 2 이상의 시뮬레이터를 갖는 2 이상의 컴퓨터들과 이들 컴퓨터들을 연결하는 컴퓨터 네트워크로 구성된 본 발명에 관한 설계 검증 장치의 또 다른 일 예를 개략적으로 도시한 도면이다.Fig. 2 schematically shows another example of the design verification apparatus according to the present invention composed of the verification software of the present invention running on a computer, two or more computers having two or more simulators, and a computer network connecting these computers. Drawing.

도3 은, VP의 구성 일 예를(구체적으로는 t-VP의 구성 예를) 대응되는 DUV 일 예와 비교하여서 개략적으로 도시한 도면이다. 예에서는 VP는 DUV와 동일하게 설계블럭 B1, B2, B3, B4, B5, B6으로 구성되어져 있음을 보이고 있다. 이 중에서 B1은 블랙박스 블럭이다.3 is a diagram schematically showing an example of the configuration of the VP (specifically, an example of the configuration of t-VP) in comparison with the corresponding DUV example. The example shows that VP is composed of design blocks B1, B2, B3, B4, B5, and B6 as DUV. Of these, B1 is a black box block.

도4 는, s-VP의 시뮬레이션 결과를 이용하여서 DUV에 대한 시뮬레이션을 병렬적으로 수행하는 상황의 일 예를 개략적으로 도시한 도면이다.4 is a diagram schematically showing an example of a situation in which a simulation for a DUV is performed in parallel by using a simulation result of s-VP.

도5 는, t-VP의 시뮬레이션 결과를 이용하여서 DUV에 대한 시뮬레이션을 병렬적으로 수행하는 상황의 일 예를 개략적으로 도시한 도면이다.5 is a diagram schematically showing an example of a situation in which a simulation for a DUV is performed in parallel by using a simulation result of t-VP.

도6 은, t-VP의 시뮬레이션 결과를 이용하여서 DUV에 대한 시뮬레이션을 병렬적으로 수행하는 상황의 또 다른 일 예를 개략적으로 도시한 도면이다.FIG. 6 is a diagram schematically illustrating another example of a situation in which a simulation for a DUV is performed in parallel by using a simulation result of t-VP.

도7 은, 도2 와 같은 장치를 이용하고 s-VP의 시뮬레이션 결과를 이용하여서 DUV에 대한 설계 검증을 신속하게 수행하는 과정을 개략적으로 도시한 순서도이다.FIG. 7 is a flowchart schematically illustrating a process of quickly performing design verification for a DUV using the apparatus as shown in FIG. 2 and using simulation results of s-VP.

제 S100 단계에서, s-VP의 시뮬레이션 수행 도중에 일정 간격이나 1 이상의 특정 시뮬레이션 시점에서 블랙박스 블럭을 제외한 모든 설계객체들 내에 존재하는 상태정보를 자동적으로 저장되도록 원 s-VP의 설계 코드에 추가 코드를 부가하거나 DUV에서부터 s-VP를 자동적으로 생성시키고, 이와 더불어 추후에 DUV에 대한 시뮬레이션 수행을 병렬적으로 수행될 수 있도록 DUV의 설계 코드에 추가 코드를 부가하고, 제 S102 단계로 진행한다. 제 S102 단계에서는, 상태정보 저장 간격이나 저장 시점 설정하고 제 S104 단계로 진행한다. 제 S104 단계에서는, s-VP의 시뮬레이션 수행과 동시에 일정 간격이나 1 이상의 특정 시뮬레이션 시점에서 상태정보를 저장하고 상기 블랙박스 블럭을 제외한 모든 설계객체들 전체에 대한 입력값들을 전 시뮬레이션 구간에 걸쳐서 저장하고 제 S106 단계로 진행한다. 제 S106 단계에 서는 추가코드가 부가된 DUV를 이용하고 S104 단계에서 저장된 상태정보S(t1), S(t2), ..., S(tn)와 입력정보 I(t0), I(t1), I(t2), ..., I(tn)를 이용하여서 각 시간구간대의 DUV의 시뮬레이션을 병렬적으로 진행하고 종료하게 된다.In the step S100, during the s-VP simulation, additional code is added to the design code of the original s-VP to automatically store state information existing in all design objects except the black box block at a predetermined interval or at least one specific simulation time point. Add or add s-VP automatically from the DUV, add additional code to the design code of the DUV so that the simulation can be performed in parallel later, and proceed to step S102. In step S102, the state information storage interval or a storage time point is set, and the flow proceeds to step S104. In step S104, at the same time as performing the s-VP simulation, the state information is stored at a predetermined interval or at least one specific simulation time point, and the input values for all the design objects except the black box block are stored over the entire simulation section. Proceed to step S106. In step S106, the DUV to which the additional code is added is used, and the state information S (t1), S (t2), ..., S (tn) and the input information I (t0) and I (t1) stored in step S104. By using I (t2), ..., I (tn), the simulation of the DUV in each time period is performed in parallel and terminated.

도8 은, 도2 와 같은 장치를 이용하고 s-VP의 시뮬레이션 결과를 이용하여서 DUV에 대한 설계 검증을 신속하게 수행하는 또 다른 과정을 개략적으로 도시한 순서도이다.FIG. 8 is a flowchart schematically showing another process of quickly performing a design verification for a DUV using the apparatus as shown in FIG. 2 and using simulation results of s-VP.

제 S200 단계에서, s-VP의 시뮬레이션 수행 도중에 일정 간격이나 1 이상의 특정 시뮬레이션 시점에서 블랙박스 블럭을 제외한 모든 설계객체들 내에 존재하는 상태정보가 자동적으로 저장되도록 원 s-VP의 설계 코드에 추가 코드를 부가하거나 DUV에서부터 s-VP를 자동적으로 생성시키고, 이와 더불어 추후에 DUV에 대한 시뮬레이션 수행을 병렬적으로 수행될 수 있도록 DUV의 설계 코드에 추가 코드를 부가하고, 제 S202 단계로 진행한다. 제 S202 단계에서는, 상태정보 저장 간격이나 저장 시점을 설정하고 제 S204 단계로 진행한다. 제 S204 단계에서는, s-VP의 시뮬레이션 수행과 동시에 상태정보를 일정 간격이나 1 이상의 특정 시뮬레이션 시점에서 저장하고 상기 블랙박스 블럭을 제외한 모든 설계객체들 전체에 대한 입력값들을 전 시뮬레이션 구간에 걸쳐서 저장하고 제 S206 단계로 진행한다. 제 S206 단계에서는 추가코드가 부가된 DUV를 이용하고 S204 단계에서 저장된 상태정보 S(t1), S(t2), ..., S(tn)와 입력정보 I(t0), I(t1), I(t2), ..., I(tn)를 이용하여서 각 시간구간대의 DUV의 시뮬레이션을 병렬적으로 진행하면서 s-VP의 수행에서 얻어진 상태정보와 DUV의 수행에서 얻어진 상태정보가 동일 시뮬레이션 시간대에서 달라지 게 되는 시점 내지는 최종 시뮬레이션 시점에서 시뮬레이션을 종료하게 된다.In the step S200, during the s-VP simulation, additional code is added to the design code of the original s-VP so that the state information existing in all design objects except the black box block is automatically stored at a predetermined interval or at least one specific simulation time point. Add or add s-VP automatically from the DUV, add additional code to the design code of the DUV so that the simulation of the DUV can be performed in parallel later, and proceed to step S202. In step S202, a state information storage interval or a storage time point is set, and the flow proceeds to step S204. In step S204, at the same time as performing the s-VP simulation, the state information is stored at a predetermined interval or at least one specific simulation time point, and the input values of all the design objects except the black box block are stored over the entire simulation section. The flow proceeds to step S206. In step S206, the DUV to which the additional code is added is used, and the state information S (t1), S (t2), ..., S (tn) and the input information I (t0), I (t1), Using I (t2), ..., I (tn), in parallel with the simulation of the DUV in each time interval, the status information obtained from the s-VP performance and the DUV performance are the same simulation time zone. The simulation is terminated at the point of time different from or at the point of final simulation.

도9 는, 도2 와 같은 장치를 이용하고 t-VP의 시뮬레이션 결과를 이용하여서 DUV에 대한 설계 검증을 신속하게 수행하는 과정을 개략적으로 도시한 순서도이다.FIG. 9 is a flowchart schematically showing a process of quickly performing a design verification for a DUV using the apparatus as shown in FIG. 2 and using a simulation result of t-VP.

제 S300 단계에서, t-VP의 시뮬레이션 수행 도중에 t-VP에 존재하는 계층구조의 1 이상의 각 설계객체들에 대한 모든 입력값들을 전 시뮬레이션 구간에서 덤프하여 저장이 될 수 있도록 원 t-VP의 설계 코드에 추가 코드를 부가하거나 DUV에서부터 s-VP를 자동적으로 생성시키고, 이와 더불어 추후에 DUV에 대한 시뮬레이션 수행을 병렬적으로 수행될 수 있도록 DUV의 설계 코드에 추가 코드를 부가하고, 제 S302 단계로 진행한다. 제 S302 단계에서는 t-VP의 시뮬레이션을 진행하면서 블랙박스 블럭을 제외한 각 설계객체들 DO1, DO2, ..., DOi에 대하여서 시뮬레이션 전 구간에서 입력값들 I(DO1), I(DO2), ..., I(DOi)을 덤프하여서 저장하고 제 S304 단계로 진행한다. 제 S304 단계에서는, 상태정보 저장 간격이나 저장 시점 설정하고 제 S306 단계로 진행한다. 제 S306 단계에서는 S302 단계에시 저장된 각 설계객체들에 대한 입력정보들을 이용하여서 각 설계객체들에 대한 시뮬레이션을 병렬적으로 진행하면서 동시에 블랙박스 블럭들을 제외한 모든 설계 객체들에 대한 상태정보를 일정 간격이나 1 이상의 시뮬레이션 시점들에서 저장하고 제 S308 단계로 진행한다. 제 S308 단계에서는 제 S302 단계에서 얻어진 I(DO1), I(DO2), ..., I(DOi)과 제 S306 단계에서 얻어진 각 설계객체들 DO1, DO2, ..., DOi의 상태정보들에서부터 상태정보 S(t1), S(t2), ..., S(tn)와 입력정보 I(t0), I(t1), I(t2), ..., I(tn)를 얻고 제 S310 단계로 진행한다. 제 S310 단계에서는 추가코드가 부가 된 DUV를 이용하고 S308 단계에서 생성된 상태정보 S(t1), S(t2), ..., S(tn)와 입력정보 I(t0), I(t1), I(t2), ..., I(tn)를 이용하여서 블랙박스 블럭을 제외한 각 시간구간대의 DUV내의 설계객체들 전체 DO_t에 대한 시뮬레이션을 병렬적으로 진행하고 종료하게 된다.In step S300, during the t-VP simulation, the original t-VP is designed so that all input values of one or more design objects of the hierarchical structure existing in the t-VP can be dumped and stored in the entire simulation section. Add additional code to the code or automatically generate the s-VP from the DUV, and add additional code to the design code of the DUV so that later simulations can be performed in parallel with the DUV. Proceed. In the step S302, the input values I (DO1), I (DO2),... In the entire simulation section for the design objects DO1, DO2, ..., DOi except the black box block while the t-VP simulation is performed. .., dumps I (DOi) and stores it and proceeds to step S304. In step S304, the state information storage interval or the storage time point is set, and the flow advances to step S306. In the step S306, the simulation of each design object is performed in parallel using input information of each design object stored in the step S302, and at the same time, the state information of all the design objects except the black box blocks is periodically spaced. Or at one or more simulation time points and proceeds to step S308. In step S308, I (DO1), I (DO2), ..., I (DOi) obtained in step S302 and state information of each of the design objects DO1, DO2, ..., DOi obtained in step S306 From the state information S (t1), S (t2), ..., S (tn) and input information I (t0), I (t1), I (t2), ..., I (tn) Proceed to step S310. In step S310, the DUV to which the additional code is added is used, and the status information S (t1), S (t2), ..., S (tn) and the input information I (t0) and I (t1) generated in step S308 are used. By using I (t2), ..., I (tn), the simulation of all DO_t of design objects in the DUV in each time interval except the black box block is performed in parallel.

도10 은, 도2 와 같은 장치를 이용하고 t-VP의 시뮬레이션 결과를 이용하여서 DUV에 대한 설계 검증을 신속하게 수행하는 또 다른 과정을 개략적으로 도시한 순서도이다.FIG. 10 is a flowchart schematically showing another process of quickly performing a design verification for a DUV using the apparatus as shown in FIG. 2 and using the simulation result of t-VP.

제 S400 단계에서, t-VP의 시뮬레이션 수행 도중에 t-VP에 존재하는 계층구조의 1 이상의 각 설계객체들에 대한 모든 입력값들과 모든 출력값들까지도 전 시뮬레이션 구간에서 덤프되어져서 저장이 될 수 있도록 원 t-VP의 설계 코드에 추가코드를 부가하거나 DUV에서부터 s-VP를 자동적으로 생성시키고, 이와 더불어 추후에 DUV에 대한 시뮬레이션 수행을 병렬적으로 수행될 수 있도록 DUV의 설계 코드에 추가 코드를 부가하고, 제 S402 단계로 진행한다. 제 S402 단계에서는 t-VP의 시뮬레이션을 진행하면서 블랙박스 블럭을 제외한 각 설계객체들 DO1, DO2, ..., DOi에 대하여서 시뮬레이션 전 구간에서 입력값들 I(DO1), I(DO2), ..., I(DOi)과 출력값들 O(DO1), O(DO2), ..., O(DOi)을 각각 덤프하여서 저장하고 제 S404 단계로 진행한다. 제 S404 단계에서는, 상태정보 저장 간격이나 저장 시점 설정하고 제 S406 단계로 진행한다. 제 S406 단계에서는 S402 단계에서 저장된 각 설계객체들에 대한 입력정보들을 이용하여서 각 설계객체들에 대한 시뮬레이션을 병렬적으로 진행하면서 동시에 블랙박스 블럭들을 제외한 모든 설계 객체들에 대한 상태정보를 일정 간 격이나 1 이상의 특정 시뮬레이션 시점에서 저장하고 제 S408 단계로 진행한다. 제 S408 단계에서는 제 S402 단계에서 얻어진 I(DO1), I(DO2), ..., I(DOi)과 제 S406 단계에서 얻어진 각 설계객체들 DO1, DO2, ..., DOi의 상태정보들에서부터 상태정보 S(t1), S(t2), ..., S(tn)와 입력정보 I(t0), I(t1), I(t2), ..., I(tn)를 얻고 제 S410 단계로 진행한다. 제 S410 단계에서는 추가코드가 부가된 DUV를 이용하고 S408 단계에서 생성된 상태정보 S(t1), S(t2), ..., S(tn)와 입력정보 I(t0), I(t1), I(t2), ..., I(tn)를 이용하여서 블랙박스 블럭을 제외한 각 시간구간대의 DUV내의 설계객체들 전체 DO_t에 대한 시뮬레이션을 병렬적으로 진행하면서 DUV내의 설계객체들에 대한 출력값들을 제 S404 단계에서 저장한 t-VP에 존재하는 설계객체들에 대한 출력값들과 비교하여서 이 두개의 결과가 달라지는 시점 내지는 시뮬레이션 최종시점에서 시뮬레이션을 종료하게 된다.In the step S400, during the t-VP simulation, all input values and all output values of one or more design objects of the hierarchical structure existing in the t-VP can be dumped and stored in all simulation sections. Add additional code to the design code of the original t-VP or automatically generate s-VP from the DUV, and add additional code to the design code of the DUV so that later simulations can be performed in parallel on the DUV. The flow proceeds to step S402. In step S402, t-VP is simulated and input values I (DO1), I (DO2),..., In the entire simulation period for each of the design objects DO1, DO2, ..., DOi except the black box block. .., I (DOi) and output values O (DO1), O (DO2), ..., O (DOi) are dumped and stored, respectively, and the process proceeds to step S404. In step S404, the state information storage interval or a storage time point is set, and the flow proceeds to step S406. In the step S406, the simulation of each design object is performed in parallel using the input information of each design object stored in the step S402, and at the same time, the state information of all the design objects except the black box blocks is periodically spaced. Or at one or more specific simulation time points and proceeds to step S408. In step S408, I (DO1), I (DO2), ..., I (DOi) obtained in step S402 and state information of each of the design objects DO1, DO2, ..., DOi obtained in step S406. From the state information S (t1), S (t2), ..., S (tn) and input information I (t0), I (t1), I (t2), ..., I (tn) Proceed to step S410. In step S410, the DUV to which the additional code is added is used, and the state information S (t1), S (t2), ..., S (tn) and the input information I (t0) and I (t1) generated in step S408 are used. Output values for the design objects in the DUV while simulating all DO_t design objects in the DUV in each time interval except the black box block using, I (t2), ..., I (tn) These results are compared with the output values for the design objects existing in the t-VP stored in step S404, and the simulation is terminated at the point when these two results are different or at the end of the simulation.

도11 은, 도2 와 같은 장치를 이용하고 t-VP의 시뮬레이션 결과를 이용하여서 DUV에 대한 설계 검증을 신속하게 수행하는 또 다른 과정을 개략적으로 도시한 순서도이다.FIG. 11 is a flowchart schematically showing another process of quickly performing a design verification for a DUV using the apparatus as shown in FIG. 2 and using the simulation result of t-VP.

제 S500 단계에서, t-VP의 시뮬레이션 수행 도중에 t-VP에 존재하는 계층구조의 1 이상의 각 설계객체들 DO1, DO2, ..., DOi에 대한 모든 입력값들 I(DO1), I(DO2), ..., I(DOi)과 모든 출력값들 O(DO1), O(DO2), ..., O(DOi)까지도 전 시뮬레이션 구간에서 덤프되어져서 저장이 될 수 있도록 원 t-VP의 설계 코드에 추가 코드를 부가하거나 DUV에서부터 s-VP를 자동적으로 생성시키고, 이와 더불어 추후에 DUV에 대한 시뮬레이션 수행을 병렬적으로 수행될 수 있도록 DUV의 설계 코드에 추가 코드를 부가하고, 제 S502 단계로 진행한다. 제 S502 단계에서는 t-VP의 시뮬레이션을 진행하면서 t-VP에 존재하는 계층구조의 1 이상의 각 설계객체들에 대하여서 시뮬레이션 전 구간에서 입력값들과 출력값들을 각각 덤프하여서 저장하고 제 S504 단계로 진행한다. 제 S504 단계에서는, 상태정보 저장 간격이나 저장 시점 설정하고 제 S506 단계로 진행한다. 제 S506 단계에서는 S502 단계에서 저장된 각 설계객체들에 대한 입력정보들을 이용하여서 각 설계객체들에 대한 시뮬레이션을 병렬적으로 진행하면서 동시에 블랙박스 블럭들을 제외한 모든 설계 객체들에 대한 상태정보를 일정 간격이나 1 이상의 특정 시뮬레이션 시점에서 저장하고 제 S508 단계로 진행한다. 제 S508 단계에서는 제 S502 단계에서 얻어진 I(DO1), I(DO2), ..., I(DOi)과 제 S506 단계에서 얻어진 각 설계객체들 DO1, DO2, ..., DOi의 상태정보들에서부터 상태정보 S(t1), S(t2), ..., S(tn)와 입력정보 I(t0), I(t1), I(t2), ..., I(tn)를 얻고 제 S510 단계로 진행한다. 제 S510 단계에서는 추가코드가 부가된 DUV와 S508 단계에서 생성된 상태정보 S(t1), S(t2), ..., S(tn)와 입력정보 I(t0), I(t1), I(t2), ..., I(tn)를 이용하고 i번째 시뮬레이터를 이용하여서 시뮬레이션 시점 O에서부터 ti 시점까지는 DUV에서의 블랙박스 블럭들 전체들만에 대한 시뮬레이션을 제 S502 단계에서 덤프하여서 저장된 상기 블랙박스 블럭들 전체에 대한 입력값들로써 진행하고, ti 시점에서 DUV에서 블랙박스 블럭들을 제외한 모든 설계객체들이 제 S508 단계에서 구해진 상태정보를 가질 수 있도록 하고, ti 시점에서부터는 DUV 전체에 대한 시뮬레이션을 병렬적으로 진행하고 시뮬레이션을 종료하게 된다.In operation S500, all input values I (DO1) and I (DO2) for one or more design objects DO1, DO2, ..., DOi of the hierarchical structure existing in the t-VP during the t-VP simulation are performed. ), ..., I (DOi) and all output values O (DO1), O (DO2), ..., O (DOi) can also be dumped and stored in the entire simulation section to save the original t-VP. Adding additional code to the design code or automatically generating the s-VP from the DUV, and additionally adding the additional code to the design code of the DUV so that a simulation can be performed in parallel later on, in step S502. Proceed to In step S502, while the t-VP is simulated, the input values and output values are dumped and stored for each of one or more design objects of the hierarchical structure existing in the t-VP in the entire simulation section, and the flow proceeds to step S504. . In step S504, the state information storage interval or a storage time point is set, and the flow proceeds to step S506. In step S506, the simulation of each design object is performed in parallel using the input information of each design object stored in step S502, and at the same time, the state information of all the design objects except the black box blocks is set at a predetermined interval. At least one specific simulation time point is stored and the process proceeds to step S508. In step S508, I (DO1), I (DO2), ..., I (DOi) obtained in step S502, and state information of each of the design objects DO1, DO2, ..., DOi obtained in step S506. From the state information S (t1), S (t2), ..., S (tn) and input information I (t0), I (t1), I (t2), ..., I (tn) Proceed to step S510. In step S510, the DUV to which the additional code is added and the status information S (t1), S (t2), ..., S (tn) and the input information I (t0), I (t1), I generated in step S508 Using the (t2), ..., I (tn) and the i-th simulator using the i-th simulator from the simulation point O to ti point the simulation for the entire black box blocks in the DUV only dumped in step S502 Proceed with inputs to the entire box blocks, ensure that all design objects except the black box blocks in the DUV at ti have the state information obtained in step S508, and from ti, the simulation of the entire DUV is performed in parallel. You will then proceed and finish the simulation.

도12 는, (a)와 같은 원 설계 코드로부터, (b)와 같은 분석 과정의 결과를 이용하여서, (c)와 같은 s-VP를 자동적으로 생성하는 과정의 일 예를 개략적으로 도시한 도면이다.FIG. 12 schematically illustrates an example of a process of automatically generating an s-VP such as (c) using the results of an analytical process such as (b) from a circle design code such as (a). to be.

상술한 바와 같이, 본 발명에 따른 검증 장치 및 이를 이용한 설계 검증 방법의 목적은 초대규모급 설계를 ESL 기반에서 수행하는 경우에 VP를 이용한 시뮬레이션의 결과를 활용하여서 DUV의 검증을 신속하게 수행하는 것이 가능함으로서 전체 설계 검증의 시간을 대폭적으로 단축하고 검증의 효율성을 크게 높이는 것이 가능하다.As described above, the purpose of the verification apparatus and the design verification method using the same according to the present invention is to quickly perform the verification of the DUV by utilizing the results of the simulation using VP when performing the super scale design based on ESL. By doing so, it is possible to drastically shorten the overall design verification time and greatly increase the efficiency of verification.

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

Claims (35)

VP와 검증 소프트웨어와 1 이상의 시뮬레이터를 구비하는 설계검증 장치에 있어서,A design verification device having a VP, verification software and at least one simulator, 상기 검증 소프트웨어는 VP에 부가 코드나 부가 회로를 추가하고 DUV를 포함하는 설계 코드나 합성으로 생성된 게이트수준의 네트리스트에 자동화된 방식을 통하여 부가 코드나 부가 회로를 추가하여, VP를 이용한 앞단 시뮬레이션 단계인 1차 시뮬레이션을 수행하면서 DUV에 존재하는 1 이상의 설계객체를 대상으로하는 후단 시뮬레이션 단계인 1차 시뮬레이션 이후에 수행되는 1 회 이상의 시뮬레이션들을 시뮬레이션 구간들이나 설계 코드나 합성으로 생성된 게이트수준의 네트리스트에 존재하는 1 이상의 설계객체들에 대하여 시뮬레이션들이 이루어질 수 있도록 하는데 필요한 최소한의 정보를 상기 앞단 시뮬레이션 단계인 1차 시뮬레이션 과정에서 자동적으로 수집할 수 있도록 하고, VP를 이용한 상기 앞단 시뮬레이션 단계인 1차 시뮬레이션을 상기 최소한의 정보를 수집하면서 빠르게 수행하고, 이 수집된 정보를 이용하여 DUV에 존재하는 1 이상의 설계객체를 대상으로하는 상기 후단 시뮬레이션 단계인 1차 이후의 1회 이상의 시뮬레이션들을 신속하게 수행하는 설계 검증 장치.The verification software adds additional code or additional circuitry to the VP and adds additional code or additional circuitry in an automated fashion to the design code or synthetically generated gate-level netlist that includes the DUV, leading to simulation using VP. One or more simulations performed after the first simulation, which is a post-simulation step for one or more design objects in the DUV while performing the first-order simulation, which is a step-wise simulation. The minimum information necessary to allow simulations to be performed on one or more design objects in the list can be automatically collected in the first simulation step, the first simulation step, and the first simulation step, the first step, using VP. Remind simulation Design verification device that performs quickly while collecting minimal information and quickly performs one or more simulations after the first stage, which is the post-simulation step targeting one or more design objects existing in the DUV using the collected information. . 검증 소프트웨어와 1 이상의 시뮬레이터를 구비하는 설계검증 장치에 있어서,A design verification apparatus having verification software and at least one simulator, 상기 검증 소프트웨어는 DUV에서부터 VP를 자동화된 방식으로 생성하고, DUV를 포함하는 설계 코드나 합성으로 생성된 게이트수준의 네트리스트에 자동화된 방식을 통하여 부가 코드나 부가 회로를 추가하여서, 상기 생성된 VP를 이용한 앞단 시뮬레이션 단계인 1차 시뮬레이션을 수행하면서 DUV에 존재하는 1 이상의 설계객체를 대상으로 하는 후단 시뮬레이션 단계인 1차 시뮬레이션 이후에 수행되는 1 회 이상의 시뮬레이션들을 시뮬레이션 구간들이나 설계 코드나 합성으로 생성된 게이트수준의 네트리스트에 존재하는 1 이상의 설계객체들에 대하여 시뮬레이션들이 이루어질 수 있도록 하는데 필요한 최소한의 정보를 상기 앞단 시뮬레이션 단계인 1차 시뮬레이션 과정에서 자동적으로 수집할 수 있도록 하고, VP를 이용한 상기 앞단 시뮬레이션 단계인 1차 시뮬레이션을 상기 최소한의 정보를 수집하면서 빠르게 수행하고, 이 수집된 정보를 이용하여 DUV에 존재하는 1 이상의 설계객체를 대상으로 하는 상기 후단 시뮬레이션 단계인 1차 이후의 1회 이상의 시뮬레이션들을 신속하게 수행하는 설계 검증 장치.The verification software generates the VP from the DUV in an automated manner and adds additional code or additional circuitry in an automated manner to the design code or synthetically generated gate-level netlist that includes the DUV, thereby generating the VP. One or more simulations that are performed after the first stage simulation, which is the first stage simulation targeting the one or more design objects in the DUV while performing the first stage simulation using the first stage simulation, are generated by simulation intervals, design codes, or synthesis. The minimum information necessary to allow simulations to be performed on one or more design objects in the gate-level netlist is automatically collected in the first simulation step, the first simulation step. Step The first simulation is performed quickly while collecting the minimum information, and the collected information is used to quickly perform one or more simulations after the first stage, which is the post-simulation step for one or more design objects present in the DUV. Design verification device to perform. 시뮬레이션을 여러 개의 테스트벤치로써 수 차례 수행하여 설계 코드나 합성으로 생성된 게이트수준의 네트리스트에 존재하는 1 이상의 설계 오류들의 위치를 알아내고 이를 수정하는 설계 검증 방법에 있어서,In the design verification method of performing the simulation several times with multiple test benches to locate and correct one or more design errors in the gate-level netlist generated by the design code or synthesis, 상기 수 차례의 시뮬레이션들에서의 각각의 시뮬레이션 과정 하나 하나를 VP를 이용한 앞단 시뮬레이션 단계인 1차 시뮬레이션과 DUV에 존재하는 1 이상의 설계객체를 이용하는 후단 시뮬레이션 단계인 1차 이후의 1회 이상의 시뮬레이션들로 나누어서 수행하며, 상기 VP를 이용한 앞단 시뮬레이션 단계인 1차 시뮬레이션을 수행하면서 상기 DUV를 이용하는 후단 시뮬레이션 단계인 1차 이후의 1회 이상의 시뮬레이션들을 시뮬레이션 구간들이나 설계 코드나 합성으로 생성된 게이트수준의 네트리스트에 존재하는 1 이상의 설계객체들에 대하여 시뮬레이션들이 이루어질 수 있도록 하는데 필요한 최소한의 정보를 상기 VP를 이용하는 앞단 시뮬레이션 단계인 1차 시뮬레이션 과정에서 자동적으로 수집할 수 있도록 VP에 부가 코드나 부가 회로를 검증 소프트웨어를 이용하여 자동화된 방식으로 추가하고, 상기 VP를 이용한 앞단 시뮬레이션 단계인 1차 시뮬레이션을 상기 최소한의 정보를 수집하면서 빠르게 수행하고, 이 수집된 정보를 이용하여 상기 DUV내의 1 이상의 설계객체에 대한 후단 시뮬레이션 단계인 1차 이후의 1회 이상의 시뮬레이션들을 신속하게 수행하게 하는 검증 방법.Each one of the simulations in the above several simulations consists of one or more simulations after the first stage, which is the first stage simulation using VP and the subsequent stage simulation using one or more design objects in the DUV. A gate-level netlist generated by simulation sections, design codes, or synthesis of one or more simulations after the first stage of the first stage simulation using the VP while performing the first stage simulation using the VP. Validate additional code or additional circuitry in the VP to automatically collect the minimum information necessary to allow simulations to be performed on one or more design objects present in the first simulation phase, the first simulation step using the VP. And add it in an automated manner and quickly perform a first-order simulation, using the VP, with the minimal information collected, and use the collected information for one or more design objects in the DUV. Verification method that allows one or more simulations to be performed quickly after the first stage, which is the post-simulation stage. 제 1 항 내지는 제 2 항 내지는 제 3 항에 있어서,The method according to claim 1 or 2 or 3, 상기 DUV내의 1 이상의 설계객체가 DUV 전체를 포함하는 검증 방법.At least one design object in the DUV includes the entire DUV. 제 1 항 내지는 제 2 항 내지는 제 3 항에 있어서,The method according to claim 1 or 2 or 3, 상기 DUV내의 1 이상의 설계객체가 DUV 내의 블랙박스 블럭들을 제외한 설계객체가 되는 검증 방법.At least one design object in the DUV is a design object excluding black box blocks in the DUV. 제 3 항에 있어서,The method of claim 3, wherein VP를 상기 검증 소프트웨어를 이용하여서 자동적으로 생성시키는 검증 방법.Verification method for automatically generating VP using the verification software. 제 1 항 내지는 제 2 항 내지는 제 3 항에 있어서,The method according to claim 1 or 2 or 3, 상기 VP를 이용한 앞단 시뮬레이션 단계인 1차 시뮬레이션에서 수집되는 상기 최소한의 정보가 DUV의 상태정보와 입력정보를 포함하는 검증 방법A verification method in which the minimum information collected in the first simulation, the preceding simulation step using the VP, includes state information and input information of the DUV 제 1 항 내지는 제 2 항 내지는 제 3 항에 있어서,The method according to claim 1 or 2 or 3, 상기 VP를 이용한 앞단 시뮬레이션 단계인 1차 시뮬레이션에서 수집되는 상기 최소한의 정보가 DUV내에 존재하는 1 이상의 설계객체의 상태정보와 입력정보를 포함하는 검증 방법Verification method including the state information and input information of at least one design object existing in the DUV is the minimum information collected in the first simulation, the preceding simulation step using the VP 제 1 항 내지는 제 2 항 내지는 제 3 항에 있어서,The method according to claim 1 or 2 or 3, 상기 VP를 이용한 앞단 시뮬레이션 단계인 1차 시뮬레이션에서 수집되는 상기 최소한의 정보가 DUV내에 존재하는 블랙박스 블럭들을 제외한 설계객체들의 상태정보와 입력정보를 포함하는 검증 방법Verification method including the state information and input information of the design objects excluding the black box blocks existing in the DUV is the minimum information collected in the first simulation, the previous simulation step using the VP 제 1 항 내지는 제 2 항 내지는 제 3 항에 있어서,The method according to claim 1 or 2 or 3, 상기 후단 시뮬레이션 단계인 1차 이후의 1회 이상의 시뮬레이션들이 2 이상의 시뮬레이터들을 이용하여서 병렬적으로 수행되는 검증 방법One or more simulations after the first stage of the post-simulation step are performed in parallel using two or more simulators. 제 1 항 내지는 제 2 항 내지는 제 3 항에 있어서,The method according to claim 1 or 2 or 3, 상기 VP를 이용한 앞단 시뮬레이션의 결과와 DUV의 1 이상의 설계객체들을 대상으로하는 상기 후단 시뮬레이션 단계인 1차 이후의 시뮬레이션 결과를 상기 후단 시뮬레이션 진행 과정 중에 실시간으로 비교하여서 두 시뮬레이션의 결과가 상이한 시점에서 상기 후단 시뮬레이션의 실행을 중지하고 상이점의 원인을 찾는 디버깅을 진행하는 검증 방법The results of the first simulation using the VP and the first and subsequent simulation results for the one or more design objects of the DUV are compared in real time during the subsequent simulation, and the results of the two simulations are different from each other. Validation method to stop the post simulation and proceed with debugging to find the cause of the difference 제 1 항 내지는 제 2 항 내지는 제 3 항에 내지는 제 5 항 내지는 제 9 항 내지는 제 10 항 내지는 제 11 항 내지는 제 25 항에 있어서,The method according to claim 1, 2, or 3, 5, 9, 10, 11, or 25, 상기 후단 시뮬레이션 단계에서 DUV에 대한 시뮬레이션이 세과정으로 구성되어서, 첫 번째 과정에서 DUV에서 블랙박스 블럭들만을 시뮬레이션 시간 0에서부터 상기 앞단 시뮬레이션에서 VP를 대상으로 상태정보를 저장한 1 이상의 시뮬레이션 시점 ts까지 수행시키는 과정에서 블랙박스 블럭들을 제외한 DUV의 나머지 설계객체들은 수행이 되지 않도록 디스에이블시키고, 두 번째 과정에서 상기 ts 시점에 DUV의 나머지 설계객체들의 상태를 VP를 이용한 앞서의 시뮬레이션 과정에서 ts 시점에서 수집된 상태정보 S(ts)를 이용하여서 상태 설정을 수행한 후, 세 번째 과정에서 ts 시점 이후부터는 DUV 전체를 대상으로 하는 시뮬레이션을 수행하는 검증 방법In the post-simulation step, the simulation for the DUV is composed of three processes. From the first process, only the black box blocks in the DUV are from simulation time 0 to one or more simulation time points ts in which state information is stored for the VP in the preceding simulation. The remaining design objects of the DUV, except the black box blocks, are disabled so that they are not executed. In the second process, at the time ts in the previous simulation process using VP, the state of the remaining design objects of the DUV is disabled. Verification method using the collected state information S (ts) to perform the state setting, and then perform the simulation for the entire DUV from the time point ts onwards in the third process 제 12 항에 있어서,The method of claim 12, 상기에서 설명된 세과정 중의 첫 번째 과정에서 시점 ts까지 수행시키는 과정에서 블랙박스 블럭들을 제외한 DUV의 나머지 설계객체들은 수행이 되지 않도록 디스에이블시키는 방법으로, DUV의 나머지 설계객체들의 모든 입력들을 HDL 시뮬레이터의 force 명령어를 사용하여 고정된 값으로 고정하여서 상기 시점 ts까지에는 이벤트의 생성을 제거하거나, 혹은 DUV에 추가코드를 부가하여서 DUV의 나머지 설계객체들의 모든 입력들에 이벤트가 상기 시점 ts까지에는 입력되지 않도록 하는 검증 방법In the first step of the above-described three processes, the remaining design objects of the DUV except the black box blocks are disabled so that all the inputs of the remaining design objects of the DUV are removed from the HDL simulator. Use the force command to fix the event to the time ts, either by removing the event generation until the time ts, or by adding additional code to the DUV, the event is input to all inputs of the remaining design objects of the DUV. Verification method to prevent 제 12 항에 있어서,The method of claim 12, 상기 VP를 대상으로 상태정보를 저장한 1 이상의 시뮬레이션 시점 ts가 2 이상의 시점들이고, 따라서 이 시점들에서 수집된 상태정보 S(ts)들도 2 이상이어서 이들 각각을 2 이상의 시뮬레이터들을 이용하여서 병렬적으로 수행하는 검증 방법One or more simulation time points ts storing state information for the VP are two or more time points, and thus, the state information S (ts) collected at these time points is also two or more times, so that each of them is parallel with two or more simulators. Verification method 제 1 항 내지는 제 2 항 내지는 제 3 항에 있어서,The method according to claim 1 or 2 or 3, 상기 VP를 이용한 앞단 시뮬레이션 단계인 1차 시뮬레이션에서 수집되는 상기 최소한의 정보가 DUV의 상태정보를 포함하는 검증 방법A verification method in which the minimum information collected in the first simulation, which is the preceding simulation step using the VP, includes the state information of the DUV 제 1 항 내지는 제 2 항 내지는 제 3 항에 있어서,The method according to claim 1 or 2 or 3, 상기 VP를 이용한 앞단 시뮬레이션 단계인 1차 시뮬레이션에서 수집되는 상기 최소한의 정보가 DUV내에 존재하는 1 이상의 설계객체의 상태정보를 포함하는 검증 방법The verification method including the state information of one or more design objects existing in the DUV is the minimum information collected in the first simulation step that is the preceding simulation step using the VP 제 1 항 내지는 제 2 항 내지는 제 3 항에 있어서,The method according to claim 1 or 2 or 3, 상기 VP를 이용한 앞단 시뮬레이션 단계인 1차 시뮬레이션에서 수집되는 상기 최소한의 정보가 DUV내에 존재하는 블랙박스 블럭들을 제외한 설계객체들의 상태정보를 포함하는 검증 방법The verification method including the state information of the design objects excluding the black box blocks existing in the DUV is the minimum information collected in the first simulation, the previous simulation step using the VP 제 1 항 내지는 제 2 항 내지는 제 3 항에 있어서,The method according to claim 1 or 2 or 3, 상기 시뮬레이터가 HDL 시뮬레이터인 검증 방법.And the simulator is an HDL simulator. 제 1 항 내지는 제 2 항 내지는 제 3 항에 있어서,The method according to claim 1 or 2 or 3, 상기 VP가 SystemC 내지는 C++ 내지는 C로 모델링된 검증 방법.And the VP is modeled as SystemC, C ++ or C. 제 1 항 내지는 제 2 항 내지는 제 3 항에 있어서,The method according to claim 1 or 2 or 3, 상기 VP가 트란젝션 정확도를 갖는 추상화 수준에서 모델링된 검증 방법.And the VP is modeled at the level of abstraction with transaction accuracy. 제 1 항 내지는 제 2 항 내지는 제 3 항에 있어서,The method according to claim 1 or 2 or 3, 상기 VP가 사이클 정확도를 갖는 추상화 수준에서 모델링된 검증 방법,A verification method modeled at the abstraction level at which the VP has cycle accuracy, 제 1 항 내지는 제 2 항 내지는 제 3 항에 있어서,The method according to claim 1 or 2 or 3, 상기 VP가 이벤트 정확도를 갖는 추상화 수준에서 모델링된 검증 방법,A verification method modeled at the abstraction level with the VP having event accuracy, 제 1 항 내지는 제 2 항 내지는 제 3 항에 있어서,The method according to claim 1 or 2 or 3, 상기 VP는 RTL 수준보다 더 추상화 수준이 높은 수준으로 모델링되고, 상기 DUV는 RTL 수준으로 구술된 것을 대상으로 하는 검증 방법.And wherein the VP is modeled at a higher level of abstraction than the RTL level, and wherein the DUV is dictated at the RTL level. 제 1 항 내지는 제 2 항 내지는 제 3 항에 있어서,The method according to claim 1 or 2 or 3, 상기 VP를 이용한 앞단 시뮬레이션 단계인 1차 시뮬레이션에서 수집되는 상기 최소한의 정보가 DUV내에 존재하는 1 이상의 설계객체의 입력정보를 포함하는 검증 방법The verification method including the input information of one or more design objects existing in the DUV is the minimum information collected in the first simulation, the preceding simulation step using the VP 제 24 항에 있어서,The method of claim 24, 상기 VP를 이용한 앞단 시뮬레이션 단계인 1차 시뮬레이션 과정에서 수집되는 상기 최소한의 정보로서 VP를 이용한 앞단 시뮬레이션을 실행하는 과정에서 VP의 계층구조에서 존재하는 하부의 1 이상의 독립적 설계객체들 DO1, DO2, ..., DOi각각에 존재하는 모든 입력들 I(DO1), I(DO2), .,., I(DOi)을 시뮬레이션 전 구간에 걸쳐서 탐침하여 저장하고, DUV에 대한 후단 시뮬레이션에서 VP의 계층구조에서 존재하는 독립적 설계객체들 DO1, DO2, ..., DOi과 DUV의 계층구조에서 동일하게 존재하는 설계객체들 DO1, DO2, ..., DOi 각각을 상기 앞단 시뮬레이션 과정에서 저장된 I(DO1), I(DO2), ..., I(DOi)를 이용하여서 독립적으로 시뮬레이션을 순차 적 내지는 2 이상의 HDL 시뮬레이터가 장착된 2 이상의 컴퓨터를 이용하여 병렬적으로 실행시키는 과정에서 상기 DUV의 설계객체들 DO1, DO2, ..., DOi 각각에 대하여 1 이상의 동일한 시뮬레이션 시점 t1, t2, ..., tn에서 상기 DUV의 설계객체들 DO1, DO2, ..., DOi 각각에 대한 상태정보들을 저장한 후에, 각 시뮬레이션 시점에서 상기 DUV의 설계객체들 DO1, DO2, ..., DOi 각각의 상태정보들을 통합하여서 DUV의 제일 큰 설계객체 DO_t에 대한 상태정보 S(ts) (s=1, 2, ..., n)를 얻은 후에 이들을 이용하여서 DUV의 제일 큰 설계객체 DO_t에 대한 시뮬레이션을 2 이상의 시뮬레이터를 이용한 병렬적 시뮬레이션 내지는 특정 시뮬레이션 구간을 위한 순차적 시뮬레이션 수행함으로서 DUV에 대한 시뮬레이션 시간을 단축시키는 검증 방법One or more independent design objects below the DO1, DO2, which exist in the hierarchy of the VP in the process of performing the front end simulation using the VP as the minimum information collected in the first simulation step, the front end simulation using the VP. Probe and store all inputs I (DO1), I (DO2),.,., I (DOi) in each of the .i., DOi, and hierarchical structure of VP in the post simulation for DUV. Independent design objects existing in DO1, DO2, ..., DOi and DUV in each of the same design objects DO1, DO2, ..., DOi are stored in the previous simulation process I (DO1) The design objects of the DUV in the process of executing the simulation independently using sequential or I (DO2), ..., I (DOi) using two or more computers equipped with two or more HDL simulators. DO1, DO2, ..., After storing the state information for each of the design objects DO1, DO2, ..., DOi of the DUV at one or more identical simulation time points t1, t2, ..., tn for each DOi, the DUV at each simulation time point. The status information S (ts) (s = 1, 2, ..., n) of the largest design object DO_t of DUV is obtained by integrating the status information of each of DO1, DO2, ..., DOi design objects of Later, these methods are used to verify the DUV's largest design object DO_t by using two or more simulators in parallel or sequential simulation for specific simulation intervals to reduce the simulation time for the DUV. 제 25 항에 있어서,The method of claim 25, 상기 VP를 이용한 앞단 시뮬레이션 단계인 1차 시뮬레이션 과정에서 수집되는 상기 최소한의 정보로서 VP를 이용한 앞단 시뮬레이션을 실행하는 과정에서 VP의 계층구조에서 존재하는 하부의 1 이상의 독립적 설계객체들 DO1, DO2, ..., DOi 각각에 존재하는 모든 입력들 I(DO1), I(DO2), ..., I(DOi)을 시뮬레이션 전 구간에 걸쳐서 이벤트 기반으로 탐침하는 검증 방법One or more independent design objects below the DO1, DO2, which exist in the hierarchy of the VP in the process of performing the front end simulation using the VP as the minimum information collected in the first simulation step, the front end simulation using the VP. Validation method that probes all inputs I (DO1), I (DO2), ..., I (DOi) existing in each of DO. 제 25 항에 있어서,The method of claim 25, 상기 VP를 이용한 앞단 시뮬레이션 단계인 1차 시뮬레이션 과정에서 수집되는 상기 최소한의 정보로서 VP를 이용한 앞단 시뮬레이션을 실행하는 과정에서 VP 의 계층구조에서 존재하는 하부의 1 이상의 독립적 설계객체들 DO1, DO2, ..., DOi 각각에 존재하는 모든 입력들 I(DO1), I(DO2), ..., I(DOi)을 시뮬레이션 전 구간에 걸쳐서 사이클 기반으로 탐침하는 검증 방법One or more independent design objects DO1, DO2, which are lower in the hierarchy of the VP in the process of performing the front end simulation using the VP as the minimum information collected in the first simulation step, the front end simulation using the VP. Validation method for cycle-based probing of all inputs I (DO1), I (DO2), ..., I (DOi) present in each of .., DOi 제 25 항에 있어서,The method of claim 25, 상기 VP를 이용한 앞단 시뮬레이션 단계인 1차 시뮬레이션 과정에서 수집되는 상기 최소한의 정보로서 VP를 이용한 앞단 시뮬레이션을 실행하는 과정에서 VP의 계층구조에서 존재하는 하부의 1 이상의 독립적 설계객체들 DO1, DO2, ..., DOi 각각에 존재하는 모든 입력들 I(DO1), I(DO2), ..., I(DOi)을 시뮬레이션 전 구간에 걸쳐서 트란젝션 기반으로 탐침하는 검증 방법One or more independent design objects below the DO1, DO2, which exist in the hierarchy of the VP in the process of performing the front end simulation using the VP as the minimum information collected in the first simulation step, the front end simulation using the VP. Verification method that probes all inputs I (DO1), I (DO2), ..., I (DOi) existing in each of DO. 제 3 항 내지는 제 6 항에 있어서,The method according to claim 3 or 6, 상기 VP를 자동 생성 시키는 방법이 DUV에 대한 원 설계코드를 분석하여 원 설계코드에서 논리합성을 통하여 플립플롭이나 래치가 생성되는 모든 변수들이나 시그널들을 찾아내고, 이 모든 플립플롭들이나 래치들의 특정 플립플롭이나 래치의 출력에 대응되는 변수나 시그널을 DUV의 주입력들과 다른 플립플롭들이나 다른 래치들의 출력들과 가-주입력들이 존재하는 경우에는 가-주입력들에 대응되는 변수들이나 시그널들로써만 표현하고, 상기 모든 플립플롭들이나 래치들의 특정 플립플롭이나 래치의 모든 타이밍 입력들 각각에 대응되는 변수들이나 시그널들은 DUV의 주입력들과 플립플롭들이나 래치들의 출력들과 가-주입력들이 존재하는 경우에는 가- 주입력들에 대응되는 변수들이나 시그널들로써만 표현하는 과정을 포함하는 검증 방법The method for automatically generating the VP analyzes the original design code for the DUV, finds all the variables or signals for which the flip-flop or latch is generated through logic synthesis in the original design code, and finds the specific flip-flop of all the flip-flops or latches. Alternatively, the variable or signal corresponding to the output of the latch is expressed only as variables or signals corresponding to the inputs of the DUV and the outputs of other flip-flops or other latches, and if there are temporary main inputs. The variables or signals corresponding to each of the specific flip-flops or latches of all the timing inputs of the flip-flops or latches are input power of the DUV, the outputs of the flip-flops or latches, and the temporary main inputs are present. Verification method including the process of expressing only variables or signals corresponding to temporary injection forces 제 3 항 내지는 제 6 항에 있어서,The method according to claim 3 or 6, 상기 VP를 자동 생성 시키는 방법이 DUV에 대한 원 설계코드를 분석하여 원 설계코드에서 논리합성을 통하여 플립플롭이나 래치가 생성되는 모든 변수들이나 시그널들을 찾아내고, 이 모든 플립플롭들이나 래치들의 특정 플립플롭이나 래치의 출력에 대응되는 변수나 시그널을 DUV의 주입력들과 다른 플립플롭들이나 다른 래치들의 출력들과 가-주입력들이 존재하는 경우에는 가-주입력들에 대응되는 변수들이나 시그널들을 사용하여 표현하고, 상기 모든 플립플롭들이나 래치들의 특정 플립플롭이나 래치의 모든 타이밍 입력들 각각에 대응되는 변수들이나 시그널들은 DUV의 주입력들과 플립플롭들이나 래치들의 출력들과 가-주입력들이 존재하는 경우에는 가-주입력들에 대응되는 변수들이나 시그널들을 사용하여 표현하는 과정을 포함하는 검증 방법The method for automatically generating the VP analyzes the original design code for the DUV, finds all the variables or signals for which the flip-flop or latch is generated through logic synthesis in the original design code, and finds the specific flip-flop of all the flip-flops or latches. Alternatively, if a variable or signal corresponding to the output of the latch is present in the DUV's injection forces, other flip-flops or the outputs of the other latches, and the temporary inputs are present, the variables or signals corresponding to the temporary inputs are used. And the variables or signals corresponding to each of the particular flip-flops or latches of all timing inputs of the flip-flops or latches are the injection forces of the DUV, the outputs of the flip-flops or latches, and the temporary main inputs. The verification method includes a process of expressing using variables or signals corresponding to temporary main inputs. 제 29 항 내지는 제 30 항에 있어서,The method of claim 29 or 30, 상기 DUV에 대한 원 설계코드를 분석하여 찾아낸 플립플롭이나 래치에 대응되는 모든 변수들이나 시그널들을 동일한 클럭 입력 내지는 동일한 인에이블 입력을 가지는 1 이상의 그룹들로 그룹핑을 하고, 이 그룹핑에 근거하여 VP의 수행을 부분적으로 사이클-기반으로 수행함으로서 VP의 수행속도를 높이는 검증 방법All variables or signals corresponding to the flip-flop or latch found by analyzing the original design code for the DUV are grouped into one or more groups having the same clock input or the same enable input, and the VP is performed based on the grouping. Method to speed up VP performance by partially performing cycle-based 제 29 항 내지는 제 30 항에 있어서,The method of claim 29 or 30, 상기 DUV에 대한 원 설계코드를 분석하여 찾아낸 플립플롭이나 래치에 대응되는 모든 변수들이나 시그널들을 동일한 클럭 입력 내지는 동일한 인에이블 입력을 가지는 1 이상의 그룹들로 그룹핑을 하고, 이 그룹핑에 근거하여 VP의 수행을 분산환경에서 병렬적으로 수행함으로서 VP의 수행속도를 높이는 검증 방법All variables or signals corresponding to the flip-flop or latch found by analyzing the original design code for the DUV are grouped into one or more groups having the same clock input or the same enable input, and the VP is performed based on the grouping. Method to speed up the performance of VP by executing PAR in parallel in distributed environment 제 1 항 내지는 제 2 항 내지는 제 3 항에 있어서,The method according to claim 1 or 2 or 3, 부분적으로는 이벤트 정확도를 갖고 나머지 모든 부분에서는 사이클 정확도를 가지도록 모델링된 VP를 이용한 검증 방법.Validation method with VP modeled to have event accuracy in part and cycle accuracy in all others. 제 1 항 내지는 제 2 항 내지는 제 3 항에 있어서,The method according to claim 1 or 2 or 3, 부분적으로는 사이클 정확도를 갖고 나머지 모든 부분에서는 트란젝션 정확도를 가지도록 모델링된 VP를 이용한 검증 방법.Verification method using VP modeled to be partially cycle accurate and transaction accuracy in all others. 제 1 항 내지는 제 2 항 내지는 제 3 항에 있어서,The method according to claim 1 or 2 or 3, 부분적으로는 이벤트 정확도를 갖고 또 다른 부분에서는 사이클 정확도를 갖고 나머지 부분에서는 트란젝션 정확도를 가지도록 모델링된 VP를 이용한 검증 방법.Validation method using VP modeled to have event accuracy in part, cycle accuracy in another part, and transaction accuracy in the other part.
KR1020050033876A 2005-03-17 2005-04-19 Efficient functional verification apparatus in esl design methodology, and the verification method using the same KR20060101127A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20050023053 2005-03-17
KR1020050023053 2005-03-17

Publications (1)

Publication Number Publication Date
KR20060101127A true KR20060101127A (en) 2006-09-22

Family

ID=37632486

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050033876A KR20060101127A (en) 2005-03-17 2005-04-19 Efficient functional verification apparatus in esl design methodology, and the verification method using the same

Country Status (1)

Country Link
KR (1) KR20060101127A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100800412B1 (en) * 2005-10-10 2008-02-01 부산대학교 산학협력단 Efficient Verification Apparatus in ESL Design Methodology, and the Verification Method Using the Same
CN103258067A (en) * 2012-02-20 2013-08-21 京微雅格(北京)科技有限公司 Method for keeping architecture, software and hardware conforming in configurable chip operating system
CN104731987A (en) * 2013-12-18 2015-06-24 北京华大九天软件有限公司 Parasitic resistance and capacitance estimating method of early layout
CN105740579A (en) * 2016-03-09 2016-07-06 浪潮集团有限公司 Construction method for connection of UVM verification platform

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100800412B1 (en) * 2005-10-10 2008-02-01 부산대학교 산학협력단 Efficient Verification Apparatus in ESL Design Methodology, and the Verification Method Using the Same
CN103258067A (en) * 2012-02-20 2013-08-21 京微雅格(北京)科技有限公司 Method for keeping architecture, software and hardware conforming in configurable chip operating system
CN104731987A (en) * 2013-12-18 2015-06-24 北京华大九天软件有限公司 Parasitic resistance and capacitance estimating method of early layout
CN104731987B (en) * 2013-12-18 2018-01-19 北京华大九天软件有限公司 A kind of dead resistance electric capacity evaluation method of early stage domain
CN105740579A (en) * 2016-03-09 2016-07-06 浪潮集团有限公司 Construction method for connection of UVM verification platform

Similar Documents

Publication Publication Date Title
US8468475B2 (en) Conversion of circuit description to an abstract model of the circuit
US20090150136A1 (en) Dynamic-based verification apparatus for verification from electronic system level to gate level, and verification method using the same
Krishnaswamy et al. Signature-based SER analysis and design of logic circuits
Große et al. CheckSyC: An efficient property checker for RTL SystemC designs
US20220385280A1 (en) Testable time-to-digital converter
US11526641B2 (en) Formal gated clock conversion for field programmable gate array (FPGA) synthesis
KR20040063846A (en) Verification Apparatus Supporting the Use of Unifying Different Verification Platforms, and the Verification Method Using the Same
US20210374314A1 (en) Engineering Change Order Scenario Compression by Applying Hybrid of Live and Static Timing Views
US11593543B2 (en) Glitch power analysis with register transfer level vectors
KR20060101127A (en) Efficient functional verification apparatus in esl design methodology, and the verification method using the same
US11022634B1 (en) Rail block context generation for block-level rail voltage drop analysis
Alizadeh et al. Guided gate-level ATPG for sequential circuits using a high-level test generation approach
US11556676B2 (en) Scalable formal security verification of circuit designs
KR20060066634A (en) Dynamic-verification-based verification apparatus achieving high verification performance and verification efficiency, and the verification methodology using the same
KR101328263B1 (en) Verification Method from Electronic System Level to Gate Level Using Systematic Progressive Refinement
KR20080096723A (en) Distributed parallel simulation method based on adaptive synchronization/communication scheme
KR100800412B1 (en) Efficient Verification Apparatus in ESL Design Methodology, and the Verification Method Using the Same
US11868694B1 (en) System and method for optimizing emulation throughput by selective application of a clock pattern
US20240111660A1 (en) Managing high performance simulation representation of an emulation system
US11829692B1 (en) Machine-learning-based design-for-test (DFT) recommendation system for improving automatic test pattern generation (ATPG) quality of results (QOR)
US11493971B2 (en) Power estimation system
US20230177244A1 (en) Creation of reduced formal model for scalable system-on-chip (soc) level connectivity verification
Gavrilov et al. Post-Route Performance Estimation Method for Reconfigurable Systems-on-a-Chip
KR20070108303A (en) Verification method from electronic system level to gate level using systematic progressive refinement
Strauch Deriving AOC C-Models from D&V Languages for Single-or Multi-Threaded Execution Using C or C++

Legal Events

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