Fixed-Point Designer

주요 특징

  • MATLAB, Simulink 및 Stateflow에서의 고정 소수점 데이터형 사양
  • 고정 소수점 알고리즘의 가속화된 bit-true 시뮬레이션
  • 워드 길이 및 스케일링 데이터형 추천
  • 부동 소수점과 고정 소수점 결과 비교
  • 배정도 및 단일 정밀도에 대해 고정 소수점 데이터형 Override
  • C, HDL 및 PLC 코드 생성 지원
Using Fixed-Point Designer to specify and view data types and scaling for MATLAB, Simulink, and Stateflow.
Fixed-Point Designer를 사용하여 MATLAB, Simulink, Stateflow의 데이터형과 스케일링을 지정하고 확인하기

고정 소수점 사양

Fixed-Point Designer를 사용하면 MATLAB 코드, Simulink 모델 및 Stateflow 차트의 모든 고정 소수점 속성을 지정할 수 있습니다. 부호상태, 워드 길이 및 스케일링에 대해 완벽하게 제어할 수 있으며, 1비트에서 128비트에 이르는 워드 길이를 지원합니다. 센서와 작동기에서 필요한 2진 소수점 스케일링과 임의 기울기 및 바이어스 스케일링도 지원됩니다. 반올림과 오버플로우의 처리 방법과 같은 수학적인 세부 사항을 제어할 수 있습니다.

Simulink model demonstrating the effect of limited range and precision on a signal.
Scope에 표시된 것처럼 신호의 제한된 범위와 정밀도의 영향을 보여주는 Simulink 모델(오른쪽 위). Parameter Dialog Box(왼쪽 위)는 모든 고정 소수점 특성을 포함하는 블록 매개변수의 제어를 가능하게 합니다.

Fixed-Point Designer는 수학 및 비트 연산, 배열 및 행렬 연산자, CORDIC 구현, 삼각 함수와 같은 다양한 함수를 제공하여 고정 소수점 연산을 지원합니다.

Fixed-Point Designer를 사용하여 고정 소수점 연산을 제어할 수도 있습니다. 고정 소수점 변수는 단일 연산 특성 집합을 공유하거나 자체적으로 가지고 있는 연산 속성이 있을 수 있습니다.

A data-type-independent MATLAB algorithm that provides both a floating-point response and a fixed-point response.
부동 소수점 응답과 고정 소수점 응답을 모두 제공하는 데이터형에 독립적인 MATLAB 알고리즘입니다. 그림은 16비트 고정 소수점과 배정도 부동 소수점으로 지정된 데이터형과 함께 알고리즘을 출력하는 것을 보여줍니다.

Bit-True 설계 워크플로

Fixed-Point Designer는 모델 기반 설계를 사용하는 워크플로 전반에서 bit-true agreement를 제공합니다. 고정 소수점 알고리즘의 응답은 가속 및 SIL(software-in-the-loop)을 포함한 모든 시뮬레이션과 코드 생성 형식에 대해 bit‑true입니다. 고정 소수점 알고리즘의 분석과 검증은 bit-true 표현을 기반으로 합니다. Bit-true agreement는 문제를 워크플로 초반에 발견함으로써 비용과 노력을 아끼는 것과 같은 모델 기반 설계의 이점을 극대화합니다.

Comparison of output with original baseline output using Fixed-Point Designer.
16비트 워드 길이와 제안된 부분 길이를 사용한 데이터형 출력과 원래의 부동 소수점 기준 출력을 비교한 것입니다. 두 신호가 겹쳐서 표시되며(왼쪽) 10-6 순서로 차이점이 표시됩니다(오른쪽).

Simulink 모델의 경우, 모델이 고정 소수점 데이터형으로 구성되고 나면 고정 소수점 임베디드 시스템에 대하여 제한된 범위(range)와 정밀도(precision) 사이에서 상반관계를 탐색할 수 있습니다.

Fixed-Point Designer의 툴을 사용하면 값의 범위가 포함되는 것을 보장하면서 정밀도를 최적화하는 동시에 이러한 값에 접근하고 신호의 데이터형을 변경할 수 있습니다. 설계 최소값 및 최대값, 시뮬레이션 결과 또는 파생된 최소값 및 최대값 결과를 사용하여 데이터형 범위를 지정할 수 있습니다. 또한 출력 데이터형이 변경되지 않도록 잠글 수 있습니다.

Fixed-point simulation of a fuel rate control system designed using Simulink and Stateflow.
Simulink 및 Stateflow를 사용하여 설계된 연비 제어 시스템의 고정 소수점 시뮬레이션. Fixed-Point Tool을 통해 Simulink 모델(하단)의 데이터에 대한 범위와 정밀도의 균형을 유지할 수 있습니다.

부동 소수점의 고정 소수점 변환

Fixed-Point Designer는 모델을 부동 소수점 표현에서 고정 소수점 표현으로 효과적으로 변환할 수 있는 해석 툴을 제공합니다. 이 툴을 사용하여 최소 및 최대 데이터값을 기록하고 고정 소수점 연산 중 오버플로우가 발생할 때를 찾아낼 수 있습니다. 데이터형 override 기능을 통해 고정 소수점과 부동 소수점 간 데이터형을 변환함으로써 고정 소수점 알고리즘을 분석할 수 있습니다. 이 해석으로 설계에 사용된 변수의 동적 범위를 관찰하여 알고리즘이 부동 소수점이나 고정 소수점을 표현할 때 일관적일 수 있도록 할 수 있습니다.

MATLAB에서는 로깅을 위한 코드를 계측하여 시뮬레이션으로부터 최소값과 최대값을 수집하며 데이터형을 제안 받을 수 있습니다. 계측 함수는 log2 히스토그램을 생성할 수 있습니다. 각각의 기명(named) 및 중간 변수, 코드의 각 표현식에 대해 히스토그램이 생성됩니다. 이 히스토그램을 사용하여 고정 소수점 값에 대한 워드 길이와 소숫점이하 길이를 결정할 수 있습니다.

Fixed-Point Converter app showing range of proposed data type and percentage of simulation values.
고정 소수점으로 전환된 FIR(finite impulse-response) 필터에 대한 MATLAB 코드 생성 보고서. 로깅에 대한 코드를 계측하고, 최소값과 최대값을 수집하고, 시뮬레이션으로부터 히스토그램을 생성하며, 데이터형을 제안받을 수 있습니다.

Simulink 모델의 경우, Fixed-Point Tool을 사용하여 Simulink, StateflowCommunications System Toolbox™DSP System Toolbox™을 포함한 System Toolbox들에서 만들어진 부동 소수점 설계를 고정 소수점 설계로 자동 변환할 수 있습니다.

Fixed-Point Advisor를 이용하여 부동소수점을 고정소수점으로 변환
Fixed-Point Advisor에서 제공되는 자동화된 로깅 및 확장 툴이 고정 소수점 데이터 타입을 좀 더 최적화 할 수 있도록 도와줍니다.

Fixed-Point Designer의 디버깅 기능을 통하여 설계 벤치마킹, 모델링 오류 확인을 수행하고 이상적인 최소값 및 최대값을 결정하도록 부동 소수점 표현으로 전환할 수 있습니다.

Fixed-Point Tool을 사용하여 고정소수점 최적화
Fixed-Point Tool은 부동소수점 모델을 고정소수점 모델로 변환하고 고정소수점 데이터 유형에 대한 초기 배율을 구하는데 사용됩니다.

Accelerated 시뮬레이션

Fixed-Point Designer를 사용하면 MEX-파일 생성을 통해 고정 소수점 알고리즘을 가속할 수 있습니다. fiaccel함수를 제공하여 MATLAB 코드를 MEX-함수로 변환함으로써 고정 소수점 알고리즘의 실행 속도를 높일 수 있습니다.

Code showing how to accelerate a numerical filter fixed-point algorithm.
fiaccel 함수를 사용하여 수치 필터 고정 소수점 알고리즘을 가속하는 방법을 보여주는 예제 코드

코드 생성

Fixed-Point Designer를 MATLAB Coder™ 또는 Embedded Coder®와 함께 사용하면 고정 소수점 MATLAB 코드로부터 순수한 정수형 C 코드를 생성할 수 있습니다.

Fixed-point MATLAB code for a FIR filter and efficient C code generated using MATLAB Coder with Fixed-Point Designer.
FIR 필터를 위한 고정 소수점 MATLAB 코드(위)와 MATLAB Coder를 Fixed-Point Designer(아래)와 함께 사용하여 생성한 효율적인 C 코드

Fixed-Point Designer를 Simulink Coder™ 또는 Embedded Coder와 함께 사용하면 고정 소수점 Simulink 모델과 Stateflow 차트로부터 순수한 정수형 C 코드를 생성할 수 있습니다.

Model incorporating wide integer and fixed-point operations and generated multiword C code.
넓은 범위의 정수 및 고정 소수점 연산을 통합하는 모델(위)와 생성된 Multiword C 코드(아래). Multiword 코드는 일반적으로 매개 변수나 신호를 C 길이보다 넓은 데이터형과 함께 사용함으로써 트리거됩니다.

생성된 코드는 설계가 시뮬레이션에서와 똑같이 수행되도록 보장하기 위해 모델이 bit-true agreement를 따르게 합니다. 생성된 코드는 스케일링 조정, 반올림, 고급 고정 소수점 연산과 같은 고정 소수점 설계 구현의 모든 세부 사항을 자동으로 처리합니다. 1 ~ 128비트 단어 크기의 신호 및 매개변수에 대해 코드를 생성할 수 있습니다. 가속화된 시뮬레이션, 래피드 프로토타입, 양산용 배포를 포함하는 다양한 응용 프로그램용으로 생성된 코드를 사용할 수 있습니다.

Fixed-Point Designer를 HDL Coder™와 함께 사용하면 고정 소수점 MATLAB 코드, Simulink 모델 및 Stateflow 차트로부터 합성가능한 bit-true Verilog® 및 VHDL® 코드를 생성할 수 있습니다.

신호 처리 및 통신 분야에서의 R2014b 새로운 기능 소개

웨비나 보기