MATLAB, Simulink 및 Polyspace를 활용한 임베디드 시스템

임베디드 시스템의 설계, 코딩 및 검증

MATLAB 및 Simulink를 사용해 버튼 하나로 코드를 생성하고 이를 하드웨어에서 실행할 수 있습니다. 하지만 코딩은 수많은 작업 중 하나에 불과합니다. MATLAB, Simulink, Polyspace를 사용하여 프로토타이핑부터 프로덕션에 이르기까지 임베디드 시스템을 설계하고 코딩하고 검증하는 방법을 알아볼 수 있습니다. 다음과 같은 작업을 수행할 수 있습니다.

  • 최적화된 C, C++, CUDA, Verilog, VHDL, 및 Structured Text 생성  
  • 부동소수점 및 고정소수점 설계 툴을 사용해 비용 대 성능 트레이드오프 분석
  • 인더루프 테스트를 사용해 생성된 코드 검증 및 프로파일링
  • AUTOSAR, ISO 26262, DO-178, MISRA C 및 CERT C 등의 표준 준수
  • 하드웨어 지원 패키지 애드온을 활용해 Arduino®에서 Zynq®까지 널리 사용되는 다양한 보드에서 프로토타입 구현

"우리는 모델 기반 설계를 이용하여 첫 비행을 성공리에 마쳤습니다. 제어나 통합 측면에 아무런 문제도 없었습니다. Embedded Coder로 Simulink 모델로부터 제어 법칙 코드를 생성하여 수작업 코드 생성에 따른 속도 저하를 없앴고, 팀이 자유롭게 프로그램의 더 넓은 목표를 추구할 수 있게 되었습니다."

MATLAB에서 코드 생성

단 세 반복 단계만으로 MATLAB 코드로부터 C, C++, CUDA 및 HDL 코드를 생성할 수 있습니다. 이렇게 생성된 코드는 데스크탑에서 모바일 기기와 임베디드 시스템에 이르기까지 어디서든 실행하고 배포할 수 있습니다. 설계가 발전함에 따라 MATLAB Coder가 새로운 코드를 자동으로 생성하므로 수작업으로 코딩할 필요가 없습니다. 이를 통해 설계 반복을 가속화하고 더 많은 설계 대안을 검토할 수 있습니다.

생성된 코드를 소스 코드, 정적 라이브러리 또는 동적 라이브러리로 제공되므로, MATLAB 외부의 데스크탑 또는 클라우드에서 실행되는 애플리케이션에 통합할 수 있습니다. 생성된 코드를 MEX 함수로 패키징하여 MATLAB에서 직접 사용할 수도 있습니다.

MATLAB 및 Simulink를 활용한 임베디드 코드 생성
임베디드 시스템 평가 키트

Simulink에서 코드 생성

Embedded Coder를 사용해 모델을 프로토타이핑 및 프로덕션에 적합한 고품질 소스 코드와 실행 파일로 변환할 수 있습니다. 기본 C 및 C++ 설정을 사용하거나, SIMD 명령어, 데이터 저장 클래스, 메모리 섹션 코드 배치를 활용해 더 높은 성능을 위해 최적화할 수도 있습니다. 런타임 시스템에 통합할 수 있는 ANSI/ISO C/C++, MISRA-C 또는 AUTOSAR 소스 코드를 생성할 수 있습니다. 또는 사용자 지정 하드웨어 기기에 자동으로 다운로드되어 실행되는 완전한 턴키 실행 파일을 생성할 수도 있습니다.

양방향 추적성 링크를 사용해 모델로부터 생성된 코드를 검사하거나, 코드, 데이터, 함수 인터페이스 및 코드 메트릭이 포함된 리포트를 생성할 수도 있습니다.

고정소수점

풍부한 데이터 형식과 툴을 활용해 double형에서 빠르게 변환하여 8비트, 16비트, 32비트 고정소수점 및 단정밀도 알고리즘을 개발할 수 있습니다. Fixed-Point Designer는 고정소수점 및 부동소수점 계산에 맞게 설계를 최적화하는 수학, 비트별, 배열 및 행렬 연산 등 다양한 함수를 제공합니다.

또한 MATLAB 코드, Simulink 모델, Stateflow 차트로부터 비트트루 C 및 C++와 합성 가능한 Verilog® 및 VHDL® 코드를 손쉽게 생성할 수 있습니다.

데이터 형식 재정의를 사용해 임베디드 고정소수점 또는 단정밀도 설계를 즉시 배정밀도로 변환하여 양자화의 영향을 분석할 수 있습니다. 그리고 오버플로, 정밀도 손실, 낭비되는 범위 또는 정밀도의 원인을 신속하게 파악할 수 있는 다양한 툴도 제공합니다.

Fixed-Point Designer
Polyspace

설계 및 코드 검증

요구사항을 작성하고 관리하며, 모델, 생성된 코드 및 테스트 케이스로 추적할 수 있습니다. 설계가 MAB와 같은 모델 표준을 준수하는지 검사할 수 있습니다. 시뮬레이션 기반 테스트(Software-in-the-Loop, Processor-in-the-Loop, Hardware-in-the-Loop 테스트 포함)를 개발하고 실행할 수 있습니다. Embedded Coder를 통해 태스크 및 함수 수준 프로파일링을 사용해 생성된 코드를 프로파일링할 수 있습니다.

Polyspace 제품은 수작업 코드와 생성된 코드를 지원합니다. 이를 통해 런타임 오류의 부재를 증명하고, 코딩 규칙을 적용하며, CWE, CERT-C, ISO/IEC 17961 등의 표준을 사용해 보안 취약점을 검사할 수 있습니다.

표준 지원

Embedded Coder를 사용해 AUTOSAR 및 MISRA C와 같이 널리 사용되는 소프트웨어 및 안전 표준을 준수하는 코드를 생성할 수 있습니다. MathWorks는 자동차, 의료, 철도 및 항공우주 임베디드 시스템에 대한 ISO 26262, IEC 61508, EN 50128, IEC 62304, DO-178, DO-254 및 기타 업계 표준에 따라 시스템과 품질 툴을 개발할 수 있는 인증 및 적격성 검증 키트를 제공합니다.

자세히 알아보기

표준 검증
Discovery Board

하드웨어 지원

신호 처리, 컴퓨터 비전, 영상 처리, 제어 시스템 등 어떤 애플리케이션이든 여러분의 하드웨어에 맞는 코드를 신속하게 생성하고 컴파일할 수 있습니다.

Raspberry Pi™ 또는 Arduino®와 같은 임베디드 플랫폼에서 코드를 생성하고 프로토타입을 제작할 수 있습니다. 모바일 플랫폼에서는 생성된 코드를 자체 앱에 통합하여 iPhone, iPad 또는 Android™ 기기에서 실행할 수 있으며, 카메라, 마이크, 가속도계와 같은 내장 센서에도 접근할 수 있습니다. 또한 강력한 마이크로프로세서 기반 시스템에 임베디드 시스템을 배포할 수 있습니다.

이와 함께 MathWorks와 Connections 파트너는 널리 사용되는 하드웨어를 위한 기본 제공 턴키 통합 기능을 제공합니다.

자세히 알아보기


예제 살펴보기

대화형 방식의 예제와 튜토리얼을 통해 기본 작업부터 고급 조작까지 차근차근 학습할 수 있습니다.