소개

임베디드 VisualApplets 을 사용하면 그래픽 기반 FPGA 개발 환경인 VisualApplets 을 통해 하드웨어 플랫폼의 FPGA에서 실행될 머신 비전 애플리케이션을 프로그래밍할 수 있습니다.

VisualApplets 를 사용하여 FPGA 전체를 프로그래밍하는 것이 아니라, IP 코어(Intellectual Property Core)만 프로그래밍합니다. 이 IP 코어는 주변 FPGA 설계에 주변 FPGA 설계에 내장됩니다:

FPGA 기반 이미지 처리 애플리케이션의 그래픽 프로그래밍

그림 186. FPGA 상에서의 이미지 처리 애플리케이션 그래픽 프로그래밍


VisualApplets 는 그래픽 기반 환경이므로, 이미지 처리 파이프라인을 위한 로직을 IP 코어에 구현하는 데 HDL 지식이 전혀 필요하지 않습니다. 또한 VisualApplets 는 전체 구현 흐름을 관리해 줍니다. VisualApplets 를 사용하면 소프트웨어 엔지니어와 이미지 처리 전문가들이 귀사의 하드웨어에서 IP 코어를 프로그래밍할 수 있게 됩니다.

VisualApplets 를 사용하여 하드웨어의 FPGA용 애플리케이션을 프로그래밍하기 전에, IP 코어를 FPGA 설계에 통합하고, VisualApplets 에 하드웨어 플랫폼의 모든 하드웨어 관련 세부 정보를 제공하는 eVA(임베디드 VisualApplets ) 플러그인을 생성해야 합니다.

통합 워크플로

VisualApplets (VA) IP 코어를 한 번 통합해야 합니다. VA IP 코어: FPGA 내에 있는 IP 코어로, VisualApplets 을 통해 이미지 처리 기능을 프로그래밍할 수 있습니다. 통합 후에는 원하는 만큼 자주, 원하는 만큼 많은 머신 비전 애플리케이션을 사용하여 VA IP 코어를 재프로그래밍할 수 있습니다. .

하드웨어 및 소프트웨어 통합을 위한 핵심 단계들은 도구 eVA Designer ( VisualApplets Embedder 패키지의 일부로 제공됨)에 의해 자동으로 수행됩니다. 이는 작업 흐름을 가속화하며, 구조적으로 올바른 구현을 가능하게 합니다.

VisualApplets 를 하드웨어 설계에 통합하는 방법은 다음과 같이 몇 단계만 거치면 됩니다:

  • VisualApplets 를 설치합니다.

  • VHDL에서 eVA Designer VHDL 기반의 IP 코어 블랙박스를 생성할 수 있습니다. 직관적인 GUI를 통해 향후 VA IP 코어의 세부 사항을 지정할 수 있습니다:

    • 사용자는 하드웨어에 관한 정보(하드웨어 이름, FPGA 유형, 공급업체 이름 등)를 입력합니다.

    • VA IP 코어에 포함할 포트(이미지 입력 포트, 이미지 출력 포트, 레지스터 인터페이스, 메모리 인터페이스, GPI 및 GPO)를 지정합니다.

    • 사용자가 입력한 내용을 바탕으로 eVA Designer 사용자가 입력한 내용을 바탕으로 빈 VA IP 코어(VHDL 블랙박스)를 자동으로 생성합니다.

  • 생성된 IP 코어의 블랙박스 모델을 FPGA 설계(VHDL)에 통합합니다.

  • 통합된 블랙박스가 포함된 FPGA 설계의 넷리스트를 생성합니다.

  • 제약 조건 파일을 생성합니다.

  • 넷리스트와 제약 조건 파일을 제공하면 eVA Designer 이 도구가 하드웨어 플랫폼별 eVA 플러그인 설치 프로그램VisualApplets 용 설치 프로그램을 생성하도록 하십시오.

  • 다음 명령을 실행합니다. eVA 플러그인 설치 프로그램을를 실행합니다. 설치가 완료되면, 하드웨어 플랫폼별 eVA 플러그인VisualApplets 에서 사용할 수 있으며, 이를 통해 FPGA상의 VA IP 코어용 설계를 개발할 수 있습니다.

이 단계들을 완료한 후에는 FPGA에서 VA IP 코어를 프로그래밍하기 위해 VisualApplets 그래픽 개발 환경을 사용할 수 있습니다. 이 단계들에 대한 자세한 단계별 안내는 ‘IP 코어 속성 정의’에서 확인할 수 있습니다 .

새로운 하드웨어 플랫폼을 위한 일회성 구현 프로세스:

새로운 하드웨어 플랫폼을 위한 일회성 통합 프로세스

그림 187. 새로운 하드웨어 플랫폼을 위한 일회성 통합 프로세스


비트스트림 생성을 위한 구성 요소로서의 FPGA 설계 및 IP 코어 콘텐츠

그림 188. 비트스트림 생성을 위한 구성 요소로서의 FPGA 설계 및 IP 코어 내용


VisualApplets 살펴보기

FPGA 설계에 VA IP 코어를 구현함으로써, 소프트웨어 엔지니어와 영상 처리 전문가들이 해당 하드웨어에서 VA IP 코어를 프로그래밍할 수 있게 됩니다.

VisualApplets FPGA 기반 이미지 처리를 위한 이미지 처리 프로그램(애플릿)을 설계하는 데 사용됩니다. VisualApplets 를 사용하면 애플릿을 쉽게 설계할 수 있습니다. 이 작업은 그래픽 개발 환경에서 이루어집니다. 하드웨어 기술 언어에 대한 지식이 전혀 필요하지 않습니다. VisualApplets 에서는 HDL을 전혀 사용하지 않고 플로우차트 형태로 이미지 처리 솔루션을 개발합니다. HDL.

VisualApplets 에서 디자인은 다음과 같이 표시됩니다:

VisualApplets 이미지 처리 설계가 포함된 프로그램 창

그림 189. 이미지 처리 설계가 포함된 ‘ VisualApplets ’ 프로그램 창


위 그림과 같은 설계는 나중에 (비트스트림으로 합성된 후) 하드웨어상의 VA IP 코어에 채워지게 됩니다.

VisualApplets 200개 이상의 연산자를 제공합니다. 각 연산자는 이미지 처리 단계에서 사용할 수 있는 특정 기능을 제공합니다.

일부 연산자는 주변 FPGA 환경과 직접 연결되어야 합니다. 이러한 연산자는 다음과 같습니다:

  1. 카메라/센서로부터 이미지를 수신하는 운영자

  2. 처리 파이프라인의 끝단에서 처리된 이미지를 출력하는 연산자(예: 처리된 이미지를 DMA로 출력하는 연산자)

  3. RAM 리소스를 사용하는 버퍼링 연산자

  4. 신호 입출력을 허용하는 연산자(GPIO)

인터페이스가 필요한 연산자를 사용하는 간단한 이미지 획득 애플릿의 예시

그림 190. 인터페이스가 필요한 연산자를 포함하는 간단한 이미지 획득 애플릿의 예


이러한 연산기들과 주변 FPGA 설계 간의 데이터 통신을 위해, VA IP 코어는 이에 상응하는 인터페이스를 제공해야 합니다.

IP 코어 인터페이스 개념

VA IP 코어의 인터페이스 포트는 매우 유연하게 구성할 수 있습니다. VA IP 코어의 I/O는 IP 코어와 사용자의 (주변) FPGA 설계 간에 유연하고 사용하기 쉬운 여러 인터페이스로 구성됩니다. 외부 하드웨어 리소스(센서 인터페이스, 메모리 컨트롤러 등)는 아래 그림과 같이 FPGA 설계 내의 글루 로직을 통해 연결됩니다:

VA IP 코어 인터페이스의 개념

그림 191. VA IP 코어 인터페이스의 개념


선입선출(FIFO) 버퍼를 사용하는 인터페이스는 녹색으로 표시됩니다:

인터페이스에는 다음과 같은 유형이 있습니다:

  • 클럭: 이 IP 코어는 두 개의 위상 동기식 설계 클럭으로 구동되며, 두 번째 클럭의 주파수는 첫 번째 클럭의 주파수의 두 배입니다.

  • ImgIn: 이미지 데이터 입력 스트리밍용 인터페이스 이미지 데이터는 간단한 FIFO 인터페이스를 통해 IP 코어로 입력되며, 여기서 라인 끝 및 프레임 끝을 나타내는 추가 플래그가 프레임 경계를 표시합니다. ImgIn 포트의 수와 이러한 포트를 통해 전송되는 데이터의 레이아웃은 구성할 수 있습니다.

  • ImgOut: 이미지 데이터 출력 스트리밍을 위한 인터페이스 이미지 데이터는 간단한 FIFO 인터페이스를 통해 IP 코어를 떠나며, 이 때 줄 끝(end-of-line) 및 프레임 끝(end-of-frame)을 나타내는 추가 플래그가 프레임 경계를 표시합니다. ImgOut 포트의 수와 이 포트를 통해 전송되는 데이터의 레이아웃은 구성할 수 있습니다.

  • MemWr/Rd: 외부 메모리 연결을 위한 인터페이스 IP 코어는 추상화된 메모리 인터페이스를 통해 외부 메모리에 연결될 수 있으며, 이 경우 단일 인터페이스 메커니즘을 통해 어떤 종류의 메모리든 연결할 수 있습니다. 외부 글루 로직은 IP 코어의 메모리 인터페이스 프로토콜을 사용 중인 메모리 컨트롤러에 맞게 조정해야 합니다. 사용 가능한 메모리 인터페이스 포트의 수는 구성할 수 있습니다. 각 포트에 대해 인터페이스 속성(예: 주소 및 데이터 폭)을 개별적으로 정의할 수 있습니다.

  • GPI, GPO : 범용 신호 I/O GPI/GPO를 통해 신호가 IP 코어로 들어오거나 나갈 수 있습니다. 이러한 신호는 트리거링 및 공정 제어에 사용될 수 있습니다. GPIO 신호의 수는 구성할 수 있습니다.

  • slave IF: 설계 파라미터에 대한 런타임 액세스를 위한 레지스터 슬레이브 인터페이스 이 슬레이브 인터페이스는 설계 클럭과 동기화된 주소, 데이터 및 제어 신호로 제어되는 간단한 레지스터 인터페이스입니다. IP 코어 내에 구현된 이미지 처리 파이프라인의 리셋(Reset) 및 활성화(Enable) 제어 또한 슬레이브 인터페이스를 통해 수행됩니다.

성능 등급

VisualApplets Embedder는 12가지 성능 등급을 지원합니다. 각 성능 등급은 최대 센서 대역폭, 이미지 처리 애플리케이션이 최대 한도까지 사용할 수 있는 FPGA 리소스, 그리고 메모리 인터페이스 정의 옵션에 따라 결정됩니다:

사용자가 성능 등급을 선택합니다. 가격 및 라이선스 절차에 대해서는 ‘라이선스 모델’ 섹션을 참조하십시오 . 특정 대상 하드웨어가 필요합니다.

XML 파일(=하드웨어 설명 파일)에 데이터를 입력하려면, “IP 코어 속성 정의” 섹션에 설명된 대로 GUI 도구 eVA Designer 를 사용해야 합니다. 각 성능 클래스마다 하나의 XML 템플릿이 제공됩니다. XML 템플릿을 사용하여 다음을 입력합니다.

  • 사용 중인 하드웨어 플랫폼의 하드웨어 사양,

  • VA IP 코어에서 필요한 인터페이스에 대한 설명,

  • VA IP 코어 내부에서 인터페이스에 연결되는 하드웨어 전용 VisualApplets 연산자.

[참고] 사용 가능한 템플릿

VisualApplets 설치 패키지에는 두 가지 예제 플랫폼 설명(XML)과 사용자 자신의 하드웨어 세부 정보를 처음부터 직접 입력할 수 있는 템플릿 하나가 포함되어 있습니다. 이러한 XML 파일은 테스트 용도로 사용됩니다용도로 제공됩니다. 이를 통해 제한된 eVA 플러그인을 생성할 수 있습니다. 이러한 플러그인으로 생성된 애플릿은 런타임이 제한됩니다. XML 의 예제 플랫폼 설명서와 템플릿은 런타임 설치 폴더 내의 다음 위치에서 찾을 수 있습니다:

  • VisualApplets_<version_number>\Examples\EmbeddedVisualApplets\DemoTemplate

  • VisualApplets_<version_number>\Examples\EmbeddedVisualApplets\SVDK

  • VisualApplets_<version_number>\Examples\EmbeddedVisualApplets\ZC702

각 성능 등급에 맞는, 공급업체별 맞춤형 XML 템플릿은 Basler에서 직접 제공해 드립니다.

Requirements

VA IP 코어를 FPGA 설계에 통합하고, 하드웨어 플랫폼의 모든 하드웨어 관련 세부 정보를 VisualApplets 에 제공하는 eVA 플러그인을 생성하려면 다음 구성 요소가 필요합니다:

하드웨어 및 운영 체제:

  • Microsoft Windows 7, Windows 8 또는 Windows 10(64비트) 운영 체제가 설치된 PC

  • PC 메모리: 최소 4 GByte, 권장 사항: 8 GByte 이상

  • 최소 여유 하드 디스크 공간: 500 MByte

  • FPGA가 구현된 대상 하드웨어 플랫폼. VisualApplets 3.2 출시 시점 기준으로, Xilinx Inc.의 시리즈 6부터 시작하는 FPGA가 지원됩니다( Zynq7000, 시리즈 7 FPGA, Ultrascale, Ultrascale+ 및 Zynq Ultrascale+ 포함).

소프트웨어:

  • VisualApplets 3.0 (또는 그 이상)

  • VisualApplets 라이선스 3개

  • VisualApplets 3. 임베더 라이선스

  • XML 하드웨어 설명서 작성용 템플릿 (Basler 제공)

이미지 처리 애플리케이션을 생성하기 위한 타사 소프트웨어:

  • SDK 예제를 컴파일하려면 C++ 컴파일러가 필요합니다.

  • 설계에서 실제 비트스트림을 생성하려면 FPGA 제조업체에서 제공하는 툴 스위트가 필요합니다. 툴 흐름은 전적으로 VisualApplets 에 의해 제어됩니다. 이 툴을 설치하기만 하면 됩니다. 구현한 FPGA 유형에 따라 ( VisualApplets 3.0 출시 시점 기준) 다음 중 하나가 필요합니다.

    1. Xilinx Vivado(무료 WebPACK 에디션 또는 Design Suite), 또는

    2. Xilinx ISE (무료 WebPACK 에디션 또는 Design Suite).

    자세한 내용은 하드웨어에 구현한 FPGA 유형의 문서를 참조하십시오.