MICROCHIP - logotip

MICROCHIP CoreFPU Core enota s plavajočo vejico

MICROCHIP-CoreFPU-Cor-enota-s-plavajočo-vejico-izdelek

 

Uvod 

  • Enota CoreFPU (CoreFPU) je zasnovana za aritmetiko s plavajočo vejico in pretvorbene operacije za števila s plavajočo vejico z enojno in dvojno natančnostjo. CoreFPU podpira pretvorbe iz fiksne vejice v plavajočo vejico in iz plavajoče vejice v fiksno vejico ter operacije seštevanja, odštevanja in množenja s plavajočo vejico. Standard IEEE® za aritmetiko s plavajočo vejico (IEEE 754) je tehnični standard za računanje s plavajočo vejico.
  • Pomembno: CoreFPU podpira izračune samo z normaliziranimi števili in podprt je samo jezik Verilog; VHDL ni podprt.

Povzetek
Naslednja tabela prikazuje povzetek značilnosti CoreFPU.

Tabela 1. Značilnosti CoreFPU 

Osnovna različica Ta dokument velja za CoreFPU različice 3.0.
Podprte družine naprav
  • PolarFire® SoC
  • PolarFire
  • RTG4™
Podprt tok orodja Zahteva Libero® SoC v12.6 ali novejše izdaje.
Licenciranje CoreFPU ni licenčno zaklenjen.
Navodila za namestitev CoreFPU je treba samodejno namestiti v IP katalog Libero SoC prek funkcije posodobitve IP kataloga. Lahko pa CoreFPU ročno prenesete iz kataloga. Ko je IP jedro nameščeno

Ko je nameščen, je konfiguriran, generiran in instanciran znotraj SmartDesigna za vključitev v projekt.

Uporaba in zmogljivost naprave Povzetek informacij o uporabi in zmogljivosti za CoreFPU je naveden v razdelku Uporaba in zmogljivost virov naprave.

Informacije o dnevniku sprememb CoreFPU
Ta razdelek nudi celovit pregledview na novo vključenih funkcij, začenši z najnovejšo izdajo. Za več informacij o odpravljenih težavah glejte razdelek Odpravljene težave.

Različica Kaj je novega
v3.0 Implementirane dodatne izhodne zastavice za izboljšanje natančnosti IP-ja
v2.1 Dodana je funkcija dvojne natančnosti
v2.0 Posodobljene časovne valovne oblike
v1.0 Prva produkcijska izdaja CoreFPU

1. Lastnosti

CoreFPU ima naslednje ključne lastnosti:

  • Podpira enojna in dvojna natančnost plavajočih števil v skladu s standardom IEEE-754
  • Podpira naslednje konverzije:
    • Pretvorba fiksne vejice v plavajočo vejico
    • Pretvorba iz plavajoče vejice v fiksno vejico
  • Podpira aritmetične operacije, kot je navedeno:
    • Seštevanje s plavajočo vejico
    • Odštevanje s plavajočo vejico
    • Množenje s plavajočo vejico
  • Zagotavlja shemo zaokroževanja (zaokrožitev na najbližje sodo število) samo za aritmetične operacije
  • Zagotavlja zastavice za prelivanje, premajhno prelivanje, neskončnost (pozitivna neskončnost, negativna neskončnost), tiho NaN (QNaN) in signalizacijsko NaN (SNaN) za števila s plavajočo vejico.
  • Podpira popolnoma cevovodno implementacijo aritmetičnih operacij
  • Zagotavlja možnost konfiguracije jedra za zahteve oblikovanja

Funkcionalni opis

  • Standard IEEE za aritmetiko s plavajočo vejico (IEEE 754) je tehnični standard za računanje s plavajočo vejico. Izraz plavajoča vejica se nanaša na osnovo števila (decimalno ali binarno vejico), ki je postavljena kjer koli glede na pomembne števke števila.
    Število s plavajočo vejico je običajno izraženo v znanstvenem zapisu z ulomkom (F) in eksponentom (E) določene osnove (r) v obliki F × r^E. Decimalna števila uporabljajo osnovo 10 (F × 10^E), medtem ko dvojiška števila uporabljajo osnovo 2 (F × 2^E).
  • Predstavitev števila s plavajočo vejico ni enolična. Na primerampNa primer, število 55.66 je predstavljeno kot 5.566 × 10^1, 0.5566 × 10^2, 0.05566 × 10^3 in tako naprej. Decimalni del je normaliziran. V normalizirani obliki je pred korensko točko samo ena števka, ki ni nič. Na primerampdesetiško število 123.4567 je normalizirano kot 1.234567 × 10^2; binarno število 1010.1011B je normalizirano kot 1.0101011B × 2^3.
  • Pomembno je omeniti, da števila s plavajočo vejico izgubijo natančnost, če so predstavljena s fiksnim številom bitov (npr.amp32-bitni ali 64-bitni). To je zato, ker obstaja neskončno število realnih števil (tudi znotraj majhnega območja od 0.0 do 0.1). Po drugi strani pa
    n-bitni binarni vzorec predstavlja končnih 2^n različnih števil. Zato niso predstavljena vsa realna števila. Namesto tega se uporabi najbližji približek, kar povzroči izgubo natančnosti.

Število z enojno natančnostjo in plavajočo vejico je predstavljeno na naslednji način:

  • Predznakovni bit: 1-bitni
  • Širina eksponenta: 8 bitov
  • Pomembna natančnost: 24 bitov (23 bitov je eksplicitno shranjenih)

Slika 2-1. 32-bitni okvir

MICROCHIP-CoreFPU-Cor-enota-s-plavajočo-vejico-(2)Število z dvojno natančnostjo in plavajočo vejico je predstavljeno na naslednji način:

  • Predznakovni bit: 1-bitni
  • Širina eksponenta: 11 bitov
  • Pomembna natančnost: 53 bitov (52 bitov je eksplicitno shranjenih)

Slika 2-2. 64-bitni okvir MICROCHIP-CoreFPU-Cor-enota-s-plavajočo-vejico-(3)CoreFPU je vrhunska integracija dveh pretvorbenih modulov (Fixed to Float point in Float to Fixed point) in treh aritmetičnih operacij (FP ADD, FP SUB in FP MULT). Uporabnik lahko konfigurira katero koli od operacij glede na zahteve, tako da se viri uporabijo za izbrano operacijo.
Naslednja slika prikazuje blokovni diagram CoreFPU najvišje ravni z vrati.

Slika 2-3. Blokovni diagram vrat CoreFPU

MICROCHIP-CoreFPU-Cor-enota-s-plavajočo-vejico-(4)V naslednji tabeli je navedena širina vhodnih in izhodnih vrat. Tabela 2-1. Širina vhodnih in izhodnih vrat

Signal Širina enojne natančnosti Dvojna natančna širina
ain [31:0] [63:0]
koš [31:0] [63:0]
zunaj [31:0] [63:0]
duriti se [31:0] [63:0]

Pretvorba iz fiksne vejice v plavajočo vejico

CoreFPU, konfiguriran kot fiksno v plavajočo vejico, sklepa na modul za pretvorbo fiksne vejice v plavajočo vejico. Vhod (ain) v CoreFPU je poljubno število s fiksno vejico, ki vsebuje celoštevilčne in ulomkovne bite. Konfigurator CoreFPU ima možnosti izbire vhodne širine celih števil in ulomkov. Vhod je veljaven za signal di_valid, izhod pa je veljaven za signal do_valid. Izhod (aout) operacije fiksno v plavajočo vejico je v obliki enojnega ali dvojnega natančnosti s plavajočo vejico.
ExampOpis operacije pretvorbe iz fiksne vejice v plavajočo vejico je naveden v naslednji tabeli.
Tabela 2-2. nprample za pretvorbo fiksne vejice v plavajočo vejico

Število s fiksno vejico Število s plavajočo vejico
ain Celo število Ulomek zunaj Podpis Eksponent Mantisa
0x12153524 (32-bitni) 00010010000101010 011010100100100 0x4610a9a9 0 10001100 00100001010100110101001
0x0000000000008CCC

(64-bitni)

0000000000000000000000000000000000000000000000001 000110011001100 0x3FF199999999999A 0 01111111111 0001100110011001100110011001100110011001100110011010

Pretvorba iz plavajoče vejice v fiksno vejico 
CoreFPU, konfiguriran kot število s plavajočo v fiksno vejico, sklepa na modul za pretvorbo števila s plavajočo vejico v fiksno vejico. Vhod (ain) v CoreFPU je poljubno število s plavajočo vejico enojne ali dvojne natančnosti in ustvari izhod (aout) v formatu fiksne vejice, ki vsebuje celoštevilske in ulomkovne bite. Vhod je veljaven za signal di_valid, izhod pa je veljaven za signal do_valid. Konfigurator CoreFPU ima možnosti za izbiro izhodne širine celih števil in ulomkov.
ExampOpis operacije pretvorbe iz plavajoče vejice v fiksno vejico je naveden v naslednji tabeli.

Tabela 2-3. nprample za pretvorbo iz plavajoče vejice v fiksno vejico

Število s plavajočo vejico Število s fiksno vejico
ain Podpis Eksponent Mantisa zunaj Celo število Ulomek
0x41bd6783 (32-bitni) 0 10000011 01111010110011110000011 0x000bd678 00000000000010111 101011001111000
0x4002094c447c30d3

(64-bitni)

0 10000000000 0010000010010100110001000100011111000011000011010011 0x0000000000012095 0000000000000000000000000000000000000000000000010 010000010010101

Seštevanje s plavajočo vejico (aritmetična operacija)
CoreFPU, konfiguriran kot FP ADD, sklepa na modul za seštevanje števil s plavajočo vejico. Sešteje dve števili s plavajočo vejico (ain in bin) in zagotovi izhod (pout) v formatu s plavajočo vejico. Vhod in izhod sta števili s plavajočo vejico enojne ali dvojne natančnosti. Vhod je veljaven za signal di_valid, izhod pa je veljaven za signal do_valid. Jedro na podlagi operacije seštevanja ustvari zastavice ovfl_fg (prekoračitev), qnan_fg (tiho ni število), snan_fg (signalizacija ni število), pinf_fg (pozitivna neskončnost) in ninf_fg (negativna neskončnost).
ExampDatoteke za operacije seštevanja s plavajočo vejico so navedene v naslednjih tabelah.
Tabela 2-4. nprample za operacijo seštevanja s plavajočo vejico (32-bitno)

Vrednost s plavajočo vejico Podpis Eksponent Mantisa
Vhod s plavajočo vejico 1 ain (0x4e989680) 0 10011101 00110001001011010000000
Vhod s plavajočo vejico 2, predal (0x4f191b40) 0 10011110 00110010001101101000000
Izhod seštevanja s plavajočo vejico pout (0x4f656680) 0 10011110 11001010110011010000000

Tabela 2-5. nprample za operacijo seštevanja s plavajočo vejico (64-bitno)

Vrednost s plavajočo vejico Podpis Eksponent Mantisa
Vhod s plavajočo vejico 1

ain (0x3ff4106ee30caa32)

0 01111111111 0100000100000110111011100011000011001010101000110010
Vhod s plavajočo vejico 2

bin (0x40020b2a78798e61)

0 10000000000 0010000010110010101001111000011110011000111001100001
Izhod seštevanja s plavajočo vejico pout (0x400c1361e9ffe37a) 0 10000000000 1100000100110110000111101001111111111110001101111010

Odštevanje s plavajočo vejico (aritmetična operacija) 
CoreFPU, konfiguriran kot FP SUB, sklepa na modul za odštevanje števil s plavajočo vejico. Odšteje dve števili s plavajočo vejico (ain in bin) in zagotovi izhod (pout) v formatu s plavajočo vejico. Vhod in izhod sta števili s plavajočo vejico enojne ali dvojne natančnosti. Vhod je veljaven za signal di_valid, izhod pa je veljaven za signal do_valid. Jedro na podlagi operacije odštevanja ustvari zastavice ovfl_fg (prelivanje), unfl_fg (podlivanje), qnan_fg (tiho ni število), snan_fg (signaliziranje ni število), pinf_fg (pozitivna neskončnost) in ninf_fg (negativna neskončnost).
ExampDatoteke za operacijo odštevanja s plavajočo vejico so navedene v naslednjih tabelah.
Tabela 2-6. nprample za operacijo odštevanja s plavajočo vejico (32-bitno)

Vrednost s plavajočo vejico Podpis Eksponent Mantisa
Vhod s plavajočo vejico 1 ain (0xac85465f) 1 01011001 00001010100011001011111
Vhod s plavajočo vejico 2, predal (0x2f516779) 0 01011110 10100010110011101111001
Izhod odštevanja s plavajočo vejico pout (0xaf5591ac) 1 01011110 10101011001000110101011
Vrednost s plavajočo vejico Podpis Eksponent Mantisa
Vhod s plavajočo vejico 1

zadnji (0x405569764adff823)

0 10000000101 0101011010010111011001001010110111111111100000100011
Vhod s plavajočo vejico 2

bin (0x4057d04e78dee3fc)

0 10000000101 0111110100000100111001111000110111101110001111111100
Izhod odštevanja s plavajočo vejico pout (0xc02336c16ff75ec8) 1 10000000010 0011001101101100000101101111111101110101111011001000

Množenje s plavajočo vejico (aritmetična operacija)
CoreFPU, konfiguriran kot FP MULT, sklepa na modul za množenje s plavajočo vejico. Pomnoži dve števili s plavajočo vejico (ain in bin) in zagotovi izhod (pout) v formatu s plavajočo vejico. Vhod in izhod sta števili s plavajočo vejico enojne ali dvojne natančnosti. Vhod je veljaven za signal di_valid, izhod pa je veljaven za signal do_valid. Jedro na podlagi operacije množenja ustvari zastavice ovfl_fg (prekoračitev), unfl_fg (podpovprečje), qnan_fg (tiho ni število), snan_fg (signalizacija ni število), pinf_fg (pozitivna neskončnost) in ninf_fg (negativna neskončnost).
ExampDatoteke za operacije množenja s plavajočo vejico so navedene v naslednjih tabelah.
Tabela 2-8. nprample za operacijo množenja s plavajočo vejico (32-bitno)

Vrednost s plavajočo vejico Podpis Eksponent Mantisa
Vhod s plavajočo vejico 1 ain (0x1ec7a735) 0 00111101 10001111010011100110101
Vhod s plavajočo vejico 2, predal (0x6ecf15e8) 0 11011101 10011110001010111101000
Izhod množenja s plavajočo vejico pout (0x4e21814a) 0 10011100 01000011000000101001010
Vrednost s plavajočo vejico Podpis Eksponent Mantisa
Vhod s plavajočo vejico 1

ain (0x40c1f5a9930be0df)

0 10000001100 0001111101011010100110010011000010111110000011011111
Vhod s plavajočo vejico 2

bin (0x400a0866c962b501)

0 10000000000 1010000010000110011011001001011000101011010100000001
Izhod množenja s plavajočo vejico pout (0x40dd38a1c3e2cae9) 0 10000001101 1101001110001010000111000011111000101100101011101001

 Tabela resnice za seštevanje in odštevanje 
Naslednje tabele resnice navajajo vrednosti za operaciji seštevanja in odštevanja. Tabela 2-10. Tabela resnice za seštevanje

Podatek A Podatek B Znak Bit Rezultat Preliv Podtok 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
nič nič 0 POSZERO 0 0 0 0 0 0
nič posfinite(y) 0 posfinite(y) 0 0 0 0 0 0
nič negfinite(y) 1 negfinite(y) 0 0 0 0 0 0
nič pozinkončno 0 pozinkončno 0 0 0 0 1 0
nič neskončno 1 neskončno 0 0 0 0 0 1
posfinite(y) nič 0 posfinite(y) 0 0 0 0 0 0
posfinitiven pozinkončno 0 pozinkončno 0 0 0 0 1 0
Tabela 2-10. Tabela resnice za seštevanje (nadaljevanje)
Podatek A Podatek B Znak Bit Rezultat Preliv Podtok SNaN QNaN PINF NINF
posfinitiven neskončno 1 neskončno 0 0 0 0 0 1
negfinite(y) nič 1 negfinite(y) 0 0 0 0 0 0
negfinite pozinkončno 0 pozinkončno 0 0 0 0 1 0
negfinite neskončno 1 neskončno 0 0 0 0 0 1
pozinkončno nič 0 pozinkončno 0 0 0 0 1 0
pozinkončno posfinitiven 0 pozinkončno 0 0 0 0 1 0
pozinkončno negfinite 0 pozinkončno 0 0 0 0 1 0
pozinkončno pozinkončno 0 pozinkončno 0 0 0 0 1 0
pozinkončno neskončno 0 POSQNaN 0 0 0 1 0 0
neskončno nič 1 neskončno 0 0 0 0 0 1
neskončno posfinitiven 1 neskončno 0 0 0 0 0 1
neskončno negfinite 1 neskončno 0 0 0 0 0 1
neskončno pozinkončno 0 POSQNaN 0 0 0 1 0 0
neskončno neskončno 1 neskončno 0 0 0 0 0 1
posfinitiven posfinitiven 0 posfinitiven 0 0 0 0 0 0
posfinitiven posfinitiven 0 pozinkončno 0 0 0 0 1 0
posfinitiven posfinitiven 0/1 QNaN 0 0 0 1 0 0
posfinitiven posfinitiven 0/1 SNaN 0 0 1 0 0 0
posfinitiven posfinitiven 0 POSSNaN 1 0 1 0 0 0
posfinitiven negfinite 0 posfinitiven 0 0 0 0 0 0
posfinitiven negfinite 1 negfinite 0 0 0 0 0 0
posfinitiven negfinite 0 POSSNaN 0 1 1 0 0 0
negfinite posfinitiven 0 posfinitiven 0 0 0 0 0 0
negfinite posfinitiven 1 negfinite 0 0 0 0 0 0
negfinite posfinitiven 0 POSSNaN 0 1 1 0 0 0
negfinite negfinite 1 negfinite 0 0 0 0 0 0
negfinite negfinite 1 neskončno 0 0 0 0 0 1
negfinite negfinite 0/1 QNaN 0 0 0 1 0 0
negfinite negfinite 0/1 SNaN 0 0 1 0 0 0
negfinite negfinite 0 POSSNaN 1 0 1 0 0 0
Podatek A Podatek B Znak Bit Rezultat Preliv Podtok 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
nič nič 0 POSZERO 0 0 0 0 0 0
nič posfinite(y) 1 negfinite(y) 0 0 0 0 0 0
nič negfinite(y) 0 posfinite(y) 0 0 0 0 0 0
nič pozinkončno 1 neskončno 0 0 0 0 0 1
nič neskončno 0 pozinkončno 0 0 0 0 1 0
posfinite(y) nič 0 posfinite(y) 0 0 0 0 0 0
posfinitiven pozinkončno 1 neskončno 0 0 0 0 0 1
posfinitiven neskončno 0 pozinkončno 0 0 0 0 1 0
negfinite(y) nič 1 negfinite(y) 0 0 0 0 0 0
negfinite pozinkončno 1 neskončno 0 0 0 0 0 1
Tabela 2-11. Tabela resnice za odštevanje (nadaljevanje)
Podatek A Podatek B Znak Bit Rezultat Preliv Podtok SNaN QNaN PINF NINF
negfinite neskončno 0 pozinkončno 0 0 0 0 1 0
pozinkončno nič 0 pozinkončno 0 0 0 0 1 0
pozinkončno posfinitiven 0 pozinkončno 0 0 0 0 1 0
pozinkončno negfinite 0 pozinkončno 0 0 0 0 1 0
pozinkončno pozinkončno 0 POSQNaN 0 0 0 1 0 0
pozinkončno neskončno 0 pozinkončno 0 0 0 0 1 0
neskončno nič 1 neskončno 0 0 0 0 0 1
neskončno posfinitiven 1 neskončno 0 0 0 0 0 1
neskončno negfinite 1 neskončno 0 0 0 0 0 1
neskončno pozinkončno 1 neskončno 0 0 0 0 0 1
neskončno neskončno 0 POSQNaN 0 0 0 1 0 0
posfinitiven posfinitiven 0 posfinitiven 0 0 0 0 0 0
posfinitiven posfinitiven 1 negfinite 0 0 0 0 0 0
posfinitiven posfinitiven 0 POSSNaN 0 1 1 0 0 0
posfinitiven negfinite 0 posfinitiven 0 0 0 0 0 0
posfinitiven negfinite 0 pozinkončno 0 0 0 0 1 0
posfinitiven negfinite 0/1 QNaN 0 0 0 1 0 0
posfinitiven negfinite 0/1 SNaN 0 0 1 0 0 0
posfinitiven negfinite 0 POSSNaN 1 0 1 0 0 0
negfinite posfinitiven 1 negfinite 0 0 0 0 0 0
negfinite posfinitiven 1 neskončno 0 0 0 0 0 1
negfinite posfinitiven 0/1 QNaN 0 0 0 1 0 0
negfinite posfinitiven 0/1 SNaN 0 0 1 0 0 0
negfinite posfinitiven 0 POSSNaN 1 0 1 0 0 0
negfinite negfinite 0 posfinitiven 0 0 0 0 0 0
negfinite negfinite 1 negfinite 0 0 0 0 0 0
negfinite negfinite 0 POSSNaN 0 1 1 0 0 0

Pomembno:

  • V prejšnjih tabelah označujejo poljubno število.
  • V prejšnjih tabelah označuje stanje, ko vam ni mar.

Tabela resnice za množenje 
Naslednja tabela resnice navaja vrednosti za operacijo množenja.

Tabela 2-12. Tabela resnice za množenje

Podatek A Podatek B Znak Bit Rezultat Preliv Podtok 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
nič nič 0 POSZERO 0 0 0 0 0 0
nič posfinitiven 0 POSZERO 0 0 0 0 0 0
nič negfinite 0 POSZERO 0 0 0 0 0 0
nič pozinkončno 0 POSQNaN 0 0 0 1 0 0
nič neskončno 0 POSQNaN 0 0 0 1 0 0
Tabela 2-12. Tabela resnice za množenje (nadaljevanje)
Podatek A Podatek B Znak Bit Rezultat Preliv Podtok SNaN QNaN PINF NINF
posfinitiven nič 0 POSZERO 0 0 0 0 0 0
posfinitiven pozinkončno 0 pozinkončno 0 0 0 0 1 0
posfinitiven neskončno 1 neskončno 0 0 0 0 0 1
negfinite nič 0 POSZERO 0 0 0 0 0 0
negfinite pozinkončno 1 neskončno 0 0 0 0 0 1
negfinite neskončno 0 pozinkončno 0 0 0 0 1 0
pozinkončno nič 0 POSQNaN 0 0 0 1 0 0
pozinkončno posfinitiven 0 pozinkončno 0 0 0 0 1 0
pozinkončno negfinite 1 neskončno 0 0 0 0 0 1
pozinkončno pozinkončno 0 pozinkončno 0 0 0 0 1 0
pozinkončno neskončno 1 neskončno 0 0 0 0 0 1
neskončno nič 0 POSQNaN 0 0 0 1 0 0
neskončno posfinitiven 1 neskončno 0 0 0 0 0 1
neskončno negfinite 0 pozinkončno 0 0 0 0 1 0
neskončno pozinkončno 1 neskončno 0 0 0 0 0 1
neskončno neskončno 0 pozinkončno 0 0 0 0 1 0
posfinitiven posfinitiven 0 posfinitiven 0 0 0 0 0 0
posfinitiven posfinitiven 0 pozinkončno 0 0 0 0 1 0
posfinitiven posfinitiven 0 POSQNaN 0 0 0 1 0 0
posfinitiven posfinitiven 0 POSSNaN 0 0 1 0 0 0
posfinitiven posfinitiven 0 POSSNaN 1 0 1 0 0 0
posfinitiven posfinitiven 0 POSSNaN 0 1 1 0 0 0
posfinitiven negfinite 1 negfinite 0 0 0 0 0 0
posfinitiven negfinite 1 neskončno 0 0 0 0 0 1
posfinitiven negfinite 0 POSQNaN 0 0 0 1 0 0
posfinitiven negfinite 0 POSSNaN 0 0 1 0 0 0
posfinitiven negfinite 0 POSSNaN 1 0 1 0 0 0
posfinitiven negfinite 0 POSSNaN 0 1 1 0 0 0
negfinite posfinitiven 1 negfinite 0 0 0 0 0 0
negfinite posfinitiven 1 neskončno 0 0 0 0 0 1
negfinite posfinitiven 0 POSQNaN 0 0 0 1 0 0
negfinite posfinitiven 0 POSSNaN 0 0 1 0 0 0
negfinite posfinitiven 0 POSSNaN 1 0 1 0 0 0
negfinite posfinitiven 0 POSSNaN 0 1 1 0 0 0
negfinite negfinite 0 posfinitiven 0 0 0 0 0 0
negfinite negfinite 0 pozinkončno 0 0 0 0 1 0
negfinite negfinite 0 POSQNaN 0 0 0 1 0 0
negfinite negfinite 0 POSQNaN 0 0 1 0 0 0
negfinite negfinite 0 POSQNaN 1 0 1 0 0 0
negfinite negfinite 0 POSQNaN 0 1 1 0 0 0

Pomembno:

Predznakovni bit '0' definira pozitivni izhod, '1' pa negativni izhod.
Znak x v prejšnji tabeli označuje pogoj »ne zanima me«.

Parametri CoreFPU in vmesniški signali
V tem razdelku so obravnavani parametri v nastavitvah konfiguratorja CoreFPU in V/I signali.

Parametri GUI konfiguracije 
Za enoto FPU je na voljo več nastavljivih možnosti, kot je prikazano v naslednji tabeli. Če je potrebna drugačna konfiguracija od privzete, se za izbiro ustreznih vrednosti za nastavljivo možnost uporabi pogovorno okno za konfiguracijo.

Tabela 3-1. Parametri grafičnega uporabniškega vmesnika za konfiguracijo CoreFPU 

Ime parametra Privzeto Opis
Natančnost Samski Izberite operacijo po potrebi:

Enojna natančnost
Dvojna natančnost

Vrsta pretvorbe Pretvorba fiksne vejice v plavajočo vejico Izberite operacijo po potrebi:
  • Pretvorba fiksne vejice v plavajočo vejico
  • Pretvorba iz plavajoče vejice v fiksno vejico
  • Seštevanje s plavajočo vejico
  • Odštevanje s plavajočo vejico
  • Množenje s plavajočo vejico
Vnosna širina ulomka1 15 Konfigurira delno točko v vhodnih signalih ain in bin

Veljavno območje je 31–1

Širina izhodne frakcije2 15 Konfigurira delno točko v izhodnih signalih

Veljavno območje je 51–1

Pomembno:

  1. Ta parameter je mogoče konfigurirati samo med pretvorbo iz fiksne vejice v plavajočo vejico.
  2. Ta parameter je mogoče konfigurirati samo med pretvorbo iz plavajoče vejice v fiksno vejico.

Vhodni in izhodni signali (zastavite vprašanje)
V naslednji tabeli so navedeni vhodni in izhodni signali CoreFPU.

Tabela 3-2. Opis vrat 

Ime signala širina Vrsta Opis
clk 1 Vnos Glavna sistemska ura
rstn 1 Vnos Asinhrona ponastavitev z aktivno nizko napetostjo
di_veljaven 1 Vnos Veljaven aktiven visok vhod

Ta signal označuje, da so podatki, ki so prisotni na ain[31:0], ain[63:0] in bin[31:0], bin[63:0], veljavni.

ain 32/64 Vnos Vhodno vodilo (uporablja se za vse operacije)
koš1 32/64 Vnos Vhodno vodilo B (uporablja se samo za aritmetične operacije)
zunaj2 32/64 Izhod Izhodna vrednost, ko so izbrane operacije pretvorbe fiksne v plavajočo vejico ali plavajoče v fiksno vejico.
duriti se1 32/64 Izhod Izhodna vrednost, ko so izbrane operacije seštevanja, odštevanja ali množenja.
Tabela 3-2. Opis vrat (nadaljevanje)
Ime signala širina Vrsta Opis
veljaven 1 Izhod Aktivno-visok signal

Ta signal označuje, da so podatki na podatkovnem vodilu pout/aout veljavni.

ovfl_fg3 1 Izhod Aktivno-visok signal

Ta signal označuje prekoračitev med operacijami s plavajočo vejico.

unfl_fg 1 Izhod Aktivno-visok signal

Ta signal označuje premajhno količino med operacijami s plavajočo vejico.

qnan_fg3 1 Izhod Aktivno-visok signal

Ta signal označuje stanje Quiet Not a Number (QNaN) med operacijami s plavajočo vejico.

snan_fg 1 Izhod Aktivno-visok signal

Ta signal označuje signalizacijo »neštevilo« (SNaN) med operacijami s plavajočo vejico.

pinf_fg3 1 Izhod Aktivno-visok signal

Ta signal označuje pozitivno neskončnost med operacijami s plavajočo vejico.

ninf_fg 1 Izhod Aktivno-visok signal

Ta signal označuje negativno neskončnost med operacijami s plavajočo vejico.

Pomembno:

  1. Ta vrata so na voljo samo za operacije seštevanja, odštevanja ali množenja s plavajočo vejico.
  2. Ta vrata so na voljo samo za pretvorbo fiksne vejice v plavajočo vejico in plavajoče vejice v fiksno vejico.
  3. Ta vrata so na voljo za pretvorbo vrednosti iz plavajoče vejice v fiksno vejico, seštevanje s plavajočo vejico, odštevanje s plavajočo vejico in množenje s plavajočo vejico.

Implementacija CoreFPU v Libero Design Suite

V tem razdelku je opisana implementacija CoreFPU v paketu Libero Design Suite.

SmartDesign 

CoreFPU je na voljo za prenos v katalogu Libero IP prek web repozitorij. Ko je jedro navedeno v katalogu, se instancira s potekom SmartDesign. Za informacije o uporabi SmartDesign za konfiguriranje, povezovanje in ustvarjanje jeder glejte spletno pomoč Libero SoC.
Po konfiguraciji in generiranju osrednjega primerka se osnovna funkcionalnost simulira z uporabo testne naprave, ki je priložena CoreFPU. Parametri testne naprave se samodejno prilagodijo konfiguraciji CoreFPU. CoreFPU je instanciran kot komponenta večje zasnove.
Slika 4-1. Primerek SmartDesign CoreFPU za aritmetične operacije

MICROCHIP-CoreFPU-Cor-enota-s-plavajočo-vejico-(5)Slika 4-2. Primerek SmartDesign CoreFPU za operacijo pretvorbe MICROCHIP-CoreFPU-Cor-enota-s-plavajočo-vejico-(6)

 

Pretvorba fiksne vejice v plavajočo vejico
Med pretvorbo iz fiksne vejice v plavajočo vejico je širina vhodnega ulomka nastavljiva. Izhodna širina je privzeto nastavljena na 32-bitno za pretvorbo z enojno natančnostjo in 64-bitno za pretvorbo z dvojno natančnostjo s plavajočo vejico.
Za pretvorbo iz fiksne vejice v plavajočo vejico izberite vrsto pretvorbe Iz fiksne v plavajočo vejico, kot je prikazano na naslednji sliki.

MICROCHIP-CoreFPU-Cor-enota-s-plavajočo-vejico-(7)Plavajoča vejica v fiksno vejico 
Med pretvorbo iz plavajoče vejice v fiksno vejico je izhodna ulomna širina nastavljiva, vhodna širina pa je privzeto nastavljena na 32-bitno za enojno natančnost in 64-bitno za dvojno natančnost plavajoče vejice.
Za pretvorbo iz plavajoče vejice v fiksno vejico izberite vrsto pretvorbe Iz plavajoče vejice v fiksno, kot je prikazano na naslednji sliki.
Slika 4-4. Konfigurator CoreFPU za pretvorbo iz plavajoče vejice v fiksno vejico MICROCHIP-CoreFPU-Cor-enota-s-plavajočo-vejico-(8)Seštevanje/odštevanje/množenje s plavajočo vejico
Med seštevanjem, odštevanjem in množenjem s plavajočo vejico širine vhodnega ulomka in širine izhodnega ulomka ni mogoče konfigurirati, saj gre za aritmetične operacije s plavajočo vejico, širina vhodnega/izhodnega ulomka pa je privzeto nastavljena na 32-bitno enojno natančnost in 64-bitno za operacije s plavajočo vejico dvojne natančnosti.
Naslednja slika prikazuje konfigurator CoreFPU za operacijo odštevanja s plavajočo vejico.

Slika 4-5. Konfigurator CoreFPU za odštevanje s plavajočo vejicoMICROCHIP-CoreFPU-Cor-enota-s-plavajočo-vejico-(9)Simulacija (postavite vprašanje)
Za zagon simulacij v oknu za konfiguracijo jedra izberite Uporabniško testno okolje. Po generiranju CoreFPU-ja se predsintetizirajoče testno okolje Hardware Description Language (HDL) fileso nameščeni v Liberu.

Simulacijske valovne oblike (Postavite vprašanje)
V tem razdelku so obravnavane simulacijske valovne oblike za CoreFPU.
Naslednje slike prikazujejo valovno obliko pretvorbe fiksne vejice v plavajočo vejico za 32-bitni in 64-bitni sistem.MICROCHIP-CoreFPU-Cor-enota-s-plavajočo-vejico-(10)

MICROCHIP-CoreFPU-Cor-enota-s-plavajočo-vejico-(11) MICROCHIP-CoreFPU-Cor-enota-s-plavajočo-vejico-(12) MICROCHIP-CoreFPU-Cor-enota-s-plavajočo-vejico-(13)

Sistemska integracija
Naslednja slika prikazuje exampuporabo jedra. V tem primeruampNa primer, UART zasnove se uporablja kot komunikacijski kanal med zasnovo in gostiteljskim računalnikom. Signala ain in bin (vsak s 32-bitno ali 64-bitno širino) sta vhoda v zasnovo iz UART-a. Ko CoreFPU prejme signal di_valid, izračuna rezultat. Po izračunu rezultata signal do_valid preide v visok nivo in shrani rezultat (podatke aout/pout) v izhodni medpomnilnik. Isti postopek velja za pretvorbo in aritmetične operacije. Za pretvorbo zadostuje samo vhod ain, medtem ko sta za aritmetične operacije potrebna oba vhoda, ain in bin. Izhod aout je omogočen za pretvorbene operacije, vrata pout pa so omogočena za aritmetične operacije.
Slika 4-16. nprample sistema CoreFPU

MICROCHIP-CoreFPU-Cor-enota-s-plavajočo-vejico-(14)

 

  1. Sinteza (Postavite vprašanje)
    Za zagon sinteze na CoreFPU nastavite koren zasnove na primerek komponente IP in v podoknu poteka oblikovanja Libero zaženite orodje Synthesis.
    Kraj in pot (Postavite vprašanje)
    Ko je zasnova sintetizirana, zaženite orodje Place-and-Route. CoreFPU ne zahteva posebnih nastavitev place-and-Route.
  2. Uporabniški testni sistem (Postavite vprašanje)
    Z izdajo CoreFPU IP je na voljo uporabniška testna naprava. Z uporabo te testne naprave lahko preverite funkcionalno delovanje CoreFPU.

Poenostavljen blokovni diagram uporabniške testne naprave je prikazan na naslednji sliki. Uporabniška testna naprava ustvari konfigurirano zasnovo CoreFPU (UUT) in vključuje generator podatkov za vedenjske teste, potreben takt in signale za ponastavitev.
Slika 4-17. Uporabniško preskusno okolje CoreFPU

MICROCHIP-CoreFPU-Cor-enota-s-plavajočo-vejico-(15)Pomembno: Izhodne signale morate spremljati v simulatorju ModelSim, glejte razdelek Simulacija.

Dodatne reference (Postavite vprašanje)
V tem razdelku je seznam dodatnih informacij.
Za posodobitve in dodatne informacije o programski opremi, napravah in strojni opremi obiščite

Strani o intelektualni lastnini o mikročipovih FPGA in PLD webmesto.

  1. Znane težave in rešitve (Postavite vprašanje)
    Za CoreFPU v3.0 ni znanih težav in rešitev.
  2. Ukinjene funkcije in naprave (Postavite vprašanje)
    V tej izdaji IP ni ukinjenih funkcij in naprav.

Glosar

Sledi seznam izrazov in definicij, uporabljenih v dokumentu.
Tabela 6-1. Izrazi in definicije

Izraz Opredelitev
FPU Enota za plavajočo vejico
FP DODAJ Seštevanje s plavajočo vejico
FP SUB Odštevanje s plavajočo vejico
FP VEČ Množenje s plavajočo vejico

Rešene težave 
V naslednji tabeli so navedene vse odpravljene težave za različne izdaje CoreFPU.

Tabela 7-1. Rešene težave

Sprostitev Opis
3.0 Sledi seznam vseh odpravljenih težav v izdaji v3.0:

Številka primera: 01420387 in 01422128

Dodana je logika sheme zaokroževanja (zaokroževanje na najbližje sodo število).

2.1 Sledi seznam vseh odpravljenih težav v izdaji v2.1:
Zasnova naleti na težave zaradi prisotnosti podvojenih modulov, ko je ustvarjenih več jeder.
Preimenovanje instance IP-ja CoreFPU povzroči napako »Nedoločen modul«.
1.0 Začetna izdaja

Uporaba in zmogljivost virov naprave

Makro CoreFPU je implementiran v družinah, navedenih v naslednji tabeli.
Tabela 8-1. Izkoriščenost enote FPU PolarFire za 32-bitno različico

Viri FPGA Uporaba
Družina 4LUT DFF Skupaj Matematični blok Naprava procentovtage Učinkovitost Zakasnitev
Iz fiksne vejice v plavajočo vejico
PolarFire® 260 104 364 0 MPF300T 0.12 310 MHz 3
Plavajoča vejica v fiksno vejico
PolarFire 591 102 693 0 MPF300T 0.23 160 MHz 3
Seštevanje s plavajočo vejico
PolarFire 1575 1551 3126 0 MPF300T 1.06 340 MHz 16
Odštevanje s plavajočo vejico
PolarFire 1561 1549 3110 0 MPF300T 1.04 345 MHz 16
Množenje s plavajočo vejico
PolarFire 465 847 1312 4 MPF300T 0.44 385 MHz 14
Viri FPGA Uporaba
Družina 4LUT DFF Skupaj Matematični blok Naprava procentovtage Učinkovitost Zakasnitev
Iz fiksne vejice v plavajočo vejico
RTG4™ 264 104 368 0 RT4G150 0.24 160 MHz 3
Plavajoča vejica v fiksno vejico
RTG4 439 112 551 0 RT4G150 0.36 105 MHz 3
Seštevanje s plavajočo vejico
RTG4 1733 1551 3284 0 RT4G150 1.16 195 MHz 16
Odštevanje s plavajočo vejico
RTG4 1729 1549 3258 0 RT4G150 1.16 190 MHz 16
Množenje s plavajočo vejico
RTG4 468 847 1315 4 RT4G150 0.87 175 MHz 14
Viri FPGA Uporaba
Družina 4LUT DFF Skupaj Matematični blok Naprava procentovtage Učinkovitost Zakasnitev
Iz fiksne vejice v plavajočo vejico
PolarFire® 638 201 849 0 MPF300T 0.28 305 MHz 3
Plavajoča vejica v fiksno vejico
PolarFire 2442 203 2645 0 MPF300T 0.89 110 MHz 3
Seštevanje s plavajočo vejico
PolarFire 5144 4028 9172 0 MPF300T 3.06 240 MHz 16
Odštevanje s plavajočo vejico
PolarFire 5153 4026 9179 0 MPF300T 3.06 250 MHz 16
Množenje s plavajočo vejico
PolarFire 1161 3818 4979 16 MPF300T 1.66 340 MHz 27
Viri FPGA Uporaba
Družina 4LUT DFF Skupaj Matematični blok Naprava procentovtage Učinkovitost Zakasnitev
Iz fiksne vejice v plavajočo vejico
RTG4™ 621 201 822 0 RT4G150 0.54 140 MHz 3
Plavajoča vejica v fiksno vejico
RTG4 1114 203 1215 0 RT4G150 0.86 75 MHz 3
Seštevanje s plavajočo vejico
RTG4 4941 4028 8969 0 RT4G150 5.9 140 MHz 16
Odštevanje s plavajočo vejico
RTG4 5190 4026 9216 0 RT4G150 6.07 130 MHz 16
Množenje s plavajočo vejico
RTG4 1165 3818 4983 16 RT4G150 3.28 170 MHz 27

Pomembno: Za povečanje frekvence izberite možnost Omogoči ponovno časovno usklajevanje v nastavitvah sinteze.

Zgodovina revizij

Zgodovina revizij opisuje spremembe, ki so bile izvedene v dokumentu. Spremembe so navedene po reviziji, začenši z najnovejšo objavo.

MICROCHIP-CoreFPU-Cor-enota-s-plavajočo-vejico-(1)

Podpora za Microchip FPGA

Skupina izdelkov Microchip FPGA podpira svoje izdelke z različnimi podpornimi storitvami, vključno s storitvami za stranke, centrom za tehnično podporo strankam, webspletno mesto in prodajne pisarne po vsem svetu. Strankam priporočamo, da obiščejo Microchipove spletne vire, preden stopijo v stik s podporo, saj je zelo verjetno, da so na njihova vprašanja že odgovorili.
Obrnite se na center za tehnično podporo prek webspletno mesto na www.microchip.com/support. Navedite številko dela naprave FPGA, izberite ustrezno kategorijo ohišja in naložite načrt files med ustvarjanjem primera tehnične podpore.
Obrnite se na službo za stranke za netehnično podporo za izdelke, kot so cene izdelkov, nadgradnje izdelkov, informacije o posodobitvah, status naročila in avtorizacija.

  • Iz Severne Amerike pokličite 800.262.1060
  • Iz preostalega sveta pokličite 650.318.4460
  • Faks, od koder koli na svetu, 650.318.8044

Informacije o mikročipu

Blagovne znamke
Ime in logotip »Microchip«, logotip »M« ter druga imena, logotipi in blagovne znamke so registrirane in neregistrirane blagovne znamke družbe Microchip Technology Incorporated ali njenih podružnic in/ali podružnic v Združenih državah in/ali drugih državah (»Microchip Blagovne znamke«). Informacije o blagovnih znamkah Microchip najdete na https://www.microchip.com/en-us/about/legal-information/microchip-trademarks
ISBN: 979-8-3371-0947-3

Pravno obvestilo
To publikacijo in informacije v njej lahko uporabljate samo z izdelki Microchip, vključno z načrtovanjem, testiranjem in integracijo izdelkov Microchip z vašo aplikacijo. Uporaba teh informacij na kakršen koli drug način krši te pogoje. Informacije o aplikacijah naprave so na voljo samo za vaše udobje in jih lahko nadomestijo posodobitve. Vaša odgovornost je zagotoviti, da vaša aplikacija ustreza vašim specifikacijam. Za dodatno podporo se obrnite na lokalno prodajno pisarno družbe Microchip ali pridobite dodatno podporo na www.microchip.com/en-us/support/design-help/client-support-services

TE INFORMACIJE ZAGOTAVLJA MICROCHIP "TAKŠNE, KOT SO". MICROCHIP NE DAJE NOBENIH IZJAV ALI JAMSTEV KAKRŠNE KOLI VRSTE, BODISI IZRECNIH ALI POSREDNIH, PISNIH ALI USTNIH, ZAKONSKIH ALI DRUGAČEH, POVEZANIH Z INFORMACIJAMI, VKLJUČNO, VENDAR NE OMEJENO NA KAKRŠNE KOLI POSREDNE JAMSTVA O NEKRŠITVI, PRIMERNOST ZA PRODAJO IN PRIMERNOST ZA DOLOČEN NAMEN ALI GARANCIJE, POVEZANE Z NJEGOVIM STANJEM, KAKOVOSTJO ALI ZMOGLJIVOSTJO.

MICROCHIP V NOBENEM PRIMERU NE BO ODGOVOREN ZA KAKRŠNO KOLI POSREDNO, POSEBNO, KAZNOVALNO, NAKLJUČNO ALI POSLEDIČNO IZGUBO, ŠKODO, STROŠKE ALI IZDATKE KAKRŠNEKOLI VRSTE, POVEZANE Z INFORMACIJAMI ALI NJIHOVO UPORABO, NE glede na to, KI SO POVZROČENI, TUDI ČE MICROCHIP JE BIL OBVEŠČEN O MOŽNOSTI ALI JE ŠKODA PREDVIDLJIVA. V NAJBOLJŠEM MERU, KI GA DOVOLJUJE ZAKON, SKUPNA ODGOVORNOST MICROCHIPA ZA VSE ZAHTEVKE, KAKRŠNOLI POVEZANE Z INFORMACIJO ALI NJENO UPORABO, NE BO PRESEGALA ZNESKA PRISTOJBIN, ČE OBSTAJAJO, KI STE GA PLAČALI NEPOSREDNO MICROCHIPU ZA INFORMACIJO.

Uporaba naprav Microchip v aplikacijah za vzdrževanje življenja in/ali varnost je v celoti na kupčevo tveganje in kupec se strinja, da bo branil, odškodoval in zaščitil Microchip pred kakršno koli škodo, zahtevki, tožbami ali stroški, ki so posledica takšne uporabe. Nobene licence se ne posredujejo, implicitno ali kako drugače, v okviru pravic intelektualne lastnine družbe Microchip, razen če je navedeno drugače.

Funkcija zaščite kode Microchip Devices
Upoštevajte naslednje podrobnosti funkcije zaščite kode na izdelkih Microchip:

  • Izdelki Microchip izpolnjujejo specifikacije v njihovem posebnem podatkovnem listu Microchip.
  • Microchip verjame, da je njegova družina izdelkov varna, če se uporablja na predviden način, v okviru operativnih specifikacij in v normalnih pogojih.
  • Microchip ceni in agresivno ščiti svoje pravice intelektualne lastnine. Poskusi kršitve funkcij zaščite kode izdelkov Microchip so strogo prepovedani in lahko kršijo Zakon o avtorskih pravicah v digitalnem tisočletju.
  • Niti Microchip niti kateri koli drug proizvajalec polprevodnikov ne more jamčiti za varnost svoje kode. Zaščita kode ne pomeni, da jamčimo, da je izdelek "nezlomljiv". Zaščita kode se nenehno razvija. Microchip je zavezan nenehnemu izboljševanju funkcij zaščite kode naših izdelkov.

Dokumenti / Viri

MICROCHIP CoreFPU Core enota s plavajočo vejico [pdf] Uporabniški priročnik
v3.0, v2.1, v2.0, v1.0, CoreFPU Core enota za plavajočo vejico, Core enota za plavajočo vejico, enota za plavajočo vejico, enota za točko

Reference

Pustite komentar

Vaš elektronski naslov ne bo objavljen. Obvezna polja so označena *