주요 콘텐츠

fimath

고정소수점 수학 연산 설정 지정

설명

fimath 객체를 사용하면 fi 객체에 대해 수행하는 고정소수점 산술 연산의 규칙을 결정하는 속성을 설정할 수 있습니다.

생성

설명

F = fimath는 디폴트 fimath 속성 설정을 사용하여 fimath 객체를 만듭니다.

예제

F = fimath(a)fi 객체 a의 고정소수점 수학 속성을 갖는 fimath 객체를 생성합니다.

예제

F = fimath(PropertyName = Value)는 하나 이상의 이름-값 쌍 인수를 사용하여 fimath 객체의 속성을 지정합니다. 생성자에서 지정되지 않은 모든 속성은 디폴트 값을 사용합니다.

예제

속성

모두 확장

fimath 속성은 fi 객체에 대해 수행하는 고정소수점 산술 연산의 규칙을 결정합니다. fimath 속성은 추이적 관계(transitivity)에 따라 fi 객체의 속성이기도 합니다. 개별 fi 객체에 이러한 속성을 설정할 수 있습니다. fimath 객체 속성은 항상 쓰기 가능합니다.

합산 데이터형 속성

두 피연산자가 덧셈 전에 합산 데이터형으로 형변환되는지 여부로, 다음 logical 값으로 지정됩니다.

  • 1 또는 true - 합산 전 형변환

  • 0 또는 false - 합산 전 형변환 안 함

이 속성은 항상 logical 값을 반환합니다.

참고

SumModeFullPrecision으로 설정된 경우 이 속성은 표시되지 않습니다.

데이터형: logical | single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

합산 데이터형에 대해 허용 가능한 최대 워드 길이로, 양의 정수로 지정됩니다.

데이터형: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

합산 데이터형의 편향으로, 부동소수점 숫자로 지정됩니다.

예: F = fimath('SumBias',0)

데이터형: single | double | half

합산 데이터형의 고정 지수로, 정수로 지정됩니다.

참고

SumFixedExponentSumFractionLength의 음수입니다. 한 속성을 변경하면 다른 속성도 변경됩니다.

데이터형: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

합산 데이터형의 소수부 길이(비트)로, 정수로 지정됩니다.

참고

SumFractionLengthSumFixedExponent의 음수입니다. 한 속성을 변경하면 다른 속성도 변경됩니다.

데이터형: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

합산 데이터형이 결정되는 방식으로, 다음 중 하나로 지정됩니다.

  • FullPrecision — 결과의 최대 정밀도를 유지합니다.

  • KeepLSB — 최하위 비트를 유지합니다. 합산 데이터형 워드 길이를 지정합니다. 단, 소수부 길이는 합의 최하위 비트를 유지하도록 설정됩니다.

  • KeepMSB — 최상위 비트를 유지합니다. 합산 데이터형 워드 길이를 지정합니다. 단, 소수부 길이는 합의 최상위 비트를 유지하고 소수부 비트 수가 필요한 개수를 초과하지 않도록 유지합니다.

  • SpecifyPrecision — 합산 데이터형의 워드 길이와 소수부 길이 또는 기울기와 편향을 지정합니다.

데이터형: char

합산 데이터형의 기울기로, 부동소수점 숫자로 지정됩니다.

참고

SumSlope=SumSlopeAdjustmentFactor×2SumFixedExponent

이러한 속성 중 하나를 변경하면 다른 속성에 영향을 줍니다.

데이터형: single | double | half

합산 데이터형의 기울기 조정 인자로, 1보다 크거나 같고 2보다 작은 부동소수점 숫자로 지정됩니다.

참고

SumSlope=SumSlopeAdjustmentFactor×2SumFixedExponent

이러한 속성 중 하나를 변경하면 다른 속성에 영향을 줍니다.

데이터형: single | double | half

합산 데이터형의 워드 길이(비트)로, 양의 정수로 지정됩니다.

데이터형: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

곱셈 데이터형 속성

곱셈 데이터형에 대해 허용 가능한 최대 워드 길이로, 양의 정수로 지정됩니다.

데이터형: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

곱셈 데이터형의 편향으로, 부동소수점 숫자로 지정됩니다.

데이터형: single | double | half

곱셈 데이터형의 고정 지수로, 정수로 지정됩니다.

참고

ProductFixedExponentProductFractionLength의 음수입니다. 한 속성을 변경하면 다른 속성도 변경됩니다.

데이터형: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

곱셈 데이터형의 소수부 길이(비트)로, 정수로 지정됩니다.

참고

ProductFractionLengthProductFixedExponent의 음수입니다. 한 속성을 변경하면 다른 속성도 변경됩니다.

데이터형: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

곱셈 데이터형이 결정되는 방식으로, 다음 값 중 하나로 지정됩니다.

  • FullPrecision — 결과의 최대 정밀도를 유지합니다.

  • KeepLSB — 최하위 비트를 유지합니다. 곱셈 워드 길이를 지정합니다. 단, 소수부 길이는 곱의 최하위 비트를 유지하도록 설정됩니다.

  • KeepMSB — 최상위 비트를 유지합니다. 곱셈 워드 길이를 지정합니다. 단, 소수부 길이는 곱의 최상위 비트를 유지하도록 설정됩니다.

  • SpecifyPrecision — 곱의 워드 길이와 소수부 길이 또는 기울기와 편향을 지정합니다.

데이터형: char

곱셈 데이터형의 기울기로, 부동소수점 숫자로 지정됩니다.

참고

ProductSlope=ProductSlopeAdjustmentFactor×2ProductFixedExponent

이러한 속성 중 하나를 변경하면 다른 속성에 영향을 줍니다.

데이터형: single | double | half

곱셈 데이터형의 기울기 조정 인자로, 1보다 크거나 같고 2보다 작은 부동소수점 숫자로 지정됩니다.

참고

ProductSlope=ProductSlopeAdjustmentFactor×2ProductFixedExponent

이러한 속성 중 하나를 변경하면 다른 속성에 영향을 줍니다.

데이터형: single | double | half

곱셈 데이터형의 워드 길이(비트)로, 양의 정수로 지정됩니다.

데이터형: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

반올림 속성과 오버플로 속성

오버플로인 경우 수행할 동작으로, 다음 값 중 하나로 지정됩니다.

  • Saturate — 오버플로 시 고정소수점 범위의 최댓값 또는 최솟값으로 포화됩니다.

  • Wrap — 오버플로 시 래핑.

데이터형: char

사용할 반올림 방법으로, 다음 중 하나로 지정됩니다.

  • Nearest — 가장 가까운 값으로 반올림합니다. 반올림 경계에 놓인 숫자는 양수 무한대 방향으로 올림합니다.

  • Ceiling — 양수 무한대 방향으로 올림합니다.

  • Convergent — 가장 가까운 값으로 반올림합니다. 반올림 경계에 놓인 숫자는 가장 가까운 짝수로 저장된 정수로 반올림합니다(최소 편향).

  • Zero — 0 방향으로 반올림합니다.

  • Floor — 음수 무한대 방향으로 내림합니다.

  • Round — 가장 가까운 값으로 반올림합니다. 반올림 경계에 놓인 숫자가 음수인 경우 음수 무한대 방향으로 내림하고, 양수인 경우 양수 무한대 방향으로 올림합니다.

데이터형: char

예제

모두 축소

이 예제에서는 디폴트 속성 설정을 사용하여 fimath 객체를 만드는 방법을 보여줍니다.

F = fimath
F = 
        RoundingMethod: Nearest
        OverflowAction: Saturate
           ProductMode: FullPrecision
               SumMode: FullPrecision

객체 생성 시 이름-값 쌍을 사용하여 fimath 객체의 속성을 설정합니다. 예를 들어, 오버플로 동작을 포화로 설정하고 반올림 방법을 수렴(Convergent)으로 설정합니다.

F = fimath('OverflowAction','Saturate','RoundingMethod','Convergent')
F = 
        RoundingMethod: Convergent
        OverflowAction: Saturate
           ProductMode: FullPrecision
               SumMode: FullPrecision

이 예제에서는 기존 fi 객체에서 fimath 객체를 만드는 방법을 보여줍니다.

디폴트 속성을 사용하고 지정된 값이 없는 fi 객체를 만듭니다.

a = fi
a = 

[]

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 16
        FractionLength: 15

afimath 속성을 쿼리합니다.

a.fimath
ans = 
        RoundingMethod: Nearest
        OverflowAction: Saturate
           ProductMode: FullPrecision
               SumMode: FullPrecision

a를 입력값으로 사용하여 fimath 객체를 만듭니다.

F = fimath(a)
F = 
        RoundingMethod: Nearest
        OverflowAction: Saturate
           ProductMode: FullPrecision
               SumMode: FullPrecision

F는 a와 동일한 fimath 속성을 갖습니다.

확장 기능

모두 확장

HDL 코드 생성
HDL Coder™를 사용하여 FPGA 및 ASIC 설계를 위한 VHDL, Verilog 및 SystemVerilog 코드를 생성할 수 있습니다.

버전 내역

R2006a 이전에 개발됨

모두 확장