MIKROCHIP-logo

MICROCHIP CoreFPU Core Driuwende Komma-ienheid

MICROCHIP-CoreFPU-Cor-Floating-Point-Unit-produkt

 

Ynlieding 

  • De Core Floating Point Unit (CoreFPU) is ûntworpen foar driuwende-komma-rekkenjen en konverzje-operaasjes, foar ien- en dûbele presyzje driuwende-komma-getallen. CoreFPU stipet konverzjes fan fêste-komma nei driuwende-komma en fan driuwende-komma nei fêste-komma en optelling, subtraksje en fermannichfâldiging fan driuwende-komma. De IEEE® Standard for Floating-Point Arithmetic (IEEE 754) is in technyske standert foar driuwende-komma-berekkening.
  • Wichtich: CoreFPU stipet allinich berekkeningen mei normalisearre getallen, en allinich de Verilog-taal wurdt stipe; VHDL wurdt net stipe.

Gearfetting
De folgjende tabel jout in gearfetting fan 'e skaaimerken fan 'e CoreFPU.

Tabel 1. CoreFPU-eigenskippen 

Core Ferzje Dit dokumint jildt foar CoreFPU v3.0.
Stipe apparaatfamyljes
  • PolarFire® SoC
  • PolarFire
  • RTG4™
Stipe Tool Flow Fereasket Libero® SoC v12.6 of letter releases.
Lisinsje CoreFPU is net lisinsjebeskoattele.
Ynstallaasje ynstruksjes CoreFPU moat automatysk ynstalleare wurde yn 'e IP-katalogus fan Libero SoC fia de IP-katalogus-updatefunksje. As alternatyf kin CoreFPU manuell ynladen wurde út 'e katalogus. Sadree't de IP-kearn is

ynstalleare, wurdt it konfigurearre, generearre en ynstantiearre binnen SmartDesign foar opname yn it projekt.

Apparaat gebrûk en prestaasjes In gearfetting fan gebrûks- en prestaasjesynformaasje foar CoreFPU wurdt neamd yn Apparaatboarnengebrûk en prestaasjes.

Ynformaasje oer CoreFPU-wizigingslogboek
Dizze seksje jout in wiidweidich oerview fan 'e nij ynboude funksjes, begjinnend mei de meast resinte release. Foar mear ynformaasje oer de oploste problemen, sjoch it diel Oploste problemen.

Ferzje Wat is nij
v3.0 Ekstra útfierflaggen ymplementearre om de krektens fan it IP te ferbetterjen
v2.1 De dûbele presyzjefunksje tafoege
v2.0 De timinggolffoarmen bywurke
v1.0 Earste produksjeútjefte fan CoreFPU

1. Features

CoreFPU hat de folgjende wichtige funksjes:

  • Stipet ienkele en dûbele presyzje driuwende getallen neffens IEEE-754 standert
  • Stipet konversaasjes lykas neamd:
    • Konverzje fan fêste komma nei driuwende komma
    • Konverzje fan driuwende komma nei fêste komma
  • Stipet rekkenkundige operaasjes lykas neamd:
    • Driuwende-komma-optelling
    • Driuwende-komma-ôftrekking
    • Driuwende-komma-fermannichfâldiging
  • Jout it ôfrûningsskema (ôfrûnje nei it tichtste even getal) allinich foar de rekkenkundige operaasjes
  • Biedet flaggen foar oerstreaming, ûnderstreaming, ûneinichheid (positive ûneinichheid, negative ûneinichheid), stille NaN (QNaN) en sinjalearjende NaN (SNaN) foar driuwende-komma-getallen.
  • Stipet folslein pipeline-ymplemintaasje fan aritmetyske operaasjes
  • Biedet foarsjenning om de Core foar ûntwerpeasken te konfigurearjen

Funksjonele beskriuwing

  • De IEEE-standert foar driuwende-komma-rekkenjen (IEEE 754) is in technyske standert foar driuwende-komma-rekkenjen. De term driuwende-komma ferwiist nei it radixpunt fan it getal (desimaalpunt of binêrpunt), dat earne pleatst wurdt mei respekt foar de wichtige sifers fan it getal.
    In driuwende-kommagetal wurdt typysk útdrukt yn 'e wittenskiplike notaasje, mei in breuk (F), en in eksponint (E) fan in bepaalde radix (r), yn 'e foarm fan F × r^E. Desimale getallen brûke radix fan 10 (F × 10^E); wylst binêre getallen radix fan 2 brûke (F × 2^E).
  • De werjefte fan it driuwende-kommagetal is net unyk. Bygelyksampbygelyks, it getal 55.66 wurdt fertsjintwurdige as 5.566 × 10^1, 0.5566 × 10^2, 0.05566 × 10^3, ensafuorthinne. It fraksjonele diel is normalisearre. Yn 'e normalisearre foarm is der mar ien sifer dat net nul is foar it radixpunt. Bygelyksample, it desimale getal 123.4567 is normalisearre as 1.234567 × 10^2; it binêre getal 1010.1011B is normalisearre as 1.0101011B × 2^3.
  • It is wichtich om te notearjen dat driuwende-kommagetallen lêst hawwe fan ferlies fan presyzje as se wurde fertsjintwurdige mei in fêst oantal bits (bygelyksample, 32-bit of 64-bit). Dit komt om't der in ûneinich oantal reële getallen binne (sels binnen in lyts berik fan 0.0 oant 0.1). Oan 'e oare kant, in
    In n-bit binêr patroan fertsjintwurdiget in eindige 2^n ûnderskate getallen. Dêrom wurde net alle reële getallen fertsjintwurdige. Ynstee dêrfan wurdt de tichtste benadering brûkt, wat resulteart yn ferlies fan krektens.

It ienige presyzje driuwende-kommagetal wurdt as folget fertsjintwurdige:

  • Tekenbit: 1-bit
  • Eksponintbreedte: 8 bits
  • Signifikânsjepresyzje: 24 bits (23 bits wurde eksplisyt opslein)

Figuer 2-1. 32-bit frame

MICROCHIP-CoreFPU-Cor-Floating-Point-Unit- (2)It dûbele presyzje driuwende-kommagetal wurdt as folget fertsjintwurdige:

  • Tekenbit: 1-bit
  • Eksponintbreedte: 11 bits
  • Signifikânsjepresyzje: 53 bits (52 bits wurde eksplisyt opslein)

Figuer 2-2. 64-bit frame MICROCHIP-CoreFPU-Cor-Floating-Point-Unit- (3)De CoreFPU is de yntegraasje op it heechste nivo fan 'e twa konverzjemodules (Fixed to Float point en Float to Fixed point) en trije rekkenkundige operaasjes (FP ADD, FP SUB, en FP MULT). De brûker kin ien fan 'e operaasjes konfigurearje op basis fan 'e eask, sadat de boarnen brûkt wurde foar de selektearre operaasje.
De folgjende ôfbylding lit it blokdiagram fan it topnivo fan CoreFPU mei poarten sjen.

Figuer 2-3. Blokdiagram fan CoreFPU-poarten

MICROCHIP-CoreFPU-Cor-Floating-Point-Unit- (4)De folgjende tabel jout de breedte fan 'e ynfier- en útfierpoarten oan. Tabel 2-1. Breedte fan ynfier- en útfierpoarten

Sinjaal Ienige presyzjebreedte Dûbele presyzjebreedte
ain [31:0] [63:0]
bin [31:0] [63:0]
út [31:0] [63:0]
pruillip [31:0] [63:0]

Fêste komma nei driuwende komma (konverzje)

CoreFPU konfigurearre as fêst nei driuwende-komma jout de module foar konverzje fan fêste-komma nei driuwende-komma oan. De ynfier (ain) foar CoreFPU is elk fêst-kommagetal dat de integer- en fraksjonele bits befettet. De CoreFPU-konfigurator hat de opsjes om de ynfierbreedtes fan integer- en fraksjonele getallen te selektearjen. De ynfier is jildich op it di_valid-sinjaal en de útfier is jildich op do_valid. De útfier (aout) fan 'e fêst nei driuwende-komma-operaasje is yn ien- of dûbele presyzje driuwende-kommaformaat.
Example foar de konverzje fan fêste-komma nei driuwende-komma wurdt neamd yn 'e folgjende tabel.
Tabel 2-2. Example foar konverzje fan fêste komma nei driuwende komma

Fêst puntnûmer Drijvende-kommagetal
ain Integer Fraksje út Teken Eksponint Mantissa
0x12153524 (32-bit) 00010010000101010 011010100100100 0x4610a9a9 0 10001100 00100001010100110101001
0x0000000000008CCC

(64-bit)

0000000000000000000000000000000000000000000000001 000110011001100 0x3FF199999999999A 0 01111111111 0001100110011001100110011001100110011001100110011010

Driuwende komma nei fêste komma (konverzje) 
CoreFPU konfigurearre as driuwend nei fêst-komma jout de module foar it konvertearjen fan driuwende-komma nei fêst-komma oan. De ynfier (ain) foar CoreFPU is in ien- of dûbelpresyzje driuwend-kommagetal en produseart in útfier (aout) yn fêst-kommagetalformaat mei hiele- en fraksjonele bits. De ynfier is jildich op it di_valid-sinjaal en de útfier is jildich op do_valid. De CoreFPU-konfigurator hat de opsjes om de breedte fan hiele- en fraksjonele útfier te selektearjen.
Example foar de konverzje fan driuwende-komma nei fêste-komma wurdt neamd yn 'e folgjende tabel.

Tabel 2-3. Example foar driuwende-komma nei fêste-komma-konverzje

Drijvende-kommagetal Fêst puntnûmer
ain Teken Eksponint Mantissa út Integer Fraksje
0x41bd6783 (32-bit) 0 10000011 01111010110011110000011 0x000bd678 00000000000010111 101011001111000
0x4002094c447c30d3

(64-bit)

0 10000000000 0010000010010100110001000100011111000011000011010011 0x0000000000012095 0000000000000000000000000000000000000000000000010 010000010010101

Driuwende-komma-optelling (aritmetyske operaasje)
CoreFPU konfigurearre as FP ADD ynferearret de driuwende-komma-optelmodule. It telt de twa driuwende-komma-getallen (ain en bin) op en leveret de útfier (pout) yn driuwende-komma-formaat. De ynfier en útfier binne ien- of dûbele presyzje driuwende-komma-getallen. De ynfier is jildich op it di_valid-sinjaal en de útfier is jildich op do_valid. De kearn produseart ovfl_fg (Overflow), qnan_fg (Quiet Not a Number), snan_fg (Signalling Not a Number), pinf_fg (Positive Infinity), en ninf_fg (Negative Infinity) flaggen basearre op de opteloperaasje.
ExampBewurkingsgegevens foar driuwende-komma-optelling binne neamd yn 'e folgjende tabellen.
Tabel 2-4. Example foar Floating-Point Addition Operation (32-bit)

Driuwende-kommawearde Teken Eksponint Mantissa
Driuwende-komma-ynfier 1 ain (0x4e989680) 0 10011101 00110001001011010000000
Driuwende-komma-ynfier 2 bin (0x4f191b40) 0 10011110 00110010001101101000000
Driuwende-komma-optelling útfier pout (0x4f656680) 0 10011110 11001010110011010000000

Tabel 2-5. Example foar Floating-Point Addition Operation (64-bit)

Driuwende-kommawearde Teken Eksponint Mantissa
Driuwende-komma-ynfier 1

ain (0x3ff4106ee30caa32)

0 01111111111 0100000100000110111011100011000011001010101000110010
Driuwende-komma-ynfier 2

bin (0x40020b2a78798e61)

0 10000000000 0010000010110010101001111000011110011000111001100001
Driuwende-komma-optelling útfier pout (0x400c1361e9ffe37a) 0 10000000000 1100000100110110000111101001111111111110001101111010

Driuwende-komma-subtraksje (aritmetyske operaasje) 
CoreFPU konfigurearre as FP SUB ynferearret de driuwende-komma-subtraksjemodule. It subtraheart de twa driuwende-komma-getallen (ain en bin) en leveret de útfier (pout) yn driuwende-komma-formaat. De ynfier en útfier binne ien- of dûbele presyzje driuwende-komma-getallen. De ynfier is jildich op it di_valid-sinjaal en de útfier is jildich op do_valid. De kearn produseart de flaggen ovfl_fg (Overflow), unfl_fg (underflow), qnan_fg (Quiet Not a Number), snan_fg (Signalling Not a Number), pinf_fg (Positive Infinity), en ninf_fg (Negative Infinity) basearre op de subtraksjeoperaasje.
ExampBewurkingsmetoaden foar driuwende-komma-subtraksjeoperaasjes binne neamd yn 'e folgjende tabellen.
Tabel 2-6. Example foar driuwende-komma-subtraksjeoperaasje (32-bit)

Driuwende-kommawearde Teken Eksponint Mantissa
Driuwende-komma-ynfier 1 ain (0xac85465f) 1 01011001 00001010100011001011111
Driuwende-komma-ynfier 2 bin (0x2f516779) 0 01011110 10100010110011101111001
Driuwende-komma-subtraksjeútfier pout (0xaf5591ac) 1 01011110 10101011001000110101011
Driuwende-kommawearde Teken Eksponint Mantissa
Driuwende-komma-ynfier 1

ain (0x405569764adff823)

0 10000000101 0101011010010111011001001010110111111111100000100011
Driuwende-komma-ynfier 2

bin (0x4057d04e78dee3fc)

0 10000000101 0111110100000100111001111000110111101110001111111100
Driuwende-komma-subtraksjeútfier pout (0xc02336c16ff75ec8) 1 10000000010 0011001101101100000101101111111101110101111011001000

Driuwende-komma-fermannichfâldiging (Aritmetyske operaasje)
CoreFPU konfigurearre as FP MULT ynferearret de driuwende-komma-fermannichfâldigingsmodule. It fermannichfâldiget de twa driuwende-komma-getallen (ain en bin) en leveret de útfier (pout) yn driuwende-komma-formaat. De ynfier en útfier binne ien- of dûbele presyzje driuwende-komma-getallen. De ynfier is jildich op it di_valid-sinjaal en de útfier is jildich op do_valid. De kearn produseart ovfl_fg (Overflow), unfl_fg (Underflow), qnan_fg (Quiet Not a Number), snan_fg (Signalling Not a Number), pinf_fg (Positive Infinity), en ninf_fg (Negative Infinity) flaggen basearre op de fermannichfâldigingsoperaasje.
ExampBewurkingsmetoaden foar driuwende-komma-fermannichfâldigingsoperaasjes binne neamd yn 'e folgjende tabellen.
Tabel 2-8. Example foar driuwende-komma-fermannichfâldigingsoperaasje (32-bit)

Driuwende-kommawearde Teken Eksponint Mantissa
Driuwende-komma-ynfier 1 ain (0x1ec7a735) 0 00111101 10001111010011100110101
Driuwende-komma-ynfier 2 bin (0x6ecf15e8) 0 11011101 10011110001010111101000
Driuwende-komma-fermannichfâldigingsútfier pout (0x4e21814a) 0 10011100 01000011000000101001010
Driuwende-kommawearde Teken Eksponint Mantissa
Driuwende-komma-ynfier 1

ain (0x40c1f5a9930be0df)

0 10000001100 0001111101011010100110010011000010111110000011011111
Driuwende-komma-ynfier 2

bin (0x400a0866c962b501)

0 10000000000 1010000010000110011011001001011000101011010100000001
Driuwende-komma-fermannichfâldigingsútfier pout (0x40dd38a1c3e2cae9) 0 10000001101 1101001110001010000111000011111000101100101011101001

 Wierheidstabel foar optellen en ôflûken 
De folgjende wierheidstabellen listje de wearden foar optel- en subtraksjeoperaasjes. Tabel 2-10. Wierheidstabel foar optelling

Gegevens A Gegevens B Teken Bit Resultaat Overflow Underflow 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
nul nul 0 POSZERO 0 0 0 0 0 0
nul posfinityf(y) 0 posfinityf(y) 0 0 0 0 0 0
nul negfinit(y) 1 negfinit(y) 0 0 0 0 0 0
nul posinfinite 0 posinfinite 0 0 0 0 1 0
nul nefinide 1 nefinide 0 0 0 0 0 1
posfinityf(y) nul 0 posfinityf(y) 0 0 0 0 0 0
posfinityf posinfinite 0 posinfinite 0 0 0 0 1 0
Tafel 2-10. Wierheidstabel foar optelling (ferfolch)
Gegevens A Gegevens B Teken Bit Resultaat Overflow Underflow SNaN QNaN PINF NINF
posfinityf nefinide 1 nefinide 0 0 0 0 0 1
negfinit(y) nul 1 negfinit(y) 0 0 0 0 0 0
negfinit posinfinite 0 posinfinite 0 0 0 0 1 0
negfinit nefinide 1 nefinide 0 0 0 0 0 1
posinfinite nul 0 posinfinite 0 0 0 0 1 0
posinfinite posfinityf 0 posinfinite 0 0 0 0 1 0
posinfinite negfinit 0 posinfinite 0 0 0 0 1 0
posinfinite posinfinite 0 posinfinite 0 0 0 0 1 0
posinfinite nefinide 0 POSQNaN 0 0 0 1 0 0
nefinide nul 1 nefinide 0 0 0 0 0 1
nefinide posfinityf 1 nefinide 0 0 0 0 0 1
nefinide negfinit 1 nefinide 0 0 0 0 0 1
nefinide posinfinite 0 POSQNaN 0 0 0 1 0 0
nefinide nefinide 1 nefinide 0 0 0 0 0 1
posfinityf posfinityf 0 posfinityf 0 0 0 0 0 0
posfinityf posfinityf 0 posinfinite 0 0 0 0 1 0
posfinityf posfinityf 0/1 QNaN 0 0 0 1 0 0
posfinityf posfinityf 0/1 SNaN 0 0 1 0 0 0
posfinityf posfinityf 0 POSSNaN 1 0 1 0 0 0
posfinityf negfinit 0 posfinityf 0 0 0 0 0 0
posfinityf negfinit 1 negfinit 0 0 0 0 0 0
posfinityf negfinit 0 POSSNaN 0 1 1 0 0 0
negfinit posfinityf 0 posfinityf 0 0 0 0 0 0
negfinit posfinityf 1 negfinit 0 0 0 0 0 0
negfinit posfinityf 0 POSSNaN 0 1 1 0 0 0
negfinit negfinit 1 negfinit 0 0 0 0 0 0
negfinit negfinit 1 nefinide 0 0 0 0 0 1
negfinit negfinit 0/1 QNaN 0 0 0 1 0 0
negfinit negfinit 0/1 SNaN 0 0 1 0 0 0
negfinit negfinit 0 POSSNaN 1 0 1 0 0 0
Gegevens A Gegevens B Teken Bit Resultaat Overflow Underflow 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
nul nul 0 POSZERO 0 0 0 0 0 0
nul posfinityf(y) 1 negfinit(y) 0 0 0 0 0 0
nul negfinit(y) 0 posfinityf(y) 0 0 0 0 0 0
nul posinfinite 1 nefinide 0 0 0 0 0 1
nul nefinide 0 posinfinite 0 0 0 0 1 0
posfinityf(y) nul 0 posfinityf(y) 0 0 0 0 0 0
posfinityf posinfinite 1 nefinide 0 0 0 0 0 1
posfinityf nefinide 0 posinfinite 0 0 0 0 1 0
negfinit(y) nul 1 negfinit(y) 0 0 0 0 0 0
negfinit posinfinite 1 nefinide 0 0 0 0 0 1
Tafel 2-11. Wierheidstabel foar ôflûking (ferfolch)
Gegevens A Gegevens B Teken Bit Resultaat Overflow Underflow SNaN QNaN PINF NINF
negfinit nefinide 0 posinfinite 0 0 0 0 1 0
posinfinite nul 0 posinfinite 0 0 0 0 1 0
posinfinite posfinityf 0 posinfinite 0 0 0 0 1 0
posinfinite negfinit 0 posinfinite 0 0 0 0 1 0
posinfinite posinfinite 0 POSQNaN 0 0 0 1 0 0
posinfinite nefinide 0 posinfinite 0 0 0 0 1 0
nefinide nul 1 nefinide 0 0 0 0 0 1
nefinide posfinityf 1 nefinide 0 0 0 0 0 1
nefinide negfinit 1 nefinide 0 0 0 0 0 1
nefinide posinfinite 1 nefinide 0 0 0 0 0 1
nefinide nefinide 0 POSQNaN 0 0 0 1 0 0
posfinityf posfinityf 0 posfinityf 0 0 0 0 0 0
posfinityf posfinityf 1 negfinit 0 0 0 0 0 0
posfinityf posfinityf 0 POSSNaN 0 1 1 0 0 0
posfinityf negfinit 0 posfinityf 0 0 0 0 0 0
posfinityf negfinit 0 posinfinite 0 0 0 0 1 0
posfinityf negfinit 0/1 QNaN 0 0 0 1 0 0
posfinityf negfinit 0/1 SNaN 0 0 1 0 0 0
posfinityf negfinit 0 POSSNaN 1 0 1 0 0 0
negfinit posfinityf 1 negfinit 0 0 0 0 0 0
negfinit posfinityf 1 nefinide 0 0 0 0 0 1
negfinit posfinityf 0/1 QNaN 0 0 0 1 0 0
negfinit posfinityf 0/1 SNaN 0 0 1 0 0 0
negfinit posfinityf 0 POSSNaN 1 0 1 0 0 0
negfinit negfinit 0 posfinityf 0 0 0 0 0 0
negfinit negfinit 1 negfinit 0 0 0 0 0 0
negfinit negfinit 0 POSSNaN 0 1 1 0 0 0

Belangryk:

  • Se yn 'e foargeande tabellen oantsjutte elk getal.
  • De yn 'e foargeande tabellen jout in 'e foargeande tabellen in 'e sin fan it skele' oan.

Wierheidstabel foar fermannichfâldiging 
De folgjende wierheidstabel listet de wearden foar fermannichfâldigingsoperaasjes.

Tabel 2-12. Wierheidstabel foar fermannichfâldiging

Gegevens A Gegevens B Teken Bit Resultaat Overflow Underflow 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
nul nul 0 POSZERO 0 0 0 0 0 0
nul posfinityf 0 POSZERO 0 0 0 0 0 0
nul negfinit 0 POSZERO 0 0 0 0 0 0
nul posinfinite 0 POSQNaN 0 0 0 1 0 0
nul nefinide 0 POSQNaN 0 0 0 1 0 0
Tafel 2-12. Wierheidstabel foar fermannichfâldiging (ferfolch)
Gegevens A Gegevens B Teken Bit Resultaat Overflow Underflow SNaN QNaN PINF NINF
posfinityf nul 0 POSZERO 0 0 0 0 0 0
posfinityf posinfinite 0 posinfinite 0 0 0 0 1 0
posfinityf nefinide 1 nefinide 0 0 0 0 0 1
negfinit nul 0 POSZERO 0 0 0 0 0 0
negfinit posinfinite 1 nefinide 0 0 0 0 0 1
negfinit nefinide 0 posinfinite 0 0 0 0 1 0
posinfinite nul 0 POSQNaN 0 0 0 1 0 0
posinfinite posfinityf 0 posinfinite 0 0 0 0 1 0
posinfinite negfinit 1 nefinide 0 0 0 0 0 1
posinfinite posinfinite 0 posinfinite 0 0 0 0 1 0
posinfinite nefinide 1 nefinide 0 0 0 0 0 1
nefinide nul 0 POSQNaN 0 0 0 1 0 0
nefinide posfinityf 1 nefinide 0 0 0 0 0 1
nefinide negfinit 0 posinfinite 0 0 0 0 1 0
nefinide posinfinite 1 nefinide 0 0 0 0 0 1
nefinide nefinide 0 posinfinite 0 0 0 0 1 0
posfinityf posfinityf 0 posfinityf 0 0 0 0 0 0
posfinityf posfinityf 0 posinfinite 0 0 0 0 1 0
posfinityf posfinityf 0 POSQNaN 0 0 0 1 0 0
posfinityf posfinityf 0 POSSNaN 0 0 1 0 0 0
posfinityf posfinityf 0 POSSNaN 1 0 1 0 0 0
posfinityf posfinityf 0 POSSNaN 0 1 1 0 0 0
posfinityf negfinit 1 negfinit 0 0 0 0 0 0
posfinityf negfinit 1 nefinide 0 0 0 0 0 1
posfinityf negfinit 0 POSQNaN 0 0 0 1 0 0
posfinityf negfinit 0 POSSNaN 0 0 1 0 0 0
posfinityf negfinit 0 POSSNaN 1 0 1 0 0 0
posfinityf negfinit 0 POSSNaN 0 1 1 0 0 0
negfinit posfinityf 1 negfinit 0 0 0 0 0 0
negfinit posfinityf 1 nefinide 0 0 0 0 0 1
negfinit posfinityf 0 POSQNaN 0 0 0 1 0 0
negfinit posfinityf 0 POSSNaN 0 0 1 0 0 0
negfinit posfinityf 0 POSSNaN 1 0 1 0 0 0
negfinit posfinityf 0 POSSNaN 0 1 1 0 0 0
negfinit negfinit 0 posfinityf 0 0 0 0 0 0
negfinit negfinit 0 posinfinite 0 0 0 0 1 0
negfinit negfinit 0 POSQNaN 0 0 0 1 0 0
negfinit negfinit 0 POSQNaN 0 0 1 0 0 0
negfinit negfinit 0 POSQNaN 1 0 1 0 0 0
negfinit negfinit 0 POSQNaN 0 1 1 0 0 0

Belangryk:

Tekenbit '0' definiearret positive útfier en '1' definiearret negative útfier.
De x yn 'e foargeande tabel jout de betingst oan dat it my net skele.

CoreFPU-parameters en ynterfacesignalen
Dizze seksje behannelet de parameters yn 'e CoreFPU Configurator-ynstellingen en I/O-sinjalen.

Konfiguraasje GUI Parameters 
Der binne in oantal konfigurearbere opsjes dy't jilde foar de FPU-ienheid, lykas werjûn yn 'e folgjende tabel. As in oare konfiguraasje as de standert fereaske is, wurdt it konfiguraasjedialoochfinster brûkt om passende wearden foar de konfigurearbere opsje te selektearjen.

Tabel 3-1. CoreFPU-konfiguraasje GUI-parameters 

Parameter Namme Standert Beskriuwing
Krektens Inkel Selektearje de operaasje as nedich:

Ienkele presyzje
Dûbele presyzje

Conversion Type Konverzje fan fêste komma nei driuwende komma Selektearje de operaasje as nedich:
  • Konverzje fan fêste komma nei driuwende komma
  • Konverzje fan driuwende komma nei fêste komma
  • Driuwende-komma-optelling
  • Driuwende-komma-ôftrekking
  • Driuwende-komma-fermannichfâldiging
Ynfierfraksjebreedte1 15 Konfigurearret it fraksjonele punt yn 'e ynfier ain- en bin-sinjalen

Jildich berik is 31–1

Útfierfraksjebreedte2 15 Konfigurearret it fraksjonele punt yn 'e útfier aout-sinjalen

Jildich berik is 51–1

Belangryk:

  1. Dizze parameter is allinich konfigurearber by konverzje fan fêste-komma nei driuwende-komma.
  2. Dizze parameter is allinich konfigurearber by konverzje fan driuwende-komma nei fêste-komma.

Ynput- en útfiersinjalen (freegje in fraach)
De folgjende tabel listet de ynfier- en útfierpoartesignalen fan CoreFPU.

Tabel 3-2. Poartbeskriuwing 

Sinjaal Namme Breedte Type Beskriuwing
klk 1 Ynfier Haadsysteemklok
rstn 1 Ynfier Aktyf-lege asynchrone reset
di_jildich 1 Ynfier Aktyf-hege ynfier jildich

Dit sinjaal jout oan dat de gegevens oanwêzich op ain[31:0], ain[63:0] en bin[31:0], bin[63:0] jildich binne.

ain 32/64 Ynfier In ynfierbus (Dizze wurdt brûkt foar alle operaasjes)
bin1 32/64 Ynfier B Ynfierbus (It wurdt allinich brûkt foar rekkenkundige operaasjes)
út2 32/64 Utfier Utfierwearde as konverzje-operaasjes mei fêste komma of driuwende nei fêste komma selektearre binne.
pruillip1 32/64 Utfier Utfierwearde as optellen, subtrahearjen of fermannichfâldigjen selektearre binne.
Tafel 3-2. Poartbeskriuwing (ferfolch)
Sinjaal Namme Breedte Type Beskriuwing
do_jildich 1 Utfier Aktyf-heech sinjaal

Dit sinjaal jout oan dat de gegevens dy't oanwêzich binne op 'e pout/aout-gegevensbus jildich binne.

ovfl_fg3 1 Utfier Aktyf-heech sinjaal

Dit sinjaal jout de oerstreaming oan tidens driuwende-komma-operaasjes.

ûnfl_fg 1 Utfier Aktyf-heech sinjaal

Dit sinjaal jout de ûnderstream oan tidens driuwende-komma-operaasjes.

qnan_fg3 1 Utfier Aktyf-heech sinjaal

Dit sinjaal jout de Quiet Not a Number (QNaN) oan tidens driuwende-komma-operaasjes.

snan_fg 1 Utfier Aktyf-heech sinjaal

Dit sinjaal jout de Signalling Not-a-Number (SNaN) oan tidens driuwende-komma-operaasjes.

pinf_fg3 1 Utfier Aktyf-heech sinjaal

Dit sinjaal jout de positive ûneinichheid oan tidens driuwende-komma-operaasjes.

ninf_fg 1 Utfier Aktyf-heech sinjaal

Dit sinjaal jout de negative ûneinichheid oan tidens driuwende-komma-operaasjes.

Belangryk:

  1. Dizze poarte is allinich beskikber foar optellen, subtrahearjen of fermannichfâldigjen mei driuwende komma.
  2. Dizze poarte is allinich beskikber foar konverzje-operaasjes fan fêste komma nei driuwende komma en fan driuwende komma nei fêste komma.
  3. Dizze poarte is beskikber foar driuwende-komma nei fêste-komma, driuwende-komma-optellen, driuwende-komma-subtraksje en driuwende-komma-fermannichfâldigjen.

Ymplemintaasje fan CoreFPU yn Libero Design Suite

Dizze seksje beskriuwt de ymplemintaasje fan CoreFPU yn 'e Libero Design Suite.

SmartDesign 

CoreFPU is te downloaden yn 'e Libero IP-katalogus fia de web repository. Sadree't it yn 'e katalogus stiet, wurdt de kearn ynstantiearre mei de SmartDesign-flow. Foar ynformaasje oer it brûken fan SmartDesign om kearnen te konfigurearjen, te ferbinen en te generearjen, sjoch de online help fan Libero SoC.
Nei it konfigurearjen en generearjen fan 'e kearnynstânsje wurdt de basisfunksjonaliteit simulearre mei de testbank dy't by de CoreFPU levere wurdt. De testbankparameters passe automatysk oan 'e CoreFPU-konfiguraasje oan. De CoreFPU wurdt ynstantiearre as in ûnderdiel fan in grutter ûntwerp.
Figuer 4-1. SmartDesign CoreFPU-eksimplaar foar rekkenkundige operaasjes

MICROCHIP-CoreFPU-Cor-Floating-Point-Unit- (5)Figuer 4-2. SmartDesign CoreFPU-eksimplaar foar konverzjeoperaasje MICROCHIP-CoreFPU-Cor-Floating-Point-Unit- (6)

 

Konverzje fan fêste komma nei driuwende komma
Tidens de konverzje fan fêste-komma nei driuwende-komma is de Ynfierfraksjebreedte konfigurearber. De Útfierbreedte is standert ynsteld op 32-bit foar ienige presyzje en 64-bit foar dûbele presyzje driuwende-komma.
Om fan fêste-komma nei driuwende-komma te konvertearjen, selektearje Konverzjetype Fêst nei driuwende-komma, lykas werjûn yn 'e folgjende ôfbylding.

MICROCHIP-CoreFPU-Cor-Floating-Point-Unit- (7)Driuwende komma nei fêste komma 
Tidens de konverzje fan driuwende-komma nei fêste-komma is de Útfierfraksjonele Breedte konfigurearber, en de Ynfierbreedte is standert ynsteld op 32-bit foar inkele presyzje en 64-bit foar dûbele presyzje driuwende-komma.
Om fan driuwende-komma nei fêste-komma te konvertearjen, selektearje Konverzjetype driuwende-komma nei fêst, lykas werjûn yn 'e folgjende ôfbylding.
Figuer 4-4. CoreFPU-konfigurator foar driuwende komma nei fêst MICROCHIP-CoreFPU-Cor-Floating-Point-Unit- (8)Drijvende-komma-optelling/ôftrekking/fermannichfâldiging
Tidens optellen, subtrahearjen en fermannichfâldigjen mei driuwende komma binne de Ynfierfraksjebreedte en Utfierfraksjebreedte net konfigurearber, om't dit driuwende-komma-aritmetyske operaasjes binne, en de Ynfier/Utfierbreedte is standert ynsteld op 32-bit inkele presyzje en 64-bit foar dûbele presyzje driuwende-komma.
De folgjende ôfbylding lit de CoreFPU-konfigurator sjen foar driuwende-komma-subtraksjeoperaasje.

Figuer 4-5. CoreFPU-konfigurator foar driuwende komma-subtraksjeMICROCHIP-CoreFPU-Cor-Floating-Point-Unit- (9)Simulaasje (In fraach stelle)
Om simulaasjes út te fieren, selektearje yn it kearnkonfiguraasjefinster Brûkerstestbench. Nei it generearjen fan de CoreFPU, de pre-synthese testbench Hardware Description Language (HDL) files binne ynstalleare yn Libero.

Simulaasjegolffoarmen (Stel in fraach)
Dizze seksje behannelet de simulaasjegolffoarmen foar CoreFPU.
De folgjende figueren litte de golffoarm sjen fan konverzje fan fêste-komma nei driuwende-komma foar sawol 32-bit as 64-bit.MICROCHIP-CoreFPU-Cor-Floating-Point-Unit- (10)

MICROCHIP-CoreFPU-Cor-Floating-Point-Unit- (11) MICROCHIP-CoreFPU-Cor-Floating-Point-Unit- (12) MICROCHIP-CoreFPU-Cor-Floating-Point-Unit- (13)

Systeem Yntegraasje
De folgjende figuer toant in eksampit brûken fan 'e kearn. Yn dit foarbyldample, de ûntwerp-UART wurdt brûkt as in kommunikaasjekanaal tusken it ûntwerp en de host-PC. De sinjalen ain en bin (elk fan 32-bit of 64-bit breedte) binne de ynfier nei it ûntwerp fan 'e UART. Nei't de CoreFPU it di_valid-sinjaal ûntfangt, berekkent it it resultaat. Nei it berekkenjen fan it resultaat giet it do_valid-sinjaal heech en bewarret it resultaat (aout/pout-gegevens) yn 'e útfierbuffer. Deselde proseduere is fan tapassing foar konverzje- en rekkenkundige operaasjes. Foar konverzje-operaasjes is allinich ynfier ain genôch, wylst foar rekkenkundige operaasjes sawol ain- as bin-ynfier nedich binne. Utfier aout is ynskeakele foar konverzje-operaasjes en pout-poarte is ynskeakele foar rekkenkundige operaasjes.
figuer 4-16. Example fan it CoreFPU-systeem

MICROCHIP-CoreFPU-Cor-Floating-Point-Unit- (14)

 

  1. Synteze (Stel in fraach)
    Om synteze op 'e CoreFPU út te fieren, stel de ûntwerproot yn op it IP-komponinteksimplaar en fier fanút it Libero-ûntwerpstreampaniel de Synthesis-ark út.
    Plak en rûte (Stel in fraach)
    Nei't it ûntwerp synthetisearre is, fier de Place-and-Route-ark út. CoreFPU fereasket gjin spesjale place-and-route-ynstellingen.
  2. Brûkers Testbank (Stel in fraach)
    In brûkerstestbank wurdt levere mei de CoreFPU IP-release. Mei dizze testbank kinne jo it funksjonele gedrach fan CoreFPU ferifiearje.

In ferienfâldige blokdiagram fan 'e brûkerstestbank wurdt werjûn yn 'e folgjende ôfbylding. De brûkerstestbank ynstantiearret it Configured CoreFPU-ûntwerp (UUT), en omfettet in gedrachstestgegevensgenerator, nedige klok en resetsignalen.
Figuer 4-17. CoreFPU brûkerstestbank

MICROCHIP-CoreFPU-Cor-Floating-Point-Unit- (15)Wichtich: Jo moatte de útfiersignalen yn 'e ModelSim-simulator kontrolearje, sjoch de seksje Simulaasje.

Oanfoljende referinsjes (Stel in fraach)
Dizze seksje jout in list mei ekstra ynformaasje.
Foar updates en oanfoljende ynformaasje oer de software, apparaten en hardware, besykje de

Siden yntellektueel eigendom op 'e Microchip FPGA's en PLD's website.

  1. Bekende problemen en oplossingen (Stel in fraach)
    Der binne gjin bekende problemen en oplossingen foar CoreFPU v3.0.
  2. Funksjes en apparaten dy't net mear beskikber binne (stel in fraach)
    Der binne gjin stopsette funksjes en apparaten mei dizze IP-útjefte.

Glossary

Hjirûnder steane de list mei termen en definysjes dy't yn it dokumint brûkt wurde.
Tabel 6-1. Termen en definysjes

Term Definysje
FPU Floating Point Unit
FP TAFOEGJE Driuwende-komma-optelling
FP SUB Driuwende-komma-subtraksje
FP MULT Driuwende-komma-fermannichfâldiging

Oploste problemen 
De folgjende tabel listet alle oploste problemen foar de ferskate CoreFPU-releases.

Tabel 7-1. Oploste problemen

Release Beskriuwing
3.0 Hjirûnder is de list mei alle oploste problemen yn 'e v3.0-útjefte:

Saaknûmer: 01420387 en 01422128

De logika fan it ôfrûningsskema tafoege (ôfrûnje nei it tichtste even getal).

2.1 Hjirûnder is de list mei alle oploste problemen yn 'e v2.1-útjefte:
It ûntwerp komt problemen tsjin fanwegen de oanwêzigens fan dûbele modules as meardere kearnen ynstantiearre wurde.
It omneamen fan it CoreFPU IP-eksimplaar resulteart yn in flater "Undefined module".
1.0 Inisjele Release

Gebrûk en prestaasjes fan apparaatboarnen

De CoreFPU-makro is ymplementearre yn 'e famyljes dy't yn 'e folgjende tabel steane.
Tabel 8-1. Gebrûk fan FPU PolarFire-ienheid foar 32-bit

FPGA-boarnen Benutting
Famylje 4 LUT DFF Totaal Wiskundeblok Apparaat Percenttage Optreden Wachttiid
Fêst-komma nei driuwende komma
PolarFire® 260 104 364 0 MPF300T 0.12 310 MHz 3
Driuwende komma nei fêste komma
PolarFire 591 102 693 0 MPF300T 0.23 160 MHz 3
Driuwende-komma-optelling
PolarFire 1575 1551 3126 0 MPF300T 1.06 340 MHz 16
Driuwende-komma-subtraksje
PolarFire 1561 1549 3110 0 MPF300T 1.04 345 MHz 16
Driuwende-komma-fermannichfâldiging
PolarFire 465 847 1312 4 MPF300T 0.44 385 MHz 14
FPGA-boarnen Benutting
Famylje 4 LUT DFF Totaal Wiskundeblok Apparaat Percenttage Optreden Wachttiid
Fêst-komma nei driuwende komma
RTG4™ 264 104 368 0 RT4G150 0.24 160 MHz 3
Driuwende komma nei fêste komma
RTG4 439 112 551 0 RT4G150 0.36 105 MHz 3
Driuwende-komma-optelling
RTG4 1733 1551 3284 0 RT4G150 1.16 195 MHz 16
Driuwende-komma-subtraksje
RTG4 1729 1549 3258 0 RT4G150 1.16 190 MHz 16
Driuwende-komma-fermannichfâldiging
RTG4 468 847 1315 4 RT4G150 0.87 175 MHz 14
FPGA-boarnen Benutting
Famylje 4 LUT DFF Totaal Wiskundeblok Apparaat Percenttage Optreden Wachttiid
Fêst-komma nei driuwende komma
PolarFire® 638 201 849 0 MPF300T 0.28 305 MHz 3
Driuwende komma nei fêste komma
PolarFire 2442 203 2645 0 MPF300T 0.89 110 MHz 3
Driuwende-komma-optelling
PolarFire 5144 4028 9172 0 MPF300T 3.06 240 MHz 16
Driuwende-komma-subtraksje
PolarFire 5153 4026 9179 0 MPF300T 3.06 250 MHz 16
Driuwende-komma-fermannichfâldiging
PolarFire 1161 3818 4979 16 MPF300T 1.66 340 MHz 27
FPGA-boarnen Benutting
Famylje 4 LUT DFF Totaal Wiskundeblok Apparaat Percenttage Optreden Wachttiid
Fêst-komma nei driuwende komma
RTG4™ 621 201 822 0 RT4G150 0.54 140 MHz 3
Driuwende komma nei fêste komma
RTG4 1114 203 1215 0 RT4G150 0.86 75 MHz 3
Driuwende-komma-optelling
RTG4 4941 4028 8969 0 RT4G150 5.9 140 MHz 16
Driuwende-komma-subtraksje
RTG4 5190 4026 9216 0 RT4G150 6.07 130 MHz 16
Driuwende-komma-fermannichfâldiging
RTG4 1165 3818 4983 16 RT4G150 3.28 170 MHz 27

Wichtich: Om de frekwinsje te ferheegjen, selektearje de opsje Retiming ynskeakelje yn 'e synteze-ynstelling.

Revision Skiednis

De revyzjeskiednis beskriuwt de wizigingen dy't yn it dokumint binne ymplementearre. De wizigingen wurde fermeld per revyzje, te begjinnen mei de meast aktuele publikaasje.

MICROCHIP-CoreFPU-Cor-Floating-Point-Unit- (1)

Microchip FPGA Support

Microchip FPGA-produktengroep stipet har produkten mei ferskate stipetsjinsten, ynklusyf Customer Service, Customer Technical Support Center, in website, en wrâldwide ferkeapkantoaren. Klanten wurde suggerearre om Microchip online boarnen te besykjen foardat se kontakt opnimme mei stipe, om't it heul wierskynlik is dat har fragen al beantwurde binne.
Kontakt Technical Support Center fia de website at www.microchip.com/support. Neam it FPGA Device Part number, selektearje passende saakkategory, en upload ûntwerp files wylst it meitsjen fan in technyske stipe saak.
Nim kontakt op mei Customer Service foar net-technyske produktstipe, lykas produktprizen, produktupgrades, update-ynformaasje, bestelstatus en autorisaasje.

  • Ut Noard-Amearika, skilje 800.262.1060
  • Fan 'e rest fan' e wrâld, ring 650.318.4460
  • Fax, fan oeral yn 'e wrâld, 650.318.8044

Microchip Ynformaasje

Handelsmerken
De namme en logo "Microchip", it "M" logo, en oare nammen, logo's en merken binne registrearre en net registrearre hannelsmerken fan Microchip Technology Incorporated of har filialen en/of dochterûndernimmingen yn 'e Feriene Steaten en/of oare lannen ("Microchip" hannelsmerken"). Ynformaasje oangeande Microchip Trademarks is te finen op https://www.microchip.com/en-us/about/legal-information/microchip-trademarks
ISBN: 979-8-3371-0947-3

Juridyske Notysje
Dizze publikaasje en de ynformaasje hjiryn meie allinich brûkt wurde mei Microchip-produkten, ynklusyf om Microchip-produkten te ûntwerpen, te testen en te yntegrearjen mei jo applikaasje. Gebrûk fan dizze ynformaasje op in oare manier skeint dizze betingsten. Ynformaasje oangeande apparaatapplikaasjes wurdt allinich foar jo gemak levere en kin wurde ferfongen troch updates. It is jo ferantwurdlikens om te soargjen dat jo applikaasje foldocht oan jo spesifikaasjes. Nim kontakt op mei jo lokale Microchip ferkeap kantoar foar ekstra stipe of, krije ekstra stipe by www.microchip.com/en-us/support/design-help/client-support-services

DIT YNFORMAASJE WORDT LJOCHT FAN MICROCHIP "AS IS". MICROCHIP MAAKT GEEN FERSENTASJES OF GARANTIES FAN ELKE SOART, SY EXPRESS OF YMPLYD, SKRIFTLIK OF Mûnling, STATUTORY OF EARSOON, FERGESE AAN DE YNFORMAASJE YNLEFT MAAR NET BEPERKTE TOT ELKE IMPLICEERDE GARANJANSJES-EN GARANTIES, FITNESS FOAR IN BEPAALDE DOEL, OF GARANTIES FERGESE TOT DE TEST, KWALITEIT, OF PERFORMANCE.

YN GEEN GEVAL SIL MICROCHIP AANSPRAKELIJK Wêze FOAR ELKE INDIREKTE, SPESIALE, STRAFFENDE, INSIDENTELE, OF GEVOLGLIKE FERLIEZEN, SKADE, KOSTEN, OF UITGAVEN FAN ELKE SOART WAT HÊT HÊT HÊT HÊT HÊT OP DE YNFORMAASJE OF SY GEBRUIK, HÛÛKLIK FERGESE, HOOFDÊÛÛÛÛRJOCHT, HÌÊÛÛÛÛNÊLÊN FERGESE MOOGLIKHEID OF DE SKADES binne foarsjoenber. FAN DE FOLLE MATE DAT BY DE WET tastien is, sil MICROCHIP'S TOTALE AANSPRAKELIJKHEID OP ALLE EIDERINGEN OP ELKE MANIER FERGESE AAN DE YNFORMAASJE OF SY GEBRUK NET it BELANG FAN FERGESE HEBBEN DAT JO DIREKTE FOAR DE MICROCHIP BETAALD HAVEN.

Gebrûk fan Microchip-apparaten yn libbensstipe- en / of feiligensapplikaasjes is folslein op it risiko fan 'e keaper, en de keaper stimt yn om Microchip te ferdigenjen, te beskermjen en harmless te hâlden fan alle skea, oanspraken, suits of útjeften dy't fuortkomme út sa'n gebrûk. Gjin lisinsjes wurde oerbrocht, ymplisyt of oars, ûnder alle Microchip yntellektuele eigendomsrjochten, útsein as oars oanjûn.

Microchip Apparaten Code Protection Feature
Notysje de folgjende details fan 'e koadebeskermingsfunksje op Microchip-produkten:

  • Microchip produkten foldogge oan de spesifikaasjes befette yn harren bysûndere Microchip Data Sheet.
  • Microchip is fan betinken dat syn famylje fan produkten feilich is as se brûkt wurde op 'e bedoelde manier, binnen operasjonele spesifikaasjes, en ûnder normale omstannichheden.
  • Microchip wearden en agressyf beskermet syn yntellektuele eigendomsrjochten. Pogingen om de koadebeskermingsfunksjes fan Microchip-produkten te brekken binne strang ferbean en kinne de Digital Millennium Copyright Act skeine.
  • Noch Microchip noch in oare semiconductor fabrikant kin garandearje de feiligens fan syn koade. Koadebeskerming betsjut net dat wy garandearje dat it produkt "ûnbrekber" is. Koadebeskerming is konstant yn ûntwikkeling. Microchip set him yn om de funksjes foar koadebeskerming fan ús produkten kontinu te ferbetterjen.

Dokuminten / Resources

MICROCHIP CoreFPU Core Driuwende Komma-ienheid [pdf] Brûkersgids
v3.0, v2.1, v2.0, v1.0, CoreFPU Core Driuwende Komma-ienheid, Core Driuwende Komma-ienheid, Driuwende Komma-ienheid, Punt-ienheid

Referinsjes

Lit in reaksje efter

Jo e-mailadres sil net publisearre wurde. Ferplichte fjilden binne markearre *