분야별 전문가와 하드웨어 엔지니어는 MATLAB 및 Simulink를 사용하여 AMD® FPGA, Zynq®-7000 SoC, Zynq UltraScale+ RFSoC/MPSoC, Versal® Adaptive SoC에 배포할 프로토타입 및 프로덕션 응용 프로그램을 개발합니다.
MATLAB 및 Simulink를 사용하여 다음과 같은 작업을 수행할 수 있습니다.
- 시스템 수준에서 하드웨어 아키텍처 모델링
- 코드 작성 없이 FPGA 또는 SoC 프로그래밍
- MATLAB 및 Simulink 제품을 사용하여 FPGA 또는 SoC 시뮬레이션 및 디버그
- 프로덕션 HDL 및 C 코드를 생성하여 FPGA 또는 SoC에 통합
"우리는 우리 분야 내에서의 경험은 풍부하지만 FPGA 통합 경험은 거의 없습니다. Simulink와 HDL Coder를 통해 우리는 특정 FPGA에서 알고리즘을 실행하는 방법이 아니라 우리 제품을 위한 지능형 알고리즘 설계에 집중할 수 있었습니다."
Boris Van Amerongen, Orolia
AMD FPGA 및 Zynq SoC에 MATLAB 사용하기
모델링 및 시뮬레이션
모델 기반 설계에 Simulink를 사용하면 상위 수준에서 하드웨어 구현을 모델링하고 시스템 맥락에서 시뮬레이션함으로써 AMD FPGA와 Zynq SoC 응용 프로그램의 개발 시간을 단축할 수 있습니다. 또한 더 효율적인 리소스 사용을 위해 고정소수점 (30:45)으로 양자화하거나 합성 가능한 네이티브 부동소수점 (9:19) HDL을 생성하여 더 쉽게 FPGA를 프로그래밍할 수 있습니다.
HDL Coder를 통해 HDL과 호환되는 Simulink 및 MATLAB 함수 블록으로부터 합성 가능한 VHDL® 또는 Verilog®를 직접 생성하여 신호 처리, 무선 통신, 모터 및 전력 제어, 영상/비디오 처리 등의 응용 분야에 사용할 수 있습니다.
AMD System Generator for DSP와 AMD Model Composer를 통해 AMD 특정 블록을 Simulink에 추가하여 시스템 수준 시뮬레이션 및 하드웨어 배포가 가능합니다. System Generator 블록과 네이티브 Simulink 블록을 통합하여 HDL 코드를 생성할 수 있습니다.
SoC Blockset을 사용하면 메모리 사용 및 스케줄링/OS 영향과 같은 Zynq UltraScale+ MPSoC 및 RFSoC 기기의 하드웨어-소프트웨어 상호작용 성능을 분석할 수 있습니다.
FPGA 및 Zynq SoC 기반 플랫폼에서 프로토타이핑
프로토타이핑을 시작하려면 실시간 무선 소프트웨어 정의 무선 통신, BLDC 모터 제어, 실시간 카메라 입력을 통한 비디오 및 영상 처리, 또는 딥러닝 추론 처리를 위해 사전 구성된 AMD FPGA 및 Zynq SoC 기반 평가 플랫폼을 타겟팅하는 지원 패키지를 다운로드할 수 있습니다. 이후 HDL Coder를 통해 Simulink에서 HDL 코드를 작성하지 않고도 직접 FPGA나 SoC를 프로그래밍하는 단계를 안내받을 수 있습니다.
다양한 기법 중에서 선택하여 MATLAB 및 Simulink에서 직접 FPGA 프로토타입을 디버그할 수 있습니다. IP를 삽입하여 AXI 레지스터를 읽거나 쓰고 (5:40) MATLAB과 온보드 메모리 위치 간에 대량 신호 또는 영상 파일을 전송할 수 있으며 FPGA 내부 신호에서 데이터를 캡처하여 MATLAB에서 분석하거나, MATLAB 또는 Simulink 테스트벤치로 FPGA-in-the-loop (2:52)를 실행하는 평가 키트에서 알고리즘을 테스트할 수 있습니다.
프로덕션 통합을 위한 HDL 및 IP 코어 생성
HDL 코드 생성 기능을 지원하는 대부분의 블록에는 파이프라인 삽입, 리소스 공유, RAM 매핑 등의 직접 사용자 지정 하드웨어 구현 옵션을 지정할 수 있는 HDL 블록 속성이 있습니다. HDL 코드 생성 설정을 통해 최적화, 리셋 스타일, 클록 활성화, 명명 규칙 등을 사용자가 전역적으로 사용자 지정할 수 있습니다. Simulink에서 구현 아키텍처를 설계할 수 있을 뿐만 아니라 AMD FPGA 및 Zynq SoC 기기의 속도 및 영역 최적화에 대한 완전한 제어가 가능합니다.
가독성이 좋은 합성 가능한 RTL을 생성하여 Vivado®의 비알고리즘적 콘텐츠와 통합할 수 있습니다. Zynq용 HDL Coder 지원 패키지를 설치하면 Arm® 프로세서 및 기타 기기 IP와의 통신에 다양한 AXI 프로토콜을 사용하는 IP 코어 래퍼를 생성할 수 있습니다. Zynq용 Embedded Coder 지원 패키지를 사용하여 Arm 애플리케이션 프로세서를 프로그래밍하기 위한 드라이버와 응용 프로그램 소프트웨어를 생성할 수 있습니다.
타겟 플랫폼 지원 확장
MathWorks에서 제공하는 지원 패키지에 포함되지 않은 FPGA 기반 플랫폼이나 SoC 기반 플랫폼에 배포해야 할 경우, 참조 설계를 생성하거나 다운로드하여 HDL Coder에 추가할 수 있습니다. 참조 설계는 SoC Blockset 또는 Vivado를 사용하여 개발할 수 있습니다. Analog Devices®, Avnet®, Speedgoat, Trenz Electronics 등의 공급 업체의 AMD FPGA 또는 SoC 기반 플랫폼을 위한 타사 참조 설계는 File Exchange에서 찾아볼 수 있습니다.