FPGA의 기본 사항 – 4부: Xilinx FPGA 시작하기
DigiKey 북미 편집자 제공
2020-04-01
편집자 주: 최적의 처리 솔루션은 종종 RISC, CISC, 그래픽 프로세서 및 FPGA의 조합, FPGA 자체 또는 패브릭의 일부로 하드 프로세서 코어를 자랑하는 FPGA에 의해 제공됩니다. 하지만 많은 설계자들이 FPGA의 기능에 익숙하지 않고 그 진화 과정과 사용 방법을 잘 모릅니다. 여러 단원으로 구성된 이 시리즈의 1부에서는 FPGA를 자세히 소개하고, 2부에서는 Lattice Semiconductor의 FPGA 제품을 중점적으로 살펴보고, 3부에서는 Microchip Technology가 계열사 Microsemi Corporation을 통해 제공하는 FPGA 장치 제품군과 설계 도구를 중심으로 살펴보았습니다. 이제 4부에서는 Xilinx의 부품 및 도구를 살펴보고, 5부에서는 Altera의 제품을 살펴보겠습니다.
1부에서 설명한 대로 현장 프로그래밍 가능 게이트 어레이(FPGA)는 사용된 독립형 또는 이기종 아키텍처의 소중한 컴퓨팅 자산이 되는 많은 특성을 갖추고 있지만, 많은 설계자가 FPGA에 익숙하지 않고 이러한 장치를 설계에 통합하는 방법을 잘 모릅니다.
이 문제를 해결하는 한 가지 방법은 주요 벤더의 FPGA 아키텍처와 관련 도구를 자세히 살펴보는 것입니다. 이 기사에서는 Xilinx의 라인업을 살펴봅니다.
상위 수준의 FPGA 옵션 개요
현재 다양한 유형의 FPGA가 출시되어 있고, 각 유형은 여러 기능이 다양한 형태로 조합되어 있습니다. FPGA의 중심에는 프로그래밍 가능 패브릭이 있습니다. 이는 프로그래밍 가능 논리 블록의 어레이로 표기되며 논리 소자(LE)라고도 합니다(그림 1a). FPGA 패브릭의 다음 단계에는 블록 RAM(BRAM)이라는 SRAM 블록과 위상 고정 루프(PLL), 클록 관리자가 포함됩니다(그림 1b). 디지털 신호 처리(DSP) 블록(DSP 슬라이스) 및 고속 직렬 변환기/직병렬 변환기(SERDES) 블록을 추가할 수도 있습니다(그림 1c).
그림 1: 가장 간단한 FPGA에는 프로그래밍 가능 패브릭과 구성 가능한 범용 IO(GPIO)만 포함되어 있고(a), 다른 아키텍처는 SRAM 블록, PLL 및 클록 관리자(b), DSP 블록 및 SERDES 인터페이스(c), 하드 프로세서 코어 및 주변 장치(d)로 이 기본 패브릭을 강화합니다. (이미지 출처: Max Maxfield)
프로그래밍 가능 패브릭에서 CAN, I2C, SPI, UART, USB와 같은 주변 장치 인터페이스 기능을 구현할 수 있지만, 대부분의 FPGA에서는 해당 기능이 실리콘에 하드 코어로 포함되어 있습니다. 마찬가지로 마이크로 프로세서를 프로그래밍 가능 패브릭에서 소프트 코어로 구현하거나 실리콘에서 하드 코어로 구현할 수 있습니다(그림 1d). 하드 프로세서 코어가 탑재된 FPGA를 SoC(시스템온칩) FPGA라고 합니다. FPGA마다 다른 시장 및 응용 분야를 대상으로 하는 다른 기능, 특징 및 용량 모음을 제공합니다.
Altera(Intel에 인수됨), Atmel(Microchip Technology에 인수됨), Efinix, Lattice Semiconductor, Microsemi(Microchip Technology에 인수됨), Xilinx 등 많은 FPGA 벤더가 있습니다.
이러한 모든 벤더는 여러 FPGA 제품군을 현장에 배치하고 있습니다. 어떤 벤더는 SoC FPGA를 제공하고, 어떤 벤더는 인공 지능(AI) 및 머신 러닝(ML) 응용 분야를 대상으로 하는 장치를 제공하고, 또 어떤 벤더는 우주와 같은 높은 방사선 환경을 대상으로 하는 방사선 내성 장치를 제공합니다. 서로 다른 다양한 제품군에 각각의 리소스를 제공하므로 작업에 가장 적합한 장치를 선택하는 것이 어려울 수 있습니다.
Xilinx FPGA, SoC, MPSoC, RFSoC, ACAP 소개
Xilinx에서 제공하는 프로그래밍 가능 장치 제품의 성능과 기능은 적정 수준부터 최고 수준까지 다양합니다. 또한 기존 FPGA부터, SoC(단일 하드 코어 프로세서가 탑재된 FPGA 프로그래밍 가능 패브릭), MPSoC(여러 하드 코어 프로세서가 탑재된 FPGA 프로그래밍 가능 패브릭), RFSoC(RF 기능을 지원하는 MPSoC), ACAP(Adaptive Compute Acceleration Platform)까지 다양합니다(그림 2).
그림 2: 시간이 지나면서 Xilinx 아키텍처 포트폴리오는 프로그래밍 가능 패브릭만 포함하는 단순 FPGA에서 하드 코어 프로세서로 프로그래밍 가능 패브릭을 강화한 SoC 장치, 여러 프로세서를 탑재한 MPSoC, RF 기능을 지원하는 RFSoC, AI와 같은 응용 분야를 대상으로 하는 최신 ACAP로 진화했습니다. (이미지 출처: Max Maxfield)
Xilinx는 포괄적인 제품 포트폴리오를 갖추고 세분화된 다양한 시장에 진출해 있으며, FPGA에 익숙하지 않은 사용자는 "전체적인 상황"을 이해하기 어려울 정도로 배포 방식이 광범위합니다.
시장의 경우 Xilinx는 데이터 센터(컴퓨팅, 네트워크, 스토리지), 통신(유선, 무선), 항공 우주 및 방위, 산업/과학/의료(ISM), 테스트/측정/에뮬레이션(TME), 자동차, 동보 통신, 소비자 시장을 포함하되 이에 국한되지 않는 다양한 시장을 포괄합니다.
배포 방법의 경우 Xilinx는 칩, 평가 기판, 개발 키트를 포함하는 하드웨어 적응형 장치, 시스템 온 모듈(SoM)과 PCIe 가속기 카드를 포함하는 배포 가능한 종단 시스템, Amazon Web Services(AWS), Alibaba.com, Nimbix.net과 같은 주요 클라우드 제공업체를 통해 Xilinx 기술을 평가 및 활용하는 FAAS(FPGA as a Service)를 포괄합니다.
Xilinx FPGA 제품을 분류하는 한 가지 방법은 프로세스 기술 노드를 기준으로 분류하는 것입니다(그림 3).
그림 3: Xilinx FPGA 제품은 광범위한 응용 분야의 요구 사항을 충족하는 포괄적인 다중 노드 포트폴리오를 제공합니다. (이미지 출처: Max Maxfield)
예를 들어 대상 응용 분야에 따라 설계자는 이전 기술 노드에서 구현되는 작은 실장 면적의 저비용 FPGA를 선택하거나, 최신 네트워킹 응용 분야의 경우 최신 기술 노드에서 구현되는 고용량, 고대역폭, 고성능 장치를 선택할 수 있습니다.
하나 이상의 하드 프로세서 코어와 GPU, 코덱, 소프트 결정, 순방향 오류 정정(SD-FEC) 코어와 같은 다른 강화된 기능이 필요한 설계의 경우 Xilinx는 Zynq라는 이름으로 장치 포트폴리오를 제공합니다. Zynq SoC, MPSoC 및 RFSoC 제품은 그림 4에 요약되어 있습니다. 이 솔루션 제품군은 설계자에게 전력, 성능, 비용, 출시 시간에 맞게 최적화를 촉진할 수 있는 광범위한 기능을 제공합니다.
그림 4: Xilinx SoC, MPSoC 및 RFSoC 제품은 프로세서의 소프트웨어 프로그래밍 가능성을 FPGA의 하드웨어 프로그래밍 가능성과 통합하여 설계자에게 시스템 성능, 유연성 및 확장성을 제공합니다. (이미지 출처: Max Maxfield)
최신 Xilinx 제품에는 7nm 프로세스 기술 노드에서 구현되는 Versal ACAP(Adaptive Compute Acceleration Platform) 장치가 있습니다. ACAP는 진화하는 다양한 알고리즘에 맞게 조정할 수 있는 고집적 다중 코어 컴퓨팅 플랫폼이며, 하드웨어 및 소프트웨어 레벨에서 광범위한 응용 분야와 워크로드에 맞게 동적으로 맞춤 설정할 수 있습니다. 프로그래밍 가능 네트워크 온 칩(NoC)을 기반으로 설계되는 ACAP는 하드웨어 설계자와 소프트웨어 개발자가 모두 손쉽게 프로그래밍할 수 있습니다.
Versal 장치의 새로운 기능에는 지능형 엔진(ML 및 DSP 워크로드를 위한 대규모 벡터 프로세서 어레이), 테라바이트급 데이터를 이동할 수 있는 대기 시간이 짧은 고대역폭 저전력 프로그래밍 가능 NoC, 사전 빌드된 코어 인프라 및 시스템 연결을 통해 향상된 성능, 사용률 및 생산성을 제공하는 통합 쉘 등이 있습니다.
Versal ACAP 포트폴리오에 대한 개요는 그림 5에서 확인할 수 있습니다.
그림 5: Xilinx Versal ACAP는 진화하는 다양한 알고리즘에 맞게 조정할 수 있는 고집적 다중 코어 컴퓨팅 플랫폼입니다. ACAP는 하드웨어 및 소프트웨어 레벨에서 광범위한 응용 분야와 워크로드에 맞게 동적으로 맞춤 설정할 수 있습니다. (이미지 출처: Max Maxfield)
설계 도구 섹션에서 설명하겠지만, Versal 장치를 차별화하는 주요 요소에는 기존 하드웨어 설계 엔지니어와 데이터 과학자 및 소프트웨어 엔지니어를 모두 대상으로 하는 새로운 소프트웨어 스택이 있습니다.
이제 다양한 Xilinx 장치를 사용할 수 있습니다. 몇 가지 대표적인 제품으로는 Artix-7 FPGA, Kintex UltraScale FPGA, Kintex UltraScale+ FPGA, Trenz Electronic GmbH의 Zynq-7000 SoC Module, Zynq UltraScale+ MPSoC가 있습니다.
마찬가지로 다양한 평가 및 개발 기판을 사용할 수 있습니다. 몇 가지 대표적인 제품으로는 Digilent의 Artix-7 FPGA 평가 기판, Analog Devices의 Kintex UltraScale FPGA 평가 기판, Xilinx의 Kintex UltraScale+ FPGA 평가 기판, Digilent의 Zynq-7000 SoC FPGA 평가 기판, Xilinx의 Zynq UltraScale+ MPSoC FPGA 평가 기판이 있습니다.
Xilinx FPGA, SoC, ACAP로 설계 및 개발
실제로 경쟁업체와 차별화되는 Xilinx의 한 가지 특징은 폭넓고 세부적인 설계 도구 및 설계 흐름에 있습니다.
FPGA에 관한 이 시리즈의 1부에서 살펴본 바와 같이 이러한 장치를 설계하는 기존 방식에서는 설계자가 Verilog, VHDL과 같은 하드웨어 기술 언어(HDL)를 사용하여 레지스터 전송 레벨(RTL)이라는 추상화 레벨에서 설계 의도를 파악했습니다. 먼저 RTL 설명을 시뮬레이션하여 FPGA를 프로그래밍하는 데 사용되는 구성 파일을 생성하는 합성 도구에 전달된 후 필요에 따라 설명이 수행되는지 확인할 수 있습니다.
추상화의 다음 단계는 C/C++와 같은 프로그래밍 언어나 SystemC(이벤트 기반 시뮬레이션 인터페이스를 제공하는 C++ 클래스 및 매크로 세트)와 같은 특수 구현을 사용하여 설계 의도를 파악하는 것입니다. 이러한 방법은 각각 일반 C++ 구문을 사용하여 기술되는 동시 프로세스 시뮬레이션을 간소화합니다. 그런 설명을 일반 프로그램처럼 실행하여 분석하고 프로파일링한 후 고급 합성(HLS) 엔진에 전달하여 일반 합성 엔진에 공급되는 RTL을 출력할 수 있습니다.
이러한 모든 기능은 Vivado Design Suite HLx 버전에 포함되어 있으며, 대상 FPGA, SoC, MPSoC, RFSoC 또는 ACAP 장치에 공급할 구성 비트스트림을 출력합니다. 하드웨어 개발자가 C 기반 설계와 최적화된 재사용을 활용할 수 있도록 허용하는 외에도 Vivado는 IP 서브 시스템 재사용, 통합 자동화 및 가속화된 설계 종결을 지원합니다(그림 6).
그림 6: Xilinx Vivado 및 Vitis 설계 도구 스택의 상위 수준 뷰에서는 사용자가 가장 적절한 추상화 레벨로 도구를 활용할 수 있는 방법을 보여줍니다. 하드웨어 설계자는 Vivado로 작업하고, 소프트웨어 개발자는 Vitis를 사용하고, AI 및 데이터 과학자는 Vitis AI로 작업합니다. (이미지 출처: Max Maxfield)
소프트웨어 개발자가 응용 제품을 더 빠르고 원활하게 구축할 수 있도록 Vitis 통합 소프트웨어 플랫폼에서는 한 차원 향상된 추상화를 지원합니다. 개념적으로 Vitis의 "최상위"에는 Vitis AI가 있으며, 이를 통해 AI 및 데이터 과학자가 TensorFlow 추상화 레벨에서 작업할 수 있습니다. Vitis AI는 Xilinx 하드웨어 플랫폼에서 AI 추론을 위한 개발 플랫폼이며, 에지 장치와 Alveo PCIe 카드를 모두 포함합니다. Vitis AI는 최적화된 IP, 도구, 라이브러리, 모델 및 예제 설계로 구성되며, Xilinx FPGA 및 ACAP 장치에서 AI 가속화의 잠재성을 최대한 활용하도록 설계되었습니다.
Vitis AI는 Vitis에 제공되며, Vitis는 그 자체로 Vivado에 제공됩니다. 그림 6에서 사용자는 "필요한" 내용만 "보는" 것이 중요합니다. 즉, 하드웨어 개발자는 Vivado만 "보고", 소프트웨어 개발자는 Vitis만 "보고", AI 및 데이터 과학자는 Vitis AI만 "봅니다". 이러한 방식으로 사용자는 가장 적절한 추상화 레벨로 도구를 사용할 수 있습니다.
소프트웨어 개발자에게 Vitis와 같은 도구 제품군을 제공하여, 기본 하드웨어와 분리하고, FPGA를 훨씬 더 큰 개발자 풀에 개방합니다. 마찬가지로 AI 및 데이터 과학자에게 Vitis AI와 같은 도구 제품군을 제공하여, 고유한 추상화 레벨에 주력하고, 기본 소프트웨어와 분리하며 FPGA를 새로운 개발자 클래스에 개방할 수 있도록 해줍니다.
Xilinx는 이러한 기능을 제공하여 FPGA 도구를 한 차원 더 높은 설계 추상화 레벨로 강화하도록 업계를 선도함으로써 개발자가 이러한 장치의 기능을 손쉽게 활용하고 다음 설계에 통합할 수 있도록 지원합니다.
결론
최적의 처리 설계 솔루션은 종종 프로세서 및 FPGA의 조합, FPGA 자체 또는 패브릭의 일부로 하드 프로세서 코어를 자랑하는 FPGA에 의해 제공됩니다. 첨단 기술로서 FPGA는 수년간 빠르게 발전하여 유연성, 처리 속도 및 전력 측면에서 많은 설계 요구 사항을 해결할 수 있으므로 지능형 인터페이스, 머신 비전, 인공 지능 등 광범위한 응용 분야에 유용합니다.
위에서 살펴본 바와 같이 Xilinx에서 제공하는 프로그래밍 가능 장치 제품은 성능 및 기능적 측면에서 적정 수준부터 최고 수준까지 다양합니다. 또한 기존 FPGA부터, SoC(단일 하드 코어 프로세서가 탑재된 FPGA 프로그래밍 가능 패브릭), MPSoC(여러 하드 코어 프로세서가 탑재된 FPGA 프로그래밍 가능 패브릭), RFSoC(RF 기능을 지원하는 MPSoC), ACAP(Adaptive Compute Acceleration Platform)까지 다양합니다.
설계자가 이러한 장치로 설계할 수 있도록 돕기 위해 Xilinx는 하드웨어 개발자(Vivado), 소프트웨어 개발자(Vitis), AI 및 데이터 과학자(Vitis AI)의 요구 사항을 충족하는 도구 제품군을 제공합니다.
면책 조항: 이 웹 사이트에서 여러 작성자 및/또는 포럼 참가자가 명시한 의견, 생각 및 견해는 DigiKey의 의견, 생각 및 견해 또는 DigiKey의 공식 정책과 관련이 없습니다.

