Translate

2021년 8월 20일 금요일

2장. 고위 합성 맛보기(High-Level Synthesis Introduction)

2장. 고위 합성 맛보기(High-Level Synthesis Introduction)

자일링스의 비바도 HLS 툴의 사용법을 간략하게 살펴본다. GUI 와 Tcl 환경에서 HLS 가 어떻게 이뤄지는지 배운다. 실습할 내용은 다음과 같다.

실습 1. HLS의 설계 절차(design flow) 익히기
프로젝트를 생성하고 다음과 같은 HLS의 설계 절차(design flow)를 수행해본다.
    - C 코드의 검증(Validate the C code)
    - 합성 수행(Create and synthesize a solution)
    - 생성된 RTL 코드의 검증 및 재사용 IP 화(Verify the RTL and package the IP.

실습 2. Tcl 활용법

실습 3. HLS 설계 최적화
지시자(directives)를 적용하여 설계물 최적화 시키는 방법을 배운다. 한 C 코드에 다양한 지시자를 주어 합성하면 하드웨어의 크기와 소요 클럭 수가 상이한 여러 종류의 RTL 결과를 얻을 수 있다는 것을 보게 될 것이다.

실습에 사용될 C 코드
C로 작성된 간단한 FIR 필터다.
    - 함수로 기술된 fir()은 세개의 인수를 갖는다.
    - 포인터로 정의된 y 인수는 출력에 해당한다.
    - 필터 계수 C[N]은 외부의 메모리로 부터 제공된다.
    - 입력 x 가 유효할 때마다 fir() 함수가 호출된다.
    - 필터 계산이 수행되는 for-반복문은 병렬성 하드웨어로 변환될 것이다.
    - 함수가 되돌려 지더라도 그 값을 유지해야 하는 shift_reg는 정적 선언되었다.
    - 하드웨어 구조 변경이 달라질 수 있는 부분에 라벨을 붙여두면 디버깅과 분석에 유리하다.
    - 곱셈과 덧셈이 반복되는 연산의 결과를 담을 출력 y의 비트폭에 유의한다.
    - 재사용성을 높이기 위해 임의의 자료형과 필터 탭의 수를 임의로 선택할 수 있게 했다. 이들은 헤더파일에 정의 되었다.

입출력 데이터와 누산기(accumulator)의 자료형은 모두 정수형(int)로 형 정의 되어 있다. 적용될 응용의 필요에 따라 형변환을 수월케 할 수 있다. 이는 설계 재사용성(re-usability)을 높인다.

합성의 목표
    - 최적의 계산성능(highest throughput)을 갖는 하드웨어를 생성 한다.

입출력 방식
    - 입력 데이터는 유효신호 rdy 와 함께 제공된다.
    - 출력 데이타는 유효신호 valid 로 표시한다.

외부 메모리 사용
    - FIR 필터의 계수들은 외부의 단일 포트 RAM에 저장 되었다.

---------------------------------------------------------------------------------
고위 합성 튜토리얼(High-Level Synthesis Tutorial)

댓글 없음:

댓글 쓰기