KR20160083752A - Mixing circuit simulation system and method - Google Patents

Mixing circuit simulation system and method Download PDF

Info

Publication number
KR20160083752A
KR20160083752A KR1020150000269A KR20150000269A KR20160083752A KR 20160083752 A KR20160083752 A KR 20160083752A KR 1020150000269 A KR1020150000269 A KR 1020150000269A KR 20150000269 A KR20150000269 A KR 20150000269A KR 20160083752 A KR20160083752 A KR 20160083752A
Authority
KR
South Korea
Prior art keywords
module
clock
simulation
simulator
hard core
Prior art date
Application number
KR1020150000269A
Other languages
Korean (ko)
Other versions
KR101683636B1 (en
Inventor
김탁곤
석문기
박대진
조근래
Original Assignee
한국과학기술원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국과학기술원 filed Critical 한국과학기술원
Priority to KR1020150000269A priority Critical patent/KR101683636B1/en
Publication of KR20160083752A publication Critical patent/KR20160083752A/en
Application granted granted Critical
Publication of KR101683636B1 publication Critical patent/KR101683636B1/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
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • G06F17/5009
    • G06F17/5045
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design

Landscapes

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

Abstract

The present invention relates to a mixing circuit simulation system and a method thereof, and more specifically, relates to a system and a method to provide an integrated simulation which is able to reuse a conventional circuit model (IP) in the simulation process of a newly designed circuit and to link the conventional circuit model and newly designed circuit model. To achieve this purpose, according to an embodiment of the present invention, the mixing circuit simulation system comprises: a soft core simulator module; a hard core emulator module; and a virtual clock generator module.

Description

혼합회로 시뮬레이션 시스템 및 방법 {MIXING CIRCUIT SIMULATION SYSTEM AND METHOD}[0001] MIXING CIRCUIT SIMULATION SYSTEM AND METHOD [0002]

본 발명은 혼합회로 시뮬레이션 시스템 및 방법에 관한 것으로, 보다 상세하게는 소프트웨어 기반의 시뮬레이터와 실제 하드웨어를 통합 시뮬레이션 하기 위한 시뮬레이션 환경을 제공하는 기술에 관한 것이다.The present invention relates to a mixed circuit simulation system and method, and more particularly, to a technique for providing a simulation environment for simulating a software-based simulator and actual hardware.

시스템 온 칩(System on Chip)은 다수의 기능이 하나의 칩 위에 구현된 반도체로서, 마이크로 프로세서(micro-processor), 메모리 반도체, 디지털 신호 처리 프로세서(DSP), 마이크로 컨트롤러(MCU, micro controller unit) 등 개별 반도체를 하나의 칩에 통합한 것을 의미하며, 과거에는 별개의 반도체 칩으로 구현되었던 것을 하나의 칩 위에 집적(integration)함으로써 소형화와 고성능을 달성할 수 있다.System on Chip is a semiconductor on which a number of functions are implemented on a single chip. The system includes a microprocessor, a memory semiconductor, a digital signal processor (DSP), a micro controller unit (MCU) And integrating individual semiconductors on a single chip. In the past, integration of what was implemented as 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) refers to design assets or intellectual property applied in semiconductor design and manufacturing processes, and various kinds 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 simulation of interworking between IPs designed in various languages and existing semiconductor chip level systems. Despite the progress of research on IP, 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, the prior art has a limitation that only simulation for a software-based simulator described in HDL is targeted. 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 the prior art, the hardware accelerator is not a part of a simulation target but is used for quickly performing a simulation operation 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 in making it possible. 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)

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

본 발명은 종래에 현재 설계할 회로가 이미 실제 물리적으로 동작하는 칩 내의 블록과의 연계 동작을 하는지에 대한 정확한 검증이 힘들어, 칩이 생산된 후 응용 시스템에 실 장착하여 동작 검증을 수행했을 때 발생하는 갖가지 버그들을 다시 한번 더 수정해야 하는 불편함을 해소하려는 것을 목적으로 한다.It is difficult to precisely verify whether a circuit to be designed in the past operates in association with a block in a chip which is actually physically operated, and when the chip is actually mounted on the application system after the chip is manufactured, It is aimed at solving the inconvenience of revising all kinds of bugs.

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

본 발명은 소프트웨어 기반의 시뮬레이터의 동작 속도에 비해 상대적으로 아주 빠른 실제 하드웨어의 동작 속도를 소프트웨어 기반의 시뮬레이터의 동작 속도에 맞추어 느리게 제어함으로써, 소프트웨어 기반의 시뮬레이터와 실제 하드웨어를 연동한 통합 시뮬레이션을 제공하려는 것을 목적으로 한다.The present invention provides an integrated simulation in which a software-based simulator and an actual hardware are interlocked by controlling the operation speed of an actual hardware relatively fast compared with the operation speed of a software-based simulator in accordance with the operation speed of the software-based simulator .

이러한 목적을 달성하기 위하여 본 발명의 일 실시예에 따른 혼합회로 시뮬레이션 시스템은 소프트 코어 시뮬레이터 모듈, 하드 코어 에뮬레이터 모듈 및 가상 클럭 생성기 모듈을 포함한다.In order to achieve the above object, a mixed circuit simulation system according to an embodiment of the present invention includes a soft core simulator module, a hard core emulator module, and a virtual clock generator module.

상기 소프트 코어 시뮬레이터 모듈은 전자 회로에 대한 시뮬레이션 모델을 이용하여 상기 전자 회로의 동작을 시뮬레이션하고, 상기 하드 코어 에뮬레이터 모듈은 시간 경과에 따라 오퍼레이션을 실제로 진행하며, 상기 가상 클럭 생성기 모듈은 상기 소프트 코어 시뮬레이터 모듈과 상기 하드 코어 에뮬레이터 모듈이 상호 연동되는 이벤트 기반의 시뮬레이션을 실행하기 위하여, 상기 하드 코어 에뮬레이터 모듈의 진행 시간이 상기 소프트 코어 시뮬레이터 모듈의 시뮬레이션 상의 시간에 맞추어 제어되도록, 상기 하드 코어 에뮬레이터 모듈의 클럭 속도보다 빠른 가상 클럭을 발생시킨다.Wherein the soft core simulator module simulates an operation of the electronic circuit using a simulation model for an electronic circuit, the hard core emulator module actually performs an operation over time, and the virtual clock generator module comprises: Core simulator module and the hard core emulator module are interlocked with each other so that the progress time of the hard core emulator module is controlled according to the simulation time of the soft core simulator module, Speed virtual clock.

또한, 본 발명의 일 실시예에 따른 혼합회로 시뮬레이션 시스템은 상기 하드 코어 에뮬레이터 모듈의 클럭의 상승 엣지 또는 하강 엣지 마다 발생하는 시뮬레이션 진행 요청 이벤트를 감지하고, 상기 이벤트가 감지될 때 상기 하드 코어 에뮬레이터 모듈의 시뮬레이션 진행을 정지시키는 미들웨어 모듈과, 상기 가상 클럭 생성기 모듈에서 발생된 가상 클럭 상에서, 감지된 이벤트에 대응하는 시뮬레이션을 진행하고, 상기 진행된 시뮬레이션의 결과로 인한 입출력 신호 값을 상기 소프트 코어 시뮬레이터 모듈로 제공하는 하드웨어 시뮬레이터 인터페이스 모듈을 더 포함할 수 있다.In addition, the mixed circuit simulation system according to an embodiment of the present invention detects a simulation process request event generated for each rising edge or falling edge of a clock of the hard core emulator module, and when the event is detected, A middleware module for stopping the simulation progress of the virtual clock generator module, and a simulation corresponding to the sensed event on the virtual clock generated by the virtual clock generator module, and the input / output signal value resulting from the advanced simulation to the soft core simulator module And a hardware simulator interface module that provides the hardware simulator interface module.

이때, 상기 하드웨어 시뮬레이터 인터페이스 모듈은 상기 진행된 시뮬레이션의 결과로 인한 입출력 신호 값을, 상기 소프트 코어 시뮬레이터 모듈과 상기 하드 코어 에뮬레이터 모듈 각각의 입출력 신호의 값을 서로 인식할 수 있는 형태로 변환하여 제공하는 어댑터 모듈을 통해, 상기 소프트 코어 시뮬레이터 모듈로 제공할 수 있으며, 상기 가상 클럭 생성기 모듈은 상기 발생된 가상 클럭을 기반으로 상기 시뮬레이션 진행 요청 이벤트의 발생 주기를 측정하고, 상기 측정된 발생 주기의 시간상의 거리를 상기 소프트 코어 시뮬레이터 모듈의 시간상의 거리와 대응하도록 확장시킬 수 있고, 상기 발생시키는 가상 클럭의 기준 단위 클럭을, 복수 개의 소프트 코어 시뮬레이터 모듈과 하드 코어 에뮬레이터 모듈 중에서 가장 짧은 단위 클럭을 기준으로 하여 설정할 수 있다.The hardware simulator interface module converts an input / output signal value resulting from the advanced simulation into an input / output signal value of each of the soft core simulator module and the hard core emulator module, And the virtual clock generator module measures a generation period of the simulation progress request event based on the generated virtual clock, and determines a distance in time of the measured generation period Core clocks of the soft core simulator module and the hard core emulator module based on the shortest unit clock of the plurality of soft core simulator modules and the hard core emulator module, W can be set.

또한, 상기 가상 클럭 생성기 모듈은 상기 가상 클럭의 기준 단위 클럭을 복수 개의 소프트 코어 시뮬레이터 모듈과 하드 코어 에뮬레이터 모듈 중에서 가장 짧은 단위 클럭을 기준으로 설정하여 출력하는 시스템 클럭 모니터 모듈, 및 상기 하드 코어 에뮬레이터 모듈의 클럭의 상승 엣지 또는 하강 엣지에, 상기 가상 클럭의 발생 시점을 동기화하는 클럭 확장기 모듈을 포함할 수 있다.The virtual clock generator module may include a system clock monitor module configured to output a reference unit clock of the virtual clock based on the shortest unit clock among a plurality of soft core simulator modules and hard core emulator modules, And a clock expander module for synchronizing the generation time of the virtual clock with a rising edge or a falling edge of the clock of the clock generator.

한편, 본 발명의 일 실시예에 따른 혼합회로 시뮬레이션 방법은 전자 회로에 대한 시뮬레이션 모델을 이용하여 상기 전자 회로의 동작을 시뮬레이션 하는 소프트 코어 시뮬레이터 모듈을 동작시키는 단계, 시간 경과에 따라 오퍼레이션을 실제로 진행하는 하드 코어 에뮬레이터 모듈을 동작시키는 단계, 및 상기 소프트 코어 시뮬레이터 모듈과 상기 하드 코어 에뮬레이터 모듈이 상호 연동되는 이벤트 기반의 시뮬레이션을 실행하기 위하여, 상기 하드 코어 에뮬레이터 모듈의 진행 시간이 상기 소프트 코어 시뮬레이터 모듈의 시뮬레이션 상의 시간에 맞추어 제어되도록, 상기 하드 코어 에뮬레이터 모듈의 클럭 속도보다 빠른 가상 클럭을 발생시키는 단계를 포함한다.Meanwhile, a mixed circuit simulation method according to an embodiment of the present invention includes: operating a soft core simulator module that simulates the operation of the electronic circuit using a simulation model for an electronic circuit; The method of claim 1, further comprising the steps of: operating a hard core emulator module; and executing an event-based simulation in which the soft core simulator module and the hard core emulator module interact with each other, Generating a virtual clock faster than a clock speed of the hard core emulator module so as to be controlled in accordance with the time of the hard core emulator module.

또한, 본 발명의 일 실시예에 따른 혼합회로 시뮬레이션 방법은 상기 하드 코어 에뮬레이터 모듈의 클럭의 상승 엣지 또는 하강 엣지 마다 발생하는 시뮬레이션 진행 요청 이벤트를 감지하고, 상기 이벤트가 감지될 때 상기 하드 코어 에뮬레이터 모듈의 시뮬레이션 진행을 정지시키는 단계와, 상기 가상 클럭을 발생시키는 단계에서 발생된 가상 클럭 상에서, 감지된 이벤트에 대응하는 시뮬레이션을 진행하고, 상기 진행된 시뮬레이션의 결과로 인한 입출력 신호 값을 상기 소프트 코어 시뮬레이터 모듈로 제공하는 단계를 더 포함할 수 있다.In addition, the mixed circuit simulation method according to an embodiment of the present invention detects a simulation process request event occurring at each rising edge or falling edge of a clock of the hard core emulator module, and when the event is detected, And outputting the input / output signal value as a result of the advanced simulation to the soft core simulator module. The method of claim 1, further comprising: To < / RTI >

이때, 상기 소프트 코어 시뮬레이터 모듈로 제공하는 단계는 상기 진행된 시뮬레이션의 결과로 인한 입출력 신호 값을, 상기 소프트 코어 시뮬레이터 모듈과 상기 하드 코어 에뮬레이터 모듈 각각의 입출력 신호의 값을 서로 인식할 수 있는 형태로 변환하여 제공하는 어댑터 모듈을 통해, 상기 소프트 코어 시뮬레이터 모듈로 제공할 수 있으며, 상기 가상 클럭을 발생시키는 단계는 상기 발생된 가상 클럭을 기반으로 상기 시뮬레이션 진행 요청 이벤트의 발생 주기를 측정하고, 상기 측정된 발생 주기의 시간상의 거리를 상기 소프트 코어 시뮬레이터 모듈의 시간상의 거리와 대응하도록 확장시킬 수 있고, 상기 발생시키는 가상 클럭의 기준 단위 클럭을, 복수 개의 소프트 코어 시뮬레이터 모듈과 하드 코어 에뮬레이터 모듈 중에서 가장 짧은 단위 클럭을 기준으로 하여 설정할 수 있다.At this time, the step of providing to the soft core simulator module converts an input / output signal value resulting from the advanced simulation into a form capable of recognizing mutually input / output signal values of the soft core simulator module and the hard core emulator module Wherein the step of generating the virtual clock comprises the steps of measuring a generation cycle of the simulation progress request event based on the generated virtual clock, Wherein the soft core simulator module includes a plurality of soft core simulator modules and a hard core emulator module, the soft core simulator module being capable of extending the time interval of the generation cycle to correspond to a time distance of the soft core simulator module, Big To be set on the basis of.

또한, 상기 가상 클럭을 발생시키는 단계는 상기 가상 클럭의 기준 단위 클럭을 복수 개의 소프트 코어 시뮬레이터 모듈과 하드 코어 에뮬레이터 모듈 중에서 가장 짧은 단위 클럭을 기준으로 설정하여 출력하는 단계, 및 상기 하드 코어 에뮬레이터 모듈의 클럭의 상승 엣지 또는 하강 엣지에, 상기 가상 클럭의 발생 시점을 동기화하는 단계를 포함할 수 있다.The generating of the virtual clock may include outputting a reference unit clock of the virtual clock by setting a unit clock of the shortest among a plurality of soft core simulator modules and a hard core emulator module as a reference, And synchronizing the generation time of the virtual clock with a rising edge or a falling edge of the clock.

본 발명은 혼합회로 시뮬레이션 시스템 및 방법에 관한 것으로, 보다 상세하게는 소프트웨어 기반의 시뮬레이터와 실제 하드웨어를 통합 시뮬레이션 하기 위하여, 소프트웨어 기반의 시뮬레이터의 동작 속도에 비해 상대적으로 아주 빠른 실제 하드웨어의 동작 속도를 소프트웨어 기반의 시뮬레이터의 동작 속도에 맞추어 느리게 제어할 수 있는 효과가 있다.The present invention relates to a mixed circuit simulation system and method, and more particularly, to an integrated simulation system for a software-based simulator and an actual hardware, Based simulator can be controlled in a slow manner.

본 발명은 종래에 현재 설계할 회로가 이미 실제 물리적으로 동작하는 칩 혹은 시스템과의 연계 동작을 하는지에 대한 정확한 검증이 힘들어, 칩이 생산된 후 응용 시스템에 실 장착하여 동작 검증을 수행했을 때 발생하는 갖가지 버그들을 다시 한번 더 수정해야 하는 불편함을 해소할 수 있는 효과가 있다.It is difficult to precisely verify whether a circuit to be designed in the past operates in association with a chip or a system which is actually operating physically. When the chip is manufactured, It is possible to eliminate the inconvenience of having to revise all kinds of bugs again.

본 발명은 모델 수준으로 개발한 설계될 IP와 기존에 존재하는 반도체 칩 레벨 시스템과의 연동 시뮬레이션이 가능하도록, 소프트웨어 기반의 시뮬레이터와 실제 하드웨어를 통합 시뮬레이션 할 수 있는 환경을 제공할 수 있는 효과가 있다.The present invention has an effect that it is possible to provide an environment capable of performing an integrated simulation of a software-based simulator and actual hardware so as to enable interworking simulation between an IP to be designed developed at a model level and an existing semiconductor chip level system .

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

본 발명은 SoC(System on Chip) 설계 및 검증에 대한 효율을 향상시킬 수 있다.The present invention can improve efficiency in SoC (System on Chip) design and verification.

도 1은 본 발명의 배경이 되는 기술의 구조를 개략적으로 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 혼합회로 시뮬레이션 시스템의 일부 구성을 개략적으로 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른 혼합회로 시뮬레이션 시스템의 전체 구성을 개략적으로 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따른 가상 클럭 생성기 모듈의 회로 구성을 나타낸 도면이다.
도 5는 본 발명의 일 실시예에 따른 가상 클럭 생성기 모듈의 시간 확장 개념을 도식화한 도면이다.
도 6은 본 발명의 일 실시예에 따른 혼합회로 시뮬레이션 방법에 대한 동작 흐름도이다.
Fig. 1 schematically shows a structure of a technique as a background of the present invention.
2 schematically shows a part of the configuration of a mixed circuit simulation system according to an embodiment of the present invention.
3 is a diagram schematically showing the overall configuration of a mixed circuit simulation system according to an embodiment of the present invention.
4 is a circuit diagram of a virtual clock generator module according to an embodiment of the present invention.
FIG. 5 is a diagram illustrating a time expansion concept of a virtual clock generator module according to an embodiment of the present invention. Referring to FIG.
6 is a flowchart illustrating an operation of a 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.

본 발명은 혼합회로 시뮬레이션 시스템 및 방법에 관한 것으로, 보다 상세하게는 소프트웨어 기반의 시뮬레이터와 실제 하드웨어를 통합 시뮬레이션 하기 위하여, 소프트웨어 기반의 시뮬레이터의 동작 속도에 비해 상대적으로 아주 빠른 실제 하드웨어의 동작 속도를 소프트웨어 기반의 시뮬레이터의 동작 속도에 맞추어 느리게 제어하는 기술에 관한 것이다.The present invention relates to a mixed circuit simulation system and method, and more particularly, to an integrated simulation system for a software-based simulator and an actual hardware, Based simulator in accordance with the operating speed of the simulator.

본 발명의 혼합회로 시뮬레이션 시스템 및 방법은 새로이 설계된 회로의 시뮬레이션 과정에서 기존에 존재하는 회로 모델(IP)을 재사용함으로써, 기존의 회로 모델과 새로이 설계된 회로 모델을 연동한 통합 시뮬레이션 환경을 제공할 수 있는 효과가 있다.The mixed circuit simulation system and method of the present invention can provide an integrated simulation environment 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 It is effective.

도 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는 형태에 따라 hard core(IP 설계의 물리적 형태로서 시뮬레이션 수행 시 내부 동작은 알 수 없고, 수정이 쉽지 않지만 기능이 검증된 모델)와 soft core(Verilog, VHDL, Verilog-A, C/C++, Matlab/Simulink와 같은 언어 모델로 주어지며, 목표 회로와 모의 수준에 맞게 선택되어 그대로 혹은 수정 후 재사용 가능)로 구분될 수 있다.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. (Verilog, VHDL, Verilog-A, C / C ++, Matlab / Simulink, etc.) and hard core (physical model of IP design, , Which can be selected as desired according to the target circuit and simulation level and can be reused as it is or after modification).

그리고, 혼합 신호 회로 설계 시 새로 설계한 회로(Design Block)가 기 개발된 IP core(Reusable Block)와 결합되어 잘 동작하는지 확인하기 위하여 시뮬레이션을 수행하게 되며, 이때, IP core의 특성에 따라 각 특성에 맞는 시뮬레이터가 동작함으로써 시뮬레이션이 수행된다. 예를 들어 Verilog Model은 Verilog 시뮬레이터를 이용하고, Netlist는 아날로그 회로 시뮬레이터인 SPICE를 이용하는 등 soft core의 경우 각 특성에 맞는 전용 시뮬레이터가 동작함으로써 시뮬레이션이 수행되고, hard core의 경우 펑션 제너레이터(function generator)의 기능을 수행하는 FPGA 등을 이용함으로써 시뮬레이션이 수행된다. 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. For example, Verilog Model uses Verilog simulator and Netlist uses SPICE, which is analog circuit simulator. In soft core, simulation is performed by operating a dedicated simulator for each characteristic. In case of hard core, function generator is used. The simulation is performed by using an FPGA or the like which performs the function of the function.

한편, 상이한 조직에서 상이한 목적으로 개발된 개별 시뮬레이션(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 distributed middleware. It is software of HLA (High Level Architecture) standard, which is a proposed standard technology structure for promoting interoperability and reusability of simulation objects in distributed simulation 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 aims to provide a technology for enhancing the efficiency of system-on-chip (SoC) design and verification by providing an environment in which software-based simulators and actual hardware can be integrated and simulated based on HLA / RTI The purpose.

도 2는 본 발명의 일 실시예에 따른 혼합회로 시뮬레이션 시스템의 일부 구성을 개략적으로 나타낸 도면이다.2 schematically shows a part of the configuration of a mixed circuit simulation system according to an embodiment of the present invention.

도 2를 참조하여, 본 발명의 일 실시예에 따른 혼합회로 시뮬레이션 시스템(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 mixed circuit simulation system 200 according to an exemplary embodiment of the present invention will be briefly described. Generally, a soft core is a program for simulating a virtual analog / A corresponding dedicated simulator 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. Accordingly, in the present invention, a simulator module for simulating a soft core is referred to as a 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와 어댑터 모듈(30) 간에 하드 코어 에뮬레이터 모듈(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 is located between the hard core and the adapter module 30, so that the linkage simulation with the soft core can be supported.

이 때, Real Signal은 반도체 칩의 형태로 이미 구현되어 있는 메모리나 아날로그 회로 등의 hard core(기존에 존재하는 회로 모델(IP))를 구동시키는 신호를 말하며, 이러한 칩 형태의 기존 회로 모델을 구동시켜주는 역할을 하는 것이 FPGA 등 일 수 있다. 즉, FPGA는 이미 설계된 하드웨어를 반도체로 생산하기 직전 최종적으로 하드웨어의 동작 및 성능을 검증하기 위해 제작하는 중간 개발물 형태의 집적 회로(IC)로서, 본 발명에서 FPGA는 Real Signal을 수신하여 칩 형태의 기존 회로 모델(IP)을 구동시키고, 상기 칩 형태의 기존 회로 모델을 구동시킴으로써 발생한 신호를 외부(어댑터 모듈)로 전달해 주는 역할을 수행한다. 따라서, 본 발명에서는 hard core를 시뮬레이션 하는 모듈 또는 Real Signal를 생성하는 실제 칩과 FPGA로 이루어진 시뮬레이터 모듈을 하드 코어 에뮬레이터 모듈(20)이라 한다.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, And transmits signals generated by driving the existing circuit model of the chip type to the outside (adapter module). Accordingly, in the present invention, the hard core emulator module 20 is a module for simulating a hard core or a simulator module including an actual chip for generating a real signal and an FPGA.

HLA/RTI(High Level Architecture/Run Time Infrastructure)(50)는 미들웨어를 의미하는 것으로서, 소프트 코어 시뮬레이터 모듈(10)과 하드 코어 에뮬레이터 모듈(20) 간에 통합 시뮬레이션이 가능하도록 통합 시뮬레이션 환경을 제공한다. 본 발명의 혼합회로 시뮬레이션 시스템 및 방법은 HLA/RTI(50)를 기반으로 하고, 어댑터 모듈(30) 및 가상 클럭 생성기 모듈 등을 이용함으로써, 이기종 소프트웨어 기반 시뮬레이터 간의 통합 시뮬레이션뿐만 아니라 소프트웨어 기반 시뮬레이터와 실제 하드웨어를 통합 시뮬레이션 할 수 있는 기술을 제공한다.The HLA / RTI (High Level Architecture / Run Time Infrastructure) 50 represents a middleware. The HLA / RTI provides an integrated simulation environment so that an integrated simulation can be performed between the soft core simulator module 10 and the hard core emulator module 20. The mixed circuit simulation system and method of the present invention is based on the HLA / RTI 50 and utilizes the adapter module 30 and the virtual clock generator module, Provides a technology that can simulate hardware integrally.

이하에서는 소프트웨어 기반의 시뮬레이터의 동작 속도에 비해 상대적으로 아주 빠른 실제 하드웨어의 동작 속도를 소프트웨어 기반의 시뮬레이터의 동작 속도에 맞추어 느리게 제어하는 본 발명의 기술에 대해 보다 자세히 설명하기로 한다.Hereinafter, the technique of controlling the actual hardware operation speed, which is relatively fast compared to the operation speed of the software-based simulator, to slow the operation speed of the software-based simulator according to the operation speed will be described in more detail.

도 3은 본 발명의 일 실시예에 따른 혼합회로 시뮬레이션 시스템의 전체 구성을 개략적으로 나타낸 도면이다.3 is a diagram schematically showing the overall configuration of a mixed circuit simulation system according to an embodiment of the present invention.

도 3을 참조하면, 본 발명의 일 실시예에 따른 혼합회로 시뮬레이션 시스템(200)은 크게 소프트 코어 시뮬레이터 모듈(10), 하드 코어 에뮬레이터 모듈(20), 어댑터 모듈(30), 미들웨어 모듈(50)을 포함할 수 있다.3, a 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, . ≪ / RTI >

그리고 하드 코어 에뮬레이터 모듈(20)은 하드웨어적으로 클럭 제어 블록(Clock Control Block)(21)과 프로빙 및 트리거링 블록(Probing and Triggering Block)(22)을 포함할 수 있으며, 소프트웨어적으로 소프트웨어 에뮬레이터(Software Emulator)(23)를 포함할 수 있다.The hard core emulator module 20 may include a clock control block 21 and a probing and triggering block 22 in hardware and may be a software emulator Emulator 23 may be included.

이때, 소프트웨어 에뮬레이터(23)는 하드웨어와 소프트웨어를 연결해주는 프락시(Proxy)로서, 인터페이스 모듈을 의미하는 것일 수 있다. 즉, 하드 코어 에뮬레이터 모듈(20) 내에는 시뮬레이션 인터페이스 모듈이 포함될 수 있으며, 상기 시뮬레이션 인터페이스 모듈은 하드 코어 에뮬레이터 모듈(20) 뿐만 아니라 소프트 코어 시뮬레이터 모듈(10) 내에도 포함될 수 있다. 이하에서 하드 코어 에뮬레이터 모듈(20) 내에 포함된 인터페이스 모듈은 하드웨어 시뮬레이터 인터페이스 모듈이라 할 수 있고, 소프트 코어 시뮬레이터 모듈(20) 내에 포함된 인터페이스 모듈은 소프트 코어 시뮬레이터 인터페이스 모듈이라 할 수 있다. 인터페이스 모듈은 사용자가 외부에서 시뮬레이터나 soft core 모델의 데이터에 접근하거나 혹은 데이터의 수정이 가능하도록 하는 프로그램을 구현하기 위한 인터페이스를 의미한다.At this time, the software emulator 23 is a proxy for connecting hardware and software, and may be an interface module. That is, the hard-core emulator module 20 may include a simulation interface module, which may be included in the soft-core simulator module 10 as well as the hard-core emulator module 20. Hereinafter, the interface module included in the hard core emulator module 20 may be referred to as a hardware simulator interface module, and the interface module included in the soft core simulator module 20 may be referred to as a soft core simulator interface module. An 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 the data.

또한, 하드 코어 에뮬레이터 모듈(20)의 클럭 제어 블록(21) 내에는 가상 클럭 생성기 모듈이 더 포함될 수 있으며, 가상 클럭 생성기 모듈은 시스템 클럭 모니터 모듈(24)과 클럭 확장기 모듈(25)을 포함할 수 있다. 이에 대한 설명은 이후에 더 자세히 하기로 한다A virtual clock generator module may further be included in the clock control block 21 of the hard core emulator module 20 and the virtual clock generator module may include a system clock monitor module 24 and a clock expander module 25 . We will discuss this in more 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 설계의 물리적 형태로서 시뮬레이션 수행 시 내부 동작은 알 수 없고, 수정이 쉽지 않지만 기능이 검증된 모델일 수 있다.The hard core emulator module 20 is a hard core emulator module that actually performs operation according to a lapse of time. The hard core emulator module 20 is a module for simulating a hard core of an IP core or a simulator module including an actual chip and an FPGA do. 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.

또한, 하드 코어 에뮬레이터 모듈(20)은 호스트 컴퓨터에서 하드웨어의 시그널을 받거나 주며, 하드웨어의 클럭(clock)을 제어하는 프로그램일 수 있으며, 또한, 하드웨어와 소프트웨어를 연결해 주는, 즉 Proxy(bridge) 역할을 해주는 도구일 수 있다.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.

즉, 하드 코어 에뮬레이터 모듈(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.

하드 코어 에뮬레이터 모듈(20)은 클럭 제어 블록(21), 프로빙 및 트리거링 블록(22), 소프트웨어 에뮬레이터(23)를 포함할 수 있으며, 클럭 제어 블록(21)은 하드웨어의 클럭(Clock)를 제어함으로써, 하드웨어의 시간 진행을 관리하는 역할을 하고, 상기 프로빙 및 트리거링 블록(22)은 모의 코어와 다른 외부의 소프트 코어가 연결 되었을 때, 외부로부터 들어오는 데이터를 실제 신호로 바꿔주거나 실제 신호를 외부로 전달해 주는 역할을 한다.The hard core emulator module 20 may include a clock control block 21, a probing and triggering block 22 and a software emulator 23. The clock control block 21 controls the clock of the hardware And the probing and triggering block 22 serves to manage the time progress of the hardware. When the simulated core and another external soft core are connected, the probe and triggering block 22 converts the external incoming data into the actual signal or transmits the actual signal to the outside The giver plays a role.

예를 들어, 소프트 코어 시뮬레이터 모듈(10)의 시뮬레이션 결과로 인한 입출력 신호의 변화가 어댑터 모듈(30)을 통해 하드 코어 에뮬레이터 모듈(20)로 전달된 경우, 프로빙 및 트리거링 블록(22)은 어댑터 모듈(30)로부터 수신한 소프트 코어 시뮬레이터 모듈(10)의 입출력 신호 값(즉, 외부로부터 들어오는 데이터)을 실제 신호로 바꿔 주는 역할을 한다. 또한 프로빙 및 트리거링 블록(22)은 반대로 하드 코어 에뮬레이터 모듈(20)에 의한 에뮬레이션의 입출력 신호의 변화 값을 외부로 전달하는 역할을 한다. 즉, 프로빙 및 트리거링 블록(22)은 하드 코어 에뮬레이터 모듈(20)에 의한 실제 신호를 소프트 코어 시뮬레이터 모듈(10)로 전달하는 역할을 한다.For example, 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 22 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 22 transmits the change value of the input / output signal of the emulation by the hard core emulator module 20 to the outside. That is, the probing and triggering block 22 serves to transmit the actual signal by the hard core emulator module 20 to the soft core simulator module 10.

하드 코어 에뮬레이터 모듈(20)의 클럭 제어 블록(21) 내에는 가상 클럭 생성기 모듈이 더 포함될 수 있으며, 가상 클럭 생성기 모듈은 상기 소프트 코어 시뮬레이터 모듈(10)과 상기 하드 코어 에뮬레이터 모듈(20)이 상호 연동되는 이벤트 기반의 시뮬레이션을 실행하기 위하여, 상기 하드 코어 에뮬레이터 모듈(20)의 진행 시간이 상기 소프트 코어 시뮬레이터 모듈(10)의 시뮬레이션 상의 시간에 맞추어 제어되도록, 상기 하드 코어 에뮬레이터 모듈(20)의 클럭 속도보다 빠른 가상 클럭을 발생시킨다.A virtual clock generator module may be further included in the clock control block 21 of the hard core emulator module 20 so that the soft core simulator module 10 and the hard core emulator module 20 can communicate with each other The hard core emulator module 20 is controlled so that the progress time of the hard core emulator module 20 is controlled in accordance with the time on the simulation of the soft core simulator module 10 in order to execute an event- Speed virtual clock.

그리고, 가상 클럭 생성기 모듈은 하드 코어 에뮬레이터 모듈(20)의 클럭 속도보다 빠른 가상 클럭을 발생시킬 때, 상기 발생시키는 가상 클럭의 기준 단위 클럭을, 복수 개의 소프트 코어 시뮬레이터 모듈과 하드 코어 에뮬레이터 모듈 중에서 가장 짧은 단위 클럭을 기준으로 하여 설정할 수 있다.When the virtual clock generator module generates a virtual clock faster than the clock speed of the hard core emulator module 20, the virtual clock generator module compares the reference unit clock of the generated virtual clock with a plurality of soft core simulator modules and a hard core emulator module It can be set based on a short unit clock.

또한, 가상 클럭 생성기 모듈은 상기 가상 클럭의 기준 단위 클럭을 복수 개의 소프트 코어 시뮬레이터 모듈과 하드 코어 에뮬레이터 모듈 중에서 가장 짧은 단위 클럭을 기준으로 설정하여 출력하는 시스템 클럭 모니터 모듈(24)과, 상기 하드 코어 에뮬레이터 모듈(20)에서 발생되는 클럭의 상승 엣지(Rise-edge) 또는 하강 엣지(Fall-edge)에, 상기 가상 클럭의 발생 시점을 동기화하는 클럭 확장기 모듈(25)을 포함할 수 있다. 이에 대한 설명은 이후 도 4를 참조하여 보다 자세히 설명하기로 한다.The virtual clock generator module includes a system clock monitor module 24 for setting a reference unit clock of the virtual clock based on a unit clock of the shortest among a plurality of soft core simulator modules and hard core emulator modules, And a clock expander module 25 for synchronizing a generation time of the virtual clock with a rising edge or a falling edge of the clock generated by the emulator module 20. [ This will be described in more detail with reference to FIG.

또한, 가상 클럭 생성기 모듈은 상기 발생된 가상 클럭을 기반으로 시뮬레이션 진행 요청 이벤트의 발생 주기를 측정하고, 상기 측정된 발생 주기의 시간상의 거리를 상기 소프트 코어 시뮬레이터 모듈(10)의 시간상의 거리와 대응하도록 확장시킬 수 있다. 이는 이후에 도 5를 참조하여 더 자세히 설명하기로 한다.The virtual clock generator module measures the generation period of the simulation progress request event on the basis of the generated virtual clock and correlates the time interval of the measured generation period with the time distance of the soft core simulator module 10 . This will be described later in detail with reference to FIG.

미들웨어 모듈(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 can be performed between the soft core simulator module 10 and the hard core emulator module 20. The middleware module 50 may be a HLA / RTI (High Level Architecture / Run Time Infrastructure) have. The present invention is based on HLA / RTI. By using adapter module 30 and virtual clock generator module, it is possible to simulate integrated simulation between software-based simulator and actual hardware as well as integrated simulation between different software-based simulators.

또한, 미들웨어 모듈(50)은 상기 하드 코어 에뮬레이터 모듈(20)의 클럭(즉, 하드 코어 에뮬레이터 모듈에서 발생되는 클럭)의 상승 엣지(Rise-edge) 또는 하강 엣지(Fall-edge) 마다 발생하는 시뮬레이션 진행 요청 이벤트를 감지하고, 상기 이벤트가 감지될 때 상기 하드 코어 에뮬레이터 모듈의 시뮬레이션 진행을 정지시킬 수 있다.In addition, the middleware module 50 may include a simulation generated at every rising edge or falling edge of the clock of the hard core emulator module 20 (i.e., a clock generated in the hard core emulator module) A progress request event, and stop the simulation of the hard core emulator module when the event is detected.

하드 코어 에뮬레이터 모듈(20) 내에 포함된 하드웨어 시뮬레이터 인터페이스 모듈은 가상 클럭 생성기 모듈에서 발생된 가상 클럭 상에서, 감지된 이벤트에 대응하는 시뮬레이션을 진행하고, 상기 진행된 시뮬레이션의 결과로 인한 입출력 신호 값을 상기 소프트 코어 시뮬레이터 모듈(10)로 제공한다. 이때, 하드웨어 시뮬레이터 인터페이스 모듈은 하드웨어와 소프트웨어 간에 프락시(Proxy) 역할을 수행하는 하드 코어 에뮬레이터 모듈(20) 내에 포함된 소프트웨어 에뮬레이터(23)와 상응한다.The hardware simulator interface module included in the hard core emulator module 20 performs a simulation corresponding to the sensed event on the virtual clock generated by the virtual clock generator module and outputs the input and output signal value resulting from the advanced simulation to the software And provides it to the core simulator module 10. At this time, the hardware simulator interface module corresponds to the software emulator 23 included in the hard core emulator module 20 serving as a proxy between hardware and software.

하드웨어 시뮬레이터 인터페이스 모듈은 상기 진행된 시뮬레이션의 결과로 인한 입출력 신호 값을, 상기 소프트 코어 시뮬레이터 모듈(10)과 상기 하드 코어 에뮬레이터 모듈(20) 각각의 입출력 신호의 값을 서로 인식할 수 있는 형태로 변환하여 제공하는 어댑터 모듈(30)을 통해, 상기 소프트 코어 시뮬레이터 모듈(10)로 제공할 수 있다.The hardware simulator interface module converts input and output signal values resulting from the advanced simulation into a form capable of recognizing input and output signals of the soft core simulator module 10 and the hard core emulator module 20 To the soft core simulator module 10 through the adapter module 30 provided.

어댑터 모듈(30)은 소프트 코어 시뮬레이터 모듈(10)과 하드 코어 에뮬레이터 모듈(20) 각각이 통합 시뮬레이션 환경을 제공하는 미들웨어 모듈(50)과 상호 연동 가능하도록, 이벤트 기반의 시뮬레이션을 진행하고, 소프트 코어 시뮬레이터 모듈(10)과 하드 코어 에뮬레이터 모듈(20) 각각의 입출력 신호의 값을 서로 인식할 수 있는 형태로 변환하여 제공한다.The adapter module 30 performs event based simulation so that the soft core simulator module 10 and the hard core emulator module 20 can interoperate with the middleware module 50 providing the integrated simulation environment, Output signals of the simulator module 10 and the hard core emulator module 20 into a form recognizable from each other.

어댑터 모듈(30)은 다양한 soft core 시뮬레이터와 hard core가 탑재된 FPGA가 HLA/RTI에 참여하여 연동 될 수 있도록 도울 수 있으며, soft core 시뮬레이터와 FPGA 간 시간 동기화 및 데이터 변환을 도울 수 있다.The adapter module 30 can help various soft core simulators and FPGAs with a hard core to interwork with HLA / RTI, and can help time synchronization and data conversion between the soft core simulator and the FPGA.

또한, 어댑터 모듈(30)은 소프트 코어 시뮬레이터 모듈(10) 및 하드 코어 에뮬레이터 모듈(20)의 HLA 서비스 이용을 위한 인터페이스를 제공할 수 있다.The adapter module 30 may also provide an interface for use of the HLA services of the soft core simulator module 10 and the hard core emulator module 20. [

한편, 다양한 soft core 모의를 위한 시뮬레이터들 중 일부는 외부 표준 인터페이스가 존재한다. 즉, Verilog 및 Verilog AMS 계열 시뮬레이터는 외부 IEEE 표준 인터페이스인 Verilog PLI (Verilog Programming language Interface)를 지원하며, VHDL 및 VHDL AMS 계열 시뮬레이터는 VHDL PLI (Verilog Programming language Interface)와 같은 표준 인터페이스를 지원한다. 본 발명에서 소프트웨어 시뮬레이터 인터페이스 모듈은 소프트 코어 시뮬레이터 모듈(10)이 다른 소프트 코어 시뮬레이터 모듈 또는 하드 코어 에뮬레이터 모듈(20) 간에 데이터 전송을 가능하도록 하는 범용의 인터페이스를 제공한다.Meanwhile, 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). The software simulator interface module in the present invention provides a general-purpose interface that enables the soft core simulator module 10 to transfer data between other soft core simulator modules or hard core emulator modules 20. [

어댑터 모듈(30)은 다양한 soft core 모의를 위한 시뮬레이터들이 지원하는 각기 다른 외부 표준 인터페이스를 통합적으로 지원 가능하도록 하는 라이브러리를 지원할 수 있다. 다시 말해, 어댑터 모듈(30)은 소프트 코어 시뮬레이터 모듈(10) 및 하드 코어 에뮬레이터 모듈(20)의 타입에 대응하는 라이브러리(즉, VHDL, Verilog-AMS, FPGA 등 모든 soft core 타입 및 hard core 타입에 대응하는 라이브러리)를 지원하기 때문에, 어댑터 모듈(30)은 소프트 코어 시뮬레이터 모듈(10)과 하드 코어 에뮬레이터 모듈(20) 간의 상호작용을 가능하게 한다. 다만, 일부 외부 인터페이스를 지원하지 않는 시뮬레이터는 어댑터 모듈(30)이 라이브러리를 이용할 수 있도록 하는 외부 시뮬레이터 인터페이스를 제공하도록 일부 수정이 요구될 수 있다.The adapter module 30 can support a library that can integrally support different external standard interfaces supported by simulators for various soft core simulations. 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 interaction 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)에 플러그인 됨으로써, 소프트 코어 시뮬레이터 모듈(10) 또는 하드 코어 에뮬레이터 모듈(20)가 HLA 서비스를 이용할 수 있게 된다.The adapter module 30 is plugged into the soft core simulator module 10 or the hard core emulator module 20 so that the soft core simulator module 10 or the hard core emulator module 20 ) Will be able to use the HLA service.

한편, 본 발명에서의 통합 시뮬레이션이라 함은 소프트 코어 시뮬레이터와 다른 소프트 코어 시뮬레이터를 함께 시뮬레이션 하는 것뿐만 아니라 소프트 코어 시뮬레이터와 실제 하드웨어(FPGA)를 함께 시뮬레이션 하는 것을 의미한다.Meanwhile, 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.

소프트웨어 시뮬레이터 인터페이스 모듈은 소프트 코어 시뮬레이터 모듈(10) 내에 포함된 인터페이스 모듈로서, 소프트 코어 시뮬레이터 모듈(10)의 시뮬레이션 결과로 인한 상기 소프트 코어 시뮬레이터 모듈(10)의 입출력 신호의 변화를 다른 소프트 코어 시뮬레이터 모듈 및 하드 코어 에뮬레이터 모듈(20)과 공유할 수 있도록 어댑터 모듈(30)로 제공한다. 소프트웨어 시뮬레이터 인터페이스 모듈은 소프트 코어 시뮬레이터의 일부로 구성될 수 있으며, 이는 외부 시뮬레이터 인터페이스와 그 의미가 상응한다.The software simulator interface module is an interface module included in the soft core simulator module 10. The software simulator interface module is a module for converting the change of the input / output signal of the soft core simulator module 10 due to the simulation result of the soft core simulator module 10, And the hard-core emulator module 20 to the adapter module 30. The software simulator interface module can be configured as part of a soft core simulator, which corresponds to an external simulator interface.

그리고 하드웨어 시뮬레이터 인터페이스 모듈은 하드 코어 에뮬레이터 모듈(20)의 시뮬레이션 결과로 인한 상기 하드 코어 에뮬레이터 모듈(20)의 입출력 신호의 변화를 다른 소프트 코어 시뮬레이터 모듈과 공유할 수 있도록 어댑터 모듈(30)로 제공한다.The hardware simulator interface module provides the adapter module 30 with the change of the input / output signal of the hard core emulator module 20 due to the simulation result of the hard core emulator module 20 so as to be shared with other soft core simulator modules .

또한, 어댑터 모듈(30)은 소프트 코어 시뮬레이터 모듈(10) 또는 하드 코어 에뮬레이터 모듈(20)에서 발생한 신호(Signal)의 변화를 감지하고, 감지된 신호를 SE변환함수(이때, SE변환함수는 DE Convert와 AE Convert 함수를 포함할 수 있음)를 이용함으로써, 신호를 이벤트로 변환(Signal to Event)하고, 변환된 이벤트를 다른 시뮬레이터로 전달할 수 있다. 또한 어댑터 모듈(30)은 다른 소프트 코어 시뮬레이터 등 외부에서 받은 이벤트를 ES변환함수(이때, 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 converts the sensed signal into an SE conversion function Convert and AE Convert functions), you can convert the signal to an event (Signal to Event) and pass the converted event to another simulator. In addition, the adapter module 30 can use the soft core simulator module 10 by using an ES conversion function (ES conversion function may include ED Convert and EA Convert function) (Event to Signal) can be used. At this time, the rules of the SE (Signal to Event) and the ES (Event to Signal) can be designated by the user, and the adapter module 30 can control the events of the soft core simulator module 10 and the hard core emulator module 20 Can be detected.

또한, 어댑터 모듈(30)은 소프트웨어 기반의 시뮬레이터와 실제 하드웨어를 함께 통합 시뮬레이션 할 수 있는 하는 환경을 제공하기 위하여, 이벤트 기반의 통합 시뮬레이션을 진행하는 도중에 소프트 코어 시뮬레이터 모듈(10)과 하드 코어 에뮬레이터 모듈(20) 각각에서 감지된 이벤트를 서로에게 반영할 수 있도록 하드 코어 에뮬레이터 모듈(20)의 진행 시간을 소프트 코어 시뮬레이터 모듈(10)상의 시간과 동기화할 수 있다.In order to provide an environment in which the software module-based simulator and the actual hardware may be integratedly simulated together, the adapter module 30 may include a soft core simulator module 10 and a hard core emulator module The execution time of the hard core emulator module 20 can be synchronized with the time on the soft core simulator module 10 so that the detected events can be reflected to each other.

더 자세하게는, 본 발명에서 통합 시뮬레이션을 가능하게 하기 위해서는 상대적으로 동작 속도가 빠른 물리적 하드웨어 장치(즉, 하드 코어 에뮬레이터)에서의 시간 흐름을 상대적으로 동작 속도가 느린 모델 수준의 시뮬레이터(즉, 소프트 코어 시뮬레이터)의 동작 시간에 맞춰 느리게 제어하는 것이 필요하며, 이를 위해 하드 코어 에뮬레이터 모듈의 클럭 속도보다 빠른 가상 클럭을 발생시키는 가상 클럭 생성기 모듈이 이용된다.More specifically, in order to enable integrated simulation in the present invention, the time flow in a physical hardware device (i.e., a hard core emulator) having a relatively high operation speed is compared with a model-level simulator Simulator), and a virtual clock generator module that generates a virtual clock faster than the clock speed of the hard core emulator module is used for this purpose.

이하에서는 도 4 및 도 5를 참조하여 가상 클럭 생성기 모듈에 대해 보다 자세히 설명하기로 한다.Hereinafter, the virtual clock generator module will be described in more detail with reference to FIGS. 4 and 5. FIG.

도 4는 본 발명의 일 실시예에 따른 가상 클럭 생성기 모듈의 회로 구성을 나타낸 도면이다.4 is a circuit diagram of a virtual clock generator module according to an embodiment of the present invention.

우선, 가상 클럭 생성기 모듈은 앞서 말한 바와 같이, 소프트 코어 시뮬레이터 모듈(10)과 하드 코어 에뮬레이터 모듈(20)이 상호 연동되는 이벤트 기반의 시뮬레이션을 실행하기 위하여, 상기 하드 코어 에뮬레이터 모듈(20)의 진행 시간이 상기 소프트 코어 시뮬레이터 모듈(10)의 시뮬레이션 상의 시간에 맞추어 제어되도록, 하드 코어 에뮬레이터 모듈(20)의 클럭 속도보다 빠른 가상 클럭을 발생시킨다.First, as described above, the virtual clock generator module is configured so that the soft core simulator module 10 and the hard core emulator module 20 are interlocked with each other so that the hard core emulator module 20 Generates a virtual clock faster than the clock speed of the hard core emulator module 20 so that the time is controlled in accordance with the time on the simulation of the soft core simulator module 10. [

도 4를 참조하여 더 자세히 살펴보면, 가상 클럭 생성기 모듈은 시스템 클럭 모니터 모듈(24)과 클럭 확장기 모듈(25)을 포함할 수 있다. 그리고, 가상 클럭 생성기 모듈은 하드 코어 에뮬레이터 모듈(20)의 클럭 제어 블록(21) 내에 포함될 수 있다.4, the virtual clock generator module may include a system clock monitor module 24 and a clock expander module 25. [ The virtual clock generator module may be included in the clock control block 21 of the hard core emulator module 20.

가상 클럭 생성기 모듈은 하드 코어 에뮬레이터 모듈(20)의 클럭(즉, 실제 물리적으로 동작하는 칩에 의한 클럭)을 입력 받으면(S410), 시스템 클럭 모니터 모듈(24)을 통해 가상 클럭을 출력(S420)하며, 이때, 출력되는 가상 클럭의 기준 단위는 복수 개의 소프트 코어 시뮬레이터 모듈(10)과 하드 코어 에뮬레이터 모듈(20) 중에서 가장 짧은 단위 클럭을 기준으로 설정될 수 있다. 즉, 시스템 클럭 모니터 모듈(24)은 상기 가장 짧은 단위 클럭을 기준으로 하는 가상 클럭을 출력(S420)할 수 있다.The virtual clock generator module receives a clock of the hard core emulator module 20 (that is, a clock by a chip that actually operates physically) (S410), outputs a virtual clock through the system clock monitor module 24 (S420) At this time, the reference unit of the output virtual clock can be set based on the shortest unit clock among the plurality of soft core simulator modules 10 and hard core emulator modules 20. [ That is, the system clock monitor module 24 may output a virtual clock based on the shortest unit clock (S420).

또는, 본 발명의 다른 예에서는 가상 클럭 생성기 모듈이 단계S420에서 가상 클럭을 출력할 때, 하드 코어 에뮬레이터 모듈(20)의 클럭 속도보다 훨씬 빠른 무한대 개념의 클럭 속도로 생성해 낼 수 있다.Alternatively, in another example of the present invention, when the virtual clock generator module outputs the virtual clock in step S420, it can be generated with a clock rate of an infinite concept much faster than the clock speed of the hard core emulator module 20. [

본 발명은 가상 클럭 생성기 모듈을 통해, 하드 코어 에뮬레이터 모듈(20)의 클럭 속도 보다 훨씬 빠른 속도의 클럭을 생성해 냄으로써, 하드 코어 에뮬레이터 모듈(20)의 클럭을 정밀하게 모니터링하는 것이 가능하고, 이를 통해 통합 시뮬레이션 진행 시 이벤트가 감지 되었을 때, 보다 정확하게 하드 코어 에뮬레이터 모듈(20)의 클럭, 혹은 하드 코어 에뮬레이터 모듈(20)의 시뮬레이션 진행을 정확하게 정지시키는 것이 가능하다.The present invention can precisely monitor the clock of the hard core emulator module 20 by generating a clock much faster than the clock speed of the hard core emulator module 20 through the virtual clock generator module, It is possible to accurately stop the clock of the hard core emulator module 20 or the progress of the simulation of the hard core emulator module 20 more accurately when an event is detected in the course of the integrated simulation.

한편, 가상 클럭 생성기 모듈은 하드 코어 에뮬레이터 모듈(20)에서 발생되는 클럭의 상승 엣지 또는 하강 엣지를 모니터링하며, 확장된 가상 클럭을 생성하기 위하여 플립플롭(Flip-Flop)을 이용할 수도 있다.Meanwhile, the virtual clock generator module monitors a rising edge or a falling edge of a clock generated in the hard core emulator module 20, and may use a flip-flop to generate an extended virtual clock.

가상 클럭 생성기 모듈의 클럭 확장기 모듈(25)은 시스템 클럭 모니터 모듈(24)로부터 출력된 가상 클럭을 수신하고, 상기 수신한 가상 클럭의 발생 시점을 하드 코어 에뮬레이터 모듈(20)에서 발생되는 클럭의 상승 엣지 또는 하강 엣지에 동기화함으로써, 동기화가 맞춰진 확장된 가상 클럭을 출력(S430)한다.The clock expander module 25 of the virtual clock generator module receives the virtual clock output from the system clock monitor module 24 and outputs the received clock to the rising edge of the clock generated in the hard core emulator module 20 And outputs the extended virtual clock synchronized by synchronizing with the edge or the falling edge (S430).

본 발명은 가상 클럭 생성기 모듈로부터 발생(혹은 생성)되는 가상 클럭을 통해, 시스템을 동작시키는 클럭(즉, 하드 코어 에뮬레이터 모듈의 클럭)을 정밀하게 모니터링하고, 하드 코어 에뮬레이터 모듈(20)의 진행 시간을 소프트 코어 시뮬레이터 모듈(10)의 시뮬레이션 상의 시간에 맞추어 느리게 제어하는 것이 가능하므로, 이를 통해 소프트 코어 시뮬레이터 모듈(10)과 하드 코어 에뮬레이터 모듈(20) 간에 통합 시뮬레이션을 가능하도록 제공할 수 있다.The present invention precisely monitors a clock (that is, a clock of a hard core emulator module) that operates the system through a virtual clock generated (or generated) from the virtual clock generator module, It is possible to control the soft core simulator module 10 and the hard core emulator module 20 in a slow manner in accordance with the simulation time of the soft core simulator module 10,

이하에서는 본 발명의 이해를 더 돕고자, 혼합 시뮬레이션을 위해 하드 코어 에뮬레이터 모듈에 의한 클럭의 진행 시간을 가상적으로 확장시킨 개념에 대해 설명하기로 한다. 이때, 도 5는 도 4의 내용을 기반으로 하여 설명하기로 한다.Hereinafter, to further understand the present invention, a concept of virtually extending a clock progress time by a hard core emulator module for mixed simulation will be described. At this time, FIG. 5 will be described based on the contents of FIG.

도 5는 본 발명의 일 실시예에 따른 가상 클럭 생성기 모듈의 시간 확장 개념을 도식화한 도면이다.FIG. 5 is a diagram illustrating a time expansion concept of a virtual clock generator module according to an embodiment of the present invention. Referring to FIG.

도 5를 참조하면, 우선 가상 클럭 생성기 모듈은 하드 코어 에뮬레이터 모듈의 클럭 속도 보다 훨씬 빠른 가상 클럭을 기반으로 시뮬레이션 진행 요청 이벤트의 발생 주기를 측정하며, 상기 측정된 이벤트 주기의 시간상의 거리를 소프트 코어 시뮬레이터 모듈(10)의 시간상의 거리와 대응되도록, 상기 하드 코어 에뮬레이터 모듈에 의한 클럭의 진행 시간을 가상적으로 확장시킬 수 있다.Referring to FIG. 5, the virtual clock generator module measures the generation period of the simulation progress request event based on the virtual clock much faster than the clock speed of the hard core emulator module, The progress time of the clock by the hard core emulator module can be virtually extended to correspond to the time distance of the simulator module 10.

도 5(a)는 도 4의 단계S410에서 가상 클럭 생성기 모듈로 입력되는 하드 코어 에뮬레이터 모듈에 의한 클럭(즉, 시스템을 동작시키는 클럭)의 예를 나타내며, 도 5(b)는 도 4의 단계S420에서 시스템 클럭 모니터 모듈(24)를 통해 출력된 가상 클럭의 예를 나타낸다. 이때, 도 5(b)에서의 가상 클럭은 하드 코어 에뮬레이터 모듈(20)의 클럭 속도 보다 훨씬 빠른 무한대 개념의 클럭 속도를 발생시키는 것이 이상적이며, 일 실시예로는 16 bit의 속도로 발생시킬 수 있다.5 (a) shows an example of a clock (that is, a clock for operating the system) by the hard core emulator module input to the virtual clock generator module in step S410 of FIG. 4. FIG. 5 (b) And an example of the virtual clock output through the system clock monitor module 24 in step S420. In this case, it is ideal that the virtual clock in FIG. 5 (b) generates an infinite clock speed much faster than the clock speed of the hard core emulator module 20, and in one embodiment, have.

그리고 도 5(c)는 도 4의 단계S430에서 출력되는 확장된 가상 클럭의 예로서, 더 자세하게 도 5(c)는, 도 5(b)의 가상 클럭의 시간 상의 거리를 소프트 코어 시뮬레이터 모듈(10)의 시간 상의 거리와 대응되게 하기 위하여, 도 5(b)의 가상 클럭의 시간 상의 거리를 소프트 코어 시뮬레이터 모듈(10)의 시간 상의 거리에 맞추어 확장시킨 확장된 가상 클럭의 예를 나타낸다. 이때, 확장된 가상 클럭은 하드 코어 에뮬레이터 모듈(20)에 의한 클럭의 상승 엣지 또는 하강 엣지에 도 5(b)와 같은 가상 클럭의 발생 시점을 동기화시킨 클럭을 의미한다.5C shows an example of the extended virtual clock output in step S430 of FIG. 4. More specifically, FIG. 5C shows the distance in time of the virtual clock of FIG. 5B to the soft core simulator module 5 shows an example of an extended virtual clock in which the distance in time of the virtual clock in FIG. 5 (b) is extended to match the distance in time of the soft core simulator module 10 in order to correspond to the distance in time. At this time, the extended virtual clock means a clock synchronizing the generation time of the virtual clock as shown in FIG. 5 (b) to the rising edge or falling edge of the clock by the hard core emulator module 20.

본 발명은 도 5(c)와 같이 확장된 가상 클럭을 통해, 소프트 코어 시뮬레이터 모듈(10)과 하드 코어 에뮬레이터 모듈(20)의 시간 흐름을 동기화하는 것이 가능하므로, 소프트 코어 시뮬레이터 모듈(10)과 하드 코어 에뮬레이터 모듈(20)을 동시에 통합적으로 시뮬레이션 하는 것이 가능하다.Since the present invention can synchronize the time flow of the soft core simulator module 10 and the hard core emulator module 20 through the extended virtual clock as shown in FIG. 5 (c), the soft core simulator module 10 and It is possible to integrally simulate the hard core emulator module 20 at the same time.

한편, 이하에서는 상기에 자세히 설명된 내용을 기반으로 본 발명의 동작 흐름도를 간단히 설명하기로 한다.Hereinafter, the operation flow diagram of the present invention will be briefly described based on the details described above.

도 6은 본 발명의 일 실시예에 따른 혼합회로 시뮬레이션 방법에 대한 동작 흐름도이다.6 is a flowchart illustrating an operation of a mixed circuit simulation method according to an embodiment of the present invention.

도 6을 참조하면, 본 발명의 일 실시예에 따른 혼합회로 시뮬레이션 방법은 우선, 혼합회로 시뮬레이션 시스템에서, 전자 회로에 대한 시뮬레이션 모델을 이용하여 상기 전자 회로의 동작을 시뮬레이션 하는 소프트 코어 시뮬레이터 모듈(10)을 동작(S610)시킨다.Referring to FIG. 6, a mixed circuit simulation method according to an exemplary embodiment of the present invention includes a soft core simulator module 10 for simulating the operation of the electronic circuit using a simulation model for an electronic circuit in a mixed circuit simulation system (S610).

이때, 소프트 코어 시뮬레이터 모듈(10)은 전자 회로의 동작을 시뮬레이션 하는 소프트웨어 기반의 시뮬레이터로서, IP core 중 soft core를 시뮬레이션 하는 시뮬레이터가 포함되며, 더 자세하게는 Verilog(IEEE P1364 표준) 언어 모델을 이용하는 Verilog 시뮬레이터(디지털 회로 시뮬레이터), VHDL(IEEE P1076 표준) 언어 모델을 이용하는 VHDL 시뮬레이터(디지털 회로 시뮬레이터), Verilog-AMS 언어 모델을 이용하는 Verilog-AMS 시뮬레이터 (혼합신호 회로 시뮬레이터), 아날로그 회로 시뮬레이터인 SPICE 등이 포함될 수 있다.At this time, 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 the 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)을 동작(S620)시킨다.Next, the mixed circuit simulation system operates the hard core emulator module 20 (S620) in which the operation is actually progressed over time.

이때, 하드 코어 에뮬레이터 모듈(20)은 IP core 중 hard core를 시뮬레이션 하기 위한 모듈, 또는 Real Signal를 생성하는 실제 칩과 FPGA로 이루어진 시뮬레이터 모듈을 의미한다. 또한, 하드 코어 에뮬레이터 모듈(20)은 IP 설계의 물리적 형태로서 시뮬레이션 수행 시 내부 동작은 알 수 없고, 수정이 쉽지 않지만 기능이 검증된 모델일 수 있다.In this case, the hard core emulator module 20 is a module for simulating a hard core in the IP core, or a simulator 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.

다음으로, 혼합회로 시뮬레이션 시스템에서, 가상 클럭 생성기 모듈은 상기 소프트 코어 시뮬레이터 모듈(10)과 상기 하드 코어 에뮬레이터 모듈(20)이 상호 연동되는 이벤트 기반의 시뮬레이션을 실행하기 위하여, 상기 하드 코어 에뮬레이터 모듈(20)의 진행 시간이 상기 소프트 코어 시뮬레이터 모듈(10)의 시뮬레이션 상의 시간에 맞추어 제어되도록, 상기 하드 코어 에뮬레이터 모듈(20)의 클럭 속도보다 빠른 가상 클럭을 발생(S630)시킨다.Next, in a mixed circuit simulation system, a virtual clock generator module is connected to the hard core emulator module (10) to execute an event-based simulation in which the soft core simulator module (10) and the hard core emulator module (S630) a virtual clock faster than the clock speed of the hard core emulator module (20) so that the progress time of the soft core simulator module (20) is controlled according to the simulation time of the soft core simulator module (10).

이때, 가상 클럭 생성기 모듈은 하드 코어 에뮬레이터 모듈의 클럭 속도보다 빠른 가상 클럭을 발생시킬 때, 상기 발생시키는 가상 클럭의 기준 단위 클럭을, 복수 개의 소프트 코어 시뮬레이터 모듈과 하드 코어 에뮬레이터 모듈 중에서 가장 짧은 단위 클럭을 기준으로 하여 설정할 수 있다.In this case, when the virtual clock generator module generates a virtual clock that is faster than the clock speed of the hard core emulator module, the virtual clock generator module converts the reference unit clock of the generated virtual clock into the shortest unit clock among the plurality of soft core simulator modules and hard core emulator modules As shown in FIG.

또한, 이때 가상 클럭 생성기 모듈은 상기 가상 클럭의 기준 단위 클럭을 복수 개의 소프트 코어 시뮬레이터 모듈과 하드 코어 에뮬레이터 모듈 중에서 가장 짧은 단위 클럭을 기준으로 설정하여 출력하는 시스템 클럭 모니터 모듈(24)과, 상기 하드 코어 에뮬레이터 모듈에서 발생되는 클럭의 상승 엣지(Rise-edge) 또는 하강 엣지(Fall-edge)에, 상기 가상 클럭의 발생 시점을 동기화하는 클럭 확장기 모듈(25)을 포함할 수 있다. 이에 대한 설명은 상기 도 4를 참조하여 보다 자세히 설명했으므로, 이를 참조하기로 한다.At this time, the virtual clock generator module includes a system clock monitor module 24 for setting a reference unit clock of the virtual clock based on the shortest unit clock among a plurality of soft core simulator modules and hard core emulator modules, And a clock expander module 25 for synchronizing a generation time of the virtual clock to a rising edge or a falling edge of a clock generated in the core emulator module. The description thereof has been described in detail with reference to FIG. 4. Referring to FIG.

또한, 이때 가상 클럭 생성기 모듈은 상기 발생된 가상 클럭을 기반으로 시뮬레이션 진행 요청 이벤트의 발생 주기를 측정하고, 상기 측정된 발생 주기의 시간상의 거리를 상기 소프트 코어 시뮬레이터 모듈(10)의 시간상의 거리와 대응하도록 확장시킬 수 있다. 이에 대한 설명은 상기 도 5를 참조하여 보다 자세히 설명했으므로, 이를 참조하기로 한다.At this time, the virtual clock generator module measures the generation period of the simulation progress request event based on the generated virtual clock, and calculates the distance in time of the measured generation period with the distance in time of the soft core simulator module 10 It can be expanded to correspond. The above description has been described in detail with reference to FIG. 5, so that reference will be made thereto.

다음으로, 미들웨어 모듈(50)은 상기 하드 코어 에뮬레이터 모듈(20)의 클럭의 상승 엣지 또는 하강 엣지 마다 발생하는 시뮬레이션 진행 요청 이벤트를 감지하고, 상기 이벤트가 감지될 때 상기 하드 코어 에뮬레이터 모듈의 시뮬레이션 진행을 정지(S640)시킬 수 있다.Next, the middleware module 50 detects a simulation process request event occurring at each rising edge or falling edge of the clock of the hard core emulator module 20, and when the event is detected, (S640).

이때, 미들웨어 모듈(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 can be performed between the soft core simulator module 10 and the hard core emulator module 20. The middleware module 50 includes a HLA / RTI (High Level Architecture / Run Time Infrastructure) The present invention is based on HLA / RTI and uses an adapter module 30 and a virtual clock generator module to simulate integrated simulation between a software-based simulator and actual hardware as well as between simulators of different types of software It is possible.

다음으로, 하드웨어 시뮬레이터 인터페이스 모듈은 단계S630에서 발생된 가상 클럭 상에서, 감지된 이벤트에 대응하는 시뮬레이션을 진행하고, 상기 진행된 시뮬레이션의 결과로 인한 입출력 신호 값을 소프트 코어 시뮬레이터 모듈(10)로 제공(S650)한다.Next, the hardware simulator interface module performs a simulation corresponding to the sensed event on the virtual clock generated in step S630, and provides the input / output signal value resulting from the advanced simulation to the soft core simulator module 10 (S650 )do.

이때 하드웨어 시뮬레이터 인터페이스 모듈은 상기 진행된 시뮬레이션의 결과로 인한 입출력 신호 값을, 상기 소프트 코어 시뮬레이터 모듈(10)과 상기 하드 코어 에뮬레이터 모듈(20) 각각의 입출력 신호의 값을 서로 인식할 수 있는 형태로 변환하여 제공하는 어댑터 모듈(30)을 통해, 상기 소프트 코어 시뮬레이터 모듈(10)로 제공할 수 있다.At this time, the hardware simulator interface module converts the input / output signal value resulting from the advanced simulation into a form capable of recognizing the input / output signal values of the soft core simulator module 10 and the hard core emulator module 20, To the soft core simulator module (10) through the adapter module (30) provided to the soft core simulator module (10).

그리고, 상기 어댑터 모듈(30)은 소프트 코어 시뮬레이터 모듈(10)과 하드 코어 에뮬레이터 모듈(20) 각각이 통합 시뮬레이션 환경을 제공하는 미들웨어 모듈(50)과 상호 연동 가능하도록, 이벤트 기반의 시뮬레이션을 진행하고, 소프트 코어 시뮬레이터 모듈(10)과 하드 코어 에뮬레이터 모듈(20) 각각의 입출력 신호의 값을 서로 인식할 수 있는 형태로 변환하여 제공할 수 있다. 이 외에도 어댑터 모듈(30)은 다양한 soft core 시뮬레이터와 hard core가 탑재된 FPGA가 HLA/RTI에 참여하여 연동 될 수 있도록 도울 수 있으며, soft core 시뮬레이터와 FPGA 간 시간 동기화 및 데이터 변환을 도울 수 있다. 이에 대한 설명은 상기에 자세히 기술한 내용을 참조하기로 한다.The adapter module 30 performs an event-based simulation so that the soft core simulator module 10 and the hard core emulator module 20 can interoperate with the middleware module 50 providing the integrated simulation environment Output signals of the soft core simulator module 10 and the hard core emulator module 20 into a form recognizable from each other. In addition, the adapter module 30 can help various soft core simulators and hard core embedded FPGAs participate in HLA / RTI, and can help time synchronization and data conversion between the soft core simulator and the FPGA. The description will be made in detail in the above description.

본 발명은 상기와 같은 방법을 통해, 소프트웨어 기반의 시뮬레이터의 동작 속도에 비해 상대적으로 아주 빠른 실제 하드웨어의 동작 속도를 소프트웨어 기반의 시뮬레이터의 동작 속도에 맞추어 느리게 제어함으로써, 소프트웨어 기반의 시뮬레이터와 실제 하드웨어를 통합적으로 시뮬레이션하는 것이 가능하다.
According to the present invention, by using the above-described method, the actual hardware speed, which is relatively fast compared with the operation speed of the software-based simulator, is controlled to be slow according to the operation speed of the software-based simulator, It is possible to simulate integrally.

본 발명의 일 실시 예에 따른 혼합회로 시뮬레이션 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The mixed circuit simulation method according to an exemplary embodiment of the present invention may be implemented in the form of program instructions 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: 혼합회로 시뮬레이션 시스템
10: 소프트 코어 시뮬레이터 모듈 20: 하드 코어 에뮬레이터 모듈
30: 어댑터 모듈 50: 미들웨어 모듈
21: 클럭 제어 블록 22: 프로빙 및 트리거링 블록
23: 소프트웨어 에뮬레이터
200: Mixed Circuit Simulation System
10: Soft core simulator module 20: Hard core emulator module
30: adapter module 50: middleware module
21: clock control block 22: probing and triggering block
23: Software emulator

Claims (14)

전자 회로에 대한 시뮬레이션 모델을 이용하여 상기 전자 회로의 동작을 시뮬레이션 하는 소프트 코어 시뮬레이터 모듈;
시간 경과에 따라 오퍼레이션을 실제로 진행하는 하드 코어 에뮬레이터 모듈; 및
상기 소프트 코어 시뮬레이터 모듈과 상기 하드 코어 에뮬레이터 모듈이 상호 연동되는 이벤트 기반의 시뮬레이션을 실행하기 위하여, 상기 하드 코어 에뮬레이터 모듈의 진행 시간이 상기 소프트 코어 시뮬레이터 모듈의 시뮬레이션 상의 시간에 맞추어 제어되도록, 상기 하드 코어 에뮬레이터 모듈의 클럭 속도보다 빠른 가상 클럭을 발생시키는 가상 클럭 생성기 모듈;
을 포함하는 혼합회로 시뮬레이션 시스템.
A soft core simulator module for simulating the operation of the electronic circuit using a simulation model for the electronic circuit;
A hard core emulator module for actually proceeding with the passage of time; And
Wherein the soft core simulator module and the hard core emulator module are interworked with each other so that the progress time of the hard core emulator module is controlled in accordance with the simulation time of the soft core simulator module, A virtual clock generator module for generating a virtual clock faster than the clock speed of the emulator module;
Wherein the circuit simulation system comprises:
제1항에 있어서,
상기 하드 코어 에뮬레이터 모듈의 클럭의 상승 엣지 또는 하강 엣지 마다 발생하는 시뮬레이션 진행 요청 이벤트를 감지하고, 상기 이벤트가 감지될 때 상기 하드 코어 에뮬레이터 모듈의 시뮬레이션 진행을 정지시키는 미들웨어 모듈;
을 더 포함하는 혼합회로 시뮬레이션 시스템.
The method according to claim 1,
A middleware module for detecting a simulation progress request event occurring at each rising edge or falling edge of the clock of the hard core emulator module and stopping the simulation progress of the hard core emulator module when the event is detected;
Further comprising:
제1항에 있어서,
상기 가상 클럭 생성기 모듈에서 발생된 가상 클럭 상에서, 감지된 이벤트에 대응하는 시뮬레이션을 진행하고, 상기 진행된 시뮬레이션의 결과로 인한 입출력 신호 값을 상기 소프트 코어 시뮬레이터 모듈로 제공하는 하드웨어 시뮬레이터 인터페이스 모듈;
을 더 포함하는 혼합회로 시뮬레이션 시스템.
The method according to claim 1,
A hardware simulator interface module for performing a simulation corresponding to a sensed event on the virtual clock generated by the virtual clock generator module and for providing an input / output signal value resulting from the advanced simulation to the soft core simulator module;
Further comprising:
제3항에 있어서,
상기 하드웨어 시뮬레이터 인터페이스 모듈은
상기 진행된 시뮬레이션의 결과로 인한 입출력 신호 값을, 상기 소프트 코어 시뮬레이터 모듈과 상기 하드 코어 에뮬레이터 모듈 각각의 입출력 신호의 값을 서로 인식할 수 있는 형태로 변환하여 제공하는 어댑터 모듈을 통해, 상기 소프트 코어 시뮬레이터 모듈로 제공하는 것
을 특징으로 하는 혼합회로 시뮬레이션 시스템.
The method of claim 3,
The hardware simulator interface module
Output signal values resulting from the advanced simulation are converted into a form capable of recognizing the values of the input and output signals of the soft core simulator module and the hard core emulator module, Provided as a module
Wherein the mixed circuit simulation system comprises:
제1항에 있어서,
상기 가상 클럭 생성기 모듈은
상기 발생된 가상 클럭을 기반으로 상기 시뮬레이션 진행 요청 이벤트의 발생 주기를 측정하고, 상기 측정된 발생 주기의 시간상의 거리를 상기 소프트 코어 시뮬레이터 모듈의 시간상의 거리와 대응하도록 확장시키는 것
을 특징으로 하는 혼합회로 시뮬레이션 시스템.
The method according to claim 1,
The virtual clock generator module
Measuring a generation period of the simulation progress request event based on the generated virtual clock and extending a distance in time of the measured generation period to correspond to a time distance in the soft core simulator module
Wherein the mixed circuit simulation system comprises:
제1항에 있어서,
상기 가상 클럭 생성기 모듈은
상기 발생시키는 가상 클럭의 기준 단위 클럭을, 복수 개의 소프트 코어 시뮬레이터 모듈과 하드 코어 에뮬레이터 모듈 중에서 가장 짧은 단위 클럭을 기준으로 하여 설정하는 것
을 특징으로 하는 혼합회로 시뮬레이션 시스템.
The method according to claim 1,
The virtual clock generator module
The reference unit clock of the virtual clock to be generated is set based on the shortest unit clock among a plurality of soft core simulator modules and hard core emulator modules
Wherein the mixed circuit simulation system comprises:
제1항에 있어서,
상기 가상 클럭 생성기 모듈은
상기 가상 클럭의 기준 단위 클럭을 복수 개의 소프트 코어 시뮬레이터 모듈과 하드 코어 에뮬레이터 모듈 중에서 가장 짧은 단위 클럭을 기준으로 설정하여 출력하는 시스템 클럭 모니터 모듈; 및
상기 하드 코어 에뮬레이터 모듈의 클럭의 상승 엣지 또는 하강 엣지에, 상기 가상 클럭의 발생 시점을 동기화하는 클럭 확장기 모듈;
을 포함하는 혼합회로 시뮬레이션 시스템.
The method according to claim 1,
The virtual clock generator module
A system clock monitor module for setting and outputting a reference unit clock of the virtual clock based on the shortest unit clock among a plurality of soft core simulator modules and hard core emulator modules; And
A clock expander module for synchronizing a generation time of the virtual clock to a rising edge or a falling edge of a clock of the hard core emulator module;
Wherein the circuit simulation system comprises:
전자 회로에 대한 시뮬레이션 모델을 이용하여 상기 전자 회로의 동작을 시뮬레이션 하는 소프트 코어 시뮬레이터 모듈을 동작시키는 단계;
시간 경과에 따라 오퍼레이션을 실제로 진행하는 하드 코어 에뮬레이터 모듈을 동작시키는 단계; 및
상기 소프트 코어 시뮬레이터 모듈과 상기 하드 코어 에뮬레이터 모듈이 상호 연동되는 이벤트 기반의 시뮬레이션을 실행하기 위하여, 상기 하드 코어 에뮬레이터 모듈의 진행 시간이 상기 소프트 코어 시뮬레이터 모듈의 시뮬레이션 상의 시간에 맞추어 제어되도록, 상기 하드 코어 에뮬레이터 모듈의 클럭 속도보다 빠른 가상 클럭을 발생시키는 단계;
를 포함하는 혼합회로 시뮬레이션 방법.
Operating a soft core simulator module that simulates the operation of the electronic circuit using a simulation model for the electronic circuit;
Operating a hard core emulator module that actually performs operations according to a lapse of time; And
Wherein the soft core simulator module and the hard core emulator module are interworked with each other so that the progress time of the hard core emulator module is controlled in accordance with the simulation time of the soft core simulator module, Generating a virtual clock faster than the clock speed of the emulator module;
Lt; / RTI >
제8항에 있어서,
상기 하드 코어 에뮬레이터 모듈의 클럭의 상승 엣지 또는 하강 엣지 마다 발생하는 시뮬레이션 진행 요청 이벤트를 감지하고, 상기 이벤트가 감지될 때 상기 하드 코어 에뮬레이터 모듈의 시뮬레이션 진행을 정지시키는 단계;
를 더 포함하는 혼합회로 시뮬레이션 방법.
9. The method of claim 8,
Detecting a simulation progress request event occurring at each rising edge or falling edge of the clock of the hard core emulator module and stopping the simulation progress of the hard core emulator module when the event is detected;
Lt; RTI ID = 0.0 > 1, < / RTI >
제8항에 있어서,
상기 가상 클럭을 발생시키는 단계에서 발생된 가상 클럭 상에서, 감지된 이벤트에 대응하는 시뮬레이션을 진행하고, 상기 진행된 시뮬레이션의 결과로 인한 입출력 신호 값을 상기 소프트 코어 시뮬레이터 모듈로 제공하는 단계;
를 더 포함하는 혼합회로 시뮬레이션 방법.
9. The method of claim 8,
Performing a simulation corresponding to the sensed event on the virtual clock generated in the step of generating the virtual clock, and providing the input / output signal value resulting from the advanced simulation to the soft core simulator module;
Lt; RTI ID = 0.0 > 1, < / RTI >
제10항에 있어서,
상기 소프트 코어 시뮬레이터 모듈로 제공하는 단계는
상기 진행된 시뮬레이션의 결과로 인한 입출력 신호 값을, 상기 소프트 코어 시뮬레이터 모듈과 상기 하드 코어 에뮬레이터 모듈 각각의 입출력 신호의 값을 서로 인식할 수 있는 형태로 변환하여 제공하는 어댑터 모듈을 통해, 상기 소프트 코어 시뮬레이터 모듈로 제공하는 것
을 특징으로 하는 혼합회로 시뮬레이션 방법.
11. The method of claim 10,
The step of providing to the soft core simulator module
Output signal values resulting from the advanced simulation are converted into a form capable of recognizing the values of the input and output signals of the soft core simulator module and the hard core emulator module, Provided as a module
Lt; RTI ID = 0.0 > 1, < / RTI >
제8항에 있어서,
상기 가상 클럭을 발생시키는 단계는
상기 발생된 가상 클럭을 기반으로 상기 시뮬레이션 진행 요청 이벤트의 발생 주기를 측정하고, 상기 측정된 발생 주기의 시간상의 거리를 상기 소프트 코어 시뮬레이터 모듈의 시간상의 거리와 대응하도록 확장시키는 것
을 특징으로 하는 혼합회로 시뮬레이션 방법.
9. The method of claim 8,
The step of generating the virtual clock
Measuring a generation period of the simulation progress request event based on the generated virtual clock and extending a distance in time of the measured generation period to correspond to a time distance in the soft core simulator module
Lt; RTI ID = 0.0 > 1, < / RTI >
제8항에 있어서,
상기 가상 클럭을 발생시키는 단계는
상기 발생시키는 가상 클럭의 기준 단위 클럭을, 복수 개의 소프트 코어 시뮬레이터 모듈과 하드 코어 에뮬레이터 모듈 중에서 가장 짧은 단위 클럭을 기준으로 하여 설정하는 것
을 특징으로 하는 혼합회로 시뮬레이션 방법.
9. The method of claim 8,
The step of generating the virtual clock
The reference unit clock of the virtual clock to be generated is set based on the shortest unit clock among a plurality of soft core simulator modules and hard core emulator modules
Lt; RTI ID = 0.0 > 1, < / RTI >
제8항에 있어서,
상기 가상 클럭을 발생시키는 단계는
상기 가상 클럭의 기준 단위 클럭을 복수 개의 소프트 코어 시뮬레이터 모듈과 하드 코어 에뮬레이터 모듈 중에서 가장 짧은 단위 클럭을 기준으로 설정하여 출력하는 단계; 및
상기 하드 코어 에뮬레이터 모듈의 클럭의 상승 엣지 또는 하강 엣지에, 상기 가상 클럭의 발생 시점을 동기화하는 단계;
를 포함하는 혼합회로 시뮬레이션 방법.
9. The method of claim 8,
The step of generating the virtual clock
Setting a reference unit clock of the virtual clock on the basis of the shortest unit clock among a plurality of soft core simulator modules and hard core emulator modules and outputting the reference unit clock; And
Synchronizing a generation time of the virtual clock to a rising edge or a falling edge of a clock of the hard core emulator module;
Lt; / RTI >
KR1020150000269A 2015-01-02 2015-01-02 Mixing circuit simulation system and method KR101683636B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150000269A KR101683636B1 (en) 2015-01-02 2015-01-02 Mixing circuit simulation system and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150000269A KR101683636B1 (en) 2015-01-02 2015-01-02 Mixing circuit simulation system and method

Publications (2)

Publication Number Publication Date
KR20160083752A true KR20160083752A (en) 2016-07-12
KR101683636B1 KR101683636B1 (en) 2016-12-08

Family

ID=56505238

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150000269A KR101683636B1 (en) 2015-01-02 2015-01-02 Mixing circuit simulation system and method

Country Status (1)

Country Link
KR (1) KR101683636B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108804844A (en) * 2018-06-20 2018-11-13 深圳市易星标技术有限公司 A kind of circuit module recognition methods, circuit module and simulating experimental system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10312315A (en) * 1997-05-12 1998-11-24 Nec Corp Software and hardware cooperative simulation system
KR20060037768A (en) 2004-10-28 2006-05-03 삼성전자주식회사 Software simulator and co-simulation method of hardware description language using the same
KR20080039182A (en) * 2006-10-30 2008-05-07 양세양 Clock generation method in hardware-assisted verification platform, and dynamic verification method using the same
JP2008310727A (en) * 2007-06-18 2008-12-25 Toshiba Corp Simulation system and simulation method
JP2010250365A (en) * 2009-04-10 2010-11-04 Renesas Electronics Corp Cooperative simulation system, hardware emulator, and cooperative simulation method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10312315A (en) * 1997-05-12 1998-11-24 Nec Corp Software and hardware cooperative simulation system
KR20060037768A (en) 2004-10-28 2006-05-03 삼성전자주식회사 Software simulator and co-simulation method of hardware description language using the same
KR20080039182A (en) * 2006-10-30 2008-05-07 양세양 Clock generation method in hardware-assisted verification platform, and dynamic verification method using the same
JP2008310727A (en) * 2007-06-18 2008-12-25 Toshiba Corp Simulation system and simulation method
JP2010250365A (en) * 2009-04-10 2010-11-04 Renesas Electronics Corp Cooperative simulation system, hardware emulator, and cooperative simulation method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108804844A (en) * 2018-06-20 2018-11-13 深圳市易星标技术有限公司 A kind of circuit module recognition methods, circuit module and simulating experimental system
CN108804844B (en) * 2018-06-20 2022-02-11 深圳市易星标技术有限公司 Circuit module identification method, circuit module and simulation experiment system

Also Published As

Publication number Publication date
KR101683636B1 (en) 2016-12-08

Similar Documents

Publication Publication Date Title
Rashinkar et al. System-on-a-chip Verification: Methodology and Techniques
Huang et al. SoC HW/SW verification and validation
CN109711071B (en) Method and system for accelerating software and hardware collaborative simulation of server SoC (system on a chip)
CN113051855B (en) Method, system and verification platform for system-on-chip verification
CN102508753B (en) IP (Internet protocol) core verification system
CN104657245B (en) The automatically generating device of module level UVM verification platform based on AMBA bus
JP2001060219A (en) Design verification method and device using emulation and simulation
JP5004566B2 (en) System to verify the design
WO2024130861A1 (en) Cloud native hardware logic simulation fpga acceleration method and system
CN105447215B (en) Digital circuit design method and relevant system
Darringer et al. Early analysis tools for system-on-a-chip design
KR101621841B1 (en) System and method for mixing circuit simulation based on hla/rti
Lin et al. Functional verifications for SoC software/hardware co-design: From virtual platform to physical platform
Gayathri et al. A SV-UVM framework for verification of SGMII IP core with reusable AXI to WB Bridge UVC
KR101683636B1 (en) Mixing circuit simulation system and method
Sayinta et al. A mixed abstraction level co-simulation case study using systemc for system on chip verification
Gao et al. Software and hardware co-verification technology based on virtual prototyping of RF SOC
US20140325468A1 (en) Storage medium, and generation apparatus for generating transactions for performance evaluation
Khan et al. GHAZI: An Open-Source ASIC Implementation of RISC-V based SoC
KR101629725B1 (en) System and method for mixing circuit simulation based on framework
Van Moll et al. Fast and accurate protocol specific bus modeling using TLM 2.0
Kaith et al. A technical road map from system verilog to UVM
Silva et al. A Distributed Functional Verification Environment for the Design of System-on-Chip in Heterogeneous Architectures
CN115983172B (en) Method and simulation platform for post simulation
Sobański et al. Hardware/software co-design in usb 3.0 mass storage application

Legal Events

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

Payment date: 20191126

Year of fee payment: 4