KR101621841B1 - System and method for mixing circuit simulation based on hla/rti - Google Patents

System and method for mixing circuit simulation based on hla/rti Download PDF

Info

Publication number
KR101621841B1
KR101621841B1 KR1020140183506A KR20140183506A KR101621841B1 KR 101621841 B1 KR101621841 B1 KR 101621841B1 KR 1020140183506 A KR1020140183506 A KR 1020140183506A KR 20140183506 A KR20140183506 A KR 20140183506A KR 101621841 B1 KR101621841 B1 KR 101621841B1
Authority
KR
South Korea
Prior art keywords
module
simulator
simulation
soft core
rti
Prior art date
Application number
KR1020140183506A
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 KR1020140183506A priority Critical patent/KR101621841B1/en
Application granted granted Critical
Publication of KR101621841B1 publication Critical patent/KR101621841B1/en

Links

Images

Classifications

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

The present invention relates to a system and a method for simulating a circuit. More specifically, the present invention relates to a system and a method which can reuse the existing circuit model (IP) in a process of simulating a new designed circuit, and can provide an integrated simulation connecting the existing circuit module and the new designed circuit model. To this ends, according to the present invention, a system for simulating a mixing circuit based on HLA/RTI comprises: an adaptor module, and a software simulator interface module.

Description

HLA/RTI 기반 혼합회로 시뮬레이션 시스템 및 방법 {SYSTEM AND METHOD FOR MIXING CIRCUIT SIMULATION BASED ON HLA/RTI}TECHNICAL FIELD [0001] The present invention relates to an HLA / RTI based mixed circuit simulation system and method,

본 발명은 회로 시뮬레이션 시스템 및 방법에 관한 것으로, 보다 상세하게는 새로이 설계된 회로의 시뮬레이션 과정에서 기존에 존재하는 회로 모델(IP)을 재사용할 수 있으며, 기존의 회로 모델과 새로이 설계된 회로 모델을 연동한 통합 시뮬레이션을 제공하는 시스템 및 방법에 관한 것이다.The present invention relates to a circuit simulation system and method, and more particularly, to a circuit simulation system and method that can reuse an existing circuit model (IP) in a simulation process of a newly designed circuit, And more particularly, to a system and method for providing integrated simulation.

시스템 온 칩(SoC, System on Chip)은 다수의 기능이 하나의 칩 위에 구현된 반도체로서, 마이크로 프로세서(micro-processor), 메모리반도체, 디지털 신호 처리 프로세서(DSP), 마이크로 컨트롤러(MCU, micro controller unit) 등 개별 반도체를 하나의 칩에 통합한 것을 의미하며, 과거에는 별개의 반도체 칩으로 구현되었던 것을 하나의 칩 위에 집적(integration)함으로써 소형화와 고성능을 달성할 수 있다.System on Chip (SoC) is a semiconductor in which many functions are implemented on a single chip. It is a micro-processor, a memory semiconductor, a digital signal processor (DSP), a microcontroller unit) integrated into a single chip. In the past, integration of what was implemented with a separate semiconductor chip on a single chip can achieve miniaturization and high performance.

이 때 개별 기능을 구현하는 개개의 컴포넌트를 반도체 설계 분야에서는 특별히 IP(Intellectual Property)라고 일컫기도 한다. 반도체 설계 분야에서 일컫는 IP는 독립적인 기능을 구현하는 개별 모듈을 의미한다.In this case, the individual components that implement the individual functions are sometimes referred to as intellectual property (IP) in the semiconductor design field. In the field of semiconductor design, IP refers to individual modules that implement independent functions.

즉, IP(Intellectual Property)는 반도체 설계 및 제조공정 상에 적용되는 설계자산 혹은 지적재산을 의미하며, IP의 종류가 다양해지고, 회로의 복잡성이 날로 증가하고 있다. 한편, 시스템 온 칩 설계에서는 새로운 회로 또는 IP를 설계한 후, 기존에 존재하는 IP를 여러 다른 시스템에서 재사용 할 수 있는데, 일반적으로 모든 회로 및 IP에 대한 설계가 동시에 진행되지는 않는 것이 최근의 추세이므로, 시스템 온 칩(System on Chip)을 위한 새로운 회로 및 IP의 설계 및 검증을 위해서는 기개발된 IP core를 재사용하는 것이 필수적이다.In other words, intellectual property (IP) means a design asset or intellectual property applied to a semiconductor design and manufacturing process, and various types of IPs and circuit complexity are increasing day by day. On the other hand, in the system-on-chip design, after designing a new circuit or IP, existing IP can be reused in various other systems. In general, Therefore, it is essential to reuse the newly developed IP core to design and verify new circuit and IP for System on Chip.

IP core는 제조 시나 설계 시에 쉽게 삽입될 수 있도록 이식성이 있어야 하며, UART, CPU, 이더넷 제어 장치 및 PCI(peripheral component interconnect) 인터페이스가 모두 IP core에 해당된다.The IP core must be portable so that it can be inserted easily during manufacturing or design, and the UART, CPU, Ethernet controller, and peripheral component interconnect (PCI) interface are both IP cores.

IP core는 형태에 따라 hard core(IP 설계의 물리적 형태로서 플러그 앤 플레이용이며, 이식성과 유연성이 약함), firm core(하드 코어와 같으나 여러 애플리케이션에 맞춰 구성 가능) 및 soft core(3가지 중 가장 유연성이 강하고, 일단의 논리 게이트와 관련 IC 회로나 하드웨어 기술 언어(HDL) 코드로 구성)의 3가지 형태로 구분할 수 있다.The IP core is based on the type of hard core (plug-and-play for IP design physical form, portability and inflexibility), firm core (same as hard core but configurable for various applications) and soft core And is composed of a logic gate and an associated IC circuit or a hardware description language (HDL) code.

이때, hard core는 특정 기능(Memory, Sensor 등)에 최적화된 모델로서, 시뮬레이션 수행 시 내부 동작은 알 수 없고, 수정이 쉽지 않지만, 기능이 검증된 모델을 의미하며, soft core는 언어(Verilog, VHDL, Verilog-A, C/C++, Matlab/Simulink)와 같은 모델로 주어지며, 목표 회로와 모의 수준에 맞게 선택되어 그대로 혹은 수정 후 재사용이 가능하다.In this case, the hard core is a model optimized for a specific function (memory, sensor, etc.), the internal core of the simulation is unknown, VHDL, Verilog-A, C / C ++, and Matlab / Simulink), and can be selected and reused as it is for the target circuit and simulation level.

한편, 전통적인 칩 레벨 설계 및 검증에 있어서, 디지털 회로는 Verilog(IEEE P1364 표준) 또는 VHDL(IEEE P1076 표준) 등의 표준화된 하드웨어 기술 언어(HDL)를 이용하고, 아날로그 회로는 SPICE를 이용하는 등 전용 소프트웨어 기반 시뮬레이터를 이용하였다.Meanwhile, in the conventional chip level design and verification, the digital circuit uses a standardized hardware description language (HDL) such as Verilog (IEEE P1364 standard) or VHDL (IEEE P1076 standard), and the analog circuit uses SPICE Based simulator.

시스템 온 칩(SoC, System on Chip)은 다양한 서브 블록(block)으로 구성되어 있으며, 블록 간의 상호 정보를 주고 받음에 따라 전체 시스템이 동작하게 된다. 이러한 SoC의 개발 시간을 단축하기 위해서는 각 서브 블록에 대응하는 기 개발된 soft core를 활용하여 시뮬레이션을 통한 시스템 레벨의 설계 및 검증이 요구된다. 하지만 하나의 시뮬레이터를 이용해, 다양한 언어의 기 개발된 soft core들을 조합하여 시스템으로 구성함으로써 모의하는 것은 사실상 불가능하므로, 각 언어를 모의할 수 있는 시뮬레이터들을 연동함으로써 전체적으로 시뮬레이션 할 수 있는 기술이 필요하다.System on Chip (SoC) consists of various sub-blocks. As the mutual information between blocks is exchanged, the entire system is operated. In order to shorten the development time of such SoC, it is required to design and verify the system level through simulation using the newly developed soft core corresponding to each sub-block. However, since it is virtually impossible to simulate a system composed of a combination of previously developed soft cores using a single simulator, a technique capable of simulating the entirety by linking simulators capable of simulating the respective languages is required.

실제 칩은 일반적으로 시뮬레이션을 통해 1차 검증을 한 후, FPGA(field-programmable gate array) 에뮬레이션을 통해 2차 검증을 하여 만들어진다. 이때 FPGA와 같은 실제 칩을 초기 시뮬레이션 단계에서 활용할 경우, 검증 시 블록에 대응하는 칩에 내장된 hard core를 이용할 수 있는 장점이 있으며, 뿐만 아니라 수정이 더 필요 없는 검증된 soft core를 칩에 옮겨 시스템 레벨 시뮬레이션함으로써 시뮬레이션 성능을 향상시킬 수 있는(시뮬레이션 시간을 감소시킬 수 있는) 장점이 있다.Actual chips are usually created by first verification through simulation and then second verification through field-programmable gate array (FPGA) emulation. In this case, when the actual chip such as FPGA is utilized in the initial simulation stage, there is an advantage that the hard core embedded in the chip corresponding to the block can be used at the time of verification. In addition, There is an advantage that the simulation performance can be improved (the simulation time can be reduced) by level simulation.

이에 따라, 다양한 언어로 개발된 설계될 IP와 기존 반도체 칩 레벨 시스템과의 연동 시뮬레이션이 절실히 요구되고 있으며, 이에 대한 연구가 활발히 진행되고 있음에도 불구하고, 아직까진 설계될 IP와 기존 반도체 칩 레벨 시스템과의 연동 기술을 완벽하게 제공하는 시뮬레이터들 간 혹은 시뮬레이터와 하드웨어 간 연동 인터페이스가 없는게 현실이다.Therefore, there is an urgent need for interworking simulation between the IP and the existing semiconductor chip level system developed in various languages. Despite the active research on this, It is a reality that there is no interfacing interface between simulators that provide seamless interworking technology or between simulator and hardware.

한편, 한국공개특허 제2006-0037768호 "소프트웨어 시뮬레이터 및 이를 이용한 하드웨어 기술언어(HDL)의 시뮬레이션 연동 방법"은 시뮬레이션의 수행을 위해 디자인된 모듈로서, 시뮬레이터에서 구동되는 시뮬레이션 타겟, 및 시뮬레이션 타겟을 시뮬레이션 하는 시뮬레이터와 적어도 하나의 외부 시뮬레이터 간에 데이터 전송을 위한 인터페이스를 제공하는 인터페이스를 포함하여 구성되며, 이에 따라, 시뮬레이션 타겟이, 시뮬레이션 타겟을 포함하고 있는 시뮬레이터 및 인터페이스를 통해 연결된 적어도 하나의 외부 시뮬레이터에 의해 시뮬레이션이 수행되는 기술을 제시한다.Korean Patent Laid-Open No. 2006-0037768 entitled " Software simulator and method for interworking simulation of hardware description language (HDL) using it "is a module designed for performing simulation. Simulation targets and simulated targets And an interface for providing an interface for data transfer between the simulator and the at least one external simulator, so that the simulation target is managed by at least one external simulator connected through a simulator and interface including the simulation target The technique in which the simulation is performed is presented.

상기 선행기술은 하드웨어 기술 언어(HDL, Hardware Description Language) 시뮬레이션의 수행 속도를 증가시키고, 하드웨어 기술 언어 시뮬레이션을 수행하기 위해 필요한 메모리의 양을 줄여, 적은 용량을 가지는 컴퓨터에서도 시뮬레이션이 가능하도록 하며, 서로 다른 하드웨어 기술 언어 시뮬레이터를 연동할 수 있기 때문에 서로 다른 시뮬레이터에서 동작하는 모델을 이용한 통합 시뮬레이션이 가능한 장점이 있다.The prior art increases the speed of execution of hardware description language (HDL) simulation, reduces the amount of memory required to perform hardware description language simulation, enables simulation in a computer having a small capacity, Since it is possible to link other hardware description language simulator, there is an advantage that integrated simulation using a model operating in different simulator can be performed.

하지만, 상기 선행기술은 HDL로 기술된 모델에 대해서만 시뮬레이션의 수행이 가능하다. 즉, HDL로 기술된 소프트웨어 기반의 시뮬레이터 만에 대한 시뮬레이션만을 대상으로 하고 있는 한계가 있다. 이는 종래와 마찬가지로 시뮬레이션 수행 시 추상화된 해석만 함으로써 실제 물리적 동작에 대한 전기적 수준의 깊은 동작 검증이 힘든 문제가 있다.However, the above-described prior art can perform simulation only for models described in HDL. That is, there is a limitation that only software based simulator described in HDL is subjected to simulation. This is a problem in that it is difficult to verify deep operation of the electric level for the actual physical operation only by abstraction analysis at the time of simulation as in the prior art.

또한, 상기 선행기술에서의 하드웨어 엑셀레이터는 시뮬레이션 타겟의 일부가 아닌, 시뮬레이터의 연산을 보조하기 위하여 전용 하드웨어를 이용하여 시뮬레이션 연산을 빠르게 수행하기 위한 것으로서, 이는 소프트웨어 기반의 시뮬레이터와 실제 하드웨어를 통합하여 시뮬레이션이 가능하도록 하는 역할을 수행하진 않는다. 즉, 상기 선행기술은 종래와 마찬가지로 현재 설계할 회로가 이미 실제 물리적으로 동작하는 칩 내의 블록과의 연계 동작을 하는지에 대한 검증이 불가능하며, 칩이 생산된 후 응용 시스템에 실 장착하여 동작 검증을 수행했을 때 발생하는 갖가지 버그들을 다시 한번 더 수정해야 하는 불편함이 여전히 존재한다.In addition, the hardware accelerator in the prior art is not a part of a simulation target, but is for performing a simulation operation quickly using dedicated hardware in order to assist the operation of the simulator. This is achieved by integrating a software- It does not play a role. That is, it is impossible to verify whether the circuit to be designed currently operates in association with a block in a chip which is actually physically operated, as in the prior art, There is still the inconvenience that you have to fix all the bugs that occur when you do it again.

한국공개특허 제2006-0037768호(공개일: 2006.05.03)Korea Publication No. 2006-0037768 (published on May 3, 2006)

본 발명은 상기와 같은 종래 기술의 문제점을 해결하고자 도출된 것으로서, HLA/RTI 기반 혼합회로 시뮬레이션 시스템 및 방법을 제공하려는 것을 목적으로 한다.SUMMARY OF THE INVENTION It is an object of the present invention to provide a HLA / RTI based mixed circuit simulation system and method.

종래의 시뮬레이션 기술로는 현재 설계할 회로가 이미 실제 물리적으로 동작하는 칩 내의 블록을 활용했을 때 연계 동작이 가능한 지에 대한 검증이 어려운 한계가 있었다. 본 발명은 이러한 검증이 어려웠던 문제를 해결하려는 것을 목적으로 한다.In the conventional simulation technology, it is difficult to verify whether a circuit to be designed can perform a link operation when a block in a chip that actually operates physically is utilized. It is an object of the present invention to solve the problem that such verification is difficult.

본 발명은 시뮬레이션 과정을 거쳐 칩이 생산된 후 응용 시스템에 실 장착하여 동작 검증을 수행했을 때 발생하는 갖가지 버그들을 다시 한번 더 수정해야 하는 불편함을 해소하려는 것을 목적으로 한다.The present invention aims at eliminating the inconvenience that all kinds of bugs that occur when a chip is manufactured through a simulation process and then mounted on an application system to perform operation verification again.

본 발명은 모델 수준으로 개발한 설계될 IP와 기존에 존재하는 반도체 칩 레벨 시스템과의 연동 시뮬레이션이 가능하도록, 소프트웨어 기반의 시뮬레이터와 실제 하드웨어를 통합 시뮬레이션 하는 환경을 제공하려는 것을 목적으로 한다.The present invention aims at providing an environment for simulating a software-based simulator and actual hardware so that interworking simulation between an IP to be designed developed at a model level and an existing semiconductor chip level system can be performed.

이러한 목적을 달성하기 위하여 본 발명의 일 실시예에 따른 HLA/RTI 기반 혼합회로 시뮬레이션 시스템은 어댑터 모듈 및 소프트웨어 시뮬레이터 인터페이스 모듈을 포함한다.In order to achieve the above object, an HLA / RTI based mixed circuit simulation system according to an embodiment of the present invention includes an adapter module and a software simulator interface module.

상기 어댑터 모듈은 전자 회로에 대한 시뮬레이션 모델을 이용하여 상기 전자 회로의 동작을 시뮬레이션하는 소프트 코어 시뮬레이터 모듈과 시간 경과에 따라 오퍼레이션을 실제로 진행하는 하드 코어 에뮬레이터 모듈 각각이 통합 시뮬레이션 환경을 제공하는 미들웨어(middleware) 모듈과 상호 연동 가능하도록, 이벤트 기반의 시뮬레이션을 진행하고, 상기 소프트 코어 시뮬레이터 모듈과 상기 하드 코어 에뮬레이터 모듈 각각의 입출력 신호의 값을 서로 인식할 수 있는 형태로 변환하여 제공하며, 상기 소프트 코어 시뮬레이터 모듈 내에 포함된 상기 소프트웨어 시뮬레이터 인터페이스 모듈은 상기 소프트 코어 시뮬레이터 모듈의 시뮬레이션 결과로 인한 상기 소프트 코어 시뮬레이터 모듈의 입출력 신호의 변화를 다른 소프트 코어 시뮬레이터 모듈 및 상기 하드 코어 에뮬레이터 모듈과 공유할 수 있도록 상기 어댑터 모듈로 제공한다.The adapter module includes a soft core simulator module for simulating the operation of the electronic circuit using a simulation model for an electronic circuit and a hard core emulator module for actually performing an operation over time, ) Simulates an event based simulation so as to interoperate with the soft core simulator module and the hard core emulator module to convert the values of the input and output signals of the soft core simulator module and the hard core emulator module into mutually recognizable formats, Wherein the software simulator interface module included in the module is configured to change a change in the input / output signal of the soft core simulator module due to the simulation result of the soft core simulator module, And it provides to the adapter module to be shared with the hard core emulator module.

이때, 상기 하드 코어 에뮬레이터 모듈은 호스트 컴퓨터에서 하드웨어의 시그널을 받거나 주며, 하드웨어의 클럭(clock)을 제어하는 프로그램일 수 있으며, 또한, 하드웨어와 소프트웨어를 연결해 주는, 즉 Proxy(bridge) 역할을 해주는 도구일 수 있다.In this case, the hard core emulator module may receive a hardware signal from a host computer, and may be a program for controlling a clock of a hardware. Also, a hard core emulator module may be a tool for connecting hardware and software, Lt; / RTI >

또한, 상기 소프트 코어 시뮬레이터 모듈 내에 포함된 상기 소프트웨어 시뮬레이터 인터페이스 모듈은 사용자가 외부에서 시뮬레이터나 soft core 모델의 데이터에 접근하거나 혹은 데이터의 수정이 가능하도록 하는 프로그램을 구현하기 위한 인터페이스로서, 사용자가 외부에서 시뮬레이터를 제어하기 위하여 구현할 프로그램에서 사용하는 API(Application Programming Interface), 즉 시뮬레이터 혹은 soft core 모델의 데이터에 접근하거나 수정을 가능하도록 하는 API를 제공할 수 있다. 또한, 상기 소프트웨어 시뮬레이터 인터페이스 모듈은 특정 시점에서 사용자가 구현한 함수가 호출될 수 있도록 다양한 타입의 콜백(callback) 함수를 제공할 수 있다. 즉, 상기 소프트웨어 시뮬레이터 인터페이스 모듈에는 사용자가 구현한 함수를 시뮬레이터가 수행할 수 있도록 콜백의 종류가 정의되어 있을 수 있다.The software simulator interface module included in the soft core simulator module is an interface for implementing a program that allows a user to access data of a simulator or a soft core model or modify data from the outside, In order to control the simulator, API (Application Programming Interface) used in a program to be implemented, that is, an API for accessing or modifying data of a simulator or a soft core model, can be provided. In addition, the software simulator interface module can provide various types of callback functions so that a user-implemented function can be called at a specific point in time. That is, the software simulator interface module may have a callback type defined therein so that the simulator can execute a function implemented by the user.

또한, 상기 어댑터 모듈은 상기 소프트 코어 시뮬레이터 모듈과 다른 소프트 코어 시뮬레이터 모듈 간 및 상기 소프트 코어 시뮬레이터 모듈과 상기 하드 코어 에뮬레이터 모듈 간에 데이터 전송 시 상기 데이터를 표준화된 객체 포맷으로 변환할 수 있으며, 상기 소프트 코어 시뮬레이터 모듈은 상기 표준화된 객체 포맷을 수신하여 상기 표준화된 객체 포맷에 포함된 정보를 상속하여 반영할 수 있다.The adapter module may convert the data into a standardized object format when data is transferred between the soft core simulator module and another soft core simulator module and between the soft core simulator module and the hard core emulator module, The simulator module may receive the standardized object format and inherit and reflect the information contained in the standardized object format.

또한, 상기 어댑터 모듈은 상기 이벤트 기반의 시뮬레이션을 통하여 상기 하드 코어 에뮬레이터 모듈의 진행 시간을 상기 소프트 코어 시뮬레이터 모듈의 시뮬레이션 상의 시간과 동기화할 수 있으며, 상기 소프트웨어 시뮬레이터 인터페이스 모듈은 상기 다른 소프트 코어 시뮬레이터 모듈 또는 상기 하드 코어 에뮬레이터 모듈 측에서 발생한 외부 이벤트에 의한 상기 입출력 신호의 변화를 상기 어댑터 모듈로부터 획득하여 상기 소프트 코어 시뮬레이터 모듈에 반영하도록 제공할 수 있다.The adapter module may synchronize the progress time of the hard core emulator module with the time of the simulation of the soft core simulator module through the event-based simulation, and the software simulator interface module may communicate with the other soft core simulator module A change in the input / output signal due to an external event generated on the hard core emulator module side may be obtained from the adapter module and reflected to the soft core simulator module.

또한, 상기 어댑터 모듈은 상기 이벤트 기반의 시뮬레이션을 진행할 때, 상기 소프트 코어 시뮬레이터 모듈 또는 상기 하드 코어 에뮬레이터 모듈에 라이브러리 형태로 플러그-인(plug-in)인 될 수 있으며, 또한, 상기 어댑터 모듈은 상기 소프트웨어 시뮬레이터 인터페이스 모듈이 제공하는 API와 상기 미들웨어의 HLA 서비스에 이용되는 API를 기반으로 구현된 콜백 함수들의 집합으로 구성될 수 있다.The adapter module may be plugged in as a library to the soft core simulator module or the hard core emulator module when the event based simulation is performed, And a set of callback functions implemented based on an API provided by the software simulator interface module and an API used in the HLA service of the middleware.

한편, 본 발명의 일 실시예에 따른 HLA/RTI 기반 혼합회로 시뮬레이션 방법은 전자 회로에 대한 시뮬레이션 모델을 이용하여 상기 전자 회로의 동작을 시뮬레이션 하는 소프트 코어 시뮬레이터 모듈과 시간 경과에 따라 오퍼레이션을 실제로 진행하는 하드 코어 에뮬레이터 모듈 각각이 통합 시뮬레이션 환경을 제공하는 미들웨어 모듈과 상호 연동 가능하도록, 이벤트 기반의 시뮬레이션을 진행하는 단계, 상기 이벤트 기반의 시뮬레이션을 진행하는 도중에 상기 소프트 코어 시뮬레이터 모듈의 시뮬레이션 결과로 인한 입출력 신호의 변화를 다른 소프트 코어 시뮬레이터 모듈 및 상기 하드 코어 에뮬레이터 모듈과 공유할 수 있도록 제공하는 단계 및 상기 이벤트 기반의 시뮬레이션을 진행하는 도중에 상기 소프트 코어 시뮬레이터 모듈과 상기 하드 코어 에뮬레이터 모듈 각각의 입출력 신호의 값을 서로 인식할 수 있는 형태로 변환하여 제공하는 단계를 포함한다.Meanwhile, a HLA / RTI based mixed circuit simulation method according to an embodiment of the present invention includes a soft core simulator module for simulating the operation of the electronic circuit using a simulation model for an electronic circuit, The method comprising the steps of: performing an event-based simulation so that each of the hard core emulator modules can interoperate with a middleware module providing an integrated simulation environment; performing an event-based simulation on the input / output signal due to the simulation result of the soft core simulator module Providing a soft core simulator module and a hard core emulator module so that the soft core simulator module and the hard core emulator module can share a change of the soft core simulator module and the hard core emulator module, Output signals of the respective emulator modules into a form recognizable from each other.

또한, 상기 서로 인식할 수 있는 형태로 변환하여 제공하는 단계는 상기 소프트 코어 시뮬레이터 모듈과 다른 소프트 코어 시뮬레이터 모듈 간 및 상기 소프트 코어 시뮬레이터 모듈과 상기 하드 코어 에뮬레이터 모듈 간에 데이터 전송 시 상기 데이터를 표준화된 객체 포맷으로 변환할 수 있다.In addition, the step of transforming and providing the mutually recognizable form may further include converting the data into a standardized object when transferring data between the soft core simulator module and another soft core simulator module, and between the soft core simulator module and the hard core emulator module Format.

또한, 본 발명의 일 실시예에 따른 HLA/RTI 기반 혼합회로 시뮬레이션 방법은 상기 소프트 코어 시뮬레이터 모듈 각각이 상기 표준화된 객체 포맷을 수신하여 상기 표준화된 객체 포맷에 포함된 정보를 상속하여 반영하는 단계와 상기 다른 소프트 코어 시뮬레이터 모듈 또는 상기 하드 코어 에뮬레이터 모듈 측에서 발생한 외부 이벤트에 의한 상기 입출력 신호의 변화를 상기 소프트 코어 시뮬레이터 모듈에 반영하는 단계를 더 포함할 수 있으며, 상기 서로 인식할 수 있는 형태로 변환하여 제공하는 단계는 상기 이벤트 기반의 시뮬레이션을 통하여 상기 하드 코어 에뮬레이터 모듈의 진행 시간을 상기 소프트 코어 시뮬레이터 모듈의 시뮬레이션 상의 시간과 동기화하는 단계를 포함할 수 있다.In the HLA / RTI based mixed circuit simulation method according to an embodiment of the present invention, each of the soft core simulator modules receives the standardized object format and inherits and reflects information included in the standardized object format The method may further include reflecting, in the soft core simulator module, a change in the input / output signal caused by an external event generated at the other soft core simulator module or the hard core emulator module side, The step of providing may include synchronizing the progress time of the hard core emulator module with the time of simulation of the soft core simulator module through the event based simulation.

본 발명은 HLA/RTI 기반 혼합회로 시뮬레이션 시스템 및 방법에 관한 것으로, 모델 수준으로 개발한 설계될 IP와 기존에 존재하는 반도체 칩 레벨 시스템과의 연동 시뮬레이션이 가능하도록, 소프트웨어 기반의 시뮬레이터와 실제 하드웨어를 통합 시뮬레이션 하는 환경을 제공할 수 있는 효과가 있다.The present invention relates to a HLA / RTI based mixed circuit simulation system and method, and a software-based simulator and actual hardware are provided to enable interworking simulation between a design IP developed at a model level and an existing semiconductor chip level system There is an effect that can provide an environment for integrated simulation.

본 발명은 현재 설계할 회로가 이미 실제 물리적으로 동작하는 칩 내의 블록과의 연계 동작이 가능한지 쉽게 검증할 수 있는 효과가 있다.The present invention has an effect that it is possible to easily verify whether a circuit to be designed at present can operate in association with a block in a chip that is actually physically operated.

본 발명은 새로이 설계된 회로의 시뮬레이션 과정에서 기존에 존재하는 회로 모델(IP)을 재사용함으로써, 기존의 회로 모델과 새로이 설계된 회로 모델을 연동한 통합 시뮬레이션을 제공할 수 있는 효과가 있다.The present invention has an effect of providing an integrated simulation in which an existing circuit model and a newly designed circuit model are linked by reusing an existing circuit model (IP) in a simulation process of a newly designed circuit.

본 발명은 시뮬레이션 과정을 거쳐 칩이 생산된 후 응용 시스템에 실 장착하여 동작 검증을 수행했을 때 발생하는 갖가지 버그들을 다시 한번 더 수정해야 하는 불편함을 해소할 수 있는 효과가 있다. 즉, 본 발명은 디지털 모델 개발 시 합성 후 FPGA의 하드 코어와 연결하여 동작 검증을 하는 방식이 아니라, 시뮬레이션 레벨에서 하드웨어와 같이 기본적인 동작 검증을 수행하는 방식을 이용함으로써, FPGA에 합성하여 검증하기 전의 시행착오를 줄일 수 있는 효과가 있다.The present invention has the effect of eliminating the inconvenience that the various bugs that occur when the chip is manufactured through the simulation process and then mounted on the application system to perform the operation verification again. That is, the present invention is not a method of performing operation verification by connecting to a hard core of an FPGA after synthesis in a digital model development, but a method of performing basic operation verification like a hardware at a simulation level, It is possible to reduce trial and error.

본 발명은 소프트 코어 시뮬레이터 모듈과 시간 경과에 따라 오퍼레이션을 실제로 진행하는 하드 코어 에뮬레이터 모듈 각각이 미들웨어 모듈과 상호 연동 가능하게 함으로써, 소프트웨어 기반의 시뮬레이터와 실제 하드웨어를 통합 시뮬레이션 할 수 있는 효과가 있다.The present invention has the effect of enabling a software-based simulator and an actual hardware to be integratedly simulated by allowing each of the soft core simulator module and the hard core emulator module that actually performs operation according to time to interoperate with the middleware module.

본 발명은 HLA/RTI를 기반으로 소프트웨어 기반의 시뮬레이터와 실제 하드웨어를 통합하여 시뮬레이션 가능하도록 하는 환경을 제공함으로써, SoC(System on Chip) 설계 및 검증에 대한 효율을 향상시킬 수 있다.The present invention improves the efficiency of SoC (System on Chip) design and verification by providing an environment that enables simulation by integrating software based simulator and actual hardware based on HLA / RTI.

도 1은 본 발명의 배경이 되는 기술의 구조를 개략적으로 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 전체 구성을 개략적으로 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른 HLA/RTI 기반 혼합회로 시뮬레이션 시스템의 개략적인 구성을 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따른 하드 코어 에뮬레이터 모듈의 세부 구성을 나타낸 도면이다.
도 5는 본 발명의 일 실시예에 따른 소프트웨어 시뮬레이터 인터페이스 모듈의 표준 정의를 나타낸 도면이다.
도 6은 본 발명의 일 실시예에 따른 어댑터 모듈 내부에 포함되는 콜백 함수의 예를 나타낸 도면이다.
도 7은 본 발명의 일 실시예에 따른 이벤트 신호의 변환 과정을 나타낸 도면이다.
도 8은 본 발명의 일 실시예에 따른 소프트 코어 시뮬레이터 모듈 간에 통합 시뮬레이션 수행 시 시간 진행을 나타낸 도면이다.
도 9는 본 발명의 일 실시예에 따른 소프트 코어 시뮬레이터 모듈과 하드 코어 에뮬레이터 모듈 간에 통합 시뮬레이션 수행 시 시간 진행을 나타낸 도면이다.
도 10은 본 발명의 일 실시예에 따른 어댑터 모듈 내에 정의된 FOM의 예를 나타낸 도면이다.
도 11은 본 발명의 일 실시예에 따른 HLA/RTI 기반 혼합회로 시뮬레이션 방법의 개략적인 흐름도이다.
Fig. 1 schematically shows a structure of a technique as a background of the present invention.
FIG. 2 is a schematic view of an overall configuration according to an embodiment of the present invention.
3 is a diagram illustrating a schematic configuration of an HLA / RTI based mixed circuit simulation system according to an embodiment of the present invention.
4 is a detailed block diagram of a hard core emulator module according to an embodiment of the present invention.
5 is a diagram illustrating a standard definition of a software simulator interface module according to an embodiment of the present invention.
6 is a diagram illustrating an example of a callback function included in an adapter module according to an embodiment of the present invention.
7 is a diagram illustrating a process of converting an event signal according to an embodiment of the present invention.
FIG. 8 is a diagram illustrating a time progress when performing an integrated simulation between soft core simulator modules according to an embodiment of the present invention.
FIG. 9 is a diagram illustrating time progress when performing an integrated simulation between a soft core simulator module and a hard core emulator module according to an embodiment of the present invention.
10 is a view showing an example of FOM defined in an adapter module according to an embodiment of the present invention.
11 is a schematic flowchart of a HLA / RTI based mixed circuit simulation method according to an embodiment of the present invention.

이하, 본 발명의 바람직한 실시예를 첨부된 도면들을 참조하여 상세히 설명한다. 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략하기로 한다. 또한 본 발명의 실시예들을 설명함에 있어 구체적인 수치는 실시예에 불과하다.
Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following description of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear. In the following description of the embodiments of the present invention, specific values are only examples.

본 발명은 회로 시뮬레이션 시스템 및 방법에 관한 것으로, 보다 상세하게는 새로이 설계된 회로의 시뮬레이션 과정에서 기존에 존재하는 회로 모델(IP)을 재사용함으로써, 기존의 회로 모델과 새로이 설계된 회로 모델을 연동한 통합 시뮬레이션을 제공하는 시스템 및 방법에 관한 것이다.The present invention relates to a circuit simulation system and method, and more particularly, to a circuit simulation system and method using an existing circuit model (IP) in a simulation of a newly designed circuit, And more particularly,

도 1은 본 발명의 배경이 되는 기술의 구조를 개략적으로 나타낸 도면이다.Fig. 1 schematically shows a structure of a technique as a background of the present invention.

우선, 도 1을 참조하여 본 발명의 배경이 되는 기술의 구조를 간단히 설명하면, 시스템 온 칩(System on Chip) 설계 및 검증을 위해서는 기 개발된 IP core를 재사용하는 것이 필수적이며, IP core는 형태에 따라 soft core와 hard core로 구분될 수 있으며, 이때 상기 soft core는 Verilog, VHDL, Verilog-A, C/C++, Matlab/Simulink와 같은 언어 모델로 주어지며, 목표 회로와 모의 수준에 맞게 선택되어 그대로 혹은 수정 후 재사용 가능하고, 상기 hard core는 IP 설계의 물리적 형태로서 시뮬레이션 수행 시 내부 동작은 알 수 없고, 수정이 쉽지 않지만 기능이 검증된 모델을 의미한다.Referring first to FIG. 1, a brief description of the structure of the technology of the present invention will be made. In order to design and verify a system on chip, it is necessary to reuse the newly developed IP core. The soft core is given a language model such as Verilog, VHDL, Verilog-A, C / C ++, and Matlab / Simulink, and is selected according to the target circuit and simulation level The hard core is a physical form of the IP design, and means a model in which the internal operation is unknown when the simulation is performed, and the function is not easy to modify, but the function is verified.

그리고, 혼합 신호 회로 설계 시 새로 설계한 회로(Design Block)가 기 개발된 IP core(Reusable Block)와 결합되어 잘 동작하는지 확인하기 위하여 시뮬레이션을 수행하게 되며, 이때, IP core의 특성에 따라 각 특성에 맞는 시뮬레이터가 동작함으로써 시뮬레이션이 수행된다.Simulation is performed to verify that the newly designed circuit (design block) is combined with the newly developed IP core (Reusable Block) in designing the mixed signal circuit. At this time, according to the characteristics of the IP core, The simulation is performed.

예를 들어, soft core의 경우에는, Verilog Model이 Verilog 시뮬레이터를 이용하고, Netlist가 SPICE 시뮬레이터를 이용하는 등, 각각의 특성에 맞는 전용 시뮬레이터를 동작시킴으로써 soft core의 시뮬레이션을 수행할 수 있으며, hard core의 경우 펑션 제너레이터의 기능을 수행하는 FPGA 등을 이용함으로써 시뮬레이션이 수행될 수 있다.For example, in the case of a soft core, a simulation of a soft core can be performed by operating a dedicated simulator for each characteristic, such as Verilog Model using a Verilog simulator and Netlist using a SPICE simulator. The simulation can be performed by using an FPGA or the like which performs the function of the function generator.

한편, 상이한 조직에서 상이한 목적으로 개발된 개별 시뮬레이션(simulation)들을 하나의 커다란 시뮬레이션으로 결합시켜주는 처리를 분산 처리라 하며, 이러한 처리를 하는 소프트웨어를 미들웨어(middleware) 또는 분산 미들웨어라고도 한다.On the other hand, processing that combines individual simulations developed for different purposes in different organizations into one large simulation is called distributed processing, and the software that performs such processing is also referred to as middleware or distributed middleware.

RTI(Run Time Infrastructure)는 이러한 분산 미들웨어의 하나로서, 분산 시뮬레이션 환경에서 모의 개체에 대한 재 사용성과 체계간 상호 운용성을 촉진시키기 위해서 제안된 표준기술 구조인 HLA(High Level Architecture)표준의 소프트웨어이다. 이때, HLA는 미국방성에서 모델과 시뮬레이션에 공통의 구조와 인터페이스를 제공하기 위해 개발된 통합 구조를 말한다.Runtime Infrastructure (RTI) is one of these distributed middleware. It is software of HLA (High Level Architecture) standard, which is a proposed standard technology structure for promoting interoperability between reusability and systems in a simulated environment. At this time, HLA refers to an integrated structure developed to provide a common structure and interface to models and simulations in the US Department of Defense.

HLA 인터페이스 표준 구현물인 RTI는 시뮬레이션에 참여하는 시뮬레이터 간 정보 교환을 위해서 시뮬레이션 연동 모델인 FOM(Federation Object Model)을 사용하며, 각각의 시뮬레이터는 참여하는 시뮬레이션 내에서 동일한 FOM을 소유해야만 하는 특징을 지닌다.The RTI, which is a standard implementation of the HLA interface, uses the Federation Object Model (FOM), which is a simulation interworking model, for exchanging information between the simulators participating in the simulation. Each simulator has a characteristic that the same FOM must be owned in the participating simulation.

HLA/RTI를 기반으로 통합 시뮬레이션을 수행하는 연구가 종래에 다수 존재하였지만, 기존에 존재하는 연구들은 소프트웨어를 기반으로 하는 이기종 시뮬레이터 간에 통합 시뮬레이션을 지원하는 방법에 관한 연구가 대다수였으며, 본 발명과 같이 소프트웨어 기반의 시뮬레이터와 실제 하드웨어를 통합하여 시뮬레이션을 지원하는 기술은 존재하지 않았다.There have been a lot of studies to perform integrated simulation based on HLA / RTI. However, existing researches have focused on methods for supporting integrated simulation among software-based heterogeneous simulators. There is no technology that supports simulation by integrating software based simulator and actual hardware.

따라서, 본 발명은 HLA/RTI를 기반으로 소프트웨어 기반의 시뮬레이터와 실제 하드웨어를 통합하여 시뮬레이션 가능하도록 하는 환경을 제공함으로써, SoC(System on Chip) 설계 및 검증에 대한 효율을 향상시킬 수 있다.Accordingly, the present invention can improve the efficiency of SoC (System on Chip) design and verification by providing an environment that enables simulation by integrating software based simulator and actual hardware based on HLA / RTI.

도 2는 본 발명의 일 실시예에 따른 전체 구성을 개략적으로 나타낸 도면이다.FIG. 2 is a schematic view of an overall configuration according to an embodiment of the present invention.

도 2를 참조하여 본 발명의 일 실시예에 따른 HLA/RTI 기반 혼합회로 시뮬레이션 시스템(200)의 전체 구성 및 개념에 대해 간단히 설명하자면, 통상적으로 soft core는 Virtual Analog/Digital Signal로 시뮬레이션 하기 위해서 각 언어 모델에 해당하는 전용 시뮬레이터가 이용된다. 이때, Virtual Analog/Digital Signal로 시뮬레이션이 가능한 언어 모델에는 Verilog, VHDL, Verilog-A, C/C++, Matlab/Simulink 등이 있으며, Verilog는 Verilog 시뮬레이터, VHDL는 VHDL 시뮬레이터를 이용하는 등 각 언어 모델을 시뮬레이션 하기 위해서는 전용 시뮬레이터가 이용된다. 따라서, 본 발명에서는 soft core를 시뮬레이션 하는 시뮬레이터들을 소프트 코어 시뮬레이터 모듈(10)이라 명명한다.Referring to FIG. 2, the overall configuration and concept of the HLA / RTI based mixed circuit simulation system 200 according to an exemplary embodiment of the present invention will be briefly described. Generally, a soft core is used to simulate a virtual analog / A dedicated simulator corresponding to the language model is used. Verilog, VHDL, Verilog-A, C / C ++, and Matlab / Simulink are examples of language models that can be simulated with Virtual Analog / Digital Signal. Verilog simulates each language model using Verilog simulator and VHDL uses VHDL simulator. A dedicated simulator is used. Therefore, in the present invention, the simulators simulating the soft core are called the soft core simulator module 10.

한편, 본 발명에서의 hard core는 Virtual Digital Signal 또는 Real Signal로 시뮬레이션 하는 2가지 방법으로 구분할 수 있으며, hard core를 Virtual Digital Signal로 시뮬레이션 하기 위해서는 SPICE 시뮬레이터가 이용될 수 있고, hard core를 Real Signal로 시뮬레이션하기 위해서는 일련의 시뮬레이터의 역할을 하는 FPGA 등이 이용될 수 있다. 이 때, hard core와 어댑터 간에 하드 코어 에뮬레이터 모듈(20)이 위치하여 소프트 코어와의 연계 시뮬레이션이 가능하도록 지원할 수 있다.Meanwhile, the hard core of the present invention can be classified into two methods of simulating a virtual digital signal or a real signal. In order to simulate a hard core with a virtual digital signal, a SPICE simulator can be used. In order to simulate an FPGA, a series of simulators can be used. At this time, the hard core emulator module 20 can be positioned between the hard core and the adapter to enable a link simulation with the soft core.

이 때, Real Signal은 반도체 칩의 형태로 이미 구현되어 있는 메모리나 아날로그 회로 등의 hard core(기존에 존재하는 회로 모델(IP))를 구동시키는 신호를 말하며, 이러한 칩 형태의 기존 회로 모델을 구동시켜주는 역할을 하는 것이 FPGA 등 일 수 있다. 즉, FPGA는 이미 설계된 하드웨어를 반도체로 생산하기 직전 최종적으로 하드웨어의 동작 및 성능을 검증하기 위해 제작하는 중간 개발물 형태의 집적 회로(IC)로서, 본 발명에서 FPGA는 Real Signal을 수신하여 칩 형태의 기존 회로 모델(IP)을 구동시키고, 상기 칩 형태의 기존 회로 모델을 구동시킴으로써 발생한 신호를 외부(어댑터 모듈(30))로 전달해 주는 역할을 수행할 수 있다. 본 발명에서 제안하는 어댑터 모듈(30)은 이후에 더 자세히 설명하기로 하며, HLA/RTI(50)에 대한 설명은 상기에 자세히 설명했으므로 이하 생략하기로 한다.In this case, Real Signal refers to a signal that drives a hard core (existing circuit model (IP)) such as a memory or an analog circuit already implemented in the form of a semiconductor chip, and drives an existing circuit model FPGAs, and so on. That is, the FPGA is an intermediate-stage integrated circuit (IC) that is manufactured to verify the operation and performance of the hardware immediately before the already-designed hardware is produced in the semiconductor. In the present invention, the FPGA receives the real signal, (Adapter module 30) by driving an existing circuit model IP of the chip type and driving an existing circuit model of the chip type. The adapter module 30 proposed by the present invention will be described in more detail below. Since the description of the HLA / RTI 50 has been described above in detail, the following description will be omitted.

즉, 본 발명의 HLA/RTI 기반 혼합회로 시뮬레이션 시스템(200)은 상기에 제시된 소프트 코어 시뮬레이터 모듈(10)과 하드 코어 에뮬레이터 모듈(20)이 HLA/RTI(50) 기반으로 통합 시뮬레이션이 가능하도록 하는 어댑터(30)를 제공하려는 것을 목적으로 하며, 이하에서는 본 발명의 기술에 대해 보다 자세히 설명하기로 한다.That is, the HLA / RTI based mixed-circuit simulation system 200 of the present invention is a system in which the soft core simulator module 10 and the hard core emulator module 20 shown above can perform integrated simulation based on the HLA / RTI 50 It is intended to provide an adapter 30, and the technique of the present invention will be described in more detail below.

도 3은 본 발명의 일 실시예에 따른 HLA/RTI 기반 혼합회로 시뮬레이션 시스템의 개략적인 구성을 나타낸 도면이다.3 is a diagram illustrating a schematic configuration of an HLA / RTI based mixed circuit simulation system according to an embodiment of the present invention.

도 3을 참조하면, 본 발명의 일 실시예에 따른 HLA/RTI 기반 혼합회로 시뮬레이션 시스템(200)은 크게 소프트 코어 시뮬레이터 모듈(10), 하드 코어 에뮬레이터 모듈(20), 어댑터 모듈(30), 및 미들웨어 모듈(50)을 포함할 수 있다.Referring to FIG. 3, an HLA / RTI based mixed circuit simulation system 200 according to an exemplary embodiment of the present invention includes a soft core simulator module 10, a hard core emulator module 20, an adapter module 30, A middleware module 50, and the like.

도 3에 도시되지는 않았지만 소프트 코어 시뮬레이터 모듈(10) 내에 인터페이스 모듈이 더 포함될 수도 있다. 소프트 코어 시뮬레이터 모듈(10) 내의 인터페이스 모듈은 사용자가 외부에서 시뮬레이터나 soft core 모델의 데이터에 접근하거나 혹은 데이터의 수정이 가능하도록 하는 프로그램을 구현하기 위한 인터페이스를 의미할 수 있다.An interface module may be further included in the soft core simulator module 10 although not shown in FIG. The interface module in the soft core simulator module 10 may refer to an interface for implementing a program that allows a user to access data of a simulator or a soft core model from the outside or modify the data.

본 발명에서는 전반적으로 소프트웨어 시뮬레이터 인터페이스 모듈이 소프트 코어 시뮬레이터 모듈(10) 내에 포함된 개념 위주로 설명하고 있으나, 이 뿐만 아니라, 소프트웨어 시뮬레이터 인터페이스 모듈은 하드 코어 에뮬레이터 모듈(20) 내에 포함될 수도 있다. 더 자세히 말하자면, 소프트웨어 시뮬레이터 인터페이스 모듈은 이후 설명하게 될 도 4에서 하드 코어 에뮬레이터 모듈(20) 내의 소프트웨어 부분, 즉 소프트웨어 에뮬레이터(6)에 포함될 수도 있다. 그리고, 본 발명에서는 소프트웨어 시뮬레이터 인터페이스 모듈을 GPLI(General Programming language interface)로 정의하며, 이에 대한 설명은 추후에 자세히 설명하기로 한다.The software simulator interface module may be included in the hard core emulator module 20 as well as the software simulator interface module in the present invention. More specifically, the software simulator interface module may be included in the software portion in the hard core emulator module 20, that is, the software emulator 6 in Fig. 4, which will be described later. In the present invention, the software simulator interface module is defined as a general programming language interface (GPLI), and a description thereof will be described in detail later.

소프트 코어 시뮬레이터 모듈(10)은 전자 회로에 대한 시뮬레이션 모델을 이용하여 상기 전자 회로의 동작을 시뮬레이션 하는 소프트 코어 시뮬레이터 모듈을 말한다. 즉, 소프트 코어 시뮬레이터 모듈(10)은 전자 회로의 동작을 시뮬레이션 하는 소프트웨어 기반의 시뮬레이터로서, IP core 중 soft core를 시뮬레이션 하는 시뮬레이터가 포함되며, 더 자세하게는 Verilog(IEEE P1364 표준) 언어 모델을 이용하는 Verilog 시뮬레이터(디지털 회로 시뮬레이터), VHDL(IEEE P1076 표준) 언어 모델을 이용하는 VHDL 시뮬레이터(디지털 회로 시뮬레이터), Verilog-AMS 언어 모델을 이용하는 Verilog-AMS 시뮬레이터 (혼합신호 회로 시뮬레이터), 아날로그 회로 시뮬레이터인 SPICE 등이 될 수 있다.The soft core simulator module 10 refers to a soft core simulator module that simulates the operation of the electronic circuit using a simulation model for the electronic circuit. That is, the soft core simulator module 10 is a software-based simulator for simulating the operation of an electronic circuit, and includes a simulator for simulating a soft core among IP cores, and more specifically, Verilog (IEEE P1364 standard) VHDL simulator (digital circuit simulator) using VHDL (IEEE P1076 standard) language model, Verilog-AMS simulator (mixed signal circuit simulator) using Verilog-AMS language model, and SPICE analog circuit simulator .

하드 코어 에뮬레이터 모듈(20)은 시간 경과에 따라 오퍼레이션을 실제로 진행하는 모듈로서, IP core 중 hard core를 에뮬레이션 하기 위한 모듈, 또는 Real Signal를 생성하는 실제 칩과 FPGA로 이루어진 에뮬레이터 모듈을 의미한다. 또한, 하드 코어 에뮬레이터 모듈(20)은 IP 설계의 물리적 형태로서 시뮬레이션 수행 시 내부 동작은 알 수 없고, 수정이 쉽지 않지만 기능이 검증된 모델일 수 있다. 또한, 하드 코어 에뮬레이터 모듈(20)은 호스트 컴퓨터에서 하드웨어의 시그널을 받거나 주며, 하드웨어의 클럭(clock)을 제어하는 프로그램일 수 있으며, 또한, 하드웨어와 소프트웨어를 연결해 주는, 즉 Proxy(bridge) 역할을 해주는 도구일 수 있다.The hard core emulator module 20 is a module for actually performing operations over time, and is a module for emulating a hard core in an IP core or an emulator module including an actual chip and an FPGA for generating a real signal. In addition, the hard core emulator module 20 may be a model in which the internal operation is unknown when the simulation is performed as a physical form of the IP design, and a functionally verified model that is not easy to modify. In addition, the hard core emulator module 20 can receive a signal of a hardware from a host computer, and can be a program for controlling the clock of the hardware. In addition, the hard core emulator module 20 serves as a proxy (bridge) It can be a tool to give.

미들웨어 모듈(50)은 소프트 코어 시뮬레이터 모듈(10)과 하드 코어 에뮬레이터 모듈(20) 간에 통합 시뮬레이션이 가능하도록 통합 시뮬레이션 환경을 제공하는 미들웨어를 말하며, HLA/RTI(High Level Architecture/Run Time Infrastructure)일 수 있다. 본 발명은 HLA/RTI를 기반으로 하고, 어댑터 모듈(30)을 이용함으로써, 이기종 소프트웨어 기반 시뮬레이터 간의 통합 시뮬레이션 뿐만 아니라 소프트웨어 기반 시뮬레이터와 실제 하드웨어를 통합 시뮬레이션 하는 것이 가능하다.The middleware module 50 is a middleware that provides an integrated simulation environment so that an integrated simulation between the soft core simulator module 10 and the hard core emulator module 20 can be performed. . The present invention is based on HLA / RTI, and by using the adapter module 30, it is possible to simulate integrated simulation between software-based simulator and actual hardware as well as integrated simulation between different software-based simulators.

어댑터 모듈(30)은 전자 회로에 대한 시뮬레이션 모델을 이용하여 상기 전자 회로의 동작을 시뮬레이션 하는 소프트 코어 시뮬레이터 모듈(10)과 시간 경과에 따라 오퍼레이션을 실제로 진행하는 하드 코어 에뮬레이터 모듈(20) 각각이 통합 시뮬레이션 환경을 제공하는 미들웨어 모듈(50)과 상호 연동 가능하도록, 이벤트 기반의 시뮬레이션을 진행하고, 소프트 코어 시뮬레이터 모듈(10)과 하드 코어 에뮬레이터 모듈(20) 각각의 입출력 신호의 값을 서로 인식할 수 있는 형태로 변환하여 제공한다.The adapter module 30 includes a soft core simulator module 10 for simulating the operation of the electronic circuit using a simulation model for the electronic circuit and a hard core emulator module 20 for actually performing operation over time. Event-based simulation is performed so that the middleware module 50 providing the simulation environment can interoperate with each other and the values of the input and output signals of the soft core simulator module 10 and the hard core emulator module 20 can be recognized And provides them by converting them into the form of

어댑터 모듈(30)은 다양한 soft core를 시뮬레이션 하는 소프트 코어 시뮬레이터 모듈(10)과 hard core를 에뮬레이션 하는 하드 코어 에뮬레이터 모듈(20)이 HLA/RTI(50)에 참여하여 연동 될 수 있도록 도울 수 있으며, 소프트 코어 시뮬레이터 모듈(10)과 하드 코어 에뮬레이터 모듈(20) 간에 시간 동기화 및 데이터 변환을 도울 수 있다.The adapter module 30 may help the soft core simulator module 10 for simulating various soft cores and the hard core emulator module 20 for emulating a hard core to participate in the HLA / RTI 50, And may assist in time synchronization and data conversion between the soft core simulator module 10 and the hard core emulator module 20. [

또한, 어댑터 모듈(30)은 소프트 코어 시뮬레이터 모듈(10)과 하드 코어 에뮬레이터 모듈(20)이 HLA 서비스를 이용할 수 있도록 하는 인터페이스를 제공할 수 있다. 더 자세히 말하자면, 다양한 soft core 모의를 위한 시뮬레이터들 중 일부는 외부 표준 인터페이스가 존재한다. 즉, Verilog 및 Verilog AMS 계열 시뮬레이터는 외부 IEEE 표준 인터페이스인 Verilog PLI (Verilog Programming language Interface)를 지원하며, VHDL 및 VHDL AMS 계열 시뮬레이터는 VHDL PLI (Verilog Programming language Interface)와 같은 표준 인터페이스를 지원한다. 이때, 본 발명에서는 소프트웨어 시뮬레이터 인터페이스 모듈이 소프트 코어 시뮬레이터 모듈(10)과 다른 소프트 코어 시뮬레이터 모듈, 혹은 소프트 코어 시뮬레이터 모듈(10)과 하드 코어 에뮬레이터 모듈(20) 간에 데이터 전송을 위한 범용의 인터페이스를 제공하며, 이에 대한 자세한 설명은 추후에 하기로 한다.The adapter module 30 may also provide an interface for allowing the soft core simulator module 10 and the hard core emulator module 20 to utilize HLA services. More specifically, some of the simulators for various soft core simulations have external standard interfaces. That is, Verilog and Verilog AMS series simulators support Verilog Verilog PLI (Verilog Programming Language Interface), an external IEEE standard interface, and VHDL and VHDL AMS series simulators support standard interfaces such as VHDL Verilog Programming Language Interface (PLI). At this time, in the present invention, the software simulator interface module provides a universal interface for data transfer between the soft core simulator module 10 and another soft core simulator module or between the soft core simulator module 10 and the hard core emulator module 20 A detailed explanation will be given later.

어댑터 모듈(30)은 다양한 soft core 모의를 위한 시뮬레이터들이 지원하는 각기 다른 외부 표준 인터페이스를 통합적으로 지원 가능하도록 하는 라이브러리를 지원한다. 다시 말해, 어댑터 모듈(30)은 소프트 코어 시뮬레이터 모듈(10) 및 하드 코어 에뮬레이터 모듈(20)의 타입에 대응하는 라이브러리(즉, VHDL, Verilog-AMS, FPGA 등 모든 soft core 타입 및 hard core 타입에 대응하는 라이브러리)를 지원하기 때문에, 어댑터 모듈(30)은 소프트 코어 시뮬레이터 모듈(10)과 하드 코어 에뮬레이터 모듈(20) 간에 상호 연동되는 통합 시뮬레이션을 가능하게 한다. 다만, 일부 외부 인터페이스를 지원하지 않는 시뮬레이터는 어댑터 모듈(30)이 라이브러리를 이용할 수 있도록 하는 외부 시뮬레이터 인터페이스를 제공하도록 일부 수정이 요구될 수 있다.The adapter module 30 supports a library that enables various external standard interfaces supported by simulators for various soft core simulations to be integrally supported. In other words, the adapter module 30 is provided with a soft core simulator module 10 and a library corresponding to the type of the hard core emulator module 20 (i.e., all soft core types such as VHDL, Verilog-AMS, The adapter module 30 enables an integrated simulation interworking between the soft core simulator module 10 and the hard core emulator module 20. [ However, a simulator that does not support some external interfaces may require some modification to provide an external simulator interface that allows the adapter module 30 to use the library.

본 발명에서 어댑터 모듈(30)은 통합 시뮬레이션에서 이벤트 기반의 시뮬레이션을 진행할 때, 소프트 코어 시뮬레이터 모듈(10) 또는 하드 코어 에뮬레이터 모듈(20)에 라이브러리 형태로 플러그-인(plug-in) 됨으로써, 소프트 코어 시뮬레이터 모듈(10) 또는 하드 코어 에뮬레이터 모듈(20)이 HLA 서비스를 이용할 수 있게 된다.The adapter module 30 in the present invention is plug-in in the form of a library in the soft core simulator module 10 or the hard core emulator module 20 when event-based simulation is performed in the integrated simulation, The core simulator module 10 or the hard core emulator module 20 can use the HLA service.

또한, 어댑터 모듈(30)은 상기 소프트웨어 시뮬레이터 인터페이스 모듈이 제공하는 API와 상기 미들웨어 모듈(50)의 HLA 서비스에 이용되는 API를 기반으로 구현된 콜백 함수들의 집합으로 구성될 수 있으며, 이를 이용해 소프트 코어 시뮬레이터 모듈(10) 또는 하드 코어 에뮬레이터 모듈(20)에 라이브러리 형태로 플러그-인(plug-in)될 수 있다.The adapter module 30 may be formed of a set of callback functions implemented on the basis of the API provided by the software simulator interface module and the API used in the HLA service of the middleware module 50, And may be plugged in a library form into the simulator module 10 or the hard core emulator module 20. [

한편, 본 발명에서의 통합 시뮬레이션이라 함은 소프트 코어 시뮬레이터와 다른 소프트 코어 시뮬레이터를 함께 시뮬레이션 하는 것 뿐만 아니라 소프트 코어 시뮬레이터와 실제 하드웨어를 함께 시뮬레이션 하는 것을 의미한다.Meanwhile, the integrated simulation in the present invention means simulating the soft core simulator and the actual hardware together with the simulation of the soft core simulator and the other soft core simulator together.

소프트웨어 시뮬레이터 인터페이스 모듈은 소프트 코어 시뮬레이터 모듈(10) 내에 포함된 것으로서, 소프트 코어 시뮬레이터 모듈(10)의 시뮬레이션 결과로 인한 상기 소프트 코어 시뮬레이터 모듈(10)의 입출력 신호의 변화를 다른 소프트 코어 시뮬레이터 모듈 및 하드 코어 에뮬레이터 모듈(20)과 공유할 수 있도록 어댑터 모듈(30)로 제공한다.The software simulator interface module is included in the soft core simulator module 10 and is used to convert a change in the input / output signal of the soft core simulator module 10 due to a simulation result of the soft core simulator module 10 to another soft core simulator module And provides it to the adapter module 30 so that it can be shared with the core emulator module 20.

또한 소프트웨어 시뮬레이터 인터페이스 모듈은 사용자가 외부에서 시뮬레이터나 soft core 모델의 데이터에 접근하거나 혹은 데이터의 수정이 가능하도록 하는 프로그램을 구현하기 위한 인터페이스로서, 이에 대한 설명은 이후 도 5를 참조하여 보다 자세히 설명하기로 한다.In addition, the software simulator interface module is an interface for implementing a program that allows a user to access data of a simulator or a soft core model from the outside or to modify data, and will be described in detail with reference to FIG. 5 .

어댑터 모듈(30)은 소프트 코어 시뮬레이터 모듈(10)과 다른 소프트 코어 시뮬레이터 모듈 간, 및 소프트 코어 시뮬레이터 모듈(10)과 하드 코어 에뮬레이터 모듈(20) 간에 전송되는 데이터를 표준화된 객체 포맷(FOM)으로 변환할 수 있다. 이는 HLA 인터페이스 표준 구현물인 RTI가 시뮬레이션에 참여하는 시뮬레이터 간 정보 교환을 위해서 시뮬레이션 연동 모델인 FOM(Federation Object Model)을 사용하고 있으며, 각각의 시뮬레이터는 참여하는 시뮬레이션 내에서 동일한 FOM을 소유해야만 시뮬레이터 간 정보 교환이 가능하기 때문에, 어댑터 모듈(30)은 소프트 코어 시뮬레이터 모듈(10)과 하드 코어 에뮬레이터 모듈(20) 각각의 입출력 신호의 값을 표준화된 객체 포맷으로 변환해야 한다.The adapter module 30 converts data transferred between the soft core simulator module 10 and other soft core simulator modules and between the soft core simulator module 10 and the hard core emulator module 20 into a standardized object format (FOM) Can be converted. This means that RTI, which is a HLA interface standard implementation, uses the FOM (Federation Object Model), which is a simulation interworking model, to exchange information between simulators participating in the simulation, and each simulator must have the same FOM in the participating simulation, The adapter module 30 must convert the values of the input and output signals of the soft core simulator module 10 and the hard core emulator module 20 into the standardized object format.

이때, 다수의 시뮬레이터 간의 정보 교환을 위하여 RTI의 FOM을 사용하는 것이 일반적이라 생각할 수 있으나, 종래에는 다수의 소프트웨어 기반 시뮬레이터들 간에 통합 시뮬레이션을 위하여 FOM을 사용(즉, 소프트웨어 기반 시뮬레이터에 대한 FOM정보만 이용)한 반면, 본 발명은 어댑터 모듈(30)이 소프트 코어 시뮬레이터 모듈(10)에 관한 FOM 정보 뿐만 아니라 하드 코어 에뮬레이터 모듈(20)에 관한 FOM 정보를 포함하고 있기 때문에, 종래와 같은 다수의 소프트웨어 기반 시뮬레이터들 간에 통합 시뮬레이션 뿐만 아니라, 소프트웨어 기반 시뮬레이터와 실제 하드웨어 간에 통합 시뮬레이션이 가능하다. 이는 종래기술과 차별화된 특징이라 할 수 있다.In this case, it is generally considered that FOM of RTI is used for exchanging information between a plurality of simulators. However, conventionally, it is known that FOM is used for integrated simulation among a plurality of software-based simulators The adapter module 30 includes the FOM information about the hard core emulator module 20 as well as the FOM information about the soft core simulator module 10, Based simulator as well as integrated simulation between the software-based simulator and the actual hardware. This is a differentiated feature from the prior art.

상기 FOM(Federation Object Model)에는 HLA에 연동하는 객체(Object)와 상호 작용(interaction)을 기술하게 되며, 분산 혼합회로 시뮬레이션 환경에서는 시뮬레이터 간 전송할 데이터를 기입하게 된다. 즉, 본 발명에서는 소프트 코어 시뮬레이터 모듈(10)에서의 입출력 신호의 데이터와 하드 코어 에뮬레이터 모듈(20)에서의 입출력 신호의 데이터를 FOM에 기입하게 된다.In the FOM (Federation Object Model), an interaction with an object linked to the HLA is described. In the distributed mixed circuit simulation environment, data to be transferred between the simulators are written. That is, in the present invention, the input / output signal data in the soft core simulator module 10 and the input / output signal data in the hard core emulator module 20 are written to the FOM.

도 10은 본 발명의 일 실시예에 따른 어댑터 모듈 내에 정의된 FOM의 예를 나타낸 도면이다.10 is a view showing an example of FOM defined in an adapter module according to an embodiment of the present invention.

도 10을 참조하면, 어댑터 모듈(30) 내에는 다음과 같은 예로 FOM이 정의되어 있을 수 있으며, FOM에는 SPICE와 같은 아날로그 시뮬레이터에게 next event time, next clock time 등을 전달하기 위한 인터랙션(Interaction)이 정의되어 있을 수 있다. 자세하게는, ASE는 Value, RisingTime, FallingTime, Delay 값을 가지고, DSE는 Value, Delay 값을 가지며, NextEventTime은 SimulatorName, EventTime 값을 가진다. 소프트 코어 시뮬레이터 모듈(10)과 하드 코어 에뮬레이터 모듈(20) 각각은 FOM에서 정의한 이벤트 타입을 상속받음으로써 연결 포트를 정의할 수 있다.Referring to FIG. 10, an FOM may be defined in the adapter module 30 as an example. The FOM has an interaction for transmitting next event time and next clock time to an analog simulator such as SPICE Can be defined. Specifically, ASE has Value, RisingTime, FallingTime, and Delay values, DSE has Value and Delay values, and NextEventTime has SimulatorName and EventTime values. Each of the soft core simulator module 10 and the hard core emulator module 20 can define a connection port by inheriting an event type defined by the FOM.

본 발명의 일 실시예에 따르면, 어댑터 모듈(30)은 소프트 코어 시뮬레이터 모듈(10)과 하드 코어 에뮬레이터 모듈(20) 각각에서 발생한 입출력 데이터를 기본 CILS(Chip in Loop Simulation) FOM 으로 변환할 수 있으며, 소프트 코어 시뮬레이터 모듈(10)과 하드 코어 에뮬레이터 모듈(20) 각각은 사용할 Interaction 정보를 상기 CILS FOM에서 상속받아 기술할 수 있다. 즉, 소프트 코어 시뮬레이터 모듈(10)과 하드 코어 에뮬레이터 모듈(20) 각각은 표준화된 객체 포맷을 수신하여 상기 표준화된 객체 포맷에 포함된 정보를 상속하여 반영할 수 있다. 더 자세히 말하자면, 하드 코어 에뮬레이터 모듈(20)에서 발생한 입출력 데이터는 어댑터 모듈(30)에서 표준화된 객체 포맷(FOM)으로 변환될 수 있으며, 소프트 코어 시뮬레이터 모듈(10)은 어댑터 모듈(30)로부터 상기 변환된 하드 코어 에뮬레이터 모듈(20)의 입출력 데이터의 표준화된 객체 포맷(FOM)을 상속하여 반영할 수 있다.According to an embodiment of the present invention, the adapter module 30 can convert input / output data generated in each of the soft core simulator module 10 and the hard core emulator module 20 into a basic in-loop simulation FIL (CILS) , The soft core simulator module 10 and the hard core emulator module 20 can describe the interaction information to be used by inheriting from the CILS FOM. That is, the soft core simulator module 10 and the hard core emulator module 20 each receive the standardized object format and can inherit and reflect the information contained in the standardized object format. More specifically, the input / output data generated in the hard core emulator module 20 can be converted into a standardized object format (FOM) in the adapter module 30, and the soft core simulator module 10 can acquire, from the adapter module 30, The standardized object format (FOM) of the input / output data of the converted hard core emulator module 20 can be inherited and reflected.

한편, 기본 CILS의 인터랙션 FOM에 대해 살펴보면, 기본 CILS(Chip in Loop Simulation)는 ASE, DSE 등과 같이 기본 2가지 Interaction이 정의되고, 각각의 파라미터(parameter)는 ObjectName, Delay, Value 등으로 정의될 수 있으며, 데이터 타입은 HLA/RTI 표준으로 정의될 수 있다. 본 발명의 일 실시예에 따른 인터랙션 FOM은 파라미터 특성에 따라 상기 HLA/RTI 표준에서 정의되는 데이터 타입으로 정의될 수 있으며, 각각의 소프트 코어 시뮬레이터 모듈(10)은 어댑터 모듈(30)로부터 현재의 시뮬레이터 특성 및 외부 입/출력 데이터의 특성이 고려되어 정의된 Interaction FOM을 상속받아 반영할 수 있다. 즉, 소프트 코어 시뮬레이터 모듈(10) 내에 포함된 소프트웨어 시뮬레이터 인터페이스 모듈이 어댑터 모듈(30)로부터 표준화된 객체 포맷에 대한 정보를 상속받으면, 소프트 코어 시뮬레이터 모듈(10)는 상기 상속된 정보를 반영할 수 있다.The basic CILS (Chip in Loop Simulation) defines two basic interactions such as ASE and DSE, and each parameter can be defined as ObjectName, Delay, Value, and so on. , And the data type can be defined as the HLA / RTI standard. The interaction FOM according to an embodiment of the present invention can be defined as a data type defined in the HLA / RTI standard according to the parameter characteristics. Each soft core simulator module 10 receives, from the adapter module 30, Characteristics and characteristics of external input / output data are taken into account, and the defined Interaction FOM can be inherited and reflected. That is, when the software simulator interface module included in the soft core simulator module 10 inherits information on the standardized object format from the adapter module 30, the soft core simulator module 10 can reflect the inherited information have.

한편, 소프트 코어 시뮬레이터 모듈(10) 내에 포함된 소프트웨어 시뮬레이터 인터페이스 모듈은 소프트 코어 시뮬레이터 모듈(10)의 시뮬레이션 결과로 인한 입출력 신호의 변화를 다른 소프트 코어 시뮬레이터 모듈 및 하드 코어 에뮬레이터 모듈(20)과 공유할 수 있도록 어댑터 모듈(30)로 제공할 수 있다. 또한, 소프트웨어 시뮬레이터 인터페이스 모듈은 다른 소프트 코어 시뮬레이터 모듈 또는 하드 코어 에뮬레이터 모듈(20) 측에서 발생한 외부 이벤트에 의한 입출력 신호의 변화를 어댑터 모듈(30)로부터 획득하여 소프트 코어 시뮬레이터 모듈(10)에 반영하도록 제공할 수 있다.Meanwhile, the software simulator interface module included in the soft core simulator module 10 can share a change of the input / output signal due to the simulation result of the soft core simulator module 10 with the other soft core simulator module and the hard core emulator module 20 To the adapter module 30. [ In addition, the software simulator interface module acquires from the adapter module 30 a change in the input / output signal due to an external event generated by another soft core simulator module or the hard core emulator module 20 and reflects the change in the input / output signal to the soft core simulator module 10 .

한편, 도 4는 본 발명의 일 실시예에 따른 하드 코어 에뮬레이터 모듈의 세부 구성을 나타낸 도면이다.4 is a detailed block diagram of a hard core emulator module according to an embodiment of the present invention.

먼저 본 발명의 일 실시예에 따른 하드 코어 에뮬레이터 모듈(20)은 앞서 말한 바와 같이, 호스트 컴퓨터에서 하드웨어의 시그널을 받거나 줄 수 있으며, 하드웨어의 클럭(clock)을 제어하는 프로그램일 수 있고, 또한, 하드웨어와 소프트웨어를 연결해 주는, 즉 Proxy(bridge) 역할을 해주는 도구일 수 있다.As described above, the hard core emulator module 20 according to an exemplary embodiment of the present invention may be a program that receives or outputs a signal of hardware from a host computer, controls a hardware clock, It can be a tool that connects hardware and software, that is, it acts as a proxy (bridge).

즉, 하드 코어 에뮬레이터 모듈(20)은 하드 코어가 담긴 FPGA 클럭(즉, 실제 하드웨어의 클럭)을 제어하고, 내부에서 생성된 신호를 외부로 프로브(probe)하는 역할을 하며, 하드웨어와 소프트웨어를 연결해 주는 프락시(Proxy) 역할을 한다.That is, the hard core emulator module 20 controls the FPGA clock (that is, the clock of the actual hardware) containing the hard core, probes the internally generated signals to the outside, connects the hardware and software It acts as a proxy.

이에 따라, 도 4를 참조하면, 하드 코어 에뮬레이터 모듈(20)은 하드웨어적으로 클럭 제어 블록(Clock Control Block)(2)과 프로빙 및 트리거링 블록(Probing and Triggering Block)(4)을 포함할 수 있으며, 소프트웨어적으로 소프트웨어 에뮬레이터(Software Emulator)(6)를 포함할 수 있다.Accordingly, referring to FIG. 4, the hard core emulator module 20 may include a clock control block 2 and a probing and triggering block 4 in hardware. , And a software emulator (Software Emulator) 6 as software.

이때, 클럭 제어 블록(2)은 하드웨어의 클럭(Clock)를 제어함으로써, 하드웨어의 시간 진행을 관리하는 역할을 하며, 상기 프로빙 및 트리거링 블록(4)은 모의 코어와 다른 외부의 소프트 코어가 연결 되었을 때, 외부로부터 들어오는 데이터를 실제 신호로 바꿔주거나 실제 신호를 외부로 전달해 주는 역할을 한다.At this time, the clock control block 2 functions to manage the time progress of the hardware by controlling the clock of the hardware, and the probing and triggering block 4 has the simulation core and the external soft core connected to each other , It converts the data coming from the outside into the actual signal or transmits the actual signal to the outside.

더 자세히 말하자면, 소프트 코어 시뮬레이터 모듈(10)의 시뮬레이션 결과로 인한 입출력 신호의 변화가 어댑터 모듈(30)을 통해 하드 코어 에뮬레이터 모듈(20)로 전달된 경우, 프로빙 및 트리거링 블록(4)은 어댑터 모듈(30)로부터 수신한 소프트 코어 시뮬레이터 모듈(10)의 입출력 신호 값(즉, 외부로부터 들어오는 데이터)을 실제 신호로 바꿔 주는 역할을 한다. 또한 프로빙 및 트리거링 블록(4)은 반대로 하드 코어 에뮬레이터 모듈(20)에 의한 에뮬레이션의 입출력 신호의 변화 값을 외부로 전달하는 역할을 한다. 즉, 하드 코어 에뮬레이터 모듈(20)에 의한 실제 신호를 소프트 코어 시뮬레이터 모듈(10)로 전달하는 역할을 한다.More specifically, when a change in the input / output signal due to a simulation result of the soft core simulator module 10 is transmitted to the hard core emulator module 20 via the adapter module 30, the probing and triggering block 4 transmits, Output signal value (i.e., data coming from the outside) of the soft core simulator module 10 received from the soft core simulator module 30 into an actual signal. In addition, the probing and triggering block 4 transmits the change value of the input / output signal of the emulation by the hard core emulator module 20 to the outside. In other words, the soft core simulator module 10 transmits the actual signal generated by the hard core emulator module 20 to the soft core simulator module 10.

이때, 일반적으로 SoC 내의 블록들은 데이터를 버스를 통해 클럭에 동기화됨으로써 주고 받게 되며, 소프트웨어 에뮬레이터(6)는 클럭 시간에 따라 시간 진행을 하는 이산 시간 시뮬레이터로 볼 수 있다.At this time, the blocks in the SoC are usually exchanged by synchronizing the data to the clock through the bus, and the software emulator 6 can be regarded as a discrete time simulator that performs time progress according to the clock time.

도 5는 본 발명의 일 실시예에 따른 소프트웨어 시뮬레이터 인터페이스 모듈의 표준 정의를 나타낸 도면이다.5 is a diagram illustrating a standard definition of a software simulator interface module according to an embodiment of the present invention.

종래 soft core 모의를 위한 시뮬레이터들 중 일부 시뮬레이터들이 지원하는 외부 표준 인터페이스(예를 들어, Verilog PLI (Verilog Programming language Interface)는 단순히 디버깅(debugging)의 용도로서, 외부에서 port 값을 가져오거나 조정하도록 한 것이었으며, 반면, 본 발명에서는 기존의 표준 외부 인터페이스들에 순응하면서, 연동 시뮬레이션 측면에서 재해석하여 정리한 GPLI(General Programming language interface) 인터페이스 모듈을 제안하고 이를 정의한다. 또한 본 발명은 GPLI를 통해, 외부 PLI(Programming language Interface)가 정의되지 않은 시뮬레이터 혹은 에뮬레이터에게 PLI를 정의하기 위한 가이드 라인을 제공한다.The Verilog PLI (Verilog Programming Language Interface), which is supported by some of the simulators for simulating soft core in the past, is used for debugging purposes, On the other hand, in the present invention, a GPLI (General Programming Language Interface) module, which is reinterpreted in terms of interlocking simulation, while conforming to existing standard external interfaces, is proposed and defined. , And provides a guideline for defining a PLI to a simulator or emulator without an external PLI (programming language interface) defined.

앞서 설명한 바와 같이, 본 발명의 소프트웨어 시뮬레이터 인터페이스 모듈은 소프트 코어 시뮬레이터 모듈(10), 혹은 하드 코어 에뮬레이터 모듈(20) 내의 포함될 수 있다. 본 발명에서 제안하는 소프트웨어 시뮬레이터 인터페이스 모듈은 GPLI로 정의되며, GPLI는 사용자가 외부에서 시뮬레이터나 soft core 모델의 데이터에 접근하거나 혹은 데이터의 수정이 가능하도록 하는 프로그램을 구현하기 위한 인터페이스를 의미한다.As described above, the software simulator interface module of the present invention can be included in the soft core simulator module 10, or the hard core emulator module 20. [ The software simulator interface module proposed by the present invention is defined as a GPLI, and the GPLI means an interface for implementing a program that enables a user to access data of a simulator or a soft core model from the outside or to modify data.

GPLI는 크게 2가지로 정의되어 있을 수 있다. 하나는 사용자가 외부에서 시뮬레이터 제어를 위하여 구현할 프로그램에서 사용하는 것으로서, 시뮬레이터 혹은 soft core 모델의 데이터에 접근하거나 수정하기 위한 API(Application Programming Interface)가 정의되어 있을 수 있으며, 다른 하나는 사용자가 구현한 함수를 시뮬레이터가 수행할 수 있도록 콜백(callback)의 종류가 정의되어 있을 수 있다.The GPLI can be defined in two major ways. One is used in a program that a user implements for the control of a simulator from the outside. An application programming interface (API) for accessing or modifying data of a simulator or a soft core model may be defined. The type of callback may be defined so that the function can be performed by the simulator.

즉, 소프트웨어 시뮬레이터 인터페이스 모듈은 특정 시점에서 사용자가 구현한 함수가 호출될 수 있도록 다양한 타입의 콜백(callback) 함수와, 데이터에 접근 혹은 수정을 위한 API를 제공한다. 그리고 소프트 코어 시뮬레이터 모듈(10)은 시뮬레이션 하기 전에 등록되어 있는 콜백 함수를 종류에 따라 호출할 수 있다.That is, the software simulator interface module provides various types of callback functions and APIs for accessing or modifying data so that a user-implemented function can be called at a specific point in time. The soft core simulator module 10 can call the registered callback function according to the type before the simulation.

도 5를 참조하여, 상기 soft core 모델 및 시뮬레이터의 데이터에 접근 및 수정을 위한 API와, 사용자가 구현한 함수를 시뮬레이터가 상황에 따라 수행할 수 있도록 등록 가능한 콜백 (callback) 함수의 종류에 대해 살펴보면 다음과 같다.Referring to FIG. 5, an API for accessing and modifying data of the soft core model and the simulator, and a type of a callback function that can be registered so that the simulator can perform a function implemented by the user As follows.

먼저, soft core 모델 및 시뮬레이터의 데이터에 접근 및 수정을 위한 API의 종류로는, 객체의 데이터 값을 가져오는 (xpi_get_value), 객체의 데이터 값을 변경하는 (xpi_set_value), 현재 시뮬레이션의 시간 혹은 다음 이벤트의 시간을 가져오는 (xpi_get_cur_time/xpi_get_next_time)이 있을 수 있다.First, the APIs for accessing and modifying the data of the soft core model and the simulator include (xpi_get_value) fetching the data value of the object, (xpi_set_value) changing the data value of the object, (Xpi_get_cur_time / xpi_get_next_time).

그리고 콜백 함수의 종류로는, 시뮬레이션 시작 및 종료 시점에 호출되는 콜백 함수로 (cbAtStartofSimulation/cbEndOfSimualtion), 매 시뮬레이션의 가상 시간에 시뮬레이션 관련 연산이 수행되기 전 혹은 후에 호출되는 함수로 (cbBeforeEverySimTime/cbAfterEverySimTime), 특정 객체(이때, 객체는 외부와 연결되는 포트(Port), 선(Wire), 전압(voltage), 레지스터(register), 변수(variable) 등을 의미함)의 값이 바뀌었을 때 호출되는 함수로 (cbValueChanged)가 있을 수 있다.(CbAtStartofSimulation / cbEndOfSimualtion) that is called at the start and end of the simulation (cbBeforeEverySimTime / cbAfterEverySimTime), which is called before or after the simulation-related operation is performed in the virtual time of every simulation. A function that is called when the value of a specific object (in this case, an object refers to an external port, wire, voltage, register, variable, etc.) (cbValueChanged).

이때, 본 발명에서는 소프트 코어 시뮬레이터 모듈(10)과 하드 코어 에뮬레이터 모듈(20) 간에 통합 시뮬레이션을 수행함에 있어서, 하드 코어 에뮬레이터의 동작 속도가 소프트 코어 시뮬레이터의 동작 속도에 비해 상대적으로 매우 빠르므로, 하드 코어 에뮬레이터의 진행 시간을 느리게 제어하는 것이 필요하다. 이를 위하여 하드 코어 에뮬레이터 모듈(20)은 클럭 컨트롤 블록(2)을 통해 하드웨어의 클럭을 제어 및 시간 진행을 관리할 수 있으며, 이때 클럭 컨트롤 블록(2)은 하드 코어 에뮬레이터의 클럭 속도보다 빠른 가상 클럭을 발생시킬 수 있다. 따라서, 상기 (cbBeforeEverySimTime/cbAfterEverySimTime) 콜백 함수에서 매 시뮬레이션의 가상 시간이라 함은, 하드 코어 에뮬레이터의 동작 속도를 느리게 제어하기 위해 발생된 가상 클럭에 대응하는 시간이라 할 수 있다.In this case, since the operation speed of the hard core emulator is relatively fast compared with the operation speed of the soft core simulator in performing the integrated simulation between the soft core simulator module 10 and the hard core emulator module 20, It is necessary to control the progress time of the core emulator slowly. For this purpose, the hard core emulator module 20 can control the clock of the hardware and manage the time progress through the clock control block 2. The clock control block 2 controls the clock of the hard core emulator, Can be generated. Accordingly, the virtual time of each simulation in the (cbBeforeEverySimTime / cbAfterEverySimTime) callback function may be a time corresponding to the virtual clock generated to control the operation speed of the hard core emulator to be slow.

또한, 본 발명은 소프트 코어 시뮬레이터 모듈(10)과 하드 코어 에뮬레이터 모듈(20)을 함께 시뮬레이션하고, 이벤트 기반의 통합 시뮬레이션을 진행하는 도중에 소프트 코어 시뮬레이터 모듈(10)과 하드 코어 에뮬레이터 모듈(20) 각각에서 감지된 이벤트를 서로에게 반영하기 위하여, 하드 코어 에뮬레이터 모듈(20)의 진행 시간을 소프트 코어 시뮬레이터 모듈(10)상의 시간과 동기화할 필요가 있다. 따라서, 어댑터 모듈(30)은 이벤트 기반의 통합 시뮬레이션을 통하여 하드 코어 에뮬레이터 모듈(20)의 진행 시간을 소프트 코어 시뮬레이터 모듈(10)의 시뮬레이션 상의 시간과 동기화할 수 있다.In addition, the present invention simulates the soft core simulator module 10 and the hard core emulator module 20, and in the event-based integrated simulation, the soft core simulator module 10 and the hard core emulator module 20 It is necessary to synchronize the progress time of the hard core emulator module 20 with the time on the soft core simulator module 10 in order to reflect the sensed events to each other. Accordingly, the adapter module 30 can synchronize the progress time of the hard core emulator module 20 with the time on the simulation of the soft core simulator module 10 through event-based integrated simulation.

한편, 어댑터 모듈(30)은 GPLI와 HLA 서비스 인터페이스를 바탕으로 만들어진 콜백 함수들로 구성될 수 있다. 즉, 어댑터 모듈(30)은 소프트웨어 시뮬레이터 인터페이스 모듈이 제공하는 API와 미들웨어(50)의 HLA 서비스에 이용되는 API를 기반으로 구현된 콜백 함수들의 집합으로 구성될 수 있다. 이는 도 6을 참조하여 자세히 살펴보기로 한다.Meanwhile, the adapter module 30 may be configured with callback functions based on the GPLI and the HLA service interface. That is, the adapter module 30 may be configured as a set of callback functions implemented based on an API provided by the software simulator interface module and an API used in the HLA service of the middleware 50. This will be described in detail with reference to FIG.

도 6은 본 발명의 일 실시예에 따른 어댑터 모듈 내부에 포함되는 콜백 함수의 예를 나타낸 도면이다.6 is a diagram illustrating an example of a callback function included in an adapter module according to an embodiment of the present invention.

도 6을 참조하면, 어댑터 모듈(30)은 GPLI 기반의 콜백 함수와 HLA 기반의 콜백 함수를 포함할 수 있다.Referring to FIG. 6, the adapter module 30 may include a GPLI-based callback function and an HLA-based callback function.

GPLI 기반의 콜백 함수의 경우, (xpiInitialize), (xpiEnd), (AE_Convert/DE_Convert), (xpiNextMessageRquest (xpiNER)/xpiTimeAdvanceRequest (xpiTAR)), (xpiNotifyCurrentTime (xpiNCT))가 있을 수 있다.For a GPLI based callback function, there can be (xpiInitialize), (xpiEnd), (AE_Convert / DE_Convert), (xpiNextMessageRquest (xpiNER) / xpiTimeAdvanceRequest (xpiTAR)), and (xpiNotifyCurrentTime (xpiNCT)).

(xpiInitialize) 콜백 함수는 시뮬레이션 시작 전에 RTI에 참여하여 연동을 할 수 있도록 관련 HLA 서비스들을 수행하며, 콜백 타입은 (cbAtStartofSimulation)이다.(xpiInitialize) The callback function performs related HLA services to participate in RTI before start simulation, and callback type (cbAtStartofSimulation).

(xpiEnd) 콜백 함수는 시뮬레이션 종료 후에 종료 관련 HLA 서비스들을 수행하며, 콜백 타입은 (cbEndOfSimualtion)이다.(xpiEnd) The callback function performs end-related HLA services after the end of the simulation, and the callback type is (cbEndOfSimualtion).

(AE_Convert/DE_Convert) 콜백 함수는 특정 시간에 관련 시뮬레이션 연산이 수행되고, 모델 내 외부와 연결된 객체의 값이 바뀔 때 바뀌는 값을 HLA 이벤트(Interaction)으로 바꾸어 sendInteraction API를 호출하여 외부로 전달하며, 콜백 타입은 (cbValueChanged)이다.(AE_Convert / DE_Convert) The callback function converts the value changed when the value of the object connected to the outside of the model is changed to the HLA event (Interaction), and sends it to the outside by calling the sendInteraction API. The type is (cbValueChanged).

(xpiNextMessageRquest (xpiNER)/xpiTimeAdvanceRequest (xpiTAR)) 콜백 함수는 현재 시간에 시뮬레이션 연산이 끝나고, 이벤트 기반 다음 시간 진행 전에 RTI에게 다음 시간 진행이 가능한지 요청하며, 이때, RTI로부터 xpiNER는 최소 next event time 정보를 응답 받고, xpiTAR은 시간 진행 허가 (grant)를 응답 받으며, 콜백 타입은 (cbAfterSimEvTime)이다.(xpiNextMessageRquest (xpiNER) / xpiTimeAdvanceRequest (xpiTAR)) The callback function requests the next time advancement to RTI after the simulation operation at the current time and before the event based next time advance. At this time, xpiNER from the RTI informs the next next event time information XpiTAR is responded to the time progress grant, and the callback type is (cbAfterSimEvTime).

(xpiNotifyCurrentTime (xpiNCT)) 콜백 함수는 현재 시간에 시뮬레이션 연산이 끝나고, RTI와 시간 동기화를 위해 현재까지 진행한 시간을 RTI에게 알려 주며, 콜백 타입은 (cbAfterSimEvTime)이다.(xpiNotifyCurrentTime (xpiNCT)) The callback function informs RTI to the time that the simulation has been completed at the current time and has been performed so far for time synchronization with the RTI, and the callback type is (cbAfterSimEvTime).

HLA 기반의 콜백 함수의 경우, RTI로 부터 interaction이 오면 EA_Convert/ ED_Convert 함수를 호출하여 내부 모델의 연결 객체의 값을 바꿔주는 (receiveInteraction) 콜백 함수가 있을 수 있다.For an HLA-based callback function, there may be a callback function (receiveInteraction) that invokes the EA_Convert / ED_Convert function to change the value of the connection object of the internal model when an interaction comes from the RTI.

이하에서는 콜백 함수의 호출 흐름에 대해 설명하기로 한다. 소프트 코어 시뮬레이터 모듈(10) 혹은 하드 코어 에뮬레이터 모듈(20)은 상황에 따라 어댑터 모듈(30)을 구성하는 GPLI 기반의 콜백 함수를 호출하며, 상기 호출된 콜백 함수들은 시뮬레이터들 간 혹은 시뮬레이터와 에뮬레이터 간에 연동을 위해 관련 HLA API들을 수행한다. 그리고 RTI가 HLA 기반의 콜백 함수들을 수행하면, 상기 수행되는 콜백 함수들은 GPLI 기반의 함수를 호출함으로써, 시뮬레이터 혹은 에뮬레이터에게 시간 진행 허가 메시지를 전달하거나 또는 외부 데이터들을 전달할 수 있게 된다.Hereinafter, the call flow of the callback function will be described. The soft core simulator module 10 or the hard core emulator module 20 calls the GPLI-based callback function constituting the adapter module 30 according to circumstances, and the called callback functions are provided between the simulators or between the simulator and the emulator Perform related HLA APIs for interworking. When the RTI executes the HLA-based callback functions, the callback functions performed are able to transmit a time advance permission message or external data to the simulator or the emulator by calling a GPLI-based function.

즉, 본 발명은 소프트 코어 시뮬레이터 모듈(10) 뿐만 아니라 하드 코어 에뮬레이터 모듈(20)과 연동 가능한 어댑터 모듈(30)을 이용하여 RTI에게, 혹은 RTI로부터 외부 이벤트를 송수신할 수 있고, 시간 진행 요청을 허가할 수도 있으며, 또한, 이들 정보를 바탕으로 하드 코어 에뮬레이터 모듈(20) 내의 FPGA의 실제 신호를 보내거나 클럭을 제어할 수 있다.That is, the present invention can send and receive external events from the RTI or RTI using the soft core simulator module 10 as well as the adapter module 30 interlocked with the hard core emulator module 20, And can also send the actual signal of the FPGA in the hard core emulator module 20 or control the clock based on the information.

도 7은 본 발명의 일 실시예에 따른 어댑터 모듈이 이벤트 신호를 변환하는 예를 나타낸 도면이다.7 is a diagram illustrating an example in which an adapter module according to an embodiment of the present invention converts an event signal.

도 7을 참조하면, 우선 SE(Signal to Event) 변환 함수는 DE Convert와 AE Convert 함수로 구성될 수 있으며, ES(Event to Signal) 변환 함수는 ED Convert와 EA Conver 함수로 구성될 수 있다.Referring to FIG. 7, the SE (Signal to Event) conversion function may be composed of DE Convert and AE Convert functions, and the ES (Event to Signal) conversion function may be composed of ED Convert and EA Conver functions.

어댑터 모듈(30)은 소프트 코어 시뮬레이터 모듈(10) 또는 하드 코어 에뮬레이터 모듈(20)에서 발생한 신호(Signal)의 변화를 감지하고, SE 변환 함수(즉, DE Convert와 AE Convert 함수)를 이용하여 상기 감지된 신호를 이벤트로 변환(Signal to Event)할 수 있으며, 상기 변환된 이벤트를 다른 시뮬레이터로 전달할 수 있다. 또한 어댑터 모듈(30)은 ES 변환 함수(즉, ED Convert와 EA Convert 함수)를 이용하여, 다른 소프트 코어 시뮬레이터 등 외부에서 받은 이벤트를 소프트 코어 시뮬레이터 모듈(10)에서 사용할 수 있는 신호로 전환(Event to Signal)할 수 있다. 이때 SE(Signal to Event) 및 ES(Event to Signal)의 규칙(rule)은 사용자가 지정할 수 있다. 따라서, 어댑터 모듈(30)은 소프트 코어 시뮬레이터 모듈(10)와 하드 코어 에뮬레이터 모듈(20)의 이벤트를 검출할 수 있는 특징이 있다.The adapter module 30 senses a change in a signal generated in the soft core simulator module 10 or the hard core emulator module 20 and outputs the signal to the adapter module 30 using the SE conversion function (i.e., DE Convert and AE Convert function) The detected signal can be converted into an event (Signal to Event), and the converted event can be transmitted to another simulator. The adapter module 30 converts an event received from the outside such as another soft core simulator into a signal usable in the soft core simulator module 10 by using an ES conversion function (i.e., ED Convert and EA Convert function) to Signal. At this time, the rule of SE (Signal to Event) and ES (Event to Signal) can be designated by the user. Accordingly, the adapter module 30 is capable of detecting events of the soft core simulator module 10 and the hard core emulator module 20. [

한편, 소프트 코어 시뮬레이터 모듈(10)은 대상 soft core에 따라 이산 사건(event) 기반으로 모의(이때, Verilog 시뮬레이터, VHDL 시뮬레이터, Verilog-AMS 시뮬레이터 등이 이용될 수 있음)하거나 연속 시간으로 모의(이때, SPICE 시뮬레이터가 이용될 수 있음)할 수 있다. 그리고 하드 코어 에뮬레이터 모듈(20)은 모의를 위해 소프트웨어 에뮬레이터가 이용될 수 있다.Meanwhile, the soft core simulator module 10 may simulate a discrete event based on a target soft core (in this case, a Verilog simulator, a VHDL simulator, a Verilog-AMS simulator or the like may be used) , A SPICE simulator may be used). And the hard core emulator module 20 may be a software emulator for simulation.

도 8은 본 발명의 일 실시예에 따른 소프트 코어 시뮬레이터 모듈 간에 통합 시뮬레이션 수행 시 시간 진행을 나타낸 도면이다.FIG. 8 is a diagram illustrating a time progress when performing an integrated simulation between soft core simulator modules according to an embodiment of the present invention.

즉, 도 8은 소프트 코어 시뮬레이터 모듈(10)들 간의 통합 시뮬레이션의 예로, SPICE 시뮬레이터(이는 아날로그 시뮬레이터임)(11)와 Verilog 혹은 VHDL 시뮬레이터(이는 디지털 시뮬레이터임)(12) 간의 통합 시뮬레이션 예를 나타내고 있다. 이때 SPICE 시뮬레이터 (11)와 Verilog 혹은 VHDL 시뮬레이터(12)는 소프트 코어 시뮬레이터 모듈(10)의 한 종류이다.8 shows an example of an integrated simulation between a SPICE simulator (which is an analog simulator) 11 and a Verilog or VHDL simulator (which is a digital simulator) 12 as an example of an integrated simulation between the soft core simulator modules 10 have. At this time, the SPICE simulator 11 and the Verilog or VHDL simulator 12 are a kind of the soft core simulator module 10.

간단히 살펴보면, 아날로그 시뮬레이터인 SPICE 시뮬레이터(11)는 현재 시간까지 시간 진행을 RTI(50)에 요청하기 위하여, 상기 요청 정보를 어댑터 모듈(30)로 전송(A)하며, 디지털 시뮬레이터(12)로부터 다음 이벤트 시간을 받을 때(B)까지 기다린다. 그리고 디지털 시뮬레이터(12)는 아날로그 시뮬레이터(11)로부터의 시간 진행 요청에 응답하여, 아날로그 시뮬레이터(11)에게 다음 이벤트 시간을 전달(C)하며, 이와 함께 RTI(50)로 다음 이벤트 시간을 요청(D)한다. 본 발명은 이러한 과정을 통해 소프트 코어 시뮬레이터 모듈(10)들 간에 통합 시뮬레이션이 수행될 수 있다.The SPICE simulator 11 as an analog simulator transmits the request information to the adapter module 30 in order to request the RTI 50 for the time progress until the current time, Wait until (B) when you receive the event time. The digital simulator 12 transmits the next event time to the analog simulator 11 in response to the time advance request from the analog simulator 11 and also requests the next event time to the RTI 50 D). Through this process, an integrated simulation can be performed between the soft core simulator modules 10 according to the present invention.

이하에서는 상기 도8에 대한 또 다른 실시예에 대해 설명한다. 즉 이하에서는 본 발명의 또 다른 실시예에 따른, 이산 사건 기반 시뮬레이터(디지털 회로 시뮬레이터, 즉 Verilog 혹은 VHDL 시뮬레이터)와 연속 시간 시뮬레이터(아날로그 회로 시뮬레이터, 즉 SPICE 시뮬레이터)를 통합 시뮬레이션 할 때의 시간 진행 과정에 대해 설명한다. Hereinafter, another embodiment of FIG. 8 will be described. That is, the following description will be made of a time progress process when a simulation of a discrete event based simulator (a digital circuit simulator, that is, a Verilog or VHDL simulator) and a continuous time simulator (an analog circuit simulator, i.e., a SPICE simulator) Will be described.

일 실시예에 따르면, 처음에 디지털 회로 시뮬레이터가 최소 이벤트 시간(T1)을 예측하고, 예측된 시간을 아날로그 회로 시뮬레이터 측에 통보한다. 그리고 아날로그 회로 시뮬레이터 측에서 예측된 T1 시간 동안에 이벤트가 발생하지 않은 경우, 디지털 회로 시뮬레이터는 T1 시간의 시뮬레이션을 수행한다. 반면, 아날로그 회로 시뮬레이터 측에서 예측된 T1 시간 이내에 이벤트가 발생한 경우, 아날로그 회로 시뮬레이터는 이를 디지털 회로 시뮬레이터 측에 통보하고, 아날로그 회로 시뮬레이터에서 발생한 이벤트 시간까지의 시뮬레이션 결과 값을 디지털 회로 시뮬레이터에 제공한다. 그리고 디지털 회로 시뮬레이터는 최소 이벤트 시간으로 T1을 예측했지만, T1 내에 아날로그 회로 시뮬레이터 측에서 또 다른 이벤트가 발생했으므로, 디지털 회로 시뮬레이터는 아날로그 회로 시뮬레이터 측에서 통보한 이벤트를 반영하여 시뮬레이션을 수행하고, 다음으로 통보 받은 이벤트 시간 이후의 다음 최소 이벤트 시간을 다시 예측하여 이를 아날로그 회로 시뮬레이터에 통보한다.According to one embodiment, the digital circuit simulator initially predicts the minimum event time T1 and notifies the analog circuit simulator side of the estimated time. If the event does not occur during the T1 time predicted by the analog circuit simulator, the digital circuit simulator performs the simulation of T1 time. On the other hand, when an event occurs within the estimated T1 time on the side of the analog circuit simulator, the analog circuit simulator notifies the digital circuit simulator side of the event and provides simulation result values up to the event time occurring in the analog circuit simulator to the digital circuit simulator. Since the digital circuit simulator predicts T1 as the minimum event time, but another event occurs in the analog circuit simulator side within T1, the digital circuit simulator performs the simulation by reflecting the event notified by the analog circuit simulator side, Predicts again the next minimum event time after the notified event time, and notifies it to the analog circuit simulator.

도 9는 본 발명의 일 실시예에 따른 소프트 코어 시뮬레이터 모듈과 하드 코어 에뮬레이터 모듈 간에 통합 시뮬레이션 수행 시 시간 진행을 나타낸 도면이다.FIG. 9 is a diagram illustrating time progress when performing an integrated simulation between a soft core simulator module and a hard core emulator module according to an embodiment of the present invention.

즉, 도 9는 소프트 코어 시뮬레이터 모듈(10)과 하드 코어 에뮬레이터 모듈(20) 간의 통합 시뮬레이션의 예로, SPICE 시뮬레이터(이는 소프트 코어 시뮬레이터 모듈임)와 소프트웨어 에뮬레이터(이는 하드 코어 에뮬레이터 모듈임) 간의 통합 시뮬레이션 예를 나타내고 있다.9 shows an example of an integrated simulation between the soft core simulator module 10 and the hard core emulator module 20 in which an integrated simulation between a SPICE simulator (which is a soft core simulator module) and a software emulator (which is a hard core emulator module) For example.

도 9의 전반적인 흐름은 도 8과 유사하다. 이에 대해 간단히 살펴보면, 아날로그 시뮬레이터인 SPICE 시뮬레이터(10)는 현재 시간까지 시간 진행을 RTI(50)에 요청하기 위하여, 상기 요청 정보를 어댑터 모듈(30)로 전송(E)하며, 하드 코어 에뮬레이터 모듈(20)로부터 클럭 주기 정보를 받을 때(F)까지 아날로그 동작을 하게 된다. 그리고 하드 코어 에뮬레이터 모듈(20)은 클럭 주기 만큼 이산 시간으로 동작(G)한다. 소프트 코어 시뮬레이터 모듈(10)과 하드 코어 에뮬레이터 모듈(20) 간에는 어댑터 모듈(30) 내의 DE Convert, AE Convert, ED Convert, EA Conver 함수 등을 이용하여 SE(Signal to Event), ES(Event to Signal)와 같은 이벤트 신호의 변환이 이루어진다. 본 발명은 상기와 같은 과정을 통해 소프트 코어 시뮬레이터 모듈(10)과 하드 코어 에뮬레이터 모듈(20) 간에 통합 시뮬레이션이 수행될 수 있다.The overall flow of FIG. 9 is similar to FIG. The SPICE simulator 10 as an analog simulator transmits the request information to the adapter module 30 in order to request the RTI 50 for the time progress until the current time and transmits the request information to the hard core emulator module 20 to receive the clock period information (F). The hard core emulator module 20 operates (G) at a discrete time by a clock cycle. (Signal to Event) and ES (Event to Signal) are generated between the soft core simulator module 10 and the hard core emulator module 20 using the DE Convert, AE Convert, ED Convert, and EA Conver functions in the adapter module 30. [ ) Are converted into event signals. Through the above process, the integrated simulation between the soft core simulator module 10 and the hard core emulator module 20 can be performed.

본 발명은 상기에 제시한 기술을 이용함으로써, 소프트웨어 기반의 시뮬레이터와 실제 하드웨어를 함께 통합하여 시뮬레이션 하는 환경을 제공할 수 있다.The present invention can provide an environment for simulating a software-based simulator and real hardware together by using the above-described technology.

이하 설명은 상기에 자세히 기술한 내용을 바탕으로, 본 발명의 일 실시예에 따른 흐름도를 간단히 설명하기로 한다.The following description will briefly explain a flowchart according to an embodiment of the present invention, based on the details described above.

도 11은 본 발명의 일 실시예에 따른 HLA/RTI 기반 혼합회로 시뮬레이션 방법의 개략적인 흐름도이다.11 is a schematic flowchart of a HLA / RTI based mixed circuit simulation method according to an embodiment of the present invention.

도 11을 참조하면, 본 발명의 HLA/RTI 기반 혼합회로 시뮬레이션 방법은 소프트 코어 시뮬레이터 모듈(10)과 하드 코어 에뮬레이터 모듈(20) 각각이 미들웨어 모듈(50)과 상호 연동 가능하도록, 이벤트 기반의 통합 시뮬레이션을 진행한다(S1110).11, the HLA / RTI-based mixed circuit simulation method of the present invention includes an event-based integration process so that the soft core simulator module 10 and the hard core emulator module 20 can interoperate with the middleware module 50, The simulation proceeds (S1110).

이때, 본 발명에서의 통합 시뮬레이션이라 함은 소프트 코어 시뮬레이터와 다른 소프트 코어 시뮬레이터를 함께 시뮬레이션 하는 것 뿐만 아니라 소프트 코어 시뮬레이터와 실제 하드웨어(FPGA)를 함께 시뮬레이션 하는 것을 의미한다. 즉, 통합 시뮬레이션은 소프트 코어 시뮬레이터 모듈들 간, 혹은 소프트 코어 시뮬레이터 모듈과 하드 코어 에뮬레이터 모듈 간의 시뮬레이션을 의미한다Here, the integrated simulation in the present invention means simulating the soft core simulator and the actual hardware (FPGA) together as well as simulating the soft core simulator and the other soft core simulator together. That is, the integrated simulation means a simulation between the soft core simulator modules or between the soft core simulator module and the hard core emulator module

또한, 소프트 코어 시뮬레이터 모듈(10)은 전자 회로에 대한 시뮬레이션 모델을 이용하여 상기 전자 회로의 동작을 시뮬레이션 하는 소프트 코어 시뮬레이터 모듈을 의미하며, 하드 코어 에뮬레이터 모듈(20)은 시간 경과에 따라 오퍼레이션을 실제로 진행하는 모듈로서, IP core 중 hard core를 에뮬레이션 하기 위한 모듈, 또는 Real Signal를 생성하는 실제 칩과 FPGA로 이루어진 에뮬레이터 모듈을 의미한다.In addition, the soft core simulator module 10 refers to a soft core simulator module that simulates the operation of the electronic circuit using a simulation model for an electronic circuit. The hard core emulator module 20 performs an operation As an ongoing module, it means a module for emulating a hard core among the IP core, or an emulator module composed of an actual chip and an FPGA that generate a real signal.

이때, 하드 코어 에뮬레이터 모듈(20)은 호스트 컴퓨터에서 하드웨어의 시그널을 받거나 주며, 하드웨어의 클럭(clock)을 제어하는 프로그램일 수 있으며, 또한, 하드웨어와 소프트웨어를 연결해 주는, 즉 Proxy(bridge) 역할을 해주는 도구일 수 있다.In this case, the hard core emulator module 20 may receive a hardware signal from the host computer, may be a program for controlling the clock of the hardware, and may also serve as a proxy (bridge) It can be a tool to give.

미들웨어 모듈(50)은 소프트 코어 시뮬레이터 모듈(10)과 하드 코어 에뮬레이터 모듈(20) 간에 통합 시뮬레이션이 가능하도록 통합 시뮬레이션 환경을 제공하는 미들웨어를 말하며, HLA/RTI(High Level Architecture/Run Time Infrastructure)일 수 있다. 이에 대한 설명은 상기에 자세히 설명했으므로, 이를 참조하기로 한다.The middleware module 50 is a middleware that provides an integrated simulation environment so that an integrated simulation between the soft core simulator module 10 and the hard core emulator module 20 can be performed. . The description thereof has been described above in detail, so that reference will be made thereto.

다음으로, 상기 이벤트 기반의 통합 시뮬레이션을 진행하는 도중에 소프트웨어 시뮬레이터 인터페이스 모듈은 소프트 코어 시뮬레이터 모듈(10)의 시뮬레이션 결과로 인한 입출력 신호의 변화를 다른 소프트 코어 시뮬레이터 모듈 및 하드 코어 에뮬레이터 모듈(20)과 공유할 수 있도록 어댑터 모듈(30)로 제공한다(S1120).Next, during the event-based integrated simulation, the software simulator interface module shares the change of the input / output signal due to the simulation result of the soft core simulator module 10 with the other soft core simulator module and the hard core emulator module 20 To the adapter module 30 (S1120).

이때, 소프트웨어 시뮬레이터 인터페이스 모듈은 소프트 코어 시뮬레이터 모듈(10) 또는 하드 코어 에뮬레이터 모듈(20) 내에 포함될 수도 있다. 본 발명에서는 소프트웨어 시뮬레이터 인터페이스 모듈을 GPLI(General Programming language interface)로 정의하고 있으며, 이에 대한 설명은 상기에 자세히 설명했으므로 이하 생략하기로 한다.At this time, the software simulator interface module may be included in the soft core simulator module 10 or the hard core emulator module 20. In the present invention, the software simulator interface module is defined as a general programming language interface (GPLI), and the description thereof has been described in detail above, so that the following description will be omitted.

다음으로, 어댑터 모듈(30)은 소프트 코어 시뮬레이터 모듈(10)과 하드 코어 에뮬레이터 모듈(20) 각각의 입출력 신호의 값을 서로 인식할 수 있는 형태로 변환하여 제공한다(S1130).Next, the adapter module 30 converts the values of the input / output signals of the soft core simulator module 10 and the hard core emulator module 20 into a form recognizable from each other and provides them to the adapter module 30 (S1130).

이때, 어댑터 모듈(30)은 다양한 soft core를 시뮬레이션 하는 소프트 코어 시뮬레이터 모듈(10)과 hard core를 에뮬레이션 하는 하드 코어 에뮬레이터 모듈(20)이 HLA/RTI(50)에 참여하여 연동 될 수 있도록 도울 수 있으며, 소프트 코어 시뮬레이터 모듈(10)과 하드 코어 에뮬레이터 모듈(20) 간에 시간 동기화 및 데이터 변환을 도울 수 있다.At this time, the adapter module 30 may help the soft core simulator module 10 for simulating various soft cores and the hard core emulator module 20 for emulating a hard core to participate in the HLA / RTI 50 And may assist in time synchronization and data conversion between the soft core simulator module 10 and the hard core emulator module 20.

또한, 어댑터 모듈(30)은 통합 시뮬레이션에서 이벤트 기반의 시뮬레이션을 진행할 때, 소프트 코어 시뮬레이터 모듈(10) 또는 하드 코어 에뮬레이터 모듈(20)에 라이브러리 형태로 플러그-인(plug-in) 됨으로써, 소프트 코어 시뮬레이터 모듈(10) 또는 하드 코어 에뮬레이터 모듈(20)이 HLA 서비스를 이용할 수 있게 한다.The adapter module 30 is plug-in in the form of a library in the soft core simulator module 10 or the hard core emulator module 20 when performing the event-based simulation in the integrated simulation, Thereby allowing the simulator module 10 or the hard core emulator module 20 to use the HLA service.

또한, 어댑터 모듈(30)은 상기 소프트웨어 시뮬레이터 인터페이스 모듈이 제공하는 API와 상기 미들웨어 모듈(50)의 HLA 서비스에 이용되는 API를 기반으로 구현된 콜백 함수들의 집합으로 구성될 수 있으며, 이를 이용해 소프트 코어 시뮬레이터 모듈(10) 또는 하드 코어 에뮬레이터 모듈(20)에 라이브러리 형태로 플러그-인(plug-in)될 수 있다. 이에 대한 설명은 상기에 자세히 설명했으므로 이하 생략하기로 한다.The adapter module 30 may be formed of a set of callback functions implemented on the basis of the API provided by the software simulator interface module and the API used in the HLA service of the middleware module 50, And may be plugged in a library form into the simulator module 10 or the hard core emulator module 20. [ Since the description has been described in detail above, the following description is omitted.

다음으로, 소프트 코어 시뮬레이터 모듈(10)과 하드 코어 에뮬레이터 모듈(20) 각각은 어댑터 모듈(30)로부터 표준화된 객체 포맷을 수신하여 상기 표준화된 객체 포맷에 포함된 정보를 적용할 수 있으며, 특히 소프트 코어 시뮬레이터 모듈(10) 각각은 어댑터 모듈(30)로부터 표준화된 객체 포맷을 수신하여 상기 표준화된 객체 포맷에 포함된 정보를 상속하여 반영할 수 있다(S1140).Next, each of the soft core simulator module 10 and the hard core emulator module 20 can receive the standardized object format from the adapter module 30 and apply the information contained in the standardized object format, Each of the core simulator modules 10 receives the standardized object format from the adapter module 30 and inherits the information contained in the standardized object format and reflects the inherited information in operation S1140.

즉, 하드 코어 에뮬레이터 모듈(20)에서 발생한 입출력 데이터는 어댑터 모듈(30)에서 표준화된 객체 포맷(FOM)으로 변환될 수 있으며, 소프트 코어 시뮬레이터 모듈(10)은 어댑터 모듈(30)로부터 상기 변환된 하드 코어 에뮬레이터 모듈(20)의 입출력 데이터의 표준화된 객체 포맷(FOM)을 상속하여 반영할 수 있다.That is, input / output data generated in the hard core emulator module 20 can be converted into a standardized object format (FOM) in the adapter module 30, and the soft core simulator module 10 can receive the converted The normalized object format (FOM) of the input / output data of the hard core emulator module 20 can be inherited and reflected.

어댑터 모듈(30)은 소프트 코어 시뮬레이터 모듈(10)과 다른 소프트 코어 시뮬레이터 모듈 간 및 소프트 코어 시뮬레이터 모듈(10)과 하드 코어 에뮬레이터 모듈(20) 간에 전송되는 데이터를 표준화된 객체 포맷(FOM)으로 변환할 수 있다.The adapter module 30 converts data transferred between the soft core simulator module 10 and other soft core simulator modules and between the soft core simulator module 10 and the hard core emulator module 20 into a standardized object format can do.

다음으로, 소프트 코어 시뮬레이터 모듈(10)은 다른 소프트 코어 시뮬레이터 모듈 또는 상기 하드 코어 에뮬레이터 모듈(20) 측에서 발생한 외부 이벤트에 의한 상기 입출력 신호의 변화를 소프트 코어 시뮬레이터 모듈(10)에 반영할 수 있다(S1150).Next, the soft core simulator module 10 can reflect the change of the input / output signal due to an external event generated by another soft core simulator module or the hard core emulator module 20 side to the soft core simulator module 10 (S1150).

이때, 소프트웨어 시뮬레이터 인터페이스 모듈은 다른 소프트 코어 시뮬레이터 모듈 또는 하드 코어 에뮬레이터 모듈(20) 측에서 발생한 외부 이벤트에 의한 입출력 신호의 변화를 소프트 코어 시뮬레이터 모듈(10)이 반영할 수 있도록, 어댑터 모듈(30)로부터 획득하여 소프트 코어 시뮬레이터 모듈(10)로 제공할 수 있다.At this time, the software simulator interface module may be provided in the adapter module 30 so that the soft core simulator module 10 can reflect a change in the input / output signal due to an external event generated by another soft core simulator module or the hard core emulator module 20. [ And provide it to the soft core simulator module 10.

따라서, 본 발명의 일 실시예에 따른 HLA/RTI 기반 혼합회로 시뮬레이션 방법은 HLA/RTI를 기반으로 소프트 코어 시뮬레이터 모듈과 하드 코어 에뮬레이터 모듈을 통합 시뮬레이션 하는 환경을 제공함으로써, SoC(System on Chip) 설계 및 검증에 대한 효율을 향상시킬 수 있다.
Accordingly, the HLA / RTI based mixed circuit simulation method according to an embodiment of the present invention provides an environment for simulating the soft core simulator module and the hard core emulator module based on the HLA / RTI, And the efficiency of verification can be improved.

본 발명의 일 실시 예에 따른 HLA/RTI 기반 혼합회로 시뮬레이션 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The HLA / RTI based mixed circuit simulation method according to an exemplary embodiment of the present invention may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions recorded on the medium may be those specially designed and constructed for the present invention or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.As described above, the present invention has been described with reference to particular embodiments, such as specific elements, and specific embodiments and drawings. However, it should be understood that the present invention is not limited to the above- And various modifications and changes may be made thereto by those skilled in the art to which the present invention pertains.

따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.Accordingly, the spirit of the present invention should not be construed as being limited to the embodiments described, and all of the equivalents or equivalents of the claims, as well as the following claims, belong to the scope of the present invention .

200: HLA/RTI 기반 혼합회로 시뮬레이션 시스템
10: 소프트 코어 시뮬레이터 모듈
20: 하드 코어 에뮬레이터 모듈
30: 어댑터 모듈
50: 미들웨어 모듈
200: HLA / RTI based mixed circuit simulation system
10: Soft core simulator module
20: Hard core emulator module
30: Adapter module
50: Middleware module

Claims (12)

전자 회로에 대한 시뮬레이션 모델을 이용하여 상기 전자 회로의 동작을 시뮬레이션 하는 소프트 코어 시뮬레이터 모듈과 시간 경과에 따라 오퍼레이션을 실제로 진행하는 하드 코어 에뮬레이터 모듈 각각이 통합 시뮬레이션 환경을 제공하는 미들웨어 모듈과 상호 연동 가능하도록, 이벤트 기반의 시뮬레이션을 진행하고, 상기 소프트 코어 시뮬레이터 모듈과 상기 하드 코어 에뮬레이터 모듈 각각의 입출력 신호의 값을 서로 인식할 수 있는 형태로 변환하여 제공하는 어댑터 모듈; 및
상기 소프트 코어 시뮬레이터 모듈의 시뮬레이션 결과로 인한 입출력 신호의 변화를 다른 소프트 코어 시뮬레이터 모듈 및 상기 하드 코어 에뮬레이터 모듈과 공유할 수 있도록 상기 어댑터 모듈로 제공하는 상기 소프트 코어 시뮬레이터 모듈 내에 포함된 소프트웨어 시뮬레이터 인터페이스 모듈;
을 포함하는 HLA/RTI 기반 혼합회로 시뮬레이션 시스템.
A soft core simulator module for simulating the operation of the electronic circuit by using a simulation model for the electronic circuit and a hard core emulator module for actually performing operation according to time can be interworked with a middleware module for providing an integrated simulation environment An adapter module for performing event-based simulation and converting the values of the input / output signals of the soft core simulator module and the hard core emulator module into mutually recognizable formats; And
A software simulator interface module included in the soft core simulator module to provide the adapter module with a change of an input / output signal due to a simulation result of the soft core simulator module to the other soft core simulator module and the hard core emulator module;
HLA / RTI based mixed-circuit simulation system.
제1항에 있어서,
상기 어댑터 모듈은
상기 소프트 코어 시뮬레이터 모듈과 다른 소프트 코어 시뮬레이터 모듈 간 및 상기 소프트 코어 시뮬레이터 모듈과 상기 하드 코어 에뮬레이터 모듈 간에 데이터 전송 시 상기 데이터를 표준화된 객체 포맷으로 변환하는 것
을 특징으로 하는 HLA/RTI 기반 혼합회로 시뮬레이션 시스템.
The method according to claim 1,
The adapter module
Converting the data into a standardized object format when transferring data between the soft core simulator module and another soft core simulator module and between the soft core simulator module and the hard core emulator module
HLA / RTI based mixed-circuit simulation system.
제2항에 있어서,
상기 소프트 코어 시뮬레이터 모듈은
상기 표준화된 객체 포맷을 수신하여 상기 표준화된 객체 포맷에 포함된 정보를 상속하여 반영하는 것
을 특징으로 하는 HLA/RTI 기반 혼합회로 시뮬레이션 시스템.
3. The method of claim 2,
The soft core simulator module
Receiving the standardized object format and inheriting and reflecting the information included in the standardized object format
HLA / RTI based mixed-circuit simulation system.
제1항에 있어서,
상기 어댑터 모듈은
상기 이벤트 기반의 시뮬레이션을 통하여 상기 하드 코어 에뮬레이터 모듈의 진행 시간을 상기 소프트 코어 시뮬레이터 모듈의 시뮬레이션 상의 시간과 동기화하는 것
을 특징으로 하는 HLA/RTI 기반 혼합회로 시뮬레이션 시스템.
The method according to claim 1,
The adapter module
And synchronizing the progress time of the hard core emulator module with the time on the simulation of the soft core simulator module through the event based simulation
HLA / RTI based mixed-circuit simulation system.
제1항에 있어서,
상기 소프트웨어 시뮬레이터 인터페이스 모듈은
상기 다른 소프트 코어 시뮬레이터 모듈 또는 상기 하드 코어 에뮬레이터 모듈 측에서 발생한 외부 이벤트에 의한 상기 입출력 신호의 변화를 상기 어댑터 모듈로부터 획득하여 상기 소프트 코어 시뮬레이터 모듈에 반영하도록 제공하는 것
을 특징으로 하는 HLA/RTI 기반 혼합회로 시뮬레이션 시스템.
The method according to claim 1,
The software simulator interface module
A change in the input / output signal due to an external event generated at the other soft core simulator module or the hard core emulator module side is acquired from the adapter module and is reflected to the soft core simulator module
HLA / RTI based mixed-circuit simulation system.
제1항에 있어서,
상기 어댑터 모듈은
상기 이벤트 기반의 시뮬레이션을 진행할 때, 상기 소프트 코어 시뮬레이터 모듈 또는 상기 하드 코어 에뮬레이터 모듈에 플러그-인(plug-in)인 되는 것
을 특징으로 하는 HLA/RTI 기반 혼합회로 시뮬레이션 시스템.
The method according to claim 1,
The adapter module
When the event-based simulation is performed, the soft core simulator module or the hard core emulator module is plugged in
HLA / RTI based mixed-circuit simulation system.
제1항에 있어서,
상기 어댑터 모듈은
상기 소프트웨어 시뮬레이터 인터페이스 모듈이 제공하는 API와 상기 미들웨어 모듈의 API를 기반으로 구현된 콜백 함수들로 구성되는 것
을 특징으로 하는 HLA/RTI 기반 혼합회로 시뮬레이션 시스템.
The method according to claim 1,
The adapter module
An API provided by the software simulator interface module and a callback function implemented based on the API of the middleware module
HLA / RTI based mixed-circuit simulation system.
전자 회로에 대한 시뮬레이션 모델을 이용하여 상기 전자 회로의 동작을 시뮬레이션 하는 소프트 코어 시뮬레이터 모듈과 시간 경과에 따라 오퍼레이션을 실제로 진행하는 하드 코어 에뮬레이터 모듈 각각이 통합 시뮬레이션 환경을 제공하는 미들웨어 모듈과 상호 연동 가능하도록, 어댑터 모듈의 관리 하에서 이벤트 기반의 시뮬레이션을 진행하는 단계;
상기 이벤트 기반의 시뮬레이션을 진행하는 도중에 상기 소프트 코어 시뮬레이터 모듈의 시뮬레이션 결과로 인한 입출력 신호의 변화를 다른 소프트 코어 시뮬레이터 모듈 및 상기 하드 코어 에뮬레이터 모듈과 공유할 수 있도록 소프트웨어 시뮬레이터 인터페이스 모듈이 상기 어댑터 모듈로 제공하는 단계; 및
상기 어댑터 모듈이, 상기 이벤트 기반의 시뮬레이션을 진행하는 도중에 상기 소프트 코어 시뮬레이터 모듈과 상기 하드 코어 에뮬레이터 모듈 각각의 입출력 신호의 값을 서로 인식할 수 있는 형태로 변환하여 제공하는 단계;
를 포함하는 HLA/RTI 기반 혼합회로 시뮬레이션 방법.
A soft core simulator module for simulating the operation of the electronic circuit by using a simulation model for the electronic circuit and a hard core emulator module for actually performing operation according to time can be interworked with a middleware module for providing an integrated simulation environment Performing an event-based simulation under the management of the adapter module;
The software simulator interface module is provided to the adapter module so that the change of the input / output signal due to the simulation result of the soft core simulator module can be shared with other soft core simulator module and the hard core emulator module during the event based simulation ; And
Converting the values of the input and output signals of the soft core simulator module and the hard core emulator module into recognizable formats while the adapter module is performing the event based simulation;
Based mixed-circuit simulation method.
제8항에 있어서,
상기 서로 인식할 수 있는 형태로 변환하여 제공하는 단계는
상기 소프트 코어 시뮬레이터 모듈과 다른 소프트 코어 시뮬레이터 모듈 간 및 상기 소프트 코어 시뮬레이터 모듈과 상기 하드 코어 에뮬레이터 모듈 간에 데이터 전송 시 상기 데이터를 표준화된 객체 포맷으로 변환하는 것
을 특징으로 하는 HLA/RTI 기반 혼합회로 시뮬레이션 방법.
9. The method of claim 8,
The step of transforming and providing the mutually recognizable form
Converting the data into a standardized object format when transferring data between the soft core simulator module and another soft core simulator module and between the soft core simulator module and the hard core emulator module
/ RTI >< RTI ID = 0.0 > HLA / RTI < / RTI >
제9항에 있어서,
상기 서로 인식할 수 있는 형태로 변환하여 제공하는 단계 이후에,
상기 소프트 코어 시뮬레이터 모듈 각각은 상기 표준화된 객체 포맷을 수신하여 상기 표준화된 객체 포맷에 포함된 정보를 상속하여 반영하는 단계;
를 더 포함하는 것을 특징으로 하는 HLA/RTI 기반 혼합회로 시뮬레이션 방법.
10. The method of claim 9,
After the step of converting into the mutually recognizable form and providing,
Each of the soft core simulator modules receiving the standardized object format and inheriting and reflecting information included in the standardized object format;
RTI ID = 0.0 > HLA / RTI < / RTI > based mixed-circuit simulation method.
제8항에 있어서,
상기 서로 인식할 수 있는 형태로 변환하여 제공하는 단계는
상기 어댑터 모듈이, 상기 이벤트 기반의 시뮬레이션을 통하여 상기 하드 코어 에뮬레이터 모듈의 진행 시간을 상기 소프트 코어 시뮬레이터 모듈의 시뮬레이션 상의 시간과 동기화하는 단계;
를 포함하는 HLA/RTI 기반 혼합회로 시뮬레이션 방법.
9. The method of claim 8,
The step of transforming and providing the mutually recognizable form
The adapter module synchronizing the progress time of the hard core emulator module with the time on the simulation of the soft core simulator module through the event based simulation;
Based mixed-circuit simulation method.
제8항에 있어서,
상기 서로 인식할 수 있는 형태로 변환하여 제공하는 단계 이후에,
상기 다른 소프트 코어 시뮬레이터 모듈 또는 상기 하드 코어 에뮬레이터 모듈 측에서 발생한 외부 이벤트에 의한 상기 입출력 신호의 변화를 상기 소프트 코어 시뮬레이터 모듈이 반영하는 단계;
를 더 포함하는 HLA/RTI 기반 혼합회로 시뮬레이션 방법.
9. The method of claim 8,
After the step of converting into the mutually recognizable form and providing,
Wherein the soft core simulator module reflects a change of the input / output signal due to an external event generated at the other soft core simulator module or the hard core emulator module side;
Lt; RTI ID = 0.0 > HLA / RTI < / RTI >
KR1020140183506A 2014-12-18 2014-12-18 System and method for mixing circuit simulation based on hla/rti KR101621841B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140183506A KR101621841B1 (en) 2014-12-18 2014-12-18 System and method for mixing circuit simulation based on hla/rti

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140183506A KR101621841B1 (en) 2014-12-18 2014-12-18 System and method for mixing circuit simulation based on hla/rti

Publications (1)

Publication Number Publication Date
KR101621841B1 true KR101621841B1 (en) 2016-05-17

Family

ID=56109730

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140183506A KR101621841B1 (en) 2014-12-18 2014-12-18 System and method for mixing circuit simulation based on hla/rti

Country Status (1)

Country Link
KR (1) KR101621841B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101724519B1 (en) * 2016-08-31 2017-04-27 대한민국(방위사업청장) Emulation apparatus and method for interaction test of war game simulation model
KR101734349B1 (en) * 2017-03-15 2017-06-09 대한민국(방위사업청장) Interaction test system of war game simulation engine employing dynamic memory map file management
KR20200069106A (en) * 2018-12-06 2020-06-16 국방과학연구소 Method and adaptor for interworking individual simulation model to distributed simulation system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000035898A (en) 1998-07-17 2000-02-02 Nec Corp System simulator and system simulating method
JP2006350549A (en) 2005-06-14 2006-12-28 Hitachi Ltd Integrated simulation system
JP2008535046A (en) 2005-03-16 2008-08-28 ゲートロケット・インコーポレーテッド FPGA emulation system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000035898A (en) 1998-07-17 2000-02-02 Nec Corp System simulator and system simulating method
JP2008535046A (en) 2005-03-16 2008-08-28 ゲートロケット・インコーポレーテッド FPGA emulation system
JP2006350549A (en) 2005-06-14 2006-12-28 Hitachi Ltd Integrated simulation system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
C. SUNG 외 1명. 'Framework for simulation of hybrid systems:Interoperation of discrete event and continuous simulators using HLA/RTI'. Principles of Advanced and Distributed Simulation (PADS), 2011.

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101724519B1 (en) * 2016-08-31 2017-04-27 대한민국(방위사업청장) Emulation apparatus and method for interaction test of war game simulation model
KR101734349B1 (en) * 2017-03-15 2017-06-09 대한민국(방위사업청장) Interaction test system of war game simulation engine employing dynamic memory map file management
KR20200069106A (en) * 2018-12-06 2020-06-16 국방과학연구소 Method and adaptor for interworking individual simulation model to distributed simulation system
KR102128042B1 (en) * 2018-12-06 2020-06-29 국방과학연구소 Method and adaptor for interworking individual simulation model to distributed simulation system

Similar Documents

Publication Publication Date Title
US8644305B2 (en) Method and system for modeling a bus for a system design incorporating one or more programmable processors
US7069204B1 (en) Method and system for performance level modeling and simulation of electronic systems having both hardware and software elements
CN102508753B (en) IP (Internet protocol) core verification system
CN109711071B (en) Method and system for accelerating software and hardware collaborative simulation of server SoC (system on a chip)
US20110307847A1 (en) Hybrid system combining TLM simulators and HW accelerators
CN104750603A (en) Multi-core DSP (Digital Signal Processor) software emulator and physical layer software testing method thereof
CN102480467A (en) SOC (System on a Chip) software and hardware collaborative simulation verification method based on network communication protocol
KR101621841B1 (en) System and method for mixing circuit simulation based on hla/rti
CN103514074A (en) MVB network card development method and platform
JP2006343942A (en) Bus system design method and device
CN116719729A (en) Universal verification platform, universal verification method, medium and electronic equipment
KR101683636B1 (en) Mixing circuit simulation system and method
KR101629725B1 (en) System and method for mixing circuit simulation based on framework
Yoo et al. Hardware/software cosimulation from interface perspective
US9576090B2 (en) Co-design of a testbench and driver of a device
WO2014064788A1 (en) Simulation program, simulation device, simulation method, bus model and bus circuit
Aynsley Easier UVM for functional verification by mainstream users
Dziri et al. Unified component integration flow for multi-processor SoC design and validation
US20190012418A1 (en) Simulation program, method, and device
JPWO2019021898A1 (en) Development support equipment
US11630935B1 (en) Data traffic injection for simulation of circuit designs
Singh et al. A pragmatic approach leveraging portable stimulus from subsystem to SoC level and SoC emulation
US20230289500A1 (en) Method and system for building hardware images from heterogeneous designs for eletronic systems
Zabołotny Development of embedded PC and FPGA based systems with virtual hardware
Ramakrishna et al. Verification of advanced high speed bus in UVM methodology

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190429

Year of fee payment: 4

R401 Registration of restoration