MICROCHIP-logo

MICROCHIP CoreFPU Core flydende komma-enhed

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

 

Indledning 

  • Core Floating Point Unit (CoreFPU) er designet til flydende-kommaritmetik og konverteringsoperationer, til flydende-kommatal med enkelt og dobbelt præcision. CoreFPU understøtter konverteringer fra fast komma til flydende-komma og fra flydende-komma til fast komma samt addition, subtraktion og multiplikation med flydende-komma. IEEE® Standard for Floating-Point Arithmetic (IEEE 754) er en teknisk standard for flydende-kommaberegning.
  • Vigtigt: CoreFPU understøtter kun beregninger med normaliserede tal, og kun Verilog-sproget understøttes; VHDL understøttes ikke.

Oversigt
Følgende tabel giver en oversigt over CoreFPU'ens egenskaber.

Tabel 1. CoreFPU-karakteristika 

Kerneversion Dette dokument gælder for CoreFPU v3.0.
Understøttede enhedsfamilier
  • PolarFire® SoC
  • PolarFire
  • RTG4™
Understøttet værktøjsflow Kræver Libero® SoC v12.6 eller nyere udgivelser.
Licensering CoreFPU er ikke licenslåst.
Installationsvejledning CoreFPU skal installeres automatisk i IP-kataloget for Libero SoC via IP-katalogopdateringsfunktionen. Alternativt kan CoreFPU downloades manuelt fra kataloget. Når IP-kernen er

Når den er installeret, konfigureres, genereres og instantieres den i SmartDesign til inkludering i projektet.

Enhedsudnyttelse og ydeevne En oversigt over udnyttelses- og ydeevneoplysninger for CoreFPU findes i Enhedsressourceudnyttelse og ydeevne.

Oplysninger om CoreFPU-ændringslog
Dette afsnit giver en omfattende overview af de nyligt indarbejdede funktioner, startende med den seneste udgivelse. For mere information om de løste problemer, se afsnittet Løste problemer.

Version Hvad er nyt
v3.0 Implementerede yderligere outputflag for at forbedre nøjagtigheden af ​​IP'en
v2.1 Tilføjet funktionen med dobbelt præcision
v2.0 Opdaterede timingbølgeformerne
v1.0 Første produktionsudgivelse af CoreFPU

1. Funktioner

CoreFPU har følgende nøglefunktioner:

  • Understøtter enkelt- og dobbeltpræcisionsflydende tal i henhold til IEEE-754-standarden
  • Understøtter konverteringer som anført:
    • Konvertering fra fast komma til flydende komma
    • Konvertering fra flydende komma til fast komma
  • Understøtter aritmetiske operationer som anført:
    • Flydende komma-addition
    • Flydende komma-subtraktion
    • Flydende komma-multiplikation
  • Angiver afrundingsskemaet (afrund til nærmeste lige) kun for aritmetiske operationer.
  • Giver flag for overløb, underløb, uendelighed (positiv uendelighed, negativ uendelighed), stille NaN (QNaN) og signalerende NaN (SNaN) for flydende tal.
  • Understøtter fuldt pipeline-implementering af aritmetiske operationer
  • Giver mulighed for at konfigurere kernen til designkrav

Funktionsbeskrivelse

  • IEEE-standarden for floating-point aritmetik (IEEE 754) er en teknisk standard for flydende kommaberegning. Udtrykket flydende komma refererer til radixkommaet for et tal (decimalkomma eller binært komma), som er placeret et vilkårligt sted i forhold til tallets betydende cifre.
    Et flydende tal udtrykkes typisk i videnskabelig notation med en brøkdel (F) og en eksponent (E) af et bestemt radix (r) i formen F × r^E. Decimaltal bruger radix på 10 (F × 10^E); mens binære tal bruger radix på 2 (F × 2^E).
  • Repræsentationen af ​​flydende kommatal er ikke entydig. For eksempelampf.eks. er tallet 55.66 repræsenteret som 5.566 × 10^1, 0.5566 × 10^2, 0.05566 × 10^3 osv. Brøkdelen er normaliseret. I den normaliserede form er der kun et enkelt ciffer, der ikke er nul, før radixpunktet. For eksempelampf.eks. er decimaltallet 123.4567 normaliseret som 1.234567 × 10^2; det binære tal 1010.1011B er normaliseret som 1.0101011B × 2^3.
  • Det er vigtigt at bemærke, at flydende kommatal mister præcision, når de repræsenteres med et fast antal bits (f.eks.ampf.eks. 32-bit eller 64-bit). Dette skyldes, at der er et uendeligt antal reelle tal (selv inden for et lille område fra 0.0 til 0.1). På den anden side er en
    Et n-bit binært mønster repræsenterer et endeligt antal på 2^n forskellige tal. Derfor er ikke alle reelle tal repræsenteret. I stedet anvendes den nærmeste tilnærmelse, hvilket resulterer i tab af nøjagtighed.

Det enkelte præcisionsflydende tal er repræsenteret som følger:

  • Tegnbit: 1-bit
  • Eksponentbredde: 8 bit
  • Signifikanspræcision: 24 bit (23 bit er eksplicit gemt)

Figur 2-1. 32-bit ramme

MICROCHIP-CoreFPU-Cor-Floating-Point-Unit-(2)Det dobbeltpræcisionsflydende tal er repræsenteret som følger:

  • Tegnbit: 1-bit
  • Eksponentbredde: 11 bit
  • Signifikanspræcision: 53 bit (52 bit er eksplicit gemt)

Figur 2-2. 64-bit ramme MICROCHIP-CoreFPU-Cor-Floating-Point-Unit-(3)CoreFPU er den øverste integration af de to konverteringsmoduler (Fixed to Float point og Float to Fixed point) og tre aritmetiske operationer (FP ADD, FP SUB og FP MULT). Brugeren kan konfigurere en hvilken som helst af operationerne baseret på kravet, så ressourcerne udnyttes til den valgte operation.
Følgende figur viser CoreFPU-blokdiagrammet med porte på øverste niveau.

Figur 2-3. Blokdiagram over CoreFPU-porte

MICROCHIP-CoreFPU-Cor-Floating-Point-Unit-(4)Følgende tabel viser bredden af ​​input- og outputportene. Tabel 2-1. Bredde af input- og outputporte

Signal Enkel præcisionsbredde Dobbelt præcisionsbredde
ain [31:0] [63:0]
beholder [31:0] [63:0]
ud [31:0] [63:0]
trutmund [31:0] [63:0]

Konvertering fra fast komma til flydende komma

CoreFPU konfigureret som fast til flydende komma udleder konverteringsmodulet fra fast komma til flydende komma. Inputtet (ain) til CoreFPU er et hvilket som helst fast kommatal, der indeholder heltal- og brøkbits. CoreFPU-konfiguratoren har muligheder for at vælge inputbredder for heltal og brøk. Inputtet er gyldigt på di_valid-signalet, og outputtet er gyldigt på do_valid. Outputtet (aout) fra operationen med fast til flydende komma er i enkelt- eller dobbeltpræcisionsformat med flydende komma.
ExampFunktionen for konvertering fra fast komma til flydende komma er angivet i følgende tabel.
Tabel 2-2. Eksample for konvertering fra fast komma til flydende komma

Fastpunktsnummer Flydende kommatal
ain Heltal Brøk ud Tegn Eksponent Mantissa
0x12153524 (32-bit) 00010010000101010 011010100100100 0x4610a9a9 0 10001100 00100001010100110101001
0x0000000000008CCC

(64-bit)

0000000000000000000000000000000000000000000000001 000110011001100 0x3FF199999999999A 0 01111111111 0001100110011001100110011001100110011001100110011010

Flydende komma til fast komma (konvertering) 
CoreFPU konfigureret som flydende til fast komma udleder konverteringsmodulet fra flydende komma til fast komma. Inputtet (ain) til CoreFPU er et hvilket som helst flydende komma med enkelt eller dobbelt præcision og producerer et output (aout) i fast kommaformat, der indeholder heltal og brøkdele. Inputtet er gyldigt på di_valid-signalet, og outputtet er gyldigt på do_valid. CoreFPU-konfiguratoren har muligheder for at vælge outputbredder for heltal og brøkdele.
ExampFunktionen for konvertering fra flydende komma til fast komma er angivet i følgende tabel.

Tabel 2-3. Eksample for konvertering fra flydende komma til fast komma

Flydende kommatal Fastpunktsnummer
ain Tegn Eksponent Mantissa ud Heltal Brøk
0x41bd6783 (32-bit) 0 10000011 01111010110011110000011 0x000bd678 00000000000010111 101011001111000
0x4002094c447c30d3

(64-bit)

0 10000000000 0010000010010100110001000100011111000011000011010011 0x0000000000012095 0000000000000000000000000000000000000000000000010 010000010010101

Flydende kommaaddition (aritmetisk operation)
CoreFPU konfigureret som FP ADD udleder flydende-komma-additionsmodulet. Det lægger de to flydende-komma-tal (ain og bin) sammen og leverer outputtet (pout) i flydende-komma-format. Input og output er flydende-komma-tal med enkelt eller dobbelt præcision. Inputtet er gyldigt på di_valid-signalet, og outputtet er gyldigt på do_valid. Kernen producerer ovfl_fg (Overflow), qnan_fg (Quiet Not a Number), snan_fg (Signalling Not a Number), pinf_fg (Positive Infinity) og ninf_fg (Negative Infinity)-flag baseret på additionsoperationen.
ExampFunktioner til flydende-komma-addition er angivet i de følgende tabeller.
Tabel 2-4. Eksample til flydende komma-additionsoperation (32-bit)

Flydende kommaværdi Tegn Eksponent Mantissa
Flydende komma-input 1 ain (0x4e989680) 0 10011101 00110001001011010000000
Flydende komma-input 2 bin (0x4f191b40) 0 10011110 00110010001101101000000
Flydende komma-additionsudgang (0x4f656680) 0 10011110 11001010110011010000000

Tabel 2-5. Eksample til flydende komma-additionsoperation (64-bit)

Flydende kommaværdi Tegn Eksponent Mantissa
Flydende kommaindgang 1

ain (0x3ff4106ee30caa32)

0 01111111111 0100000100000110111011100011000011001010101000110010
Flydende kommaindgang 2

bin (0x40020b2a78798e61)

0 10000000000 0010000010110010101001111000011110011000111001100001
Flydende komma-additionsudgang (0x400c1361e9ffe37a) 0 10000000000 1100000100110110000111101001111111111110001101111010

Flydende komma-subtraktion (aritmetisk operation) 
CoreFPU konfigureret som FP SUB udleder flydende-komma-subtraktionsmodulet. Det subtraherer de to flydende-komma-tal (ain og bin) og leverer outputtet (pout) i flydende-komma-format. Input og output er flydende-komma-tal med enkelt eller dobbelt præcision. Inputtet er gyldigt på di_valid-signalet, og outputtet er gyldigt på do_valid. Kernen producerer ovfl_fg (Overflow), unfl_fg (underflow), qnan_fg (Quiet Not a Number), snan_fg (Signalling Not a Number), pinf_fg (Positive Infinity) og ninf_fg (Negative Infinity)-flag baseret på subtraktionsoperationen.
ExampFunktioner til subtraktion med flydende komma er angivet i de følgende tabeller.
Tabel 2-6. Eksample til flydende komma-subtraktionsoperation (32-bit)

Flydende kommaværdi Tegn Eksponent Mantissa
Flydende kommaindgang 1 ain (0xac85465f) 1 01011001 00001010100011001011111
Flydende komma-input 2 bin (0x2f516779) 0 01011110 10100010110011101111001
Flydende komma-subtraktionsoutput pout (0xaf5591ac) 1 01011110 10101011001000110101011
Flydende kommaværdi Tegn Eksponent Mantissa
Flydende kommaindgang 1

ain (0x405569764adff823)

0 10000000101 0101011010010111011001001010110111111111100000100011
Flydende kommaindgang 2

bin (0x4057d04e78dee3fc)

0 10000000101 0111110100000100111001111000110111101110001111111100
Flydende komma-subtraktionsoutput pout (0xc02336c16ff75ec8) 1 10000000010 0011001101101100000101101111111101110101111011001000

Flydende kommamultiplikation (aritmetisk operation)
CoreFPU konfigureret som FP MULT udleder flydende-komma-multiplikationsmodulet. Det multiplicerer de to flydende-komma-tal (ain og bin) og leverer outputtet (pout) i flydende-komma-format. Input og output er flydende-komma-tal med enkelt eller dobbelt præcision. Inputtet er gyldigt på di_valid-signalet, og outputtet er gyldigt på do_valid. Kernen producerer flag af typen ovfl_fg (Overflow), unfl_fg (Underflow), qnan_fg (Quiet Not a Number), snan_fg (Signalling Not a Number), pinf_fg (Positive Infinity) og ninf_fg (Negative Infinity) baseret på multiplikationsoperationen.
ExampFunktioner til multiplikation med flydende komma er angivet i de følgende tabeller.
Tabel 2-8. Eksample til flydende komma-multiplikationsoperation (32-bit)

Flydende kommaværdi Tegn Eksponent Mantissa
Flydende kommaindgang 1 ain (0x1ec7a735) 0 00111101 10001111010011100110101
Flydende komma-input 2 bin (0x6ecf15e8) 0 11011101 10011110001010111101000
Flydende komma-multiplikationsoutput pout (0x4e21814a) 0 10011100 01000011000000101001010
Flydende kommaværdi Tegn Eksponent Mantissa
Flydende kommaindgang 1

ain (0x40c1f5a9930be0df)

0 10000001100 0001111101011010100110010011000010111110000011011111
Flydende kommaindgang 2

bin (0x400a0866c962b501)

0 10000000000 1010000010000110011011001001011000101011010100000001
Flydende komma-multiplikationsoutput pout (0x40dd38a1c3e2cae9) 0 10000001101 1101001110001010000111000011111000101100101011101001

 Sandhedstabel for addition og subtraktion 
Følgende sandhedstabeller viser værdierne for additions- og subtraktionsoperationer. Tabel 2-10. Sandhedstabel for addition

Data A Data B Sign Bit Resultat Flyde over Underløb 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 posfinit(y) 0 posfinit(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 nefindelig 1 nefindelig 0 0 0 0 0 1
posfinit(y) nul 0 posfinit(y) 0 0 0 0 0 0
posfinitiv posinfinite 0 posinfinite 0 0 0 0 1 0
Tabel 2-10. Sandhedstabel for addition (fortsat)
Data A Data B Sign Bit Resultat Flyde over Underløb SNaN QNaN PINF NINF
posfinitiv nefindelig 1 nefindelig 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 nefindelig 1 nefindelig 0 0 0 0 0 1
posinfinite nul 0 posinfinite 0 0 0 0 1 0
posinfinite posfinitiv 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 nefindelig 0 POSQNaN 0 0 0 1 0 0
nefindelig nul 1 nefindelig 0 0 0 0 0 1
nefindelig posfinitiv 1 nefindelig 0 0 0 0 0 1
nefindelig negfinit 1 nefindelig 0 0 0 0 0 1
nefindelig posinfinite 0 POSQNaN 0 0 0 1 0 0
nefindelig nefindelig 1 nefindelig 0 0 0 0 0 1
posfinitiv posfinitiv 0 posfinitiv 0 0 0 0 0 0
posfinitiv posfinitiv 0 posinfinite 0 0 0 0 1 0
posfinitiv posfinitiv 0/1 QNaN 0 0 0 1 0 0
posfinitiv posfinitiv 0/1 SNaN 0 0 1 0 0 0
posfinitiv posfinitiv 0 POSSNaN 1 0 1 0 0 0
posfinitiv negfinit 0 posfinitiv 0 0 0 0 0 0
posfinitiv negfinit 1 negfinit 0 0 0 0 0 0
posfinitiv negfinit 0 POSSNaN 0 1 1 0 0 0
negfinit posfinitiv 0 posfinitiv 0 0 0 0 0 0
negfinit posfinitiv 1 negfinit 0 0 0 0 0 0
negfinit posfinitiv 0 POSSNaN 0 1 1 0 0 0
negfinit negfinit 1 negfinit 0 0 0 0 0 0
negfinit negfinit 1 nefindelig 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
Data A Data B Sign Bit Resultat Flyde over Underløb 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 posfinit(y) 1 negfinit(y) 0 0 0 0 0 0
nul negfinit(y) 0 posfinit(y) 0 0 0 0 0 0
nul posinfinite 1 nefindelig 0 0 0 0 0 1
nul nefindelig 0 posinfinite 0 0 0 0 1 0
posfinit(y) nul 0 posfinit(y) 0 0 0 0 0 0
posfinitiv posinfinite 1 nefindelig 0 0 0 0 0 1
posfinitiv nefindelig 0 posinfinite 0 0 0 0 1 0
negfinit(y) nul 1 negfinit(y) 0 0 0 0 0 0
negfinit posinfinite 1 nefindelig 0 0 0 0 0 1
Tabel 2-11. Sandhedstabel for subtraktion (fortsat)
Data A Data B Sign Bit Resultat Flyde over Underløb SNaN QNaN PINF NINF
negfinit nefindelig 0 posinfinite 0 0 0 0 1 0
posinfinite nul 0 posinfinite 0 0 0 0 1 0
posinfinite posfinitiv 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 nefindelig 0 posinfinite 0 0 0 0 1 0
nefindelig nul 1 nefindelig 0 0 0 0 0 1
nefindelig posfinitiv 1 nefindelig 0 0 0 0 0 1
nefindelig negfinit 1 nefindelig 0 0 0 0 0 1
nefindelig posinfinite 1 nefindelig 0 0 0 0 0 1
nefindelig nefindelig 0 POSQNaN 0 0 0 1 0 0
posfinitiv posfinitiv 0 posfinitiv 0 0 0 0 0 0
posfinitiv posfinitiv 1 negfinit 0 0 0 0 0 0
posfinitiv posfinitiv 0 POSSNaN 0 1 1 0 0 0
posfinitiv negfinit 0 posfinitiv 0 0 0 0 0 0
posfinitiv negfinit 0 posinfinite 0 0 0 0 1 0
posfinitiv negfinit 0/1 QNaN 0 0 0 1 0 0
posfinitiv negfinit 0/1 SNaN 0 0 1 0 0 0
posfinitiv negfinit 0 POSSNaN 1 0 1 0 0 0
negfinit posfinitiv 1 negfinit 0 0 0 0 0 0
negfinit posfinitiv 1 nefindelig 0 0 0 0 0 1
negfinit posfinitiv 0/1 QNaN 0 0 0 1 0 0
negfinit posfinitiv 0/1 SNaN 0 0 1 0 0 0
negfinit posfinitiv 0 POSSNaN 1 0 1 0 0 0
negfinit negfinit 0 posfinitiv 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

Vigtig:

  • De i de foregående tabeller angiver et hvilket som helst tal.
  • I de foregående tabeller angiver en ligeglad-tilstand.

Sandhedstabel for multiplikation 
Følgende sandhedstabel viser værdierne for multiplikationsoperationen.

Tabel 2-12. Sandhedstabel for multiplikation

Data A Data B Sign Bit Resultat Flyde over Underløb 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 posfinitiv 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 nefindelig 0 POSQNaN 0 0 0 1 0 0
Tabel 2-12. Sandhedstabel for multiplikation (fortsat)
Data A Data B Sign Bit Resultat Flyde over Underløb SNaN QNaN PINF NINF
posfinitiv nul 0 POSZERO 0 0 0 0 0 0
posfinitiv posinfinite 0 posinfinite 0 0 0 0 1 0
posfinitiv nefindelig 1 nefindelig 0 0 0 0 0 1
negfinit nul 0 POSZERO 0 0 0 0 0 0
negfinit posinfinite 1 nefindelig 0 0 0 0 0 1
negfinit nefindelig 0 posinfinite 0 0 0 0 1 0
posinfinite nul 0 POSQNaN 0 0 0 1 0 0
posinfinite posfinitiv 0 posinfinite 0 0 0 0 1 0
posinfinite negfinit 1 nefindelig 0 0 0 0 0 1
posinfinite posinfinite 0 posinfinite 0 0 0 0 1 0
posinfinite nefindelig 1 nefindelig 0 0 0 0 0 1
nefindelig nul 0 POSQNaN 0 0 0 1 0 0
nefindelig posfinitiv 1 nefindelig 0 0 0 0 0 1
nefindelig negfinit 0 posinfinite 0 0 0 0 1 0
nefindelig posinfinite 1 nefindelig 0 0 0 0 0 1
nefindelig nefindelig 0 posinfinite 0 0 0 0 1 0
posfinitiv posfinitiv 0 posfinitiv 0 0 0 0 0 0
posfinitiv posfinitiv 0 posinfinite 0 0 0 0 1 0
posfinitiv posfinitiv 0 POSQNaN 0 0 0 1 0 0
posfinitiv posfinitiv 0 POSSNaN 0 0 1 0 0 0
posfinitiv posfinitiv 0 POSSNaN 1 0 1 0 0 0
posfinitiv posfinitiv 0 POSSNaN 0 1 1 0 0 0
posfinitiv negfinit 1 negfinit 0 0 0 0 0 0
posfinitiv negfinit 1 nefindelig 0 0 0 0 0 1
posfinitiv negfinit 0 POSQNaN 0 0 0 1 0 0
posfinitiv negfinit 0 POSSNaN 0 0 1 0 0 0
posfinitiv negfinit 0 POSSNaN 1 0 1 0 0 0
posfinitiv negfinit 0 POSSNaN 0 1 1 0 0 0
negfinit posfinitiv 1 negfinit 0 0 0 0 0 0
negfinit posfinitiv 1 nefindelig 0 0 0 0 0 1
negfinit posfinitiv 0 POSQNaN 0 0 0 1 0 0
negfinit posfinitiv 0 POSSNaN 0 0 1 0 0 0
negfinit posfinitiv 0 POSSNaN 1 0 1 0 0 0
negfinit posfinitiv 0 POSSNaN 0 1 1 0 0 0
negfinit negfinit 0 posfinitiv 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

Vigtig:

Fortegnsbit '0' definerer positiv udgang, og '1' definerer negativ udgang.
X'et i den foregående tabel angiver en "ligegyldig"-betingelse.

CoreFPU-parametre og grænsefladesignaler
Dette afsnit omhandler parametrene i CoreFPU Configurator-indstillingerne og I/O-signalerne.

Konfiguration GUI-parametre 
Der er et antal konfigurerbare indstillinger, der gælder for FPU-enheden, som vist i følgende tabel. Hvis en anden konfiguration end standardkonfigurationen er påkrævet, bruges konfigurationsdialogboksen til at vælge passende værdier for den konfigurerbare indstilling.

Tabel 3-1. CoreFPU-konfigurationsparametre for brugergrænsefladen 

Parameternavn Misligholdelse Beskrivelse
Præcision Enkelt Vælg den ønskede handling:

Enkelt præcision
Dobbelt præcision

Konverteringstype Konvertering fra fast komma til flydende komma Vælg den ønskede handling:
  • Konvertering fra fast komma til flydende komma
  • Konvertering fra flydende komma til fast komma
  • Flydende komma-addition
  • Flydende komma-subtraktion
  • Flydende komma-multiplikation
Inputfraktionsbredde1 15 Konfigurerer brøkpunktet i input ain- og bin-signalerne

Gyldigt interval er 31–1

Outputfraktionsbredde2 15 Konfigurerer brøkpunktet i outputsignalerne

Gyldigt interval er 51–1

Vigtig:

  1. Denne parameter kan kun konfigureres under konvertering fra fast komma til flydende komma.
  2. Denne parameter kan kun konfigureres under konvertering fra flydende komma til fast komma.

Input- og outputsignaler (stil et spørgsmål)
Følgende tabel viser input- og outputportsignalerne for CoreFPU.

Tabel 3-2. Portbeskrivelse 

Signal navn Bredde Type Beskrivelse
clk 1 Input Hovedsystemur
rstn 1 Input Aktiv-lav asynkron nulstilling
di_gyldig 1 Input Aktiv-høj input gyldig

Dette signal indikerer, at dataene på ain[31:0], ain[63:0] og bin[31:0], bin[63:0] er gyldige.

ain 32/64 Input En indgangsbus (den bruges til alle operationer)
beholder1 32/64 Input B Input Bus (den bruges kun til aritmetiske operationer)
ud2 32/64 Produktion Outputværdi, når der er valgt konverteringsoperationer med fast komma eller med flydende komma.
trutmund1 32/64 Produktion Outputværdi når additions-, subtraktions- eller multiplikationsoperationer er valgt.
Tabel 3-2. Portbeskrivelse (fortsat)
Signal navn Bredde Type Beskrivelse
do_valid 1 Produktion Aktivt højt signal

Dette signal indikerer, at dataene på pout/aout-databussen er gyldige.

ovfl_fg3 1 Produktion Aktivt højt signal

Dette signal angiver overløbet under flydende komma-operationer.

ufl_fg 1 Produktion Aktivt højt signal

Dette signal angiver underflowet under flydende kommaoperationer.

qnan_fg3 1 Produktion Aktivt højt signal

Dette signal angiver Quiet Not a Number (QNaN) under flydende komma-operationer.

snan_fg 1 Produktion Aktivt højt signal

Dette signal angiver Signalling Not-a-Number (SNaN) under flydende komma-operationer.

pinf_fg3 1 Produktion Aktivt højt signal

Dette signal angiver den positive uendelighed under flydende komma-operationer.

ninf_fg 1 Produktion Aktivt højt signal

Dette signal angiver den negative uendelighed under flydende komma-operationer.

Vigtig:

  1. Denne port er kun tilgængelig til addition, subtraktion eller multiplikation med flydende komma.
  2. Denne port er kun tilgængelig til konvertering fra fast komma til flydende komma og fra flydende komma til fast komma.
  3. Denne port er tilgængelig til flydende-komma-til-fast-komma, flydende-komma-addition, flydende-komma-subtraktion og flydende-komma-multiplikation.

Implementering af CoreFPU i Libero Design Suite

Dette afsnit beskriver implementeringen af ​​CoreFPU i Libero Design Suite.

SmartDesign 

CoreFPU kan downloades i Libero IP-kataloget via web repository. Når den er angivet i kataloget, instantieres kernen ved hjælp af SmartDesign-flowet. Du kan finde oplysninger om brug af SmartDesign til at konfigurere, forbinde og generere kerner i onlinehjælpen til Libero SoC.
Efter konfiguration og generering af kerneinstansen simuleres den grundlæggende funktionalitet ved hjælp af den testbænk, der følger med CoreFPU'en. Testbænkens parametre justeres automatisk til CoreFPU'ens konfiguration. CoreFPU'en instantieres som en komponent i et større design.
Figur 4-1. SmartDesign CoreFPU-instans til aritmetiske operationer

MICROCHIP-CoreFPU-Cor-Floating-Point-Unit-(5)Figur 4-2. SmartDesign CoreFPU-instans til konverteringshandling MICROCHIP-CoreFPU-Cor-Floating-Point-Unit-(6)

 

Konvertering fra fast komma til flydende komma
Under konvertering fra fast komma til flydende komma kan inputbrøkbredden konfigureres. Outputbredden er som standard indstillet til 32-bit for enkelt præcision og 64-bit for dobbelt præcision flydende komma.
For at konvertere fra fast komma til flydende komma skal du vælge Konverteringstypen Fast til flydende komma, som vist i følgende figur.

MICROCHIP-CoreFPU-Cor-Floating-Point-Unit-(7)Flydende komma til fast komma 
Under konvertering fra flydende komma til fast komma kan outputbrøkbredden konfigureres, og inputbredden er som standard indstillet til 32-bit for enkelt præcision og 64-bit for dobbelt præcision flydende komma.
For at konvertere fra flydende komma til fast komma skal du vælge Konverteringstypen Flydende komma til fast komma, som vist i følgende figur.
Figur 4-4. CoreFPU-konfigurator for flydende komma til fast komma MICROCHIP-CoreFPU-Cor-Floating-Point-Unit-(8)Flydende komma-addition/subtraktion/multiplikation
Under addition, subtraktion og multiplikation med flydende komma kan inputbrøkbredden og outputbrøkbredden ikke konfigureres, da disse er aritmetiske operationer med flydende komma, og input/output-bredden er som standard indstillet til 32-bit enkelt præcision og 64-bit for flydende komma med dobbelt præcision.
Den følgende figur viser CoreFPU-konfiguratoren til flydende komma-subtraktion.

Figur 4-5. CoreFPU-konfigurator til flydende komma-subtraktionMICROCHIP-CoreFPU-Cor-Floating-Point-Unit-(9)Simulering (stil et spørgsmål)
For at køre simuleringer skal du i kernekonfigurationsvinduet vælge Brugertestbench. Efter generering af CoreFPU'en, Hardware Description Language (HDL) i præsyntesetestbenchen files er installeret i Libero.

Simuleringsbølgeformer (Stil et spørgsmål)
Dette afsnit diskuterer simuleringsbølgeformerne for CoreFPU.
De følgende figurer viser bølgeformen for konvertering fra fast komma til flydende komma for både 32-bit og 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)

Systemintegration
Følgende figur viser en eksample af at bruge kernen. I dette eksempelampLe, design-UART'en bruges som en kommunikationskanal mellem designet og værts-pc'en. Signalerne ain og bin (hver med en bredde på 32-bit eller 64-bit) er input til designet fra UART. Når CoreFPU'en modtager di_valid-signalet, beregner den resultatet. Efter at have beregnet resultatet, går do_valid-signalet højt og gemmer resultatet (aout/pout-data) i outputbufferen. Den samme procedure gælder for konverterings- og aritmetiske operationer. Til konverteringsoperationer er kun input ain tilstrækkeligt, hvorimod både ain- og bin-input er nødvendige for aritmetiske operationer. Output aout er aktiveret til konverteringsoperationer, og pout-porten er aktiveret til aritmetiske operationer.
Figur 4-16. Eksample af CoreFPU-systemet

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

 

  1. Syntese (Stil et spørgsmål)
    For at køre syntese på CoreFPU'en skal du indstille designroden til IP-komponentinstansen og køre synteseværktøjet fra Libero-designflowruden.
    Sted og rute (Stil et spørgsmål)
    Når designet er syntetiseret, skal du køre værktøjet Place-and-Route. CoreFPU kræver ingen særlige indstillinger for Place-and-Route.
  2. Brugertestbænk (Stil et spørgsmål)
    En brugertestbænk leveres med CoreFPU IP-udgivelsen. Ved hjælp af denne testbænk kan du verificere CoreFPU's funktionelle opførsel.

Et forenklet blokdiagram over brugertestbænken er vist i følgende figur. Brugertestbænken instantierer det konfigurerede CoreFPU-design (UUT) og inkluderer en adfærdstestdatagenerator, det nødvendige ur og nulstillingssignaler.
Figur 4-17. CoreFPU brugertestbænk

MICROCHIP-CoreFPU-Cor-Floating-Point-Unit-(15)Vigtigt: Du skal overvåge udgangssignalerne i ModelSim-simulatoren, se afsnittet Simulering.

Yderligere referencer (Stil et spørgsmål)
Dette afsnit indeholder en liste med yderligere oplysninger.
For opdateringer og yderligere oplysninger om softwaren, enheder og hardware, besøg

Intellectual Property-sider om Microchip FPGA'er og PLD'er webwebsted.

  1. Kendte problemer og løsninger (Stil et spørgsmål)
    Der er ingen kendte problemer eller løsninger til CoreFPU v3.0.
  2. Udgåede funktioner og enheder (Stil et spørgsmål)
    Der er ingen udgåede funktioner og enheder med denne IP-udgivelse.

Ordliste

Følgende er en liste over termer og definitioner, der anvendes i dokumentet.
Tabel 6-1. Begreber og definitioner

Semester Definition
FPU Floating Point Unit
FP ADD Flydende komma-addition
FP SUB Flydende komma-subtraktion
FP MULT Flydende komma-multiplikation

Løste problemer 
Følgende tabel viser alle de løste problemer for de forskellige CoreFPU-udgivelser.

Tabel 7-1. Løste problemer

Frigøre Beskrivelse
3.0 Følgende er en liste over alle løste problemer i v3.0-udgivelsen:

Sagsnummer: 01420387 og 01422128

Tilføjet afrundingsskemaets logik (afrund til nærmeste lige tal).

2.1 Følgende er en liste over alle løste problemer i v2.1-udgivelsen:
Designet støder på problemer på grund af tilstedeværelsen af ​​dublette moduler, når flere kerner instantieres.
Omdøbning af CoreFPU IP-instansen resulterer i fejlen "Udefineret modul".
1.0 Første udgivelse

Enhedsressourceudnyttelse og ydeevne

CoreFPU-makroen er implementeret i familierne, der er anført i følgende tabel.
Tabel 8-1. FPU PolarFire-enhedsudnyttelse til 32-bit

FPGA-ressourcer Udnyttelse
Familie 4LUT DFF Total Matematikblok Enhed Procenttage Præstation Latency
Fastkomma til flydende komma
PolarFire® 260 104 364 0 MPF300T 0.12 310 MHz 3
Flydende komma til fast komma
PolarFire 591 102 693 0 MPF300T 0.23 160 MHz 3
Flydende komma-addition
PolarFire 1575 1551 3126 0 MPF300T 1.06 340 MHz 16
Flydende komma-subtraktion
PolarFire 1561 1549 3110 0 MPF300T 1.04 345 MHz 16
Flydende komma-multiplikation
PolarFire 465 847 1312 4 MPF300T 0.44 385 MHz 14
FPGA-ressourcer Udnyttelse
Familie 4LUT DFF Total Matematikblok Enhed Procenttage Præstation Latency
Fastkomma til flydende komma
RTG4™ 264 104 368 0 RT4G150 0.24 160 MHz 3
Flydende komma til fast komma
RTG4 439 112 551 0 RT4G150 0.36 105 MHz 3
Flydende komma-addition
RTG4 1733 1551 3284 0 RT4G150 1.16 195 MHz 16
Flydende komma-subtraktion
RTG4 1729 1549 3258 0 RT4G150 1.16 190 MHz 16
Flydende komma-multiplikation
RTG4 468 847 1315 4 RT4G150 0.87 175 MHz 14
FPGA-ressourcer Udnyttelse
Familie 4LUT DFF Total Matematikblok Enhed Procenttage Præstation Latency
Fastkomma til flydende komma
PolarFire® 638 201 849 0 MPF300T 0.28 305 MHz 3
Flydende komma til fast komma
PolarFire 2442 203 2645 0 MPF300T 0.89 110 MHz 3
Flydende komma-addition
PolarFire 5144 4028 9172 0 MPF300T 3.06 240 MHz 16
Flydende komma-subtraktion
PolarFire 5153 4026 9179 0 MPF300T 3.06 250 MHz 16
Flydende komma-multiplikation
PolarFire 1161 3818 4979 16 MPF300T 1.66 340 MHz 27
FPGA-ressourcer Udnyttelse
Familie 4LUT DFF Total Matematikblok Enhed Procenttage Præstation Latency
Fastkomma til flydende komma
RTG4™ 621 201 822 0 RT4G150 0.54 140 MHz 3
Flydende komma til fast komma
RTG4 1114 203 1215 0 RT4G150 0.86 75 MHz 3
Flydende komma-addition
RTG4 4941 4028 8969 0 RT4G150 5.9 140 MHz 16
Flydende komma-subtraktion
RTG4 5190 4026 9216 0 RT4G150 6.07 130 MHz 16
Flydende komma-multiplikation
RTG4 1165 3818 4983 16 RT4G150 3.28 170 MHz 27

Vigtigt: For at øge frekvensen skal du vælge Aktiver retiming i synteseindstillingen.

Revisionshistorie

Revisionshistorikken beskriver de ændringer, der blev implementeret i dokumentet. Ændringerne er listet efter revision, startende med den seneste publikation.

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

Mikrochip FPGA-understøttelse

Microchip FPGA-produktgruppen støtter sine produkter med forskellige supporttjenester, herunder kundeservice, teknisk kundesupportcenter, et webwebsted og verdensomspændende salgskontorer. Kunder foreslås at besøge Microchips onlineressourcer, før de kontakter support, da det er meget sandsynligt, at deres forespørgsler allerede er blevet besvaret.
Kontakt teknisk supportcenter via website kl www.microchip.com/support. Nævn FPGA-enhedens varenummer, vælg passende sagskategori, og upload design files, mens du opretter en teknisk supportsag.
Kontakt kundeservice for ikke-teknisk produktsupport, såsom produktpriser, produktopgraderinger, opdateringsoplysninger, ordrestatus og godkendelse.

  • Fra Nordamerika, ring 800.262.1060
  • Fra resten af ​​verden, ring på 650.318.4460
  • Fax, hvor som helst i verden, 650.318.8044

Mikrochip information

Varemærker
"Microchip"-navnet og -logoet, "M"-logoet og andre navne, logoer og mærker er registrerede og uregistrerede varemærker tilhørende Microchip Technology Incorporated eller dets tilknyttede selskaber og/eller datterselskaber i USA og/eller andre lande ("Microchip" varemærker"). Oplysninger om Microchip-varemærker kan findes på https://www.microchip.com/en-us/about/legal-information/microchip-trademarks
ISBN: 979-8-3371-0947-3

Juridisk meddelelse
Denne publikation og oplysningerne heri må kun bruges med Microchip-produkter, herunder til at designe, teste og integrere Microchip-produkter med din applikation. Brug af disse oplysninger på anden måde overtræder disse vilkår. Oplysninger om enhedsapplikationer gives kun for din bekvemmelighed og kan blive afløst af opdateringer. Det er dit ansvar at sikre, at din ansøgning lever op til dine specifikationer. Kontakt dit lokale Microchip salgskontor for yderligere support, eller få yderligere support på www.microchip.com/en-us/support/design-help/client-support-services

DISSE OPLYSNINGER LEVERES AF MICROCHIP "SOM DE ER". MICROCHIP GIVER INGEN REPRÆSENTATIONER ELLER GARANTIER AF NOGEN ART, HVERKEN UDTRYKKELIGE ELLER UNDERFORSTÅEDE, SKRIFTLIGE ELLER mundtlige, LOVBESTEMMET ELLER ANDEN MÅDE, RELATET TIL OPLYSNINGERNE, INKLUSIVE MEN IKKE BEGRÆNSET TIL NOGEN STILTIENDE GARANTIER, GARANTIER OG GARANTIER. EGNETHED TIL ET BESTEMT FORMÅL ELLER GARANTIER RELATET TIL DETS TILSTAND, KVALITET ELLER YDELSE.

MICROCHIP VIL UNDER INGEN OMSTÆNDIGHEDER VÆRE ANSVARLIG FOR NOGEN INDIREKTE, SÆRLIGE, STRAFFENDE, TILFÆLDELIGE ELLER FØLGETAB, SKADER, OMKOSTNINGER ELLER UDGIFTER AF NOGEN ART, SOM ER RELATET TIL OPLYSNINGERNE ELLER DERES ANVENDELSE, UNDER ANDET ELLER ARGANG. MULIGHEDEN ELLER SKADERNE ER FORUDSIGELIGE. I DET FULDSTÆNDE OMFANG, DET ER TILLADT AF LOVEN, VIL MICROCHIPS SAMLEDE ANSVAR PÅ ALLE KRAV PÅ NOGEN MÅDE RELATET TIL INFORMATIONEN ELLER DERES ANVENDELSE IKKE OVERstige BELØBET, HVIS NOGET, SOM DU HAR BETALT DIREKTE TIL MICRATIONOCHIP.

Brug af Microchip-enheder i livsstøtte- og/eller sikkerhedsapplikationer er helt på købers risiko, og køberen indvilliger i at forsvare, skadesløsholde og holde Microchip skadesløs fra enhver skade, krav, sager eller udgifter som følge af sådan brug. Ingen licenser videregives, implicit eller på anden måde, under nogen af ​​Microchips intellektuelle ejendomsrettigheder, medmindre andet er angivet.

Mikrochip-enheder kodebeskyttelsesfunktion
Bemærk følgende detaljer om kodebeskyttelsesfunktionen på Microchip-produkter:

  • Microchip-produkter opfylder specifikationerne i deres særlige Microchip-datablad.
  • Microchip mener, at dens familie af produkter er sikre, når de bruges på den tilsigtede måde, inden for driftsspecifikationerne og under normale forhold.
  • Microchip værdsætter og beskytter aggressivt sine intellektuelle ejendomsrettigheder. Forsøg på at bryde kodebeskyttelsesfunktionerne i Microchip-produkter er strengt forbudt og kan være i strid med Digital Millennium Copyright Act.
  • Hverken Microchip eller nogen anden halvlederproducent kan garantere sikkerheden af ​​deres kode. Kodebeskyttelse betyder ikke, at vi garanterer, at produktet er "ubrydeligt". Kodebeskyttelse er i konstant udvikling. Microchip er forpligtet til løbende at forbedre kodebeskyttelsesfunktionerne i vores produkter.

Dokumenter/ressourcer

MICROCHIP CoreFPU Core flydende komma-enhed [pdfBrugervejledning
v3.0, v2.1, v2.0, v1.0, CoreFPU Kerne-flydende komma-enhed, Kerne-flydende komma-enhed, Flydende komma-enhed, Punkt-enhed

Referencer

Efterlad en kommentar

Din e-mailadresse vil ikke blive offentliggjort. Påkrævede felter er markeret *