산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial Internet of Things >> 임베디드

고성능 임베디드 시스템을 위한 FPGA 하드웨어 리소스 심층 분석

고성능 임베디드 시스템을 위한 FPGA 하드웨어 리소스 심층 분석 편집자 주: 스마트 제품 설계에 고급 알고리즘이 계속 등장함에 따라 개발자들은 관련 처리 요구를 충족할 임베디드 시스템 구현에 어려움을 겪곤 합니다. FPGA는 필요한 성능을 제공하지만 FPGA 설계는 오랫동안 FPGA 프로그래밍 전문가의 영역으로 여겨졌습니다. 그러나 오늘날 더 강력한 FPGA와 더 효과적인 개발 환경의 가용성으로 FPGA 개발이 널리 접근 가능해졌습니다. Architecting High-Performance Embedded Systems 4장에서 발췌한 이 글에서 저자는 FPGA 디바이스, 구현 언어, 개발 프로세스에 대한 포괄적인 검토와 자신만의 설계에 FPGA 구현을 시작하는 방법에 대한 자세한 연습을 제공합니다.
1: 하드웨어 리소스 (이 기사)
2: 구현 언어
3: 개발 프로세스
4: 프로젝트 구축
5: 구현

Architecting High-Performance Embedded Systems에서 발췌, Jim Ledin 저.


첫 FPGA 프로그램 개발하기

이 장은 실시간 임베디드 시스템에서 FPGA 디바이스의 효과적인 활용에 대한 논의로 시작해 표준 FPGA에 포함된 기능 요소들을 설명합니다. HDL(하드웨어 기술 언어), 블록 다이어그램 방법, C/C++ 같은 대중적인 소프트웨어 프로그래밍 언어를 포함한 FPGA 설계 언어의 범위를 소개하고 FPGA 개발 프로세스 개요를 제공합니다. 이 장은 시스템 요구사항 명세부터 저비용 FPGA 개발 보드에서 완전히 기능하는 시스템 구현까지 완전한 FPGA 개발 주기 예제로 마무리됩니다.

이 장을 완료하면 실시간 임베디드 시스템 아키텍처에서 FPGA를 적용하는 방법, FPGA IC의 핵심 구성 요소, FPGA 알고리즘 설계에 사용되는 프로그래밍 언어, FPGA 기반 애플리케이션 개발의 단계별 순서를 이해하게 됩니다. 또한 무료 FPGA 소프트웨어 도구를 사용해 저비용 보드에서 전체 FPGA 개발 예제를 실습하게 됩니다.

다룰 주제는 다음과 같습니다:

기술적 요구사항

이 장의 파일은 https://github.com/PacktPublishing/Architecting-High-Performance-Embedded-Systems에서 제공됩니다.

실시간 임베디드 시스템 설계에서 FPGA 활용

1장의 FPGA의 요소 섹션에서 설명한 것처럼, 일반적인 FPGA 디바이스는 다수의 룩업 테이블, 플립플롭, 블록 RAM 요소, DSP 슬라이스 및 기타 구성 요소를 포함합니다. 각 구성 요소의 세부 기능을 이해하는 것도 유용하지만, 가장 중요한 고려사항은 특정 FPGA 부품 번호에 각 리소스의 유한한 개수가 포함되어 있으며, 해당 특정 모델을 타겟으로 할 때 설계가 그 한계를 초과할 수 없다는 점입니다.

임베디드 시스템의 요구사항 명세 관점에서 개발 프로세스를 보는 것이 더 생산적입니다. 해당 요구사항을 편안하게 충족하는 모델을 타겟으로 시작할 수 있습니다. 설계가 진행됨에 따라 리소스 한계에 부딪히거나 필수 기능이 누락된 것을 발견할 수 있습니다. 그 시점에서 더 강력한 타겟을 선택하고 개발을 계속하는 것은 간단합니다. 반대로 선택한 FPGA에 과잉 리소스가 있음을 발견하면 더 작은 부품으로 이동해 비용, 핀 수, 패키지 크기, 전력 소비를 줄일 수 있습니다.

동일 패밀리 내에서의 FPGA 타겟 전환은 일반적으로 원활하며 설계 아티팩트가 완전히 재사용 가능합니다. 패밀리나 공급업체 전환은 추가 노력이 필요할 수 있습니다. 핵심은 특정 모델을 처음부터 선택할 필요는 없다는 것입니다. 먼저 FPGA를 실행 가능한 솔루션으로 검증하는 데 집중하고, 적합한 공급업체와 디바이스 패밀리를 선택하세요.

이 책의 예제 프로젝트들은 Xilinx의 Vivado 툴 패밀리를 사용합니다. 일부 Xilinx 패밀리에는 Vivado 라이선스가 필요하지만, 여기에서 사용되는 Artix-7 디바이스는 무료로 지원됩니다. Artix-7은 고성능, 저전력, 저렴한 시스템 비용을 결합합니다. 다른 공급업체에서도 유사한 패밀리와 툴 스위트를 제공합니다.

FPGA 개발은 다양한 분석 및 설계 데이터가 필요한 복잡한 프로세스입니다. 논의를 구체적으로 유지하기 위해 이 책 전체에서 Vivado를 사용할 것입니다. 이 기술들을 마스터하면 다른 공급업체의 툴에도 적용할 수 있습니다.

다음 섹션에서는 블록 RAM 용량, I/O 신호 타입, 특수 온칩 리소스, 임베디드 프로세서 코어 존재 여부 등 FPGA 패밀리와 모델의 주요 차별화 기능을 논의합니다.

블록 RAM과 분산 RAM

블록 RAM은 FPGA 내 전용 메모리 영역을 구현합니다. 메모리 영역은 비트 폭(일반적으로 8 또는 16비트)과 깊이(저장 위치 수)로 지정됩니다. 총 블록 RAM은 보통 킬로비트(Kb)로 표현되며 패밀리와 모델에 따라 다릅니다.

많은 FPGA는 분산 RAM도 제공합니다. 이는 룩업 테이블 로직으로 구성된 작은 16비트 세그먼트에서 만들어지며 필요시 더 큰 블록으로 결합할 수 있습니다. 분산 RAM은 중간 결과의 임시 저장에 이상적이며, 블록 RAM은 캐시나 I/O 버퍼에 사용됩니다.

블록 RAM은 단일 포트 또는 듀얼 포트일 수 있습니다. 두 개의 읽기/쓰기 포트를 가진 듀얼 포트 RAM은 서로 다른 클럭 속도로 작동하는 서브시스템 간 간섭 없는 데이터 전송을 가능하게 해 특히 유용합니다.

블록 RAM은 FIFO 모드로 동작할 수 있으며, 풀, 엠프티, 얼모스트 풀, 얼모스트 엠프티 상태 신호를 제공합니다. 쓰기 및 읽기 작업을 신중하게 제어하면 데이터 손실이나 손상을 방지할 수 있습니다.

FPGA I/O 핀 및 관련 기능

FPGA I/O 핀은 다양한 고속 표준을 지원합니다. 설계 과정에서 개발자는 특정 핀에 기능을 할당하고 각 핀의 인터페이스 표준을 구성합니다. 신호는 단일 종단 또는 차동입니다.

단일 종단 신호는 그라운드를 참조하며 역사적으로 TTL/CMOS 범위를 사용했습니다. 현대 FPGA는 더 낮은 전압 범위(LVTTL 0-3.3V, LVCMOS 1.2, 1.5, 1.8, 2.5, 3.3V)를 지원해 전력 소비를 줄이고 속도를 개선합니다. 고속 단일 종단 표준에는 HSTL과 SSTL이 포함됩니다.

두 개의 핀을 사용하는 차동 신호는 공통 모드 노이즈가 크게 상쇄되므로 고속 데이터 링크에 선호됩니다. 차동 표준에는 HSTL, SSTL, LVDS가 포함됩니다. 1994년 도입된 LVDS는 일정한 3.5mA 전류를 공급하고 방향을 전환해 데이터 비트를 표현합니다. 전송선 임피던스(LVDS의 경우 100Ω)를 종단 임피던스와 매칭하는 것은 반사를 피하기 위해 필수적입니다.

특수 하드웨어 리소스

FPGA에는 고정되고 효율적인 구현의 이점을 누리는 기능을 위한 전용 하드웨어가 종종 포함됩니다:

MAC 유닛 같은 전용 하드웨어는 합성 로직으로 달성할 수 있는 것보다 훨씬 뛰어난 성능을 제공합니다.

프로세서 코어

일부 FPGA 패밀리는 하드 프로세서 코어를 통합합니다. 예를 들어 Xilinx Zynq-7000은 ARM Cortex-A9과 FPGA 패브릭을 결합합니다. 설계에 하드 코어가 필요하지 않으면 FPGA 리소스에서 소프트 프로세서를 인스턴스화할 수 있습니다. 소프트 프로세서는 고도로 구성 가능하지만 일반적으로 하드 코어의 성능에는 미치지 못합니다.

다음 섹션에서는 FPGA 알고리즘 개발에 사용되는 주요 프로그래밍 언어와 데이터 입력 방법을 소개합니다.

Packt Publishing 허가 하에 재인쇄. Copyright © 2021 Packt Publishing


고성능 임베디드 시스템을 위한 FPGA 하드웨어 리소스 심층 분석 Jim Ledin은 Ledin Engineering, Inc.의 CEO입니다. Jim은 임베디드 소프트웨어 및 하드웨어 설계, 개발, 테스트 전문가이며 임베디드 시스템 사이버보안 평가와 침투 테스트에도 숙련되어 있습니다. Iowa State University에서 항공우주공학 학사, Georgia Institute of Technology에서 전기컴퓨터공학 석사 학위를 취득했습니다. 캘리포니아 등록 전문 전기 엔지니어, CISSP, CEH, CPT 자격 보유.

관련 콘텐츠

더 많은 Embedded 소식을 원하시면 Embedded의 주간 이메일 뉴스레터를 구독하세요.

임베디드

  1. 커넥티드 하드웨어 설계에서 값비싼 sorpresa 방지: 검증된 전략
  2. 임베디드 시스템 설계: 단계, 원칙, 실전 적용 사례
  3. 이클립스 IoT: 신속한 IoT 개발을 위한 통합 오픈소스 패키지
  4. 임베디드 C에서 테스트 주도 개발(TDD)로 상태 머신 구축하기
  5. 임베디드 AI로 빅데이터를 실행 가능한 스마트 인사이트로 변환
  6. 사이프러스, ModusToolbox로 IoT 개발 강화… 풀 디바이스-투-클라우드 지원
  7. Lattice MachXO3D FPGA, 하드웨어 루트오브트러스트로 임베디드 보안 강화
  8. MAXREFDES220#: 광학 센서로 커프리스 혈압 모니터링 구현
  9. Java 9 향상된 Try-with-resources: 더 깔끔한 코드
  10. 첨단 적층 제조 소프트웨어로 생산 극대화