KR20080015691A - Method and apparatus for verifying system on chip model - Google Patents

Method and apparatus for verifying system on chip model Download PDF

Info

Publication number
KR20080015691A
KR20080015691A KR1020060077356A KR20060077356A KR20080015691A KR 20080015691 A KR20080015691 A KR 20080015691A KR 1020060077356 A KR1020060077356 A KR 1020060077356A KR 20060077356 A KR20060077356 A KR 20060077356A KR 20080015691 A KR20080015691 A KR 20080015691A
Authority
KR
South Korea
Prior art keywords
signal
rtl
simulator
level
model
Prior art date
Application number
KR1020060077356A
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 삼성전자주식회사
Priority to KR1020060077356A priority Critical patent/KR20080015691A/en
Publication of KR20080015691A publication Critical patent/KR20080015691A/en

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31712Input or output aspects
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3177Testing of logic operation, e.g. by logic analysers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines

Abstract

A method and an apparatus for verifying an SOC(System On Chip) module are provided to be extended to process various protocols and estimate reliability of a TL(Transaction Level) model simulator by using information of cycle accuracy. An apparatus for verifying an SOC module includes a TL waveform reader(604), an RTL(Register Transfer Level) waveform reader(606), a user information input unit(602), protocol analyzers(608,610), and a comparator(614). The TL waveform reader receives output signals of a TL simulator. The RTL waveform reader receives output signals of an RTL simulator. The user information input unit receives file names, signal names, valid information from a user and transmits user information to indicate signal values to be read from the output signals to the TL waveform reader and the RTL waveform reader. The protocol analyzers extract valid signals from the signal values output by the TL simulator and the RTL waveform reader based on the file names, the signal names, the valid information received from the user information input unit to push the extracted valid signals to a TL FIFO(First Input First Output) buffer(612) and an RTL FIFO buffer(616). The comparator compares whether the signal values stored in the TL FIFO buffer and the RTL FIFO buffer correspond to each other.

Description

시스템 온 칩 모델 검증 방법 및 장치{METHOD AND APPARATUS FOR VERIFYING SYSTEM ON CHIP MODEL}METHOD AND APPARATUS FOR VERIFYING SYSTEM ON CHIP MODEL}

도 1은 일반적인 SoC 시스템을 디자인 할 때 사용하는 하향 접근과 상향 접근 방법을 도시한 도면,1 is a diagram illustrating a downward approach and an upward approach used when designing a general SoC system.

도 2는 일반적인 SoC 설계시 시뮬레이션 메쏘드를 사용하여 모델링하는 과정을 도시한 도면,2 is a diagram illustrating a modeling process using simulation methods in a general SoC design;

도 3은 SoC 구현을 위해 메모리에서 데이터를 읽어오는 것을 시뮬레이션한 결과를 도시한 도면,FIG. 3 is a diagram illustrating a result of simulating reading data from a memory for implementing an SoC. FIG.

도 4는 일반적인 SoC 모델 시뮬레이션 결과를 검증하기 위해 매 사이클 마다 HADDR, HTRANS, HRDATA, HREADY 신호를 비교하는 과정을 도시한 도면,4 is a diagram illustrating a process of comparing HADDR, HTRANS, HRDATA, and HREADY signals every cycle to verify a general SoC model simulation result.

도 5는 일반적인 SoC 모델 시뮬레이션 결과를 검증하기 위해 시퀀스(sequence)를 비교하는 방법 흐름도,5 is a method flow diagram for comparing sequences to verify general SoC model simulation results;

도 6은 본 발명의 실시 예에 따른 RTL 모델 시뮬레이터와 TL 모델 시뮬레이터의 신호 출력 값을 비교하기 위한 비교 유닛의 상세 구성도,6 is a detailed configuration diagram of a comparison unit for comparing signal output values of an RTL model simulator and a TL model simulator according to an embodiment of the present invention;

도 7은 본 발명의 실시 예에 따라 TL 모델 프로토콜 해석기와 RTL 모델 프로토콜 해석기가 유효한 정보를 추출하기 위한 핸드쉐이킹 프로토콜을 도시한 도면,7 is a diagram illustrating a handshaking protocol for extracting valid information by a TL model protocol interpreter and an RTL model protocol interpreter according to an embodiment of the present invention;

도 8은 본 발명의 실시 예에 따른 비교기가 사이클 정확도를 계산하는 과정 을 개념적으로 도시한 도면,8 is a diagram conceptually illustrating a process of calculating a cycle accuracy by a comparator according to an embodiment of the present invention;

도 9는 본 발명의 실시 예에 따른 RTL 모델 프로토콜 해석기의 동작 흐름도,9 is an operation flowchart of an RTL model protocol interpreter according to an embodiment of the present invention;

도 10은 본 발명의 실시 예에 따른 TL 모델 프로토콜 해석기의 동작 흐름도,10 is an operation flowchart of a TL model protocol interpreter according to an embodiment of the present invention;

도 11은 본 발명의 실시 예에 따라 TL 모델 프로토콜 해석기가 추출한 정보와 RTL 모델 프로토콜 해석기가 추출한 정보를 근거로 TL 모델 시뮬레이션 결과와 RTL 모델 시뮬레이션 결과를 비교하는 비교기(Comparator)의 동작 흐름도.FIG. 11 is a flowchart illustrating an operation of a comparator comparing a TL model simulation result and an RTL model simulation result based on information extracted by a TL model protocol interpreter and information extracted by an RTL model protocol interpreter according to an exemplary embodiment of the present invention.

본 발명은 시스템 온 칩(System-on-chip : SoC) 설계에 관한 것으로 특히 시스템 온 칩을 설계하기위해 미리 수행하는 시뮬레이션(Simulation)에 필요한 모델을 모델링을 하기 위한 방법 및 장치에 관한 것이다. The present invention relates to a system-on-chip (SoC) design, and more particularly, to a method and apparatus for modeling a model required for a simulation performed in advance to design a system-on-chip.

시스템 온 칩(SoC)은 프로세서, 타이머, 인터럽트(Interrupt)제어기, 버스, 메모리 그리고 내장형 소프트웨어(Embedded Soft Ware : eSW)와 같은 많은 요소로 구성된다. 그것은 몇 년 전만 해도 단일 보드에서 구현됐으나 지금은 반도체 기술의 발전으로 한 회로 안에 모두 구현될 수 있다. System-on-a-chip (SoC) consists of many elements such as a processor, timer, interrupt controller, bus, memory, and embedded software (eSW). It was implemented on a single board a few years ago, but now with advances in semiconductor technology it can all be implemented in one circuit.

현재 SoC 디자인(design)에 필요한 시스템 설계를 위해서는 시스템 구조에 대한 분석과 하드웨어와 소프트웨어를 검증하는데 필요한 마땅한 자동화 툴이 필요하다.System design for today's SoC designs requires the proper automation tools needed to analyze system structures and verify hardware and software.

아울러 현재는 공정 기술이 진보하여 칩의 집적도가 증가함에 따라 SoC의 설계 복잡도도 증가하고 있으며, SoC의 설계 복잡도가 증가하면서 최적의 시기에 맞춰 시장에 대응하는 시간(time to market)의 단축과 디자인 퀄리티(design quality)의 필요성이 증대되었다. 이러한 필요성으로 인해 다양한 SoC 모델링을 위한 여러 방법론이 제시되고 있는데 대표적으로 트랜잭션 레벨(Transaction Level : TL) 모델(model) 방법론이 있다. TL 모델은 레지스터 트랜스퍼 레벨(Register Transfer Level : RTL) 모델을 추상화(abstraction)시켜서 설계 생산성을 높이고 시뮬레이션 속도를 빠르게 하는 방법론이다. In addition, the design complexity of SoC is increasing as the process technology is advanced and the chip density is increasing, and the design time of SoC is increasing and the time to market is shortened and the design is timely. The need for design quality has increased. Due to this necessity, various methodologies for various SoC modeling have been proposed, and a typical Transaction Level (TL) model methodology is proposed. The TL model is a methodology that abstracts the Register Transfer Level (RTL) model to increase design productivity and speed up simulation.

TL 모델을 사용하면 시뮬레이션 속도가 빠르기 때문에 구조 탐색(architecture exploration)이나 성능 측정(performance estimation)도 가능하여 결과적으로 디자인 퀄리티도 높일 수 있다. Using the TL model, the simulation speed is faster, allowing for architecture exploration and performance estimation, resulting in higher design quality.

TL 모델을 이용한 설계 방법론은 하향 접근(Top-down approach)과 상향 접근(Bottom-up approach)방법이 있다. The design methodology using the TL model is a top-down approach and a bottom-up approach.

도 1은 일반적인 SoC 시스템을 디자인 할 때 사용하는 하향 접근과 상향 접근 방법을 도시한 도면이다. 1 is a diagram illustrating a downward approach and an upward approach used when designing a general SoC system.

하향 접근(Top-down approach)(100)은 먼저 상위 수준에서 TL 모델(104)로 설계한 후 이를 리파인(refine)하여 구현까지 하는 접근 방법이다. 새로운 블록(block)을 개발할 때 유용하게 사용될 수 있다. 이와 반대로 상향 접근(Bottom-up approach)(102)은 이미 있는 RTL 모델(106)을 상위 수준 언어로 모델링하여 TL 모델(104)로 만드는 접근 방법이다. 이미 RTL 모델로 block이 개발되어 있는 상황 에서 상위 수준을 시뮬레이션(simulation)을 할 때 유용하다. 즉, 트랜잭션 레벨 모델링(Transaction Level Modeling : TLM)은 functional unit 또는 communication mechanism에 대한 구현과 모듈간 통신을 별개로 다루는 high level modeling 방식이다. 이러한 TLM과 RTL(Register Transfer Level)모델이 서로 통신하기 위해서는 트랜잭터(Transactor)가 필요하다. 트랜잭터는 트랜잭션(Transaction)을 RTL 신호로 혹은 그 반대로 표현 수준을 변환시키는 역할을 수행한다.Top-down approach (100) is a first approach to design by the TL model 104 at a high level, then refined (refine) it to implementation. This can be useful when developing a new block. In contrast, the bottom-up approach 102 is an approach to modeling an existing RTL model 106 in a higher level language to make it a TL model 104. This is useful when simulating a higher level when a block is already developed with an RTL model. That is, transaction level modeling (TLM) is a high level modeling method that deals with the implementation of a functional unit or communication mechanism and communication between modules separately. In order for the TLM and RTL (Register Transfer Level) models to communicate with each other, a transactor is required. A transactor is responsible for converting the presentation level from a transaction to an RTL signal and vice versa.

SoC 설계자가 모델링을 수행할 때 하향 접근(100)을 사용하든 상향 접근(102)을 사용하던지 간에 TL 모델 시뮬레이션의 결과를 신뢰할 수 있으려면 TL 모델(104)과 RTL 모델(106)의 결과의 동일성(equivalence)이 보장되어야 한다. To ensure that the results of TL model simulation are reliable, whether the SoC designer uses a downward approach (100) or an upward approach (102) when modeling, the identities of the results of the TL model 104 and the RTL model 106 are Equivalence should be guaranteed.

일반적으로 SoC 설계 시에 TL 모델은 모델링(modeling)의 목적에 따라 RTL 모델과 동작은 일치할 수 있으나 사이클 바이 사이클(cycle by cycle) 동작은 완전히 일치하지 않을 수 있다. 또한 TL 모델은 소프트 웨어 개발용으로 사용될 때에는 RTL 모델의 일부 기능만으로만 모델링되어 있는 경우가 있기 때문에 시뮬레이션이 아니고 실제 모델의 동작을 수학적 모델링하여 그 수학적 모델이 같은지를 비교하는 formal equivalence check를 이용하기 어렵다. 따라서 이러한 경우에는 도 2와 같이 시뮬레이션 메쏘드(simulation method)를 이용하여 같은 입력(Input)을 인가하였을 때 같은 출력(output)이 나오는지 확인하는 방법을 통해 TL 모델과 RTL 모델의 결과 동일성을 비교하게 된다. In general, in SoC design, the TL model may match the behavior of the RTL model according to the modeling purpose, but the cycle by cycle operation may not be completely identical. In addition, since the TL model is modeled only by some functions of the RTL model when used for software development, it uses a formal equivalence check that compares whether the mathematical model is the same by mathematically modeling the behavior of the actual model, not simulation. it's difficult. Therefore, in this case, as shown in FIG. 2, the result identicality between the TL model and the RTL model is compared through a method of checking whether the same output occurs when the same input is applied using a simulation method. .

도 2는 일반적인 SoC 설계시 시뮬레이션 메쏘드를 사용하여 모델링하는 과정을 도시한 도면이다.2 is a diagram illustrating a modeling process using simulation methods in a general SoC design.

테스트 벡터(Test Vector)(200)는 SoC 시뮬레이션 모델링 방법을 검증하기 위해 필요한 입력을 의미하며, TL 모델 시뮬레이터(202)와 제1 트랜잭터(Transactor #1)(206)로 입력된다. 제1 트랜잭터(206)는 입력받은 테스트 벡터를 RTL 모델 시뮬레이터(204)로 출력한다. 이때 제1 트랜잭터(206)가 하는 역할은 하위 레벨인 RTL 모델을 수행하기 위해서는 입력되는 테스트 벡터(200)보다 좀더 자세한(Detail) 정보가 필요하기 때문에 부가 정보를 추가하여 RTL 모델 시뮬레이터(204)로 출력한다.The test vector 200 refers to input required to verify the SoC simulation modeling method, and is input to the TL model simulator 202 and the first transactor # 1 206. The first translator 206 outputs the received test vector to the RTL model simulator 204. In this case, since the role of the first translator 206 requires more detailed information than the input test vector 200 in order to perform the lower level RTL model, additional information is added to the RTL model simulator 204. Will output

상술한 바와 같이 TL 모델 시뮬레이터(202)는 상위 레벨이기 때문에 RTL 모델보다 빠르다. 따라서 트랜잭터(Transactor) 없이 바로 테스트 벡터(200)를 입력받은 후, TL 모델 시뮬레이터한 결과를 제2 트랜잭터(Translator #2)(208)로 출력한다. 이때 상기 제2 트랜잭터(208)는 TL 모델 시뮬레이터(202)의 출력이 상위 레벨수준이므로 하위 레벨로 출력하는 RTL 모델 시뮬레이터의 출력과 같은 레벨을 유지하기 위해 입력된 상위 레벨의 시뮬레이터 결과를 하위 레벨 수준으로 생성한다. As described above, the TL model simulator 202 is faster than the RTL model because it is at a higher level. Therefore, after receiving the test vector 200 directly without a transactor, the TL model simulator outputs the result of the TL model simulator to the second translator # 2 208. In this case, since the output of the TL model simulator 202 is at the upper level, the second translator 208 has a lower level of the simulator result of the input level to maintain the same level as the output of the RTL model simulator outputting at the lower level. Create to level.

그리고, 같은 레벨 수준의 RTL 모델 시뮬레이터(204)의 출력과 제2 트랜잭터(208)의 시뮬레이션 결과가 같은지 비교유닛(210)에서 비교하여 비교 결과가 같다면, 성공적인 시뮬레이션을 위한 모델링이 수행되었음을 알 수 있게된다.If the comparison result is the same in the comparison unit 210, the output of the RTL model simulator 204 of the same level and the simulation result of the second translator 208 are the same, it is found that modeling for successful simulation is performed. Will be.

그러나 상술한 SoC 설계 디자인을 위해 모델링 방법 검증을 수행하기 위해 도 2와 같은 시뮬레이션 메쏘드(Simulation method)를 사용하게 되면 생각지 못한 코너 케이스(corner case)가 발생할 수 있다. 현재 이러한 코너 케이스를 예방하기 위해서는 테스트 벡터를 랜덤하게 자동으로 생성하는 툴인 constrained random test vector와 같은 대량의 테스트 벡터가 필요하다. 이와 같이 대량의 테스트 벡터를 시뮬레이션한 후에 결과를 비교하려면 사람이 일일이 눈으로 보고 비교하는 것은 거의 불가능하다. 따라서 자동화된 툴(tool)이 필요한데 현재 상용중인 이러한 자동화된 툴을 사용하여 검증을 수행하더라도 RTL 모델 시뮬레이터(204)와 TL 모델 시뮬레이터(202)의 사이클 바이 사이클(cycle by cycle) 동작이 서로 완전히 일치하지 않는 특성 때문에 자동화시키기가 어렵다. However, an unexpected corner case may occur when the simulation method shown in FIG. 2 is used to perform modeling method verification for the aforementioned SoC design. To prevent such corner cases, a large amount of test vectors, such as a constrained random test vector, which is a tool that automatically generates test vectors randomly, are required. After simulating such a large test vector, it is almost impossible for a human to see and compare the results. Therefore, an automated tool is required, and the cycle by cycle behavior of the RTL model simulator 204 and the TL model simulator 202 perfectly matches each other even when verification is performed using such commercially available automated tools. It is difficult to automate because of its non-existent nature.

아래의 도 3은 현재 RTL 모델 시뮬레이터(202)와 TL 모델 시뮬레이터(204)에 동일한 테스트 벡터(200)를 입력하였을 때의 출력(Output)을 도시한 타이밍 도이다.3 below is a timing diagram illustrating an output when the same test vector 200 is input to the current RTL model simulator 202 and the TL model simulator 204.

도 2 및 도3과 같은 일반적인 SoC 설계 simulation 결과를 통해 얻고자하는 결과는 TL 모델 시뮬레이터(202)와 RTL 모델 시뮬레이터(204)에 동일한 테스트 벡터를 입력하더라도 두 시뮬레이터의 결과가 같은 메모리의 어드레스(address)에서 동일한 데이터(data)를 읽어 오는지를 확인하는 것이다. The results obtained through the general SoC design simulation results as shown in FIGS. 2 and 3 are the same as the test vectors input to the TL model simulator 202 and the RTL model simulator 204. To read the same data.

일반적으로 AHB(Advanced High-performance Bus) 버스 프로토콜(bus protocol)을 해석하여 보면 RTL 모델의 시뮬레이션 결과와 TL 모델의 시뮬레이션 결과는 동작이 일치한다. In general, when interpreting the advanced high-performance bus (AHB) bus protocol, the simulation results of the RTL model and the simulation results of the TL model are consistent with each other.

도 3은 SoC 구현을 위해 메모리에서 데이터를 읽어오는 것을 시뮬레이션한 결과를 도시한 것이다. Figure 3 shows the results of a simulation of reading data from memory for SoC implementation.

도 3에서 각 신호들은 AHB 버스에서 사용되는 신호들이며 HADDR, HTRANS, HRDATA, HREADY는 TL/RTL 모델 시뮬레이터의 결과 값이고, 각각의 정의는 아래와 같다.In FIG. 3, each signal is a signal used in the AHB bus, and HADDR, HTRANS, HRDATA, and HREADY are the result values of the TL / RTL model simulator, and each definition is as follows.

HADDR : 메모리의 어드레스.HADDR: address of memory.

HTRANS : HADDR이 유효한지를 나타내는 제어 신호(Control Signal).HTRANS: Control signal indicating whether HADDR is valid.

HRDATA : TL/RTL 모델 시뮬레이터가 실제 메모리에서 읽어온 데이터.HRDATA: Data read from real memory by TL / RTL model simulator.

HREADY : 실제 메모리에서 읽어온 데이터가 유효한지를 알려주는 제어 신호.(예컨대 "1"이면 유효, "0"이면 유효하지 않음.)HREADY: A control signal that indicates whether the data read from the physical memory is valid. (For example, "1" is valid. "0" is not valid.)

그리고 클럭(CLK)(300)은 테스트 벡터와 함께 TL/RTL 모델 시뮬레이터로 입력된다. The clock CLK 300 is input to the TL / RTL model simulator together with the test vector.

도 3에서 각각 RTL 모델 시뮬레이터(204)와 TL 모델 시뮬레이터(204)의 예를 보면 두개의 모델이 모두 메모리 주소 A2, A3, A4, A8, AC에서 각각 데이터 D0, D1, D2, D3, D4를 읽어 오는 것을 알 수 있다.Referring to the examples of the RTL model simulator 204 and the TL model simulator 204 in FIG. 3, both models respectively store data D0, D1, D2, D3, and D4 at the memory addresses A2, A3, A4, A8, and AC. You can see that it reads.

도 4는 일반적인 SoC 모델 시뮬레이션 결과를 검증하기 위해 매 사이클 마다 HADDR, HTRANS, HRDATA, HREADY 신호를 비교하는 과정을 도시한 도면이다. 즉, 도 4에서는 매 cycle 마다 signal을 waveform으로부터 읽어서 그 값을 비교한다. 4 is a diagram illustrating a process of comparing HADDR, HTRANS, HRDATA, and HREADY signals every cycle in order to verify a general SoC model simulation result. That is, in FIG. 4, the signal is read from the waveform every cycle and its values are compared.

400단계에서 RTL 모델 시뮬레이터(204)와 TL 모델 시뮬레이터(202)는 매 사이클마다 입력되는 신호들의 파형(Waveform)으로부터 상기 도 3에서의 HADDR, HTRANS, HRDATA, HREADY 신호들을 읽는다. 그리고, 402단계에서 다음번 사이클이 시작되었다면, 비교기(210)는 상기 RTL 모델 시뮬레이터(204)와 TL 모델 시뮬레이터(202)가 읽은 신호의 값을 비교한다. In operation 400, the RTL model simulator 204 and the TL model simulator 202 read the HADDR, HTRANS, HRDATA, and HREADY signals in FIG. 3 from the waveform of the input signals every cycle. If the next cycle is started in step 402, the comparator 210 compares the values of the signals read by the RTL model simulator 204 and the TL model simulator 202.

그러나 상술한 바와 같이 일반적인 방법으로 RTL 모델 시뮬레이터(204)와 TL 모델 시뮬레이터(202)가 읽은 신호의 일치 여부를 확인하기 위해 단순히 매 사이클(cycle)마다 같은 신호를 비교하더라도 두 시뮬레이션의 결과는 매번 같지 않을 수도 있다. 예를 들어 도 3의 HADDR만 보더라도 클럭 사이클이 C1인 부분에서는 RTL 모델 시뮬레이터(204)의 HADDR은 A0이지만 TL 모델 시뮬레이터(202)에서는 9C이기 때문인 것을 볼 수 있다.However, as described above, even though the RTL model simulator 204 and the TL model simulator 202 compare the same signals in each cycle simply to check whether they match, the results of the two simulations are not the same each time. It may not. For example, even if only the HADDR of FIG. 3 shows that the clock cycle is C1, the HADDR of the RTL model simulator 204 is A0 but the TL model simulator 202 is 9C.

상기한 방법과 같이 사이클 마다 RTL 모델 시뮬레이터 결과와 TL 모델 시뮬레이터의 결과를 비교하는 결과이외에도 도 5와 같이 시퀀스(sequence)만을 비교하는 방법도 있다. As described above, in addition to the results of comparing the results of the RTL model simulator and the TL model simulator for each cycle, there is also a method of comparing only the sequence as shown in FIG. 5.

도 5는 일반적인 SoC 모델 시뮬레이션 결과를 검증하기 위해 시퀀스(sequence)를 비교하는 방법 흐름도이다. 먼저, 시퀀스를 비교할 때는 500단계에서 RTL 모델 시뮬레이터(204)와 TL 모델 시뮬레이터(202)는 파형(waveform)으로부터 신호를 읽고, 502단계에서 파형의 신호 값이 변할 때 마다 504단계에서 상기 신호 값들을 FIFO(First Input First Output)에 푸쉬(push)한다. 그리고 506단계에서 비교기(comparator)(210)가 상기 FIFO에 푸쉬된 신호 값을 읽어서 비교하면 시퀀스를 를 비교할 수 있다.5 is a method flow diagram comparing sequences to verify general SoC model simulation results. First, when comparing sequences, the RTL model simulator 204 and the TL model simulator 202 read the signals from the waveform in step 500, and the signal values are changed in step 504 whenever the signal value of the waveform changes in step 502. Push to FIFO (First Input First Output). In operation 506, when the comparator 210 reads and compares the signal values pushed to the FIFO, sequences may be compared.

그러나 도 5에 도시된 시퀀스를 비교하는 방법도 정확하지 않다. 도 3의 타이밍도를 살펴보면 RTL 모델 시뮬레이터(204)의 출력 신호 값들 중 HADDR의 시퀀스는 9C, A0, A2, A3, A4, A8, AC, B0이고 TL 모델 시뮬레이터(202)의 출력 신호 값들 중 HADDR의 시퀀스는 9C, A2, A3, A4, A8, AC, B0 임을 알 수 있다. 즉, RTL 모델 시뮬레이터(204)의 출력 신호인 HADDR의 시퀀스와 TL 모델 시뮬레이터(202)의 출력 신호인 HADDR의 시퀀스가 다르므로 실제로 모델링 결과가 일치하더라도 현재의 방법으로는 이러한 사실을 알 수 없게 된다.However, the method of comparing the sequences shown in FIG. 5 is also inaccurate. Referring to the timing diagram of FIG. 3, the sequence of HADDR among the output signal values of the RTL model simulator 204 is 9C, A0, A2, A3, A4, A8, AC, B0 and HADDR among the output signal values of the TL model simulator 202. It can be seen that the sequence of 9C, A2, A3, A4, A8, AC, B0. That is, since the sequence of the HADDR which is the output signal of the RTL model simulator 204 and the sequence of the HADDR which is the output signal of the TL model simulator 202 are different, this fact cannot be known by the present method even if the modeling result is identical. .

본 발명은 SoC 설계 시뮬레이터의 모델링을 검증하기 위한 장치 및 방법을 제공한다.The present invention provides an apparatus and method for verifying modeling of a SoC design simulator.

본 발명은 SoC 설계 시뮬레이터의 모델링의 결과 값을 비교하기 위한 장치 및 방법을 제공한다. The present invention provides an apparatus and method for comparing result values of modeling of a SoC design simulator.

본 발명에 따른 시스템 온 칩 설계를 위한 시뮬레이션 모델링을 검증하기 위한 장치는, 트랜잭션 레벨 시뮬레이터의 출력 신호를 입력받는 트랜잭션 레벨 파형 리더기와, 레지스터 트랜스퍼 레벨 시뮬레이터의 출력 신호를 입력받는 레지스터 트랜잭션 레벨 파형 리더기와, 상기 트랜잭션 레벨 시뮬레이터와 상기 레지스터 트랜스퍼 레벨 시뮬레이터가 출력한 신호들 중 상기 트랜잭션 레벨 파형 리더기와 레지스터 트랜스퍼 레벨 파형 리더기가 읽어야할 파일 이름과 신호 이름과, 프로토콜 해석기가 상기 트랜잭션 레벨 파형 리더기와 레지스터 트랜스퍼 레벨 파형 리더기로부터 출력된 신호들 중 어느 신호를 추출해야하는지를 지시하는 유효 정보를 전송하는 사용자 정보 입력기와, 상기 사용자 정보 입력기로부터 수신한 상기 파일 이름, 신호 이름, 유효 정보를 근거로 상기 트랜잭션 레벨 파형 리더기와 상기 레지스터 트랜스퍼 레벨 파형 리더기가 출력한 신호 값들 중 유효한 신호를 추출하여 트랜잭션 레벨 피포버퍼와 레지스터 트랜스퍼 레벨 피포버퍼로 푸쉬하는 상기 프로 토콜 해석기와, 상기 트랜잭션 레벨 피포버퍼와 상기 레지스터 트랜스퍼 레벨 피포버퍼에 저장된 신호 값들이 일치하는지 비교하는 비교기를 포함한다.An apparatus for verifying simulation modeling for system-on-chip design according to the present invention includes a transaction level waveform reader receiving an output signal of a transaction level simulator, a register transaction level waveform reader receiving an output signal of a register transfer level simulator; A file name and a signal name to be read by the transaction level waveform reader and register transfer level waveform reader among the signals output from the transaction level simulator and the register transfer level simulator, and a protocol interpreter is used by the transaction level waveform reader and register transfer level. A user information input unit for transmitting valid information indicating which of the signals output from the waveform reader should be extracted; the file name, signal name, received from the user information input unit; The protocol interpreter which extracts a valid signal from signal values output by the transaction level waveform reader and the register transfer level waveform reader based on the valid information and pushes the valid signal to a transaction level picobuffer and a register transfer level picobuffer, and the transaction level And a comparator for comparing whether the signal values stored in the PIF buffer and the register transfer level PIF buffer match.

본 발명에 따른 시스템 온 칩(System On Chip) 설계를 위한 시뮬레이션 모델링을 검증하기 위한 방법은, 트랜잭션 레벨 파형 리더기(Transaction Level Waveform Reader)가 트랜잭션 레벨(Transaction Level) 시뮬레이터의 출력 신호를 입력받는 과정과, 레지스터 트랜잭션 레벨 파형 리더기(Register Transfer Waveform Reader) 가 레지스터 트랜스퍼 레벨(Register Transfer Level) 시뮬레이터의 출력 신호를 입력받는 과정과, 사용자 정보 입력부가 상기 트랜잭션 레벨 시뮬레이터와 상기 레지스터 트랜스퍼 레벨 시뮬레이터가 출력한 신호들 중 상기 트랜잭션 레벨 파형 리더기와 레지스터 트랜스퍼 레벨 파형 리더기가 읽어야할 파일 이름과 신호 이름을 전송하는 과정과, 상기 사용자 정보 입력부가 프로토콜 해석기가 상기 트랜잭션 레벨 파형 리더기와 레지스터 트랜스퍼 레벨 파형 리더기로부터 출력된 신호들 중 어느 신호를 추출해야하는지를 지시하는 유효 정보를 전송하는 과정과, 상기 프로토콜 해석기가 상기 사용자 정보 입력기로부터 수신한 상기 파일 이름, 신호 이름, 유효 정보를 근거로 상기 트랜잭션 레벨 파형 리더기와 상기 레지스터 트랜스퍼 레벨 파형 리더기가 출력한 신호 값들 중 유효한 신호를 추출하여 트랜잭션 레벨 피포버퍼와 레지스터 트랜스퍼 레벨 피포버퍼로 푸쉬하는 과정과, 비교기가 상기 트랜잭션 레벨 피포버퍼와 상기 레지스터 트랜스퍼 레벨 피포버퍼에 저장된 신호 값들이 일치하는지 비교하는 과정을 포함한다.The method for verifying simulation modeling for system on chip design according to the present invention includes a process in which a transaction level waveform reader receives an output signal of a transaction level simulator; And a process in which a register transaction level waveform reader receives an output signal of a register transfer level simulator, and a user information input unit outputs signals output from the transaction level simulator and the register transfer level simulator. Transmitting a file name and a signal name to be read by the transaction level waveform reader and register transfer level waveform reader, and wherein the user information input unit adds a protocol interpreter to the transaction level waveform reader and register transfer level waveform reader. Transmitting valid information indicating which of the signals output from the signal is to be extracted; and the transaction level waveform reader based on the file name, signal name, and valid information received by the protocol interpreter from the user information input unit. And extracting valid signals from the signal values output by the register transfer level waveform reader and pushing them into a transaction level picobuffer and a register transfer level picobuffer, and a comparator stored in the transaction level picobuffer and the register transfer level picobuffer. And comparing the signal values with each other.

이하 본 발명의 바람직한 실시 예들의 상세한 설명이 첨부된 도면들을 참조하여 설명될 것이다. 하기에서 본 발명을 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. DETAILED DESCRIPTION Hereinafter, detailed descriptions of preferred embodiments of the present invention will be described with reference to the accompanying drawings. In the following description of the present invention, if it is determined that a detailed description of a related known function or configuration may unnecessarily obscure the subject matter of the present invention, the detailed description thereof will be omitted.

이하 본 발명의 실시 예에서는 RTL 모델 시뮬레이터와 TL 모델 시뮬레이터의 출력 신호 값(Signal Value)을 비교하는 비교 유닛에서 메모리에 액세스(Access)하기 위한 인터페이스 프로토콜(interface protocol)을 고려하여 결과를 비교함으로써 사이클 바이 사이클(cycle by cycle) 동작이 완전히 일치하지 않더라도 RTL 모델 시뮬레이터와 TL 모델 시뮬레이터의 결과가 같은지 확인할 수 있는 기술을 제안한다. 또한 RTL 모델 시뮬레이터와 TL 모델 시뮬레이터의 동작은 같은데 사이클(cycle)이 다른 경우 두 모델이 출력하는 신호의 사이클(cycle)이 얼마나 다른지 정량적으로 계산할 수 있는 방법을 제안한다.In the following embodiment of the present invention, the cycle by comparing the results in consideration of the interface protocol for accessing the memory in the comparison unit comparing the output signal values (Signal Value) of the RTL model simulator and the TL model simulator We propose a technique to check whether the results of the RTL model simulator and the TL model simulator are the same even if the cycle by cycle operation does not match completely. Also, when the operation of the RTL model simulator and the TL model simulator is the same, and the cycles are different, we propose a method to quantitatively calculate how different the cycles of the signals output by the two models are.

도 6은 본 발명의 실시 예에 따른 RTL 모델 시뮬레이터(204)와 TL 모델 시뮬레이터(202)의 신호 출력 값을 비교하기 위한 비교 유닛(600)의 상세 구성도이다. 6 is a detailed block diagram of a comparison unit 600 for comparing signal output values of the RTL model simulator 204 and the TL model simulator 202 according to an embodiment of the present invention.

본 발명의 실시 예에 따른 비교 유닛(600)은 사용자 정보 입력부(602), TL 모델 파형 리더기(Waveform reader)(604), RTL 모델 파형 리더기(606), TL 모델 프로토콜 해석기(608), RTL 모델 프로토콜 해석기(610), TL FIFO 버퍼(612), RTL FIFO 버퍼(616), 비교기(Comparator)(614)를 포함한다.The comparison unit 600 according to an exemplary embodiment of the present invention includes a user information input unit 602, a TL model waveform reader 604, an RTL model waveform reader 606, a TL model protocol interpreter 608, and an RTL model. A protocol interpreter 610, a TL FIFO buffer 612, an RTL FIFO buffer 616, and a comparator 614.

본 발명에서는 먼저 상기 TL 모델 시뮬레이터(202)와 RTL 모델 시뮬레이 터(204)에 메모리에 접근하기 위한 프로토콜로서 핸드쉐이킹 프로토콜이 모델링되어 있다고 가정하기로 한다. 따라서 TL 모델과 RTL 모델은 마스터와 슬레이브를 모델링하며, 그 모델링한 결과를 저장하고 있다. 그리고 이와 같은 내용은 아래의 도면들을 참조하여 후술하기로 한다. In the present invention, first, it is assumed that the handshaking protocol is modeled as a protocol for accessing the memory in the TL model simulator 202 and the RTL model simulator 204. Therefore, TL model and RTL model model master and slave and store the modeling result. Such details will be described later with reference to the drawings below.

사용자 정보 입력부(602)는 사용자로부터 파일 이름, 신호 이름 및 어떠한 신호가 유효한지를 알려주는 유효 정보(Valid Information)를 입력받으며, TL 모델 파형 리더기(604)로는 TL 모델 파형 리더기(604)가 TL 모델 시뮬레이터(202)의 출력 신호로부터 어떠한 신호 값을 읽어야 하는지를 지시하기 위한 사용자 정보를 전송한다. 여기서 사용자 정보(User Configuration)는 파일 이름(File name)과 신호 이름(Signal name) 정보로 구성된다. 예를 들어, AMBA AHB의 HTRANS 신호가 있다면 TL 모델 시뮬레이터(202)의 출력 신호에서 HTRANS 신호에 해당하는 신호가 어느 신호인지와 RTL 모델 시뮬레이터(204)의 출력 신호에서 HTRANS에 해당하는 신호(Signal)가 어느 신호인지에 대한 정보를 알려준다. The user information input unit 602 receives a file name, a signal name, and valid information indicating a valid signal from the user. The TL model waveform reader 604 is a TL model. User information for indicating which signal value to read from the output signal of the simulator 202 is transmitted. In this case, the user configuration includes a file name and a signal name information. For example, if there is an HTRANS signal of AMBA AHB, which signal corresponds to the HTRANS signal in the output signal of the TL model simulator 202 and the signal corresponding to HTRANS in the output signal of the RTL model simulator 204. Tells you which signal is.

그리고 TL 모델 파형 리더기(604)는 상기 사용자 정보 입력부(602)로부터 수신한 파일 이름과 신호 이름에 해당하는 신호를 TL 모델 시뮬레이터(202)로부터 읽어서 TL 모델 프로토콜 해석기(608)로 출력한다. The TL model waveform reader 604 reads a signal corresponding to the file name and signal name received from the user information input unit 602 from the TL model simulator 202 and outputs the signal to the TL model protocol interpreter 608.

실제로 TL 모델 파형 리더기(604)가 읽는 신호는 제2 트랜잭터(208)로부터 출력된 하위 레벨의 신호 값이다. 또한, 사용자 정보 입력부(602)는 RTL 모델 파형 리더기(606)로도 상기 파일 이름, 신호 이름과 어떠한 신호가 유효한지를 알려주는 유효 정보(Valid Information)도 같이 전송한다. In fact, the signal read by the TL model waveform reader 604 is a low level signal value output from the second translator 208. In addition, the user information input unit 602 also transmits the file name, signal name, and valid information (Valid Information) indicating which signal is valid to the RTL model waveform reader 606 together.

RTL 모델 파형 리더기(606)는 상기 사용자 정보 입력부(602)로부터 수신된 파일 이름, 신호 이름에 해당하는 신호를 RTL 모델 시뮬레이터(204)의 출력 신호로부터 읽은 후 RTL 모델 프로토콜 해석기(610)로 출력한다. The RTL model waveform reader 606 reads a signal corresponding to the file name and signal name received from the user information input unit 602 from the output signal of the RTL model simulator 204 and outputs the signal to the RTL model protocol interpreter 610. .

TL 프로토콜 해석기(608)는 메모리에 액세스하기 위한 버스 프로토콜을 고려하여 TL 모델 파형 리더기(604)로부터 수신된 신호들 중 유효한 정보만을 추출한다. 유효한 정보와 유효한 정보를 추출하는 방법은 프로토콜에 따라 다르지만, 일반적으로 핸드쉐이킹 프로토콜(Handshaking Protocol)이 사용된다. 이때 TL 프로토콜 해석기(608)는 TL 모델 파형 리더기(604)로부터 수신된 신호들 중 어떠한 신호가 유효한 신호인지를 나타내는 유효 정보는 사용자 정보 입력부(602)로부터 입력받는다. 상기 핸드쉐이킹 프로토콜에 대해서는 아래의 도 7을 참조하여 설명하기로 한다.The TL protocol interpreter 608 extracts only valid information among the signals received from the TL model waveform reader 604 in consideration of the bus protocol for accessing the memory. The valid information and the method of extracting the valid information vary depending on the protocol, but in general, a handshaking protocol is used. In this case, the TL protocol analyzer 608 receives valid information indicating which of the signals received from the TL model waveform reader 604 is a valid signal from the user information input unit 602. The handshaking protocol will be described with reference to FIG. 7 below.

즉, TL 프로토콜 해석기(608)는 상기 사용자 정보 입력부(602)로부터 입력받은 파일 이름, 신호 이름, 유효 정보를 근거로 상기 TL 모델 파형 리더기(604)로부터 출력된 신호들 중 유효한 신호 값들을 TL FIFO 버퍼(612)에 저장한다. 본 발명의 실시 예에서는 상기 프로토콜을 핸드쉐이킹 프로토콜로 가정하였으므로 상기 유효한 신호 값들은 요청(Request) 신호, 요청 정보(Request Information)신호, 응답(Response)신호, 응답 정보(Response Information)신호가 된다.That is, the TL protocol interpreter 608 selects valid signal values among the signals output from the TL model waveform reader 604 based on the file name, signal name, and valid information received from the user information input unit 602. Stored in the buffer 612. In the embodiment of the present invention, since the protocol is assumed to be a handshaking protocol, the valid signal values are a request signal, a request information signal, a response signal, and a response information signal.

RTL 프로토콜 해석기(610)는 메모리에 액세스하기 위한 버스 프로토콜을 고려하여 RTL 모델 파형 리더기(606)로부터 수신된 신호들 중 유효한 정보만을 추출한다. 유효한 정보와 유효한 정보를 추출하는 방법은 프로토콜에 따라 다르지만, 일반적으로 핸드쉐이킹 프로토콜(Handshaking Protocol)이 사용된다. 도 6에서는 상기 TL 모델 프로토콜 해석기(608)와 RTL 모델 프로토콜 해석기(610)를 별도의 블록으로 도시하였지만 하나의 블록으로 구성할 수도 있다.The RTL protocol interpreter 610 extracts only valid information among the signals received from the RTL model waveform reader 606 in consideration of the bus protocol for accessing the memory. The valid information and the method of extracting the valid information vary depending on the protocol, but in general, a handshaking protocol is used. In FIG. 6, the TL model protocol interpreter 608 and the RTL model protocol interpreter 610 are illustrated as separate blocks, but may be configured as one block.

TL 피포(First Input First Output : FIFO) 버퍼(612)는 TL 모델 프로토콜 해석기(608)로부터 출력된 신호 값(Signal value)들을 선입선출방식으로 인덱스(index)에 따라 저장한다. TL FIFO 버퍼(612)에 저장된 상기 신호 값들은 요소(Element)라 칭하며, TL 모델 프로토콜 해석기(608)에 의해 유효한 정보라 판단된 신호 값들인 요청(Request) 신호, 요청 정보(Request Information)신호, 응답(Response)신호, 응답 정보(Response Information)신호가 저장된다.The first input first output (FIFO) buffer 612 stores signal values output from the TL model protocol interpreter 608 according to an index on a first-in first-out basis. The signal values stored in the TL FIFO buffer 612 are called elements, and are request values, request information signals, which are signal values determined by the TL model protocol interpreter 608 to be valid information. A response signal and a response information signal are stored.

RTL FIFO 버퍼(616)는 RTL 모델 프로토콜 해석기(610)로부터 출력된 신호 값들을 선입선출방식으로 인덱스(index)에 따라 저장한다. 마찬가지로 RTL FIFO 버퍼(616)에는 RTL 모델 프로토콜 해석기(610)에 의해 유효한 정보라 판단된 신호 값들인 요청(Request) 신호, 요청 정보(Request Information)신호, 응답(Response)신호, 응답 정보(Response Information)신호가 저장되며 이러한 신호 값들을 요소라 칭하기로 한다.The RTL FIFO buffer 616 stores signal values output from the RTL model protocol interpreter 610 according to an index on a first-in first-out basis. Similarly, the RTL FIFO buffer 616 includes a request signal, a request information signal, a response signal, and response information, which are signal values determined as valid information by the RTL model protocol interpreter 610. The signal is stored and these signal values will be referred to as elements.

비교기(614)는 상기 TL FIFO 버퍼(612)와 RTL FIFO 버퍼(614)에 저장된 요소들의 펑션(Function)을 비교한다. 본 발명의 실시 예에 따라 요소의 펑션을 비교한다는 의미는 TL FIFO 버퍼(612)에 저장된 요청 신호, 요청 정보(request information) 신호, 응답 정보(Response information) 신호, 응답 신호가 RTL FIFO 버퍼(614)에 저장된 요청 신호, 요청 정보(request information) 신호, 응답 정 보(Response information) 신호, 응답 신호가 일치하는 지를 검사하는 것을 의미한다. 상술한 요청 신호, 요청 정보(request information) 신호, 응답 정보(Response information) 신호, 응답 신호에 대해서는 아래에서 도 7을 참조하여 설명하기로 한다. 만약 상기 요소들의 펑션이 같다면, 비교기(614)는 TL 모델 시뮬레이터(202)와 RTL 모델 시뮬레이터(204)의 사이클 정확도(Cycle Accuracy)를 비교하게 된다. 또한 상기 비교기(614)는 상기 두 FIFO 버퍼(612, 616)의 요소 펑션의 비교 결과와 사이클 정확도의 비교결과에 따른 결과를 표시부(618)를 통해 사용자로 출력하게 된다.Comparator 614 compares the function of the elements stored in the TL FIFO buffer 612 and the RTL FIFO buffer 614. Comparing the function of the elements according to an embodiment of the present invention means that the request signal, the request information signal, the response information signal, the response signal stored in the TL FIFO buffer 612 is the RTL FIFO buffer 614 Means that the request signal, the request information signal, the response information signal, and the response signal stored in the C-1 are matched. The request signal, the request information signal, the response information signal, and the response signal will be described below with reference to FIG. 7. If the functions of the elements are the same, the comparator 614 compares the cycle accuracy of the TL model simulator 202 and the RTL model simulator 204. In addition, the comparator 614 outputs the result according to the comparison result of the element functions of the two FIFO buffers 612 and 616 and the comparison result of the cycle accuracy to the user through the display unit 618.

또한 본 발명의 실시 예에서 TL FIFO 버퍼(612)와 RTL FIFO 버퍼(616)가 N개(index 0 ~ index N-1까지)의 크기(Size)를 갖는다고 가정하며, 비교기(614)는 먼저 RTL FIFO 버퍼(616)의 index 0인 요소 펑션과 TL FIFO 버퍼(614)의 index 0 번부터 N-1번째 요소 펑션까지 비교한다. 그리고 RTL FIFO 버퍼(616)의 index 1인 펑션과 TL FIFO 버퍼(614)의 index 0 번부터 N-1번째 요소 펑션까지 비교한다. 비교기9614)는 이러한 방법으로 FIFIO 버퍼안의 요소 값들을 비교하여 그 결과를 표시부(618)로 출력한다.In addition, in the embodiment of the present invention, it is assumed that the TL FIFO buffer 612 and the RTL FIFO buffer 616 have N sizes (from index 0 to index N-1), and the comparator 614 first The element function of index 0 of the RTL FIFO buffer 616 and the N-1 th element function of index 0 of the TL FIFO buffer 614 are compared. The function of index 1 of the RTL FIFO buffer 616 and the N-1 th element function of index 0 of the TL FIFO buffer 614 are compared. The comparator 9614 compares the element values in the FIFIO buffer in this manner and outputs the result to the display unit 618.

도 7은 본 발명의 실시 예에 따라 TL 모델 프로토콜 해석기(608)와 RTL 모델 프로토콜 해석기(610)가 유효한 정보를 추출하기 위한 핸드쉐이킹 프로토콜을 도시한 도면이다.7 is a diagram illustrating a handshaking protocol for extracting valid information by the TL model protocol interpreter 608 and the RTL model protocol interpreter 610 according to an exemplary embodiment of the present invention.

본 발명에서는 앞서 상술한 바와 같이 상기 TL 모델 시뮬레이터(202)와 RTL 모델 시뮬레이터(204)에 메모리에 접근하기 위한 프로토콜로서 핸드쉐이킹 프로토 콜이 모델링되어 있다고 가정한다. 따라서 TL 모델과 RTL 모델은 마스터와 슬레이브를 모델링하며, 그 모델링한 결과를 저장하고 있다. In the present invention, as described above, it is assumed that the handshaking protocol is modeled as a protocol for accessing the memory in the TL model simulator 202 and the RTL model simulator 204. Therefore, TL model and RTL model model master and slave and store the modeling result.

도 6과 도 7를 참조하면, 본 발명의 실시 예에 따른 프로토콜 해석기(608, 610)들은 TL 시뮬레이터(202)와 RTL 시뮬레이터(204)가 마스터와 슬레이브를 모델링한 결과로부터 request 와 response 신호를 추출하여 FIFO 버퍼(612, 606)에 각각 넣는다. 6 and 7, protocol interpreters 608 and 610 according to an embodiment of the present invention extract the request and response signals from the results of modeling the master and slave by the TL simulator 202 and the RTL simulator 204. To the FIFO buffers 612 and 606, respectively.

도 7에서 Data를 주거나 받을 때 먼저 트랜스퍼(transfer)를 시작하는 쪽이 마스터(master)(700)이고 마스터(700)에서 트랜스퍼(transfer)가 오면 반응을 하는 쪽이 슬레이브(slave)(702)이다. 트랜스퍼란 복수개의 요청(Request)신호와 그에 대한 응답(Response) 신호들의 묶음을 의미하며, 도 7에서는 참조번호 720과 같다. In FIG. 7, when the data is transmitted or received, the first transfer is the master 700 and the slave 702 responds when the transfer comes from the master 700. . Transfer refers to a bundle of a plurality of request signals and response signals, and the same as reference numeral 720 in FIG. 7.

먼저 마스터(700)가 슬레이브(702)로 트랜스퍼를 시작하려면 슬레이브(702)에 트랜스퍼에 관한 정보를 전달해 줘야 한다. 만약 데이터(Data)를 요구하는 트랜스퍼라면 어떤 데이터가 필요한지, 트랜스퍼의 종류는 어떤 것인 지 등을 마스터(700)가 슬레이브(702)에 알려 줘야 한다. 그러한 트랜스퍼에 관한 정보를 도 7에서는 요청 정보(request information)신호라 표현하였다. 즉, 요청 정보(request information) 신호란 슬레이브(702)가 마스터(700)의 요청(request) 신호를 이해하는 데 필요한 신호들의 묶음이다.First, in order for the master 700 to start the transfer to the slave 702, information about the transfer must be transmitted to the slave 702. If the transfer requires data, the master 700 needs to inform the slave 702 of what data is required and what kind of transfer is required. Information about such a transfer is represented as a request information signal in FIG. 7. That is, the request information signal is a bundle of signals necessary for the slave 702 to understand the request signal of the master 700.

도 7에서 요청(request)(704)라 표현된 신호는 요청 정보(request information)(706)가 언제 유효(valid)한지 알려 주는 신호이다. 요청 신호(Request signal)(704)는 여러 개의 슬레이브들이 요청 정보(request information)신호를 공유하고 있을 경우 어떤 특정 슬레이브에게만 요청 정보(request information)신호를 보내고자 할 때도 사용된다. 슬레이브(702)는 상기 요청 신호(704)를 받으면 요청 정보(request information) 신호(706)를 해석하여 해당하는 반응을 보이게 된다. In FIG. 7, a signal represented as a request 704 is a signal indicating when the request information 706 is valid. The request signal 704 is also used to send a request information signal only to a specific slave when several slaves share the request information signal. When the slave 702 receives the request signal 704, the slave 702 interprets the request information signal 706 and displays a corresponding response.

만약 슬레이브(702)는 마스터(700)가 데이터를 요구하였다면 그에 해당하는 데이터를 보내고 에러(error)가 발생했다면 에러 발생 사실을 마스터(700)로 알려 줘야 한다. 이러한 슬레이브(702)의 반응을 도 7에서는 응답 정보(response information)(710) 신호라 표현하였다. 다시 말해 응답 정보(response information) 신호(710)는 마스터(700)의 요청 신호(704)에 대한 슬레이브(702)의 응답에 해당하는 신호들의 묶음이다.If the slave 702 has requested data from the master 700, the slave 702 should send the corresponding data and inform the master 700 of the error if an error has occurred. The response of the slave 702 is represented as a response information 710 signal in FIG. 7. In other words, the response information signal 710 is a bundle of signals corresponding to the response of the slave 702 to the request signal 704 of the master 700.

슬레이브(702)가 마스터(700)로 전송하는 응답 정보(response information) 신호(710)도 언제 유효(valid)한지를 마스터(700)로 알려 줄 필요가 있다. 도 7에서는 응답(response)(708)이라고 표현한 신호(signal)가 마스터(700)로 언제 응답 정보(710)가 유효한지 알려 주는 신호이다.It is necessary to inform the master 700 when the response information signal 710 sent by the slave 702 to the master 700 is also valid. In FIG. 7, a signal denoted as a response 708 is a signal indicating to the master 700 when the response information 710 is valid.

요청/응답 신호는 implicit한 경우도 있다. 메모리 접근(Memory access)의 경우처럼 마스터(700)가 요청(request)신호를 보내고 슬레이브(slave)(702)로부터 특별한 응답(response)신호가 없어도 일정한 접근 시간(access time)을 기다리면 접근(access)이 성공했다고 가정하는 경우이다. 이러한 경우 일정한 접근 시간(access time)동안 요청 신호(request signal)가 활성화(active)되어 있다가 접근 시간(access time)이 지나면 비활성화(inactive)되기 때문에 요청 신호(request signal)가 비활성화(inactive)되는 시점이 응답 정보(response information) 신호가 유효한 시점이라고 볼 수 있다. The request / response signal may be implicit. As in the case of memory access, when the master 700 sends a request signal and waits for a certain access time without a special response signal from the slave 702, access is performed. This is the case assuming success. In this case, the request signal is inactive for a certain access time, and the request signal is inactive since the access time is inactive. The time point may be regarded as the time point at which the response information signal is valid.

본 발명은 마스터(700)와 슬레이브(702)가 프로토콜(protocol)에 맞게 동작하는지를 비교하는 것이 아니고, RTL 모델 시뮬레이터(204)에서 모델링된 마스터(700)와 슬레이브(702)가 주고받은 요청 정보 신호와 응답 정보 신호와 동일한 요청 정보 신호와 응답 정보 신호를 TL 모델 시뮬레이터(202)에서 모델링된 마스터(700)와 슬레이브(702)에서도 주고받는지를 비교하는 것이다.The present invention does not compare whether the master 700 and the slave 702 operate according to the protocol, and request information signals exchanged between the master 700 and the slave 702 modeled by the RTL model simulator 204 are not compared. And whether the master 700 and the slave 702 modeled by the TL model simulator 202 are also exchanged.

즉, 마스터(700)와 슬레이브(702)가 같은 요청 정보 신호와 같은 응답 정보 신호를 주고 받는지 RTL 모델 시뮬레이터(204)와TL 모델 시뮬레이터(202)의 결과를 보고 판단한다.That is, the master 700 and the slave 702 send and receive response information signals, such as the same request information signal, by determining the results of the RTL model simulator 204 and the TL model simulator 202.

즉, 본 발명은 같은 요청(request) 신호와 요청 정보(request information)를 TL 모델 시뮬레이터(202)와 RTL 모델 시뮬레이터(204)에 입력하였을 때 두 모델 시뮬레이터에서 같은 응답(response) 신호와 응답 정보(response information)가 출력하는지를 메모리에 접근하기 위한 버스 프로토콜을 고려하여 비교하는 것이다.That is, according to the present invention, when the same request signal and request information are input to the TL model simulator 202 and the RTL model simulator 204, the same response signal and response information ( The response information is compared against the bus protocol for accessing the memory.

프로토콜(Protocol)을 고려한다는 의미는 응답 신호(response signal)가 활성(active)되지 않은 응답 정보(response information)신호는 무시하고 응답 신호(response signal)가 활성(active)되어 있을 때의 응답 정보(response information) 신호만을 비교하여 같은지 확인하는 것이다. 응답 신호(Response signal)를 기준으로 응답 정보(response information) 신호를 비교하기 때문에 사이클(cycle)이 달라져도 비교하는데 문제가 없다. 왜냐하면, 프로토콜을 고려하면 사이클이 달라지더라도 데이터가 언제 유효한지 알 수 있기 때문이다.Considering the protocol means that the response information when the response signal is active while ignoring the response information signal in which the response signal is not active ( response information) compares only signals and checks for equality Since the response information signals are compared based on the response signals, there is no problem in comparing the cycles. This is because considering the protocol, we can know when the data is valid even if the cycles are different.

본 발명 또한 TL 모델 시뮬레이터(202)와 RTL 모델 시뮬레이터(204)의 사이클 정확도(cycle accuracy) 검증을 위해 사이클 정확도(cycle accuracy)를 계산해 준다. 본 발명의 실시 예에 따라 비교기(614)가 계산하는 사이클 정확도(cycle accuracy)는 다음과 같은 2가지 정보(information)들로 구성된다. The present invention also calculates cycle accuracy for cycle accuracy verification of the TL model simulator 202 and the RTL model simulator 204. According to an embodiment of the present invention, the cycle accuracy calculated by the comparator 614 is composed of the following two informations.

레이턴시 정확도(Latency Accuracy)와 듀레이션 정확도(Duration accuracy)가 그것이다.Latency accuracy and duration accuracy.

상술한 바를 개념적으로 나타내면 아래의 도 8과 같다.Conceptually showing the above bar is as shown in Figure 8 below.

도 8은 본 발명의 실시 예에 따른 비교기(614)가 사이클 정확도를 계산하는 과정을 개념적으로 도시한 도면이다.8 is a diagram conceptually illustrating a process of calculating a cycle accuracy by a comparator 614 according to an embodiment of the present invention.

먼저, 도 8을 설명하기 전에 이하에서 사용되는 용어들에 대한 정의를 하기로 한다.First, the terms used below will be defined before explaining FIG. 8.

트랜스퍼(Transfer) : 복수개의 Request신호와 Response 신호의 묶음.Transfer: Bundle of multiple request and response signals.

초기(Initiate)(820) : 트랜스퍼중에서 첫 번째 Request 신호가 발생한 시점.Initial (820): The time point at which the first request signal occurs in the transfer.

종료(Finish)(822) : 트랜스퍼중에서 마지막 Response 신호가 발생한 시점.Finish (822): When the last response signal occurs during transfer.

레이턴시 정확도(Latency Accuracy)(800, 802) : RTL 모델 시뮬레이터(204)에서 첫 번째 Request 신호가 발생한 시점과 TL 모델 시뮬레이터(202)에서 첫 번째 Request 신호가 발생한 시점의 사이클이 어느 정도 같은지 측정한 값 (마스터의 경우). RTL 모델 시뮬레이터(204)에서 첫 번째 Response 신호가 발생한 시점과 TL 모 델 시뮬레이터(202)에서 첫 번째 Response 신호가 발생한 시점의 사이클이 어느 정도 같은지 측정한 값 (슬레이브의 경우).Latency Accuracy (800, 802): A measure of the equality of cycles between when the first request signal occurs in the RTL model simulator 204 and when the first request signal occurs in the TL model simulator 202. (For master). The measured value of the cycle between the time when the first response signal occurs in the RTL model simulator 204 and the time when the first response signal occurs in the TL model simulator 202 (for the slave).

듀레이션 정확도(Duration accuracy)(804) : RTL 모델 시뮬레이터(204)에서 첫 번째 Requset 신호가 발생한 시점과 마지막(Final) Response 신호가 발생한 시점의 길이와 TL 모델 시뮬레이터(202)에서 첫 번째 Requset 신호가 발생한 시점과 마지막(Final) Response 신호가 발생한 시점의 길이가 어느 정도 같은지 측정한 값.Duration accuracy 804: Length of when the first Requset signal is generated and the final response signal is generated in the RTL model simulator 204 and when the first Requset signal is generated in the TL model simulator 202. A measure of how much the length of a time point and the time of the final response signal is generated.

버스(Bus) 관점에서 봤을 때는 버스를 점유하기 시작하는 시점을 초기(Initiate)시점이라 할 수 있고, release 하는 시점을 종료(Finish)시점이라 할 수 있다.From the point of view of the bus, the starting point of the occupancy of the bus is called the initial point, and the release point is called the finish point.

레이턴시 정확도(Latency accuracy)(800, 802)는 TL 모델 시뮬레이터(202)와 RTL 모델 시뮬레이터(204)에서 트랜스퍼(transfer)가 initiate되는 시점이 얼마나 정확한지를 나타낸다. 참조번호 806는 RTL 트랜스퍼(818)중 제일 먼저 요청 신호(806)가 발생한 시점 즉, 초기(initiate)지점이 되며, 참조번호 810의 경우에는 TL 트랜스퍼(816)중 제일 먼저 요청 신호(810)가 발생한 시점 즉, 초기 지점이 됨으로 비교기는 참조번호 820과 같이 이 두 지점을 비교하여 마스터(700)에서의 레이턴시 정확도(800)를 측정하게 된다.Latency accuracy 800, 802 indicates how accurate the timing of transfer is initiated in TL model simulator 202 and RTL model simulator 204. Reference numeral 806 denotes a point in time at which the request signal 806 occurs first of the RTL transfers 818, that is, an initial point. In the case of reference numeral 810, the first request signal 810 of the TL transfers 816 is generated. Since the point of occurrence, that is, the initial point, the comparator compares the two points as shown by reference numeral 820 to measure the latency accuracy 800 at the master 700.

RTL 트랜스퍼(818)는 RTL 모델 시뮬레이터(204)에서 발생한 요청 신호와 응답 신호들의 묶음이고, TL 트랜스퍼(816)는 TL 모델 시뮬레이터(202)에서 발생한 요청 신호와 응답 신호들의 묶음이다.The RTL transfer 818 is a bundle of request signals and response signals generated in the RTL model simulator 204, and the TL transfer 816 is a bundle of request signals and response signals generated in the TL model simulator 202.

즉, 본 발명의 실시 예에 따른 비교기(614)는 마스터(Master)(700)의 레이턴시 정확도(800)를 측정할 경우에는 RTL 트랜스퍼(818)의 초기(Initiate) 지점과 TL 트랜스퍼(816)의 초기 지점을 비교한다. 그리고 슬레이브(702)의 레이턴시 정확도(802)를 비교하기 위해서는 TL 모델 시뮬레이터(202)와 RTL 모델 시뮬레이터(204)와의 종료(finish) 시점(822)을 비교한다. 즉, TL 트랜스퍼(816)에서 가장 마지막에 종료(finish) 신호가 발생한 시점(812)과 RTL 트랜스퍼(818)에서 가장 마지막에 종료(finish) 신호가 발생한 시점(814)을 비교하게 된다.That is, the comparator 614 according to the embodiment of the present invention measures the latency accuracy 800 of the master 700, and thus, the initial point of the RTL transfer 818 and the TL transfer 816. Compare the initial points. To compare the latency accuracy 802 of the slave 702, the finish point 822 of the TL model simulator 202 and the RTL model simulator 204 is compared. That is, a time point 812 at which a finish signal is generated last in the TL transfer 816 is compared with a time point 814 at which a finish signal last occurred in the RTL transfer 818.

레이턴시 정확도(Latency accuracy)는 SoC 시스템(system)의 퍼포먼스 측정(performance estimation)결과의 정확도를 예측하는데 사용할 수 있는 지표이다. 듀레이션 정확도(Duration accuracy)는 트랜스퍼(transfer)가 초기화(initiate)된 후 종료(finish) 될 때까지의 듀레이션(duration)이 얼마나 정확한가를 나타낸다. Latency accuracy is an indicator that can be used to predict the accuracy of the performance estimation results of the SoC system. Duration accuracy indicates how accurate the duration is from the transfer to the finish after the initialization is initiated.

마스터를 검증할 때 TL 모델 시뮬레이터(202)와 RTL 모델 시뮬레이터(204)는 같은 응답 신호(response)를 받는다. 그러나 트랜스퍼(transfer)를 종료(finish) 시키는 것은 응답 신호(response)와 다를 수 있으므로 마스터를 검증할 때도 듀레이션 정확도(duration accuracy)가 의미를 갖는다. 듀레이션 정확도(Duration accuracy)는 버스(bus)처럼 여러 마스터와 슬레이브가 공유하는 인터페이스(interface)의 utilization의 정확도를 예측하는데 사용될 수 있다. When verifying the master, the TL model simulator 202 and the RTL model simulator 204 receive the same response. However, finalizing the transfer can be different from the response, so the duration accuracy also makes sense when verifying the master. Duration accuracy can be used to predict the accuracy of utilization of an interface shared by multiple masters and slaves, like a bus.

또한 듀레이션이 SoC 시스템의 퍼포먼스(performance)에도 영향을 줌으로 듀레이션 정확도(duration accuracy)는 퍼포먼스 측정(performance estimation) 결과의 정확도를 예측하는데도 사용된다.Also, because duration affects the performance of the SoC system, duration accuracy is also used to predict the accuracy of performance estimation results.

그리고 비교기(614)가 사이클 정확도(Cycle accuracy)를 계산하기 위해서는 TL 모델 프로토콜 해석기(608)와 RTL 모델 프로토콜 해석기(610)가 각각 TL 모델 파형 리더기(604)와 RTL 모델 파형 리더기(606)에서 사이클 정보(cycle information)도 추출해 줘야 한다. In order for the comparator 614 to calculate cycle accuracy, the TL model protocol interpreter 608 and the RTL model protocol interpreter 610 may cycle through the TL model waveform reader 604 and the RTL model waveform reader 606, respectively. Cycle information should also be extracted.

사이클 정보(Cycle Information)는 initiate 와 finish 사이클이 몇 번째 사이클인지 알려주는 정보로서, 사이클 정보(Cycle information)에는 트랜스퍼(transfer)가 initiate되는 시점과 finish되는 시점이 포함되어 있으면 된다. 이 두 시점만 알고 있으면 비교기(614)는 레이턴시 정확도(Latency accuracy)와 듀레이션 정확도(duration accuracy)를 계산할 수 있다. Cycle information is information indicating the number of cycles between the initiate and finish cycles. Cycle information may include a time point at which a transfer is initiated and a time point at which the transfer is completed. Knowing only these two points in time, the comparator 614 can calculate the latency accuracy and the duration accuracy.

TL 모델 프로토콜 해석기(608)와 RTL 모델 프로토콜 해석기(610)는 트랜스퍼(transfer)가 initiate되는 시점과 finish되는 시점의 사이클 정보(cycle information)를 응답 정보(response information)와 함께 비교기(614)로 전달한다. The TL model protocol interpreter 608 and the RTL model protocol interpreter 610 transmit cycle information at the time when the transfer is initiated and finished together with the response information to the comparator 614. do.

비교기(614)는 먼저 상술한 바와 같이 두 FIFO 버퍼(612, 616)의 요소 펑션이 같은지 검사한다. 펑션이 같으면 상기 사이클 정보(cycle information)를 이용하여 사이클 정확도(cycle accuracy)를 계산한다. 비교기(614)는 사이클 정확도(Cycle accuracy)를 계산할 때 아래의 <수학식 1>과 <수학식 2>를 사용한다.The comparator 614 first checks whether the element functions of the two FIFO buffers 612 and 616 are the same as described above. If the functions are the same, cycle accuracy is calculated using the cycle information. The comparator 614 uses Equations 1 and 2 below when calculating cycle accuracy.

먼저, 레이턴시 정확도(Latency Accuracy)는 아래의 <수학식 1>을 사용하여 계산한다.First, latency accuracy is calculated using Equation 1 below.

Figure 112006058336713-PAT00001
Figure 112006058336713-PAT00001

where

Figure 112006058336713-PAT00002
(Master)where
Figure 112006058336713-PAT00002
(Master)

or

Figure 112006058336713-PAT00003
(Slave)or
Figure 112006058336713-PAT00003
(Slave)

듀레이션 정확도(Duration Accuracy)는 아래의 <수학식 2>와 같이 계산한다.Duration Accuracy is calculated as shown in Equation 2 below.

Figure 112006058336713-PAT00004
Figure 112006058336713-PAT00004

where

Figure 112006058336713-PAT00005
where
Figure 112006058336713-PAT00005

상기 <수학식 1>과 <수학식 2>에서 InitiateCycleTL과 InitiateCycleRTL 은 각각 TL 모델 시뮬레이터(202)와 RTL 모델 시뮬레이터(204)에서 트랜스퍼(transfer)의 initiate cycle을 의미한다. 마찬가지로 FinishCycleTL 과 FinishCycleRTL 은 각각 TL 모델 시뮬레이터(202)와 RTL 모델 시뮬레이터(204)의 종료 사이클(finish cycle)을 나타낸다. 종료 사이클은 종료(finish)가 몇 번째 사이클에 있는지를 알려주는 정보이다. 비교기(614)는 Initiate cycle과 finish cycle을 이용하여 레이턴시 에러(latency error)와 듀레이션 에러(duration error)를 구할 수 있다. 또한, 에러를 모두 누적하여 총 시뮬레이션 사이클(Total simulation cycle)로 나누면 에러 율(error rate)을 계산할 수 있고 이를 1에서 빼면 정확도(accuracy)가 계산된다. In Equation 1 and Equation 2, InitiateCycle TL and InitiateCycle RTL mean an initiation cycle of transfer in the TL model simulator 202 and the RTL model simulator 204, respectively. Similarly, FinishCycle TL and FinishCycle RTL represent the finish cycles of TL model simulator 202 and RTL model simulator 204, respectively. The end cycle is information indicating which cycle the finish is in. The comparator 614 may calculate a latency error and a duration error using an initialize cycle and a finish cycle. In addition, the error rate can be calculated by accumulating all the errors and dividing by the total simulation cycle, and subtracting this from 1 calculates the accuracy.

TotalSimulationCycleRTL 은 RTL simulation이 수행된 총 cycle이다. 여기서는 RTL 모델 시뮬레이터(204)를 기준으로 얼마나 정확한지를 나타내는 것이기 때문에 RTL 모델 시뮬레이터(204)의 시뮬레이션 사이클을 기준으로 하였다. 사이클 정확도(Cycle accuracy)는 입력되는 테스트 벡터(test vector)에 dependency가 있으며, 따라서 사이클 정확도(cycle accuracy)를 계산할 때 테스트하고자 하는 기능별로 정확도(accuracy)를 계산하는 것이 바람직하다.TotalSimulationCycle RTL is the total cycle for which RTL simulation is performed. In this case, since it indicates how accurate the RTL model simulator 204 is, the simulation cycle of the RTL model simulator 204 is used. Cycle accuracy depends on the input test vector. Therefore, when calculating the cycle accuracy, it is desirable to calculate the accuracy for each function to be tested.

도 9는 본 발명의 실시 예에 따른 RTL 모델 프로토콜 해석기(610)의 동작 흐름도이다.9 is a flowchart illustrating an operation of the RTL model protocol interpreter 610 according to an exemplary embodiment of the present invention.

먼저 900단계에서 RTL 모델 프로토콜 해석기(610)는 RTL 모델 파형 리더기(606)로부터 신호를 입력받는다. 그리고 RTL 모델 프로토콜 해석기(610)는 요청 정보 신호, 응답 정보 신호, 사이클 정보를 추출하기 위해 사용자 정보 입력부(602)로부터 수신된 파일 이름, 신호 이름, 유효 정보를 수신한다.First, in step 900, the RTL model protocol interpreter 610 receives a signal from the RTL model waveform reader 606. The RTL model protocol interpreter 610 receives a file name, a signal name, and valid information received from the user information input unit 602 to extract a request information signal, a response information signal, and cycle information.

그리고 902단계에서 RTL 모델 프로토콜 해석기(610)는 상기 RTL 모델 파형 리더기(604)로부터 입력받은 신호 값 들 중 요청 신호(Request)가 활성화 되었는지 검사한다. 요청 신호는 하나의 신호와 1:1로 매핑될 수도 있고 여러 신호들의 조합이 될 수도 있다. 상기 902단계의 검사결과 상기 요청 신호가 활성화되었다면, 904단계에서 상기 RTL 파형 리더기(606)로부터 수신한 신호들로부터 요청 정보와 사이클 정보를 추출하고, 906단계에서 상기 추출한 요청 정보(Request Information)와 초기 사이클(Initiate Cycle)를 RTL FIFO 버퍼(616)에 푸쉬(Push)한다. 어느 신호가 요청 정보(request information)인지 언제가 초기 사이클(initiate cycle)인지에 대한 정보는 사용자 정보 입력부(user configuration)(602)로부터 받는다.In operation 902, the RTL model protocol analyzer 610 checks whether a request signal is activated among the signal values received from the RTL model waveform reader 604. The request signal may be mapped 1: 1 with one signal or may be a combination of several signals. If the request signal is activated in step 902, the request information and cycle information are extracted from the signals received from the RTL waveform reader 606 in step 904, and the extracted request information and the request information in step 906. An initial cycle is pushed to the RTL FIFO buffer 616. Information on which signal is request information and when is an initial cycle is received from a user information input unit 602.

908단계에서 다시 RTL 모델 프로토콜 해석기(610)는 RTL 모델 파형 리더기(606)로부터 신호를 입력받는다. 이하에서는 응답 신호가 활성화되었는지를 검사하고, 응답 정보와 종료 사이클 정보를 추출하기 위한 동작이 수행된다. 910단계에서 RTL 모델 프로토콜 해석기(610)는 응답 신호가 활성화(Active) 되었는지를 검사한다. 상기 910단계의 검사결과 상기 응답 신호가 활성화되었다면, 912단계에서 RTL 모델 프로토콜 해석기(610)는 응답 정보 신호와 종료 사이클을 추출한다. 어느 신호가 응답 정보(Response Information) 신호인지 언제가 종료 사이클(Finish Cycle)인지에 대한 정보는 역시 마찬가지로 사용자 정보 입력부(602)로부터 수신한다.In step 908, the RTL model protocol interpreter 610 receives a signal from the RTL model waveform reader 606. Hereinafter, an operation for checking whether the response signal is activated and extracting the response information and the end cycle information is performed. In step 910, the RTL model protocol interpreter 610 checks whether the response signal is activated. If the response signal is activated in step 910, the RTL model protocol interpreter 610 extracts a response information signal and an end cycle in step 912. Information on which signal is a response information signal and when is a finish cycle is also received from the user information input unit 602 as well.

914단계에서 RTL 모델 프로토콜 해석기(610)는 상기 추출된 응답 정보와 종료 사이클을 RTL FIFO 버퍼(616)에 푸쉬한다.In step 914, the RTL model protocol interpreter 610 pushes the extracted response information and the end cycle to the RTL FIFO buffer 616.

도 10은 본 발명의 실시 예에 따른 TL 모델 프로토콜 해석기(608)의 동작 흐름도이다. 10 is an operation flowchart of the TL model protocol interpreter 608 according to an embodiment of the present invention.

먼저 1000단계에서 TL 모델 프로토콜 해석기(608)는 TL 모델 파형 리더기(604)로부터 신호를 입력받는다. 그리고 TL 모델 프로토콜 해석기(608)는 요청 정보 신호, 응답 정보 신호, 사이클 정보를 추출하기 위해 사용자 정보 입력부(602)로부터 수신된 파일 이름, 신호 이름, 유효 정보를 수신한다.First, in step 1000, the TL model protocol interpreter 608 receives a signal from the TL model waveform reader 604. The TL model protocol interpreter 608 receives the file name, signal name, and valid information received from the user information input unit 602 to extract the request information signal, the response information signal, and the cycle information.

그리고 1002단계에서 TL 모델 프로토콜 해석기(608)는 상기 TL 모델 파형 리더기(604)로부터 입력받은 신호 값 들 중 요청 신호(Request)가 활성화 되었는지 검사한다. 요청 신호는 하나의 신호와 1:1로 매핑될 수도 있고 여러 신호들의 조합이 될 수도 있다. 상기 1002단계의 검사결과 상기 요청 신호가 활성화되었다면, 1004단계에서 상기 TL 파형 리더기(604)로부터 수신한 신호들로부터 요청 정보와 사이클 정보를 추출하고, 1006단계에서 상기 추출한 요청 정보(Request Information)와 초기 사이클(Initiate Cycle)를 TL FIFO 버퍼(612)에 푸쉬(Push)한다. 어느 신호가 요청 정보(request information)인지 언제가 초기 사이클(initiate cycle)인지에 대한 정보는 사용자 정보 입력부(user configuration)(602)로부터 받는다.In step 1002, the TL model protocol analyzer 608 checks whether a request signal (Request) of the signal values received from the TL model waveform reader 604 is activated. The request signal may be mapped 1: 1 with one signal or may be a combination of several signals. If the request signal is activated in step 1002, the request information and cycle information are extracted from the signals received from the TL waveform reader 604 in step 1004, and in step 1006, the request information and the request information are extracted. An Initial Cycle is pushed into the TL FIFO buffer 612. Information on which signal is request information and when is an initial cycle is received from a user information input unit 602.

1008단계에서 다시 TL 모델 프로토콜 해석기(608)는 TL 모델 파형 리더기(604)로부터 신호를 입력받는다. 이하에서는 응답 신호가 활성화되었는지를 검사 하고, 응답 정보와 종료 사이클 정보를 추출하기 위한 동작이 수행된다. 1010단계에서 TL 모델 프로토콜 해석기(608)는 응답 신호가 활성화(Active) 되었는지를 검사한다. 상기 1010단계의 검사결과 상기 응답 신호가 활성화되었다면, 1012단계에서 TL 모델 프로토콜 해석기(608)는 응답 정보 신호와 종료 사이클을 추출한다. 어느 신호가 응답 정보(Response Information) 신호인지 언제가 종료 사이클(Finish Cycle)인지에 대한 정보는 역시 마찬가지로 사용자 정보 입력부(602)로부터 수신한다.In step 1008, the TL model protocol interpreter 608 receives a signal from the TL model waveform reader 604. Hereinafter, an operation for checking whether a response signal is activated and extracting response information and end cycle information is performed. In step 1010, the TL model protocol interpreter 608 checks whether the response signal is activated. If the response signal is activated in step 1010, the TL model protocol interpreter 608 extracts a response information signal and an end cycle in step 1012. Information on which signal is a response information signal and when is a finish cycle is also received from the user information input unit 602 as well.

1014단계에서 TL 모델 프로토콜 해석기(608)는 상기 추출된 응답 정보와 종료 사이클을 TL FIFO 버퍼(612)에 푸쉬한다.In step 1014, the TL model protocol interpreter 608 pushes the extracted response information and the end cycle to the TL FIFO buffer 612.

본 발명의 실시 예에서는 설명의 편의를 위해 프로토콜 해석기(608, 610)를 TL 모델과 RTL 모델에 따라 별개로 분리하였지만, 실제로는 하나의 프로토콜 해석기로도 구현할 수 있다. In the embodiment of the present invention, the protocol interpreters 608 and 610 are separately separated according to the TL model and the RTL model for convenience of description, but may be implemented as one protocol interpreter in practice.

상기 도 9와 도 10을 참조하여 설명한 본 발명의 핵심인 프로토콜 해석기(608, 610)의 동작을 다시 살펴보면, 각각 RTL 모델 파형 리더기(606)와 TL 모델 파형 리더기(604)로부터 파형(waveform)을 읽어서 필요한 정보를 추출하여 FIFO 버퍼(612, 616)에 푸쉬(push)한다. 프로토콜 해석기(608, 610)는 필요한 신호(signal) 값들을 RTL 모델 파형 리더기(606)와 TL 모델 파형 리더기(604)로부터 받아 오고 요청 정보(request information), 응답 정보(response information), 사이클 정보(cycle information)를 추출하는데 필요한 환경 정보(configuration)는 사용자 정보 입력부(user configuration)로부터 받아 온다. Referring back to the operation of the protocol interpreters 608 and 610, which are the core of the present invention described with reference to Figs. 9 and 10, the waveforms from the RTL model waveform reader 606 and the TL model waveform reader 604 are respectively shown. The necessary information is read out and pushed to the FIFO buffers 612 and 616. The protocol interpreters 608 and 610 receive the required signal values from the RTL model waveform reader 606 and the TL model waveform reader 604, and request information, response information, and cycle information. Configuration information required to extract cycle information is obtained from a user information input unit.

프로토콜 해석기(608, 610)는 RTL 모델 파형 리더기(606)와 TL 모델 파형 리더기(604)로부터 신호들을 읽어 와서 요청(request)신호가 활성화(active)되었는지 판단한다. 요청 신호(Request signal)는 하나의 신호(Signal)와 1:1 mapping될 수도 있고 여러 신호들의 조합이 될 수도 있다.  The protocol interpreters 608 and 610 read the signals from the RTL model waveform reader 606 and the TL model waveform reader 604 to determine whether the request signal is active. The request signal may be mapped 1: 1 with one signal or may be a combination of several signals.

어떤 신호가 요청 신호(request signal)에 해당하는지 또는 어떤 신호들이 어떠한 조합으로 요청 신호(request signal)들을 만들어 내는지에 대한 정보는 사용자 정보 입력부(602)로부터 받는다. 그리고 프로토콜 해석기(608, 610)는 요청 신호(Request signal)가 활성화(active)되면 그 때의 요청 정보(request information)와 초기 사이클(initiate cycle)을 추출하여 FIFO 버퍼(612, 616)에 푸쉬(push)한다. 어느 신호가 요청 정보(request information)인지 언제가 초기 사이클(initiate cycle)인지도 사용자 정보 입력부(602)로부터 받는다. 그리고, 프로토콜 해석기(608, 610)는 응답 신호가 활성화될 때까지 기다렸다가 응답 신호가 활성화되면 응답 정보(response information)와 종료 사이클(finish cycle)을 FIFO 버퍼(612, 616)에 푸쉬한다. 이 때도 요청(request)과 마찬가지로 RTL 모델 파형 리더기(606)와 TL 모델 파형 리더기(604)와 사용자 정보 입력부(602)로부터 필요한 정보를 제공 받는다.Information about which signal corresponds to the request signal or in which combinations produce the request signals is received from the user information input unit 602. When the request signal is activated, the protocol interpreter 608 and 610 extracts the request information and the initial cycle at the time and pushes the push signal into the FIFO buffers 612 and 616. push). The user information input unit 602 also receives which signal is request information and when it is an initial cycle. The protocol interpreter 608 and 610 waits until the response signal is activated and pushes response information and a finish cycle to the FIFO buffers 612 and 616 when the response signal is activated. At this time, like the request, the RTL model waveform reader 606, the TL model waveform reader 604, and the user information input unit 602 are provided with necessary information.

도 11은 본 발명의 실시 예에 따라 TL 모델 프로토콜 해석기(608)가 추출한 정보와 RTL 모델 프로토콜 해석기(610)가 추출한 정보를 근거로 TL 모델 시뮬레이션 결과와 RTL 모델 시뮬레이션 결과를 비교하는 비교기(Comparator)(614)의 동작 흐름도이다.11 is a comparator comparing a TL model simulation result and an RTL model simulation result based on information extracted by the TL model protocol interpreter 608 and information extracted by the RTL model protocol interpreter 610 according to an exemplary embodiment of the present invention. An operation flow chart of 614 is shown.

본 발명의 실시 예에 따른 비교기(614)는 두 FIFO 버퍼(612, 616) 모두 푸쉬된 정보(information)의 개수가 1개 이상이 될 때 동작하기 시작한다. 양쪽 FIFO 버퍼(612, 616)에서 푸쉬된 요소(element)를 하나씩 비교하여 같은 요소(element)가 있는지 확인한다. 같은 요소(element)가 있는지 확인 되면 상기 <수학식 1>과 <수학식 2>를 사용하여 사이클 정확도(cycle accuracy)를 계산하고 FIFO 버퍼(612, 616)에서 상기 확인된 요소들을 삭제한다.The comparator 614 according to an embodiment of the present invention starts to operate when both FIFO buffers 612 and 616 are pushed more than one. The elements pushed from both FIFO buffers 612 and 616 are compared one by one to see if there are the same elements. When the same element is identified, the cycle accuracy is calculated using Equation 1 and Equation 2, and the identified elements are deleted from the FIFO buffers 612 and 616.

그럼 이하에서 도 11을 참조로 비교기(614)의 동작을 상세히 설명하기로 한다.The operation of the comparator 614 will now be described in detail with reference to FIG. 11.

먼저, 1100단계에서 비교기(614)는 TL FIFO 버퍼(612)와 RTL FIFO 버퍼(616)의 크기를 검사한다. 즉, 비교기(614)는 TL FIFO 버퍼(612)와 RTL FIFO 버퍼(616)에 실제 데이터가 몇 개가 있는지 검사한다. 그리고, 1102단계에서 비교기(614)는 상기 TL FIFO 버퍼(612)와 RTL FIFO 버퍼(616)의 크기가 모두 '0'보다 큰지를 검사하여, 상기 검사결과 TL FIFO 버퍼(612)와 RTL FIFO 버퍼(616)의 크기가 모두 '0'보다 크다면, 1104단계로 진행한다. First, in step 1100, the comparator 614 checks the sizes of the TL FIFO buffer 612 and the RTL FIFO buffer 616. That is, the comparator 614 checks how many actual data are in the TL FIFO buffer 612 and the RTL FIFO buffer 616. In step 1102, the comparator 614 checks whether the sizes of the TL FIFO buffer 612 and the RTL FIFO buffer 616 are larger than '0', and thus, the result of the check, the TL FIFO buffer 612 and the RTL FIFO buffer. If the sizes of 616 are all greater than zero, the flow proceeds to step 1104.

1104단계와 1106단계에서 비교기(614)는 TL FIFO 버퍼(612)와 RTL FIFO 버퍼(616)의 인덱스를 저장하고 있는 변수를 초기화 시킨다. 도 11의 'Index_RTL' 변수는 RTL FIFO 버퍼(616)의 몇 번째 데이터를 비교기(614)가 비교했는지를 기억하기 위한 변수이며, 'Index_TL'변수는 TL FIFO 버퍼(612)의 몇 번째 데이터를 비교기(614)가 비교했는지를 기억하기 위한 변수로서, 각 변수에는 FIFO 버퍼의 인덱스가 저장된다.In steps 1104 and 1106, the comparator 614 initializes a variable that stores the indexes of the TL FIFO buffer 612 and the RTL FIFO buffer 616. The 'Index_RTL' variable of FIG. 11 is a variable for storing the number of data of the RTL FIFO buffer 616 by the comparator 614, and the 'Index_TL' variable is the comparator of the data of the TL FIFO buffer 612. As a variable for storing whether 614 has compared, each variable stores an index of a FIFO buffer.

1104단계에서 RTL FIFO 버퍼(616)의 인덱스를 '0'으로 초기화시키고, 1106단계에서 TL FIFO 버퍼(612)의 인덱스를 '0'으로 초기화 시킨 비교기(614)는 1108단계에서 RTL FIFO 버퍼(616)로부터 상기 'Index_RTL'번째 요소(element)를 읽는다. 그리고 1110단계에서 비교기(616)는 TL FIFO 버퍼(612)로부터 상기 'Index_TL'번째 요소를 읽는다. 상기 1108단계와 1110단계에서 요소는 각각의 FIFO 버퍼(612, 616)에 저장된 요청 정보와 응답 정보를 가리킨다.In step 1104, the comparator 614 initialized the index of the RTL FIFO buffer 616 to '0' and the index of the TL FIFO buffer 612 to '0' in step 1106. Read the 'Index_RTL' th element from the (). In operation 1110, the comparator 616 reads the 'Index_TL' th element from the TL FIFO buffer 612. Elements in steps 1108 and 1110 indicate request information and response information stored in the respective FIFO buffers 612 and 616.

1112단계에서 비교기(616)는 상기 읽은 요소들의 펑션이 같은지를 비교한다. 여기서 요소들의 펑션 비교란 RTL 모델 프로토콜 해석기(610)와 TL 모델 프로토콜 해석기(608)가 각각 추출하여 FIFO 버퍼(612, 616)에 푸쉬한 요청 정보와 응답 정보를 각각 비교하는 것을 의미한다. 즉, RTL 모델 프로토콜 해석기(610)가 추출하여 푸쉬한 요청 정보와 TL 모델 프로토콜 해석기(608)가 추출하여 푸쉬한 요청 정보를 비교하고, RTL 모델 프로토콜 해석기(610)가 추출하여 푸쉬한 응답 정보와 TL 모델 프로토콜 해석기(608)가 추출하여 푸쉬한 응답 정보를 서로 비교하는 것을 도 11에서 요소 펑션을 비교한다는 의미로 사용하였다.In step 1112, the comparator 616 compares whether the read elements have the same function. Here, the function comparison of the elements means that the RTL model protocol interpreter 610 and the TL model protocol interpreter 608 extract and compare the request information and the response information pushed to the FIFO buffers 612 and 616, respectively. That is, the request information extracted and pushed by the RTL model protocol interpreter 610 and the request information extracted and pushed by the TL model protocol interpreter 608 are compared, and the response information extracted and pushed by the RTL model protocol interpreter 610 and pushed. The comparison of the extracted response information extracted by the TL model protocol interpreter 608 with each other is used to mean that element functions are compared in FIG. 11.

1114단계에서 비교기(616)는 두 요소들간의 펑션이 맞는지 검사하고, 검사결과 상기 두 요소들간의 펑션이 같다면, 표시부(618)를 통해 사용자에게 상기 두 요소들간의 펑션이 같다고 보고한다. 1114단계에서 두 요소들간의 펑션을 비교한 비교기(616)는 1116단계에서 상기 <수학식 1>과 <수학식 2>을 사용하여 사이클 정확도를 비교한다.In step 1114, the comparator 616 checks whether the functions between the two elements are correct, and if the function is the same between the two elements, the comparator 618 reports to the user that the functions between the two elements are the same. In step 1114, the comparator 616 comparing the functions between the two elements compares the cycle accuracy using Equation 1 and Equation 2 in step 1116.

1118단계에서 비교기(616)는 RTL FIFO 버퍼(616)의 Index_RTL 가 '0'인지를 검사한다. 상기 1118단계의 검사결과 Index_RTL 가 '0'이 아니라면, 1120단계로 진행하여 RTL FIFO 버퍼(616)에서 Index_RTL 이전 요소들에 대해 펑션이 다르다고 표시부(618)를 통해 사용자에게 보고한다. 만약 TL 시뮬레이터와 RTL 시뮬레이터의 결과가 완전히 일치한다면 1118단계에서 Index_RTL은 항상 '0'이어야 한다. 다시 말해 Index_RTL이 '0'이 아니라면 RTL 시뮬레이터의 결과에 TL 시뮬레이터와는 다른 요소가 끼어 있는 것이다. 따라서 이 요소를 사용자에게 보고한다.In step 1118, the comparator 616 checks whether the Index_RTL of the RTL FIFO buffer 616 is '0'. If the index_RTL is not '0' in operation 1118, the controller proceeds to operation 1120 and reports to the user via the display unit 618 that the function is different in the elements before the Index_RTL in the RTL FIFO buffer 616. If the results of the TL simulator and the RTL simulator are completely identical, the Index_RTL should always be '0' in step 1118. In other words, if Index_RTL is not '0', the result of the RTL simulator is different from that of the TL simulator. Therefore, report this element to the user.

반면, 상기 1118단계에서 상기 Index_RTL 가 '0'이라면, 비교기(616)는 1122단계로 진행하여 Index_TL 가 '0'인지를 검사한다. 상기 1122단계의 검사결과 상기 Index_TL 가 '0'이 아니라면, 1124단계로 진행하여 TL FIFO 버퍼(612)에서 Index_TL 이전 요소들에 대해 펑션이 다르다고 표시부(618)를 통해 사용자에게 보고한다. 만약 TL 시뮬레이터와 RTL 시뮬레이터의 결과가 완전히 일치한다면 1124단계에서 Index_TL도 항상 '0'이어야 한다. Index_TL이 '0'이 아니라면 TL 시뮬레이터의 결과에 RTL 시뮬레이터와는 다른 요소가 끼어 있는 것이다. 따라서 이 요소를 사용자에게 보고한다.On the other hand, if the Index_RTL is '0' in step 1118, the comparator 616 proceeds to step 1122 and checks whether the Index_TL is '0'. If the index_TL is not '0' as a result of the check in step 1122, the process proceeds to step 1124, and the TL FIFO buffer 612 reports to the user through the display unit 618 that the functions of the elements before the Index_TL are different. If the results of the TL simulator and the RTL simulator are completely identical, the Index_TL should always be '0' in step 1124. If Index_TL is not '0', the result of the TL simulator is different from that of the RTL simulator. Therefore, report this element to the user.

그리고 1126단계에서 비교기(614)는 RTL FIFO 버퍼(616)와 TL FIFO 버퍼(612)로부터 Index_RTL 과 Index_TL 까지의 모든 요소들을 팝(Pop)한다.In operation 1126, the comparator 614 pops all elements from the RTL FIFO buffer 616 and the TL FIFO buffer 612 to Index_RTL and Index_TL.

1128단계에서 비교기(614)는 IndeX_TL 변수가 TL FIFO 버퍼(612) 최대 크기까지 계수되었는지 검사한다. 상기 1128단계의 검사결과 Index_TL 변수가 상기 TL FIFO 버퍼(612)의 최대 크기까지 계수하였다면, 1132단계로 진행하여 Index_RTL 변수가 RTL FIFO 버퍼(616)의 최대 크기까지 계수되었는지 검사한다. 상기 1128단계 의 검사결과 Index_TL 변수가 상기 TL FIFO 버퍼(612)의 최대 크기보가 작다면, 비교기(614)는 1130단계에서 Index_TL 변수를 '1'증가시킨 후 상기 1110단계로 진행한다.In step 1128, the comparator 614 checks whether the IndeX_TL variable is counted up to the maximum size of the TL FIFO buffer 612. If the index_TL variable counts up to the maximum size of the TL FIFO buffer 612 as a result of the check in step 1128, the process proceeds to step 1132 and determines whether the Index_RTL variable counts up to the maximum size of the RTL FIFO buffer 616. If the index_TL variable in step 1128 is the maximum size of the TL FIFO buffer 612, the comparator 614 increases the index_TL variable by '1' in step 1130 and then proceeds to step 1110.

반면, 상기 1132단계에서 Index_RTL 변수가 RTL FIFO 버퍼(616)의 최대 크기보다 작다면, 비교기(614)는 1134단계로 진행하여 Index_RTL 변수를 '1'증가시킨 후 1106단계로 진행하고, 상기 1132단계의 검사결과 Index_RTL 변수가 RTL FIFO 버퍼(616)의 최대 크기라면, 상기 1100단계로 진행한다.On the other hand, if the Index_RTL variable is smaller than the maximum size of the RTL FIFO buffer 616 in step 1132, the comparator 614 proceeds to step 1134 to increase the Index_RTL variable by '1' and proceeds to step 1106, and step 1132 If the Index_RTL variable is the maximum size of the RTL FIFO buffer 616, the process proceeds to step 1100.

한편 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 안되며 후술하는 특허 청구의 범위뿐만 아니라 이 특허 청구의 범위와 균등한 것들에 의해 정해져야 한다.Meanwhile, in the detailed description of the present invention, specific embodiments have been described, but various modifications are possible without departing from the scope of the present invention. Therefore, the scope of the present invention should not be limited to the described embodiments, but should be defined not only by the appended claims, but also by the equivalents of the claims.

본 발명에 따르면 종래의 등가 검사(equivalence check)방식과 달리 비교하고자 하는 두 SoC 시스템 설계(design) 시뮬레이터의 사이클 정확도(cycle accuracy)가 보장되지 않아도 펑션 등가(functional equivalence)를 검사(check)할 수 있다. 따라서, 본 발명의 실시 예에서 예를 든 TL 모델 시뮬레이터와 같이 RTL 모델 시뮬레이터와 abstraction level이 달라 사이클 정확도(cycle accuracy)를 보장할 수 없는 model간의 function-accurate level equivalence를 check하는데 유용 하다. 본 발명은 다양한 프로토콜(protocol)을 처리할 수 있도록 확장 가능하며 본 발명에서 계산해 주는 사이클 정확도(cycle accuracy) 정보를 이용해 TL 모델 시뮬레이터 결과의 신뢰도를 예측할 수 있다.According to the present invention, the functional equivalence can be checked even though the cycle accuracy of the two SoC system design simulators to be compared is not guaranteed, unlike the conventional equivalent check method. have. Therefore, in the exemplary embodiment of the present invention, it is useful to check the function-accurate level equivalence between models that cannot guarantee cycle accuracy because the RTL model simulator and the abstraction level are different, as in the TL model simulator. The present invention is extensible to handle various protocols and can predict the reliability of the TL model simulator results using cycle accuracy information calculated by the present invention.

Claims (10)

시스템 온 칩(System On Chip) 설계를 위한 시뮬레이션 모델링을 검증하기 위한 장치에 있어서,An apparatus for verifying simulation modeling for system on chip design, 트랜잭션 레벨(Transaction Level) 시뮬레이터의 출력 신호를 입력받는 트랜잭션 레벨 파형 리더기와,Transaction level waveform reader that receives the output signal of the transaction level simulator, 레지스터 트랜스퍼 레벨(Register Transfer Level) 시뮬레이터의 출력 신호를 입력받는 레지스터 트랜잭션 레벨 파형 리더기와,A register transaction level waveform reader that receives an output signal from a register transfer level simulator, 상기 트랜잭션 레벨 시뮬레이터와 상기 레지스터 트랜스퍼 레벨 시뮬레이터가 출력한 신호들 중 상기 트랜잭션 레벨 파형 리더기와 레지스터 트랜스퍼 레벨 파형 리더기가 읽어야할 파일 이름과 신호 이름과, 프로토콜 해석기가 상기 트랜잭션 레벨 파형 리더기와 레지스터 트랜스퍼 레벨 파형 리더기로부터 출력된 신호들 중 어느 신호를 추출해야하는지를 지시하는 유효 정보를 전송하는 사용자 정보 입력기와,Among the signals output by the transaction level simulator and the register transfer level simulator, a file name and a signal name to be read by the transaction level waveform reader and the register transfer level waveform reader, and a protocol interpreter is used by the transaction level waveform reader and register transfer level waveform. A user information input unit for transmitting valid information indicating which of the signals output from the reader should be extracted; 상기 사용자 정보 입력기로부터 수신한 상기 파일 이름, 신호 이름, 유효 정보를 근거로 상기 트랜잭션 레벨 파형 리더기와 상기 레지스터 트랜스퍼 레벨 파형 리더기가 출력한 신호 값들 중 유효한 신호를 추출하여 트랜잭션 레벨 피포버퍼와 레지스터 트랜스퍼 레벨 피포버퍼로 푸쉬하는 상기 프로토콜 해석기와,Based on the file name, signal name, and valid information received from the user information input unit, a valid signal among the signal values output by the transaction level waveform reader and the register transfer level waveform reader is extracted, and a transaction level picobuffer and a register transfer level are extracted. The protocol analyzer that pushes into the buffer buffer, 상기 트랜잭션 레벨 피포버퍼와 상기 레지스터 트랜스퍼 레벨 피포버퍼에 저장된 신호 값들이 일치하는지 비교하는 비교기를 포함함을 특징으로 하는 시스템 온 칩 모델 검증 장치.And a comparator for comparing whether the signal values stored in the transaction level picopbuffer and the register transfer level picopbuffer match. 제1항에 있어서, 상기 프로토콜 해석기는,The method of claim 1, wherein the protocol analyzer, 상기 사용자 정보 입력기로부터 수신한 상기 파일 이름, 신호 이름, 유효 정보를 근거로 상기 트랜잭션 레벨 파형 리더기가 출력한 신호 값들 중 유효한 신호를 추출하여 트랜잭션 레벨 피포버퍼로 출력하는 트랜잭션 레벨 프로토콜 해석기와,A transaction level protocol interpreter for extracting a valid signal among signal values output by the transaction level waveform reader based on the file name, signal name, and valid information received from the user information input unit, and outputting the valid signal to a transaction level picobuffer; 상기 사용자 정보 입력기로부터 수신한 상기 파일 이름, 신호 이름, 유효 정보를 근거로 상기 레지스터 트랜스퍼 레벨 파형 리더기가 출력한 신호 값들 중 유효한 신호를 추출하여 레지스터 트랜스퍼 레벨 피포버퍼로 출력하는 레지스터 트랜스퍼 레벨 프로토콜 해석기를 포함함을 특징으로 하는 시스템 온 칩 모델 검증 장치.A register transfer level protocol interpreter for extracting a valid signal among the signal values output by the register transfer level waveform reader based on the file name, signal name, and valid information received from the user information input unit and outputting the valid signal to a register transfer level pipebuffer; System on a chip model verification device, characterized in that it comprises a. 제2항에 있어서,The method of claim 2, 상기 비교기는 상기 RTL FIFO 버퍼와 상기 TL FIFO 버퍼에 푸쉬된 요소들이 일치한다면, 레이턴시 정확도(Latency Accuracy)와 듀레이션 정확도(Duration Accuracy)를 사용하여 상기 트랜잭션 레벨 시뮬레이터와 상기 레지스터 트랜스퍼 레벨 시뮬레이터의 사이클 정확도를 검사함을 더 포함함을 특징으로 하는 시스템 온 칩 모델 검증 장치.The comparator uses latency accuracy and duration accuracy to determine the cycle accuracy of the transaction level simulator and the register transfer level simulator if the elements pushed in the RTL FIFO buffer and the TL FIFO buffer match. System on a chip model verification device, characterized in that it further comprises a check box. 제3항에 있어서,The method of claim 3, 상기 비교기는 상기 레이턴시 정확도(Latency Accuracy)를 아래 <수학식 3>을 사용하여 계산함을 특징으로 하는 시스템 온 칩 모델 검증 장치,The comparator is a system on chip model verification device, characterized in that for calculating the latency accuracy (Latency Accuracy) using Equation 3 below,
Figure 112006058336713-PAT00006
Figure 112006058336713-PAT00006
where
Figure 112006058336713-PAT00007
(Master)
where
Figure 112006058336713-PAT00007
(Master)
or
Figure 112006058336713-PAT00008
(Slave)
or
Figure 112006058336713-PAT00008
(Slave)
상기 <수학식 3>에서 InitiateCycleTL과 InitiateCycleRTL은 각각 상기 트랜잭션 레벨 모델 시뮬레이터와 레지스터 트랜스퍼 레벨 모델 시뮬레이터에서의 트랜스퍼의 초기 사이클을 의미하고, FinishCycleTL과 FinishCycleRTL은 각각 상기 상기 트랜잭션 레벨 모델 시뮬레이터와 레지스터 트랜스퍼 레벨 모델 시뮬레이터에서의 종료 사이클을 의미하고, TotalSimulationCycleRTL은 레지스터 트랜스퍼 레벨 시뮬레이션 이 수행된 총 횟수를 의미함.In Equation 3, InitiateCycle TL and InitiateCycle RTL are initial cycles of transfer in the transaction level model simulator and register transfer level model simulator, respectively, and FinishCycle TL and FinishCycle RTL are the transaction level model simulator and register, respectively. The end cycle in the transfer level model simulator, and TotalSimulationCycle RTL means the total number of times the register transfer level simulation was performed.
제3항에 있어서,The method of claim 3, 상기 비교기는 상기 듀레이션 정확도(Latency Accuracy)는 아래의 <수학식 4>를 사용하여 계산함을 특징으로 하는 시스템 온 칩 모델 검증 장치,The comparator is a system-on-chip model verification device, characterized in that the duration accuracy (Latency Accuracy) is calculated using Equation 4 below;
Figure 112006058336713-PAT00009
Figure 112006058336713-PAT00009
where
Figure 112006058336713-PAT00010
where
Figure 112006058336713-PAT00010
상기 <수학식 4>에서 InitiateCycleTL과 InitiateCycleRTL은 각각 상기 트랜잭션 레벨 모델 시뮬레이터와 레지스터 트랜스퍼 레벨 모델 시뮬레이터에서의 트랜스퍼의 초기 사이클을 의미하고, FinishCycleTL과 FinishCycleRTL은 각각 상기 상기 트랜잭션 레벨 모델 시뮬레이터와 레지스터 트랜스퍼 레벨 모델 시뮬레이터에서의 종료 사이클을 의미하고, TotalSimulationCycleRTL은 레지스터 트랜스퍼 레벨 시뮬레이션이 수행된 총 횟수를 의미함.In Equation 4, InitiateCycle TL and InitiateCycle RTL mean initial cycles of transfer in the transaction level model simulator and register transfer level model simulator, respectively, and FinishCycle TL and FinishCycle RTL are the transaction level model simulator and register, respectively. The end cycle in the transfer level model simulator, and TotalSimulationCycle RTL means the total number of times the register transfer level simulation was performed.
시스템 온 칩(System On Chip) 설계를 위한 시뮬레이션 모델링을 검증하기 위한 방법에 있어서,A method for verifying simulation modeling for a system on chip design, 트랜잭션 레벨 파형 리더기(Transaction Level Waveform Reader)가 트랜잭션 레벨(Transaction Level) 시뮬레이터의 출력 신호를 입력받는 과정과,A process in which a transaction level waveform reader receives an output signal of a transaction level simulator, 레지스터 트랜잭션 레벨 파형 리더기(Register Transfer Waveform Reader) 가 레지스터 트랜스퍼 레벨(Register Transfer Level) 시뮬레이터의 출력 신호를 입력받는 과정과,A process in which a register transaction level waveform reader receives an output signal of a register transfer level simulator, 사용자 정보 입력부가 상기 트랜잭션 레벨 시뮬레이터와 상기 레지스터 트랜스퍼 레벨 시뮬레이터가 출력한 신호들 중 상기 트랜잭션 레벨 파형 리더기와 레지스터 트랜스퍼 레벨 파형 리더기가 읽어야할 파일 이름과 신호 이름을 전송하는 과정과, Transmitting, by the user information input unit, a file name and a signal name to be read by the transaction level waveform reader and the register transfer level waveform reader among the signals output by the transaction level simulator and the register transfer level simulator; 상기 사용자 정보 입력부가 프로토콜 해석기가 상기 트랜잭션 레벨 파형 리더기와 레지스터 트랜스퍼 레벨 파형 리더기로부터 출력된 신호들 중 어느 신호를 추출해야하는지를 지시하는 유효 정보를 전송하는 과정과,Transmitting, by the user information input unit, valid information indicating which signal of a signal output from the transaction level waveform reader and the register transfer level waveform reader is to be extracted by a protocol interpreter; 상기 프로토콜 해석기가 상기 사용자 정보 입력기로부터 수신한 상기 파일 이름, 신호 이름, 유효 정보를 근거로 상기 트랜잭션 레벨 파형 리더기와 상기 레지스터 트랜스퍼 레벨 파형 리더기가 출력한 신호 값들 중 유효한 신호를 추출하여 트랜잭션 레벨 피포버퍼와 레지스터 트랜스퍼 레벨 피포버퍼로 푸쉬하는 과정과,The protocol interpreter extracts a valid signal among signal values output by the transaction level waveform reader and the register transfer level waveform reader based on the file name, signal name, and valid information received from the user information input unit. And push to register transfer level pipebuffer, 비교기가 상기 트랜잭션 레벨 피포버퍼와 상기 레지스터 트랜스퍼 레벨 피포 버퍼에 저장된 신호 값들이 일치하는지 비교하는 과정을 포함함을 특징으로 하는 시스템 온 칩 모델 검증 방법.And a comparator comparing the signal values stored in the transaction-level level buffer and the register transfer level level buffer. 제6 항에 있어서, 상기 프로토콜 해석기가 상기 유효한 신호를 상기 트랜잭션 레벨 피포버퍼와 상기 레지스터 트랜스퍼 레벨 피포버퍼로 푸쉬하는 과정은, 7. The process of claim 6, wherein the protocol interpreter pushes the valid signal to the transaction level picopbuffer and the register transfer level picopbuffer, 트랜잭션 레벨 프로토콜 해석기가 상기 사용자 정보 입력기로부터 수신한 상기 파일 이름, 신호 이름, 유효 정보를 근거로 상기 트랜잭션 레벨 파형 리더기가 출력한 신호 값들 중 유효한 신호를 추출하여 트랜잭션 레벨 피포버퍼로 출력하는 과정과,A transaction level protocol interpreter extracting a valid signal among signal values output by the transaction level waveform reader based on the file name, signal name, and valid information received from the user information input unit, and outputting the valid signal to a transaction level picobuffer; 레지스터 트랜스퍼 레벨 프로토콜 해석기가 상기 사용자 정보 입력기로부터 수신한 상기 파일 이름, 신호 이름, 유효 정보를 근거로 상기 레지스터 트랜스퍼 레벨 파형 리더기가 출력한 신호 값들 중 유효한 신호를 추출하여 레지스터 트랜스퍼 레벨 피포버퍼로 출력하는 과정을 포함함을 특징으로 하는 시스템 온 칩 모델 검증 방법.The register transfer level protocol interpreter extracts a valid signal from the signal values output by the register transfer level waveform reader based on the file name, signal name, and valid information received from the user information input unit, and outputs the valid signal to the register transfer level picobuffer. A method for verifying a system on a chip model, comprising the procedure. 제7항에 있어서,The method of claim 7, wherein 상기 비교기는 상기 RTL FIFO 버퍼와 상기 TL FIFO 버퍼에 푸쉬된 요소들이 일치한다면, 레이턴시 정확도(Latency Accuracy)와 듀레이션 정확도(Duration Accuracy)를 사용하여 상기 트랜잭션 레벨 시뮬레이터와 상기 레지스터 트랜스퍼 레벨 시뮬레이터의 사이클 정확도를 검사하는 과정을 더 포함함을 특징으로 하는 시스템 온 칩 모델 검증 방법.The comparator uses latency accuracy and duration accuracy to determine the cycle accuracy of the transaction level simulator and the register transfer level simulator if the elements pushed in the RTL FIFO buffer and the TL FIFO buffer match. System on a chip model verification method further comprising the step of checking. 제8항에 있어서,The method of claim 8, 상기 비교기는 상기 레이턴시 정확도(Latency Accuracy)를 아래 <수학식 5>을 사용하여 계산하는 과정을 포함함을 특징으로 하는 시스템 온 칩 모델 검증 방법,The comparator includes a method for calculating the latency accuracy (Latency Accuracy) using the following equation (5), characterized in that the system-on-chip model verification method,
Figure 112006058336713-PAT00011
Figure 112006058336713-PAT00011
where
Figure 112006058336713-PAT00012
(Master)
where
Figure 112006058336713-PAT00012
(Master)
or
Figure 112006058336713-PAT00013
(Slave)
or
Figure 112006058336713-PAT00013
(Slave)
상기 <수학식 5>에서 InitiateCycleTL과 InitiateCycleRTL은 각각 상기 트랜잭션 레벨 모델 시뮬레이터와 레지스터 트랜스퍼 레벨 모델 시뮬레이터에서의 트랜스퍼의 초기 사이클을 의미하고, FinishCycleTL과 FinishCycleRTL은 각각 상기 상기 트랜잭션 레벨 모델 시뮬레이터와 레지스터 트랜스퍼 레벨 모델 시뮬레이터에서의 종료 사이클을 의미하고, TotalSimulationCycleRTL은 레지스터 트랜스퍼 레벨 시뮬레이션이 수행된 총 횟수를 의미함.In Equation 5, InitiateCycle TL and InitiateCycle RTL are initial cycles of transfer in the transaction level model simulator and register transfer level model simulator, respectively, and FinishCycle TL and FinishCycle RTL are the transaction level model simulator and register, respectively. The end cycle in the transfer level model simulator, and TotalSimulationCycle RTL means the total number of times the register transfer level simulation was performed.
제8항에 있어서,The method of claim 8, 상기 비교기는 상기 듀레이션 정확도(Latency Accuracy)는 아래의 <수학식 6>를 사용하여 계산하는 과정을 포함함을 특징으로 하는 시스템 온 칩 모델 검증 방법,The comparator is a system-on-chip model verification method, characterized in that the duration accuracy (Latency Accuracy) is calculated using the following Equation (6),
Figure 112006058336713-PAT00014
Figure 112006058336713-PAT00014
where
Figure 112006058336713-PAT00015
where
Figure 112006058336713-PAT00015
상기 <수학식 6>에서 InitiateCycleTL과 InitiateCycleRTL은 각각 상기 트랜잭션 레벨 모델 시뮬레이터와 레지스터 트랜스퍼 레벨 모델 시뮬레이터에서의 트랜스퍼의 초기 사이클을 의미하고, FinishCycleTL과 FinishCycleRTL은 각각 상기 상기 트랜잭션 레벨 모델 시뮬레이터와 레지스터 트랜스퍼 레벨 모델 시뮬레이터에서의 종료 사이클을 의미하고, TotalSimulationCycleRTL은 레지스터 트랜스퍼 레벨 시뮬레이션이 수행된 총 횟수를 의미함.In Equation 6, InitiateCycle TL and InitiateCycle RTL are initial cycles of transfer in the transaction level model simulator and register transfer level model simulator, respectively, and FinishCycle TL and FinishCycle RTL are the transaction level model simulator and register, respectively. The end cycle in the transfer level model simulator, and TotalSimulationCycle RTL means the total number of times the register transfer level simulation was performed.
KR1020060077356A 2006-08-16 2006-08-16 Method and apparatus for verifying system on chip model KR20080015691A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060077356A KR20080015691A (en) 2006-08-16 2006-08-16 Method and apparatus for verifying system on chip model

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060077356A KR20080015691A (en) 2006-08-16 2006-08-16 Method and apparatus for verifying system on chip model

Publications (1)

Publication Number Publication Date
KR20080015691A true KR20080015691A (en) 2008-02-20

Family

ID=39384093

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060077356A KR20080015691A (en) 2006-08-16 2006-08-16 Method and apparatus for verifying system on chip model

Country Status (1)

Country Link
KR (1) KR20080015691A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101375171B1 (en) * 2006-12-30 2014-03-18 삼성전자주식회사 Method and apparatus for verifying system on chip model
KR20200139083A (en) * 2019-06-03 2020-12-11 주식회사 아도반테스토 Systems and methods for simulated device testing using a memory-based communication protocol

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101375171B1 (en) * 2006-12-30 2014-03-18 삼성전자주식회사 Method and apparatus for verifying system on chip model
KR20200139083A (en) * 2019-06-03 2020-12-11 주식회사 아도반테스토 Systems and methods for simulated device testing using a memory-based communication protocol

Similar Documents

Publication Publication Date Title
KR101375171B1 (en) Method and apparatus for verifying system on chip model
US20110307847A1 (en) Hybrid system combining TLM simulators and HW accelerators
US8868397B2 (en) Transaction co-validation across abstraction layers
US9015649B2 (en) Method and apparatus for electronic system model generation
US8229723B2 (en) Performance software instrumentation and analysis for electronic design automation
CN102542110B (en) Emulation verification method applied to mobile storage SOC (system on chip) chip
US20090172621A1 (en) System and method for system-on-chip (soc) performance analysis
US20020183956A1 (en) Testing compliance of a device with a bus protocol
US8522177B2 (en) Method and apparatus for electronic system function verification at two levels
KR20020032936A (en) Apparatus for emulating a logic function of a semiconductor chip and method thereof
US6845341B2 (en) Method and mechanism for improved performance analysis in transaction level models
CN112417798A (en) Time sequence testing method and device, electronic equipment and storage medium
Schirner et al. Quantitative analysis of transaction level models for the AMBA bus
US7865345B2 (en) Simulation apparatus and method
Herdt et al. Towards fully automated TLM-to-RTL property refinement
KR20080015691A (en) Method and apparatus for verifying system on chip model
JP2009140222A (en) Power estimation method for lsi, and apparatus thereof
US11295052B1 (en) Time correlation in hybrid emulation system
CN115983172B (en) Method and simulation platform for post simulation
Ahuja et al. Applying verification collaterals for accurate power estimation
CN116842902B (en) System-level simulation modeling method for black box model
Ramaswamy et al. The integration of systemc and hardware-assisted verification
Song System level assertion-based verification environment for PCI/PCI-X and PCI-express
Lee et al. SoC Design Environment with Automated Bus Architecture Generation for Rapid Prototyping with ISS
WO2024049472A2 (en) Communication link latency tolerance for hardware assisted verification systems

Legal Events

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