Translate

2021년 8월 23일 월요일

2장. 실습1/단계 1: HLS 프로젝트 생성 (Create HLS Project)

2장. 실습1/단계 1: HLS 프로젝트 생성 (Create HLS Project)

비바도 디자인 스위트(Vivado Design Suite 2021.1)에서 Vitis HLS 2021.1을 실행 한다.

1. 시작 화면에서 'Create Project' 선택. (기존의 프로젝트를 선택 할 수 있음)

2. 새 프로젝트 대화창에서,

    (1) '작업할 폴더 위치'를 지정: '작업할 폴더 위치'로는 실습용 압축 파일을 풀어 놓은 폴더를 지정하자.

    (2) '프로젝트명'을 입력: 폴더 'Introduction'에 C 디자인 파일과 테스트 벤치 파일들이 있다. '프로젝트 명'으로 'fir_prj'로 했다.

    (3) '다음'

3. C 설계 파일 'fir.c' 을 추가한다. (테스트벤치용 C 파일은 포함시키지 말것)

4. 디자인이 계층화 되어 있을 경우 가장 상위 모듈(Top Function)을 지정해 주어야 한다.

    (1) 이번 실습에서는 디자인 파일이 한개, 함수도 1개이더라도 상위 모듈을 지정해 준다.

    (2) 'Browse' 버튼을 누르면 디자인 파일에 포함한 함수 목록이 나타날 것이다.

    (3) 가장 상위 모듈이 될 함수 'fir'을 선택 한다.

    (4) '다음'

5. 테스트벤치용 C 파일 추가

6. C 에서 하드웨어로 합성하기 위한 물리적 조건(physical constraints)을 준다.

    - 클럭 주기(Period): RTL은 레지스터와 레지스터 사이의 전송이다. 전송은 플립-플롭의 클럭 주기내에 이뤄진다.
    - 불안정성(Uncertainty): 
시작 플립-플롭의 출력단에서 시작한 신호가 조합회로들을 통과하여 다음 플립-플롭의 입력단 까지 동일한 시간에 도착한다면 매우 이상적(Ideal) 일 것이다. 하지만 실제(Actual)는 전기 신호가 각종 게이트 들의 조합으로 구성된 회로를 통과 할 때 지연이 발생한다. 다음 플립-플롭의 입력에 도착하는 신호가 모두 안정화 될 때 비로서 전송에 유효한 신호가 된다. 불안정성(uncertainty)은 합성기가 가질 수 있는 지연시간 조건의 마진이다. 합성기로 하여금 지연 경로 사이에 허용할 수 있는 조합회로의 최대 지연 경로(maximum delay path)를 제한 하는 것과 같다. 불확정 값을 주지 않은 경우 클럭 주기의 12.5%가 기본 값으로 주어진다.

7. 설계가 구현될 하드웨어를 선택한다. ASIC의 경우 구현을 목표로 하는 반도체 공장의 공정 기술을 선택하는 것과 같다. 보통 테크놀로지(technology)라고 하는데 해당 공정에서 제공하는 라이브러리와 소자의 지연등 물리적 특성이 제시된다. 우리는 자일링스사의 FPGA에서 고르기로 한다.

8. GUI로 구현된 HLS 설계환경을 보여준다.

'디자인 탐색(Design Explore)' 창은 여느 소프트웨어 개발 도구와 같다. 설계에 관여된 모든 파일들의 목록을 볼 수 있다. 하드웨어 합성이 필요한 제한조건들(constraints)도 여기에 기술되어 있다. 설계가 구현될 FPGA와 합성을 위한 물리적 조건들이다. GUI는 편의성을 위한 환경일 뿐이며 실제로 컴파일과 합성은 이 Tcl 스크립트를 읽어 수행된다. 대부분 전자 설계 도구(EDA Tools)는 Tcl 스크립트를  활용한다.

'디자인 흐름(Design Flow)'창은 프로젝트 생성후 합성과 검증까지 이어질 각 단계를 보여준다.

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

댓글 없음:

댓글 쓰기