문서 ID: 000075459 콘텐츠 형태: 문제 해결 마지막 검토일: 2012-09-11

부동 소수점 상수는 부동 소수점 사용자 지정 명령이 사용될 때 단정밀도 또는 배정밀도로 컴파일됩니까?

환경

  • 부동 소수점
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    설명

    기본적으로 사용자 지정 명령을 사용하는 경우 부동 소수점 상수는 단정밀도로 컴파일되고 단정밀도 부동 소수점 연산은 하드웨어에서 구현됩니다. 다음 해결 방법은 부동 소수점 상수가 배정밀도로 컴파일되도록 강제하고 배정밀도 부동 소수점 연산이 소프트웨어에서 구현되도록 합니다.

    다음 해결 방법 중 하나를 사용할 수 있습니다.

    옵션 1 - 수가 단정밀도로 변환되지 않도록 배정밀도 부동 소수점 상수에 접미사 "L"을 추가하여 소프트웨어를 수정합니다.

    다음 표에서는 예제 코드와 부동 소수점 사용자 지정 명령 하드웨어 사용, 정밀도 및 구현이 하드웨어인지 소프트웨어인지 여부를 보여 줍니다.

    예제 코드 FP CI 사용 정밀도 구현
    비= ᅡ * 4.67 단일 하드웨어
    비 = ᅡ * 4.67 아니요 더블 소프트웨어
    b = ᅡ * 4.67f 단일 하드웨어
    b = ᅡ * 4.67f 아니요 단일 소프트웨어
    b = ᅡ * 4.67L 상관 없음* 더블 소프트웨어
    * FP CI 하드웨어는 배정밀도 연산에 사용되지 않습니다.

    옵션 2 - public.mk 에서 -mcustom-fpu-config 플래그를 수동으로 제거하고 개별 컴파일러 플래그로 바꾸되 -fsingle-precision-constant 플래그는 생략합니다.

    "-mcustom-fpu-config=60-1"에서 "-mcustom-fmuls=252 –mcustom-fadds=253 –mcustom-fsubs=254" 또는

    "-mcustom-fpu-config=60-2"에서 "-mcustom-fmuls=252 –mcustom-fadds=253 –mcustom-fsubs=254 –mcustom-divs=255"

    60-1과 60-2의 차이점은 60-1에는 –mcustom-divs 플래그가 없다는 것입니다.

    자세한 내용은 http://www.altera.com/literature/ug/ug_nios2_custom_instruction.pdf 의 부록 D를 참조하십시오 .

    관련 제품

    이 문서는 다음 항목에 적용됩니다. 1 제품

    인텔® 프로그래밍 가능 장치

    이 페이지의 콘텐츠는 원본 영어 콘텐츠에 대한 사람 번역 및 컴퓨터 번역의 조합으로 완성되었습니다. 이 콘텐츠는 편의와 일반적인 정보 제공을 위해서만 제공되었으며, 완전하거나 정확한 것으로 간주되어선 안 됩니다. 이 페이지의 영어 버전과 번역 간 모순이 있는 경우, 영어 버전이 우선적으로 적용됩니다. 이 페이지의 영어 버전을 확인하십시오.