Skip to main content
QUICK REVIEW

[논문 리뷰] Using Vivado-HLS for Structural Design: a NoC Case Study

Zhipeng Zhao, James C. Hoe|arXiv (Cornell University)|2017. 10. 27.
Interconnection Networks and Systems참고 문헌 13인용 수 6
한 줄 요약

이 논문은 Xilinx Vivado-HLS가 레퍼런스 RTL 설계와 정확히 대체 가능한 사이클 및 비트 정밀도 네트워크온칩 (NoC) 라우터와 완전한 NoC를 효과적으로 구현할 수 있음을 보여준다. C++와 pragma를 사용하고 체계적인 프로그래밍 방법을 적용함으로써 저자들은 자원 사용량과 핵심 경로 지연에서 RTL과 유사한 성능을 달성하였으며, 기능 검증 및 구조 탐색에서 뚜렷한 생산성 향상을 경험하였다. 다만 계층적 설계 복잡도가 도입되면서 도전 과제가 발생한다.

ABSTRACT

There have been ample successful examples of applying Xilinx Vivado's "function-to-module" high-level synthesis (HLS) where the subject is algorithmic in nature. In this work, we carried out a design study to assess the effectiveness of applying Vivado-HLS in structural design. We employed Vivado-HLS to synthesize C functions corresponding to standalone network-on-chip (NoC) routers as well as complete multi-endpoint NoCs. Interestingly, we find that describing a complete NoC comprising router submodules faces fundamental difficulties not present in describing the routers as standalone modules. Ultimately, we succeeded in using Vivado-HLS to produce router and NoC modules that are exact cycle- and bit-accurate replacements of our reference RTL-based router and NoC modules. Furthermore, the routers and NoCs resulting from HLS and RTL are comparable in resource utilization and critical path delay. Our experience subjectively suggests that HLS is able to simplify the design effort even though much of the structural details had to be provided in the HLS description through a combination of coding discipline and explicit pragmas. The C++ source code can be found at https://github.com/zhipengzhaocmu/HLS_NoC.

연구 동기 및 목표

  • Vivado-HLS가 동기 레지스터와 조합 논리가 많은 설계에 대해 구조적 하드웨어 설계에 효과적인가를 평가하기 위해.
  • C/C++와 HLS를 사용하여 사이클 및 비트 수준 정밀도를 갖춘 복잡한 파라미터화된 RTL 설계, 예를 들어 NoC 라우터를 재현할 수 있는가를 확인하기 위해.
  • 기능 정확성과 구조 최적화를 분리하는 데서 전통적인 RTL 플로우에 비해 HLS가 가지는 생산성 이점을 평가하기 위해.
  • HLS를 사용하여 개별 라우터 모듈에서 계층적 NoC 설계로 확장할 때 발생하는 제약 조건과 과제를 규명하기 위해.
  • LUT, 플립플롭, 핵심 경로 지연 측면에서 HLS 생성된 NoC와 RTL 생성된 NoC의 품질 결과(QoR)를 비교하기 위해.

제안 방법

  • 저자들은 Xilinx Virtex-7 FPGA 장치를 대상으로 C++를 사용하여 NoC 라우터와 완전한 NoC를 구현하였다.
  • 데이터 플로우, 파ip라이닝, 자원 공유 제어를 위해 Vivado-HLS pragma를 적용하여 구조적 결정성을 확보하였다.
  • 라우터 서브모듈을 C++ 객체로 표현함으로써 모듈화된 계층적 설계를 가능하게 하기 위해 프로그래밍 철학을 도입하였다.
  • HLS 플로우에서 'evaluate' 옵션을 사용하여 단일 실행에서 합성과 구현을 동시에 수행하였다.
  • 동일한 전략을 사용하여 CONNECT NoC 생성기로 등가 RTL 설계를 생성하고, 표준 Vivado RTL 플로우로 합성하였다.
  • 다양한 데이터 폭과 네트워크 토폴로지 설정에서 성능 및 자원 사용량을 비교하였다.

실험 결과

연구 질문

  • RQ1Vivado-HLS를 사용하여 동기 레지스터와 조합 논리가 포함된 구조적 설계를 사이클 및 비트 수준 정밀도로 구현할 수 있는가?
  • RQ2HLS로 생성된 NoC 라우터의 품질 결과(LUT, FF, 핵심 경로 지연)는 동등한 RTL 설계와 비교해 어떻게 되는가?
  • RQ3기능 검증 및 구조 탐색에서 C와 HLS를 사용할 경우, 구조적 설계에서 생산성 향상은 어느 정도인가?
  • RQ4HLS를 사용하여 계층적 모듈 설계를 수행할 때, 특히 여러 라우터 서브모듈을 넷리스팅할 경우 발생하는 과제는 무엇인가?
  • RQ5HLS에서 C++ 객체와 프로그래밍 철학을 사용함으로써 품질 결과(QoR)를 희생시키지 않고도 확장 가능하고 유지보수 가능한 구조적 설계를 가능하게 하는가?

주요 결과

  • HLS로 생성된 NoC 라우터는 등가 CONNECT RTL 라우터 대비 LUT는 1.33배, 플립플롭은 0.42배, 핵심 경로 지연은 0.87배로 나타났다.
  • 플립플롭 사용 감소는 HLS가 더 효율적인 상태 레지스터 인코딩과 최적화를 수행하기 때문으로 기인되었다.
  • 128비트 폭 설정에서는 가상 채널 플릿 버퍼 데이터 경로 논리의 차이로 인해 LUT 사용량이 증가했지만, 저장 용량 자체는 유사했다.
  • 링, 메시, 토러스 토폴로지와 같은 NoC 토폴로지에서 HLS NoC는 LUT 기준 최대 1.23배, 플립플롭 기준 최대 0.46배의 Place-and-Route 비율을 보였다.
  • 동일한 할당기 논리가 적용되었음에도 불구하고 HLS 라우터의 핵심 경로 지연이 종종 RTL보다 우수한 것은 합성 최적화 방식의 차이 때문일 수 있다.
  • 생산성 향상은 주로 기능 검증 및 구조 탐색에서 두드러졌으며, 이는 C의 순차적 의미 체계와 디버그 환경 덕분이었다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.