FPGA의 기본사항 – 2부: Lattice Semiconductor의 FPGA 시작하기

작성자: Clive "Max" Maxfield

DigiKey 북미 편집자 제공

편집자 주: 최적의 처리 솔루션은 종종 RISC, CISC, 그래픽 프로세서 및 FPGA의 조합, FPGA 자체 또는 패브릭의 일부로 하드 프로세서 코어를 자랑하는 FPGA에 의해 제공됩니다. 하지만 많은 설계자가 FPGA 기능에 익숙하지 않고 그 진화 과정과 사용 방법을 잘 모릅니다. 여러 단원으로 구성된 이 시리즈의 1부에서는 FPGA를 자세히 소개하고 FPGA가 필요한 이유를 설명합니다. 2부에서는 FPGA 벤더인 Lattice Semiconductor에서 제공하는 FPGA 장치 제품군과 설계 도구를 중점적으로 살펴봅니다. 3부, 4부5부에서는 Altera, MicrochipXilinx의 FPGA를 살펴봅니다.

1부에서 설명한 대로 현장 프로그래밍 가능 게이트 어레이(FPGA)는 독립형 또는 이기종 아키텍처의 소중한 컴퓨팅 자산이 되는 많은 특성을 갖추고 있지만, 많은 설계자가 FPGA에 익숙하지 않고 이러한 장치를 설계에 통합하는 방법을 잘 모릅니다.

이 문제를 해결하는 한 가지 방법은 주요 벤더의 FPGA 아키텍처와 관련 도구를 자세히 살펴보는 것입니다. 여기서는 Lattice Semiconductor의 라인업부터 시작합니다.

상위 수준 FPGA 옵션 개요

현재 다양한 유형의 FPGA가 출시되어 있고, 각 유형은 여러 기능이 다양한 형태로 조합되어 있습니다. FPGA의 핵심은 프로그래밍이 가능한 논리 블록의 어레이로 표기되는 프로그래밍 가능 패브릭이라는 것입니다(그림 1a). 다음 승압 FPGA 패브릭은 블록 RAM(BRAM)이라는 SRAM 블록과 위상 고정 루프(PLL), 클록 관리자 등을 포함합니다(그림 1b). 디지털 신호 처리(DSP) 블록(DSP 슬라이스) 및 고속 직렬 변환기/직병렬 변환기(SERDES) 블록을 추가할 수도 있습니다(그림 1c).

프로그래밍 가능 패브릭과 구성 가능한 범용 IO(GPIO)만 포함된 FPGA 구성도 그림 1: 가장 간단한 FPGA에는 프로그래밍 가능 패브릭과 구성 가능한 범용 IO(GPIO)만 포함되어 있고(a), 다른 아키텍처는 SRAM 블록, PLL 및 클록 관리자(b), DSP 블록 및 SERDES 인터페이스(c), 하드 프로세서 코어 및 주변 장치(d)로 이 기본 패브릭을 강화합니다. (이미지 출처: Max Maxfield)

프로그래밍 가능 패브릭에서 CAN, I2C, SPI, UART, USB와 같은 주변 장치 인터페이스 기능을 구현할 수 있지만, 대부분의 FPGA에서는 해당 기능이 실리콘에 하드 코어로 포함되어 있습니다. 마찬가지로 마이크로 프로세서를 프로그래밍 가능 패브릭에서 소프트 코어로 구현하거나 실리콘에서 하드 코어로 구현할 수 있습니다(그림 1d). FPGA마다 다른 시장 및 응용 분야를 대상으로 하는 다른 기능, 특징 및 용량 모음을 제공합니다.

Altera(Intel에 인수됨), Atmel(Microchip Technology에 인수됨), Lattice Semiconductor, Microsemi(Microchip Technology에 인수됨), Xilinx 등 많은 FPGA 벤더가 있습니다.

이러한 모든 벤더는 여러 FPGA 제품군을 현장에 배치하고 있습니다. 어떤 벤더는 SoC(시스템온칩) FPGA(하드 프로세서 코어 포함)를 제공하고, 또 어떤 벤더는 우주와 같은 높은 방사선 환경을 대상으로 하는 방사선 내성 장치를 제공합니다. 각각 제공하는 리소스가 서로 다른 제품군이 많으므로 작업에 가장 적합한 장치를 선택하는 것이 어려울 수 있습니다. 이 기사에서는 Lattice Semiconductor에서 제공하는 장치 제품군과 설계 도구를 중점적으로 살펴봅니다.

Lattice Semiconductor FPGA 소개

Lattice Semiconductor는 빠르게 성장하는 통신, 컴퓨팅, 산업, 자동차 및 소비자 가전 시장에서 에지부터 클라우드까지 네트워크 전반의 고객 문제를 해결하는 저전력 장치에 중점을 두고 로우레인지부터 미드레인지까지 다양한 FPGA 제품을 제공합니다.

Lattice는 네 가지 기본 FPGA 제품군을 제공합니다.

  • iCE(세계에서 가장 작은 초저전력 FPGA로 회자됨)
  • CrossLink 및 CrossLinkPlus(고속 동영상 및 센서 응용 분야에 최적화됨)
  • MachXO(브리징, 확장, 플랫폼 관리 및 보안 응용 분야에 최적화됨)
  • ECP(연결 및 가속 응용 분야를 대상으로 하는 범용 장치)

또한 Lattice는 Lattice Diamond Software(CrossLink/CrossLinkPlus, MachXO 및 ECP 장치용), Lattice Radiant Software(iCE FPGA 및 향후 아키텍처용), LatticeMico(소프트 마이크로 프로세서 기반 설계 작성을 위해 그래픽 도구), Lattice sensAI Stack, Neural Network Compiler(인공 지능(AI) 및 머신 러닝(ML) 설계용)를 비롯한 많은 설계 및 확인 도구 제품군을 제공합니다.

기존: ECP FPGA

Lattice의 ECP 장치는 많은 설계자가 "기존" FPGA로 간주하던 장치이며, 10mm x 10mm, 0.5mm 피치 패키지에 최대 85,000(k)개의 4자리 입력 대조표(LUT)를 포함할 수 있습니다. 0.25W 이하의 프로토콜에 구애받지 않은 단일 채널 SERDES 기능과 0.5W 이하의 쿼드 채널 SERDES 기능을 포함하고 정적 및 작동 전력 소비가 낮습니다.

SRAM 블록, 디지털 신호 처리(DSP) 블록, 위상 고정 루프(PLL) 및 클록 관리자 외에 ECP FPGA는 LVCMOS 33/25/18/15/12, XGMII, LVTTL, LVDS, Bus-LVDS, 7:1 LVDS, LVPECL 및 MIPI D-PHY 입/출력 인터페이스를 위한 프로그래밍 가능 IO 지원을 제공합니다.

ECP FPGA의 구성 셀은 SRAM을 기반으로 합니다. 즉, 다른 모든 SRAM 기반 FPGA와 마찬가지로 시스템에 전원을 공급할 때 외부 소스(예: 플래시 메모리 장치, 마이크로 프로세서, 마이크로 컨트롤러)에서 구성을 로드해야 합니다.

ECP 장치의 좋은 예로는 10mm x 10mm 패키지로 제공되는 LFE5UM5G-25F-8BG381C ECP5 5G SERDES 지원 FPGA가 있습니다. 또한 설계자가 ECP5 FPGA 제품군의 기능을 효율적으로 살펴보고 실험해 볼 수 있도록 Lattice는 해당 ECP5-5G 개발 기판인 LFE5UM5G-45F-VERSA-EVN을 제공합니다(그림 2).

Lattice Semiconductor의 ECP5 평가 기판 이미지그림 2: ECP5 평가 기판은 풍부한 논리, I/O, 5G SERDES 및 확장 헤더를 포함하는 시제품 제작 기판입니다. (이미지 출처: Lattice Semiconductor)

작지만 강력함: Lattice iCE FPGA

iCE 장치는 출시된 FPGA 중 가장 작은 유형으로서 제품군 중 가장 작은 제품은 1.4mm x 1.4mm 패키지에 18개의 I/O를 제공합니다. iCE FPGA는 최대 5,000개 4자리 입력 LUT, 최대 128Kbits Lattice 내장형 sysMEM BRAM, 1Mbit 단일 포트 RAM(SPRAM), 고성능 DSP 블록, 맞춤형 I/O를 포함하는 유연한 논리 아키텍처를 제공합니다.

iCE FPGA는 대부분의 응용 분야에서 유휴 전류 75µA, 유효 전류 1mA ~ 10mA의 낮은 전력을 소비하고 크기가 작지만 강력합니다. 예를 들어 에지에 상시 작동 인텔리전스를 제공하는 데 필요한 패턴 일치를 위해 인공 신경망(ANN)을 구현할 수 있습니다.

iCE FPGA의 구성 데이터는 비휘발성 메모리(NVM), 즉 일회성 프로그래밍 가능(OTP) 장치에 저장됩니다. 앞서 언급한 대로 이러한 장치에는 SRAM 기반 구성 셀도 포함되어 있습니다. 개발 중에 외부에서 SRAM 기반 구성 셀을 직접 로드하여 설계를 테스트할 수 있습니다. 설계가 커밋된 후 NVM으로 로드할 수 있습니다. 장치의 전원을 켜면 NVM에 저장된 구성이 SRAM 기반 구성 셀에 대규모 병렬 방식으로 자동 복사됩니다.

iCE 장치의 예를 들면 세계에서 가장 작은 폼 팩터 FPGA(이 기사의 게시 시점 기준)로서, 1.4mm x 1.4mm 패키지에서 42µW 정지 전력을 제공하는 ICE40UL1K-SWG16ITR1K iCE40 UltraLite가 있습니다. 대표적인 개발 기판으로는 HM01B0-UPD-EVN Himax HM01B0 UPduino 실드 및 sensAI 모듈식 데모 기판이 있습니다(그림 3).

Lattice Semiconductor의 Himax HM01B0 UPduino 실드 이미지그림 3: Himax HM01B0 UPduino 실드는 감각 입력으로 시청각을 사용하여 인공 지능(AI)을 구현하기 위한 완벽한 개발 키트입니다. (이미지 출처: Lattice Semiconductor)

이 키트는 iCE40 UltraPlus FPGA의 성능과 I/O 기능을 갖춘 Arduino 폼 팩터의 빠른 시제품 제작 개발 기판인 UPduino 2.0 기판을 기반으로 합니다. 또한 이 키트에는 Himax HM01B0 저전력 이미지 센서 모듈과 2개의 I2S 마이크가 포함되어 있습니다.

특수: CrossLink 및 CrossLinkPlus FPGA

CrossLink 및 CrossLinkPlus 제품군은 프로그래밍 가능 논리와 상당한 I/O 기능 이외에 산업 및 자동차 응용 분야에서 널리 사용되는 수백 가지 사양을 포함하는 특수 FPGA입니다. 여기에는 모바일 산업 프로세서 인터페이스(MIPI) D-PHY 고속 데이터 통신 물리층 표준, CSI2(Camera Serial Interface 2), DSI2(Display Serial Interface 2) 코어가 포함되며 모두 6mm x 6mm(CrossLink) 및 3.5mm x 3.5mm(CrossLinkPlus) 크기의 패키지로 제공됩니다.

iCE FPGA와 마찬가지로 CrossLink 장치의 구성 데이터는 OTP NVM에 저장되며, 이 장치에는 개발 중에 테스트를 위해 직접 로드할 수 있는 SRAM 기반 구성 셀이 포함되어 있습니다. 설계가 커밋되면, 전력 공급 시 NVM에 로드되고 SRAM 기반 구성 셀에 대규모 병렬 방식으로 자동으로 복사됩니다. 그에 비해 CrossLinkPlus 장치의 구성 셀은 플래시를 기반으로 합니다. 즉, 필요에 따라 장치를 다시 프로그래밍하고, 10ms 이내에 즉각 구동 기능을 제공할 수 있습니다.

CrossLink 장치의 예로는 5,936개 논리 소자/셀, 184,320개 총 RAM 비트 및 37개 I/O를 제공하는 LIF-MD6000-6JMG80I가 있습니다. 내장형 비전 설계를 시작하려는 설계자는 LF-EVDK1-EVN 내장형 비전 개발 키트를 사용하여 CrossLink 기반 MIPI 입력을 ECP5 FPGA 처리와 결합하여 내장형 비전 설계의 시제품을 제작할 수 있습니다(그림 4).

Lattice의 LF-EVDK1-EVN 내장형 비전 개발 키트 이미지그림 4: Lattice LF-EVDK1-EVN 내장형 비전 개발 키트는 내장형 시스템 설계자에게 입력 기판과 출력 기판을 혼합하고 일치시켜서 다양한 이미지 센서 및 디스플레이를 연결하는 기능을 포함하는 소프트웨어 및 하드웨어 시제품 제작 환경을 제공합니다. (이미지 출처: Lattice Semiconductor)

I/O 및 전력 관리 기능: MachXO FPGA

수백 개의 I/O를 포함하는 MachXO FPGA는 GPIO 확장, 인터페이스 브리징, 전력 관리 기능을 필요로 하는 광범위한 응용 분야에 적합합니다. 최신 제품군은 NIST 규정을 준수하도록 설계되었으며 시스템 하드웨어와 펌웨어를 안전하게 유지하기 위해 추가 보안 기능을 포함합니다.

MachXO FPGA에는 "핫 소켓"과 같은 기능을 포함하는 강력한 GPIO 세트가 있습니다. 즉, 전원 공급 장치 레일의 상태에 상관없이 I/O에 전압을 적용할 수 있습니다. 대부분의 FPGA 입력은 기본적으로 풀업 상태이지만, MachXO 입력은 기본적으로 풀다운 상태이므로 제어 기능 응용 분야에 적합합니다. 10ms 이내에 즉각 구동되는 MachXO FPGA는 시스템의 전원을 켜고 끄는 동안 다른 부품을 관리하고 시퀀싱하는 “FOLO(First On, Last-Off)” 제어 장치에 적합한 솔루션을 제공합니다.

MachXO 장치의 구성 데이터는 플래시 메모리에 저장됩니다. MachXO 장치에는 SRAM 기반 구성 셀도 포함되어 있습니다. 장치의 전원을 켜면 플래시에 저장된 구성 데이터가 SRAM 기반 구성 셀에 대규모 병렬 방식으로 자동으로 복사됩니다. 또한 장치가 실행 중인 동안 새 구성을 플래시로 로드한 다음 적절한 시간에 이 새 구성을 SRAM 셀에 복사할 수 있습니다.

MachXO 장치의 좋은 예로는 9,400개 논리 소자/셀, 442,368개 총 RAM 비트 및 206개 I/O를 제공하는 LCMXO3LF-9400C-6BG256C가 있습니다. 대표적인 개발 기판으로는 LCMXO3LF-6900C-S-EVN MachXO3 시험용 키트(MachX03L 버전)가 있습니다.

Lattice Semiconductor의 MachXO3L 시험용 키트 이미지그림 5: MachXO3L 시험용 키트는 MachXO3L 기반 설계를 간단하게 평가하고 개발할 수 있는 기본적인 브레이크아웃 기판입니다. (이미지 출처: Lattice Semiconductor)

SPI 플래시를 키트 기판에서 사용하여 외부 부트 또는 이중 부트 기능을 평가할 수 있습니다. LCMXO3L-DSI-EVN MachXO3L DSI 브레이크아웃 기판은 MIPI DSI 및 CSI2 I/O 평가에 권장되며, LCMXO3L-SMA-EVN MachXO3L SMA 브레이크아웃 기판은 고속 차동 I/O 평가에 권장됩니다.

Lattice Semiconductor FPGA로 설계 및 개발

FPGA로 개발하는 데 사용되는 가장 일반적인 기술 중 하나가 언어 구동 설계(LDD) 기능입니다. 여기서는 Verilog 또는 VHDL과 같은 하드웨어 설명 언어(HDL)를 사용하여 레지스터 전송 수준(RTL)이라는 추상화 수준에서 설계 의도를 파악합니다. 논리 시뮬레이션을 통한 확인 후, 대상 FPGA 유형, 핀 배정, 타이밍 제약 조건(예: 최대 입/출력 지연)과 같은 추가 정보와 함께 이 표현을 합성 엔진에 공급합니다. 합성 엔진의 출력은 구성 파일이며, FPGA에 직접 로드되거나 SRAM 기반 FPGA의 경우 외장형 메모리 장치에 로드됩니다(그림 6).

합성 엔진에 공급되는 RTL 설계 설명 구성도그림 6: 논리 시뮬레이션을 통한 확인 후 RTL 설계 설명은 FPGA 유형, 핀 배정, 타이밍 제약 조건과 같은 추가 정보와 함께 합성 엔진에 공급됩니다. 합성 엔진의 FPGA에 직접 로드되거나(NVM 또는 플래시 기반 장치의 경우) 또는 외장형 메모리 장치(SRAM 기반 FPGA의 경우)에 직접 로드되는 구성 파일입니다. (이미지 출처: Max Maxfield).

Lattice Diamond는 이 클래스의 도구에 속하며 CrossLink, MachXO 및 ECP 장치를 위한 완벽한 GUI 기반 FPGA 설계 및 확인 환경을 제공합니다.

Lattice Diamond와 마찬가지로 Lattice Radiant는 완벽한 GUI 기반 FPGA 설계 및 확인 환경을 제공하지만 Lattice Radiant는 iCE FPGA 및 향후 아키텍처를 대상으로 합니다.

Lattice Radiant는 다음과 같은 다양한 기능을 제공합니다.

  • 상호 운용성 극대화를 위한 산업 표준 IEEE 1735 지적 재산(IP) 암호화 및 SDC(Synopsys Design Constraints)
  • 통합 도구 세트 환경에서 지원하는 손쉬운 설계 탐색 및 디버깅
  • 새로운 공정 도구 모음에서 지원하는 간단한 “원클릭” 설계 구현 실행
  • 완벽한 폐쇄 루프 물리-논리 설계 구현 교차 프로빙
  • IP 패키징 기능(개발자와 타사 IP 제공업체에서 암호화된 IP를 배포하는 데 적합한 형식으로 패키지할 수 있도록 지원)

LatticeMico 시스템 개발 도구

Lattice는 FPGA의 프로그래밍 가능 패브릭으로 구현될 수 있는 두 소프트 프로세서 코어(LatticeMico8 및 LatticeMico32)를 제공합니다.

LatticeMico8은 MachXO2 프로그래밍 가능 논리 장치(PLD) 제품군에 최적화되고 완벽하게 테스트를 거친 8비트 마이크로 컨트롤러이며, 다른 FPGA 제품군을 위한 참조 설계로 활용할 수도 있습니다. 마이크로 컨트롤러 코어는 전체 18비트 너비 명령어 세트를 32개의 범용 레지스터와 결합하고, 광범위한 기능 세트를 유지하면서 최소 장치 리소스(최소 구성에서 LUT 200개 미만)를 소비합니다.

LatticeMico32는 32비트 Harvard, RISC 아키텍처 마이크로 프로세서입니다. 32비트 너비 명령어 세트를 32개의 범용 레지스터와 결합하여 LatticeMico32는 다양한 시장에 적합한 성능 및 유연성을 제공합니다. RISC 아키텍처를 사용하여 코어에서는 최소의 장치 리소스를 소비하면서 광범위한 응용 세트에 필요한 성능을 유지합니다. 마이크로 프로세서 시스템 개발을 가속화하기 위해 여러 선택 사양 WISHBONE 컨트롤러 호환 주변 장치 부품을 LatticeMico32와 통합할 수 있습니다.

LatticeMico 시스템 개발 도구는 LatticeMico 프로세서 코어 및 주변 장치를 드래그하여 버스에 연결하고 각 부품에 대한 다양한 파라미터(예: 프로세서 주소 공간의 위치)를 정의할 수 있는 그래픽 사용자 인터페이스를 제공합니다. 시스템이 정의되면 도구에서 시뮬레이션하여 동기화할 해당 RTL를 자동으로 생성할 수 있습니다. 또한 이 시스템에는 프로세서 코어에서 실행될 소프트웨어를 생성할 수 있는 도구가 포함되어 있습니다.

머신 러닝 도구: Lattice sensAI Stack 및 Neural Network Compiler

머신 러닝(ML) 및 인공 지능(AI) 응용 분야는 현재 광범위한 내장형 시스템과 산업용 IoT(IIoT)를 비롯한 사물 인터넷(IoT) 전반에서 배포되고 있습니다.

Lattice sensAI Stack에는 모듈식 하드웨어 플랫폼, 예제 데모, 참조 설계, 신경망 IP 코어, 개발용 소프트웨어 도구, 맞춤형 설계 서비스를 비롯하여 FPGA 기반 ML/AI 솔루션을 평가, 개발, 배포하는 데 필요한 모든 기능이 포함되어 있습니다. 이 스택은 소비자 가전 및 산업용 IoT 응용 분야에서 추론하는 유연한 머신 러닝 개발자를 위해 출시 시간을 단축하도록 고안되었습니다.

Lattice의 매우 복잡한 신경망(CNN) 가속기 IP 코어는 심층 신경망(DNN)을 위한 계산 엔진입니다. 이 엔진은 매우 복잡한 신경망에 최적화되어 있으므로 분류 또는 물체 감지 및 추적과 같은 시각 기반 응용 분야에 사용할 수 있습니다. CNN IP 코어는 필요한 계산을 수행할 수 있으므로 추가 프로세서가 필요하지 않습니다.

Lattice Neural Network Compiler를 사용하면 설계자가 공통 개발 프레임워크(예: TensorFlow, Caffe, Keras)에서 생성된 신경망을 가져와서 컴파일한 후 Lattice CNN 및 콤팩트 CNN 가속기 IP 코어에서 구현할 수 있습니다.

결론

최적의 설계 솔루션은 종종 프로세서 및 FPGA의 조합, FPGA 자체 또는 패브릭의 일부로 하드 프로세서 코어를 자랑하는 FPGA에 의해 제공됩니다. 첨단 기술로서 FPGA는 수년간 빠르게 발전하여 유연성, 처리 속도 및 전력 측면에서 오늘날의 많은 설계 요구 사항을 해결할 수 있으므로 지능형 인터페이스, 머신 비전, AI 등 광범위한 응용 분야에 유용합니다.

그림과 같이 Lattice Semiconductor는 빠르게 성장하는 통신, 컴퓨팅, 산업, 자동차 및 소비자 가전 시장에서 에지부터 클라우드까지 네트워크 문제를 해결하는 저전력 장치에 중점을 두고 로우레인지부터 미드레인지까지 다양한 FPGA 제품을 제공합니다. 또한 Lattice는 언어 기반 설계부터, 그래픽 프로세서 기반 설계, 머신 러닝 및 인공 지능 응용 분야 중심 설계까지 다양한 설계 흐름에 적합한 여러 설계 및 확인 도구 제품군을 제공합니다.

DigiKey logo

면책 조항: 이 웹 사이트에서 여러 작성자 및/또는 포럼 참가자가 명시한 의견, 생각 및 견해는 DigiKey의 의견, 생각 및 견해 또는 DigiKey의 공식 정책과 관련이 없습니다.

작성자 정보

Image of Max Maxfield

Clive "Max" Maxfield

Clive "Max" Maxfield는 1980년 영국 Sheffield Hallam University에서 제어 공학 학사 학위를 받았으며 이후 중앙 컴퓨터용 중앙 처리 장치(CPU) 설계자로 일하기 시작했습니다. 수년에 걸쳐 Max는 실리콘 칩에서 회로 기판, 뇌파 증폭기에서 스팀펑크 예언 엔진(steampunk Prognostication Engines)에 이르는 다양한 제품을 설계했습니다. 또한 30년 이상 전자 설계 자동화(EDA) 부문을 이끌어 왔습니다.

Max는 Designus Maximus Unleashed(앨라배마에서는 금서임), Bebop to the Boolean Boogie(전자 제품 관련 색다른 안내서), EDA: Where Electronics Begins, FPGA: Instant Access 및 How Computers Do Math 등 다양한 도서의 저자/공동저자입니다. Max가 운영 중인 “Max’s Cool Beans” 블로그에 방문해 보세요.

게시자 정보

DigiKey 북미 편집자