System-level Hardware Function Verification System

시스템수준의 하드웨어 기능 검증 시스템

  • 유명근 (충북대학교 컴퓨터공학과) ;
  • 오영진 (충북대학교 반도체공학과) ;
  • 송기용 (충북대학교 전자정보대학)
  • Received : 2009.12.14
  • Accepted : 2010.04.29
  • Published : 2010.04.30

Abstract

The flow of a universal system-level design methodology consists of system specification, system-level hardware/software partitioning, co-design, co-verification using virtual or physical prototype, and system integration. In the developing process of a hardware component in system, the design phase has been regarded as a phase consuming lots of time and cost. However, the verification phase in which functionality of the designed component is verified has recently been considered as a much important phase. In this paper, the implementation of a verification environment which is based on SystemC infrastructure and verifies the functionality of a hardware component is described. The proposed verification system uses SystemC user-defined channel as communication interface between variables of SystemC module and registers of Verilog module. The functional verification of an UART is performed on the proposed verification system. SystemC provides class library for hardware modeling and has an advantage of being able to design a system consisting hardware and software in higher abstraction level than register transfer level. Source codes of SystemC modules are reusable with a minor adaptation on verifying functionality of another hardware component.

시스템수준 설계방법론에서 널리 사용하고 있는 설계흐름도는 시스템명세, 시스템수준의 하드웨어/소프트웨어 분할, 하드웨어/소프트웨어 통합설계, 가상 또는 물리적 프로토타입을 이용한 통합검증, 시스템통합으로 구성된다. 시스템의 하드웨어 구성요소를 개발하는 과정에서 이전까지는 디자인단계가 많은 시간 및 노력을 요구하는 단계였지만, 현재에는 설계한 디자인의 기능적 검증단계가 중요 요소로 간주되고 있다. 본 논문에서는 시스템수준 설계언어인 SystemC 기반의 테스트벤치 구조를 이용하여 Verilog HDL로 설계된 하드웨어 구성요소의 올바른 동작여부를 판별하는 기능검증시스템을 설계하였다. 설계된 기능검증시스템에서 SystemC 모듈의 멤버 변수와 Verilog 모듈의 와이어 및 레지스터 변수간의 데이터 전달은 본 논문에서 정의되는 SystemC 사용자 정의 통신채널을 통하여 이루어진다. 제안된 기능검증시스템을 UART에 적용하여 올바른 동작여부를 판별하였다. 본 논문의 기능검증시스템 설계에 사용된 SystemC는 C++기반의 하드웨어 모델링용 클래스 라이브러리를 제공하므로 RT 수준보다 높은 추상화수준에서 소프트웨어와 하드웨어 또는 이 둘을 결합한 시스템수준의 모델링을 단일 언어와 환경에서 설계할 수 있는 이점이 있다. 또한 기능검증시스템 설계에 작성된 SystemC 모듈 코드들은 부분적인 코드 수정 후 다른 하드웨어 구성요소의 기능을 검증하는데 재사용할 수 있는 이점이 있다.

Keywords

References

  1. David C. Black, Jack Donovan, System C:From the Ground Up, pp.12-23, Eklectic Ally, Inc.,2004
  2. Thorsten Grotker, Stan Liao, Grant Martin, Stuart Swan, System Design with SystemC, pp.51-57, Kluwer Academic Publishers, 2002
  3. 유명근, 송기용, "C-to-SystemC 합성기의 설계 및 구현," 신호처리.시스템학회논문지, 제10권, 2호, pp.141-145, 2009.
  4. SystemC Languate Reference Manual, http://www.systemc.org
  5. Jason R. Andrews, Co-Verification of Hardware and Software for ARM SoC Design, pp.119-129. Elsevier Inc., 2005.
  6. Ando Ki, SoC Design and Verification: Methodologies and Environments, pp.2-8, Hongreung Science, 2008.
  7. 유명근, 송기용, "SystemVerilog와 SystemC 기반의 통합검증환경 설계 및 구현", 신호처리.시스템학회논문지, 제10권, 4호, pp.274-279,2009.
  8. Stuart Sutherland, The Verilog PLI Handbook: A Tutorial and Reference Manual on the Verilog Programming Language Inferface, pp.27-54, Kluwer Academic Publishers, 2002.
  9. Mike Mintz, Rovert Ekendahl, Hardware Verification with C++:A Practitioner's Handbook, pp.67-88, Springer, 2006
  10. The Teal User's Manual, http://www.trusster.com
  11. Wikipedia, Universal Asynchronous Receiver Transmitter, http://en.wikipedia.org/wiki/UART.