The design of a hardware/software mixed system begins with hardware/software partitioning. To get the advantage of ready-made simulation environments, hardware should be modeled using languages which are suitable for hardware modeling and software should be modeled using general-purpose languages. As a result of the modeling, we get two kinds of models, software models and hardware models. HW/SW co-simulation employs such kinds of models, which should communicate with each other in an appropriate manner. A simulator should invoke appropriate models according to the instructions it receives, and the invoked model may be a software model or a hardware model. For an instruction set simulator, all the models should be of executable form by the simulator, but it will be impossible if the modeling languages are different.
This thesis proposes a solution for HW/SW co-simulation using a translation method via HMIF(Hardware Module Interchange Format). By using HMIF can get some advantages. First, models which are described by different description languages can be interchanged easily. With bi-directional translators between hardware description languages, models that are described in one language can be translated to the models described in other languages. As a result, two models described using different languages can be simulated in one simulation environment. Another advantage is that we can apply formal verification methods to models in HMIF which is based on the DEVS(Discrete Event System Specification) semantics. This is a great advantage if translators for various hardware description languages are available because we can apply formal verification methods to the models described using hardware description languages.
As an application example, we realized a cosimulation framework with which software models described by C++ and hardware models described by Verilog HDL were cosimulated. The exmaple shows that hardware models translated to C++ by our translator communicated well with software models. An additional advantage of the translation approach resulted in simulation speedup of hardware modules.
특정한 응용프로그램을 위한 시스템을 설계할 때 시스템의 specification으로부터 하드웨어 모델과 소프트웨어 모델을 나누고 각 부분을 개발한 후, 두 부분을 통합하여 시뮬레이션함으로써 디자인하고자 하는 시스템의 동작을 검증하는 디자인 방법을 codesign이라고 한다. Co-simulation이란 이러한 codesign에서 하드웨어와 소프트웨어가 통합되어 시뮬레이션되는 것을 의미한다. 이 경우에 소프트웨어와 하드웨어를 개발하기 위한 환경이 각기 다르다. 이러한 이유로 인하여 co-simulation단계에서 통합되는 하드웨어모델과 소프트웨어모델의 기술방법이 다르게 된다. 가령 소프트웨어모델의 경우는 보다 표현방법이 일반적인 언어가, 하드웨어모델의 경우는 하드웨어 기술 언어와 같이 하드웨어를 보다 잘 기술하기 위한 언어가 사용된다. 이 두가지 모델이 같이 시뮬레이션되기 위해서는 두 모델에 대한 적절한 통신수단이 필요하게 된다.
이 논문에서는 이러한 문제를 해결하기 위하여 의미론에 기반한 형식론인 DEVS(Discrete Event System Specification)를 기반으로 하는 HMIF(Hardware Module Interchange Format)를 제안하였다. 이 HMIF는 하드웨어를 표현하기 위한 중간단계 모듈기술 형식이다. 즉 하드웨어를 기술할 수 있는 언어로부터 HMIF로의 변환기를 구성함으로써 사용하는 언어가 다른 데에서 오는 문제점을 해결할 수 있다. HMIF의 효용성을 증명하기 위하여 co-simulation환경을 구축하여 실험하였다. Verilog HDL로 기술된 하드웨어 모델과 C++로 기술된 소프트웨어 모델이 혼재되어 있는 시스템에서, 우리가 제안한 HMIF를 통한 translator를 이용하여 하드웨어 모델을 C++로 변환한 후 소프트웨어모델과 통합시뮬레이션을 수행하였다.