Unità a virgola mobile Core FPU di MICROCHIP
Introduzione
- La Core Floating Point Unit (CoreFPU) è progettata per operazioni aritmetiche e di conversione in virgola mobile, per numeri in virgola mobile a precisione singola e doppia. La CoreFPU supporta conversioni da virgola fissa a virgola mobile e da virgola mobile a virgola fissa, nonché operazioni di addizione, sottrazione e moltiplicazione in virgola mobile. Lo standard IEEE® per l'aritmetica in virgola mobile (IEEE 754) è uno standard tecnico per il calcolo in virgola mobile.
- Importante: CoreFPU supporta calcoli solo con numeri normalizzati ed è supportato solo il linguaggio Verilog; VHDL non è supportato.
Riepilogo
La tabella seguente fornisce un riepilogo delle caratteristiche del CoreFPU.
Tabella 1. Caratteristiche del CoreFPU
Versione principale | Questo documento si applica a CoreFPU v3.0. |
Famiglie di dispositivi supportate |
|
Flusso di strumenti supportato | Richiede Libero® SoC v12.6 o versioni successive. |
Licenza | CoreFPU non è bloccato da una licenza. |
Istruzioni per l'installazione | CoreFPU deve essere installato automaticamente nel catalogo IP di Libero SoC tramite la funzione di aggiornamento del catalogo IP. In alternativa, CoreFPU può essere scaricato manualmente dal catalogo. Una volta che il core IP è
Una volta installato, viene configurato, generato e istanziato all'interno di SmartDesign per essere incluso nel progetto. |
Utilizzo e prestazioni del dispositivo | Un riepilogo delle informazioni sull'utilizzo e sulle prestazioni di CoreFPU è riportato in Utilizzo e prestazioni delle risorse del dispositivo. |
Informazioni sul registro delle modifiche di CoreFPU
Questa sezione fornisce una panoramica completaview delle nuove funzionalità integrate, a partire dalla versione più recente. Per ulteriori informazioni sui problemi risolti, consultare la sezione Problemi risolti.
Versione | Cosa c'è di nuovo |
versione 3.0 | Implementati flag di output aggiuntivi per migliorare la precisione dell'IP |
versione 2.1 | Aggiunta la funzionalità di doppia precisione |
versione 2.0 | Aggiornate le forme d'onda temporali |
versione 1.0 | Prima versione di produzione di CoreFPU |
1 Caratteristiche
CoreFPU presenta le seguenti caratteristiche principali:
- Supporta numeri in virgola mobile a precisione singola e doppia secondo lo standard IEEE-754
- Supporta le conversioni elencate:
- Conversione da virgola fissa a virgola mobile
- Conversione da virgola mobile a virgola fissa
- Supporta le operazioni aritmetiche elencate:
- Addizione in virgola mobile
- Sottrazione in virgola mobile
- Moltiplicazione in virgola mobile
- Fornisce lo schema di arrotondamento (arrotondamento al numero pari più vicino) solo per le operazioni aritmetiche
- Fornisce flag per overflow, underflow, infinito (infinito positivo, infinito negativo), quiet NaN (QNaN) e signaling NaN (SNaN) per numeri in virgola mobile.
- Supporta l'implementazione completamente pipelined delle operazioni aritmetiche
- Fornisce la disposizione per configurare il Core per i requisiti di progettazione
Descrizione funzionale
- Lo standard IEEE per l'aritmetica in virgola mobile (IEEE 754) è uno standard tecnico per il calcolo in virgola mobile. Il termine "virgola mobile" si riferisce al punto base del numero (punto decimale o punto binario), che si trova in un punto qualsiasi rispetto alle cifre significative del numero.
Un numero in virgola mobile è solitamente espresso nella notazione scientifica, con una frazione (F) e un esponente (E) di una certa radice (r), nella forma F × r^E. I numeri decimali usano la radice di 10 (F × 10^E); mentre i numeri binari usano la radice di 2 (F × 2^E). - La rappresentazione del numero in virgola mobile non è univoca. Ad esempioampAd esempio, il numero 55.66 è rappresentato come 5.566 × 10^1, 0.5566 × 10^2, 0.05566 × 10^3 e così via. La parte frazionaria è normalizzata. Nella forma normalizzata, c'è solo una cifra diversa da zero prima del punto di base. Ad esempioampAd esempio, il numero decimale 123.4567 è normalizzato come 1.234567 × 10^2; il numero binario 1010.1011B è normalizzato come 1.0101011B × 2^3.
- È importante notare che i numeri in virgola mobile soffrono di perdita di precisione quando sono rappresentati con un numero fisso di bit (ad esempioample, 32 bit o 64 bit). Questo perché esiste un numero infinito di numeri reali (anche all'interno di un piccolo intervallo da 0.0 a 0.1). D'altra parte, un
Un modello binario a n bit rappresenta un numero finito di 2^n numeri distinti. Pertanto, non tutti i numeri reali vengono rappresentati. Viene invece utilizzata l'approssimazione più vicina, con conseguente perdita di accuratezza.
Il numero in virgola mobile a precisione singola è rappresentato come segue:
- Bit di segno: 1 bit
- Larghezza esponente: 8 bit
- Precisione significativa: 24 bit (23 bit sono memorizzati esplicitamente)
Figura 2-1. Frame a 32 bit
Il numero in virgola mobile a doppia precisione è rappresentato come segue:
- Bit di segno: 1 bit
- Larghezza esponente: 11 bit
- Precisione significativa: 53 bit (52 bit sono memorizzati esplicitamente)
Figura 2-2. Frame a 64 bit CoreFPU è l'integrazione di alto livello dei due moduli di conversione (da fisso a virgola mobile e da virgola mobile a virgola fissa) e di tre operazioni aritmetiche (FP ADD, FP SUB e FP MULT). L'utente può configurare una qualsiasi delle operazioni in base alle proprie esigenze, in modo che le risorse vengano utilizzate per l'operazione selezionata.
La figura seguente mostra il diagramma a blocchi CoreFPU di livello superiore con le porte.
Figura 2-3. Diagramma a blocchi delle porte CoreFPU
La tabella seguente elenca la larghezza delle porte di ingresso e di uscita. Tabella 2-1. Larghezza delle porte di ingresso e di uscita
Segnale | Larghezza di precisione singola | Larghezza doppia precisione |
proprio | [31:0] | [63:0] |
bidone | [31:0] | [63:0] |
circa | [31:0] | [63:0] |
broncio | [31:0] | [63:0] |
Da virgola fissa a virgola mobile (conversione)
La configurazione del CoreFPU come da fisso a virgola mobile implica il modulo di conversione da virgola fissa a virgola mobile. L'input (ain) del CoreFPU è un qualsiasi numero in virgola fissa contenente i bit interi e frazionari. Il configuratore del CoreFPU offre la possibilità di selezionare le ampiezze di input per gli interi e le frazioni. L'input è valido sul segnale di_valid e l'output è valido sul segnale do_valid. L'output (aout) dell'operazione da fisso a float è in formato a virgola mobile a precisione singola o doppia.
Example per l'operazione di conversione da virgola fissa a virgola mobile sono elencate nella tabella seguente.
Tabella 2-2. Example per la conversione da virgola fissa a virgola mobile
Numero a virgola fissa | Numero in virgola mobile | |||||
proprio | Intero | Frazione | circa | Cartello | Esponente | Mantissa |
0x12153524 (32 bit) | 00010010000101010 | 011010100100100 | 0x4610a9a9 | 0 | 10001100 | 00100001010100110101001 |
0x0000000000008CCC
(64 bit) |
0000000000000000000000000000000000000000000000001 | 000110011001100 | 0x3FF199999999999A | 0 | 01111111111 | 0001100110011001100110011001100110011001100110011010 |
Da virgola mobile a virgola fissa (conversione)
CoreFPU configurato come da virgola mobile a virgola fissa deduce il modulo di conversione da virgola mobile a virgola fissa. L'input (ain) di CoreFPU è un qualsiasi numero in virgola mobile a precisione singola o doppia e produce un output (aout) in formato a virgola fissa contenente bit interi e frazionari. L'input è valido sul segnale di_valid e l'output è valido sul segnale do_valid. Il configuratore di CoreFPU offre la possibilità di selezionare le larghezze di output per numeri interi e frazionari.
ExampNella tabella seguente è elencato il file per l'operazione di conversione da virgola mobile a virgola fissa.
Tabella 2-3. Example per la conversione da virgola mobile a virgola fissa
Numero in virgola mobile | Numero a virgola fissa | |||||
proprio | Cartello | Esponente | Mantissa | circa | Intero | Frazione |
0x41bd6783 (32 bit) | 0 | 10000011 | 01111010110011110000011 | 0x000bd678 | 00000000000010111 | 101011001111000 |
0x4002094c447c30d3
(64 bit) |
0 | 10000000000 | 0010000010010100110001000100011111000011000011010011 | 0x0000000000012095 | 0000000000000000000000000000000000000000000000010 | 010000010010101 |
Addizione in virgola mobile (operazione aritmetica)
Il CoreFPU configurato come FP ADD deduce il modulo di addizione in virgola mobile. Somma i due numeri in virgola mobile (ain e bin) e fornisce l'output (pout) in formato virgola mobile. L'input e l'output sono numeri in virgola mobile a precisione singola o doppia. L'input è valido sul segnale di_valid e l'output è valido sul segnale do_valid. Il core produce i flag ovfl_fg (Overflow), qnan_fg (Quiet Not a Number), snan_fg (Signalling Not a Number), pinf_fg (Positive Infinity) e ninf_fg (Negative Infinity) in base all'operazione di addizione.
Exampi file per l'operazione di addizione in virgola mobile sono elencati nelle tabelle seguenti.
Tabella 2-4. Example per operazione di addizione in virgola mobile (32 bit)
Valore in virgola mobile | Cartello | Esponente | Mantissa |
Ingresso in virgola mobile 1 ain (0x4e989680) | 0 | 10011101 | 00110001001011010000000 |
Bin di input in virgola mobile 2 (0x4f191b40) | 0 | 10011110 | 00110010001101101000000 |
Output di addizione in virgola mobile pout (0x4f656680) | 0 | 10011110 | 11001010110011010000000 |
Tabella 2-5. Example per operazione di addizione in virgola mobile (64 bit)
Valore in virgola mobile | Cartello | Esponente | Mantissa |
Ingresso in virgola mobile 1
ain (0x3ff4106ee30caa32) |
0 | 01111111111 | 0100000100000110111011100011000011001010101000110010 |
Ingresso in virgola mobile 2
bin (0x40020b2a78798e61) |
0 | 10000000000 | 0010000010110010101001111000011110011000111001100001 |
Output di addizione in virgola mobile pout (0x400c1361e9ffe37a) | 0 | 10000000000 | 1100000100110110000111101001111111111110001101111010 |
Sottrazione in virgola mobile (operazione aritmetica)
Il CoreFPU configurato come FP SUB deduce il modulo di sottrazione in virgola mobile. Sottrae i due numeri in virgola mobile (ain e bin) e fornisce l'output (pout) in formato virgola mobile. L'input e l'output sono numeri in virgola mobile a precisione singola o doppia. L'input è valido sul segnale di_valid e l'output è valido sul segnale do_valid. Il core produce i flag ovfl_fg (Overflow), unfl_fg (Underflow), qnan_fg (Quiet Not a Number), snan_fg (Signalling Not a Number), pinf_fg (Positive Infinity) e ninf_fg (Negative Infinity) in base all'operazione di sottrazione.
Exampi file per l'operazione di sottrazione in virgola mobile sono elencati nelle tabelle seguenti.
Tabella 2-6. Example per operazione di sottrazione in virgola mobile (32 bit)
Valore in virgola mobile | Cartello | Esponente | Mantissa |
Ingresso in virgola mobile 1 ain (0xac85465f) | 1 | 01011001 | 00001010100011001011111 |
Bin di input in virgola mobile 2 (0x2f516779) | 0 | 01011110 | 10100010110011101111001 |
Output di sottrazione in virgola mobile pout (0xaf5591ac) | 1 | 01011110 | 10101011001000110101011 |
Valore in virgola mobile | Cartello | Esponente | Mantissa |
Ingresso in virgola mobile 1
ain (0x405569764adff823) |
0 | 10000000101 | 0101011010010111011001001010110111111111100000100011 |
Ingresso in virgola mobile 2
bin (0x4057d04e78dee3fc) |
0 | 10000000101 | 0111110100000100111001111000110111101110001111111100 |
Output di sottrazione in virgola mobile pout (0xc02336c16ff75ec8) | 1 | 10000000010 | 0011001101101100000101101111111101110101111011001000 |
Moltiplicazione in virgola mobile (operazione aritmetica)
Il CoreFPU configurato come FP MULT deduce il modulo di moltiplicazione in virgola mobile. Moltiplica i due numeri in virgola mobile (ain e bin) e fornisce l'output (pout) in formato virgola mobile. L'input e l'output sono numeri in virgola mobile a precisione singola o doppia. L'input è valido sul segnale di_valid e l'output è valido sul segnale do_valid. Il core produce i flag ovfl_fg (Overflow), unfl_fg (Underflow), qnan_fg (Quiet Not a Number), snan_fg (Signalling Not a Number), pinf_fg (Positive Infinity) e ninf_fg (Negative Infinity) in base all'operazione di moltiplicazione.
ExampNelle tabelle seguenti sono elencati i file per l'operazione di moltiplicazione in virgola mobile.
Tabella 2-8. Example per operazione di moltiplicazione in virgola mobile (32 bit)
Valore in virgola mobile | Cartello | Esponente | Mantissa |
Ingresso in virgola mobile 1 ain (0x1ec7a735) | 0 | 00111101 | 10001111010011100110101 |
Bin di input in virgola mobile 2 (0x6ecf15e8) | 0 | 11011101 | 10011110001010111101000 |
Output di moltiplicazione in virgola mobile pout (0x4e21814a) | 0 | 10011100 | 01000011000000101001010 |
Valore in virgola mobile | Cartello | Esponente | Mantissa |
Ingresso in virgola mobile 1
ain (0x40c1f5a9930be0df) |
0 | 10000001100 | 0001111101011010100110010011000010111110000011011111 |
Ingresso in virgola mobile 2
bin (0x400a0866c962b501) |
0 | 10000000000 | 1010000010000110011011001001011000101011010100000001 |
Output di moltiplicazione in virgola mobile pout (0x40dd38a1c3e2cae9) | 0 | 10000001101 | 1101001110001010000111000011111000101100101011101001 |
Tabella di verità per addizione e sottrazione
Le seguenti tabelle di verità elencano i valori per le operazioni di addizione e sottrazione. Tabella 2-10. Tabella di verità per l'addizione
Dati A | Dati B | Segno Bit | Risultato | Traboccare | Sottoflusso | 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 | posfinito(y) | 0 | posfinito(y) | 0 | 0 | 0 | 0 | 0 | 0 |
zero | negfinito(y) | 1 | negfinito(y) | 0 | 0 | 0 | 0 | 0 | 0 |
zero | posiinfinito | 0 | posiinfinito | 0 | 0 | 0 | 0 | 1 | 0 |
zero | neginfinite | 1 | neginfinite | 0 | 0 | 0 | 0 | 0 | 1 |
posfinito(y) | zero | 0 | posfinito(y) | 0 | 0 | 0 | 0 | 0 | 0 |
posfinito | posiinfinito | 0 | posiinfinito | 0 | 0 | 0 | 0 | 1 | 0 |
Tavolo Telefono: 2-10. Tabella di verità per l'addizione (continua) | |||||||||
Dati A | Dati B | Segno Bit | Risultato | Traboccare | Sottoflusso | SNaN | QNaN | PINF | NINF |
posfinito | neginfinite | 1 | neginfinite | 0 | 0 | 0 | 0 | 0 | 1 |
negfinito(y) | zero | 1 | negfinito(y) | 0 | 0 | 0 | 0 | 0 | 0 |
negfinito | posiinfinito | 0 | posiinfinito | 0 | 0 | 0 | 0 | 1 | 0 |
negfinito | neginfinite | 1 | neginfinite | 0 | 0 | 0 | 0 | 0 | 1 |
posiinfinito | zero | 0 | posiinfinito | 0 | 0 | 0 | 0 | 1 | 0 |
posiinfinito | posfinito | 0 | posiinfinito | 0 | 0 | 0 | 0 | 1 | 0 |
posiinfinito | negfinito | 0 | posiinfinito | 0 | 0 | 0 | 0 | 1 | 0 |
posiinfinito | posiinfinito | 0 | posiinfinito | 0 | 0 | 0 | 0 | 1 | 0 |
posiinfinito | neginfinite | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
neginfinite | zero | 1 | neginfinite | 0 | 0 | 0 | 0 | 0 | 1 |
neginfinite | posfinito | 1 | neginfinite | 0 | 0 | 0 | 0 | 0 | 1 |
neginfinite | negfinito | 1 | neginfinite | 0 | 0 | 0 | 0 | 0 | 1 |
neginfinite | posiinfinito | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
neginfinite | neginfinite | 1 | neginfinite | 0 | 0 | 0 | 0 | 0 | 1 |
posfinito | posfinito | 0 | posfinito | 0 | 0 | 0 | 0 | 0 | 0 |
posfinito | posfinito | 0 | posiinfinito | 0 | 0 | 0 | 0 | 1 | 0 |
posfinito | posfinito | 0/1 | QNaN | 0 | 0 | 0 | 1 | 0 | 0 |
posfinito | posfinito | 0/1 | SNaN | 0 | 0 | 1 | 0 | 0 | 0 |
posfinito | posfinito | 0 | POSSNaN | 1 | 0 | 1 | 0 | 0 | 0 |
posfinito | negfinito | 0 | posfinito | 0 | 0 | 0 | 0 | 0 | 0 |
posfinito | negfinito | 1 | negfinito | 0 | 0 | 0 | 0 | 0 | 0 |
posfinito | negfinito | 0 | POSSNaN | 0 | 1 | 1 | 0 | 0 | 0 |
negfinito | posfinito | 0 | posfinito | 0 | 0 | 0 | 0 | 0 | 0 |
negfinito | posfinito | 1 | negfinito | 0 | 0 | 0 | 0 | 0 | 0 |
negfinito | posfinito | 0 | POSSNaN | 0 | 1 | 1 | 0 | 0 | 0 |
negfinito | negfinito | 1 | negfinito | 0 | 0 | 0 | 0 | 0 | 0 |
negfinito | negfinito | 1 | neginfinite | 0 | 0 | 0 | 0 | 0 | 1 |
negfinito | negfinito | 0/1 | QNaN | 0 | 0 | 0 | 1 | 0 | 0 |
negfinito | negfinito | 0/1 | SNaN | 0 | 0 | 1 | 0 | 0 | 0 |
negfinito | negfinito | 0 | POSSNaN | 1 | 0 | 1 | 0 | 0 | 0 |
Dati A | Dati B | Segno Bit | Risultato | Traboccare | Sottoflusso | 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 | posfinito(y) | 1 | negfinito(y) | 0 | 0 | 0 | 0 | 0 | 0 |
zero | negfinito(y) | 0 | posfinito(y) | 0 | 0 | 0 | 0 | 0 | 0 |
zero | posiinfinito | 1 | neginfinite | 0 | 0 | 0 | 0 | 0 | 1 |
zero | neginfinite | 0 | posiinfinito | 0 | 0 | 0 | 0 | 1 | 0 |
posfinito(y) | zero | 0 | posfinito(y) | 0 | 0 | 0 | 0 | 0 | 0 |
posfinito | posiinfinito | 1 | neginfinite | 0 | 0 | 0 | 0 | 0 | 1 |
posfinito | neginfinite | 0 | posiinfinito | 0 | 0 | 0 | 0 | 1 | 0 |
negfinito(y) | zero | 1 | negfinito(y) | 0 | 0 | 0 | 0 | 0 | 0 |
negfinito | posiinfinito | 1 | neginfinite | 0 | 0 | 0 | 0 | 0 | 1 |
Tavolo Telefono: 2-11. Tabella di verità per la sottrazione (continua) | |||||||||
Dati A | Dati B | Segno Bit | Risultato | Traboccare | Sottoflusso | SNaN | QNaN | PINF | NINF |
negfinito | neginfinite | 0 | posiinfinito | 0 | 0 | 0 | 0 | 1 | 0 |
posiinfinito | zero | 0 | posiinfinito | 0 | 0 | 0 | 0 | 1 | 0 |
posiinfinito | posfinito | 0 | posiinfinito | 0 | 0 | 0 | 0 | 1 | 0 |
posiinfinito | negfinito | 0 | posiinfinito | 0 | 0 | 0 | 0 | 1 | 0 |
posiinfinito | posiinfinito | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
posiinfinito | neginfinite | 0 | posiinfinito | 0 | 0 | 0 | 0 | 1 | 0 |
neginfinite | zero | 1 | neginfinite | 0 | 0 | 0 | 0 | 0 | 1 |
neginfinite | posfinito | 1 | neginfinite | 0 | 0 | 0 | 0 | 0 | 1 |
neginfinite | negfinito | 1 | neginfinite | 0 | 0 | 0 | 0 | 0 | 1 |
neginfinite | posiinfinito | 1 | neginfinite | 0 | 0 | 0 | 0 | 0 | 1 |
neginfinite | neginfinite | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
posfinito | posfinito | 0 | posfinito | 0 | 0 | 0 | 0 | 0 | 0 |
posfinito | posfinito | 1 | negfinito | 0 | 0 | 0 | 0 | 0 | 0 |
posfinito | posfinito | 0 | POSSNaN | 0 | 1 | 1 | 0 | 0 | 0 |
posfinito | negfinito | 0 | posfinito | 0 | 0 | 0 | 0 | 0 | 0 |
posfinito | negfinito | 0 | posiinfinito | 0 | 0 | 0 | 0 | 1 | 0 |
posfinito | negfinito | 0/1 | QNaN | 0 | 0 | 0 | 1 | 0 | 0 |
posfinito | negfinito | 0/1 | SNaN | 0 | 0 | 1 | 0 | 0 | 0 |
posfinito | negfinito | 0 | POSSNaN | 1 | 0 | 1 | 0 | 0 | 0 |
negfinito | posfinito | 1 | negfinito | 0 | 0 | 0 | 0 | 0 | 0 |
negfinito | posfinito | 1 | neginfinite | 0 | 0 | 0 | 0 | 0 | 1 |
negfinito | posfinito | 0/1 | QNaN | 0 | 0 | 0 | 1 | 0 | 0 |
negfinito | posfinito | 0/1 | SNaN | 0 | 0 | 1 | 0 | 0 | 0 |
negfinito | posfinito | 0 | POSSNaN | 1 | 0 | 1 | 0 | 0 | 0 |
negfinito | negfinito | 0 | posfinito | 0 | 0 | 0 | 0 | 0 | 0 |
negfinito | negfinito | 1 | negfinito | 0 | 0 | 0 | 0 | 0 | 0 |
negfinito | negfinito | 0 | POSSNaN | 0 | 1 | 1 | 0 | 0 | 0 |
Importante:
- Nelle tabelle precedenti indicano un numero qualsiasi.
- Nelle tabelle precedenti indica una condizione di non importanza.
Tabella della verità per la moltiplicazione
La seguente tabella di verità elenca i valori per l'operazione di moltiplicazione.
Tabella 2-12. Tabella di verità per la moltiplicazione
Dati A | Dati B | Segno Bit | Risultato | Traboccare | Sottoflusso | 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 | posfinito | 0 | POSZERO | 0 | 0 | 0 | 0 | 0 | 0 |
zero | negfinito | 0 | POSZERO | 0 | 0 | 0 | 0 | 0 | 0 |
zero | posiinfinito | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
zero | neginfinite | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
Tavolo Telefono: 2-12. Tabella di verità per la moltiplicazione (continua) | |||||||||
Dati A | Dati B | Segno Bit | Risultato | Traboccare | Sottoflusso | SNaN | QNaN | PINF | NINF |
posfinito | zero | 0 | POSZERO | 0 | 0 | 0 | 0 | 0 | 0 |
posfinito | posiinfinito | 0 | posiinfinito | 0 | 0 | 0 | 0 | 1 | 0 |
posfinito | neginfinite | 1 | neginfinite | 0 | 0 | 0 | 0 | 0 | 1 |
negfinito | zero | 0 | POSZERO | 0 | 0 | 0 | 0 | 0 | 0 |
negfinito | posiinfinito | 1 | neginfinite | 0 | 0 | 0 | 0 | 0 | 1 |
negfinito | neginfinite | 0 | posiinfinito | 0 | 0 | 0 | 0 | 1 | 0 |
posiinfinito | zero | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
posiinfinito | posfinito | 0 | posiinfinito | 0 | 0 | 0 | 0 | 1 | 0 |
posiinfinito | negfinito | 1 | neginfinite | 0 | 0 | 0 | 0 | 0 | 1 |
posiinfinito | posiinfinito | 0 | posiinfinito | 0 | 0 | 0 | 0 | 1 | 0 |
posiinfinito | neginfinite | 1 | neginfinite | 0 | 0 | 0 | 0 | 0 | 1 |
neginfinite | zero | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
neginfinite | posfinito | 1 | neginfinite | 0 | 0 | 0 | 0 | 0 | 1 |
neginfinite | negfinito | 0 | posiinfinito | 0 | 0 | 0 | 0 | 1 | 0 |
neginfinite | posiinfinito | 1 | neginfinite | 0 | 0 | 0 | 0 | 0 | 1 |
neginfinite | neginfinite | 0 | posiinfinito | 0 | 0 | 0 | 0 | 1 | 0 |
posfinito | posfinito | 0 | posfinito | 0 | 0 | 0 | 0 | 0 | 0 |
posfinito | posfinito | 0 | posiinfinito | 0 | 0 | 0 | 0 | 1 | 0 |
posfinito | posfinito | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
posfinito | posfinito | 0 | POSSNaN | 0 | 0 | 1 | 0 | 0 | 0 |
posfinito | posfinito | 0 | POSSNaN | 1 | 0 | 1 | 0 | 0 | 0 |
posfinito | posfinito | 0 | POSSNaN | 0 | 1 | 1 | 0 | 0 | 0 |
posfinito | negfinito | 1 | negfinito | 0 | 0 | 0 | 0 | 0 | 0 |
posfinito | negfinito | 1 | neginfinite | 0 | 0 | 0 | 0 | 0 | 1 |
posfinito | negfinito | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
posfinito | negfinito | 0 | POSSNaN | 0 | 0 | 1 | 0 | 0 | 0 |
posfinito | negfinito | 0 | POSSNaN | 1 | 0 | 1 | 0 | 0 | 0 |
posfinito | negfinito | 0 | POSSNaN | 0 | 1 | 1 | 0 | 0 | 0 |
negfinito | posfinito | 1 | negfinito | 0 | 0 | 0 | 0 | 0 | 0 |
negfinito | posfinito | 1 | neginfinite | 0 | 0 | 0 | 0 | 0 | 1 |
negfinito | posfinito | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
negfinito | posfinito | 0 | POSSNaN | 0 | 0 | 1 | 0 | 0 | 0 |
negfinito | posfinito | 0 | POSSNaN | 1 | 0 | 1 | 0 | 0 | 0 |
negfinito | posfinito | 0 | POSSNaN | 0 | 1 | 1 | 0 | 0 | 0 |
negfinito | negfinito | 0 | posfinito | 0 | 0 | 0 | 0 | 0 | 0 |
negfinito | negfinito | 0 | posiinfinito | 0 | 0 | 0 | 0 | 1 | 0 |
negfinito | negfinito | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
negfinito | negfinito | 0 | POSQNaN | 0 | 0 | 1 | 0 | 0 | 0 |
negfinito | negfinito | 0 | POSQNaN | 1 | 0 | 1 | 0 | 0 | 0 |
negfinito | negfinito | 0 | POSQNaN | 0 | 1 | 1 | 0 | 0 | 0 |
Importante:
Il bit di segno '0' definisce un output positivo e '1' definisce un output negativo.
La x nella tabella precedente indica la condizione "non importa".
Parametri CoreFPU e segnali di interfaccia
In questa sezione vengono illustrati i parametri nelle impostazioni del CoreFPU Configurator e i segnali I/O.
Parametri della GUI di configurazione
Sono disponibili numerose opzioni configurabili applicabili all'unità FPU, come mostrato nella tabella seguente. Se è richiesta una configurazione diversa da quella predefinita, è possibile utilizzare la finestra di dialogo di configurazione per selezionare i valori appropriati per l'opzione configurabile.
Tabella 3-1. Parametri GUI di configurazione CoreFPU
Nome del parametro | Predefinito | Descrizione |
Precisione | Separare | Selezionare l'operazione desiderata:
Precisione singola |
Tipo di conversione | Conversione da virgola fissa a virgola mobile | Selezionare l'operazione desiderata:
|
Larghezza della frazione di input1 | 15 | Configura il punto frazionario nei segnali di input ain e bin
L'intervallo valido è 31–1 |
Larghezza della frazione di output2 | 15 | Configura il punto frazionario nei segnali di uscita aout
L'intervallo valido è 51–1 |
Importante:
- Questo parametro è configurabile solo durante la conversione da virgola fissa a virgola mobile.
- Questo parametro è configurabile solo durante la conversione da virgola mobile a virgola fissa.
Segnali di ingresso e uscita (fai una domanda)
Nella tabella seguente sono elencati i segnali delle porte di ingresso e di uscita del CoreFPU.
Tabella 3-2. Descrizione della porta
Nome del segnale | Larghezza | Tipo | Descrizione |
clic | 1 | Ingresso | Orologio di sistema principale |
prima | 1 | Ingresso | Ripristino asincrono attivo-basso |
di_valid | 1 | Ingresso | Ingresso attivo-alto valido
Questo segnale indica che i dati presenti su ain[31:0], ain[63:0] e bin[31:0], bin[63:0] sono validi. |
proprio | 32/64 | Ingresso | Un bus di input (viene utilizzato per tutte le operazioni) |
bidone1 | 32/64 | Ingresso | B Input Bus (viene utilizzato solo per operazioni aritmetiche) |
circa2 | 32/64 | Produzione | Valore di output quando vengono selezionate le operazioni di conversione da virgola fissa a virgola mobile o da virgola mobile a virgola fissa. |
broncio1 | 32/64 | Produzione | Valore di output quando vengono selezionate le operazioni di addizione, sottrazione o moltiplicazione. |
Tavolo Telefono: 3-2. Descrizione della porta (continua) | |||
Nome del segnale | Larghezza | Tipo | Descrizione |
do_valid | 1 | Produzione | Segnale attivo-alto
Questo segnale indica che i dati presenti sul bus dati pout/aout sono validi. |
ovfl_fg3 | 1 | Produzione | Segnale attivo-alto
Questo segnale indica l'overflow durante le operazioni in virgola mobile. |
unfl_fg | 1 | Produzione | Segnale attivo-alto
Questo segnale indica l'underflow durante le operazioni in virgola mobile. |
qnan_fg3 | 1 | Produzione | Segnale attivo-alto
Questo segnale indica il QNaN (Quiet Not a Number) durante le operazioni in virgola mobile. |
snan_fg | 1 | Produzione | Segnale attivo-alto
Questo segnale indica il segnale SNaN (Signaling Not-a-Number) durante le operazioni in virgola mobile. |
pinf_fg3 | 1 | Produzione | Segnale attivo-alto
Questo segnale indica l'infinito positivo durante le operazioni in virgola mobile. |
ninf_fg | 1 | Produzione | Segnale attivo-alto
Questo segnale indica l'infinito negativo durante le operazioni in virgola mobile. |
Importante:
- Questa porta è disponibile solo per operazioni di addizione, sottrazione o moltiplicazione in virgola mobile.
- Questa porta è disponibile solo per le operazioni di conversione da virgola fissa a virgola mobile e da virgola mobile a virgola fissa.
- Questa porta è disponibile per operazioni da virgola mobile a virgola fissa, addizione in virgola mobile, sottrazione in virgola mobile e moltiplicazione in virgola mobile.
Implementazione di CoreFPU in Libero Design Suite
Questa sezione descrive l'implementazione di CoreFPU nella Libero Design Suite.
Smart Design
CoreFPU è disponibile per il download nel catalogo Libero IP tramite web repository. Una volta inserito nel catalogo, il core viene istanziato utilizzando il flusso SmartDesign. Per informazioni sull'utilizzo di SmartDesign per configurare, connettere e generare core, consultare la guida online di Libero SoC.
Dopo aver configurato e generato l'istanza core, le funzionalità di base vengono simulate utilizzando il testbench fornito con la CoreFPU. I parametri del testbench si adattano automaticamente alla configurazione della CoreFPU. La CoreFPU viene istanziata come componente di un progetto più ampio.
Figura 4-1. Istanza SmartDesign CoreFPU per operazioni aritmetiche
Figura 4-2. Istanza SmartDesign CoreFPU per operazione di conversione
Conversione da virgola fissa a virgola mobile
Durante la conversione da virgola fissa a virgola mobile, la larghezza della frazione di input è configurabile. Per impostazione predefinita, la larghezza di output è impostata a 32 bit per la precisione singola e a 64 bit per la precisione doppia in virgola mobile.
Per convertire da virgola fissa a virgola mobile, selezionare il tipo di conversione da virgola fissa a virgola mobile, come mostrato nella figura seguente.
Da virgola mobile a virgola fissa
Durante la conversione da virgola mobile a virgola fissa, la larghezza frazionaria di output è configurabile e la larghezza di input è impostata su 32 bit per la precisione singola e 64 bit per la precisione doppia in virgola mobile per impostazione predefinita.
Per convertire da virgola mobile a virgola fissa, selezionare il tipo di conversione da virgola mobile a virgola fissa, come mostrato nella figura seguente.
Figura 4-4. Configuratore CoreFPU per virgola mobile a virgola fissa Addizione/sottrazione/moltiplicazione in virgola mobile
Durante le operazioni di addizione, sottrazione e moltiplicazione in virgola mobile, la larghezza della frazione di input e la larghezza della frazione di output non sono configurabili poiché si tratta di operazioni aritmetiche in virgola mobile e la larghezza di input/output è impostata per impostazione predefinita su 32 bit a precisione singola e 64 bit per la virgola mobile a precisione doppia.
La figura seguente mostra il configuratore CoreFPU per l'operazione di sottrazione in virgola mobile.
Figura 4-5. Configuratore CoreFPU per la sottrazione in virgola mobileSimulazione (fai una domanda)
Per eseguire le simulazioni, nella finestra di configurazione del core, selezionare User Testbench. Dopo aver generato il CoreFPU, il testbench di pre-sintesi Hardware Description Language (HDL) filesono installati in Libero.
Forme d'onda di simulazione (fai una domanda)
Questa sezione illustra le forme d'onda di simulazione per CoreFPU.
Le figure seguenti mostrano la forma d'onda della conversione da virgola fissa a virgola mobile sia per 32 bit che per 64 bit.
Integrazione del sistema
La figura seguente mostra un exampdi usare il nucleo. In questo esempioampIn questo caso, la UART di progettazione viene utilizzata come canale di comunicazione tra il progetto e il PC host. I segnali ain e bin (ciascuno con larghezza di 32 o 64 bit) sono gli ingressi al progetto dalla UART. Dopo che la CoreFPU riceve il segnale di_valid, calcola il risultato. Dopo aver calcolato il risultato, il segnale do_valid passa allo stato alto e memorizza il risultato (dati aout/pout) nel buffer di output. Questa stessa procedura è applicabile per le operazioni di conversione e aritmetiche. Per le operazioni di conversione, è sufficiente solo l'ingresso ain, mentre per le operazioni aritmetiche sono richiesti entrambi gli ingressi ain e bin. L'uscita aout è abilitata per le operazioni di conversione e la porta pout è abilitata per le operazioni aritmetiche.
Figura 4-16. Example del sistema CoreFPU
- Sintesi (Fai una domanda)
Per eseguire la sintesi sul CoreFPU, impostare la radice di progettazione sull'istanza del componente IP e dal riquadro del flusso di progettazione Libero, eseguire lo strumento Sintesi.
Luogo e percorso (Fai una domanda)
Dopo aver sintetizzato il progetto, esegui lo strumento Place-and-Route. CoreFPU non richiede impostazioni speciali per Place-and-Route. - User Testbench (Fai una domanda)
Con la versione IP di CoreFPU viene fornito un testbench utente. Utilizzando questo testbench, è possibile verificare il comportamento funzionale di CoreFPU.
Nella figura seguente è mostrato un diagramma a blocchi semplificato del testbench utente. Il testbench utente istanzia il progetto CoreFPU configurato (UUT) e include un generatore di dati di test comportamentali, il clock necessario e i segnali di reset.
Figura 4-17. Testbench utente CoreFPU
Importante: è necessario monitorare i segnali di uscita nel simulatore ModelSim, vedere la sezione Simulazione.
Riferimenti aggiuntivi (Fai una domanda)
Questa sezione fornisce un elenco di informazioni aggiuntive.
Per aggiornamenti e informazioni aggiuntive su software, dispositivi e hardware, visitare il sito
Pagine sulla proprietà intellettuale sugli FPGA e sui PLD Microchip websito.
- Problemi noti e soluzioni alternative (Fai una domanda)
Non ci sono problemi noti né soluzioni alternative per CoreFPU v3.0. - Funzionalità e dispositivi non più disponibili (fai una domanda)
Con questa versione IP non ci sono funzionalità o dispositivi fuori produzione.
Glossario
Di seguito è riportato l'elenco dei termini e delle definizioni utilizzati nel documento.
Tabella 6-1. Termini e definizioni
Termine | Definizione |
FPU | Unità in virgola mobile |
FP ADD | Addizione in virgola mobile |
FP SUB | Sottrazione in virgola mobile |
FP MULT | Moltiplicazione in virgola mobile |
Problemi risolti
Nella tabella seguente sono elencati tutti i problemi risolti per le varie versioni di CoreFPU.
Tabella 7-1. Problemi risolti
Pubblicazione | Descrizione |
3.0 | Di seguito è riportato l'elenco di tutti i problemi risolti nella versione v3.0:
Numero di caso: 01420387 e 01422128 Aggiunta la logica dello schema di arrotondamento (arrotondamento al numero pari più vicino). |
2.1 | Di seguito è riportato l'elenco di tutti i problemi risolti nella versione v2.1: La progettazione riscontra problemi dovuti alla presenza di moduli duplicati quando vengono istanziati più core. La ridenominazione dell'istanza IP CoreFPU genera un errore "Modulo non definito". |
1.0 | Versione iniziale |
Utilizzo e prestazioni delle risorse del dispositivo
La macro CoreFPU è implementata nelle famiglie elencate nella tabella seguente.
Tabella 8-1. Utilizzo del dispositivo FPU PolarFire Unit per 32 bit
Risorse FPGA | Utilizzo | |||||||
Famiglia | 4LUT | DFF | Totale | Blocco matematico | Dispositivo | percentualetage | Prestazione | Latenza |
Da virgola fissa a virgola mobile | ||||||||
PolarFire® | 260 | 104 | 364 | 0 | MPF300T | 0.12 | 310 MHz | 3 |
Da virgola mobile a virgola fissa | ||||||||
Fuoco Polare | 591 | 102 | 693 | 0 | MPF300T | 0.23 | 160 MHz | 3 |
Addizione in virgola mobile | ||||||||
Fuoco Polare | 1575 | 1551 | 3126 | 0 | MPF300T | 1.06 | 340 MHz | 16 |
Sottrazione in virgola mobile | ||||||||
Fuoco Polare | 1561 | 1549 | 3110 | 0 | MPF300T | 1.04 | 345 MHz | 16 |
Moltiplicazione in virgola mobile | ||||||||
Fuoco Polare | 465 | 847 | 1312 | 4 | MPF300T | 0.44 | 385 MHz | 14 |
Risorse FPGA | Utilizzo | |||||||
Famiglia | 4LUT | DFF | Totale | Blocco matematico | Dispositivo | percentualetage | Prestazione | Latenza |
Da virgola fissa a virgola mobile | ||||||||
RTG4™ | 264 | 104 | 368 | 0 | RT4G150 | 0.24 | 160 MHz | 3 |
Da virgola mobile a virgola fissa | ||||||||
RTG4 | 439 | 112 | 551 | 0 | RT4G150 | 0.36 | 105 MHz | 3 |
Addizione in virgola mobile | ||||||||
RTG4 | 1733 | 1551 | 3284 | 0 | RT4G150 | 1.16 | 195 MHz | 16 |
Sottrazione in virgola mobile | ||||||||
RTG4 | 1729 | 1549 | 3258 | 0 | RT4G150 | 1.16 | 190 MHz | 16 |
Moltiplicazione in virgola mobile | ||||||||
RTG4 | 468 | 847 | 1315 | 4 | RT4G150 | 0.87 | 175 MHz | 14 |
Risorse FPGA | Utilizzo | |||||||
Famiglia | 4LUT | DFF | Totale | Blocco matematico | Dispositivo | percentualetage | Prestazione | Latenza |
Da virgola fissa a virgola mobile | ||||||||
PolarFire® | 638 | 201 | 849 | 0 | MPF300T | 0.28 | 305 MHz | 3 |
Da virgola mobile a virgola fissa | ||||||||
Fuoco Polare | 2442 | 203 | 2645 | 0 | MPF300T | 0.89 | 110 MHz | 3 |
Addizione in virgola mobile | ||||||||
Fuoco Polare | 5144 | 4028 | 9172 | 0 | MPF300T | 3.06 | 240 MHz | 16 |
Sottrazione in virgola mobile | ||||||||
Fuoco Polare | 5153 | 4026 | 9179 | 0 | MPF300T | 3.06 | 250 MHz | 16 |
Moltiplicazione in virgola mobile | ||||||||
Fuoco Polare | 1161 | 3818 | 4979 | 16 | MPF300T | 1.66 | 340 MHz | 27 |
Risorse FPGA | Utilizzo | |||||||
Famiglia | 4LUT | DFF | Totale | Blocco matematico | Dispositivo | percentualetage | Prestazione | Latenza |
Da virgola fissa a virgola mobile | ||||||||
RTG4™ | 621 | 201 | 822 | 0 | RT4G150 | 0.54 | 140 MHz | 3 |
Da virgola mobile a virgola fissa | ||||||||
RTG4 | 1114 | 203 | 1215 | 0 | RT4G150 | 0.86 | 75 MHz | 3 |
Addizione in virgola mobile | ||||||||
RTG4 | 4941 | 4028 | 8969 | 0 | RT4G150 | 5.9 | 140 MHz | 16 |
Sottrazione in virgola mobile | ||||||||
RTG4 | 5190 | 4026 | 9216 | 0 | RT4G150 | 6.07 | 130 MHz | 16 |
Moltiplicazione in virgola mobile | ||||||||
RTG4 | 1165 | 3818 | 4983 | 16 | RT4G150 | 3.28 | 170 MHz | 27 |
Importante: per aumentare la frequenza, selezionare l'opzione Abilita retiming nelle impostazioni di sintesi.
Cronologia delle revisioni
La cronologia delle revisioni descrive le modifiche implementate nel documento. Le modifiche sono elencate per revisione, a partire dalla pubblicazione più recente.
Supporto FPGA per microchip
Il gruppo di prodotti Microchip FPGA supporta i propri prodotti con vari servizi di supporto, tra cui Servizio clienti, Centro assistenza tecnica clienti, a websito e uffici vendite in tutto il mondo. Si consiglia ai clienti di visitare le risorse online di Microchip prima di contattare l'assistenza poiché è molto probabile che le loro domande abbiano già ricevuto risposta.
Contattare il Centro di assistenza tecnica tramite il websito a www.microchip.com/support. Menziona il numero di parte del dispositivo FPGA, seleziona la categoria di custodia appropriata e carica il design files durante la creazione di un caso di supporto tecnico.
Contatta il servizio clienti per assistenza non tecnica sui prodotti, ad esempio prezzi dei prodotti, aggiornamenti dei prodotti, informazioni sull'aggiornamento, stato dell'ordine e autorizzazione.
- Dal Nord America, chiamare 800.262.1060
- Dal resto del mondo, chiamare il 650.318.4460
- Fax, da qualsiasi parte del mondo, 650.318.8044
Informazioni sul microchip
Marchi
Il nome e il logo "Microchip", il logo "M" e altri nomi, loghi e marchi sono marchi registrati e non registrati di Microchip Technology Incorporated o delle sue affiliate e/o sussidiarie negli Stati Uniti e/o in altri paesi ("Marchi Microchip"). Le informazioni relative ai Marchi Microchip sono disponibili all'indirizzo https://www.microchip.com/en-us/about/legal-information/microchip-trademarks
ISBN: 979-8-3371-0947-3
Note legali
Questa pubblicazione e le informazioni ivi contenute possono essere utilizzate solo con i prodotti Microchip, anche per progettare, testare e integrare i prodotti Microchip con l'applicazione. L'uso di queste informazioni in qualsiasi altro modo viola questi termini. Le informazioni relative alle applicazioni del dispositivo sono fornite solo per comodità dell'utente e possono essere sostituite da aggiornamenti. È tua responsabilità assicurarti che la tua applicazione soddisfi le tue specifiche. Contattare l'ufficio vendite Microchip locale per ulteriore supporto o ottenere ulteriore supporto all'indirizzo www.microchip.com/en-us/support/design-help/client-support-services
QUESTE INFORMAZIONI SONO FORNITE DA MICROCHIP "COSÌ COME SONO". MICROCHIP NON RILASCIA ALCUNA DICHIARAZIONE O GARANZIA DI ALCUN TIPO, SIA ESSE ESPRESSE O IMPLICITE, SCRITTE O ORALI, STATUTARIE O ALTRO, RELATIVE ALLE INFORMAZIONI, INCLUSE, SENZA LIMITAZIONE, QUALSIASI GARANZIA IMPLICITA DI NON VIOLAZIONE, COMMERCIABILITÀ E IDONEITÀ PER UNO SCOPO PARTICOLARE, O GARANZIE RELATIVE ALLA SUA CONDIZIONE, QUALITÀ O PRESTAZIONI.
IN NESSUN CASO MICROCHIP SARÀ RITENUTA RESPONSABILE PER QUALSIASI PERDITA, DANNO, COSTO O SPESA INDIRETTA, SPECIALE, PUNITIVA, ACCIDENTALE O CONSEGUENTE DI QUALSIASI TIPO CORRELATA ALLE INFORMAZIONI O AL SUO UTILIZZO, COMUNQUE CAUSATA, ANCHE SE MICROCHIP È STATA INFORMATA DELLA POSSIBILITÀ O SE I DANNI SONO PREVEDIBILI. NELLA MISURA MASSIMA CONSENTITA DALLA LEGGE, LA RESPONSABILITÀ TOTALE DI MICROCHIP PER TUTTI I RECLAMI IN QUALSIASI MODO CORRELATI ALLE INFORMAZIONI O AL SUO UTILIZZO NON SUPERERÀ L'IMPORTO DELLE COMMISSIONI, SE PRESENTI, CHE AVETE PAGATO DIRETTAMENTE A MICROCHIP PER LE INFORMAZIONI.
L'uso dei dispositivi Microchip in applicazioni di supporto vitale e/o di sicurezza è interamente a rischio dell'acquirente, il quale accetta di difendere, indennizzare e tenere indenne Microchip da qualsiasi danno, reclamo, causa o spesa risultante da tale uso. Nessuna licenza viene trasferita, implicitamente o in altro modo, in base ai diritti di proprietà intellettuale di Microchip, salvo diversamente specificato.
Funzionalità di protezione del codice dei dispositivi a microchip
Si noti quanto segue in merito alla funzionalità di protezione del codice sui prodotti Microchip:
- I prodotti Microchip soddisfano le specifiche contenute nella rispettiva scheda tecnica Microchip.
- Microchip ritiene che la sua famiglia di prodotti sia sicura se utilizzata nel modo previsto, nel rispetto delle specifiche operative e in condizioni normali.
- Microchip valorizza e protegge in modo aggressivo i propri diritti di proprietà intellettuale. I tentativi di violare le funzionalità di protezione del codice dei prodotti Microchip sono severamente vietati e potrebbero violare il Digital Millennium Copyright Act.
- Né Microchip né alcun altro produttore di semiconduttori può garantire la sicurezza del suo codice. La protezione del codice non significa che stiamo garantendo che il prodotto sia "indistruttibile". La protezione del codice è in continua evoluzione. Microchip si impegna a migliorare costantemente le funzionalità di protezione del codice dei nostri prodotti.
Documenti / Risorse
![]() |
Unità a virgola mobile Core FPU di MICROCHIP [pdf] Guida utente v3.0, v2.1, v2.0, v1.0, CoreFPU Unità a virgola mobile Core, Unità a virgola mobile Core, Unità a virgola mobile, Unità a virgola mobile |