Design and Implementation of a C-to-SystemC Synthesizer

C-to-SystemC 합성기의 설계 및 구현

  • 유명근 (충북대학교 대학원 컴퓨터공학과) ;
  • 송기용 (충북대학교 전자정보대학)
  • Published : 2009.04.30

Abstract

A C-to-SystemC synthesizer which processes the input behavior according to high-level synthesis, and then transforms the synthesis result into SystemC module code is implemented in this paper. In the synthesis process, the input behavioral description in C source code is scheduled using list scheduling algorithm and register allocation is performed using left-edge algorithm on the result of scheduling. In the SystemC process, the output from high-level synthesis process is transformed into SystemC module code by combining it with SystemC features such as channels and ports. The operation of the implemented C-to-SystemC synthesizer is validated through simulating the synthesis of elliptic wave filter in SystemC code. C-to-SystemC synthesizer can be used as a part of tool-chain which helps to implement SystemC design methodology covering from modeling to synthesis.

본 논문에서는 입력 동작에 대하여 상위수준 합성을 수행한 후, 합성결과를 SystemC 코드로 전환하는 C-to-SystemC 합성기를 설계 및 구현하였다. 구현된 합성기의 처리과정은 C 소스코드로 기술된 입력 동작을 list 스케줄링 알고리즘을 이용하여 스케줄링한 후, 스케줄링 결과에 left-edge 알고리즘을 이용하여 레지스터 할당을 수행한다. 레지스터 할당 정보를 이용하여 합성기는 채널 및 포트와 같은 SystemC 특성들로 표현된 SystemC 모듈의 코드를 최종적으로 생성한다. C-to-SystemC 합성기의 동작은 EWF(elliptic wave filter)의 합성결과인 SystemC 모듈의 코드를 시뮬레이션하여 검증한다. C-to-SystemC 합성기는 SystemC 설계방법론의 모델링단계부터 합성단계에 이르는 툴 체인의 한 부분으로 사용될 수 있으며, 생성된 SystemC 모듈은 C 모듈에 비해 재사용이 용이하고 다른 SystemC 모듈과 SystemC 채널을 통하여 별도의 추가처리 없이 통신할 수 있다.

Keywords

References

  1. J.Bhasker, A SystemC Primer, Star Galaxy Publishing, pp. 3-6, 2002.
  2. David C. Black, Jack Donovan, SystemC : From the Ground Up, Eklectic Ally, Inc., pp. 33-37, 2004.
  3. OSCI, SystemC version 2.0 User Guide, Synopsys Inc., 2001.
  4. Daniel D. Gajski, Nikil D. Dutt, Allen C-H Wu, Steve Y-L Lin, High-Level Synthesis Introduction to Chip and System Design, Kluwer Academic Publishers, pp. 215-217,233-236,283-285, 1991.
  5. Giovanni De Micheli, Synthesis and Optimization of Digital Circuits, McGray-Hill, pp. 63-65,1994.
  6. A. Hashimoto and J. Stevens, "Wire Routing by Optimizing Channel Assignment within Large Apertures," The 8th Design Automation Conference Workshop, pp. 155-169, 1971.
  7. F.J. Kurdahi and A.C. Parker, "REAL:A Program for Register Allocation," Proceedings of the 24th Design Automation Conference, pp. 210-215, 1987.
  8. P.G. Paulin, "High-Level Synthesis of Digital Circuits using Global Scheduling and Binding Algorithms," Ph.D. dissertation, Carlton Univ., Jan. 1988.