With system designs now well over one million gates, the verification process using HDL has become the bottleneck on the design progress. As a result, the needs for behavioral emulation to verify the functionality of a design at the early stage on the design flow have increased. So, we have developed a behavioral emulator, in-System Algorithm Verification Engine (iSAVE), which makes designers be able to emulate a chip model described in high-level languages such as C, C++ and SystemC instead of HDL. In the thesis, we propose an implementation of iAnalyzer, which is hardware and software co-monitoring system in iSAVE.
iAnalyzer system consists of Pin Signal Acquisition (PSA) for sampling hardware pin signals and Software Variable Acquisition (SVA) for acquiring software variables in C-algorithm. iAnalyzer provides high sampling rate to monitor hardware pin signals, sufficient tracing depth to store the sampled data for a long period, and flexible triggering functions to provide various triggering conditions. iAnalyzer system also supplies a synchronization mechanism between PSA and SVA.
Finally, we experimented on iAnalyzer with the emulation of MPEG2 decoding algorithm and image processing algorithms.
시스템 디자인이 점점 복잡해짐에 따라 디자인을 검증하는 방법으로 널리 사용되던 HDL을 사용한 시뮬레이션 방법은 전체 디자인 단계에서 많은 시간을 소요하게 된다. 이를 해결하기 위해서 우리는 상위 단계에서 실제 목표 시스템과 연결하여 에뮬레이션을 해 줄 수 있는in-System Algorithm Verification Engine (iSAVE)이라는 행위 모델 에뮬레이터를 개발하였다. iSAVE는 크게 두 부분으로 나뉘는데 한 부분은 Processing Engine(PE)로 불리며 알고리즘을 에뮬레이션 해주는 부분이고 나머지 부분은 Pin Signal Generator (PSG)라고 불리며 목표 시스템과 연결하기 위해 하드웨어 신호를 만들어 주는 부분이다. 본 논문에서는 iSAVE내에서 에뮬레이션되는 알고리즘과 목표시스템의 연결하는 하드웨어를 동시에 모니터링할 수 있는 iAnalyzer라고 불리는 모니터링 시스템을 제안하고 구현하였다.
iAnalyzer는 두 부분으로 나뉘어져 있다. 한 부분은 Pin Signal Acquisition(PSA)라고 불리며 목표 시스템과 PSG 사이의 핀 신호를 모니터링하는 역할을 수행한다. 다른 부분은 Software Variable Acquisition(SVA)이라 불리며 PE에서 수행되는 알고리즘내의 변수들을 모니터링하는 역할을 수행한다. PSA와 SVA는 동시에 실행되어 서로 독립적으로 동작하지만 어느쪽에서든지 트리거 이벤트가 발생하면 상대편에게 그 결과를 알려주게 된다. 소프트웨어 변수와 하드웨어 신호 사이에는 서로 다른 시간 정보를 가지고 저장되기 때문에 동기를 맞춰주는 작업이 필요한데 이는 PCI 클럭을 사용하고 같은 리셋 신호를 사용하는 두 개의 카운터를 이용하여 둘의 동기를 맞춰준다. 본 논문에서는 이러한 모니터링 환경을 제공하고 구현하였으며 이미지 프로세싱 알고리즘과 MPEG2 디코딩 알고리즘을 에뮬레이션하는데 적용하여 모니터링 시스템이 성공적으로 동작하는 것을 검증하였다.