MICROCHIP - logo

MICROCHIP CoreFPU Jednostka zmiennoprzecinkowa

MICROCHIP-CoreFPU-COR-Floating-Point-Unit-produxt

 

Wstęp 

  • Jednostka Core Floating Point Unit (CoreFPU) została zaprojektowana do arytmetyki i konwersji liczb zmiennoprzecinkowych, zarówno dla liczb zmiennoprzecinkowych pojedynczej, jak i podwójnej precyzji. CoreFPU obsługuje konwersję liczb stałoprzecinkowych na zmiennoprzecinkowe i zmiennoprzecinkowych na stałoprzecinkowe, a także operacje dodawania, odejmowania i mnożenia liczb zmiennoprzecinkowych. Standard IEEE® dla arytmetyki zmiennoprzecinkowej (IEEE 754) to standard techniczny dla obliczeń zmiennoprzecinkowych.
  • Ważne: CoreFPU obsługuje wyłącznie obliczenia na znormalizowanych liczbach i obsługiwany jest tylko język Verilog; VHDL nie jest obsługiwany.

Streszczenie
Poniższa tabela zawiera podsumowanie charakterystyki CoreFPU.

Tabela 1. Charakterystyka CoreFPU 

Wersja podstawowa Niniejszy dokument dotyczy CoreFPU v3.0.
Obsługiwane rodziny urządzeń
  • SoC PolarFire®
  • PolarFire
  • RTG4™
Obsługiwany przepływ narzędzi Wymaga wersji Libero® SoC v12.6 lub nowszej.
Koncesjonowanie CoreFPU nie jest objęte blokadą licencyjną.
Instrukcje instalacji CoreFPU musi zostać automatycznie zainstalowany w katalogu IP układu Libero SoC za pomocą funkcji aktualizacji katalogu IP. Alternatywnie, CoreFPU można pobrać ręcznie z katalogu. Po zainstalowaniu rdzenia IP

Po zainstalowaniu jest on konfigurowany, generowany i uruchamiany w programie SmartDesign w celu uwzględnienia w projekcie.

Wykorzystanie i wydajność urządzenia Podsumowanie informacji o wykorzystaniu i wydajności CoreFPU znajduje się w dokumencie Wykorzystanie zasobów urządzenia i wydajność.

Informacje o dzienniku zmian CoreFPU
Ta sekcja zawiera wyczerpujące informacje oview nowo wprowadzonych funkcji, począwszy od najnowszej wersji. Aby uzyskać więcej informacji o rozwiązanych problemach, zobacz sekcję Rozwiązane problemy.

Wersja Co nowego
wersja 3.0 Wprowadzono dodatkowe flagi wyjściowe w celu zwiększenia dokładności adresu IP
wersja 2.1 Dodano funkcję podwójnej precyzji
wersja 2.0 Zaktualizowano przebiegi czasowe
wersja 1.0 Pierwsza wersja produkcyjna CoreFPU

1. Funkcje

CoreFPU ma następujące kluczowe cechy:

  • Obsługuje liczby zmiennoprzecinkowe pojedynczej i podwójnej precyzji zgodnie ze standardem IEEE-754
  • Obsługuje następujące konwersje:
    • Konwersja stałoprzecinkowa na zmiennoprzecinkową
    • Konwersja zmiennoprzecinkowa na stałoprzecinkową
  • Obsługuje następujące operacje arytmetyczne:
    • Dodawanie zmiennoprzecinkowe
    • Odejmowanie zmiennoprzecinkowe
    • Mnożenie zmiennoprzecinkowe
  • Zapewnia schemat zaokrąglania (zaokrąglanie do najbliższej liczby parzystej) wyłącznie dla operacji arytmetycznych
  • Zapewnia flagi przepełnienia, niedopełnienia, nieskończoności (dodatniej nieskończoności, ujemnej nieskończoności), cichego NaN (QNaN) i sygnalizującego NaN (SNaN) dla liczb zmiennoprzecinkowych.
  • Obsługuje w pełni potokową implementację operacji arytmetycznych
  • Zapewnia możliwość skonfigurowania rdzenia pod kątem wymagań projektowych

Opis funkcjonalny

  • IEEE Standard for Floating-Point Arithmetic (IEEE 754) to standard techniczny dla obliczeń zmiennoprzecinkowych. Termin „zmiennoprzecinkowy” odnosi się do punktu dziesiętnego liczby (punktu dziesiętnego lub punktu binarnego), który jest umieszczony w dowolnym miejscu względem cyfr znaczących liczby.
    Liczby zmiennoprzecinkowe są zazwyczaj wyrażane w notacji naukowej, przy użyciu ułamka (F) i wykładnika (E) o określonej podstawie (r), w postaci F × r^E. Liczby dziesiętne używają podstawy 10 (F × 10^E), natomiast liczby binarne używają podstawy 2 (F × 2^E).
  • Reprezentacja liczby zmiennoprzecinkowej nie jest jednoznaczna. Na przykładampnp. liczba 55.66 jest reprezentowana jako 5.566 × 10^1, 0.5566 × 10^2, 0.05566 × 10^3 itd. Część ułamkowa jest znormalizowana. W znormalizowanej formie przed punktem dziesiętnym znajduje się tylko jedna cyfra różna od zera. Na przykładampnp. liczba dziesiętna 123.4567 jest znormalizowana jako 1.234567 × 10^2; liczba binarna 1010.1011B jest znormalizowana jako 1.0101011B × 2^3.
  • Należy pamiętać, że liczby zmiennoprzecinkowe tracą precyzję, gdy są reprezentowane za pomocą stałej liczby bitów (np.ampnp. 32-bitowy lub 64-bitowy). Dzieje się tak, ponieważ istnieje nieskończona liczba liczb rzeczywistych (nawet w małym zakresie od 0.0 do 0.1). Z drugiej strony,
    n-bitowy układ binarny reprezentuje skończoną liczbę 2^n różnych liczb. W związku z tym nie wszystkie liczby rzeczywiste są reprezentowane. Zamiast tego używane jest najbliższe przybliżenie, co powoduje utratę dokładności.

Liczbę zmiennoprzecinkową pojedynczej precyzji przedstawia się następująco:

  • Bit znaku: 1 bit
  • Szerokość wykładnika: 8 bitów
  • Precyzja znacząca: 24 bity (23 bity są jawnie przechowywane)

Rysunek 2-1. Ramka 32-bitowa

MICROCHIP-CoreFPU-COR-Jednostka-Zmiennoprzecinkowa- (2)Liczbę zmiennoprzecinkową podwójnej precyzji przedstawia się następująco:

  • Bit znaku: 1 bit
  • Szerokość wykładnika: 11 bitów
  • Precyzja znacząca: 53 bity (52 bity są jawnie przechowywane)

Rysunek 2-2. Ramka 64-bitowa MICROCHIP-CoreFPU-COR-Jednostka-Zmiennoprzecinkowa- (3)CoreFPU to integracja najwyższego poziomu dwóch modułów konwersji (Fixed to Float point i Float to Fixed point) i trzech operacji arytmetycznych (FP ADD, FP SUB i FP MULT). Użytkownik może skonfigurować dowolną z operacji na podstawie wymagań, tak aby zasoby były wykorzystywane dla wybranej operacji.
Poniższy rysunek przedstawia schemat blokowy najwyższego poziomu CoreFPU z portami.

Rysunek 2-3. Schemat blokowy portów CoreFPU

MICROCHIP-CoreFPU-COR-Jednostka-Zmiennoprzecinkowa- (4)W poniższej tabeli podano szerokość portów wejściowych i wyjściowych. Tabela 2-1. Szerokość portów wejściowych i wyjściowych

Sygnał Szerokość pojedynczej precyzji Szerokość podwójnej precyzji
nie [31:0] [63:0]
kosz [31:0] [63:0]
na zewnątrz [31:0] [63:0]
dąsy [31:0] [63:0]

Konwersja stałoprzecinkowa na zmiennoprzecinkową

CoreFPU skonfigurowane jako fixed-to-floating-point wnioskuje o module konwersji fixed-to-floating-point. Dane wejściowe (ain) do CoreFPU to dowolna liczba stałoprzecinkowa zawierająca bity całkowite i ułamkowe. Konfigurator CoreFPU ma opcje wyboru szerokości wejściowych liczb całkowitych i ułamkowych. Dane wejściowe są prawidłowe dla sygnału di_valid, a dane wyjściowe są prawidłowe dla do_valid. Dane wyjściowe (aout) operacji fixed-to-floating są w formacie zmiennoprzecinkowym pojedynczej lub podwójnej precyzji.
ExampW poniższej tabeli wymieniono operacje konwersji liczby stałoprzecinkowej na zmiennoprzecinkową.
Tabela 2-2. Byłyample do konwersji stałoprzecinkowej na zmiennoprzecinkową

Liczba stałoprzecinkowa Liczba zmiennoprzecinkowa
nie Liczba całkowita Frakcja na zewnątrz Podpisać Wykładnik potęgowy Mantysa
0x12153524 (32-bitowy) 00010010000101010 011010100100100 0x4610a9a9 0 10001100 00100001010100110101001
0x0000000000008CCC

(64-bitowy)

0000000000000000000000000000000000000000000000001 000110011001100 0x3FF199999999999A 0 01111111111 0001100110011001100110011001100110011001100110011010

Konwersja zmiennoprzecinkowa na stałoprzecinkową 
CoreFPU skonfigurowane jako float-to-fixed-inferuje moduł konwersji float-to-fixed-point. Dane wejściowe (ain) do CoreFPU to dowolna liczba zmiennoprzecinkowa pojedynczej lub podwójnej precyzji i generuje dane wyjściowe (aout) w formacie fixed-point zawierającym bity całkowite i ułamkowe. Dane wejściowe są prawidłowe dla sygnału di_valid, a dane wyjściowe są prawidłowe dla do_valid. Konfigurator CoreFPU ma opcje wyboru szerokości danych wyjściowych integer i fraction.
ExampW poniższej tabeli wymieniono operacje konwersji liczb zmiennoprzecinkowych na stałoprzecinkowe.

Tabela 2-3. Byłyample do konwersji zmiennoprzecinkowej na stałoprzecinkową

Liczba zmiennoprzecinkowa Liczba stałoprzecinkowa
nie Podpisać Wykładnik potęgowy Mantysa na zewnątrz Liczba całkowita Frakcja
0x41bd6783 (32-bitowy) 0 10000011 01111010110011110000011 0x000bd678 00000000000010111 101011001111000
0x4002094c447c30d3

(64-bitowy)

0 10000000000 0010000010010100110001000100011111000011000011010011 0x0000000000012095 0000000000000000000000000000000000000000000000010 010000010010101

Dodawanie zmiennoprzecinkowe (operacja arytmetyczna)
CoreFPU skonfigurowany jako FP ADD generuje moduł dodawania zmiennoprzecinkowego. Dodaje dwie liczby zmiennoprzecinkowe (ain i bin) i generuje wynik (pout) w formacie zmiennoprzecinkowym. Dane wejściowe i wyjściowe to liczby zmiennoprzecinkowe pojedynczej lub podwójnej precyzji. Dane wejściowe są poprawne dla sygnału di_valid, a dane wyjściowe są poprawne dla sygnału do_valid. Rdzeń generuje flagi ovfl_fg (przepełnienie), qnan_fg (cisza, nie jest liczbą), snan_fg (sygnalizacja, nie jest liczbą), pinf_fg (dodatnia nieskończoność) i ninf_fg (ujemna nieskończoność) w zależności od operacji dodawania.
ExampW poniższych tabelach wymieniono pliki przeznaczone do operacji dodawania liczb zmiennoprzecinkowych.
Tabela 2-4. Byłyample dla operacji dodawania zmiennoprzecinkowego (32-bit)

Wartość zmiennoprzecinkowa Podpisać Wykładnik potęgowy Mantysa
Wejście zmiennoprzecinkowe 1 ain (0x4e989680) 0 10011101 00110001001011010000000
Wejście zmiennoprzecinkowe 2 bin (0x4f191b40) 0 10011110 00110010001101101000000
Wyjście dodawania zmiennoprzecinkowego pout (0x4f656680) 0 10011110 11001010110011010000000

Tabela 2-5. Byłyample dla operacji dodawania zmiennoprzecinkowego (64-bit)

Wartość zmiennoprzecinkowa Podpisać Wykładnik potęgowy Mantysa
Wejście zmiennoprzecinkowe 1

ain (0x3ff4106ee30caa32)

0 01111111111 0100000100000110111011100011000011001010101000110010
Wejście zmiennoprzecinkowe 2

bin (0x40020b2a78798e61)

0 10000000000 0010000010110010101001111000011110011000111001100001
Wyjście dodawania zmiennoprzecinkowego pout (0x400c1361e9ffe37a) 0 10000000000 1100000100110110000111101001111111111110001101111010

Odejmowanie zmiennoprzecinkowe (operacja arytmetyczna) 
CoreFPU skonfigurowany jako FP SUB wnioskuje o module odejmowania zmiennoprzecinkowego. Odejmuje dwie liczby zmiennoprzecinkowe (ain i bin) i dostarcza dane wyjściowe (pout) w formacie zmiennoprzecinkowym. Dane wejściowe i wyjściowe to liczby zmiennoprzecinkowe pojedynczej lub podwójnej precyzji. Dane wejściowe są prawidłowe dla sygnału di_valid, a dane wyjściowe są prawidłowe dla sygnału do_valid. Rdzeń generuje flagi ovfl_fg (Overflow), unfl_fg (underflow), qnan_fg (Quiet Not a Number), snan_fg (Signalling Not a Number), pinf_fg (Positive Infinity) i ninf_fg (Negative Infinity) na podstawie operacji odejmowania.
ExampW poniższych tabelach wymieniono pliki do operacji odejmowania zmiennoprzecinkowego.
Tabela 2-6. Byłyample dla operacji odejmowania zmiennoprzecinkowego (32-bit)

Wartość zmiennoprzecinkowa Podpisać Wykładnik potęgowy Mantysa
Wejście zmiennoprzecinkowe 1 ain (0xac85465f) 1 01011001 00001010100011001011111
Wejście zmiennoprzecinkowe 2 bin (0x2f516779) 0 01011110 10100010110011101111001
Wyjście odejmowania zmiennoprzecinkowego pout (0xaf5591ac) 1 01011110 10101011001000110101011
Wartość zmiennoprzecinkowa Podpisać Wykładnik potęgowy Mantysa
Wejście zmiennoprzecinkowe 1

ain (0x405569764adff823)

0 10000000101 0101011010010111011001001010110111111111100000100011
Wejście zmiennoprzecinkowe 2

bin (0x4057d04e78dee3fc)

0 10000000101 0111110100000100111001111000110111101110001111111100
Wyjście odejmowania zmiennoprzecinkowego pout (0xc02336c16ff75ec8) 1 10000000010 0011001101101100000101101111111101110101111011001000

Mnożenie zmiennoprzecinkowe (operacja arytmetyczna)
CoreFPU skonfigurowane jako FP MULT wnioskuje o module mnożenia zmiennoprzecinkowego. Mnoży dwie liczby zmiennoprzecinkowe (ain i bin) i dostarcza dane wyjściowe (pout) w formacie zmiennoprzecinkowym. Dane wejściowe i wyjściowe to liczby zmiennoprzecinkowe pojedynczej lub podwójnej precyzji. Dane wejściowe są prawidłowe dla sygnału di_valid, a dane wyjściowe są prawidłowe dla sygnału do_valid. Rdzeń generuje flagi ovfl_fg (Overflow), unfl_fg (Underflow), qnan_fg (Quiet Not a Number), snan_fg (Signalling Not a Number), pinf_fg (Positive Infinity) i ninf_fg (Negative Infinity) na podstawie operacji mnożenia.
ExampW poniższych tabelach wymieniono pliki do operacji mnożenia zmiennoprzecinkowego.
Tabela 2-8. Byłyample dla operacji mnożenia zmiennoprzecinkowego (32-bit)

Wartość zmiennoprzecinkowa Podpisać Wykładnik potęgowy Mantysa
Wejście zmiennoprzecinkowe 1 ain (0x1ec7a735) 0 00111101 10001111010011100110101
Wejście zmiennoprzecinkowe 2 bin (0x6ecf15e8) 0 11011101 10011110001010111101000
Wyjście mnożenia zmiennoprzecinkowego pout (0x4e21814a) 0 10011100 01000011000000101001010
Wartość zmiennoprzecinkowa Podpisać Wykładnik potęgowy Mantysa
Wejście zmiennoprzecinkowe 1

ain (0x40c1f5a9930be0df)

0 10000001100 0001111101011010100110010011000010111110000011011111
Wejście zmiennoprzecinkowe 2

bin (0x400a0866c962b501)

0 10000000000 1010000010000110011011001001011000101011010100000001
Wyjście mnożenia zmiennoprzecinkowego pout (0x40dd38a1c3e2cae9) 0 10000001101 1101001110001010000111000011111000101100101011101001

 Tablica prawdy dla dodawania i odejmowania 
Poniższe tabele prawdy zawierają wartości dla operacji dodawania i odejmowania. Tabela 2-10. Tabela prawdy dla dodawania

Dane A Dane B Znak bitowy Wynik Przelewowy Niedomiar SNaN QNaN PINF NINF
QNaN/SNaN x 0 POSQNaN 0 0 0 1 0 0
x QNaN/SNaN 0 POSQNaN 0 0 0 1 0 0
zero zero 0 POSZERO 0 0 0 0 0 0
zero pozaskończony(y) 0 pozaskończony(y) 0 0 0 0 0 0
zero nieskończony(y) 1 nieskończony(y) 0 0 0 0 0 0
zero pozaskończony 0 pozaskończony 0 0 0 0 1 0
zero nieskończony 1 nieskończony 0 0 0 0 0 1
pozaskończony(y) zero 0 pozaskończony(y) 0 0 0 0 0 0
pozaskończony pozaskończony 0 pozaskończony 0 0 0 0 1 0
Tabela 2-10. Tablica prawdy dla dodawania (ciąg dalszy)
Dane A Dane B Znak bitowy Wynik Przelewowy Niedomiar SNaN QNaN PINF NINF
pozaskończony nieskończony 1 nieskończony 0 0 0 0 0 1
nieskończony(y) zero 1 nieskończony(y) 0 0 0 0 0 0
nieskończony pozaskończony 0 pozaskończony 0 0 0 0 1 0
nieskończony nieskończony 1 nieskończony 0 0 0 0 0 1
pozaskończony zero 0 pozaskończony 0 0 0 0 1 0
pozaskończony pozaskończony 0 pozaskończony 0 0 0 0 1 0
pozaskończony nieskończony 0 pozaskończony 0 0 0 0 1 0
pozaskończony pozaskończony 0 pozaskończony 0 0 0 0 1 0
pozaskończony nieskończony 0 POSQNaN 0 0 0 1 0 0
nieskończony zero 1 nieskończony 0 0 0 0 0 1
nieskończony pozaskończony 1 nieskończony 0 0 0 0 0 1
nieskończony nieskończony 1 nieskończony 0 0 0 0 0 1
nieskończony pozaskończony 0 POSQNaN 0 0 0 1 0 0
nieskończony nieskończony 1 nieskończony 0 0 0 0 0 1
pozaskończony pozaskończony 0 pozaskończony 0 0 0 0 0 0
pozaskończony pozaskończony 0 pozaskończony 0 0 0 0 1 0
pozaskończony pozaskończony 0/1 QNaN 0 0 0 1 0 0
pozaskończony pozaskończony 0/1 SNaN 0 0 1 0 0 0
pozaskończony pozaskończony 0 POSIADAMY 1 0 1 0 0 0
pozaskończony nieskończony 0 pozaskończony 0 0 0 0 0 0
pozaskończony nieskończony 1 nieskończony 0 0 0 0 0 0
pozaskończony nieskończony 0 POSIADAMY 0 1 1 0 0 0
nieskończony pozaskończony 0 pozaskończony 0 0 0 0 0 0
nieskończony pozaskończony 1 nieskończony 0 0 0 0 0 0
nieskończony pozaskończony 0 POSIADAMY 0 1 1 0 0 0
nieskończony nieskończony 1 nieskończony 0 0 0 0 0 0
nieskończony nieskończony 1 nieskończony 0 0 0 0 0 1
nieskończony nieskończony 0/1 QNaN 0 0 0 1 0 0
nieskończony nieskończony 0/1 SNaN 0 0 1 0 0 0
nieskończony nieskończony 0 POSIADAMY 1 0 1 0 0 0
Dane A Dane B Znak bitowy Wynik Przelewowy Niedomiar SNaN QNaN PINF NINF
QNaN/SNaN x 0 POSQNaN 0 0 0 1 0 0
x QNaN/SNaN 0 POSQNaN 0 0 0 1 0 0
zero zero 0 POSZERO 0 0 0 0 0 0
zero pozaskończony(y) 1 nieskończony(y) 0 0 0 0 0 0
zero nieskończony(y) 0 pozaskończony(y) 0 0 0 0 0 0
zero pozaskończony 1 nieskończony 0 0 0 0 0 1
zero nieskończony 0 pozaskończony 0 0 0 0 1 0
pozaskończony(y) zero 0 pozaskończony(y) 0 0 0 0 0 0
pozaskończony pozaskończony 1 nieskończony 0 0 0 0 0 1
pozaskończony nieskończony 0 pozaskończony 0 0 0 0 1 0
nieskończony(y) zero 1 nieskończony(y) 0 0 0 0 0 0
nieskończony pozaskończony 1 nieskończony 0 0 0 0 0 1
Tabela 2-11. Tabela prawdy dla odejmowania (ciąg dalszy)
Dane A Dane B Znak bitowy Wynik Przelewowy Niedomiar SNaN QNaN PINF NINF
nieskończony nieskończony 0 pozaskończony 0 0 0 0 1 0
pozaskończony zero 0 pozaskończony 0 0 0 0 1 0
pozaskończony pozaskończony 0 pozaskończony 0 0 0 0 1 0
pozaskończony nieskończony 0 pozaskończony 0 0 0 0 1 0
pozaskończony pozaskończony 0 POSQNaN 0 0 0 1 0 0
pozaskończony nieskończony 0 pozaskończony 0 0 0 0 1 0
nieskończony zero 1 nieskończony 0 0 0 0 0 1
nieskończony pozaskończony 1 nieskończony 0 0 0 0 0 1
nieskończony nieskończony 1 nieskończony 0 0 0 0 0 1
nieskończony pozaskończony 1 nieskończony 0 0 0 0 0 1
nieskończony nieskończony 0 POSQNaN 0 0 0 1 0 0
pozaskończony pozaskończony 0 pozaskończony 0 0 0 0 0 0
pozaskończony pozaskończony 1 nieskończony 0 0 0 0 0 0
pozaskończony pozaskończony 0 POSIADAMY 0 1 1 0 0 0
pozaskończony nieskończony 0 pozaskończony 0 0 0 0 0 0
pozaskończony nieskończony 0 pozaskończony 0 0 0 0 1 0
pozaskończony nieskończony 0/1 QNaN 0 0 0 1 0 0
pozaskończony nieskończony 0/1 SNaN 0 0 1 0 0 0
pozaskończony nieskończony 0 POSIADAMY 1 0 1 0 0 0
nieskończony pozaskończony 1 nieskończony 0 0 0 0 0 0
nieskończony pozaskończony 1 nieskończony 0 0 0 0 0 1
nieskończony pozaskończony 0/1 QNaN 0 0 0 1 0 0
nieskończony pozaskończony 0/1 SNaN 0 0 1 0 0 0
nieskończony pozaskończony 0 POSIADAMY 1 0 1 0 0 0
nieskończony nieskończony 0 pozaskończony 0 0 0 0 0 0
nieskończony nieskończony 1 nieskończony 0 0 0 0 0 0
nieskończony nieskończony 0 POSIADAMY 0 1 1 0 0 0

Ważny:

  • W poprzednich tabelach oznaczają one dowolną liczbę.
  • W poprzednich tabelach oznacza stan obojętny.

Tabliczka prawdy dla mnożenia 
Poniższa tabela prawdy zawiera wartości dla operacji mnożenia.

Tabela 2-12. Tablica prawdy dla mnożenia

Dane A Dane B Znak bitowy Wynik Przelewowy Niedomiar SNaN QNaN PINF NINF
QNaN/SNaN x 0 POSQNaN 0 0 0 1 0 0
x QNaN/SNaN 0 POSQNaN 0 0 0 1 0 0
zero zero 0 POSZERO 0 0 0 0 0 0
zero pozaskończony 0 POSZERO 0 0 0 0 0 0
zero nieskończony 0 POSZERO 0 0 0 0 0 0
zero pozaskończony 0 POSQNaN 0 0 0 1 0 0
zero nieskończony 0 POSQNaN 0 0 0 1 0 0
Tabela 2-12. Tabliczka prawdy dla mnożenia (ciąg dalszy)
Dane A Dane B Znak bitowy Wynik Przelewowy Niedomiar SNaN QNaN PINF NINF
pozaskończony zero 0 POSZERO 0 0 0 0 0 0
pozaskończony pozaskończony 0 pozaskończony 0 0 0 0 1 0
pozaskończony nieskończony 1 nieskończony 0 0 0 0 0 1
nieskończony zero 0 POSZERO 0 0 0 0 0 0
nieskończony pozaskończony 1 nieskończony 0 0 0 0 0 1
nieskończony nieskończony 0 pozaskończony 0 0 0 0 1 0
pozaskończony zero 0 POSQNaN 0 0 0 1 0 0
pozaskończony pozaskończony 0 pozaskończony 0 0 0 0 1 0
pozaskończony nieskończony 1 nieskończony 0 0 0 0 0 1
pozaskończony pozaskończony 0 pozaskończony 0 0 0 0 1 0
pozaskończony nieskończony 1 nieskończony 0 0 0 0 0 1
nieskończony zero 0 POSQNaN 0 0 0 1 0 0
nieskończony pozaskończony 1 nieskończony 0 0 0 0 0 1
nieskończony nieskończony 0 pozaskończony 0 0 0 0 1 0
nieskończony pozaskończony 1 nieskończony 0 0 0 0 0 1
nieskończony nieskończony 0 pozaskończony 0 0 0 0 1 0
pozaskończony pozaskończony 0 pozaskończony 0 0 0 0 0 0
pozaskończony pozaskończony 0 pozaskończony 0 0 0 0 1 0
pozaskończony pozaskończony 0 POSQNaN 0 0 0 1 0 0
pozaskończony pozaskończony 0 POSIADAMY 0 0 1 0 0 0
pozaskończony pozaskończony 0 POSIADAMY 1 0 1 0 0 0
pozaskończony pozaskończony 0 POSIADAMY 0 1 1 0 0 0
pozaskończony nieskończony 1 nieskończony 0 0 0 0 0 0
pozaskończony nieskończony 1 nieskończony 0 0 0 0 0 1
pozaskończony nieskończony 0 POSQNaN 0 0 0 1 0 0
pozaskończony nieskończony 0 POSIADAMY 0 0 1 0 0 0
pozaskończony nieskończony 0 POSIADAMY 1 0 1 0 0 0
pozaskończony nieskończony 0 POSIADAMY 0 1 1 0 0 0
nieskończony pozaskończony 1 nieskończony 0 0 0 0 0 0
nieskończony pozaskończony 1 nieskończony 0 0 0 0 0 1
nieskończony pozaskończony 0 POSQNaN 0 0 0 1 0 0
nieskończony pozaskończony 0 POSIADAMY 0 0 1 0 0 0
nieskończony pozaskończony 0 POSIADAMY 1 0 1 0 0 0
nieskończony pozaskończony 0 POSIADAMY 0 1 1 0 0 0
nieskończony nieskończony 0 pozaskończony 0 0 0 0 0 0
nieskończony nieskończony 0 pozaskończony 0 0 0 0 1 0
nieskończony nieskończony 0 POSQNaN 0 0 0 1 0 0
nieskończony nieskończony 0 POSQNaN 0 0 1 0 0 0
nieskończony nieskończony 0 POSQNaN 1 0 1 0 0 0
nieskończony nieskończony 0 POSQNaN 0 1 1 0 0 0

Ważny:

Bit znaku „0” definiuje wynik dodatni, a „1” definiuje wynik ujemny.
X w poprzedniej tabeli oznacza stan obojętny.

Parametry CoreFPU i sygnały interfejsu
W tej sekcji omówiono parametry ustawień konfiguratora CoreFPU i sygnały I/O.

Parametry GUI konfiguracji 
Istnieje szereg konfigurowalnych opcji, które mają zastosowanie do jednostki FPU, jak pokazano w poniższej tabeli. Jeśli wymagana jest inna konfiguracja niż domyślna, okno dialogowe konfiguracji służy do wybierania odpowiednich wartości dla konfigurowalnej opcji.

Tabela 3-1. Parametry graficznego interfejsu użytkownika konfiguracji CoreFPU 

Nazwa parametru Domyślny Opis
Precyzja Pojedynczy Wybierz operację według potrzeb:

Pojedyncza precyzja
Podwójna precyzja

Typ konwersji Konwersja stałoprzecinkowa na zmiennoprzecinkową Wybierz operację według potrzeb:
  • Konwersja stałoprzecinkowa na zmiennoprzecinkową
  • Konwersja zmiennoprzecinkowa na stałoprzecinkową
  • Dodawanie zmiennoprzecinkowe
  • Odejmowanie zmiennoprzecinkowe
  • Mnożenie zmiennoprzecinkowe
Szerokość frakcji wejściowej1 15 Konfiguruje punkt ułamkowy w sygnałach wejściowych ain i bin

Zakres prawidłowych wartości wynosi 31–1

Szerokość frakcji wyjściowej2 15 Konfiguruje punkt ułamkowy w sygnałach wyjściowych

Zakres prawidłowych wartości wynosi 51–1

Ważny:

  1. Ten parametr można konfigurować tylko w przypadku konwersji liczby stałoprzecinkowej na zmiennoprzecinkową.
  2. Ten parametr można konfigurować tylko w przypadku konwersji liczb zmiennoprzecinkowych na stałoprzecinkowe.

Sygnały wejściowe i wyjściowe (zadaj pytanie)
W poniższej tabeli wymieniono sygnały portów wejściowych i wyjściowych CoreFPU.

Tabela 3-2. Opis portu 

Nazwa sygnału Szerokość Typ Opis
zegar 1 Wejście Główny zegar systemowy
pierwszy 1 Wejście Aktywny-niski asynchroniczny reset
nieważny 1 Wejście Aktywny-wysoki sygnał wejściowy ważny

Ten sygnał oznacza, że ​​dane obecne w ain[31:0], ain[63:0] i bin[31:0], bin[63:0] są prawidłowe.

nie 32/64 Wejście Szyna wejściowa (służy do wszystkich operacji)
kosz1 32/64 Wejście Szyna wejściowa B (służy wyłącznie do operacji arytmetycznych)
na zewnątrz2 32/64 Wyjście Wartość wyjściowa jest ustawiana, gdy wybrane są operacje konwersji stałej na zmiennoprzecinkową lub zmiennoprzecinkowej na stałoprzecinkową.
dąsy1 32/64 Wyjście Wartość wyjściowa po wybraniu operacji dodawania, odejmowania lub mnożenia.
Tabela 3-2. Opis portu (ciąg dalszy)
Nazwa sygnału Szerokość Typ Opis
zrób_ważny 1 Wyjście Sygnał aktywny-wysoki

Sygnał ten oznacza, że ​​dane obecne na magistrali danych pout/aout są prawidłowe.

ovfl_fg3 1 Wyjście Sygnał aktywny-wysoki

Ten sygnał sygnalizuje przepełnienie podczas operacji zmiennoprzecinkowych.

niefl_fg 1 Wyjście Sygnał aktywny-wysoki

Sygnał ten wskazuje niedomiar podczas operacji zmiennoprzecinkowych.

qnan_fg3 1 Wyjście Sygnał aktywny-wysoki

Ten sygnał oznacza, że ​​podczas operacji na liczbach zmiennoprzecinkowych wartość QNaN (Quiet Not a Number) jest cicha.

snan_fg 1 Wyjście Sygnał aktywny-wysoki

Ten sygnał oznacza sygnalizację Not-a-Number (SNaN) podczas operacji zmiennoprzecinkowych.

pinf_fg3 1 Wyjście Sygnał aktywny-wysoki

Ten sygnał oznacza dodatnią nieskończoność podczas operacji zmiennoprzecinkowych.

ninf_fg 1 Wyjście Sygnał aktywny-wysoki

Ten sygnał oznacza ujemną nieskończoność podczas operacji zmiennoprzecinkowych.

Ważny:

  1. Ten port jest dostępny wyłącznie do operacji dodawania, odejmowania i mnożenia liczb zmiennoprzecinkowych.
  2. Ten port jest dostępny wyłącznie w przypadku operacji konwersji liczb stałoprzecinkowych na zmiennoprzecinkowe i liczb zmiennoprzecinkowych na stałoprzecinkowe.
  3. Ten port umożliwia wykonywanie operacji zamiany liczb zmiennoprzecinkowych na stałoprzecinkowe, dodawanie liczb zmiennoprzecinkowych, odejmowanie liczb zmiennoprzecinkowych i mnożenie liczb zmiennoprzecinkowych.

Implementacja CoreFPU w Libero Design Suite

W tej sekcji opisano implementację CoreFPU w pakiecie Libero Design Suite.

Inteligentny projekt 

CoreFPU jest dostępny do pobrania w katalogu Libero IP za pośrednictwem web repozytorium. Po umieszczeniu go w katalogu rdzeń jest tworzony przy użyciu przepływu SmartDesign. Aby uzyskać informacje na temat używania SmartDesign do konfigurowania, łączenia i generowania rdzeni, zobacz pomoc online Libero SoC.
Po skonfigurowaniu i wygenerowaniu instancji rdzenia, podstawowa funkcjonalność jest symulowana przy użyciu testbench dostarczonych z CoreFPU. Parametry testbench automatycznie dostosowują się do konfiguracji CoreFPU. CoreFPU jest instancjonowany jako składnik większego projektu.
Rysunek 4-1. Instancja SmartDesign CoreFPU dla operacji arytmetycznych

MICROCHIP-CoreFPU-COR-Jednostka-Zmiennoprzecinkowa- (5)Rysunek 4-2. Instancja SmartDesign CoreFPU do operacji konwersji MICROCHIP-CoreFPU-COR-Jednostka-Zmiennoprzecinkowa- (6)

 

Konwersja stałoprzecinkowa na zmiennoprzecinkową
Podczas konwersji stałoprzecinkowej na zmiennoprzecinkową szerokość ułamka wejściowego jest konfigurowalna. Szerokość wyjściowa jest domyślnie ustawiona na 32 bity dla pojedynczej precyzji i 64 bity dla podwójnej precyzji zmiennoprzecinkowej.
Aby dokonać konwersji z stałoprzecinkowego na zmiennoprzecinkowy, wybierz typ konwersji Stały na zmiennoprzecinkowy, jak pokazano na poniższym rysunku.

MICROCHIP-CoreFPU-COR-Jednostka-Zmiennoprzecinkowa- (7)Zmiennoprzecinkowe na stałoprzecinkowe 
Podczas konwersji liczb zmiennoprzecinkowych na stałoprzecinkowe, szerokość ułamkowa wyjścia jest konfigurowalna, natomiast szerokość wejścia jest domyślnie ustawiona na 32 bity dla liczb zmiennoprzecinkowych pojedynczej precyzji i na 64 bity dla liczb zmiennoprzecinkowych podwójnej precyzji.
Aby dokonać konwersji z liczby zmiennoprzecinkowej na stałoprzecinkową, wybierz typ konwersji Zmiennoprzecinkowa na stałą, jak pokazano na poniższym rysunku.
Rysunek 4-4. Konfigurator CoreFPU dla konwersji zmiennoprzecinkowej na stałą MICROCHIP-CoreFPU-COR-Jednostka-Zmiennoprzecinkowa- (8)Dodawanie/odejmowanie/mnożenie zmiennoprzecinkowe
Podczas operacji dodawania, odejmowania i mnożenia liczb zmiennoprzecinkowych szerokość ułamka wejściowego i szerokość ułamka wyjściowego nie są konfigurowalne, ponieważ są to operacje arytmetyczne na liczbach zmiennoprzecinkowych, a szerokość wejścia/wyjścia jest domyślnie ustawiona na 32 bity dla pojedynczej precyzji i 64 bity dla operacji zmiennoprzecinkowych podwójnej precyzji.
Poniższy rysunek przedstawia konfigurator CoreFPU dla operacji odejmowania zmiennoprzecinkowego.

Rysunek 4-5. Konfigurator CoreFPU do odejmowania zmiennoprzecinkowegoMICROCHIP-CoreFPU-COR-Jednostka-Zmiennoprzecinkowa- (9)Symulacja (zadaj pytanie)
Aby uruchomić symulacje, w oknie konfiguracji rdzenia wybierz User Testbench. Po wygenerowaniu CoreFPU, pre-synteza testbench Hardware Description Language (HDL) filesą zainstalowane w Libero.

Formy fal symulacyjnych (Zadaj pytanie)
W tej sekcji omówiono przebiegi symulacyjne dla CoreFPU.
Poniższe rysunki pokazują przebieg konwersji stałoprzecinkowej na zmiennoprzecinkową dla systemów 32- i 64-bitowych.MICROCHIP-CoreFPU-COR-Jednostka-Zmiennoprzecinkowa- (10)

MICROCHIP-CoreFPU-COR-Jednostka-Zmiennoprzecinkowa- (11) MICROCHIP-CoreFPU-COR-Jednostka-Zmiennoprzecinkowa- (12) MICROCHIP-CoreFPU-COR-Jednostka-Zmiennoprzecinkowa- (13)

Integracja systemów
Poniższy rysunek przedstawia example używania rdzenia. W tym example, projekt UART jest używany jako kanał komunikacyjny pomiędzy projektem a komputerem hosta. Sygnały ain i bin (każdy o szerokości 32-bitowej lub 64-bitowej) są wejściami do projektu z UART. Po otrzymaniu sygnału di_valid CoreFPU oblicza wynik. Po obliczeniu wyniku sygnał do_valid przechodzi w stan wysoki i zapisuje wynik (dane aout/pout) w buforze wyjściowym. Ta sama procedura jest stosowana do konwersji i operacji arytmetycznych. W przypadku operacji konwersji wystarczające jest tylko wejście ain, podczas gdy w przypadku operacji arytmetycznych wymagane są zarówno wejścia ain, jak i bin. Wyjście aout jest włączone dla operacji konwersji, a port pout jest włączony dla operacji arytmetycznych.
Rysunek 4-16. Byłyample systemu CoreFPU

MICROCHIP-CoreFPU-COR-Jednostka-Zmiennoprzecinkowa- (14)

 

  1. Synteza (Zadaj pytanie)
    Aby uruchomić syntezę na CoreFPU, ustaw korzeń projektu na wystąpienie komponentu IP i z panelu przepływu projektu Libero uruchom narzędzie Synteza.
    Miejsce i trasa (Zadaj pytanie)
    Po syntezie projektu uruchom narzędzie Place-and-Route. CoreFPU nie wymaga żadnych specjalnych ustawień Place-and-Route.
  2. Testbench użytkownika (Zadaj pytanie)
    W wydaniu CoreFPU IP udostępniono testbench użytkownika. Za pomocą tego testbench można sprawdzić zachowanie funkcjonalne CoreFPU.

Na poniższym rysunku przedstawiono uproszczony schemat blokowy stanowiska testowego użytkownika. Stanowisko testowe użytkownika tworzy instancję skonfigurowanego projektu CoreFPU (UUT) i zawiera generator danych testowych dla behawioru, niezbędny zegar oraz sygnały resetowania.
Rysunek 4-17. Testbench użytkownika CoreFPU

MICROCHIP-CoreFPU-COR-Jednostka-Zmiennoprzecinkowa- (15)Ważne: Należy monitorować sygnały wyjściowe w symulatorze ModelSim, patrz sekcja Symulacja.

Dodatkowe odniesienia (Zadaj pytanie)
W tej sekcji znajduje się lista dodatkowych informacji.
Aktualizacje i dodatkowe informacje na temat oprogramowania, urządzeń i sprzętu można znaleźć na stronie

Strony dotyczące własności intelektualnej dotyczące układów FPGA i PLD firmy Microchip webstrona.

  1. Znane problemy i sposoby ich obejścia (Zadaj pytanie)
    Nie są znane żadne problemy ani obejścia dla CoreFPU v3.0.
  2. Wycofane funkcje i urządzenia (Zadaj pytanie)
    W tej wersji IP nie ma żadnych wycofanych funkcji ani urządzeń.

Słowniczek

Poniżej znajduje się lista terminów i definicji użytych w dokumencie.
Tabela 6-1. Terminy i definicje

Termin Definicja
FPU Jednostka zmiennoprzecinkowa
FP DODAJ Dodawanie zmiennoprzecinkowe
FP-SUBSK Odejmowanie zmiennoprzecinkowe
FP WIELOKROTNY Mnożenie zmiennoprzecinkowe

Rozwiązane problemy 
Poniższa tabela zawiera listę wszystkich rozwiązanych problemów dla różnych wersji CoreFPU.

Tabela 7-1. Rozwiązane problemy

Uwolnienie Opis
3.0 Poniżej znajduje się lista wszystkich rozwiązanych problemów w wersji 3.0:

Numer sprawy: 01420387 i 01422128

Dodano logikę schematu zaokrąglania (zaokrąglanie do najbliższej liczby parzystej).

2.1 Poniżej znajduje się lista wszystkich rozwiązanych problemów w wersji 2.1:
Projekt napotyka problemy ze względu na obecność zduplikowanych modułów w przypadku tworzenia wielu rdzeni.
Zmiana nazwy instancji IP CoreFPU skutkuje błędem „Niezdefiniowany moduł”.
1.0 Pierwsze wydanie

Wykorzystanie zasobów urządzenia i wydajność

Makro CoreFPU jest zaimplementowane w rodzinach wymienionych w poniższej tabeli.
Tabela 8-1. Wykorzystanie urządzenia FPU PolarFire Unit dla 32-bitowego

Zasoby FPGA Wykorzystanie
Rodzina 4LUT DFF Całkowity Blok matematyczny Urządzenie Procenttage Wydajność Utajenie
Z stałoprzecinkowego na zmiennoprzecinkowy
PolarFire® 260 104 364 0 MPF300T 0.12 310MHz 3
Zmiennoprzecinkowe na stałoprzecinkowe
PolarFire 591 102 693 0 MPF300T 0.23 160MHz 3
Dodawanie zmiennoprzecinkowe
PolarFire 1575 1551 3126 0 MPF300T 1.06 340MHz 16
Odejmowanie zmiennoprzecinkowe
PolarFire 1561 1549 3110 0 MPF300T 1.04 345MHz 16
Mnożenie zmiennoprzecinkowe
PolarFire 465 847 1312 4 MPF300T 0.44 385MHz 14
Zasoby FPGA Wykorzystanie
Rodzina 4LUT DFF Całkowity Blok matematyczny Urządzenie Procenttage Wydajność Utajenie
Z stałoprzecinkowego na zmiennoprzecinkowy
RTG4™ 264 104 368 0 RT4G150 0.24 160MHz 3
Zmiennoprzecinkowe na stałoprzecinkowe
RTG4 439 112 551 0 RT4G150 0.36 105MHz 3
Dodawanie zmiennoprzecinkowe
RTG4 1733 1551 3284 0 RT4G150 1.16 195MHz 16
Odejmowanie zmiennoprzecinkowe
RTG4 1729 1549 3258 0 RT4G150 1.16 190MHz 16
Mnożenie zmiennoprzecinkowe
RTG4 468 847 1315 4 RT4G150 0.87 175MHz 14
Zasoby FPGA Wykorzystanie
Rodzina 4LUT DFF Całkowity Blok matematyczny Urządzenie Procenttage Wydajność Utajenie
Z stałoprzecinkowego na zmiennoprzecinkowy
PolarFire® 638 201 849 0 MPF300T 0.28 305MHz 3
Zmiennoprzecinkowe na stałoprzecinkowe
PolarFire 2442 203 2645 0 MPF300T 0.89 110MHz 3
Dodawanie zmiennoprzecinkowe
PolarFire 5144 4028 9172 0 MPF300T 3.06 240MHz 16
Odejmowanie zmiennoprzecinkowe
PolarFire 5153 4026 9179 0 MPF300T 3.06 250MHz 16
Mnożenie zmiennoprzecinkowe
PolarFire 1161 3818 4979 16 MPF300T 1.66 340MHz 27
Zasoby FPGA Wykorzystanie
Rodzina 4LUT DFF Całkowity Blok matematyczny Urządzenie Procenttage Wydajność Utajenie
Z stałoprzecinkowego na zmiennoprzecinkowy
RTG4™ 621 201 822 0 RT4G150 0.54 140MHz 3
Zmiennoprzecinkowe na stałoprzecinkowe
RTG4 1114 203 1215 0 RT4G150 0.86 75MHz 3
Dodawanie zmiennoprzecinkowe
RTG4 4941 4028 8969 0 RT4G150 5.9 140MHz 16
Odejmowanie zmiennoprzecinkowe
RTG4 5190 4026 9216 0 RT4G150 6.07 130MHz 16
Mnożenie zmiennoprzecinkowe
RTG4 1165 3818 4983 16 RT4G150 3.28 170MHz 27

Ważne: Aby zwiększyć częstotliwość, zaznacz opcję Włącz retiming w ustawieniach syntezy.

Historia rewizji

Historia rewizji opisuje zmiany, które zostały wprowadzone w dokumencie. Zmiany są wymienione według rewizji, zaczynając od najnowszej publikacji.

MICROCHIP-CoreFPU-COR-Jednostka-Zmiennoprzecinkowa- (1)

Obsługa mikrochipów FPGA

Grupa produktów Microchip FPGA wspiera swoje produkty różnymi usługami wsparcia, w tym Customer Service, Customer Technical Support Center, a webi biura sprzedaży na całym świecie. Klientom sugeruje się odwiedzenie zasobów internetowych firmy Microchip przed skontaktowaniem się z pomocą techniczną, ponieważ jest bardzo prawdopodobne, że na ich pytania zostały już udzielone odpowiedzi.
Skontaktuj się z Centrum Wsparcia Technicznego poprzez webmiejsce na www.microchip.com/support. Podaj numer części urządzenia FPGA, wybierz odpowiednią kategorię obudowy i prześlij projekt files podczas tworzenia zgłoszenia do pomocy technicznej.
Skontaktuj się z działem obsługi klienta, aby uzyskać nietechniczne wsparcie dotyczące produktu, takie jak wycena produktów, aktualizacje produktów, informacje o aktualizacjach, status zamówienia i autoryzacja.

  • Z Ameryki Północnej zadzwoń pod numer 800.262.1060
  • Z reszty świata zadzwoń pod numer 650.318.4460
  • Faks z dowolnego miejsca na świecie: 650.318.8044

Informacje o mikroczipie

Znaki towarowe
Nazwa i logo „Microchip”, logo „M” oraz inne nazwy, loga i marki są zarejestrowanymi i niezarejestrowanymi znakami towarowymi Microchip Technology Incorporated lub jej podmiotów stowarzyszonych i/lub spółek zależnych w Stanach Zjednoczonych i/lub innych krajach („Znaki towarowe Microchip”). Informacje dotyczące znaków towarowych Microchip można znaleźć na stronie https://www.microchip.com/en-us/about/legal-information/microchip-trademarks
ISBN: 979-8-3371-0947-3

Informacja prawna
Niniejsza publikacja i zawarte w niej informacje mogą być używane wyłącznie z produktami firmy Microchip, w tym do projektowania, testowania i integracji produktów firmy Microchip z aplikacją użytkownika. Wykorzystanie tych informacji w jakikolwiek inny sposób narusza niniejsze warunki. Informacje dotyczące aplikacji urządzenia są podawane wyłącznie dla Twojej wygody i mogą zostać zastąpione aktualizacjami. Twoim obowiązkiem jest upewnienie się, że Twoja aplikacja spełnia Twoje wymagania. Skontaktuj się z lokalnym biurem sprzedaży Microchip, aby uzyskać dodatkowe wsparcie lub uzyskaj dodatkowe wsparcie pod adresem www.microchip.com/en-us/support/design-help/client-support-services

INFORMACJE TE SĄ DOSTARCZANE PRZEZ MICROCHIP „TAKIE, JAKIE SĄ”. MICROCHIP NIE SKŁADA ŻADNYCH OŚWIADCZEŃ ANI GWARANCJI ŻADNEGO RODZAJU, WYRAŹNYCH ANI DOROZUMIANYCH, PISEMNYCH ANI USTNYCH, USTAWOWYCH ANI INNYCH, ZWIĄZANYCH Z INFORMACJAMI, W TYM MIĘDZY INNYMI ŻADNYCH DOROZUMIANYCH GWARANCJI NIENARUSZALNOŚCI, PRZYDATNOŚCI HANDLOWEJ I PRZYDATNOŚCI DO OKREŚLONEGO CELU LUB GWARANCJI ZWIĄZANYCH Z ICH STANEM, JAKOŚCIĄ LUB WYDAJNOŚCIĄ.

W ŻADNYM WYPADKU MICROCHIP NIE PONOSI ODPOWIEDZIALNOŚCI ZA JAKIEKOLWIEK POŚREDNIE, SPECJALNE, KARNE, PRZYPADKOWE LUB WTÓRNE STRATY, USZKODZENIA, KOSZTY LUB WYDATKI JAKIEGOKOLWIEK RODZAJU ZWIĄZANE Z INFORMACJAMI LUB ICH WYKORZYSTANIEM, NIEZALEŻNIE OD PRZYCZYNY, NAWET JEŚLI MICROCHIP ZOSTAŁ POINFORMOWANY O MOŻLIWOŚCI LUB SZKODY SĄ PRZEWIDYWALNE. W PEŁNYM ZAKRESIE DOZWOLONYM PRZEZ PRAWO, CAŁKOWITA ODPOWIEDZIALNOŚĆ MICROCHIP ZA WSZYSTKIE ROSZCZENIA W JAKIKOLWIEK SPOSÓB ZWIĄZANE Z INFORMACJAMI LUB ICH WYKORZYSTANIEM NIE PRZEKROCZY KWOTY OPŁAT, JEŚLI TAKIE BYŁY, KTÓRE ZAPŁACIŁEŚ BEZPOŚREDNIO MICROCHIP ZA INFORMACJE.

Korzystanie z urządzeń Microchip w podtrzymywaniu życia i/lub aplikacjach bezpieczeństwa odbywa się wyłącznie na ryzyko kupującego, a kupujący zgadza się bronić, zabezpieczać i chronić Microchip przed wszelkimi szkodami, roszczeniami, pozwami lub wydatkami wynikającymi z takiego użytkowania. Żadne licencje nie są przekazywane, w sposób dorozumiany lub inny, na mocy jakichkolwiek praw własności intelektualnej Microchip, chyba że zaznaczono inaczej.

Funkcja ochrony kodu mikroprocesorowego
Należy zwrócić uwagę na następujące szczegóły dotyczące funkcji ochrony kodu w produktach Microchip:

  • Produkty Microchip spełniają specyfikacje zawarte w ich konkretnych Kartach Danych Microchip.
  • Firma Microchip uważa, że ​​jej rodzina produktów jest bezpieczna, gdy jest używana zgodnie z przeznaczeniem, zgodnie ze specyfikacjami roboczymi i w normalnych warunkach.
  • Firma Microchip ceni i agresywnie chroni swoje prawa własności intelektualnej. Próby naruszenia zabezpieczeń kodowych produktów Microchip są surowo zabronione i mogą stanowić naruszenie ustawy Digital Millennium Copyright Act.
  • Ani Microchip, ani żaden inny producent półprzewodników nie może zagwarantować bezpieczeństwa swojego kodu. Ochrona kodu nie oznacza, że ​​gwarantujemy, że produkt jest „niezniszczalny”. Ochrona kodu stale ewoluuje. Microchip zobowiązuje się do ciągłego ulepszania funkcji ochrony kodu naszych produktów.

Dokumenty / Zasoby

MICROCHIP CoreFPU Jednostka zmiennoprzecinkowa [plik PDF] Instrukcja użytkownika
v3.0, v2.1, v2.0, v1.0, CoreFPU Jednostka zmiennoprzecinkowa rdzenia, Jednostka zmiennoprzecinkowa rdzenia, Jednostka zmiennoprzecinkowa, Jednostka punktowa

Odniesienia

Zostaw komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *