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

임베디드 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 프로젝트는 시스템 기능, 동작 모드, 핵심 특징에 대한 명확하고 모호하지 않은 정의로 시작합니다. 의도된 동작을 평이한 언어로 문서화하고 모든 이해관계자와 공유해 합의를 도출하세요. 입력 샘플링 레이트, 출력 업데이트 간격, 처리량, 지연시간, 전력 한계 같은 정량적 성능 지표뿐만 아니라 물리적 크기, 배터리 수명, 온도 범위, 비용 제약도 포함하세요. 완전한 요구사항 세트는 모든 사양을 충족하는 설계가 실행 가능함을 보장합니다. 기술적으로 올바른 솔루션이 비용 같은 이유로 실패한다면 그 누락은 요구사항 단계에 있을 가능성이 높습니다.

최상위 요구사항에 합의한 후 시스템을 각각 자체 기능적, 기술적 사양을 가진 일관된 서브시스템으로 분해하세요. 실시간 임베디드 시스템에서 디지털 처리 능력은 일반적으로 자체 제약 세트를 가진 전용 서브시스템을 형성합니다.

FPGA에 기능 할당

시스템의 디지털 처리 요구가 마이크로컨트롤러나 프로세서의 능력을 초과할 때 FPGA를 고려하세요. 고속 병렬 하드웨어의 이점을 누리는 아키텍처가 최적의 후보입니다. 기존 프로세서가 성능을 충족할 수 있어도 FPGA는 제품 수명주기 동안 유연성과 업그레이드 잠재력을 제공할 수 있습니다.

FPGA 사용을 결정한 후 관련 처리 작업을 FPGA에 할당하세요. FPGA의 입출력 인터페이스, 업데이트 레이트, ADC, DAC, 메모리 디바이스 같은 주변 구성 요소와의 상호작용을 정의하세요.

필요한 FPGA 기능 식별

FPGA의 책임과 인터페이스가 정의되면 필수 디바이스 기능 목록을 작성하세요. 리소스 요구사항(로직 셀, DSP 블록, 메모리)과 전력 및 냉각 필요성을 고려하세요. 저비용 배터리 구동 설계는 패시브 냉각의 소형 디바이스를 사용할 수 있는 반면, 고성능 시스템은 액티브 냉각의 대형 FPGA가 필요할 수 있습니다.

디바이스 패밀리마다 사용 가능한 기능이 다릅니다. 예를 들어 일부는 보드 복잡성을 줄이기 위해 통합 ADC를 포함합니다. 요구사항을 사용해 후보 패밀리를 추린 후 리소스 추정이 명확해질수록 특정 모델로 좁히세요.

FPGA 설계 구현

후보 디바이스가 선택되고 기능이 매핑되면 공급업체 툴 스위트(일반적으로 Xilinx Vivado 또는 Intel Quartus)를 사용해 구현을 시작합니다. 프로세스는 일반적으로 최상위 설계로 시작하며, 이는 블록 다이어그램으로 표현되거나 HDL(Verilog 또는 VHDL) 또는 C/C++ 같은 고수준 합성 언어로 직접 작성될 수 있습니다.

작업 비트스트림이 생성될 때까지 다음 단계들을 반복하며 설계를 다듬습니다:

설계 진입
HDL, 블록 다이어그램, 또는 C/C++ 코드로 시스템 로직을 정의합니다. 이 아티팩트들은 의도된 동작을 기술하지만 물리적 통합은 기술하지 않습니다.

I/O 계획
I/O 핀 할당, 신호 표준 설정, 고속 신호의 핀 배치와 트레이스 길이 같은 물리적 제약 고려. I/O 제약은 타이밍 제약과 함께 합성 프로세스를 안내합니다.

합성
HDL을 선택된 FPGA의 리소스에 로직을 매핑하는 넷리스트로 변환합니다. 제약이 충족될 수 없으면 합성이 실패하고 설계를 재검토해야 합니다.

배치 및 배선
넷리스트의 로직 요소를 제약 조건을 준수하며 특정 FPGA 리소스에 배치합니다. 상호연결을 라우팅해 물리적 레이아웃을 확정합니다. 결과는 완전히 지정된 구성입니다.

비트스트림 생성
FPGA 내부 SRAM을 로드하는 구성 파일을 생성합니다. 이 비트스트림은 소프트웨어 실행 파일과 유사하며, 매 파워온 사이클마다 일반적으로 온보드 플래시나 외부 소스에서 로드되어야 합니다.

비트스트림 생성 후 기능적 정확성을 검증하기 위해 철저한 테스트를 수행하세요.

구현 테스트
모든 단계에서 테스트: HDL 로직 시뮬레이션, 합성된 넷리스트 검증, 타겟 보드에서 하드웨어-인-더-루프 테스트 실행. 포괄적인 테스트는 제품 신뢰성을 해칠 수 있는 드문 버그를 완화합니다.

다음 섹션에서는 Arty A7 보드와 Vivado 툴 스위트를 사용한 실습 예제를 자세히 다룹니다.

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


임베디드 FPGA 설계: 완전한 개발 프로세스 가이드 Jim Ledin은 Ledin Engineering, Inc.의 CEO입니다. 임베디드 소프트웨어 및 하드웨어 설계, 개발, 테스트에 깊은 전문성을 가지며 임베디드 시스템 사이버보안 분야의 권위자입니다. Iowa State University에서 항공우주공학 학사, Georgia Institute of Technology에서 전기컴퓨터공학 석사 학위를 취득했습니다. 캘리포니아 면허 전문 엔지니어, CISSP, CEH, CPT 보유.

관련 콘텐츠

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

임베디드

  1. 안전성과 신뢰성을 위한 페일-세이프 제어 시스템 설계
  2. 임베디드 시스템 프로그래밍: 언어, 아키텍처 및 응용
  3. 챗봇 입문: 설계 프로세스, 아키텍처, 실무 인사이트
  4. 임베디드 시스템 설계: 단계, 원칙, 실전 적용 사례
  5. 임베디드 시스템 기초 및 실전 응용 분야
  6. 아날로그 디바이시스, 임베디드 월드 2019에서 AI·산업 네트워킹·전력 솔루션 선보여
  7. Axiomtek tBOX400-510-FL: 통합 10포트 관리형 PoE 스위치 탑재 듀얼-프로세서 운송 인증 PC
  8. IBASE CMI300-988: AMD Ryzen Embedded V1807B 탑재 초소형 Mini-ITX PC
  9. MicroSys, miriac MPX-LS1028A SoM 출시: IEEE TSN & 4K 그래픽 지원 엣지 컴퓨팅
  10. 첨단 적층 제조 소프트웨어로 생산 극대화