MIKROCHIP-logó

MICROCHIP CoreFPU Core lebegőpontos egység

MICROCHIP-CoreFPU-Cor-Lebegőpontos-Egység-termék

 

Bevezetés 

  • A Core Floating Point Unit (CoreFPU) lebegőpontos aritmetikai és átváltási műveletekhez, egyszeres és kétszeres pontosságú lebegőpontos számokhoz készült. A CoreFPU támogatja a fixpontos-lebegőpontos és lebegőpontos-fixpontos átváltásokat, valamint a lebegőpontos összeadási, kivonási és szorzási műveleteket. Az IEEE® lebegőpontos aritmetikai szabvány (IEEE 754) a lebegőpontos számítások műszaki szabványa.
  • Fontos: A CoreFPU csak normalizált számokkal végzett számításokat támogat, és csak a Verilog nyelv támogatott; a VHDL nem támogatott.

Összegzés
Az alábbi táblázat a CoreFPU jellemzőinek összefoglalását tartalmazza.

1. táblázat. CoreFPU jellemzők 

Core Verzió Ez a dokumentum a CoreFPU v3.0-ra vonatkozik.
Támogatott eszközcsaládok
  • PolarFire® SoC
  • PolarFire
  • RTG4™
Támogatott eszközáramlás Libero® SoC v12.6 vagy újabb kiadásokat igényel.
Engedélyezés A CoreFPU nincs licenczárolva.
Telepítési útmutató A CoreFPU-t automatikusan kell telepíteni a Libero SoC IP-katalógusába az IP-katalógus frissítési funkcióján keresztül. Alternatív megoldásként a CoreFPU manuálisan is letölthető a katalógusból. Miután az IP-mag telepítve van,

Telepítés után a SmartDesignon belül konfigurálható, generálható és példányosítható a projektbe való beillesztéshez.

Eszköz kihasználtsága és teljesítménye A CoreFPU kihasználtsági és teljesítményinformációinak összefoglalása az Eszközerőforrás-kihasználtság és teljesítmény című részben található.

CoreFPU változásnapló-információk
Ez a rész átfogó áttekintést nyújtview az újonnan beépített funkciókról, a legújabb kiadástól kezdve. A megoldott problémákkal kapcsolatos további információkért lásd a Megoldott problémák részt.

Változat Újdonságok
v3.0 További kimeneti jelzőket valósított meg az IP pontosságának növelése érdekében.
v2.1 Hozzáadva a dupla pontosságú funkció
v2.0 Frissítette az időzítési hullámformákat
v1.0 A CoreFPU első gyártási kiadása

1. Jellemzők

A CoreFPU a következő főbb jellemzőkkel rendelkezik:

  • Támogatja az egyszeres és kétszeres precíziós lebegőszámokat az IEEE-754 szabvány szerint
  • Támogatja a konverziókat a felsoroltak szerint:
    • Fixpontos-lebegőpontos átváltás
    • Lebegőpontos-fixpontos átváltás
  • Támogatja a felsorolt ​​aritmetikai műveleteket:
    • Lebegőpontos összeadás
    • Lebegőpontos kivonás
    • Lebegőpontos szorzás
  • Kizárólag aritmetikai műveletekhez biztosítja a kerekítési sémát (kerekítés a legközelebbi páros számra)
  • Jelzőket biztosít túlcsordulás, alulcsordulás, végtelen (pozitív végtelen, negatív végtelen), csendes NaN (QNaN) és jelző NaN (SNaN) esetén lebegőpontos számok esetén.
  • Támogatja a számtani műveletek teljes körű, pipeline-os megvalósítását
  • Lehetőséget biztosít a tervezési követelményekhez szükséges mag konfigurálására

Funkcionális leírás

  • Az IEEE lebegőpontos aritmetikai szabványa (IEEE 754) a lebegőpontos számítások műszaki szabványa. A lebegőpontos kifejezés a szám alappontjára (tizedesvessző vagy bináris pont) utal, amely a szám értékes számjegyeihez képest bárhol elhelyezhető.
    A lebegőpontos számokat jellemzően tudományos jelöléssel fejezzük ki, egy adott radix (r) törtjével (F) és kitevőjével (E), F × r^E formában. A decimális számok 10-es radixot (F × 10^E), míg a bináris számok 2-es radixot (F × 2^E) használnak.
  • A lebegőpontos szám ábrázolása nem egyedi. PéldáulampPéldául az 55.66-os számot a következőképpen ábrázoljuk: 5.566 × 10^1, 0.5566 × 10^2, 0.05566 × 10^3 és így tovább. A tört rész normalizált. A normalizált alakban csak egyetlen nem nulla számjegy van a radixpont előtt. PéldáulampPéldául a 123.4567 decimális számot 1.234567 × 10^2-ként normalizáljuk; a 1010.1011B bináris számot pedig 1.0101011B × 2^3-ként normalizáljuk.
  • Fontos megjegyezni, hogy a lebegőpontos számok pontossága csökken, ha fix számú bittel ábrázoljuk őket (pl.amp(legalábbis 32 bites vagy 64 bites). Ez azért van, mert végtelen sok valós szám létezik (még egy kis, 0.0 és 0.1 közötti tartományon belül is). Másrészt egy
    Az n-bites bináris minta véges 2^n különböző számot reprezentál. Ezért nem minden valós számot ábrázolunk. Ehelyett a legközelebbi közelítést használjuk, ami a pontosság elvesztéséhez vezet.

Az egyetlen pontosságú lebegőpontos számot a következőképpen ábrázoljuk:

  • Előjel bit: 1 bit
  • Kitevő szélessége: 8 bit
  • Jelentős pontosság: 24 bit (23 bit explicit módon tárolva)

2-1. ábra: 32 bites keret

MICROCHIP-CoreFPU-Cor-Lebegőpontos-Egység- (2)A dupla pontosságú lebegőpontos számot a következőképpen ábrázoljuk:

  • Előjel bit: 1 bit
  • Kitevő szélessége: 11 bit
  • Jelentős pontosság: 53 bit (52 bit explicit módon tárolva)

2-2. ábra: 64 bites keret MICROCHIP-CoreFPU-Cor-Lebegőpontos-Egység- (3)A CoreFPU a két konverziós modul (fixpontosra konvertálás és fixpontosra konvertálás) és három aritmetikai művelet (FP ADD, FP SUB és FP MULT) legfelső szintű integrációja. A felhasználó a követelmények alapján bármelyik műveletet konfigurálhatja úgy, hogy az erőforrásokat a kiválasztott művelet használja fel.
A következő ábra a legfelsőbb szintű CoreFPU blokkdiagramot mutatja portokkal.

2-3. ábra: CoreFPU portok blokkdiagramja

MICROCHIP-CoreFPU-Cor-Lebegőpontos-Egység- (4)A következő táblázat a bemeneti és kimeneti portok szélességét mutatja. 2-1. táblázat: Bemeneti és kimeneti portok szélessége

Jel Egyetlen precíziós szélesség Dupla precíziós szélesség
ain [31:0] [63:0]
bin [31:0] [63:0]
ki [31:0] [63:0]
ajakbiggyesztés [31:0] [63:0]

Fixpontosból lebegőpontosba (átalakítás)

A fix-lebegőpontosként konfigurált CoreFPU a fix-lebegőpontos konverziós modult jelenti. A CoreFPU bemenete (ain) bármilyen fixpontos szám, amely tartalmazza az egész és tört biteket. A CoreFPU konfigurátorban kiválasztható a bemeneti egész és tört szélesség. A bemenet di_valid jel esetén, a kimenet pedig do_valid jel esetén érvényes. A fix-lebegőpontos művelet kimenete (aout) egyszeres vagy kétszeres pontosságú lebegőpontos formátumú.
ExampA fixpontosról lebegőpontosra konvertálási művelet fájlját a következő táblázat tartalmazza.
2-2. táblázat. VoltampFixpontos-lebegőpontos konverzióhoz használt fájl

Fixpontos szám Lebegőpontos szám
ain Egész szám Frakció ki Jel Kitevő Mantissa
0x12153524 (32 bites) 00010010000101010 011010100100100 0x4610a9a9 0 10001100 00100001010100110101001
0x0000000000008CCC

(64 bites)

0000000000000000000000000000000000000000000000001 000110011001100 0x3FF199999999999A 0 01111111111 0001100110011001100110011001100110011001100110011010

Lebegőpontosból fixpontosba (átalakítás) 
A lebegőpontosról fixpontosra konfigurált CoreFPU a lebegőpontosról fixpontosra konvertáló modult használja. A CoreFPU bemenete (ain) bármilyen egyszeres vagy kétszeres pontosságú lebegőpontos szám, és kimenetet (aout) hoz létre fixpontos formátumban, amely egész és tört biteket tartalmaz. A bemenet di_valid jel esetén, a kimenet pedig do_valid jel esetén érvényes. A CoreFPU konfigurátorában kiválaszthatja a kimeneti egész és tört szélességét.
ExampA lebegőpontos-fixpontos konverziós művelet fájlját a következő táblázat tartalmazza.

2-3. táblázat. Voltamplebegőpontos-fixpontos konverzióhoz

Lebegőpontos szám Fixpontos szám
ain Jel Kitevő Mantissa ki Egész szám Frakció
0x41bd6783 (32 bites) 0 10000011 01111010110011110000011 0x000bd678 00000000000010111 101011001111000
0x4002094c447c30d3

(64 bites)

0 10000000000 0010000010010100110001000100011111000011000011010011 0x0000000000012095 0000000000000000000000000000000000000000000000010 010000010010101

Lebegőpontos összeadás (aritmetikai művelet)
Az FP ADD-ként konfigurált CoreFPU kikövetkezteti a lebegőpontos összeadó modult. Összeadja a két lebegőpontos számot (ain és bin), és a kimenetet (pout) lebegőpontos formátumban adja ki. A bemenet és a kimenet egyszeres vagy kétszeres pontosságú lebegőpontos számok. A bemenet di_valid jel esetén, a kimenet pedig do_valid jel esetén érvényes. A mag az összeadási művelet alapján ovfl_fg (túlcsordulás), qnan_fg (csendes, nem szám), snan_fg (nem szám jelzése), pinf_fg (pozitív végtelen) és ninf_fg (negatív végtelen) jelzőket állít elő.
ExampA lebegőpontos összeadási művelethez tartozó fájlokat a következő táblázatok tartalmazzák.
2-4. táblázat. VoltampLebegőpontos összeadási művelet fájlja (32 bites)

Lebegőpontos érték Jel Kitevő Mantissa
Lebegőpontos bemenet 1 ain (0x4e989680) 0 10011101 00110001001011010000000
Lebegőpontos bemenet 2. tároló (0x4f191b40) 0 10011110 00110010001101101000000
Lebegőpontos összeadás kimenet pout (0x4f656680) 0 10011110 11001010110011010000000

2-5. táblázat. VoltampLebegőpontos összeadási művelet fájlja (64 bites)

Lebegőpontos érték Jel Kitevő Mantissa
Lebegőpontos bemenet 1

ain (0x3ff4106ee30caa32)

0 01111111111 0100000100000110111011100011000011001010101000110010
Lebegőpontos bemenet 2

bin (0x40020b2a78798e61)

0 10000000000 0010000010110010101001111000011110011000111001100001
Lebegőpontos összeadás kimenet pout (0x400c1361e9ffe37a) 0 10000000000 1100000100110110000111101001111111111110001101111010

Lebegőpontos kivonás (aritmetikai művelet) 
Az FP SUB-ként konfigurált CoreFPU kikövetkezteti a lebegőpontos kivonási modult. Kivonja a két lebegőpontos számot (ain és bin), és a kimenetet (pout) lebegőpontos formátumban adja vissza. A bemenet és a kimenet egyszeres vagy kétszeres pontosságú lebegőpontos számok. A bemenet di_valid jel esetén, a kimenet pedig do_valid jel esetén érvényes. A mag a kivonási művelettől függően ovfl_fg (túlcsordulás), unfl_fg (alulcsordulás), qnan_fg (csendes „nem szám”), snan_fg (nem szám jelzése), pinf_fg (pozitív végtelen) és ninf_fg (negatív végtelen) jelzőket állít elő.
ExampA lebegőpontos kivonási művelethez tartozó fájlokat a következő táblázatok tartalmazzák.
2-6. táblázat. VoltampLebegőpontos kivonási művelet fájlja (32 bites)

Lebegőpontos érték Jel Kitevő Mantissa
Lebegőpontos bemenet 1 ain (0xac85465f) 1 01011001 00001010100011001011111
Lebegőpontos bemenet 2. tároló (0x2f516779) 0 01011110 10100010110011101111001
Lebegőpontos kivonás kimenet pout (0xaf5591ac) 1 01011110 10101011001000110101011
Lebegőpontos érték Jel Kitevő Mantissa
Lebegőpontos bemenet 1

ain (0x405569764adff823)

0 10000000101 0101011010010111011001001010110111111111100000100011
Lebegőpontos bemenet 2

bin (0x4057d04e78dee3fc)

0 10000000101 0111110100000100111001111000110111101110001111111100
Lebegőpontos kivonás kimenet pout (0xc02336c16ff75ec8) 1 10000000010 0011001101101100000101101111111101110101111011001000

Lebegőpontos szorzás (aritmetikai művelet)
Az FP MULT-ként konfigurált CoreFPU kikövetkezteti a lebegőpontos szorzó modult. Ez összeszorozza a két lebegőpontos számot (ain és bin), és a kimenetet (pout) lebegőpontos formátumban adja vissza. A bemenet és a kimenet egyszeres vagy kétszeres pontosságú lebegőpontos számok. A bemenet di_valid jel esetén, a kimenet pedig do_valid jel esetén érvényes. A mag a szorzási művelettől függően ovfl_fg (túlcsordulás), unfl_fg (alulcsordulás), qnan_fg (csendes „nem szám”), snan_fg (nem szám jelzése), pinf_fg (pozitív végtelen) és ninf_fg (negatív végtelen) jelzőket állít elő.
ExampA lebegőpontos szorzási művelethez tartozó fájlokat a következő táblázatok tartalmazzák.
2-8. táblázat. VoltampLebegőpontos szorzási művelet fájlja (32 bites)

Lebegőpontos érték Jel Kitevő Mantissa
Lebegőpontos bemenet 1 ain (0x1ec7a735) 0 00111101 10001111010011100110101
Lebegőpontos bemenet 2. tároló (0x6ecf15e8) 0 11011101 10011110001010111101000
Lebegőpontos szorzás kimenet pout (0x4e21814a) 0 10011100 01000011000000101001010
Lebegőpontos érték Jel Kitevő Mantissa
Lebegőpontos bemenet 1

ain (0x40c1f5a9930be0df)

0 10000001100 0001111101011010100110010011000010111110000011011111
Lebegőpontos bemenet 2

bin (0x400a0866c962b501)

0 10000000000 1010000010000110011011001001011000101011010100000001
Lebegőpontos szorzás kimenet pout (0x40dd38a1c3e2cae9) 0 10000001101 1101001110001010000111000011111000101100101011101001

 Összeadás és kivonás igazságtáblázata 
A következő igazságtáblázatok az összeadás és kivonás műveletének értékeit tartalmazzák. 2-10. táblázat: Összeadás igazságtáblázata

Adatok A B adat Sign Bit Eredmény Túlcsordulás Alulcsordulás 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
nulla nulla 0 POZSZERÓ 0 0 0 0 0 0
nulla posfinit(y) 0 posfinit(y) 0 0 0 0 0 0
nulla negvéges(y) 1 negvéges(y) 0 0 0 0 0 0
nulla poszinvégtelen 0 poszinvégtelen 0 0 0 0 1 0
nulla végtelen semmi 1 végtelen semmi 0 0 0 0 0 1
posfinit(y) nulla 0 posfinit(y) 0 0 0 0 0 0
poszfinit poszinvégtelen 0 poszinvégtelen 0 0 0 0 1 0
Táblázat 2-10. Összeadás igazságtáblázata (folytatás)
Adatok A B adat Sign Bit Eredmény Túlcsordulás Alulcsordulás SNaN QNaN PINF NINF
poszfinit végtelen semmi 1 végtelen semmi 0 0 0 0 0 1
negvéges(y) nulla 1 negvéges(y) 0 0 0 0 0 0
negvéges poszinvégtelen 0 poszinvégtelen 0 0 0 0 1 0
negvéges végtelen semmi 1 végtelen semmi 0 0 0 0 0 1
poszinvégtelen nulla 0 poszinvégtelen 0 0 0 0 1 0
poszinvégtelen poszfinit 0 poszinvégtelen 0 0 0 0 1 0
poszinvégtelen negvéges 0 poszinvégtelen 0 0 0 0 1 0
poszinvégtelen poszinvégtelen 0 poszinvégtelen 0 0 0 0 1 0
poszinvégtelen végtelen semmi 0 POSQNaN 0 0 0 1 0 0
végtelen semmi nulla 1 végtelen semmi 0 0 0 0 0 1
végtelen semmi poszfinit 1 végtelen semmi 0 0 0 0 0 1
végtelen semmi negvéges 1 végtelen semmi 0 0 0 0 0 1
végtelen semmi poszinvégtelen 0 POSQNaN 0 0 0 1 0 0
végtelen semmi végtelen semmi 1 végtelen semmi 0 0 0 0 0 1
poszfinit poszfinit 0 poszfinit 0 0 0 0 0 0
poszfinit poszfinit 0 poszinvégtelen 0 0 0 0 1 0
poszfinit poszfinit 0/1 QNaN 0 0 0 1 0 0
poszfinit poszfinit 0/1 SNaN 0 0 1 0 0 0
poszfinit poszfinit 0 POSSNaN 1 0 1 0 0 0
poszfinit negvéges 0 poszfinit 0 0 0 0 0 0
poszfinit negvéges 1 negvéges 0 0 0 0 0 0
poszfinit negvéges 0 POSSNaN 0 1 1 0 0 0
negvéges poszfinit 0 poszfinit 0 0 0 0 0 0
negvéges poszfinit 1 negvéges 0 0 0 0 0 0
negvéges poszfinit 0 POSSNaN 0 1 1 0 0 0
negvéges negvéges 1 negvéges 0 0 0 0 0 0
negvéges negvéges 1 végtelen semmi 0 0 0 0 0 1
negvéges negvéges 0/1 QNaN 0 0 0 1 0 0
negvéges negvéges 0/1 SNaN 0 0 1 0 0 0
negvéges negvéges 0 POSSNaN 1 0 1 0 0 0
Adatok A B adat Sign Bit Eredmény Túlcsordulás Alulcsordulás 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
nulla nulla 0 POZSZERÓ 0 0 0 0 0 0
nulla posfinit(y) 1 negvéges(y) 0 0 0 0 0 0
nulla negvéges(y) 0 posfinit(y) 0 0 0 0 0 0
nulla poszinvégtelen 1 végtelen semmi 0 0 0 0 0 1
nulla végtelen semmi 0 poszinvégtelen 0 0 0 0 1 0
posfinit(y) nulla 0 posfinit(y) 0 0 0 0 0 0
poszfinit poszinvégtelen 1 végtelen semmi 0 0 0 0 0 1
poszfinit végtelen semmi 0 poszinvégtelen 0 0 0 0 1 0
negvéges(y) nulla 1 negvéges(y) 0 0 0 0 0 0
negvéges poszinvégtelen 1 végtelen semmi 0 0 0 0 0 1
Táblázat 2-11. Kivonás igazságtáblázata (folytatás)
Adatok A B adat Sign Bit Eredmény Túlcsordulás Alulcsordulás SNaN QNaN PINF NINF
negvéges végtelen semmi 0 poszinvégtelen 0 0 0 0 1 0
poszinvégtelen nulla 0 poszinvégtelen 0 0 0 0 1 0
poszinvégtelen poszfinit 0 poszinvégtelen 0 0 0 0 1 0
poszinvégtelen negvéges 0 poszinvégtelen 0 0 0 0 1 0
poszinvégtelen poszinvégtelen 0 POSQNaN 0 0 0 1 0 0
poszinvégtelen végtelen semmi 0 poszinvégtelen 0 0 0 0 1 0
végtelen semmi nulla 1 végtelen semmi 0 0 0 0 0 1
végtelen semmi poszfinit 1 végtelen semmi 0 0 0 0 0 1
végtelen semmi negvéges 1 végtelen semmi 0 0 0 0 0 1
végtelen semmi poszinvégtelen 1 végtelen semmi 0 0 0 0 0 1
végtelen semmi végtelen semmi 0 POSQNaN 0 0 0 1 0 0
poszfinit poszfinit 0 poszfinit 0 0 0 0 0 0
poszfinit poszfinit 1 negvéges 0 0 0 0 0 0
poszfinit poszfinit 0 POSSNaN 0 1 1 0 0 0
poszfinit negvéges 0 poszfinit 0 0 0 0 0 0
poszfinit negvéges 0 poszinvégtelen 0 0 0 0 1 0
poszfinit negvéges 0/1 QNaN 0 0 0 1 0 0
poszfinit negvéges 0/1 SNaN 0 0 1 0 0 0
poszfinit negvéges 0 POSSNaN 1 0 1 0 0 0
negvéges poszfinit 1 negvéges 0 0 0 0 0 0
negvéges poszfinit 1 végtelen semmi 0 0 0 0 0 1
negvéges poszfinit 0/1 QNaN 0 0 0 1 0 0
negvéges poszfinit 0/1 SNaN 0 0 1 0 0 0
negvéges poszfinit 0 POSSNaN 1 0 1 0 0 0
negvéges negvéges 0 poszfinit 0 0 0 0 0 0
negvéges negvéges 1 negvéges 0 0 0 0 0 0
negvéges negvéges 0 POSSNaN 0 1 1 0 0 0

Fontos:

  • Az előző táblázatokban ezek tetszőleges számot jelölnek.
  • Az előző táblázatokban a „nem érdekel” állapotot jelöl.

Igazságtáblázat a szorzáshoz 
Az alábbi igazságtáblázat a szorzási művelet értékeit tartalmazza.

2-12. táblázat. Szorzás igazságtáblázata

Adatok A B adat Sign Bit Eredmény Túlcsordulás Alulcsordulás 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
nulla nulla 0 POZSZERÓ 0 0 0 0 0 0
nulla poszfinit 0 POZSZERÓ 0 0 0 0 0 0
nulla negvéges 0 POZSZERÓ 0 0 0 0 0 0
nulla poszinvégtelen 0 POSQNaN 0 0 0 1 0 0
nulla végtelen semmi 0 POSQNaN 0 0 0 1 0 0
Táblázat 2-12. Szorzás igazságtáblázata (folytatás)
Adatok A B adat Sign Bit Eredmény Túlcsordulás Alulcsordulás SNaN QNaN PINF NINF
poszfinit nulla 0 POZSZERÓ 0 0 0 0 0 0
poszfinit poszinvégtelen 0 poszinvégtelen 0 0 0 0 1 0
poszfinit végtelen semmi 1 végtelen semmi 0 0 0 0 0 1
negvéges nulla 0 POZSZERÓ 0 0 0 0 0 0
negvéges poszinvégtelen 1 végtelen semmi 0 0 0 0 0 1
negvéges végtelen semmi 0 poszinvégtelen 0 0 0 0 1 0
poszinvégtelen nulla 0 POSQNaN 0 0 0 1 0 0
poszinvégtelen poszfinit 0 poszinvégtelen 0 0 0 0 1 0
poszinvégtelen negvéges 1 végtelen semmi 0 0 0 0 0 1
poszinvégtelen poszinvégtelen 0 poszinvégtelen 0 0 0 0 1 0
poszinvégtelen végtelen semmi 1 végtelen semmi 0 0 0 0 0 1
végtelen semmi nulla 0 POSQNaN 0 0 0 1 0 0
végtelen semmi poszfinit 1 végtelen semmi 0 0 0 0 0 1
végtelen semmi negvéges 0 poszinvégtelen 0 0 0 0 1 0
végtelen semmi poszinvégtelen 1 végtelen semmi 0 0 0 0 0 1
végtelen semmi végtelen semmi 0 poszinvégtelen 0 0 0 0 1 0
poszfinit poszfinit 0 poszfinit 0 0 0 0 0 0
poszfinit poszfinit 0 poszinvégtelen 0 0 0 0 1 0
poszfinit poszfinit 0 POSQNaN 0 0 0 1 0 0
poszfinit poszfinit 0 POSSNaN 0 0 1 0 0 0
poszfinit poszfinit 0 POSSNaN 1 0 1 0 0 0
poszfinit poszfinit 0 POSSNaN 0 1 1 0 0 0
poszfinit negvéges 1 negvéges 0 0 0 0 0 0
poszfinit negvéges 1 végtelen semmi 0 0 0 0 0 1
poszfinit negvéges 0 POSQNaN 0 0 0 1 0 0
poszfinit negvéges 0 POSSNaN 0 0 1 0 0 0
poszfinit negvéges 0 POSSNaN 1 0 1 0 0 0
poszfinit negvéges 0 POSSNaN 0 1 1 0 0 0
negvéges poszfinit 1 negvéges 0 0 0 0 0 0
negvéges poszfinit 1 végtelen semmi 0 0 0 0 0 1
negvéges poszfinit 0 POSQNaN 0 0 0 1 0 0
negvéges poszfinit 0 POSSNaN 0 0 1 0 0 0
negvéges poszfinit 0 POSSNaN 1 0 1 0 0 0
negvéges poszfinit 0 POSSNaN 0 1 1 0 0 0
negvéges negvéges 0 poszfinit 0 0 0 0 0 0
negvéges negvéges 0 poszinvégtelen 0 0 0 0 1 0
negvéges negvéges 0 POSQNaN 0 0 0 1 0 0
negvéges negvéges 0 POSQNaN 0 0 1 0 0 0
negvéges negvéges 0 POSQNaN 1 0 1 0 0 0
negvéges negvéges 0 POSQNaN 0 1 1 0 0 0

Fontos:

A '0' előjelbit pozitív, az '1' pedig negatív kimenetet definiál.
Az előző táblázatban az x a „mindegy” feltételt jelöli.

CoreFPU paraméterek és interfészjelek
Ez a szakasz a CoreFPU Configurator beállításainak paramétereit és az I/O jeleket tárgyalja.

Konfigurációs GUI paraméterek 
Számos konfigurálható beállítás vonatkozik az FPU egységre, amint az a következő táblázatban látható. Ha az alapértelmezettől eltérő konfigurációra van szükség, a konfigurációs párbeszédpanelen kiválaszthatja a megfelelő értékeket a konfigurálható beállításhoz.

3-1. táblázat: CoreFPU konfigurációs grafikus felhasználói felület paraméterei 

Paraméter neve Alapértelmezett Leírás
Pontosság Egyetlen Válassza ki a kívánt műveletet:

Egyetlen pontosság
Dupla pontosság

Konverzió típusa Fixpontos-lebegőpontos átváltás Válassza ki a kívánt műveletet:
  • Fixpontos-lebegőpontos átváltás
  • Lebegőpontos-fixpontos átváltás
  • Lebegőpontos összeadás
  • Lebegőpontos kivonás
  • Lebegőpontos szorzás
Beviteli tört szélessége1 15 Konfigurálja a törtpontot a bemeneti ain és bin jelekben

Érvényes tartomány: 31–1

Kimeneti frakció szélessége2 15 Konfigurálja a törtpontot az Output aout jelekben

Érvényes tartomány: 51–1

Fontos:

  1. Ez a paraméter csak fixpontosról lebegőpontosra konvertálás során konfigurálható.
  2. Ez a paraméter csak lebegőpontosról fixpontosra konvertálás során konfigurálható.

Bemeneti és kimeneti jelek (tegyen fel egy kérdést)
Az alábbi táblázat a CoreFPU bemeneti és kimeneti portjeleit sorolja fel.

3-2. táblázat: Port leírása 

Jel neve Szélesség Írja be Leírás
clk 1 Bemenet Fő rendszeróra
rstn 1 Bemenet Aktív-alacsony aszinkron visszaállítás
érvényesség hiánya 1 Bemenet Aktív-magas bemenet érvényes

Ez a jel azt jelzi, hogy az ain[31:0], ain[63:0] és bin[31:0], bin[63:0] könyvtárakban található adatok érvényesek.

ain 32/64 Bemenet Bemeneti busz (Minden művelethez használatos)
bin1 32/64 Bemenet B Bemeneti busz (Csak aritmetikai műveletekhez használatos)
ki2 32/64 Kimenet Kimeneti érték fixpontos vagy lebegőpontos-fixpontos átváltási műveletek kiválasztásakor.
ajakbiggyesztés1 32/64 Kimenet Kimeneti érték összeadás, kivonás vagy szorzás művelet kiválasztásakor.
Táblázat 3-2. Port leírása (folytatás)
Jel neve Szélesség Írja be Leírás
érvényes 1 Kimenet Aktív magas jel

Ez a jel azt jelzi, hogy a pout/aout adatbuszon lévő adatok érvényesek.

ovfl_fg3 1 Kimenet Aktív magas jel

Ez a jel a lebegőpontos műveletek során fellépő túlcsordulást jelzi.

unfl_fg 1 Kimenet Aktív magas jel

Ez a jel a lebegőpontos műveletek során fellépő alulcsordulást jelzi.

qnan_fg3 1 Kimenet Aktív magas jel

Ez a jel a Quiet Not a Number (QNaN) jelenséget jelzi lebegőpontos műveletek közben.

snan_fg 1 Kimenet Aktív magas jel

Ez a jel a Signaling Not-a-Number (SNaN) jelenséget jelzi lebegőpontos műveletek közben.

pinf_fg3 1 Kimenet Aktív magas jel

Ez a jel a pozitív végtelent jelzi lebegőpontos műveletek során.

ninf_fg 1 Kimenet Aktív magas jel

Ez a jel a negatív végtelent jelzi lebegőpontos műveletek során.

Fontos:

  1. Ez a port csak lebegőpontos összeadáshoz, kivonáshoz vagy szorzáshoz érhető el.
  2. Ez a port csak fixpontos-lebegőpontos és lebegőpontos-fixpontos konverziós műveletekhez érhető el.
  3. Ez a port lebegőpontosról fixpontosra átváltáshoz, lebegőpontos összeadáshoz, lebegőpontos kivonáshoz és lebegőpontos szorzáshoz érhető el.

CoreFPU implementációja a Libero Design Suite-ban

Ez a szakasz a CoreFPU Libero Design Suite-ban történő megvalósítását ismerteti.

SmartDesign 

A CoreFPU letölthető a Libero IP katalógusból a következő címen: web repository. Miután felkerült a katalógusba, a mag a SmartDesign folyamattal példányosodik. A SmartDesign használatával történő konfigurálásról, csatlakoztatásról és magok generálásáról a Libero SoC online súgójában talál további információkat.
A központi példány konfigurálása és létrehozása után az alapvető funkciókat a CoreFPU-val szállított tesztkörnyezet segítségével szimulálják. A tesztkörnyezet paraméterei automatikusan igazodnak a CoreFPU konfigurációjához. A CoreFPU egy nagyobb terv részeként kerül létrehozásra.
4-1. ábra: SmartDesign CoreFPU példány aritmetikai műveletekhez

MICROCHIP-CoreFPU-Cor-Lebegőpontos-Egység- (5)4-2. ábra. SmartDesign CoreFPU példány a konverziós művelethez MICROCHIP-CoreFPU-Cor-Lebegőpontos-Egység- (6)

 

Fixpontos-lebegőpontos átváltás
Fixpontosról lebegőpontosra konvertálás során a bemeneti tört szélessége konfigurálható. A kimeneti szélesség alapértelmezés szerint 32 bites egyszeres pontosságú lebegőpontos és 64 bites dupla pontosságú lebegőpontos konverzió esetén.
A fixpontosról lebegőpontosra való konverzióhoz válassza a Fixpontosról lebegőpontosra konvertálás típusát, ahogy az az alábbi ábrán látható.

MICROCHIP-CoreFPU-Cor-Lebegőpontos-Egység- (7)Lebegőpontosról fixpontosra 
Lebegőpontosról fixpontosra konvertálás során a kimeneti törtszélesség konfigurálható, a bemeneti szélesség pedig alapértelmezés szerint 32 bites egyszeres pontosságú lebegőpontos és 64 bites kétszeres pontosságú lebegőpontos konverzió esetén.
A lebegőpontosról fixpontosra való átváltáshoz válassza a Lebegőpontosról fixpontosra konvertálás típusát, ahogy az az alábbi ábrán látható.
4-4. ábra. CoreFPU konfigurátor lebegőpontos és fixált értékekhez MICROCHIP-CoreFPU-Cor-Lebegőpontos-Egység- (8)Lebegőpontos összeadás/kivonás/szorzás
Lebegőpontos összeadás, kivonás és szorzás során a bemeneti tört szélessége és a kimeneti tört szélessége nem konfigurálható, mivel ezek lebegőpontos aritmetikai műveletek, és a bemeneti/kimeneti szélesség alapértelmezés szerint 32 bites egyszeres pontosságú, illetve 64 bites dupla pontosságú lebegőpontos esetén.
A következő ábra a CoreFPU konfigurátorát mutatja be a lebegőpontos kivonási művelethez.

4-5. ábra: CoreFPU konfigurátor lebegőpontos kivonáshozMICROCHIP-CoreFPU-Cor-Lebegőpontos-Egység- (9)Szimuláció (Tegyen fel egy kérdést)
Szimulációk futtatásához a magkonfigurációs ablakban válassza a Felhasználói tesztpad lehetőséget. A CoreFPU létrehozása után a szintézis előtti tesztpad hardverleíró nyelve (HDL) elindul. files Libero-ba vannak telepítve.

Szimulációs hullámformák (Tegyen fel kérdést)
Ez a szakasz a CoreFPU szimulációs hullámformáit tárgyalja.
A következő ábrák a fixpontos-lebegőpontos átalakítás hullámformáját mutatják mind 32 bites, mind 64 bites rendszerben.MICROCHIP-CoreFPU-Cor-Lebegőpontos-Egység- (10)

MICROCHIP-CoreFPU-Cor-Lebegőpontos-Egység- (11) MICROCHIP-CoreFPU-Cor-Lebegőpontos-Egység- (12) MICROCHIP-CoreFPU-Cor-Lebegőpontos-Egység- (13)

Rendszerintegráció
A következő ábrán egy exampa mag használatának példája. Ebben a példábanampA tervezési UART-ot kommunikációs csatornaként használják a terv és a gazdagép között. Az ain és bin jelek (egyenként 32 bites vagy 64 bites szélességűek) a terv bemenetei az UART-ból. Miután a CoreFPU megkapja a di_valid jelet, kiszámítja az eredményt. Az eredmény kiszámítása után a do_valid jel magas szintre kerül, és az eredményt (aout/pout adatokat) a kimeneti pufferben tárolja. Ugyanez az eljárás alkalmazható konverziós és aritmetikai műveletekre is. Konverziós műveletekhez csak az ain bemenet elegendő, míg aritmetikai műveletekhez mind az ain, mind a bin bemenet szükséges. Az aout kimenet engedélyezett a konverziós műveletekhez, a pout port pedig a aritmetikai műveletekhez.
ábra 4-16. Voltampa CoreFPU rendszer része

MICROCHIP-CoreFPU-Cor-Lebegőpontos-Egység- (14)

 

  1. Szintézis (Kérdés feltevése)
    A CoreFPU-n történő szintézis futtatásához állítsa a tervezési gyökeret az IP komponens példányra, és a Libero tervezési folyamatpanelen futtassa a Szintézis eszközt.
    Helyszín és útvonal (Kérdés feltevése)
    A terv szintetizálása után futtassa a Place-and-Route eszközt. A CoreFPU nem igényel speciális place-and-route beállításokat.
  2. Felhasználói tesztpad (Kérdés feltevése)
    A CoreFPU IP kiadáshoz egy felhasználói tesztpad tartozik. Ezzel a tesztpaddal ellenőrizheti a CoreFPU funkcionális viselkedését.

A felhasználói tesztpad egyszerűsített blokkdiagramja a következő ábrán látható. A felhasználói tesztpad a konfigurált CoreFPU tervet (UUT) példányosítja, és tartalmazza a viselkedési tesztadat-generátort, a szükséges órajelet és a visszaállító jeleket.
4-17. ábra: CoreFPU felhasználói tesztkörnyezet

MICROCHIP-CoreFPU-Cor-Lebegőpontos-Egység- (15)Fontos: A ModelSim szimulátorban monitorozni kell a kimeneti jeleket, lásd a Szimuláció részt.

További hivatkozások (Tegyen fel kérdést)
Ez a szakasz további információk listáját tartalmazza.
A szoftverrel, eszközökkel és hardverrel kapcsolatos frissítésekért és további információkért látogasson el a következő oldalra

Szellemi tulajdon oldalai a Microchip FPGA-kon és PLD-ken webtelek.

  1. Ismert problémák és megkerülő megoldások (Tegyen fel kérdést)
    A CoreFPU v3.0-hoz nincsenek ismert problémák és kerülő megoldások.
  2. Megszűnt funkciók és eszközök (Tegyen fel kérdést)
    Ebben az IP-kiadásban nincsenek megszűnt funkciók és eszközök.

Szójegyzék

Az alábbiakban a dokumentumban használt kifejezések és definíciók listája található.
6-1. táblázat: Kifejezések és definíciók

Term Meghatározás
FPU Lebegőpontos egység
FP HOZZÁADÁS Lebegőpontos összeadás
FP SUB Lebegőpontos kivonás
FP MULT Lebegőpontos szorzás

Megoldott problémák 
Az alábbi táblázat felsorolja a különböző CoreFPU kiadásokhoz kapcsolódó összes megoldott problémát.

7-1. táblázat. Megoldott problémák

Kiadás Leírás
3.0 Az alábbiakban a v3.0 kiadásban megoldott összes probléma listája látható:

Ügyszám: 01420387 és 01422128

Hozzáadtuk a kerekítési séma logikáját (kerekítés a legközelebbi páros számra).

2.1 Az alábbiakban a v2.1 kiadásban megoldott összes probléma listája látható:
A tervezés problémákba ütközik a duplikált modulok jelenléte miatt, amikor több magot példányosítanak.
A CoreFPU IP-példány átnevezése „Nincs meghatározva modul” hibát eredményez.
1.0 Kezdeti kiadás

Eszközerőforrás-kihasználás és teljesítmény

A CoreFPU makró az alábbi táblázatban felsorolt ​​családokban van implementálva.
8-1. táblázat. FPU PolarFire egység eszközkihasználtsága 32 bites rendszeren

FPGA-források Hasznosítás
Család 4LUT DFF Teljes Matematikai blokk Eszköz Százaléktage Teljesítmény Látencia
Fixpontosról lebegőpontosra
PolarFire® 260 104 364 0 MPF300T 0.12 310 MHz 3
Lebegőpontosról fixpontosra
PolarFire 591 102 693 0 MPF300T 0.23 160 MHz 3
Lebegőpontos összeadás
PolarFire 1575 1551 3126 0 MPF300T 1.06 340 MHz 16
Lebegőpontos kivonás
PolarFire 1561 1549 3110 0 MPF300T 1.04 345 MHz 16
Lebegőpontos szorzás
PolarFire 465 847 1312 4 MPF300T 0.44 385 MHz 14
FPGA-források Hasznosítás
Család 4LUT DFF Teljes Matematikai blokk Eszköz Százaléktage Teljesítmény Látencia
Fixpontosról lebegőpontosra
RTG4™ 264 104 368 0 RT4G150 0.24 160 MHz 3
Lebegőpontosról fixpontosra
RTG4 439 112 551 0 RT4G150 0.36 105 MHz 3
Lebegőpontos összeadás
RTG4 1733 1551 3284 0 RT4G150 1.16 195 MHz 16
Lebegőpontos kivonás
RTG4 1729 1549 3258 0 RT4G150 1.16 190 MHz 16
Lebegőpontos szorzás
RTG4 468 847 1315 4 RT4G150 0.87 175 MHz 14
FPGA-források Hasznosítás
Család 4LUT DFF Teljes Matematikai blokk Eszköz Százaléktage Teljesítmény Látencia
Fixpontosról lebegőpontosra
PolarFire® 638 201 849 0 MPF300T 0.28 305 MHz 3
Lebegőpontosról fixpontosra
PolarFire 2442 203 2645 0 MPF300T 0.89 110 MHz 3
Lebegőpontos összeadás
PolarFire 5144 4028 9172 0 MPF300T 3.06 240 MHz 16
Lebegőpontos kivonás
PolarFire 5153 4026 9179 0 MPF300T 3.06 250 MHz 16
Lebegőpontos szorzás
PolarFire 1161 3818 4979 16 MPF300T 1.66 340 MHz 27
FPGA-források Hasznosítás
Család 4LUT DFF Teljes Matematikai blokk Eszköz Százaléktage Teljesítmény Látencia
Fixpontosról lebegőpontosra
RTG4™ 621 201 822 0 RT4G150 0.54 140 MHz 3
Lebegőpontosról fixpontosra
RTG4 1114 203 1215 0 RT4G150 0.86 75 MHz 3
Lebegőpontos összeadás
RTG4 4941 4028 8969 0 RT4G150 5.9 140 MHz 16
Lebegőpontos kivonás
RTG4 5190 4026 9216 0 RT4G150 6.07 130 MHz 16
Lebegőpontos szorzás
RTG4 1165 3818 4983 16 RT4G150 3.28 170 MHz 27

Fontos: A frekvencia növeléséhez válassza az Újraidőzítés engedélyezése opciót a szintézis beállításokban.

Revíziótörténet

A felülvizsgálati előzmények leírják a dokumentumban végrehajtott változtatásokat. A változtatások átdolgozásonként vannak felsorolva, a legfrissebb kiadványtól kezdve.

MICROCHIP-CoreFPU-Cor-Lebegőpontos-Egység- (1)

Microchip FPGA támogatás

A Microchip FPGA termékcsoport termékeit különféle támogatási szolgáltatásokkal támogatja, beleértve az Ügyfélszolgálatot, az Ügyfél műszaki támogatási központját, stb webtelephelye és világszerte működő értékesítési irodái. Az ügyfeleknek azt javasoljuk, hogy látogassák meg a Microchip online forrásait, mielőtt kapcsolatba lépnének az ügyfélszolgálattal, mivel nagyon valószínű, hogy kérdéseiket már megválaszolták.
Lépjen kapcsolatba a Műszaki Támogatási Központtal a következőn keresztül webwebhely a címen www.microchip.com/support. Említse meg az FPGA-eszköz cikkszámát, válassza ki a megfelelő házkategóriát, és töltse fel a tervet files miközben létrehoz egy műszaki támogatási ügyet.
Lépjen kapcsolatba az Ügyfélszolgálattal a nem műszaki terméktámogatásért, mint például a termékárak, a termékfrissítések, a frissítési információk, a rendelés állapota és az engedélyezés.

  • Észak-Amerikából hívja a 800.262.1060 számot
  • A világ többi részéről hívja a 650.318.4460 számot
  • Fax, a világ bármely pontjáról, 650.318.8044 XNUMX XNUMX

Mikrochip információk

Védjegyek
A „Microchip” név és logó, az „M” logó és más nevek, logók és márkák a Microchip Technology Incorporated vagy leányvállalatai és/vagy leányvállalatai bejegyzett és nem bejegyzett védjegyei az Egyesült Államokban és/vagy más országokban („Microchip” Védjegyek”). A Microchip védjegyekkel kapcsolatos információk a következő címen találhatók: https://www.microchip.com/en-us/about/legal-information/microchip-trademarks
ISBN: 979-8-3371-0947-3

Jogi közlemény
Ez a kiadvány és az itt található információk csak Microchip termékekkel használhatók, ideértve a Microchip termékek tervezését, tesztelését és integrálását az alkalmazással. Ezen információk bármilyen más módon történő felhasználása sérti ezeket a feltételeket. Az eszközalkalmazásokkal kapcsolatos információk csak az Ön kényelmét szolgálják, és frissítések válthatják fel azokat. Az Ön felelőssége annak biztosítása, hogy alkalmazása megfeleljen az előírásoknak. További támogatásért forduljon a helyi Microchip értékesítési irodához, vagy kérjen további támogatást a következő címen www.microchip.com/en-us/support/design-help/client-support-services

EZT AZ INFORMÁCIÓT A MICROCHIP „AHOGY VAN”. A MICROCHIP NEM NYILATKOZAT SEMMILYEN KIFEJEZETT VAGY VÉLEMEZTETETT, ÍRÁSBAN VAGY SZÓBELI, TÖRVÉNYI VAGY EGYÉBEN AZ INFORMÁCIÓKAL KAPCSOLATOS GARANCIÁT, BELEÉRTVE, DE NEM KIZÁRÓLAG BÁRMILYEN VÉLEMEZTETT GARANCIÁT. MEGHATÁROZOTT CÉLRA VALÓ ALKALMAZÁS, VAGY ÁLLAPOTÁHOZ, MINŐSÉGÉVEL VAGY TELJESÍTMÉNYÉVEL KAPCSOLATOS GARANCIA.

A MICROCHIP SEMMILYEN ESETBEN NEM VÁLLAL FELELŐSSÉGET SEMMILYEN KÖZVETETT, KÜLÖNLEGES, BÜNTETŐ, VÉLETLENES VAGY KÖVETKEZMÉNYES VESZTESÉGÉRT, KÁRÉRT, KÖLTSÉGÉRT VAGY KÖLTSÉGEKÉRT, AKÁRMIKOR KAPCSOLÓDIK AZ INFORMÁCIÓKHOZ VAGY AZ EGYES ALKALMAZÁSÁVAL, TÁJÉKOZTATÁST A LEHETŐSÉGRŐL, VAGY A KÁROK ELŐRELÁTHATÓAK. A TÖRVÉNY ÁLTAL ENGEDÉLYEZETT TELJES MÉRTÉKÉBEN A MICROCHIP TELJES FELELŐSSÉGE AZ INFORMÁCIÓKAL VAGY FELHASZNÁLÁSÁVAL KAPCSOLATOS ÖSSZES KÖVETELÉSRE VONATKOZÓAN NEM MEGHAJLJA A DÍJAK ÖSSZEGÉT, AMENNYIBEN VAN SZÜKSÉGES, AMELYEKET ÖN AZ MICROFORMÁTUMÉRT FIZETTE.

A Microchip eszközök életfenntartó és/vagy biztonsági alkalmazásokban történő használata teljes mértékben a vevő kockázatára történik, és a vevő vállalja, hogy megvédi, kártalanítja és ártalmatlanná teszi a Microchipet az ilyen használatból eredő károk, követelések, perek vagy költségek ellen. A Microchip szellemi tulajdonjogai alapján semmilyen licencet nem adnak át, sem hallgatólagosan, sem más módon, hacsak másként nem rendelkeznek.

Mikrochip eszközök kódvédelmi funkciója
Vegye figyelembe a Microchip termékek kódvédelmi funkciójának alábbi részleteit:

  • A Microchip termékek megfelelnek az adott Microchip Adatlapon található előírásoknak.
  • A Microchip úgy véli, hogy termékcsaládja biztonságos, ha rendeltetésszerűen, a működési előírásokon belül és normál körülmények között használják.
  • A Microchip értékeli és agresszíven védi szellemi tulajdonjogait. A Microchip termékek kódvédelmi funkcióinak megsértésére irányuló kísérletek szigorúan tilosak, és sérthetik a Digital Millennium Copyright Act-et.
  • Sem a Microchip, sem más félvezetőgyártó nem tudja garantálni kódja biztonságát. A kódvédelem nem jelenti azt, hogy garantáljuk a termék „törhetetlenségét”. A kódvédelem folyamatosan fejlődik. A Microchip elkötelezett amellett, hogy folyamatosan fejlessze termékei kódvédelmi funkcióit.

Dokumentumok / Források

MICROCHIP CoreFPU Core lebegőpontos egység [pdf] Felhasználói útmutató
v3.0, v2.1, v2.0, v1.0, CoreFPU Core lebegőpontos egység, Core lebegőpontos egység, Lebegőpontos egység, Pont egység

Hivatkozások

Hagyj megjegyzést

E-mail címét nem tesszük közzé. A kötelező mezők meg vannak jelölve *