MICROCHIP -logo

Unitat de coma flotant CoreFPU de MICROCHIP

MICROCHIP-CoreFPU-Cor-Floating-Point-Unit-produxt

 

Introducció 

  • The Core Floating Point Unit (CoreFPU) is designed for floating-point arithmetic and conversion operations, for single and double precision floating-point numbers. CoreFPU supports fixed-point to floating-point and floating-point to fixed-point conversions and floating-point addition, subtraction, and multiplication operations. The IEEE® Standard for Floating-Point Arithmetic (IEEE 754) is a technical standard for floating-point computation.
  • Important: CoreFPU supports calculations with normalized numbers only, and only the Verilog language is supported; VHDL is not supported.

Resum
La taula següent proporciona un resum de les característiques de CoreFPU.

Taula 1. Característiques de CoreFPU 

Versió bàsica Aquest document s'aplica a CoreFPU v3.0.
Famílies de dispositius compatibles
  • SoC PolarFire®
  • PolarFire
  • RTG4™
Flux d'eines compatibles Requereix Libero® SoC v12.6 o versions posteriors.
Llicència CoreFPU is not license locked.
Instruccions d'instal·lació CoreFPU must be installed to the IP Catalog of Libero SoC automatically through the IP Catalog update function. Alternatively, CoreFPU could be manually downloaded from the catalog. Once the IP core is

installed, it is configured, generated and instantiated within SmartDesign for inclusion in the project.

Ús i rendiment del dispositiu A summary of utilization and performance information for CoreFPU is listed in Device Resource Utilization and Performance.

Informació del registre de canvis de CoreFPU
Aquesta secció ofereix una descripció completaview de les funcions recentment incorporades, començant per la versió més recent. Per obtenir més informació sobre els problemes resolts, consulteu la secció Problemes resolts.

Versió Què hi ha de nou
v3.0 Implemented additional output flags to enhance the accuracy of the IP
v2.1 Added the double precision feature
v2.0 Updated the timing waveforms
v1.0 First production release of CoreFPU

1. Característiques

CoreFPU té les següents característiques clau:

  • Supports Single and Double Precision Floating Numbers as per IEEE-754 Standard
  • Supports Conversions as listed:
    • Conversió de coma fixa a coma flotant
    • Floating-point to Fixed-point conversion
  • Supports Arithmetic Operations as listed:
    • Suma de coma flotant
    • Resta de coma flotant
    • Multiplicació per coma flotant
  • Provides the Rounding Scheme (Round to nearest even) for the Arithmetic Operations only
  • Provides Flags for Overflow, Underflow, Infinity (Positive Infinity, Negative Infinity), Quiet NaN (QNaN) and Signalling NaN (SNaN) for Floating-Point Numbers.
  • Supports Fully pipelined implementation of Arithmetic Operations
  • Provides Provision to configure the Core for Design Requirements

Descripció funcional

  • L'estàndard IEEE per a l'aritmètica de coma flotant (IEEE 754) és un estàndard tècnic per al càlcul de coma flotant. El terme coma flotant fa referència al punt de la base del nombre (punt decimal o punt binari), que es col·loca en qualsevol lloc respecte als dígits significatius del nombre.
    Un nombre de coma flotant s'expressa normalment en notació científica, amb una fracció (F) i un exponent (E) d'una determinada base (r), en la forma de F × r^E. Els nombres decimals utilitzen una base de 10 (F × 10^E); mentre que els nombres binaris utilitzen una base de 2 (F × 2^E).
  • La representació del nombre de coma flotant no és única. Per exempleampPer exemple, el nombre 55.66 es representa com a 5.566 × 10^1, 0.5566 × 10^2, 0.05566 × 10^3, etc. La part fraccionària està normalitzada. En la forma normalitzada, només hi ha un dígit diferent de zero abans del punt de la base. Per exempleampÉs a dir, el nombre decimal 123.4567 es normalitza com a 1.234567 × 10^2; el nombre binari 1010.1011B es normalitza com a 1.0101011B × 2^3.
  • És important tenir en compte que els nombres de coma flotant pateixen pèrdua de precisió quan es representen amb un nombre fix de bits (per exemple,ample, 32-bit or 64-bit). This is because there are an infinite number of real numbers (even within a small range from 0.0 to 0.1). On the other hand, an
    n- bit binary pattern represents a finite 2^n distinct numbers. Hence, not all the real numbers are represented. The nearest approximation is used instead, which results in the loss of accuracy.

The single precision floating-point number is represented as follows:

  • Sign bit: 1-bit
  • Exponent width: 8 bits
  • Significand precision: 24 bits (23 bits are explicitly stored)

Figura 2-1. Trama de 32 bits

MICROCHIP-CoreFPU-Cor-Floating-Point-Unit- (2)The double precision floating-point number is represented as follows:

  • Sign bit: 1-bit
  • Exponent width: 11 bits
  • Significand precision: 53 bits (52 bits are explicitly stored)

Figura 2-2. Trama de 64 bits MICROCHIP-CoreFPU-Cor-Floating-Point-Unit- (3)El CoreFPU és la integració de nivell superior dels dos mòduls de conversió (de coma fixa a coma flotant i de coma flotant a coma fixa) i tres operacions aritmètiques (FP ADD, FP SUB i FP MULT). L'usuari pot configurar qualsevol de les operacions segons els requisits, de manera que els recursos s'utilitzin per a l'operació seleccionada.
La figura següent mostra el diagrama de blocs de nivell superior de la CoreFPU amb els ports.

Figura 2-3. Diagrama de blocs dels ports CoreFPU

MICROCHIP-CoreFPU-Cor-Floating-Point-Unit- (4)The following table lists the width of the Input and Output ports. Table 2-1. Input and Output Port Width

Senyal Amplada de precisió única Double Precision Width
ain [31:0] [63:0]
paperera [31:0] [63:0]
fora [31:0] [63:0]
morros [31:0] [63:0]

Fixed-Point to Floating-Point (Conversion)

El CoreFPU configurat com a de coma fixa a coma flotant infereix el mòdul de conversió de coma fixa a coma flotant. L'entrada (ain) a CoreFPU és qualsevol nombre de coma fixa que contingui els bits enters i fraccionaris. El configurador CoreFPU té les opcions per seleccionar les amplades d'entrada d'enter i fracció. L'entrada és vàlida en el senyal di_valid i la sortida és vàlida en do_valid. La sortida (aout) de l'operació de coma fixa a coma flotant és en format de coma flotant de simple o doble precisió.
ExampL'operació de conversió de coma fixa a coma flotant es mostra a la taula següent.
Taula 2-2. Example per a la conversió de coma fixa a coma flotant

Nombre de coma fixa Nombre de coma flotant
ain Nombre sencer Fracció fora Signar Exponent Mantissa
0x12153524 (32-bit) 00010010000101010 011010100100100 0x4610a9a9 0 10001100 00100001010100110101001
0x0000000000008CCC

(64 bits)

0000000000000000000000000000000000000000000000001 000110011001100 0x3FF199999999999A 0 01111111111 0001100110011001100110011001100110011001100110011010

Floating-Point to Fixed-Point (Conversion) 
El CoreFPU configurat com a de coma flotant a coma fixa infereix el mòdul de conversió de coma flotant a coma fixa. L'entrada (ain) al CoreFPU és qualsevol nombre de coma flotant de simple o doble precisió i produeix una sortida (aout) en format de coma fixa que conté bits enters i fraccionaris. L'entrada és vàlida en el senyal di_valid i la sortida és vàlida en do_valid. El configurador CoreFPU té les opcions per seleccionar les amplades d'enter i fracció de sortida.
ExampL'operació de conversió de coma flotant a coma fixa es mostra a la taula següent.

Taula 2-3. Example per a la conversió de coma flotant a coma fixa

Nombre de coma flotant Nombre de coma fixa
ain Signar Exponent Mantissa fora Nombre sencer Fracció
0x41bd6783 (32-bit) 0 10000011 01111010110011110000011 0x000bd678 00000000000010111 101011001111000
0x4002094c447c30d3

(64 bits)

0 10000000000 0010000010010100110001000100011111000011000011010011 0 x 0000000000012095 0000000000000000000000000000000000000000000000010 010000010010101

Floating-Point Addition (Arithmetic Operation)
CoreFPU configured as FP ADD infers the floating-point addition module. It adds the two floating-point numbers (ain and bin) and provides the output (pout) in floating-point format. The input and output are single or double precision floating-point numbers. The input is valid on di_valid signal and output is valid on do_valid. The core produce ovfl_fg (Overflow), qnan_fg (Quiet Not a Number), snan_fg (Signalling Not a Number), pinf_fg(Positive Infinity), and ninf_fg (Negative Infinity) flags based on the addition operation.
ExampEls fitxers per a l'operació de suma de coma flotant es llisten a les taules següents.
Taula 2-4. Example per a l'operació de suma de coma flotant (32 bits)

Valor de coma flotant Signar Exponent Mantissa
Entrada de coma flotant 1 ain (0x4e989680) 0 10011101 00110001001011010000000
Entrada de coma flotant 2 bin (0x4f191b40) 0 10011110 00110010001101101000000
Sortida de suma de coma flotant pout (0x4f656680) 0 10011110 11001010110011010000000

Taula 2-5. Example per a l'operació de suma de coma flotant (64 bits)

Valor de coma flotant Signar Exponent Mantissa
Floating-point input 1

ain (0x3ff4106ee30caa32)

0 01111111111 0100000100000110111011100011000011001010101000110010
Floating-point input 2

bin (0x40020b2a78798e61)

0 10000000000 0010000010110010101001111000011110011000111001100001
Floating-point addition output pout (0x400c1361e9ffe37a) 0 10000000000 1100000100110110000111101001111111111110001101111010

Floating-Point Subtraction (Arithmetic Operation) 
El CoreFPU configurat com a FP SUB infereix el mòdul de subtracció de coma flotant. Resta els dos nombres de coma flotant (ain i bin) i proporciona la sortida (pout) en format de coma flotant. L'entrada i la sortida són nombres de coma flotant de simple o doble precisió. L'entrada és vàlida en el senyal di_valid i la sortida és vàlida en do_valid. El nucli produeix els senyaladors ovfl_fg (Overflow), unfl_fg (Underflow), qnan_fg (Quiet Not a Number), snan_fg (Signalling Not a Number), pinf_fg (Positive Infinity) i ninf_fg (Negative Infinity) basats en l'operació de subtracció.
ExampEls fitxers per a l'operació de resta de coma flotant es llisten a les taules següents.
Taula 2-6. Example per a l'operació de subtracció de coma flotant (32 bits)

Valor de coma flotant Signar Exponent Mantissa
Entrada de coma flotant 1 ain (0xac85465f) 1 01011001 00001010100011001011111
Entrada de coma flotant 2 bin (0x2f516779) 0 01011110 10100010110011101111001
Sortida de subtracció de coma flotant pout (0xaf5591ac) 1 01011110 10101011001000110101011
Valor de coma flotant Signar Exponent Mantissa
Floating-point input 1

ain (0x405569764adff823)

0 10000000101 0101011010010111011001001010110111111111100000100011
Floating-point input 2

bin (0x4057d04e78dee3fc)

0 10000000101 0111110100000100111001111000110111101110001111111100
Floating-point subtraction output pout (0xc02336c16ff75ec8) 1 10000000010 0011001101101100000101101111111101110101111011001000

Floating-Point Multiplication (Arithmetic Operation)
El CoreFPU configurat com a FP MULT infereix el mòdul de multiplicació de coma flotant. Multiplica els dos nombres de coma flotant (ain i bin) i proporciona la sortida (pout) en format de coma flotant. L'entrada i la sortida són nombres de coma flotant de simple o doble precisió. L'entrada és vàlida en el senyal di_valid i la sortida és vàlida en do_valid. El nucli produeix els senyaladors ovfl_fg (Overflow), unfl_fg (Underflow), qnan_fg (Quiet Not a Number), snan_fg (Signalling Not a Number), pinf_fg (Positive Infinity) i ninf_fg (Negative Infinity) basats en l'operació de multiplicació.
ExampEls fitxers per a l'operació de multiplicació en coma flotant es llisten a les taules següents.
Taula 2-8. Example per a l'operació de multiplicació de coma flotant (32 bits)

Valor de coma flotant Signar Exponent Mantissa
Entrada de coma flotant 1 ain (0x1ec7a735) 0 00111101 10001111010011100110101
Entrada de coma flotant 2 bin (0x6ecf15e8) 0 11011101 10011110001010111101000
Sortida de multiplicació de coma flotant pout (0x4e21814a) 0 10011100 01000011000000101001010
Valor de coma flotant Signar Exponent Mantissa
Floating-point input 1

ain (0x40c1f5a9930be0df)

0 10000001100 0001111101011010100110010011000010111110000011011111
Floating-point input 2

bin (0x400a0866c962b501)

0 10000000000 1010000010000110011011001001011000101011010100000001
Floating-point multiplication output pout (0x40dd38a1c3e2cae9) 0 10000001101 1101001110001010000111000011111000101100101011101001

 Truth Table for Addition and Subtraction 
The following truth tables list the values for addition and subtraction operation. Table 2-10. Truth Table for Addition

Dades A Dades B Sign Bit Resultat Desbordament Desbordament inferior 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
zero zero 0 POSZERO 0 0 0 0 0 0
zero posfinit(y) 0 posfinit(y) 0 0 0 0 0 0
zero negfinit(y) 1 negfinit(y) 0 0 0 0 0 0
zero posinfinit 0 posinfinit 0 0 0 0 1 0
zero neginfinit 1 neginfinit 0 0 0 0 0 1
posfinit(y) zero 0 posfinit(y) 0 0 0 0 0 0
posfinit posinfinit 0 posinfinit 0 0 0 0 1 0
Taula 2-10. Truth Table for Addition (continued)
Dades A Dades B Sign Bit Resultat Desbordament Desbordament inferior SNaN QNaN PINF NINF
posfinit neginfinit 1 neginfinit 0 0 0 0 0 1
negfinit(y) zero 1 negfinit(y) 0 0 0 0 0 0
negfinit posinfinit 0 posinfinit 0 0 0 0 1 0
negfinit neginfinit 1 neginfinit 0 0 0 0 0 1
posinfinit zero 0 posinfinit 0 0 0 0 1 0
posinfinit posfinit 0 posinfinit 0 0 0 0 1 0
posinfinit negfinit 0 posinfinit 0 0 0 0 1 0
posinfinit posinfinit 0 posinfinit 0 0 0 0 1 0
posinfinit neginfinit 0 POSQNaN 0 0 0 1 0 0
neginfinit zero 1 neginfinit 0 0 0 0 0 1
neginfinit posfinit 1 neginfinit 0 0 0 0 0 1
neginfinit negfinit 1 neginfinit 0 0 0 0 0 1
neginfinit posinfinit 0 POSQNaN 0 0 0 1 0 0
neginfinit neginfinit 1 neginfinit 0 0 0 0 0 1
posfinit posfinit 0 posfinit 0 0 0 0 0 0
posfinit posfinit 0 posinfinit 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 neginfinit 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
Dades A Dades B Sign Bit Resultat Desbordament Desbordament inferior 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
zero zero 0 POSZERO 0 0 0 0 0 0
zero posfinit(y) 1 negfinit(y) 0 0 0 0 0 0
zero negfinit(y) 0 posfinit(y) 0 0 0 0 0 0
zero posinfinit 1 neginfinit 0 0 0 0 0 1
zero neginfinit 0 posinfinit 0 0 0 0 1 0
posfinit(y) zero 0 posfinit(y) 0 0 0 0 0 0
posfinit posinfinit 1 neginfinit 0 0 0 0 0 1
posfinit neginfinit 0 posinfinit 0 0 0 0 1 0
negfinit(y) zero 1 negfinit(y) 0 0 0 0 0 0
negfinit posinfinit 1 neginfinit 0 0 0 0 0 1
Taula 2-11. Truth Table for Subtraction (continued)
Dades A Dades B Sign Bit Resultat Desbordament Desbordament inferior SNaN QNaN PINF NINF
negfinit neginfinit 0 posinfinit 0 0 0 0 1 0
posinfinit zero 0 posinfinit 0 0 0 0 1 0
posinfinit posfinit 0 posinfinit 0 0 0 0 1 0
posinfinit negfinit 0 posinfinit 0 0 0 0 1 0
posinfinit posinfinit 0 POSQNaN 0 0 0 1 0 0
posinfinit neginfinit 0 posinfinit 0 0 0 0 1 0
neginfinit zero 1 neginfinit 0 0 0 0 0 1
neginfinit posfinit 1 neginfinit 0 0 0 0 0 1
neginfinit negfinit 1 neginfinit 0 0 0 0 0 1
neginfinit posinfinit 1 neginfinit 0 0 0 0 0 1
neginfinit neginfinit 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 posinfinit 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 neginfinit 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

Important:

  • They in the preceding tables denotes any number.
  • The in the preceding tables denotes a don’t care condition.

Truth Table for Multiplication 
La taula de veritat següent enumera els valors de l'operació de multiplicació.

Taula 2-12. Taula de veritat per a la multiplicació

Dades A Dades B Sign Bit Resultat Desbordament Desbordament inferior 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
zero zero 0 POSZERO 0 0 0 0 0 0
zero posfinit 0 POSZERO 0 0 0 0 0 0
zero negfinit 0 POSZERO 0 0 0 0 0 0
zero posinfinit 0 POSQNaN 0 0 0 1 0 0
zero neginfinit 0 POSQNaN 0 0 0 1 0 0
Taula 2-12. Truth Table for Multiplication (continued)
Dades A Dades B Sign Bit Resultat Desbordament Desbordament inferior SNaN QNaN PINF NINF
posfinit zero 0 POSZERO 0 0 0 0 0 0
posfinit posinfinit 0 posinfinit 0 0 0 0 1 0
posfinit neginfinit 1 neginfinit 0 0 0 0 0 1
negfinit zero 0 POSZERO 0 0 0 0 0 0
negfinit posinfinit 1 neginfinit 0 0 0 0 0 1
negfinit neginfinit 0 posinfinit 0 0 0 0 1 0
posinfinit zero 0 POSQNaN 0 0 0 1 0 0
posinfinit posfinit 0 posinfinit 0 0 0 0 1 0
posinfinit negfinit 1 neginfinit 0 0 0 0 0 1
posinfinit posinfinit 0 posinfinit 0 0 0 0 1 0
posinfinit neginfinit 1 neginfinit 0 0 0 0 0 1
neginfinit zero 0 POSQNaN 0 0 0 1 0 0
neginfinit posfinit 1 neginfinit 0 0 0 0 0 1
neginfinit negfinit 0 posinfinit 0 0 0 0 1 0
neginfinit posinfinit 1 neginfinit 0 0 0 0 0 1
neginfinit neginfinit 0 posinfinit 0 0 0 0 1 0
posfinit posfinit 0 posfinit 0 0 0 0 0 0
posfinit posfinit 0 posinfinit 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 neginfinit 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 neginfinit 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 posinfinit 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

Important:

Sign Bit ‘0’ defines positive output and ‘1’ defines negative output.
The x in the preceding table denotes don’t care condition.

Paràmetres i senyals d'interfície de CoreFPU
En aquesta secció es tracten els paràmetres de la configuració del CoreFPU Configurator i els senyals d'E/S.

Paràmetres de la GUI de configuració 
Hi ha diverses opcions configurables que s'apliquen a la unitat FPU, tal com es mostra a la taula següent. Si es requereix una configuració diferent de la predeterminada, s'utilitza el quadre de diàleg de configuració per seleccionar els valors adequats per a l'opció configurable.

Taula 3-1. Paràmetres de la GUI de configuració de CoreFPU 

Nom del paràmetre Per defecte Descripció
Precisió Solter Select the operation as required:

Single Precision
Double Precision

Tipus de conversió Conversió de coma fixa a coma flotant Select the operation as required:
  • Conversió de coma fixa a coma flotant
  • Floating-point to Fixed-point conversion
  • Suma de coma flotant
  • Resta de coma flotant
  • Multiplicació per coma flotant
Input Fraction Width1 15 Configures the fractional point in the Input ain and bin signals

Valid range is 31–1

Output Fraction Width2 15 Configures the fractional point in the Output aout signals

Valid range is 51–1

Important:

  1. This parameter is configurable only during fixed-point to floating-point conversion.
  2. This parameter is configurable only during floating-point to fixed-point conversion.

Senyals d'entrada i sortida (fer una pregunta)
La taula següent enumera els senyals de port d'entrada i sortida de CoreFPU.

Taula 3-2. Descripció del port 

Nom del senyal Amplada Tipus Descripció
clk 1 Entrada Main system clock
primer 1 Entrada Active-low asynchronous reset
di_vàlid 1 Entrada Active-high input valid

This signal indicates that the data present on ain[31:0], ain[63:0] and bin[31:0], bin[63:0] is valid.

ain 32/64 Entrada A Input Bus (It is used for all operations)
paperera1 32/64 Entrada B Input Bus (It is used for arithmetic operations only)
fora2 32/64 Sortida Output value when fixed to floating-point or floating to fixed-point conversion operations are selected.
morros1 32/64 Sortida Output value when addition, subtraction, or multiplication operations are selected.
Taula 3-2. Port Description (continued)
Nom del senyal Amplada Tipus Descripció
do_valid 1 Sortida Active-high signal

Aquest senyal indica que les dades presents al bus de dades pout/aout són vàlides.

ovfl_fg3 1 Sortida Active-high signal

Aquest senyal indica el desbordament durant les operacions de coma flotant.

unfl_fg 1 Sortida Active-high signal

This Signal indicates the underflow during floating point operations.

qnan_fg3 1 Sortida Active-high signal

This signal indicates the Quiet Not a Number (QNaN) during floating-point operations.

snan_fg 1 Sortida Active-high signal

Aquest senyal indica el Signalling Not-a-Number (SNaN) durant les operacions de coma flotant.

pinf_fg3 1 Sortida Active-high signal

Aquest senyal indica l'infinit positiu durant les operacions de coma flotant.

ninf_fg 1 Sortida Active-high signal

Aquest senyal indica l'infinit negatiu durant les operacions de coma flotant.

Important:

  1. This port is available only for floating-point addition, subtraction, or multiplication operations.
  2. This port is available only for fixed-point to floating-point and floating-point to fixed-point conversion operations.
  3. This port is available for floating-point to fixed-point, floating-point addition, floating-point subtraction, and floating-point multiplication.

Implementació de CoreFPU a Libero Design Suite

Aquesta secció descriu la implementació de CoreFPU a Libero Design Suite.

Disseny intel·ligent 

CoreFPU està disponible per descarregar al catàleg Libero IP a través de web repositori. Un cop apareix al catàleg, el nucli s'instancia mitjançant el flux SmartDesign. Per obtenir informació sobre com utilitzar SmartDesign per configurar, connectar i generar nuclis, consulteu l'ajuda en línia de Libero SoC.
Després de configurar i generar la instància principal, la funcionalitat bàsica es simula mitjançant el banc de proves subministrat amb la CoreFPU. Els paràmetres del banc de proves s'ajusten automàticament a la configuració de la CoreFPU. La CoreFPU s'instancia com a component d'un disseny més gran.
Figura 4-1. Instància de SmartDesign CoreFPU per a operacions aritmètiques

MICROCHIP-CoreFPU-Cor-Floating-Point-Unit- (5)Figura 4-2. Instància de SmartDesign CoreFPU per a l'operació de conversió MICROCHIP-CoreFPU-Cor-Floating-Point-Unit- (6)

 

Fixed-Point to Floating-Point Conversion
Durant la conversió de coma fixa a coma flotant, l'amplada de la fracció d'entrada és configurable. L'amplada de sortida es defineix per defecte a 32 bits per a coma flotant de simple precisió i a 64 bits per a coma flotant de doble precisió.
Per convertir de coma fixa a coma flotant, seleccioneu el tipus de conversió de coma fixa a coma flotant, tal com es mostra a la figura següent.

MICROCHIP-CoreFPU-Cor-Floating-Point-Unit- (7)De coma flotant a coma fixa 
Durant la conversió de coma flotant a coma fixa, l'amplada fraccionària de sortida és configurable i l'amplada d'entrada es defineix per defecte a 32 bits per a coma flotant de simple precisió i 64 bits per a coma flotant de doble precisió.
Per convertir de coma flotant a coma fixa, seleccioneu el tipus de conversió de coma flotant a fixa, tal com es mostra a la figura següent.
Figura 4-4. Configurador CoreFPU per a coma flotant a fix MICROCHIP-CoreFPU-Cor-Floating-Point-Unit- (8)Floating-Point Addition/Subtraction/Multiplication
During floating-point addition, subtraction, and multiplication operation, the Input Fraction Width and Output Fraction Width are not configurable as these are floating-point arithmetic operations, and the Input/Output Width is set to 32-bit single precision and 64-bit for double precision floating-point by default.
The following figure shows the CoreFPU configurator for floating point subtraction operation.

Figura 4-5. Configurador CoreFPU per a la resta de coma flotantMICROCHIP-CoreFPU-Cor-Floating-Point-Unit- (9)Simulació (fer una pregunta)
Per executar simulacions, a la finestra de configuració del nucli, seleccioneu Banc de proves d'usuari. Després de generar el CoreFPU, el banc de proves previ a la síntesi s'utilitzarà en Llenguatge de descripció de maquinari (HDL). files estan instal·lats a Libero.

Formes d'ona de simulació (feu una pregunta)
Aquesta secció tracta les formes d'ona de simulació per a CoreFPU.
Les figures següents mostren la forma d'ona de la conversió de coma fixa a coma flotant tant per a 32 bits com per a 64 bits.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)

Integració de sistemes
La figura següent mostra un example d'utilitzar el nucli. En aquest exempleampÉs a dir, la UART de disseny s'utilitza com a canal de comunicació entre el disseny i el PC amfitrió. Els senyals ain i bin (cadascun d'amplada de 32 bits o 64 bits) són les entrades al disseny des de la UART. Després que la CoreFPU rebi el senyal di_valid, calcula el resultat. Després de calcular el resultat, el senyal do_valid s'activa i emmagatzema el resultat (dades aout/pout) a la memòria intermèdia de sortida. Aquest mateix procediment s'aplica a les operacions de conversió i aritmètiques. Per a les operacions de conversió, només l'entrada ain és suficient, mentre que per a les operacions aritmètiques, es requereixen tant les entrades ain com bin. La sortida aout està habilitada per a les operacions de conversió i el port pout està habilitat per a les operacions aritmètiques.
Figura 4-16. Exampdel sistema CoreFPU

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

 

  1. Síntesi (Fes una pregunta)
    Per executar la síntesi a la CoreFPU, definiu l'arrel del disseny a la instància del component IP i, des del panell de flux de disseny de Libero, executeu l'eina Síntesi.
    Lloc i ruta (Fes una pregunta)
    After the design is synthesized, run the Place-and-Route tool. CoreFPU requires no special placeand- route settings.
  2. Banc de proves d'usuari (feu una pregunta)
    Amb la versió CoreFPU IP es proporciona un banc de proves d'usuari. Amb aquest banc de proves, podeu verificar el comportament funcional de CoreFPU.

A simplified block diagram of the user testbench is shown in the following figure. The user testbench instantiates the Configured CoreFPU design (UUT), and includes behavioral test data generator, necessary clock, and reset signals.
Figura 4-17. Banc de proves d'usuari de CoreFPU

MICROCHIP-CoreFPU-Cor-Floating-Point-Unit- (15)Important: You have to monitor the output signals in ModelSim simulator, see Simulation section.

Referències addicionals (Feu una pregunta)
Aquesta secció proporciona una llista amb informació addicional.
Per obtenir actualitzacions i informació addicional sobre el programari, els dispositius i el maquinari, visiteu el

Pàgines de propietat intel·lectual sobre els FPGA i PLD Microchip weblloc.

  1. Known Issues and Workarounds (Ask a Question)
    No hi ha problemes ni solucions conegudes per a CoreFPU v3.0.
  2. Discontinued Features and Devices (Ask a Question)
    No hi ha funcions ni dispositius descontinuats amb aquesta versió IP.

Glossari

La següent és la llista de termes i definicions utilitzats en el document.
Taula 6-1. Termes i definicions

Terme Definició
FPU Unitat de coma flotant
FP ADD Suma de coma flotant
FP SUB Resta de coma flotant
FP MULT Multiplicació de coma flotant

Problemes resolts 
La taula següent enumera tots els problemes resolts per a les diverses versions de CoreFPU.

Taula 7-1. Problemes resolts

Alliberament Descripció
3.0 La següent és la llista de tots els problemes resolts a la versió v3.0:

Case Number: 01420387 and 01422128

Added the rounding scheme logic (round to the nearest even number).

2.1 La següent és la llista de tots els problemes resolts a la versió v2.1:
The design encounters issues due to the presence of duplicate modules when multiple cores are instantiated.
Renaming the CoreFPU IP instance results in an “Undefined module” error.
1.0 Alliberament inicial

Utilització i rendiment dels recursos del dispositiu

La macro CoreFPU s'implementa a les famílies que s'enumeren a la taula següent.
Taula 8-1. Utilització del dispositiu de la unitat FPU PolarFire per a 32 bits

Recursos FPGA Ús
Família 4LUT DFF Total Math Block Dispositiu Percenttage Rendiment Latència
De punt fix a punt flotant
PolarFire® 260 104 364 0 MPF300T 0.12 310 MHz 3
De coma flotant a coma fixa
PolarFire 591 102 693 0 MPF300T 0.23 160 MHz 3
Suma de coma flotant
PolarFire 1575 1551 3126 0 MPF300T 1.06 340 MHz 16
Resta de coma flotant
PolarFire 1561 1549 3110 0 MPF300T 1.04 345 MHz 16
Multiplicació de coma flotant
PolarFire 465 847 1312 4 MPF300T 0.44 385 MHz 14
Recursos FPGA Ús
Família 4LUT DFF Total Math Block Dispositiu Percenttage Rendiment Latència
De punt fix a punt flotant
RTG4™ 264 104 368 0 RT4G150 0.24 160 MHz 3
De coma flotant a coma fixa
RTG4 439 112 551 0 RT4G150 0.36 105 MHz 3
Suma de coma flotant
RTG4 1733 1551 3284 0 RT4G150 1.16 195 MHz 16
Resta de coma flotant
RTG4 1729 1549 3258 0 RT4G150 1.16 190 MHz 16
Multiplicació de coma flotant
RTG4 468 847 1315 4 RT4G150 0.87 175 MHz 14
Recursos FPGA Ús
Família 4LUT DFF Total Math Block Dispositiu Percenttage Rendiment Latència
De punt fix a punt flotant
PolarFire® 638 201 849 0 MPF300T 0.28 305 MHz 3
De coma flotant a coma fixa
PolarFire 2442 203 2645 0 MPF300T 0.89 110 MHz 3
Suma de coma flotant
PolarFire 5144 4028 9172 0 MPF300T 3.06 240 MHz 16
Resta de coma flotant
PolarFire 5153 4026 9179 0 MPF300T 3.06 250 MHz 16
Multiplicació de coma flotant
PolarFire 1161 3818 4979 16 MPF300T 1.66 340 MHz 27
Recursos FPGA Ús
Família 4LUT DFF Total Math Block Dispositiu Percenttage Rendiment Latència
De punt fix a punt flotant
RTG4™ 621 201 822 0 RT4G150 0.54 140 MHz 3
De coma flotant a coma fixa
RTG4 1114 203 1215 0 RT4G150 0.86 75 MHz 3
Suma de coma flotant
RTG4 4941 4028 8969 0 RT4G150 5.9 140 MHz 16
Resta de coma flotant
RTG4 5190 4026 9216 0 RT4G150 6.07 130 MHz 16
Multiplicació de coma flotant
RTG4 1165 3818 4983 16 RT4G150 3.28 170 MHz 27

Important: To increase the frequency, select Enable retiming option in synthesis setting.

Historial de revisions

L'historial de revisions descriu els canvis que es van implementar al document. Els canvis s'enumeren per revisió, començant per la publicació més actual.

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

Suport de microxip FPGA

El grup de productes Microchip FPGA avala els seus productes amb diversos serveis d'assistència, inclòs el servei d'atenció al client, el centre de suport tècnic al client, un weblloc web i oficines de vendes a tot el món. Es recomana als clients que visitin els recursos en línia de Microxip abans de contactar amb el servei d'assistència, ja que és molt probable que les seves consultes ja hagin estat respostes.
Poseu-vos en contacte amb el centre d'assistència tècnica a través de weblloc a www.microchip.com/support. Esmenteu el número de peça del dispositiu FPGA, seleccioneu la categoria de cas adequada i pengeu el disseny files mentre es crea un cas de suport tècnic.
Poseu-vos en contacte amb el servei d'atenció al client per obtenir assistència no tècnica del producte, com ara preus del producte, actualitzacions del producte, informació d'actualització, estat de la comanda i autorització.

  • Des d'Amèrica del Nord, truqueu al 800.262.1060
  • Des de la resta del món, truqueu al 650.318.4460
  • Fax, des de qualsevol part del món, 650.318.8044

Informació del microxip

Marques comercials
El nom i el logotip "Microxip", el logotip "M" i altres noms, logotips i marques són marques registrades i no registrades de Microchip Technology Incorporated o les seves filials i/o filials als Estats Units i/o altres països ("Marques comercials de Microchip"). Podeu trobar informació sobre les marques comercials de Microxip a https://www.microchip.com/en-us/about/legal-information/microchip-trademarks
ISBN: 979-8-3371-0947-3

Avís Legal
Aquesta publicació i la informació que s'hi inclou només es poden utilitzar amb productes Microchip, inclòs per dissenyar, provar i integrar productes Microchip amb la vostra aplicació. L'ús d'aquesta informació de qualsevol altra manera viola aquests termes. La informació sobre les aplicacions del dispositiu només es proporciona per a la vostra comoditat i pot ser substituïda per actualitzacions. És la vostra responsabilitat assegurar-vos que la vostra aplicació compleix les vostres especificacions. Poseu-vos en contacte amb l'oficina local de vendes de Microxip per obtenir assistència addicional o, per obtenir assistència addicional a www.microchip.com/en-us/support/design-help/client-support-services

AQUESTA INFORMACIÓ ÉS PROPORCIONADA PER MICROCHIP "TAL CUAL". MICROCHIP NO FA REPRESENTACIONS NI GARANTIES DE CAP TIPUS, JA SIGUI EXPRESSES O IMPLÍCITES, ESCRITS O ORALS, LEGALS O D'ALTRE ALTRE, RELACIONATS AMB LA INFORMACIÓ INCLOSA, PERÒ NO LIMITADA A CAP GARANTIA IMPLÍCITA DE NO INFRACCIÓ, COMERCIABILITAT I COMERCIALITZACIÓ, COMERCIALITZACIÓ I COMERCIALITZACIÓ. GARANTIES RELACIONATS AMB EL SEU ESTAT, QUALITAT O RENDIMENT.

EN CAP CAS, MICROCHIP SERÀ RESPONSABLE DE CAP PÈRDUA INDIRECTA, ESPECIAL, PUNITIVA, INCIDENTAL O CONSEQUENTAL, DANNY, COST O DESPESA DE QUALSEVOL TIPUS RELACIONATS AMB LA INFORMACIÓ O EL SEU ÚS, SEGUI QUE SIEMPRE CAUSAT, FINS I TOT QUÈ SIGUI AIXÒ. POSSIBILITAT O ELS DANYS SÓN PREVISIBLES. EN LA MÀXIMA MESURA PERMETIDA PER LA LLEI, LA RESPONSABILITAT TOTAL DE MICROCHIP EN TOTES LES RECLAMACIONS DE QUALSEVOL MANERA RELACIONADAS AMB LA INFORMACIÓ O EL SEU ÚS NO SUPERARÀ L'IMPORT DE LES TARIFES, SI N'HEU, QUE HEU PAGAT DIRECTAMENT A MICROCHIP PER A LA INFORMACIÓ.

L'ús de dispositius Microxip en aplicacions de suport vital i/o seguretat és totalment a risc del comprador, i el comprador es compromet a defensar, indemnitzar i excloure Microxip de qualsevol dany, reclamació, demanda o despeses derivades d'aquest ús. No es transmet cap llicència, implícita o d'una altra manera, sota cap dret de propietat intel·lectual de Microxip tret que s'indiqui el contrari.

Funció de protecció de codi de dispositius de microxip
Tingueu en compte els detalls següents de la funció de protecció del codi als productes Microxip:

  • Els productes de microxip compleixen les especificacions contingudes a la seva fitxa de dades particular de microxip.
  • Microxip creu que la seva família de productes és segura quan s'utilitza de la manera prevista, dins de les especificacions de funcionament i en condicions normals.
  • Microxip valora i protegeix de manera agressiva els seus drets de propietat intel·lectual. Els intents d'infringir les funcions de protecció del codi dels productes Microxip estan estrictament prohibits i poden infringir la Llei de drets d'autor de Digital Millennium.
  • Ni Microchip ni cap altre fabricant de semiconductors poden garantir la seguretat del seu codi. La protecció del codi no vol dir que estem garantint que el producte sigui "irrompible". La protecció del codi està en constant evolució. Microxip es compromet a millorar contínuament les funcions de protecció del codi dels nostres productes.

Documents/Recursos

Unitat de coma flotant CoreFPU de MICROCHIP [pdfGuia de l'usuari
v3.0, v2.1, v2.0, v1.0, CoreFPU Unitat de coma flotant del nucli, Unitat de coma flotant del nucli, Unitat de coma flotant, Unitat de punt

Referències

Deixa un comentari

La teva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats *