Design and Implementation of Co-Verification Environments based-on SystemVerilog & SystemC

SystemVerilog와 SystemC 기반의 통합검증환경 설계 및 구현

  • 유명근 (충북대학교 대학원 컴퓨터공학과) ;
  • 송기용 (충북대학교 전자정보대학)
  • Published : 2009.10.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 this paper, verification environments based-on SystemVerilog and SystemC, one is native-code co-verification environment which makes prompt functional verification possible and another is SystemVerilog layered testbench which makes clock-level verification possible, are implemented. In native-code co-verification, HW and SW parts of SoC are respectively designed with SystemVerilog and SystemC after HW/SW partitioning using SystemC, then the functional interaction between HW and SW parts is carried out as one simulation process. SystemVerilog layered testbench is a verification environment including corner case test of DUT through the randomly generated test-vector. We adopt SystemC to design a component of verification environment which has multiple inheritance, and we combine SystemC design unit with the SystemVerilog layered testbench using SystemVerilog DPI and ModelSim macro. As multiple inheritance is useful for creating class types that combine the properties of two or more class types, the design of verification environment adopting SystemC in this paper can increase the code reusability.

시스템수준 설계방법론에서 널리 사용하고 있는 설계흐름도는 시스템명세, 시스템수준의 HW/SW 분할, HW/SW 통합설계, 가상 또는 물리적 프로토타입을 이용한 통합검증, 시스템통합으로 구성된다. 본 논문에서는 SystemVerilog와 SystemC를 기반으로 하여 신속한 기능검증이 가능한 native-code 통합검증환경과 클럭수준 검증까지 가능한 계층화 통합검증환경을 각각 구현하였다. Native-code 통합검증환경은 시스템수준 설계언어인 SystemC를 이용하여 HW/SW 분할단계를 수행한 후, SoC 설계의 HW부분과 SW부분을 각각 SystemVerilog와 SystemC로 모델링하여 상호작용을 하나의 시뮬레이션 프로세스로 검증한다. 계층화된 SystemVerilog 테스트벤치는 임의의 테스트벡터를 생성하여 DUT의 모서리 시험을 포함하는 검증환경으로 본 논문에서는 SystemC를 도입하여 다중 상속을 가지는 통합검증환경의 구성요소를 먼저 설계한 후, SystemVerilog DPI와 ModelSim 매크로를 이용하여 SystemVerilog 테스트벤치와 결합된 통합검증환경을 설계한다. 다중 상속은 여러 기초클래스를 결합한 새로운 클래스를 정의하여 코드의 재사용성을 높이는 장점을 가지므로, 본 논문의 SystemC를 도입한 통합검증환경 설계는 검증된 기존의 코드를 재사용할 수 있는 이점을 가진다.

Keywords

References

  1. Jason R. Andrews, Co-Verification of Hardware and Software for ARM SoC Design, pp.119-129. Elsevier Inc., 2005.
  2. Ando Ki, SoC Design and Verification: Methodologies and Environments, pp.2-8, Hongreung Science, 2008.
  3. Yongjoo Kim, Kyuseok Kim, Youngsoo Shin, Taekyoon Ahn, Wonyong Sung, Kiyoung Choi, Soonhoi Ha, "An integrated hardware-software cosimulation environment for heterogeneous systems prototyping," ASP-DAC, pp.101-106, 1995.
  4. S. Chikada, S. Honda, H. Tomiyama, H. Takada, "Cosimulation of ITRON-based embedded software with SystemC," HLDVT , pp.71-76, 2005.
  5. David C. Black, Jack Donovan, SystemC:From the Ground Up, pp.12-23, Eklectic Ally, Inc., 2004.
  6. Thorsten Grotker, Stan Liao, Grant Martin, Stuart Swan, System Design with SystemC, pp.51-57, Kluwer Academic Publishers, 2002.
  7. 유명근, 송기용, "C-to-SystemC 합성기의 설계 및 구현," 신호처리.시스템 학회 논문지, 제10권, 2호, pp.141-145, 2009.
  8. Stuart Sutherland, Simon Davidmann and Peter Flake, SystemVerilog for Design (2nd Edition): A Guide to Using SystemVerilog for Hardware Design and Modeling, pp.1-7, Springer, 2006.
  9. Chris Spear, SystemVerilog for Verification (2nd Edition): A Guide to Learning the Testbench Language Features, pp.1-24, pp.381-419, Springer, 2008.
  10. SystemVerilog 3.1a Language Reference Manual-Accellera's Extensions to Verilog, pp.1-3, pp.347-358, Accellera, Napa, California, 2004.
  11. Stuart Sutherland, "SystemVerilog, ModelSim, and You," Mentor User2User, pp.1 -8, 2004.
  12. Stuart Sutherland, "Integrating SystemC Models with Verilog and SystemVerilog Models Using the SystemVerilog Direct Programming Interface," SNUG Boston, pp.1-17, 2004.
  13. Stuart Sutherland, The Verilog PLI Handbook : A Tutorial and Reference Manual on the Verilog Programming Language Interface, pp.27-54, Kluwer Academic Publishers, 2002.
  14. SystemC Language Reference Manual, http://www.systemc.org
  15. ModelSim SE User's Manual, http://www.mentor.com