마이크로칩 - 로고

MICROCHIP CoreFPU 코어 부동 소수점 유닛

마이크로칩-코어FPU-Cor-부동소수점 유닛-제품

 

소개 

  • CoreFPU(CoreFPU)는 단정밀도 및 배정밀도 부동 소수점 수에 대한 부동 소수점 연산 및 변환 연산을 위해 설계되었습니다. CoreFPU는 고정 소수점에서 부동 소수점으로, 부동 소수점에서 고정 소수점으로의 변환과 부동 소수점의 덧셈, 뺄셈, 곱셈 연산을 지원합니다. IEEE® 부동 소수점 연산 표준(IEEE 754)은 부동 소수점 연산을 위한 기술 표준입니다.
  • 중요: CoreFPU는 정규화된 숫자에 대한 계산만 지원하며, Verilog 언어만 지원됩니다. VHDL은 지원되지 않습니다.

요약
다음 표는 CoreFPU의 특성을 요약한 것입니다.

표 1. CoreFPU 특성 

코어 버전 이 문서는 CoreFPU v3.0에 적용됩니다.
지원되는 장치 제품군
  • PolarFire® SoC
  • 폴라파이어
  • RTG4™
지원되는 도구 흐름 Libero® SoC v12.6 이상 릴리스가 필요합니다.
라이센스 CoreFPU는 라이센스 잠금이 되어 있지 않습니다.
설치 지침 CoreFPU는 IP 카탈로그 업데이트 기능을 통해 Libero SoC의 IP 카탈로그에 자동으로 설치되어야 합니다. 또는 카탈로그에서 CoreFPU를 수동으로 다운로드할 수도 있습니다. IP 코어가 설치되면

설치 후 SmartDesign 내에서 구성, 생성, 인스턴스화되어 프로젝트에 포함됩니다.

장치 활용도 및 성능 CoreFPU의 활용도 및 성능 정보 요약은 장치 리소스 활용도 및 성능에 나와 있습니다.

CoreFPU 변경 로그 정보
이 섹션에서는 포괄적인view 최신 릴리스부터 새롭게 통합된 기능들을 살펴보겠습니다. 해결된 문제에 대한 자세한 내용은 '해결된 문제' 섹션을 참조하세요.

버전 새로운 소식
v3.0 IP의 정확도를 높이기 위해 추가 출력 플래그를 구현했습니다.
v2.1 이중 정밀도 기능이 추가되었습니다.
v2.0 타이밍 파형을 업데이트했습니다.
v1.0 CoreFPU의 첫 번째 생산 릴리스

1. 특징

CoreFPU의 주요 특징은 다음과 같습니다.

  • IEEE-754 표준에 따라 단일 및 이중 정밀도 부동 소수점 수를 지원합니다.
  • 다음과 같은 변환을 지원합니다.
    • 고정 소수점에서 부동 소수점으로 변환
    • 부동 소수점에서 고정 소수점으로 변환
  • 다음과 같은 산술 연산을 지원합니다.
    • 부동 소수점 덧셈
    • 부동 소수점 뺄셈
    • 부동 소수점 곱셈
  • 산술 연산에 대해서만 반올림 방식(가장 가까운 짝수로 반올림)을 제공합니다.
  • 부동 소수점 숫자에 대한 오버플로, 언더플로, 무한대(양의 무한대, 음의 무한대), 조용한 NaN(QNaN) 및 신호 NaN(SNaN)에 대한 플래그를 제공합니다.
  • 산술 연산의 완전한 파이프라인 구현을 지원합니다.
  • 설계 요구 사항에 대한 핵심을 구성하기 위한 조항 제공

기능 설명

  • IEEE 부동 소수점 연산 표준(IEEE 754)은 부동 소수점 연산을 위한 기술 표준입니다. 부동 소수점이라는 용어는 숫자의 유효 자릿수를 기준으로 아무 곳에나 위치하는 숫자의 진수(소수점 또는 이진수)를 의미합니다.
    부동 소수점 수는 일반적으로 과학적 표기법으로 표현되며, 분수(F)와 특정 진법(r)의 지수(E)를 사용합니다(F × r^E). 10진수는 10의 진법을 사용하고(F × 10^E), 2진수는 2의 진법을 사용합니다(F × 2^E).
  • 부동 소수점 숫자의 표현은 고유하지 않습니다. 예를 들어amp예를 들어, 55.66은 5.566 × 10^1, 0.5566 × 10^2, 0.05566 × 10^3 등으로 표현됩니다. 소수 부분은 정규화됩니다. 정규화된 형태에서는 진법 소수점 앞에 0이 아닌 숫자가 하나만 있습니다. 예를 들어amp10진수 123.4567은 1.234567 × 10^2로 정규화되고, 2진수 1010.1011B는 1.0101011B × 2^3으로 정규화됩니다.
  • 부동 소수점 숫자는 고정된 비트 수로 표현될 경우 정밀도가 떨어진다는 점을 알아두는 것이 중요합니다.amp32비트 또는 64비트). 이는 실수의 수가 무한하기 때문입니다(0.0에서 0.1까지의 작은 범위 내에서도). 반면에
    n비트 이진 패턴은 유한한 2^n개의 서로 다른 숫자를 나타냅니다. 따라서 모든 실수가 표현되는 것은 아닙니다. 대신 가장 가까운 근사값을 사용하므로 정확도가 떨어집니다.

단정밀도 부동 소수점 숫자는 다음과 같이 표현됩니다.

  • 부호 비트: 1비트
  • 지수 폭: 8비트
  • 유효 정밀도: 24비트(23비트는 명시적으로 저장됨)

그림 2-1. 32비트 프레임

마이크로칩-코어FPU-Cor-부동 소수점 유닛- (2)이중 정밀도 부동 소수점 숫자는 다음과 같이 표현됩니다.

  • 부호 비트: 1비트
  • 지수 폭: 11비트
  • 유효 정밀도: 53비트(52비트는 명시적으로 저장됨)

그림 2-2. 64비트 프레임 마이크로칩-코어FPU-Cor-부동 소수점 유닛- (3)CoreFPU는 두 개의 변환 모듈(고정 소수점 변환 및 부동 소수점-고정 소수점 변환)과 세 개의 산술 연산(FP ADD, FP SUB, FP MULT)을 최상위 수준으로 통합한 것입니다. 사용자는 필요에 따라 연산을 구성하여 선택한 연산에 리소스가 효율적으로 사용되도록 할 수 있습니다.
다음 그림은 포트가 포함된 최상위 CoreFPU 블록 다이어그램을 보여줍니다.

그림 2-3. CoreFPU 포트 블록 다이어그램

마이크로칩-코어FPU-Cor-부동 소수점 유닛- (4)다음 표는 입력 및 출력 포트의 너비를 보여줍니다. 표 2-1. 입력 및 출력 포트 너비

신호 단일 정밀도 너비 이중 정밀도 너비
아인 [31:0] [63:0]
큰 상자 [31:0] [63:0]
아웃 [31:0] [63:0]
입을 삐죽 내밀기 [31:0] [63:0]

고정 소수점에서 부동 소수점으로(변환)

CoreFPU를 부동 소수점으로 고정하면 고정 소수점에서 부동 소수점으로 변환하는 모듈이 실행됩니다. CoreFPU의 입력(ain)은 정수 및 소수점 비트를 포함하는 모든 고정 소수점 숫자입니다. CoreFPU 구성기에는 입력 정수 및 소수점 폭을 선택하는 옵션이 있습니다. 입력은 di_valid 신호에서 유효하고 출력은 do_valid 신호에서 유효합니다. 고정 소수점에서 부동 소수점으로 변환하는 연산의 출력(aout)은 단정밀도 또는 배정밀도 부동 소수점 형식입니다.
Examp고정 소수점에서 부동 소수점으로의 변환 연산을 위한 le는 다음 표에 나열되어 있습니다.
표 2-2. 전amp고정 소수점에서 부동 소수점으로 변환하는 le

고정 소수점 숫자 부동 소수점 숫자
아인 정수 분수 아웃 징후 멱지수 가수
0x12153524(32비트) 00010010000101010 011010100100100 0x4610a9a9 0 10001100 00100001010100110101001
0x0000000000008CCC

(64비트)

0000000000000000000000000000000000000000000000001 000110011001100 0x3FF199999999999A 0 01111111111 0001100110011001100110011001100110011001100110011010

부동 소수점에서 고정 소수점으로(변환) 
부동 소수점에서 고정 소수점으로 구성된 CoreFPU는 부동 소수점에서 고정 소수점으로의 변환 모듈을 추론합니다. CoreFPU의 입력(ain)은 단정밀도 또는 배정밀도 부동 소수점 숫자이며, 정수 및 소수점 비트를 포함하는 고정 소수점 형식의 출력(aout)을 생성합니다. 입력은 di_valid 신호에서 유효하고 출력은 do_valid 신호에서 유효합니다. CoreFPU 구성기에는 출력 정수 및 소수점 폭을 선택하는 옵션이 있습니다.
Examp부동 소수점에서 고정 소수점으로의 변환 연산은 다음 표에 나와 있습니다.

표 2-3. 전amp부동 소수점에서 고정 소수점으로 변환하는 방법

부동 소수점 숫자 고정 소수점 숫자
아인 징후 멱지수 가수 아웃 정수 분수
0x41bd6783(32비트) 0 10000011 01111010110011110000011 0x000bd678 00000000000010111 101011001111000
0x4002094c447c30d3

(64비트)

0 10000000000 0010000010010100110001000100011111000011000011010011 0x0000000000012095 0000000000000000000000000000000000000000000000010 010000010010101

부동 소수점 덧셈(산술 연산)
FP ADD로 구성된 CoreFPU는 부동 소수점 덧셈 모듈을 추론합니다. 두 부동 소수점 숫자(ain과 bin)를 더하고 부동 소수점 형식으로 출력(pout)을 제공합니다. 입력과 출력은 단정밀도 또는 배정밀도 부동 소수점 숫자입니다. 입력은 di_valid 신호에서 유효하고 출력은 do_valid 신호에서 유효합니다. 코어는 덧셈 연산에 따라 ovfl_fg(오버플로), qnan_fg(조용한 비숫자), snan_fg(신호 비숫자), pinf_fg(양의 무한대), ninf_fg(음의 무한대) 플래그를 생성합니다.
Examp부동 소수점 덧셈 연산에 대한 파일은 다음 표에 나열되어 있습니다.
표 2-4. 전amp부동 소수점 덧셈 연산(32비트)을 위한 le

부동 소수점 값 징후 멱지수 가수
부동 소수점 입력 1 ain (0x4e989680) 0 10011101 00110001001011010000000
부동 소수점 입력 2진(0x4f191b40) 0 10011110 00110010001101101000000
부동 소수점 덧셈 출력 pout(0x4f656680) 0 10011110 11001010110011010000000

표 2-5. 전amp부동 소수점 덧셈 연산(64비트)을 위한 le

부동 소수점 값 징후 멱지수 가수
부동 소수점 입력 1

ain (0x3ff4106ee30caa32)

0 01111111111 0100000100000110111011100011000011001010101000110010
부동 소수점 입력 2

bin (0x40020b2a78798e61)

0 10000000000 0010000010110010101001111000011110011000111001100001
부동 소수점 덧셈 출력 pout(0x400c1361e9ffe37a) 0 10000000000 1100000100110110000111101001111111111110001101111010

부동 소수점 뺄셈(산술 연산) 
FP SUB로 구성된 CoreFPU는 부동 소수점 뺄셈 모듈을 추론합니다. 이 모듈은 두 부동 소수점 숫자(ain과 bin)를 뺄셈하고 부동 소수점 형식으로 출력(pout)을 제공합니다. 입력과 출력은 단정밀도 또는 배정밀도 부동 소수점 숫자입니다. 입력은 di_valid 신호에서 유효하고 출력은 do_valid 신호에서 유효합니다. 코어는 뺄셈 연산에 따라 ovfl_fg(오버플로), unfl_fg(언더플로), qnan_fg(조용한 비숫자), snan_fg(신호 비숫자), pinf_fg(양의 무한대), ninf_fg(음의 무한대) 플래그를 생성합니다.
Examp부동 소수점 뺄셈 연산에 대한 내용은 다음 표에 나열되어 있습니다.
표 2-6. 전amp부동 소수점 뺄셈 연산(32비트)을 위한 le

부동 소수점 값 징후 멱지수 가수
부동 소수점 입력 1 ain (0xac85465f) 1 01011001 00001010100011001011111
부동 소수점 입력 2진(0x2f516779) 0 01011110 10100010110011101111001
부동 소수점 뺄셈 출력 pout(0xaf5591ac) 1 01011110 10101011001000110101011
부동 소수점 값 징후 멱지수 가수
부동 소수점 입력 1

아인(0x405569764adff823)

0 10000000101 0101011010010111011001001010110111111111100000100011
부동 소수점 입력 2

bin (0x4057d04e78dee3fc)

0 10000000101 0111110100000100111001111000110111101110001111111100
부동 소수점 뺄셈 출력 pout(0xc02336c16ff75ec8) 1 10000000010 0011001101101100000101101111111101110101111011001000

부동 소수점 곱셈(산술 연산)
FP MULT로 구성된 CoreFPU는 부동 소수점 곱셈 모듈을 추론합니다. 두 부동 소수점 숫자(ain과 bin)를 곱하고 부동 소수점 형식으로 출력(pout)을 제공합니다. 입력과 출력은 단정밀도 또는 배정밀도 부동 소수점 숫자입니다. 입력은 di_valid 신호에서 유효하고 출력은 do_valid 신호에서 유효합니다. 코어는 곱셈 연산에 따라 ovfl_fg(오버플로), unfl_fg(언더플로), qnan_fg(조용한 비숫자), snan_fg(신호 비숫자), pinf_fg(양의 무한대), ninf_fg(음의 무한대) 플래그를 생성합니다.
Examp부동 소수점 곱셈 연산에 대한 파일은 다음 표에 나열되어 있습니다.
표 2-8. 전amp부동 소수점 곱셈 연산(32비트)을 위한 le

부동 소수점 값 징후 멱지수 가수
부동 소수점 입력 1 ain (0x1ec7a735) 0 00111101 10001111010011100110101
부동 소수점 입력 2진(0x6ecf15e8) 0 11011101 10011110001010111101000
부동 소수점 곱셈 출력 pout(0x4e21814a) 0 10011100 01000011000000101001010
부동 소수점 값 징후 멱지수 가수
부동 소수점 입력 1

ain (0x40c1f5a9930be0df)

0 10000001100 0001111101011010100110010011000010111110000011011111
부동 소수점 입력 2

bin (0x400a0866c962b501)

0 10000000000 1010000010000110011011001001011000101011010100000001
부동 소수점 곱셈 출력 pout (0x40dd38a1c3e2cae9) 0 10000001101 1101001110001010000111000011111000101100101011101001

 덧셈과 뺄셈을 위한 진리표 
다음 진리표는 덧셈과 뺄셈 연산의 값을 나열합니다. 표 2-10. 덧셈 진리표

데이터 A 데이터 B 사인 비트 결과 과다 언더플로 스나엔 QNaN 핀프 니프
QNaN/SNaN x 0 POSQNaN 0 0 0 1 0 0
x QNaN/SNaN 0 POSQNaN 0 0 0 1 0 0
0 포스제로 0 0 0 0 0 0
양한(y) 0 양한(y) 0 0 0 0 0 0
음의 유한(y) 1 음의 유한(y) 0 0 0 0 0 0
양무한 0 양무한 0 0 0 0 1 0
네진무한 1 네진무한 0 0 0 0 0 1
양한(y) 0 양한(y) 0 0 0 0 0 0
양 유한 양무한 0 양무한 0 0 0 0 1 0
테이블 2-10. 덧셈을 위한 진리표(계속)
데이터 A 데이터 B 사인 비트 결과 과다 언더플로 스나엔 QNaN 핀프 니프
양 유한 네진무한 1 네진무한 0 0 0 0 0 1
음의 유한(y) 1 음의 유한(y) 0 0 0 0 0 0
음의 유한 양무한 0 양무한 0 0 0 0 1 0
음의 유한 네진무한 1 네진무한 0 0 0 0 0 1
양무한 0 양무한 0 0 0 0 1 0
양무한 양 유한 0 양무한 0 0 0 0 1 0
양무한 음의 유한 0 양무한 0 0 0 0 1 0
양무한 양무한 0 양무한 0 0 0 0 1 0
양무한 네진무한 0 POSQNaN 0 0 0 1 0 0
네진무한 1 네진무한 0 0 0 0 0 1
네진무한 양 유한 1 네진무한 0 0 0 0 0 1
네진무한 음의 유한 1 네진무한 0 0 0 0 0 1
네진무한 양무한 0 POSQNaN 0 0 0 1 0 0
네진무한 네진무한 1 네진무한 0 0 0 0 0 1
양 유한 양 유한 0 양 유한 0 0 0 0 0 0
양 유한 양 유한 0 양무한 0 0 0 0 1 0
양 유한 양 유한 0/1 QNaN 0 0 0 1 0 0
양 유한 양 유한 0/1 스나엔 0 0 1 0 0 0
양 유한 양 유한 0 POSSNaN 1 0 1 0 0 0
양 유한 음의 유한 0 양 유한 0 0 0 0 0 0
양 유한 음의 유한 1 음의 유한 0 0 0 0 0 0
양 유한 음의 유한 0 POSSNaN 0 1 1 0 0 0
음의 유한 양 유한 0 양 유한 0 0 0 0 0 0
음의 유한 양 유한 1 음의 유한 0 0 0 0 0 0
음의 유한 양 유한 0 POSSNaN 0 1 1 0 0 0
음의 유한 음의 유한 1 음의 유한 0 0 0 0 0 0
음의 유한 음의 유한 1 네진무한 0 0 0 0 0 1
음의 유한 음의 유한 0/1 QNaN 0 0 0 1 0 0
음의 유한 음의 유한 0/1 스나엔 0 0 1 0 0 0
음의 유한 음의 유한 0 POSSNaN 1 0 1 0 0 0
데이터 A 데이터 B 사인 비트 결과 과다 언더플로 스나엔 QNaN 핀프 니프
QNaN/SNaN x 0 POSQNaN 0 0 0 1 0 0
x QNaN/SNaN 0 POSQNaN 0 0 0 1 0 0
0 포스제로 0 0 0 0 0 0
양한(y) 1 음의 유한(y) 0 0 0 0 0 0
음의 유한(y) 0 양한(y) 0 0 0 0 0 0
양무한 1 네진무한 0 0 0 0 0 1
네진무한 0 양무한 0 0 0 0 1 0
양한(y) 0 양한(y) 0 0 0 0 0 0
양 유한 양무한 1 네진무한 0 0 0 0 0 1
양 유한 네진무한 0 양무한 0 0 0 0 1 0
음의 유한(y) 1 음의 유한(y) 0 0 0 0 0 0
음의 유한 양무한 1 네진무한 0 0 0 0 0 1
테이블 2-11. 뺄셈에 대한 진리표(계속)
데이터 A 데이터 B 사인 비트 결과 과다 언더플로 스나엔 QNaN 핀프 니프
음의 유한 네진무한 0 양무한 0 0 0 0 1 0
양무한 0 양무한 0 0 0 0 1 0
양무한 양 유한 0 양무한 0 0 0 0 1 0
양무한 음의 유한 0 양무한 0 0 0 0 1 0
양무한 양무한 0 POSQNaN 0 0 0 1 0 0
양무한 네진무한 0 양무한 0 0 0 0 1 0
네진무한 1 네진무한 0 0 0 0 0 1
네진무한 양 유한 1 네진무한 0 0 0 0 0 1
네진무한 음의 유한 1 네진무한 0 0 0 0 0 1
네진무한 양무한 1 네진무한 0 0 0 0 0 1
네진무한 네진무한 0 POSQNaN 0 0 0 1 0 0
양 유한 양 유한 0 양 유한 0 0 0 0 0 0
양 유한 양 유한 1 음의 유한 0 0 0 0 0 0
양 유한 양 유한 0 POSSNaN 0 1 1 0 0 0
양 유한 음의 유한 0 양 유한 0 0 0 0 0 0
양 유한 음의 유한 0 양무한 0 0 0 0 1 0
양 유한 음의 유한 0/1 QNaN 0 0 0 1 0 0
양 유한 음의 유한 0/1 스나엔 0 0 1 0 0 0
양 유한 음의 유한 0 POSSNaN 1 0 1 0 0 0
음의 유한 양 유한 1 음의 유한 0 0 0 0 0 0
음의 유한 양 유한 1 네진무한 0 0 0 0 0 1
음의 유한 양 유한 0/1 QNaN 0 0 0 1 0 0
음의 유한 양 유한 0/1 스나엔 0 0 1 0 0 0
음의 유한 양 유한 0 POSSNaN 1 0 1 0 0 0
음의 유한 음의 유한 0 양 유한 0 0 0 0 0 0
음의 유한 음의 유한 1 음의 유한 0 0 0 0 0 0
음의 유한 음의 유한 0 POSSNaN 0 1 1 0 0 0

중요한:

  • 앞의 표에서 숫자는 임의의 숫자를 나타냅니다.
  • 앞의 표에서 는 상관 없음 조건을 나타냅니다.

곱셈에 대한 진리표 
다음 진리표는 곱셈 연산에 대한 값을 나열합니다.

표 2-12. 곱셈의 진리표

데이터 A 데이터 B 사인 비트 결과 과다 언더플로 스나엔 QNaN 핀프 니프
QNaN/SNaN x 0 POSQNaN 0 0 0 1 0 0
x QNaN/SNaN 0 POSQNaN 0 0 0 1 0 0
0 포스제로 0 0 0 0 0 0
양 유한 0 포스제로 0 0 0 0 0 0
음의 유한 0 포스제로 0 0 0 0 0 0
양무한 0 POSQNaN 0 0 0 1 0 0
네진무한 0 POSQNaN 0 0 0 1 0 0
테이블 2-12. 곱셈에 대한 진리표(계속)
데이터 A 데이터 B 사인 비트 결과 과다 언더플로 스나엔 QNaN 핀프 니프
양 유한 0 포스제로 0 0 0 0 0 0
양 유한 양무한 0 양무한 0 0 0 0 1 0
양 유한 네진무한 1 네진무한 0 0 0 0 0 1
음의 유한 0 포스제로 0 0 0 0 0 0
음의 유한 양무한 1 네진무한 0 0 0 0 0 1
음의 유한 네진무한 0 양무한 0 0 0 0 1 0
양무한 0 POSQNaN 0 0 0 1 0 0
양무한 양 유한 0 양무한 0 0 0 0 1 0
양무한 음의 유한 1 네진무한 0 0 0 0 0 1
양무한 양무한 0 양무한 0 0 0 0 1 0
양무한 네진무한 1 네진무한 0 0 0 0 0 1
네진무한 0 POSQNaN 0 0 0 1 0 0
네진무한 양 유한 1 네진무한 0 0 0 0 0 1
네진무한 음의 유한 0 양무한 0 0 0 0 1 0
네진무한 양무한 1 네진무한 0 0 0 0 0 1
네진무한 네진무한 0 양무한 0 0 0 0 1 0
양 유한 양 유한 0 양 유한 0 0 0 0 0 0
양 유한 양 유한 0 양무한 0 0 0 0 1 0
양 유한 양 유한 0 POSQNaN 0 0 0 1 0 0
양 유한 양 유한 0 POSSNaN 0 0 1 0 0 0
양 유한 양 유한 0 POSSNaN 1 0 1 0 0 0
양 유한 양 유한 0 POSSNaN 0 1 1 0 0 0
양 유한 음의 유한 1 음의 유한 0 0 0 0 0 0
양 유한 음의 유한 1 네진무한 0 0 0 0 0 1
양 유한 음의 유한 0 POSQNaN 0 0 0 1 0 0
양 유한 음의 유한 0 POSSNaN 0 0 1 0 0 0
양 유한 음의 유한 0 POSSNaN 1 0 1 0 0 0
양 유한 음의 유한 0 POSSNaN 0 1 1 0 0 0
음의 유한 양 유한 1 음의 유한 0 0 0 0 0 0
음의 유한 양 유한 1 네진무한 0 0 0 0 0 1
음의 유한 양 유한 0 POSQNaN 0 0 0 1 0 0
음의 유한 양 유한 0 POSSNaN 0 0 1 0 0 0
음의 유한 양 유한 0 POSSNaN 1 0 1 0 0 0
음의 유한 양 유한 0 POSSNaN 0 1 1 0 0 0
음의 유한 음의 유한 0 양 유한 0 0 0 0 0 0
음의 유한 음의 유한 0 양무한 0 0 0 0 1 0
음의 유한 음의 유한 0 POSQNaN 0 0 0 1 0 0
음의 유한 음의 유한 0 POSQNaN 0 0 1 0 0 0
음의 유한 음의 유한 0 POSQNaN 1 0 1 0 0 0
음의 유한 음의 유한 0 POSQNaN 0 1 1 0 0 0

중요한:

부호 비트 '0'은 양수 출력을 정의하고 '1'은 음수 출력을 정의합니다.
이전 표의 x는 상관 없음 조건을 나타냅니다.

CoreFPU 매개변수 및 인터페이스 신호
이 섹션에서는 CoreFPU Configurator 설정 및 I/O 신호의 매개변수에 대해 설명합니다.

구성 GUI 매개변수 
다음 표와 같이 FPU 장치에 적용할 수 있는 여러 가지 구성 가능한 옵션이 있습니다. 기본값 이외의 구성이 필요한 경우, 구성 대화 상자를 사용하여 구성 가능한 옵션에 적합한 값을 선택합니다.

표 3-1. CoreFPU 구성 GUI 매개변수 

매개변수 이름 기본 설명
정도 하나의 필요에 따라 작업을 선택하세요:

단일 정밀도
이중 정밀도

변환 유형 고정 소수점에서 부동 소수점으로 변환 필요에 따라 작업을 선택하세요:
  • 고정 소수점에서 부동 소수점으로 변환
  • 부동 소수점에서 고정 소수점으로 변환
  • 부동 소수점 덧셈
  • 부동 소수점 뺄셈
  • 부동 소수점 곱셈
입력 분수 너비1 15 입력 ain 및 bin 신호의 소수점을 구성합니다.

유효 범위는 31–1입니다.

출력 분수 너비2 15 출력 aout 신호의 소수점을 구성합니다.

유효 범위는 51–1입니다.

중요한:

  1. 이 매개변수는 고정 소수점에서 부동 소수점으로 변환하는 동안에만 구성할 수 있습니다.
  2. 이 매개변수는 부동 소수점에서 고정 소수점으로 변환하는 동안에만 구성할 수 있습니다.

입력 및 출력 신호(질문하기)
다음 표는 CoreFPU의 입력 및 출력 포트 신호를 나열합니다.

표 3-2. 포트 설명 

신호 이름 너비 유형 설명
클락 1 입력 메인 시스템 클럭
rstn 1 입력 액티브 로우 비동기 리셋
di_valid 1 입력 활성-높음 입력 유효

이 신호는 ain[31:0], ain[63:0] 및 bin[31:0], bin[63:0]에 있는 데이터가 유효함을 나타냅니다.

아인 32/64 입력 입력 버스(모든 작업에 사용됨)
큰 상자1 32/64 입력 B 입력 버스(산술 연산에만 사용됨)
아웃2 32/64 산출 부동 소수점에 고정된 값이나 부동 소수점에서 고정 소수점으로의 변환 연산 시 출력 값이 선택됩니다.
입을 삐죽 내밀기1 32/64 산출 덧셈, 뺄셈, 곱셈 연산을 선택하면 출력 값이 표시됩니다.
테이블 3-2. 포트 설명(계속)
신호 이름 너비 유형 설명
유효하지 않음 1 산출 액티브 하이 신호

이 신호는 pout/aout 데이터 버스에 있는 데이터가 유효함을 나타냅니다.

ovfl_fg3 1 산출 액티브 하이 신호

이 신호는 부동 소수점 연산 중 오버플로를 나타냅니다.

언플_에프지 1 산출 액티브 하이 신호

이 신호는 부동 소수점 연산 중의 언더플로를 나타냅니다.

qnan_fg3 1 산출 액티브 하이 신호

이 신호는 부동 소수점 연산 중에 QNaN(Quiet Not a Number)을 나타냅니다.

스난_에프지 1 산출 액티브 하이 신호

이 신호는 부동 소수점 연산 중에 SNaN(Signaling Not-a-Number)을 나타냅니다.

핀프_프지3 1 산출 액티브 하이 신호

이 신호는 부동 소수점 연산 중 양의 무한대를 나타냅니다.

닌프_에프지 1 산출 액티브 하이 신호

이 신호는 부동 소수점 연산 중 음의 무한대를 나타냅니다.

중요한:

  1. 이 포트는 부동 소수점 덧셈, 뺄셈 또는 곱셈 연산에만 사용할 수 있습니다.
  2. 이 포트는 고정 소수점에서 부동 소수점으로, 부동 소수점에서 고정 소수점으로 변환하는 작업에만 사용할 수 있습니다.
  3. 이 포트는 부동 소수점에서 고정 소수점으로의 변환, 부동 소수점 덧셈, 부동 소수점 뺄셈, 부동 소수점 곱셈에 사용할 수 있습니다.

Libero Design Suite에서 CoreFPU 구현

이 섹션에서는 Libero Design Suite에서 CoreFPU를 구현하는 방법을 설명합니다.

스마트디자인 

CoreFPU는 Libero IP 카탈로그에서 다운로드할 수 있습니다. web 저장소. 카탈로그에 등록되면 SmartDesign 흐름을 사용하여 코어가 인스턴스화됩니다. SmartDesign을 사용하여 코어를 구성, 연결 및 생성하는 방법에 대한 자세한 내용은 Libero SoC 온라인 도움말을 참조하십시오.
코어 인스턴스를 구성하고 생성한 후, CoreFPU와 함께 제공되는 테스트벤치를 사용하여 기본 기능을 시뮬레이션합니다. 테스트벤치 매개변수는 CoreFPU 구성에 따라 자동으로 조정됩니다. CoreFPU는 더 큰 설계의 구성 요소로 인스턴스화됩니다.
그림 4-1. 산술 연산을 위한 SmartDesign CoreFPU 인스턴스

마이크로칩-코어FPU-Cor-부동 소수점 유닛- (5)그림 4-2. 변환 작업을 위한 SmartDesign CoreFPU 인스턴스 마이크로칩-코어FPU-Cor-부동 소수점 유닛- (6)

 

고정 소수점에서 부동 소수점으로 변환
고정 소수점에서 부동 소수점으로 변환하는 동안 입력 분수 폭을 설정할 수 있습니다. 출력 폭은 기본적으로 단정밀도 부동 소수점의 경우 32비트, 배정밀도 부동 소수점의 경우 64비트로 설정됩니다.
고정 소수점에서 부동 소수점으로 변환하려면 다음 그림과 같이 고정 소수점에서 부동 소수점으로 변환 유형을 선택합니다.

마이크로칩-코어FPU-Cor-부동 소수점 유닛- (7)부동 소수점에서 고정 소수점으로 
부동 소수점에서 고정 소수점으로 변환하는 동안 출력 분수 너비를 구성할 수 있으며, 입력 너비는 기본적으로 단정밀도 부동 소수점의 경우 32비트로, 배정밀도 부동 소수점의 경우 64비트로 설정됩니다.
부동 소수점에서 고정 소수점으로 변환하려면 다음 그림과 같이 부동 소수점에서 고정 소수점으로 변환 유형을 선택합니다.
그림 4-4. 부동 소수점에서 고정 소수점으로의 CoreFPU 구성기 마이크로칩-코어FPU-Cor-부동 소수점 유닛- (8)부동 소수점 덧셈/뺄셈/곱셈
부동 소수점 덧셈, 뺄셈, 곱셈 연산 중에는 입력 분수 너비와 출력 분수 너비를 구성할 수 없습니다. 이는 부동 소수점 산술 연산이며, 입력/출력 너비는 기본적으로 32비트 단정밀도 부동 소수점의 경우 64비트로 설정됩니다.
다음 그림은 부동 소수점 뺄셈 연산을 위한 CoreFPU 구성기를 보여줍니다.

그림 4-5. 부동 소수점 뺄셈을 위한 CoreFPU 구성기마이크로칩-코어FPU-Cor-부동 소수점 유닛- (9)시뮬레이션(질문하기)
시뮬레이션을 실행하려면 코어 구성 창에서 "사용자 테스트벤치"를 선택하세요. CoreFPU를 생성한 후, 사전 합성 테스트벤치인 하드웨어 기술 언어(HDL)가 생성됩니다. files는 Libero에 설치됩니다.

시뮬레이션 파형(질문하기)
이 섹션에서는 CoreFPU의 시뮬레이션 파형에 대해 설명합니다.
다음 그림은 32비트와 64비트 모두에 대한 고정 소수점에서 부동 소수점으로의 변환 파형을 보여줍니다.마이크로칩-코어FPU-Cor-부동 소수점 유닛- (10)

마이크로칩-코어FPU-Cor-부동 소수점 유닛- (11) 마이크로칩-코어FPU-Cor-부동 소수점 유닛- (12) 마이크로칩-코어FPU-Cor-부동 소수점 유닛- (13)

시스템 통합
다음 그림은 예를 보여줍니다amp핵심을 사용하는 방법. 이 예에서amp설계 UART는 설계와 호스트 PC 간의 통신 채널로 사용됩니다. 신호 ain과 bin(각각 32비트 또는 64비트 폭)은 UART에서 설계로의 입력입니다. CoreFPU는 di_valid 신호를 수신하면 결과를 계산합니다. 결과를 계산한 후 do_valid 신호는 하이 레벨로 상승하고 결과(aout/pout 데이터)를 출력 버퍼에 저장합니다. 이 동일한 절차는 변환 및 산술 연산에도 적용됩니다. 변환 연산의 경우 입력 ain만 있으면 충분하지만, 산술 연산의 경우 ain과 bin 입력이 모두 필요합니다. 출력 aout은 변환 연산에, pout 포트는 산술 연산에 활성화됩니다.
그림 4-16. 전ampCoreFPU 시스템의 le

마이크로칩-코어FPU-Cor-부동 소수점 유닛- (14)

 

  1. 합성(질문하기)
    CoreFPU에서 합성을 실행하려면 설계 루트를 IP 구성 요소 인스턴스로 설정하고 Libero 설계 흐름 창에서 합성 도구를 실행합니다.
    장소 및 경로 (질문하기)
    디자인 합성이 완료되면 배치 및 배선 도구를 실행하세요. CoreFPU에는 특별한 배치 및 배선 설정이 필요하지 않습니다.
  2. 사용자 테스트벤치(질문하기)
    CoreFPU IP 릴리스에는 사용자 테스트벤치가 제공됩니다. 이 테스트벤치를 사용하여 CoreFPU의 기능적 동작을 검증할 수 있습니다.

사용자 테스트벤치의 간략화된 블록 다이어그램은 다음 그림과 같습니다. 사용자 테스트벤치는 구성된 CoreFPU 설계(UUT)를 인스턴스화하고, 동작 테스트 데이터 생성기, 필요한 클록 및 리셋 신호를 포함합니다.
그림 4-17. CoreFPU 사용자 테스트벤치

마이크로칩-코어FPU-Cor-부동 소수점 유닛- (15)중요: ModelSim 시뮬레이터에서 출력 신호를 모니터링해야 합니다. 시뮬레이션 섹션을 참조하세요.

추가 참조 (질문하기)
이 섹션에서는 추가 정보 목록을 제공합니다.
소프트웨어, 장치 및 하드웨어에 대한 업데이트 및 추가 정보를 보려면 다음을 방문하십시오.

Microchip FPGA 및 PLD의 지적 재산 페이지 web대지.

  1. 알려진 문제 및 해결 방법(질문하기)
    CoreFPU v3.0에는 알려진 문제나 해결 방법이 없습니다.
  2. 중단된 기능 및 장치(질문하기)
    이 IP 릴리스에는 중단된 기능이나 장치가 없습니다.

어휘

다음은 문서에서 사용된 용어와 정의 ​​목록입니다.
표 6-1. 용어 및 정의

용어 정의
플루언서 부동 소수점 단위
FP 추가 부동 소수점 덧셈
FP 서브 부동 소수점 뺄셈
FP 멀티 부동 소수점 곱셈

해결된 문제 
다음 표에는 다양한 CoreFPU 릴리스에 대해 해결된 모든 문제가 나열되어 있습니다.

표 7-1. 해결된 문제

풀어 주다 설명
3.0 다음은 v3.0 릴리스에서 해결된 모든 문제 목록입니다.

사건 번호: 01420387 및 01422128

반올림 체계 논리(가장 가까운 짝수로 반올림)를 추가했습니다.

2.1 다음은 v2.1 릴리스에서 해결된 모든 문제 목록입니다.
여러 코어가 인스턴스화되면 중복된 모듈이 존재하기 때문에 설계에 문제가 발생합니다.
CoreFPU IP 인스턴스의 이름을 바꾸면 "정의되지 않은 모듈" 오류가 발생합니다.
1.0 최초 릴리스

장치 리소스 활용 및 성능

CoreFPU 매크로는 다음 표에 나열된 제품군에서 구현됩니다.
표 8-1. 32비트용 FPU PolarFire 유닛 장치 활용도

FPGA 리소스 이용
가족 4루트 디에프에프 수학 블록 장치 퍼센tage 성능 숨어 있음
고정 소수점에서 부동 소수점으로
폴라파이어® 260 104 364 0 MPF300T 0.12 310MHz 3
부동 소수점에서 고정 소수점으로
폴라파이어 591 102 693 0 MPF300T 0.23 160MHz 3
부동 소수점 덧셈
폴라파이어 1575 1551 3126 0 MPF300T 1.06 340MHz 16
부동 소수점 뺄셈
폴라파이어 1561 1549 3110 0 MPF300T 1.04 345MHz 16
부동 소수점 곱셈
폴라파이어 465 847 1312 4 MPF300T 0.44 385MHz 14
FPGA 리소스 이용
가족 4루트 디에프에프 수학 블록 장치 퍼센tage 성능 숨어 있음
고정 소수점에서 부동 소수점으로
RTG4™ 264 104 368 0 RT4G150 0.24 160MHz 3
부동 소수점에서 고정 소수점으로
RTG4 439 112 551 0 RT4G150 0.36 105MHz 3
부동 소수점 덧셈
RTG4 1733 1551 3284 0 RT4G150 1.16 195MHz 16
부동 소수점 뺄셈
RTG4 1729 1549 3258 0 RT4G150 1.16 190MHz 16
부동 소수점 곱셈
RTG4 468 847 1315 4 RT4G150 0.87 175MHz 14
FPGA 리소스 이용
가족 4루트 디에프에프 수학 블록 장치 퍼센tage 성능 숨어 있음
고정 소수점에서 부동 소수점으로
폴라파이어® 638 201 849 0 MPF300T 0.28 305MHz 3
부동 소수점에서 고정 소수점으로
폴라파이어 2442 203 2645 0 MPF300T 0.89 110MHz 3
부동 소수점 덧셈
폴라파이어 5144 4028 9172 0 MPF300T 3.06 240MHz 16
부동 소수점 뺄셈
폴라파이어 5153 4026 9179 0 MPF300T 3.06 250MHz 16
부동 소수점 곱셈
폴라파이어 1161 3818 4979 16 MPF300T 1.66 340MHz 27
FPGA 리소스 이용
가족 4루트 디에프에프 수학 블록 장치 퍼센tage 성능 숨어 있음
고정 소수점에서 부동 소수점으로
RTG4™ 621 201 822 0 RT4G150 0.54 140MHz 3
부동 소수점에서 고정 소수점으로
RTG4 1114 203 1215 0 RT4G150 0.86 75MHz 3
부동 소수점 덧셈
RTG4 4941 4028 8969 0 RT4G150 5.9 140MHz 16
부동 소수점 뺄셈
RTG4 5190 4026 9216 0 RT4G150 6.07 130MHz 16
부동 소수점 곱셈
RTG4 1165 3818 4983 16 RT4G150 3.28 170MHz 27

중요: 주파수를 높이려면 합성 설정에서 리타이밍 옵션 사용을 선택하세요.

개정 내역

개정 내역은 문서에서 구현된 변경 사항을 설명합니다. 변경 사항은 최신 출판물부터 시작하여 개정별로 나열됩니다.

마이크로칩-코어FPU-Cor-부동 소수점 유닛- (1)

마이크로칩 FPGA 지원

Microchip FPGA 제품 그룹은 고객 서비스, 고객 기술 지원 센터, web사이트 및 전 세계 영업 사무소. 고객은 이미 질문에 대한 답변을 받았을 가능성이 높으므로 지원팀에 문의하기 전에 Microchip 온라인 리소스를 방문하는 것이 좋습니다.
를 통해 기술 지원 센터에 문의하십시오. web사이트에서 www.microchip.com/support. FPGA 디바이스 부품 번호를 언급하고 적절한 케이스 카테고리를 선택하고 디자인을 업로드하십시오. files 기술 지원 사례를 만드는 동안.
제품 가격, 제품 업그레이드, 업데이트 정보, 주문 상태 및 승인과 같은 비기술적 제품 지원에 대해서는 고객 서비스에 문의하십시오.

  • 북미에서 전화하려면 800.262.1060으로 전화하세요.
  • 전 세계에서 650.318.4460으로 전화하세요.
  • 팩스: 전 세계 어디에서나 650.318.8044

마이크로칩 정보

상표
"Microchip" 이름과 로고, "M" 로고 및 기타 이름, 로고 및 브랜드는 미국 및/또는 기타 국가에서 Microchip Technology Incorporated 또는 그 계열사 및/또는 자회사의 등록 및 미등록 상표입니다("Microchip 상표"). Microchip 상표에 대한 정보는 다음에서 찾을 수 있습니다. https://www.microchip.com/en-us/about/legal-information/microchip-trademarks
ISBN: 979-8-3371-0947-3

법적 고지
이 간행물과 여기에 있는 정보는 Microchip 제품을 설계, 테스트 및 응용 프로그램과 통합하는 것을 포함하여 Microchip 제품에만 사용할 수 있습니다. 이 정보를 다른 방식으로 사용하는 것은 이 약관을 위반하는 것입니다. 장치 응용 프로그램에 관한 정보는 귀하의 편의를 위해서만 제공되며 업데이트로 대체될 수 있습니다. 애플리케이션이 사양을 충족하는지 확인하는 것은 귀하의 책임입니다. 추가 지원이 필요한 경우 지역 Microchip 영업 사무소에 문의하거나 다음에서 추가 지원을 받으십시오. www.microchip.com/en-us/support/design-help/client-support-services

이 정보는 MICROCHIP에서 "있는 그대로" 제공합니다. MICROCHIP은 비침해, 상품성 및 특정 목적에의 적합성에 대한 묵시적 보증을 포함하되 이에 국한되지 않는 정보와 관련하여 명시적이든 묵시적이든, 서면이든 구두이든, 법률적이든 기타이든 어떠한 종류의 진술이나 보증도 하지 않습니다. 또는 그 상태, 품질 또는 성능과 관련된 보증도 하지 않습니다.

어떠한 경우에도 MICROCHIP은 정보 또는 그 사용과 관련된 간접적, 특수적, 징벌적, 우발적 또는 결과적 손실, 피해, 비용 또는 경비에 대해 어떠한 원인으로 발생하든, MICROCHIP이 가능성을 통보받았거나 피해가 예측 가능한 경우에도 책임을 지지 않습니다. 법률에서 허용하는 최대 범위 내에서 정보 또는 그 사용과 관련된 모든 청구에 대한 MICROCHIP의 총 책임은 귀하가 정보에 대해 MICROCHIP에 직접 지불한 수수료 금액을 초과하지 않습니다(있는 경우).

생명 유지 및/또는 안전 애플리케이션에서 Microchip 장치를 사용하는 것은 전적으로 구매자의 위험이며, 구매자는 그러한 사용으로 인해 발생하는 모든 손해, 청구, 소송 또는 비용으로부터 Microchip을 방어, 보상하고 무해하게 보호하는 데 동의합니다. 달리 명시되지 않는 한, Microchip 지적 재산권에 따라 묵시적 또는 기타 방식으로 라이선스가 양도되지 않습니다.

Microchip Devices 코드 보호 기능
Microchip 제품의 코드 보호 기능에 대한 자세한 내용은 다음과 같습니다.

  • 마이크로칩 제품은 해당 마이크로칩 데이터 시트에 포함된 사양을 충족합니다.
  • Microchip은 자사 제품군이 의도된 방식으로, 작동 사양 내에서, 정상적인 조건에서 사용될 경우 안전하다고 믿습니다.
  • Microchip은 지적 재산권을 소중히 여기고 적극적으로 보호합니다. Microchip 제품의 코드 보호 기능을 위반하려는 시도는 엄격히 금지되며 디지털 밀레니엄 저작권법을 위반할 수 있습니다.
  • Microchip이나 다른 반도체 제조업체는 코드의 보안을 보장할 수 없습니다. 코드 보호는 제품이 "깨지지 않는다"는 것을 보장한다는 것을 의미하지 않습니다. 코드 보호는 끊임없이 진화하고 있습니다. Microchip은 제품의 코드 보호 기능을 지속적으로 개선하기 위해 최선을 다하고 있습니다.

문서 / 리소스

MICROCHIP CoreFPU 코어 부동 소수점 유닛 [PDF 파일] 사용자 가이드
v3.0, v2.1, v2.0, v1.0, CoreFPU 코어 부동 소수점 유닛, 코어 부동 소수점 유닛, 부동 소수점 유닛, 포인트 유닛

참고문헌

댓글을 남겨주세요

이메일 주소는 공개되지 않습니다. 필수 항목은 표시되어 있습니다. *