일반 공업대학생이 Ultra96 V1을 사용해 PYNQ Overlay Tutorial을 해보았다

※M2입니다. (PYNQ는) 초보자입니다.
※이 손의 기사는 산정 있고 지금 경감도 있습니다만, 매회 하는 방법을 잊기 때문에, 메모용으로서 남깁니다.
※PYNQ 자체의 해설 기사가 아닙니다. 구현 내용 자체는 ↓의 "Developing Single IP"와 같습니다.
PYNQ Overlay Tutorial: htps : // pynq. Red d. cs. 이오 / 엔 / v2. HTML
※PYNQ의 사용법이라기보다, Vivado의 사용법의 기사가 되어 버렸습니다.
※공업 대학생입니다. 문장력에 기대를 해서는 안됩니다.

소개



다음 조건을 만족하는 상태로 시작한다고 가정합니다.
  • Ultra96 V1에서 PYNQ jupyter-notebook을 시작할 수 있습니다.
  • Vivado HLS, Vivado를 설치하고 사용할 수 있습니다.

  • 이 기사에서 Vivado는 2018.3 버전을 사용했습니다.

    최종 목표는 PYNQ Overlay Tutorial의 add 함수를 Ultra96 V1에서 움직일 수있게하는 것입니다.

    Vivado HLS를 사용하여 IP 코어 생성



    PYNQ Overlay Tutorial에 따라 두 개의 정수를 더하는 IP 코어를 만듭니다.
    Vivado HLS를 시작하여 새 프로젝트를 만들고 Parts는 "xczu3eg-sbva484-1-e"를 지정합니다.

    새 파일을 소스에 추가하고 PYNQ Overlay Tutorial의 add 함수를 복사하십시오. 이 add 함수를 최상위 함수로 지정하고 C Synthesis로 합성합니다.

    합성이 완료되면 Export RTL에서 IP 코어를 만듭니다.

    Vivado를 사용하여 비트 스트림 생성



    Vivado를 시작하면 새 프로젝트 (RLT Project)를 만들고 Board는 Ultra96 V1을 지정합니다.

    IP 코어를 프로젝트에 추가



    이전 단계에서 만든 IP 코어를이 프로젝트에 추가 할 수 있도록 설정합니다.
    Tools → Settings를 선택하고 Project Settings에서 IP → Repository를 선택하십시오. "+"버튼을 눌러 나온 디렉토리 선택 화면 중에서 방금 작성한 Vivado HLS 프로젝트 중에서 "solution1/impl/ip"를 선택합니다.

    잘하면 다음과 같이 IP 코어가 추가됩니다.


    Block Design 만들기



    IP INTEGRAGER의 Create Block Design을 선택하십시오.
    Diagram에서 add IP ( "+"버튼)를 선택하고 방금 추가 한 IP 코어를 지정합니다.


    마찬가지로 Zynq UltraScale + MPSoC도 추가합니다.


    위의 작업이 완료되면 Run Block Automation → Run Connection Automation을 선택하고 배선을 수행합니다.


    배선이 완료되면 저장하고 Block Design을 닫습니다.

    Bitstream 생성



    Sources → Design Sources에서 방금 작성한 블록 디자인을 마우스 오른쪽 버튼으로 클릭하고 Create HDL Wrapper를 선택합니다.


    Wrapper가 완료되면 Generate Bitstream을 선택하여 완료합니다.

    Ultra96에서 Overlay 이동


    <Vivado プロジェクト>.src/sources_1/bd/design1/hw_handoff/design_1/design_1.hwh<Vivado プロジェクト>.src/sources_1/bd/design1/hw_handoff/design_1/design_1_bd.tcl<Vivado プロジェクト>.runs/impl_1/design_1_wrapper.bit세 개의 파일을 함께 Ultra96의 동일한 디렉토리에 복사합니다.
    이 세 파일은 모두이를 위해 동일한 이름 (여기서는 design_1. *)이어야합니다.

    그런 다음 PYNQ Overlay Tutorial을 따라 overlay를 이동합니다.
    from pynq import Overlay
    
    overlay = Overlay('/home/xilinx/design_1.bit')
    add_ip = overlay.add_0
    
    add_ip.write(0x10, 4)
    add_ip.write(0x18, 5)
    add_ip.read(0x20)
    

    움직였습니다.



    감상



    Tutorial은 행간이 너무 넓어 살아 돌아오는 것이 힘들군요.

    좋은 웹페이지 즐겨찾기