MICROCHIP-logotyp

MICROCHIP CoreFPU Core Flyttalsenhet

MICROCHIP-CoreFPU-Cor-Floating-Unit-produkt

 

Introduktion 

  • Core Floating Point Unit (CoreFPU) är utformad för flyttalaritmetik och konverteringsoperationer, för flyttalstal med enkel och dubbel precision. CoreFPU stöder konverteringar från fast komma till flyttal och från flyttal till fast komma samt flyttaladdition, subtraktion och multiplikation. IEEE®-standarden för flyttalaritmetik (IEEE 754) är en teknisk standard för flyttalsberäkning.
  • Viktigt: CoreFPU stöder endast beräkningar med normaliserade tal, och endast språket Verilog stöds; VHDL stöds inte.

Sammanfattning
Följande tabell ger en sammanfattning av CoreFPU:s egenskaper.

Tabell 1. CoreFPU-egenskaper 

Kärnversion Detta dokument gäller CoreFPU v3.0.
Enhetsfamiljer som stöds
  • PolarFire® SoC
  • PolarFire
  • RTG4™
Verktygsflöde som stöds Kräver Libero® SoC v12.6 eller senare versioner.
Licensiering CoreFPU är inte licenslåst.
Installationsinstruktioner CoreFPU måste installeras automatiskt i IP-katalogen för Libero SoC via IP-katalogens uppdateringsfunktion. Alternativt kan CoreFPU laddas ner manuellt från katalogen. När IP-kärnan är

installerad konfigureras, genereras och instansieras den i SmartDesign för inkludering i projektet.

Enhetsanvändning och prestanda En sammanfattning av användnings- och prestandainformation för CoreFPU finns i Enhetsresursutnyttjande och prestanda.

Information om CoreFPU-ändringsloggen
Detta avsnitt ger en omfattande överview av de nyligen införlivade funktionerna, med början i den senaste versionen. Mer information om de lösta problemen finns i avsnittet Lösta problem.

Version Vad är nytt
v3.0 Implementerade ytterligare utdataflaggor för att förbättra IP-adressens noggrannhet
v2.1 Lade till funktionen för dubbel precision
v2.0 Uppdaterade tidsvågformerna
v1.0 Första produktionsversionen av CoreFPU

1. Funktioner

CoreFPU har följande viktiga funktioner:

  • Stöder flytande nummer med enkel och dubbel precision enligt IEEE-754-standarden
  • Stöder konverteringar enligt listan:
    • Konvertering från fast punkt till flyttal
    • Flyttals- till fasttalskonvertering
  • Stöder aritmetiska operationer enligt listan:
    • Flyttalsaddition
    • Flyttalssubtraktion
    • Flyttalsmultiplikation
  • Tillhandahåller avrundningsschemat (avrunda till närmaste jämna tal) endast för aritmetiska operationer.
  • Tillhandahåller flaggor för överflöde, underflöde, oändlighet (positiv oändlighet, negativ oändlighet), tyst NaN (QNaN) och signalerande NaN (SNaN) för flyttal.
  • Stöder fullständig pipelineimplementering av aritmetiska operationer
  • Ger möjlighet att konfigurera kärnan för designkrav

Funktionsbeskrivning

  • IEEE-standarden för flyttalsaritmetik (IEEE 754) är en teknisk standard för flyttalsberäkning. Termen flyttal hänvisar till talets radixpunkt (decimalpunkt eller binärpunkt), som placeras var som helst i förhållande till talets signifikanta siffror.
    Ett flyttal uttrycks vanligtvis i vetenskaplig notation, med en bråkdel (F) och en exponent (E) av en viss radix (r), i formen F × r^E. Decimaltal använder radix av 10 (F × 10^E); medan binära tal använder radix av 2 (F × 2^E).
  • Representationen av flyttalstal är inte unik. Till exempelampt.ex. representeras talet 55.66 som 5.566 × 10^1, 0.5566 × 10^2, 0.05566 × 10^3, och så vidare. Bråkdelen normaliseras. I den normaliserade formen finns det bara en enda siffra som inte är noll före grundpunkten. Till exempelampf.eks. normaliseras decimaltalet 123.4567 till 1.234567 × 10^2; binärtalet 1010.1011B normaliseras till 1.0101011B × 2^3.
  • Det är viktigt att notera att flyttal förlorar precision när de representeras med ett fast antal bitar (till exempelamp(t.ex. 32-bitars eller 64-bitars). Detta beror på att det finns ett oändligt antal reella tal (även inom ett litet intervall från 0.0 till 0.1). Å andra sidan, en
    Det binära mönstret med n bitar representerar ett ändligt antal på 2^n distinkt tal. Därför representeras inte alla reella tal. Den närmaste approximationen används istället, vilket resulterar i minskad noggrannhet.

Det enkla precisionsflyttalet representeras enligt följande:

  • Teckenbit: 1-bit
  • Exponentbredd: 8 bitar
  • Signifikansnoggrannhet: 24 bitar (23 bitar lagras explicit)

Figur 2-1. 32-bitars ram

MICROCHIP-CoreFPU-Cor-Flyttalsenhet- (2)Flyttalstalet med dubbel precision representeras enligt följande:

  • Teckenbit: 1-bit
  • Exponentbredd: 11 bitar
  • Signifikansnoggrannhet: 53 bitar (52 bitar lagras explicit)

Figur 2-2. 64-bitars ram MICROCHIP-CoreFPU-Cor-Flyttalsenhet- (3)CoreFPU är den övergripande integrationen av de två konverteringsmodulerna (Fast flyttal och Flyttal) och tre aritmetiska operationer (FP ADD, FP SUB och FP MULT). Användaren kan konfigurera vilken som helst av operationerna baserat på kravet så att resurserna utnyttjas för den valda operationen.
Följande figur visar det övergripande blockschemat för CoreFPU med portar.

Figur 2-3. Blockdiagram för CoreFPU-portar

MICROCHIP-CoreFPU-Cor-Flyttalsenhet- (4)Följande tabell listar bredden på in- och utgångsportarna. Tabell 2-1. Bredd på in- och utgångsportarna

Signal Enkel precisionsbredd Dubbel precisionsbredd
ain [31:0] [63:0]
bin [31:0] [63:0]
ut [31:0] [63:0]
putt [31:0] [63:0]

Fastkomma till flyttal (omvandling)

CoreFPU konfigurerad som flyttal med fast komma härleder modulen för konvertering från fast komma till flyttal. Ingången (ain) till CoreFPU är vilket fast tal som helst som innehåller heltals- och bråkbitar. CoreFPU-konfiguratorn har alternativ för att välja ingångens heltals- och bråkbredder. Ingången är giltig på di_valid-signalen och utgången är giltig på do_valid. Utgången (aout) från flyttalsoperationen är i flyttal med enkel eller dubbel precision.
Example för konvertering från fast komma till flyttal listas i följande tabell.
Tabell 2-2. Example för konvertering från fast komma till flyttal

Fastpunktsnummer Flyttalsnummer
ain Heltal Fraktion ut Tecken Exponent Mantissa
0x12153524 (32-bitars) 00010010000101010 011010100100100 0x4610a9a9 0 10001100 00100001010100110101001
0x0000000000008CCC

(64-bitars)

0000000000000000000000000000000000000000000000001 000110011001100 0x3FF199999999999A 0 01111111111 0001100110011001100110011001100110011001100110011010

Flyttals- till fasttalsvärde (omvandling) 
CoreFPU konfigurerad som flytande till fast komma infererar modulen för konvertering från flyttal till fast komma. Ingången (ain) till CoreFPU är ett valfritt flyttal med enkel eller dubbel precision och producerar en utgång (aout) i fast kommaformat som innehåller heltals- och bråkbitar. Ingången är giltig vid di_valid-signalen och utgången är giltig vid do_valid. CoreFPU-konfiguratorn har alternativ för att välja utgående heltals- och bråkbredder.
Example för konvertering från flyttal till fast komma listas i följande tabell.

Tabell 2-3. Example för flyttals- till fasttalskonvertering

Flyttalsnummer Fastpunktsnummer
ain Tecken Exponent Mantissa ut Heltal Fraktion
0x41bd6783 (32-bitars) 0 10000011 01111010110011110000011 0x000bd678 00000000000010111 101011001111000
0x4002094c447c30d3

(64-bitars)

0 10000000000 0010000010010100110001000100011111000011000011010011 0x0000000000012095 0000000000000000000000000000000000000000000000010 010000010010101

Flyttalsaddition (aritmetisk operation)
CoreFPU konfigurerad som FP ADD härleder flyttaladditionsmodulen. Den adderar de två flyttalstalen (ain och bin) och ger utdata (pout) i flyttalformat. Indata och utdata är flyttal med enkel eller dubbel precision. Indata är giltig på di_valid-signalen och utdata är giltig på do_valid. Kärnan producerar flaggorna ovfl_fg (Overflow), qnan_fg (Quiet Not a Number), snan_fg (Signalling Not a Number), pinf_fg (Positive Infinity) och ninf_fg (Negative Infinity) baserat på additionsoperationen.
ExampFunktioner för flyttalsaddition listas i följande tabeller.
Tabell 2-4. Example för flyttalsaddition (32-bitars)

Flyttalsvärde Tecken Exponent Mantissa
Flyttalsingång 1 ain (0x4e989680) 0 10011101 00110001001011010000000
Flyttalsinmatning 2 bin (0x4f191b40) 0 10011110 00110010001101101000000
Flyttalsadditionsutgång (0x4f656680) 0 10011110 11001010110011010000000

Tabell 2-5. Example för flyttalsaddition (64-bitars)

Flyttalsvärde Tecken Exponent Mantissa
Flyttalsingång 1

ain (0x3ff4106ee30caa32)

0 01111111111 0100000100000110111011100011000011001010101000110010
Flyttalsingång 2

bin (0x40020b2a78798e61)

0 10000000000 0010000010110010101001111000011110011000111001100001
Flyttalsadditionsutgång (0x400c1361e9ffe37a) 0 10000000000 1100000100110110000111101001111111111110001101111010

Flyttalssubtraktion (aritmetisk operation) 
CoreFPU konfigurerad som FP SUB härleder flyttalssubtraktionsmodulen. Den subtraherar de två flyttalstalen (ain och bin) och ger utdata (pout) i flyttalformat. Indata och utdata är flyttal med enkel eller dubbel precision. Indata är giltig på di_valid-signalen och utdata är giltig på do_valid. Kärnan producerar flaggorna ovfl_fg (Överflöde), unfl_fg (Underflöde), qnan_fg (Tyst Inte ett Tal), snan_fg (Signalling Inte ett Tal), pinf_fg (Positiv Infinity) och ninf_fg (Negativ Infinity) baserat på subtraktionsoperationen.
ExampFunktioner för flyttalsberäkning listas i följande tabeller.
Tabell 2-6. Example för flyttalssubtraktionsoperation (32-bitars)

Flyttalsvärde Tecken Exponent Mantissa
Flyttalsingång 1 ain (0xac85465f) 1 01011001 00001010100011001011111
Flyttalsinmatning 2 bin (0x2f516779) 0 01011110 10100010110011101111001
Flyttalssubtraktionsutgång (0xaf5591ac) 1 01011110 10101011001000110101011
Flyttalsvärde Tecken Exponent Mantissa
Flyttalsingång 1

ain (0x405569764adff823)

0 10000000101 0101011010010111011001001010110111111111100000100011
Flyttalsingång 2

bin (0x4057d04e78dee3fc)

0 10000000101 0111110100000100111001111000110111101110001111111100
Flyttalssubtraktionsutgång (0xc02336c16ff75ec8) 1 10000000010 0011001101101100000101101111111101110101111011001000

Flyttalsmultiplikation (aritmetisk operation)
CoreFPU konfigurerad som FP MULT härleder flyttalsmodulen. Den multiplicerar de två flyttalstalen (ain och bin) och ger utdata (pout) i flyttalformat. Indata och utdata är flyttal med enkel eller dubbel precision. Indata är giltig på di_valid-signalen och utdata är giltig på do_valid. Kärnan producerar flaggorna ovfl_fg (Överflöde), unfl_fg (Underflöde), qnan_fg (Tyst Not a Number), snan_fg (Signalling Not a Number), pinf_fg (Positiv Infinity) och ninf_fg (Negativ Infinity) baserat på multiplikationsoperationen.
ExampFiler för flyttalmultiplikation listas i följande tabeller.
Tabell 2-8. Example för flyttalmultiplikationsoperation (32-bitars)

Flyttalsvärde Tecken Exponent Mantissa
Flyttalsingång 1 ain (0x1ec7a735) 0 00111101 10001111010011100110101
Flyttalsinmatning 2 bin (0x6ecf15e8) 0 11011101 10011110001010111101000
Flyttalsmultiplikationsutgång (0x4e21814a) 0 10011100 01000011000000101001010
Flyttalsvärde Tecken Exponent Mantissa
Flyttalsingång 1

ain (0x40c1f5a9930be0df)

0 10000001100 0001111101011010100110010011000010111110000011011111
Flyttalsingång 2

bin (0x400a0866c962b501)

0 10000000000 1010000010000110011011001001011000101011010100000001
Flyttalsmultiplikationsutgång (0x40dd38a1c3e2cae9) 0 10000001101 1101001110001010000111000011111000101100101011101001

 Sanningstabell för addition och subtraktion 
Följande sanningstabeller listar värdena för additions- och subtraktionsoperationer. Tabell 2-10. Sanningstabell för addition

Data A Data B Sign Bit Resultat Svämma över Underflöde 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
noll noll 0 POSZERO 0 0 0 0 0 0
noll posfinit(y) 0 posfinit(y) 0 0 0 0 0 0
noll negfinit(y) 1 negfinit(y) 0 0 0 0 0 0
noll oändlig 0 oändlig 0 0 0 0 1 0
noll negonfin 1 negonfin 0 0 0 0 0 1
posfinit(y) noll 0 posfinit(y) 0 0 0 0 0 0
posfinit oändlig 0 oändlig 0 0 0 0 1 0
Tabell 2-10. Sanningstabell för addition (fortsättning)
Data A Data B Sign Bit Resultat Svämma över Underflöde SNaN QNaN PINF NINF
posfinit negonfin 1 negonfin 0 0 0 0 0 1
negfinit(y) noll 1 negfinit(y) 0 0 0 0 0 0
negfinit oändlig 0 oändlig 0 0 0 0 1 0
negfinit negonfin 1 negonfin 0 0 0 0 0 1
oändlig noll 0 oändlig 0 0 0 0 1 0
oändlig posfinit 0 oändlig 0 0 0 0 1 0
oändlig negfinit 0 oändlig 0 0 0 0 1 0
oändlig oändlig 0 oändlig 0 0 0 0 1 0
oändlig negonfin 0 POSQNaN 0 0 0 1 0 0
negonfin noll 1 negonfin 0 0 0 0 0 1
negonfin posfinit 1 negonfin 0 0 0 0 0 1
negonfin negfinit 1 negonfin 0 0 0 0 0 1
negonfin oändlig 0 POSQNaN 0 0 0 1 0 0
negonfin negonfin 1 negonfin 0 0 0 0 0 1
posfinit posfinit 0 posfinit 0 0 0 0 0 0
posfinit posfinit 0 oändlig 0 0 0 0 1 0
posfinit posfinit 0/1 QNaN 0 0 0 1 0 0
posfinit posfinit 0/1 SNaN 0 0 1 0 0 0
posfinit posfinit 0 POSSNaN 1 0 1 0 0 0
posfinit negfinit 0 posfinit 0 0 0 0 0 0
posfinit negfinit 1 negfinit 0 0 0 0 0 0
posfinit negfinit 0 POSSNaN 0 1 1 0 0 0
negfinit posfinit 0 posfinit 0 0 0 0 0 0
negfinit posfinit 1 negfinit 0 0 0 0 0 0
negfinit posfinit 0 POSSNaN 0 1 1 0 0 0
negfinit negfinit 1 negfinit 0 0 0 0 0 0
negfinit negfinit 1 negonfin 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 Svämma över Underflöde 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
noll noll 0 POSZERO 0 0 0 0 0 0
noll posfinit(y) 1 negfinit(y) 0 0 0 0 0 0
noll negfinit(y) 0 posfinit(y) 0 0 0 0 0 0
noll oändlig 1 negonfin 0 0 0 0 0 1
noll negonfin 0 oändlig 0 0 0 0 1 0
posfinit(y) noll 0 posfinit(y) 0 0 0 0 0 0
posfinit oändlig 1 negonfin 0 0 0 0 0 1
posfinit negonfin 0 oändlig 0 0 0 0 1 0
negfinit(y) noll 1 negfinit(y) 0 0 0 0 0 0
negfinit oändlig 1 negonfin 0 0 0 0 0 1
Tabell 2-11. Sanningstabell för subtraktion (fortsättning)
Data A Data B Sign Bit Resultat Svämma över Underflöde SNaN QNaN PINF NINF
negfinit negonfin 0 oändlig 0 0 0 0 1 0
oändlig noll 0 oändlig 0 0 0 0 1 0
oändlig posfinit 0 oändlig 0 0 0 0 1 0
oändlig negfinit 0 oändlig 0 0 0 0 1 0
oändlig oändlig 0 POSQNaN 0 0 0 1 0 0
oändlig negonfin 0 oändlig 0 0 0 0 1 0
negonfin noll 1 negonfin 0 0 0 0 0 1
negonfin posfinit 1 negonfin 0 0 0 0 0 1
negonfin negfinit 1 negonfin 0 0 0 0 0 1
negonfin oändlig 1 negonfin 0 0 0 0 0 1
negonfin negonfin 0 POSQNaN 0 0 0 1 0 0
posfinit posfinit 0 posfinit 0 0 0 0 0 0
posfinit posfinit 1 negfinit 0 0 0 0 0 0
posfinit posfinit 0 POSSNaN 0 1 1 0 0 0
posfinit negfinit 0 posfinit 0 0 0 0 0 0
posfinit negfinit 0 oändlig 0 0 0 0 1 0
posfinit negfinit 0/1 QNaN 0 0 0 1 0 0
posfinit negfinit 0/1 SNaN 0 0 1 0 0 0
posfinit negfinit 0 POSSNaN 1 0 1 0 0 0
negfinit posfinit 1 negfinit 0 0 0 0 0 0
negfinit posfinit 1 negonfin 0 0 0 0 0 1
negfinit posfinit 0/1 QNaN 0 0 0 1 0 0
negfinit posfinit 0/1 SNaN 0 0 1 0 0 0
negfinit posfinit 0 POSSNaN 1 0 1 0 0 0
negfinit negfinit 0 posfinit 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

Viktig:

  • De i föregående tabeller betecknar valfritt tal.
  • i föregående tabeller anger ett strunta-tillstånd.

Sanningstabell för multiplikation 
Följande sanningstabell listar värdena för multiplikationsoperationen.

Tabell 2-12. Sanningstabell för multiplikation

Data A Data B Sign Bit Resultat Svämma över Underflöde 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
noll noll 0 POSZERO 0 0 0 0 0 0
noll posfinit 0 POSZERO 0 0 0 0 0 0
noll negfinit 0 POSZERO 0 0 0 0 0 0
noll oändlig 0 POSQNaN 0 0 0 1 0 0
noll negonfin 0 POSQNaN 0 0 0 1 0 0
Tabell 2-12. Sanningstabell för multiplikation (fortsättning)
Data A Data B Sign Bit Resultat Svämma över Underflöde SNaN QNaN PINF NINF
posfinit noll 0 POSZERO 0 0 0 0 0 0
posfinit oändlig 0 oändlig 0 0 0 0 1 0
posfinit negonfin 1 negonfin 0 0 0 0 0 1
negfinit noll 0 POSZERO 0 0 0 0 0 0
negfinit oändlig 1 negonfin 0 0 0 0 0 1
negfinit negonfin 0 oändlig 0 0 0 0 1 0
oändlig noll 0 POSQNaN 0 0 0 1 0 0
oändlig posfinit 0 oändlig 0 0 0 0 1 0
oändlig negfinit 1 negonfin 0 0 0 0 0 1
oändlig oändlig 0 oändlig 0 0 0 0 1 0
oändlig negonfin 1 negonfin 0 0 0 0 0 1
negonfin noll 0 POSQNaN 0 0 0 1 0 0
negonfin posfinit 1 negonfin 0 0 0 0 0 1
negonfin negfinit 0 oändlig 0 0 0 0 1 0
negonfin oändlig 1 negonfin 0 0 0 0 0 1
negonfin negonfin 0 oändlig 0 0 0 0 1 0
posfinit posfinit 0 posfinit 0 0 0 0 0 0
posfinit posfinit 0 oändlig 0 0 0 0 1 0
posfinit posfinit 0 POSQNaN 0 0 0 1 0 0
posfinit posfinit 0 POSSNaN 0 0 1 0 0 0
posfinit posfinit 0 POSSNaN 1 0 1 0 0 0
posfinit posfinit 0 POSSNaN 0 1 1 0 0 0
posfinit negfinit 1 negfinit 0 0 0 0 0 0
posfinit negfinit 1 negonfin 0 0 0 0 0 1
posfinit negfinit 0 POSQNaN 0 0 0 1 0 0
posfinit negfinit 0 POSSNaN 0 0 1 0 0 0
posfinit negfinit 0 POSSNaN 1 0 1 0 0 0
posfinit negfinit 0 POSSNaN 0 1 1 0 0 0
negfinit posfinit 1 negfinit 0 0 0 0 0 0
negfinit posfinit 1 negonfin 0 0 0 0 0 1
negfinit posfinit 0 POSQNaN 0 0 0 1 0 0
negfinit posfinit 0 POSSNaN 0 0 1 0 0 0
negfinit posfinit 0 POSSNaN 1 0 1 0 0 0
negfinit posfinit 0 POSSNaN 0 1 1 0 0 0
negfinit negfinit 0 posfinit 0 0 0 0 0 0
negfinit negfinit 0 oändlig 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

Viktig:

Teckenbit '0' definierar positiv utgång och '1' definierar negativ utgång.
X:et i föregående tabell anger villkoret "bryr mig inte".

CoreFPU-parametrar och gränssnittssignaler
Det här avsnittet diskuterar parametrarna i CoreFPU Configurator-inställningarna och I/O-signalerna.

Konfiguration GUI-parametrar 
Det finns ett antal konfigurerbara alternativ som gäller för FPU-enheten, enligt följande tabell. Om en annan konfiguration än standardinställningen krävs används konfigurationsdialogrutan för att välja lämpliga värden för det konfigurerbara alternativet.

Tabell 3-1. CoreFPU-konfigurationsparametrar för grafiskt gränssnitt 

Parameternamn Standard Beskrivning
Precision Enda Välj önskad operation:

Enkel precision
Dubbel precision

Konverteringstyp Konvertering från fast punkt till flyttal Välj önskad operation:
  • Konvertering från fast punkt till flyttal
  • Flyttals- till fasttalskonvertering
  • Flyttalsaddition
  • Flyttalssubtraktion
  • Flyttalsmultiplikation
Inmatningsbredd1 15 Konfigurerar bråkpunkten i ingångssignalerna ain och bin

Giltigt intervall är 31–1

Utgångsfraktionens bredd2 15 Konfigurerar bråkpunkten i utgångssignalerna

Giltigt intervall är 51–1

Viktig:

  1. Den här parametern kan endast konfigureras vid konvertering från fast komma till flyttal.
  2. Den här parametern kan endast konfigureras vid konvertering från flyttal till fast komma.

In- och utsignaler (ställ en fråga)
Följande tabell listar in- och utgångsportsignalerna för CoreFPU.

Tabell 3-2. Portbeskrivning 

Signalnamn Bredd Typ Beskrivning
clk 1 Input Huvudsystemklocka
rstn 1 Input Aktiv-låg asynkron återställning
di_valid 1 Input Aktiv-hög ingång giltig

Denna signal indikerar att data som finns på ain[31:0], ain[63:0] och bin[31:0], bin[63:0] är giltiga.

ain 32/64 Input En ingångsbuss (den används för alla operationer)
bin1 32/64 Input B Ingångsbuss (Den används endast för aritmetiska operationer)
ut2 32/64 Produktion Utdatavärde när konvertering med flyttals- eller fasttalsvärde är valda.
putt1 32/64 Produktion Utdatavärde när additions-, subtraktions- eller multiplikationsoperationer är valda.
Tabell 3-2. Portbeskrivning (fortsättning)
Signalnamn Bredd Typ Beskrivning
do_valid 1 Produktion Aktiv hög signal

Denna signal indikerar att data som finns på pout/aout-databussen är giltig.

ovfl_fg3 1 Produktion Aktiv hög signal

Denna signal indikerar överflödet under flyttaloperationer.

oförglömlig_fg 1 Produktion Aktiv hög signal

Denna signal indikerar underflödet under flyttaloperationer.

qnan_fg3 1 Produktion Aktiv hög signal

Denna signal indikerar Quiet Not a Number (QNaN) under flyttalsmetoder.

snan_fg 1 Produktion Aktiv hög signal

Denna signal indikerar Signalling Not-a-Number (SNaN) under flyttaloperationer.

pinf_fg3 1 Produktion Aktiv hög signal

Denna signal indikerar den positiva oändligheten under flyttaloperationer.

ninf_fg 1 Produktion Aktiv hög signal

Denna signal indikerar negativ oändlighet under flyttaloperationer.

Viktig:

  1. Den här porten är endast tillgänglig för flyttalsaddition, subtraktion eller multiplikation.
  2. Den här porten är endast tillgänglig för konvertering från fast komma till flyttal och från flyttal till fast komma.
  3. Denna port är tillgänglig för flyttal till fast komma, flyttaladdition, flyttalssubtraktion och flyttalsmultiplikation.

Implementering av CoreFPU i Libero Design Suite

Det här avsnittet beskriver implementeringen av CoreFPU i Libero Design Suite.

SmartDesign 

CoreFPU finns tillgänglig för nedladdning i Libero IP-katalogen via web repository. När den väl finns i katalogen instansieras kärnan med hjälp av SmartDesign-flödet. Information om hur du använder SmartDesign för att konfigurera, ansluta och generera kärnor finns i Libero SoC onlinehjälp.
Efter konfigurering och generering av kärninstansen simuleras den grundläggande funktionaliteten med hjälp av testbänken som medföljer CoreFPU. Testbänkens parametrar justeras automatiskt till CoreFPU-konfigurationen. CoreFPU instansieras som en komponent i en större design.
Figur 4-1. SmartDesign CoreFPU-instans för aritmetiska operationer

MICROCHIP-CoreFPU-Cor-Flyttalsenhet- (5)Figur 4-2. SmartDesign CoreFPU-instans för konverteringsoperation MICROCHIP-CoreFPU-Cor-Flyttalsenhet- (6)

 

Konvertering från fast komma till flyttal
Under konvertering från fastkomma till flyttal är inmatningsbråkbredden konfigurerbar. Utmatningsbredden är som standard inställd på 32 bitar för enkel precision och 64 bitar för dubbel precision.
För att konvertera från fast komma till flyttal, välj Konverteringstyp Fast till flyttal, som visas i följande figur.

MICROCHIP-CoreFPU-Cor-Flyttalsenhet- (7)Flyttals- till fasttalsvärde 
Under konvertering från flyttal till fast komma är utgångsbråkbredden konfigurerbar, och ingångsbredden är som standard inställd på 32 bitar för enkel precision och 64 bitar för dubbel precision med flyttal.
För att konvertera från flyttal till fast komma, välj Konverteringstyp från flyttal till fast komma, som visas i följande figur.
Figur 4-4. CoreFPU-konfigurator för flyttals- till fast komma MICROCHIP-CoreFPU-Cor-Flyttalsenhet- (8)Flyttalsaddition/subtraktion/multiplikation
Under flyttalsaddition, subtraktion och multiplikation kan inte inmatningsbråkbredden och utmatningsbråkbredden konfigureras eftersom dessa är flyttalsberäkningar, och inmatnings-/utmatningsbredden är som standard inställd på 32-bitars enkel precision och 64-bitars för dubbel precision med flyttal.
Följande figur visar CoreFPU-konfiguratorn för flyttal-subtraktion.

Figur 4-5. CoreFPU-konfigurator för flyttalssubtraktionMICROCHIP-CoreFPU-Cor-Flyttalsenhet- (9)Simulering (Ställ en fråga)
För att köra simuleringar, välj Användartestbänk i kärnkonfigurationsfönstret. Efter att ha genererat CoreFPU, testbänken före syntes Hardware Description Language (HDL) files är installerade i Libero.

Simuleringsvågformer (Ställ en fråga)
Det här avsnittet diskuterar simuleringsvågformerna för CoreFPU.
Följande figurer visar vågformen för konvertering från fast komma till flyttal för både 32-bitars och 64-bitars.MICROCHIP-CoreFPU-Cor-Flyttalsenhet- (10)

MICROCHIP-CoreFPU-Cor-Flyttalsenhet- (11) MICROCHIP-CoreFPU-Cor-Flyttalsenhet- (12) MICROCHIP-CoreFPU-Cor-Flyttalsenhet- (13)

Systemintegration
Följande bild visar ett exampanvändning av kärnan. I detta exempelampI.e. används designens UART som en kommunikationskanal mellan konstruktionen och värddatorn. Signalerna ain och bin (vardera med 32-bitars eller 64-bitars bredd) är ingångarna till konstruktionen från UART. Efter att CoreFPU mottagit di_valid-signalen beräknar den resultatet. Efter att resultatet har beräknats går do_valid-signalen högt och lagrar resultatet (aout/pout-data) i utgångsbufferten. Samma procedur gäller för konverterings- och aritmetiska operationer. För konverteringsoperationer är endast ingången ain tillräcklig, medan för aritmetiska operationer krävs både ain- och bin-ingångar. Utgången aout är aktiverad för konverteringsoperationer och pout-porten är aktiverad för aritmetiska operationer.
Bild 4-16. Example av CoreFPU-systemet

MICROCHIP-CoreFPU-Cor-Flyttalsenhet- (14)

 

  1. Syntes (Ställ en fråga)
    För att köra syntes på CoreFPU, ange designroten till IP-komponentinstansen och kör syntesverktyget från Liberos designflödesruta.
    Plats och rutt (Ställ en fråga)
    När designen har syntetiserats, kör verktyget Place-and-Route. CoreFPU kräver inga speciella inställningar för place-and-route.
  2. Användartestbänk (Ställ en fråga)
    En användartestbänk medföljer CoreFPU IP-utgåvan. Med hjälp av denna testbänk kan du verifiera CoreFPU:s funktionella beteende.

Ett förenklat blockschema över användartestbänken visas i följande figur. Användartestbänken instansierar den konfigurerade CoreFPU-designen (UUT) och inkluderar en generator för beteendetestdata, nödvändig klocka och återställningssignaler.
Figur 4-17. CoreFPU användartestbänk

MICROCHIP-CoreFPU-Cor-Flyttalsenhet- (15)Viktigt: Du måste övervaka utsignalerna i ModelSim-simulatorn, se avsnittet Simulering.

Ytterligare referenser (Ställ en fråga)
Det här avsnittet innehåller en lista med ytterligare information.
För uppdateringar och ytterligare information om programvaran, enheterna och hårdvaran, besök

Immateriella sidor om Microchip FPGA och PLD webplats.

  1. Kända problem och lösningar (Ställ en fråga)
    Det finns inga kända problem eller lösningar för CoreFPU v3.0.
  2. Utgångna funktioner och enheter (Ställ en fråga)
    Det finns inga utgående funktioner och enheter med denna IP-version.

Ordlista

Följande är en lista över termer och definitioner som används i dokumentet.
Tabell 6-1. Termer och definitioner

Kalla Definition
FPU Flytpunktsenhet
FP-tillägg Flyttalsaddition
FP-SUB Flyttalssubtraktion
FP MULT Flyttalsmultiplikation

Lösta problem 
Följande tabell listar alla lösta problem för de olika CoreFPU-utgåvorna.

Tabell 7-1. Lösta problem

Släppa Beskrivning
3.0 Följande är en lista över alla lösta problem i v3.0-utgåvan:

Ärendenummer: 01420387 och 01422128

Lade till avrundningsschemats logik (avrunda till närmaste jämna tal).

2.1 Följande är en lista över alla lösta problem i v2.1-utgåvan:
Designen stöter på problem på grund av förekomsten av dubbla moduler när flera kärnor instansieras.
Att byta namn på CoreFPU IP-instansen resulterar i felet "Odefinierad modul".
1.0 Initial release

Enhetsresursutnyttjande och prestanda

CoreFPU-makrot är implementerat i familjerna som listas i följande tabell.
Tabell 8-1. FPU PolarFire-enhetsanvändning för 32-bitars

FPGA-resurser Utnyttjande
Familj 4LUT DFF Total Matteblock Anordning Procenttage Prestanda Latens
Fastkomma till flyttal
PolarFire® 260 104 364 0 MPF300T 0.12 310 MHz 3
Flyttals- till fasttalsvärde
PolarFire 591 102 693 0 MPF300T 0.23 160 MHz 3
Flyttalsaddition
PolarFire 1575 1551 3126 0 MPF300T 1.06 340 MHz 16
Flyttalssubtraktion
PolarFire 1561 1549 3110 0 MPF300T 1.04 345 MHz 16
Flyttalsmultiplikation
PolarFire 465 847 1312 4 MPF300T 0.44 385 MHz 14
FPGA-resurser Utnyttjande
Familj 4LUT DFF Total Matteblock Anordning Procenttage Prestanda Latens
Fastkomma till flyttal
RTG4™ 264 104 368 0 RT4G150 0.24 160 MHz 3
Flyttals- till fasttalsvärde
RTG4 439 112 551 0 RT4G150 0.36 105 MHz 3
Flyttalsaddition
RTG4 1733 1551 3284 0 RT4G150 1.16 195 MHz 16
Flyttalssubtraktion
RTG4 1729 1549 3258 0 RT4G150 1.16 190 MHz 16
Flyttalsmultiplikation
RTG4 468 847 1315 4 RT4G150 0.87 175 MHz 14
FPGA-resurser Utnyttjande
Familj 4LUT DFF Total Matteblock Anordning Procenttage Prestanda Latens
Fastkomma till flyttal
PolarFire® 638 201 849 0 MPF300T 0.28 305 MHz 3
Flyttals- till fasttalsvärde
PolarFire 2442 203 2645 0 MPF300T 0.89 110 MHz 3
Flyttalsaddition
PolarFire 5144 4028 9172 0 MPF300T 3.06 240 MHz 16
Flyttalssubtraktion
PolarFire 5153 4026 9179 0 MPF300T 3.06 250 MHz 16
Flyttalsmultiplikation
PolarFire 1161 3818 4979 16 MPF300T 1.66 340 MHz 27
FPGA-resurser Utnyttjande
Familj 4LUT DFF Total Matteblock Anordning Procenttage Prestanda Latens
Fastkomma till flyttal
RTG4™ 621 201 822 0 RT4G150 0.54 140 MHz 3
Flyttals- till fasttalsvärde
RTG4 1114 203 1215 0 RT4G150 0.86 75 MHz 3
Flyttalsaddition
RTG4 4941 4028 8969 0 RT4G150 5.9 140 MHz 16
Flyttalssubtraktion
RTG4 5190 4026 9216 0 RT4G150 6.07 130 MHz 16
Flyttalsmultiplikation
RTG4 1165 3818 4983 16 RT4G150 3.28 170 MHz 27

Viktigt: För att öka frekvensen, välj Aktivera retiming-alternativet i syntesinställningen.

Revisionshistorik

Revisionshistoriken beskriver de ändringar som implementerades i dokumentet. Ändringarna listas efter revidering, med början i den senaste publikationen.

MICROCHIP-CoreFPU-Cor-Flyttalsenhet- (1)

Microchip FPGA-stöd

Microchip FPGA-produktgruppen stödjer sina produkter med olika supporttjänster, inklusive kundtjänst, tekniskt kundsupportcenter, ett webwebbplats och försäljningskontor över hela världen. Kunder rekommenderas att besöka Microchips onlineresurser innan de kontaktar supporten eftersom det är mycket troligt att deras frågor redan har besvarats.
Kontakta tekniskt supportcenter via webplats på www.microchip.com/support. Nämn FPGA-enhetens artikelnummer, välj lämplig fodralkategori och ladda upp design files när du skapar ett tekniskt supportärende.
Kontakta kundtjänst för icke-teknisk produktsupport, såsom produktpriser, produktuppgraderingar, uppdateringsinformation, orderstatus och auktorisering.

  • Från Nordamerika, ring 800.262.1060
  • Från resten av världen, ring 650.318.4460
  • Faxa, från var som helst i världen, 650.318.8044

Information om mikrochip

Varumärken
"Microchip"-namnet och logotypen, "M"-logotypen och andra namn, logotyper och varumärken är registrerade och oregistrerade varumärken som tillhör Microchip Technology Incorporated eller dess dotterbolag och/eller dotterbolag i USA och/eller andra länder ("Microchip-varumärken"). Information om Microchip-varumärken finns på https://www.microchip.com/en-us/about/legal-information/microchip-trademarks
ISBN: 979-8-3371-0947-3

Rättsligt meddelande
Denna publikation och informationen häri får endast användas med Microchip-produkter, inklusive för att designa, testa och integrera Microchip-produkter med din applikation. Användning av denna information på något annat sätt bryter mot dessa villkor. Information om enhetsapplikationer tillhandahålls endast för din bekvämlighet och kan ersättas av uppdateringar. Det är ditt ansvar att se till att din ansökan uppfyller dina specifikationer. Kontakta ditt lokala Microchip-försäljningskontor för ytterligare support eller få ytterligare support på www.microchip.com/en-us/support/design-help/client-support-services

DENNA INFORMATION TILLHANDAHÅLLS AV MICROCHIP "I BEFINTLIGT SKICK". MICROCHIP GÖR INGA UTSÄTTNINGAR ELLER GARANTIER AV NÅGOT SLAG, VARKEN UTTRYCKLIGA ELLER UNDERFÖRSTÅDDA, SKRIFTLIGA ELLER MUNTLIGA, LAGSTÄMNADE ELLER ANNAT SÄTT, RELATERADE TILL INFORMATIONEN INKLUSIVE MEN INTE BEGRÄNSADE TILL NÅGRA UNDERFÖRSTÅDDA GARANTIER, OCH GARANTIER, LÄMPLIGHET FÖR ETT SÄRSKILT ÄNDAMÅL ELLER GARANTIER RELATERADE TILL DESS SKICK, KVALITET ELLER PRESTANDA.

UNDER INGA OMSTÄNDIGHETER KOMMER MICROCHIP ANSVARIGT FÖR NÅGON INDIREKTA, SÄRSKILDA, STRAFFANDE, OAVSIKTLIGA ELLER FÖLJDLIG FÖRLUST, SKADA, KOSTNAD ELLER KOSTNADER AV NÅGOT SLAG SOM HELST SAMMANFATTAS TILL INFORMATIONEN ELLER DESS ANVÄNDNING, OAVSETT OAVSETT OAVSETT MÖJLIGHETEN ELLER SKADOR ÄR FÖRUTSÅBARA. I FULLSTÄNDIG UTSTRÄCKNING SOM TILLÅTS AV LAGEN KOMMER MICROCHIPS TOTALA ANSVAR PÅ ALLA ANSVAR PÅ NÅGOT SÄTT relaterade till INFORMATIONEN ELLER DESS ANVÄNDNING INTE ÖVERSKRIVA BELÖPET AV AVGIFTER, OM NÅGRA, SOM DU HAR BETALAT DIREKT FÖR INFORMATIONOCHIPEN.

Användning av Microchip-enheter i livsuppehållande och/eller säkerhetsapplikationer sker helt och hållet på köparens risk, och köparen samtycker till att försvara, gottgöra och hålla Microchip ofarligt från alla skador, anspråk, processer eller utgifter som härrör från sådan användning. Inga licenser överförs, vare sig underförstått eller på annat sätt, under några Microchips immateriella rättigheter om inte annat anges.

Mikrochip-enheter kodskyddsfunktion
Observera följande detaljer om kodskyddsfunktionen på Microchip-produkter:

  • Microchip-produkter uppfyller specifikationerna i deras specifika Microchip-datablad.
  • Microchip anser att dess familj av produkter är säkra när de används på avsett sätt, inom driftsspecifikationer och under normala förhållanden.
  • Microchip värdesätter och skyddar aggressivt dess immateriella rättigheter. Försök att bryta mot kodskyddsfunktionerna för Microchip-produkter är strängt förbjudna och kan bryta mot Digital Millennium Copyright Act.
  • Varken Microchip eller någon annan halvledartillverkare kan garantera säkerheten för sin kod. Kodskydd betyder inte att vi garanterar att produkten är "okrossbar". Kodskyddet utvecklas ständigt. Microchip har åtagit sig att kontinuerligt förbättra kodskyddsfunktionerna i våra produkter.

Dokument/resurser

MICROCHIP CoreFPU Core Flyttalsenhet [pdf] Användarhandbok
v3.0, v2.1, v2.0, v1.0, CoreFPU Kärnflyttalsenhet, Kärnflyttalsenhet, Flyttalsenhet, Punktenhet

Referenser

Lämna en kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade *