매스웍스, MATLAB/Simulink R2011a 발표
C/C++ 코드 자동 생성하는 3가지 제품도
2011년 06월호 지면기사  / 글│윤 범 진 기자 <bjyun@autoelectronics.co.kr>





김영우 매스웍스 코리아 애플리케이션 엔지니어팀 상무


지난 4월, 매스웍스의 모델 기반 개발환경 MATLAB/Simulink 제품군의 릴리스 2011a(R2011a)가 발표됐다. 새 버전에서는 차세대 코드 생성 제품인 ‘MATLAB Coder’, ‘Simulink Coder’, ‘Embedded Coder’가 도입됐으며 임베디드 소프트웨어 검증 제품인 ‘Polyspace’를 포함한 80개 제품이 업데이트 됐다.
MATLAB R2011a는 이전 버전에 비해 MATLAB에서 제공하는 많은 선형 대수함수의 성능 향상이 이루어졌고 최적화 툴박스(Optimization Toolbox)에서 이차계획법을 위한 내부점(interior point) 해법(solver)의 대규모 지원, 그리고 병렬 컴퓨팅 툴박스(Parallel Computing Toolbox)와 MATLAB 컴파일러를 이용해 최대 8개의 MATLAB worker 세션 활용이 가능한 애플리케이션 및 컴포넌트를 개발할 수 있다. 또한 총수익 및 거래 비용을 다루는 파이낸셜 툴박스(Financial Toolbox)의 객체지향 포트폴리오 최적화 해법과 이코노메트릭스 툴박스(Econometrics Toolbox)의 엥글-그레인저(Engle-Granger) 및 조한센(Johansen) 공적분 테스트와 VEC 매개변수 예측 이외에도, MATLAB/Simulink를 위한 새로운 시스템 툴박스로서 Signal Processing Blockset과 Filter Design Toolbox 기능을 결합한 ‘DSP System Toolbox’, Communications Toolbox와 Communications Blockset 기능을 결합한 ‘Communications System Toolbox’, Video and Image Processing Blockset의 기능에 새로운 컴퓨터 비전 알고리즘을 추가한 ‘Computer Vision System Toolbox’, 위상 배열 신호처리 시스템의 설계 및 분석에 이용하는 알고리즘과 도구로 사용할 수 있는 ‘Phased Array System Toolbox’가 각각 추가됐다.

Simulink R2011a는 Simulink에서 모델간의 시뮬레이션 결과를 비교하기 위한 Signal Logging Selector, Simulink Report Generator의 XML 텍스트 비교에서 Simulink 모델을 결합하는 기능, Simulink HDL Coder, EDA Simulator Link 및 xPC Target의 자일링스(Xilinx) 반도체 소자를 위한 FPGA-in-the-Loop, 사용자 정의 가능한 I/O 및 보드 지원, SimDriveline의 Simscape 언어를 사용한 사용자 정의 컴포넌트의 작성, Simulink Design Verifier 상에서 Polyspace 기술을 사용해 오버플로 및 0으로 나누기 설계 오류를 자동으로 검출하는 기능이 추가 내지는 강화됐다.

MATLAB에서 자동으로 C 코드 생성
이번에 새롭게 선보인 MATLAB Coder는 이식 가능한(ANSI/ISO와 호환) C/C++ 코드를 MATLAB 알고리즘으로부터 직접 생성할 수 있는 제품이다.
MATLAB Coder는 기존의 ‘Embedded MATLAB feature of Real-Time Workshop’에 코드 생성용 GUI와 라이브러리 확장 등을 추가한 것이다. 이 제품을 이용하면 지금까지 MATLAB에서 알고리즘을 생성, 엔지니어가 수작업으로 알고리즘을 확인하면서 C/C++로 코딩해야 하는 작업을 단순화할 수 있다.
매스웍스 코리아의 김영우 애플리케이션 엔지니어팀 상무는 “MATLAB 알고리즘을 C로 수동 변환하려면 몇 주가 소요될 수 있고 프로그래머가 알고리즘을 이해하지 못해 설계 오류가 발생할 수 있다”며 “MATLAB Coder를 사용함으로써 코드 변환과 그에 따른 검증 테스트 시간을 획기적으로 단축할 수 있다”고 말했다.
MATLAB Coder는 MATLAB 언어로 작성된 코드를 MEX(MATLAB Executable) 파일로 변환할 수 있다는 점도 특징이다. MEX 파일은 C 코드를 MATLAB에서 실행 가능한 바이너리 코드로 변환한 것으로, 주로 MATLAB에서 수행하는 다양한 C 코드의 검증 작업 등에 이용된다. 검증 작업에 MEX 파일을 이용하게 되면 크게 두 가지 이점이 있다. 한 가지는 MATLAB 언어로 작성된 코드에 비해 MATLAB 상에서의 실행 속도가 빠르다는 것이다. 또 한 가지는 MATLAB 언어로 작성된 코드에서 생성된 C 코드와 MATLAB 이외의 방법으로 작성한 C 코드를 통합할 수 있다는 것이다. 예를 들면, Microsoft Visual Studio와 같은 타사 도구에서 생성한 코드를 받아 들여 확인하거나 다시 컴파일 할 수 있다.
MATLAB Coder는 MATLAB 언어의 기본적인 행렬/어레이, 데이터 타입, 프로그래밍 요소를 지원한다. 또한 400개 정도의 연산자/함수, 200개 정도의 System Objects를 지원한다. 이외에도 가변 크기 데이터 처리를 위한 고정 또는 동적 메모리 할당 기능이 있다.

Simulink/Stateflow 모델에서
C 코드 생성
MATLAB Coder가 항공우주 및 국방, 통신, 전자, 반도체 산업 분야를 타깃하고 있다면 Simulink Coder는 여기에 자동차와 산업용 자동화 및 기계산업 분야까지 아우르고 있다. Simulink Coder는 기존의 Real-Time Workshop에 Stateflow Coder를 통합한 것으로, Simulink 모델과 블록 다이어그램 등에서 자동으로 코드를 생성할 수 있다. 생선된 코드는 시뮬레이션 가속, 래피드 프로토타이핑 및 HiL(Hardware-in-the-Loop) 테스트를 비롯해 실시간 및 비실시간 애플리케이션에 사용할 수 있다. 또한 사용자는 Simulink를 사용해 생성된 코드를 조정하고 모니터링하거나 MATLAB 및 Simulink 외부의 코드를 실행하고 연동할 수 있다.

임베디드 시스템에 최적화된
C 코드 생성
한편 Embedded Coder는 기존의 Real-Time Workshop Embedded Coder에 Embedded IDE Link와 Target Support Package를 통합시킨 제품이다. 이 제품은 임베디드 프로세서, 래피드 프로토타이핑 보드 및 양산 단계에 사용되는 마이크로프로세서를 위한 코드를 생성하며, 텍사스 인스트루먼트 사의 Code Composer Studio, 그린힐스 사의 MULTI, 아나로그디바이스 사의 Visual DSP++ 등 타사 통합개발환경(IDE)과의 연계도 가능하다. 또한 RTOS의 유무에 따라 멀티레이트, 멀티태스크 및 멀티 코어 코드 실행이 가능하고, 코드 및 요구사항에 적합한 모델의 추적과 함께 SIL 및 PIL 테스트, 사용자 정의 주석 및 코드 보고서를 포함하는 코드 검증을 할 수 있다. 특히, ASAP2, AUTOSAR, DO-178, IEC 61508, ISO 26262 및 MISRA-C를 포함하는 표준을 지원해 항공우주 및 국방, 자동차, 산업자동화 분야에서 폭넓게 사용할 수 있다.

사용 환경에 맞춰 선택
C/C++ 코드의 자동 생성을 위해서는 MATLAB Coder가 필수이며 사용환경에 맞춰 Simulink Coder 또는 Embedded Coder를 결합해 사용한다(예를 들면, MATLAB Coder + Simulink Coder, MATLAB Coder + Embedded Coder 등). 다시 말해 Simulink Coder와 Embedded Coder를 사용하려면 MATLAB Coder가 필요하다는 것이다. 기존의 Real-Time Workshop을 이용하던 사용자는 업그레이드해 이용할 수 있다.
김영우 상무는 “MATLAB/Simulink를 사용하는 자동차, 항공우주, 산업용 기기 업계에서는 Simulink 모델로부터 C 코드를 생성하는 것이 일반적이다. 그러나 복잡한 신호 및 이미지 처리가 수반되는 통신업계나 알고리즘 집중적인(algorithm-intensive) 애플리케이션에서는 MATLAB Coder가 MATLAB에서 작성한 알고리즘의 최적화를 가속화할 수 있다”고 말했다. 



<저작권자 © AEM. 무단전재 및 재배포, AI학습 이용 금지>


  • 100자평 쓰기
  • 로그인


  • 미분류
  • 세미나/교육/전시

TOP