Μονάδα κινητής υποδιαστολής πυρήνα MICROCHIP CoreFPU Core
Εισαγωγή
- Η Μονάδα Πλωτής Υποδιαστολής Core (CoreFPU) έχει σχεδιαστεί για αριθμητικές πράξεις και μετατροπές κινητής υποδιαστολής, για αριθμούς κινητής υποδιαστολής μονής και διπλής ακρίβειας. Η CoreFPU υποστηρίζει μετατροπές από σταθερό σημείο σε κινητή υποδιαστολή και από κινητή υποδιαστολή σε σταθερό σημείο, καθώς και πράξεις πρόσθεσης, αφαίρεσης και πολλαπλασιασμού κινητής υποδιαστολής. Το Πρότυπο IEEE® για Αριθμητική Πλωτής Υποδιαστολής (IEEE 754) είναι ένα τεχνικό πρότυπο για υπολογισμούς κινητής υποδιαστολής.
- Σημαντικό: Το CoreFPU υποστηρίζει υπολογισμούς μόνο με κανονικοποιημένους αριθμούς και υποστηρίζεται μόνο η γλώσσα Verilog. Η VHDL δεν υποστηρίζεται.
Περίληψη
Ο παρακάτω πίνακας παρέχει μια σύνοψη των χαρακτηριστικών του CoreFPU.
Πίνακας 1. Χαρακτηριστικά CoreFPU
Βασική έκδοση | Αυτό το έγγραφο ισχύει για το CoreFPU v3.0. |
Υποστηριζόμενες οικογένειες συσκευών |
|
Υποστηριζόμενη ροή εργαλείων | Απαιτεί Libero® SoC v12.6 ή νεότερες εκδόσεις. |
Αδειοδότηση | Το CoreFPU δεν έχει κλειδωμένη άδεια χρήσης. |
Οδηγίες εγκατάστασης | Το CoreFPU πρέπει να εγκατασταθεί αυτόματα στον κατάλογο IP του Libero SoC μέσω της λειτουργίας ενημέρωσης του καταλόγου IP. Εναλλακτικά, το CoreFPU μπορεί να ληφθεί χειροκίνητα από τον κατάλογο. Μόλις ολοκληρωθεί η εγκατάσταση του πυρήνα IP,
Αφού εγκατασταθεί, διαμορφώνεται, δημιουργείται και δημιουργείται εντός του SmartDesign για συμπερίληψη στο έργο. |
Χρήση και απόδοση συσκευής | Μια σύνοψη των πληροφοριών αξιοποίησης και απόδοσης για το CoreFPU παρατίθεται στην ενότητα Χρήση πόρων συσκευής και απόδοση. |
Πληροφορίες αρχείου καταγραφής αλλαγών CoreFPU
Αυτή η ενότητα παρέχει μια περιεκτική overview των νέων ενσωματωμένων λειτουργιών, ξεκινώντας από την πιο πρόσφατη έκδοση. Για περισσότερες πληροφορίες σχετικά με τα προβλήματα που επιλύθηκαν, ανατρέξτε στην ενότητα Επιλυμένα προβλήματα.
Εκδοχή | Τι νέο υπάρχει |
v3.0 | Υλοποιήθηκαν πρόσθετες σημαίες εξόδου για την ενίσχυση της ακρίβειας του IP |
v2.1 | Added the double precision feature |
v2.0 | Ενημερώθηκαν οι κυματομορφές χρονισμού |
v1.0 | Πρώτη κυκλοφορία παραγωγής του CoreFPU |
1. Χαρακτηριστικά
Το CoreFPU έχει τα ακόλουθα βασικά χαρακτηριστικά:
- Υποστηρίζει μονούς και διπλούς αριθμούς ακριβείας σύμφωνα με το πρότυπο IEEE-754
- Supports Conversions as listed:
- Μετατροπή από σταθερό σημείο σε κινητή υποδιαστολή
- Floating-point to Fixed-point conversion
- Υποστηρίζει αριθμητικές πράξεις όπως αναφέρονται:
- Πρόσθεση κινητής υποδιαστολής
- Αφαίρεση κινητής υποδιαστολής
- Πολλαπλασιασμός κινητής υποδιαστολής
- Παρέχει το Σχέδιο Στρογγυλοποίησης (Στρογγυλοποίηση στον πλησιέστερο άρτιο) μόνο για τις Αριθμητικές Πράξεις
- Παρέχει σημαίες για υπερχείλιση, υποχείλιση, άπειρο (θετικό άπειρο, αρνητικό άπειρο), ήσυχη NaN (QNaN) και σηματοδότηση NaN (SNaN) για αριθμούς κινητής υποδιαστολής.
- Υποστηρίζει πλήρως γραμμική υλοποίηση αριθμητικών πράξεων
- Παρέχει διάταξη για τη διαμόρφωση του πυρήνα για τις απαιτήσεις σχεδιασμού
Περιγραφή λειτουργίας
- Το Πρότυπο IEEE για την Αριθμητική Κινητής Υποδιαστολής (IEEE 754) είναι ένα τεχνικό πρότυπο για τον υπολογισμό κινητής υποδιαστολής. Ο όρος κινητή υποδιαστολή αναφέρεται στο σημείο βάσης του αριθμού (δεκαδικό ή δυαδικό), το οποίο τοποθετείται οπουδήποτε ως προς τα σημαντικά ψηφία του αριθμού.
Ένας αριθμός κινητής υποδιαστολής εκφράζεται συνήθως με επιστημονική σημειογραφία, με ένα κλάσμα (F) και έναν εκθέτη (E) μιας συγκεκριμένης ράτσας (r), με τη μορφή F × r^E. Οι δεκαδικοί αριθμοί χρησιμοποιούν ράτσα 10 (F × 10^E), ενώ οι δυαδικοί αριθμοί χρησιμοποιούν ράτσα 2 (F × 2^E). - Η αναπαράσταση του αριθμού κινητής υποδιαστολής δεν είναι μοναδική. Για παράδειγμαampΔηλαδή, ο αριθμός 55.66 αναπαρίσταται ως 5.566 × 10^1, 0.5566 × 10^2, 0.05566 × 10^3, και ούτω καθεξής. Το κλασματικό μέρος είναι κανονικοποιημένο. Στην κανονικοποιημένη μορφή, υπάρχει μόνο ένα μη μηδενικό ψηφίο πριν από το σημείο της βάσης. Για παράδειγμαampδηλ., ο δεκαδικός αριθμός 123.4567 κανονικοποιείται ως 1.234567 × 10^2. ο δυαδικός αριθμός 1010.1011B κανονικοποιείται ως 1.0101011B × 2^3.
- Είναι σημαντικό να σημειωθεί ότι οι αριθμοί κινητής υποδιαστολής υποφέρουν από απώλεια ακρίβειας όταν αναπαρίστανται με σταθερό αριθμό bit (για παράδειγμαampδηλαδή, 32-bit ή 64-bit). Αυτό συμβαίνει επειδή υπάρχει ένας άπειρος αριθμός πραγματικών αριθμών (ακόμα και μέσα σε ένα μικρό εύρος από 0.0 έως 0.1). Από την άλλη πλευρά, ένα
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.
Ο αριθμός κινητής υποδιαστολής μονής ακρίβειας αναπαρίσταται ως εξής:
- bit υπογραφής: 1 bit
- Πλάτος εκθέτη: 8 bit
- Σημαντική ακρίβεια: 24 bit (23 bit αποθηκεύονται ρητά)
Σχήμα 2-1. Πλαίσιο 32-bit
Ο αριθμός κινητής υποδιαστολής διπλής ακρίβειας αναπαρίσταται ως εξής:
- bit υπογραφής: 1 bit
- Πλάτος εκθέτη: 11 bit
- Σημαντική ακρίβεια: 53 bit (52 bit αποθηκεύονται ρητά)
Σχήμα 2-2. Πλαίσιο 64-bit Το CoreFPU είναι η ενσωμάτωση ανώτατου επιπέδου των δύο μονάδων μετατροπής (Fixed to Float point και Float to Fixed point) και τριών αριθμητικών πράξεων (FP ADD, FP SUB και FP MULT). Ο χρήστης μπορεί να διαμορφώσει οποιαδήποτε από τις πράξεις με βάση τις απαιτήσεις, έτσι ώστε οι πόροι να χρησιμοποιούνται για την επιλεγμένη πράξη.
Το παρακάτω σχήμα δείχνει το διάγραμμα μπλοκ του CoreFPU ανώτατου επιπέδου με θύρες.
Σχήμα 2-3. Διάγραμμα μπλοκ θυρών CoreFPU
The following table lists the width of the Input and Output ports. Table 2-1. Input and Output Port Width
Σύνθημα | Πλάτος μονής ακριβείας | Διπλό πλάτος ακριβείας |
ain | [31:0] | [63:0] |
αποθήκη | [31:0] | [63:0] |
έξω | [31:0] | [63:0] |
σκυθρωπάζω | [31:0] | [63:0] |
Από σταθερό σημείο σε κινητή υποδιαστολή (Μετατροπή)
Το CoreFPU που έχει ρυθμιστεί ως σταθερή σε κινητή υποδιαστολή υποδηλώνει τη λειτουργική μονάδα μετατροπής σταθερής υποδιαστολής σε κινητή υποδιαστολή. Η είσοδος (ain) στο CoreFPU είναι οποιοσδήποτε αριθμός σταθερής υποδιαστολής που περιέχει τα ακέραια και κλασματικά bit. Ο διαμορφωτής CoreFPU έχει τις επιλογές για να επιλέξει το πλάτος ακέραιου και κλασματικού αριθμού εισόδου. Η είσοδος είναι έγκυρη στο σήμα di_valid και η έξοδος είναι έγκυρη στο do_valid. Η έξοδος (aout) της λειτουργίας σταθερής σε κινητή υποδιαστολή είναι σε μορφή κινητής υποδιαστολής μονής ή διπλής ακρίβειας.
ExampΤο le για τη μετατροπή από σταθερό σημείο σε κινητή υποδιαστολή παρατίθεται στον ακόλουθο πίνακα.
Πίνακας 2-2. Πρώηνample for Fixed-Point to Floating-Point Conversion
Αριθμός Σταθερού Σημείου | Αριθμός κινητής υποδιαστολής | |||||
ain | Ακέραιος αριθμός | Κλάσμα | έξω | Σημείο | Εκθέτης | Μάντισσα |
0x12153524 (32-bit) | 00010010000101010 | 011010100100100 | 0x4610a9a9 | 0 | 10001100 | 00100001010100110101001 |
0x0000000000008CCC
(64-bit) |
0000000000000000000000000000000000000000000000001 | 000110011001100 | 0x3FF199999999999A | 0 | 01111111111 | 0001100110011001100110011001100110011001100110011010 |
Μετατροπή από κινητό σημείο σε σταθερό σημείο (Μετατροπή)
Το CoreFPU που έχει ρυθμιστεί ως κινητής σε σταθερή υποδιαστολή υποδηλώνει τη λειτουργική μονάδα μετατροπής κινητής υποδιαστολής σε σταθερή υποδιαστολή. Η είσοδος (ain) στο CoreFPU είναι οποιοσδήποτε αριθμός κινητής υποδιαστολής μονής ή διπλής ακρίβειας και παράγει μια έξοδο (aout) σε μορφή σταθερής υποδιαστολής που περιέχει ακέραια και κλασματικά bits. Η είσοδος είναι έγκυρη στο σήμα di_valid και η έξοδος είναι έγκυρη στο σήμα do_valid. Ο διαμορφωτής CoreFPU έχει τις επιλογές για να επιλέξετε το πλάτος ακέραιου και κλασματικού αριθμού εξόδου.
ExampΤο le για τη μετατροπή από κινητή υποδιαστολή σε σταθερή υποδιαστολή παρατίθεται στον ακόλουθο πίνακα.
Πίνακας 2-3. Πρώηνample για μετατροπή από κινητό σημείο σε σταθερό σημείο
Αριθμός κινητής υποδιαστολής | Αριθμός Σταθερού Σημείου | |||||
ain | Σημείο | Εκθέτης | Μάντισσα | έξω | Ακέραιος αριθμός | Κλάσμα |
0x41bd6783 (32-bit) | 0 | 10000011 | 01111010110011110000011 | 0x000bd678 | 00000000000010111 | 101011001111000 |
0x4002094c447c30d3
(64-bit) |
0 | 10000000000 | 0010000010010100110001000100011111000011000011010011 | 0x0000000000012095 | 0000000000000000000000000000000000000000000000010 | 010000010010101 |
Πρόσθεση κινητής υποδιαστολής (Αριθμητική πράξη)
Το CoreFPU, που έχει ρυθμιστεί ως FP ADD, εξάγει την ενότητα πρόσθεσης κινητής υποδιαστολής. Προσθέτει τους δύο αριθμούς κινητής υποδιαστολής (ain και bin) και παρέχει την έξοδο (pout) σε μορφή κινητής υποδιαστολής. Η είσοδος και η έξοδος είναι αριθμοί κινητής υποδιαστολής μονής ή διπλής ακρίβειας. Η είσοδος είναι έγκυρη στο σήμα di_valid και η έξοδος είναι έγκυρη στο σήμα do_valid. Ο πυρήνας παράγει σημαίες ovfl_fg (Overflow), qnan_fg (Quiet Not a Number), snan_fg (Signalling Not a Number), pinf_fg (Positive Infinity) και ninf_fg (Negative Infinity) με βάση την πράξη πρόσθεσης.
ExampΟι τιμές για την πράξη πρόσθεσης κινητής υποδιαστολής παρατίθενται στους ακόλουθους πίνακες.
Πίνακας 2-4. Πρώηνample για πράξη πρόσθεσης κινητής υποδιαστολής (32-bit)
Floating-Point Value | Σημείο | Εκθέτης | Μάντισσα |
Είσοδος κινητής υποδιαστολής 1 ain (0x4e989680) | 0 | 10011101 | 00110001001011010000000 |
Είσοδος κινητής υποδιαστολής 2 δοχεία (0x4f191b40) | 0 | 10011110 | 00110010001101101000000 |
Έξοδος πρόσθεσης κινητής υποδιαστολής με ύφος βουητού (0x4f656680) | 0 | 10011110 | 11001010110011010000000 |
Πίνακας 2-5. Πρώηνample για πράξη πρόσθεσης κινητής υποδιαστολής (64-bit)
Floating-Point Value | Σημείο | Εκθέτης | Μάντισσα |
Είσοδος κινητής υποδιαστολής 1
ain (0x3ff4106ee30caa32) |
0 | 01111111111 | 0100000100000110111011100011000011001010101000110010 |
Είσοδος κινητής υποδιαστολής 2
bin (0x40020b2a78798e61) |
0 | 10000000000 | 0010000010110010101001111000011110011000111001100001 |
Σύνθλιψη εξόδου πρόσθεσης κινητής υποδιαστολής (0x400c1361e9ffe37a) | 0 | 10000000000 | 1100000100110110000111101001111111111110001101111010 |
Αφαίρεση κινητής υποδιαστολής (Αριθμητική πράξη)
Το CoreFPU, διαμορφωμένο ως FP SUB, υπολογίζει την αφαίρεση κινητής υποδιαστολής. Αφαιρεί τους δύο αριθμούς κινητής υποδιαστολής (ain και bin) και παρέχει την έξοδο (pout) σε μορφή κινητής υποδιαστολής. Η είσοδος και η έξοδος είναι αριθμοί κινητής υποδιαστολής μονής ή διπλής ακρίβειας. Η είσοδος είναι έγκυρη στο σήμα di_valid και η έξοδος είναι έγκυρη στο σήμα do_valid. Ο πυρήνας παράγει σημαίες ovfl_fg (Overflow), unfl_fg (underflow), qnan_fg (Quiet Not a Number), snan_fg (Signalling Not a Number), pinf_fg (Positive Infinity) και ninf_fg (Negative Infinity) με βάση την πράξη αφαίρεσης.
ExampΟι τιμές για την αφαίρεση κινητής υποδιαστολής παρατίθενται στους ακόλουθους πίνακες.
Πίνακας 2-6. Πρώηνample για την πράξη αφαίρεσης κινητής υποδιαστολής (32-bit)
Floating-Point Value | Σημείο | Εκθέτης | Μάντισσα |
Floating-point input 1 ain (0xac85465f) | 1 | 01011001 | 00001010100011001011111 |
Είσοδος κινητής υποδιαστολής 2 δοχεία (0x2f516779) | 0 | 01011110 | 10100010110011101111001 |
Έξοδος αφαίρεσης κινητής υποδιαστολής με ύφος βουβό (0xaf5591ac) | 1 | 01011110 | 10101011001000110101011 |
Floating-Point Value | Σημείο | Εκθέτης | Μάντισσα |
Είσοδος κινητής υποδιαστολής 1
αίν (0x405569764adff823) |
0 | 10000000101 | 0101011010010111011001001010110111111111100000100011 |
Είσοδος κινητής υποδιαστολής 2
bin (0x4057d04e78dee3fc) |
0 | 10000000101 | 0111110100000100111001111000110111101110001111111100 |
Έξοδος αφαίρεσης κινητής υποδιαστολής με ύφος βουβό (0xc02336c16ff75ec8) | 1 | 10000000010 | 0011001101101100000101101111111101110101111011001000 |
Πολλαπλασιασμός κινητής υποδιαστολής (Αριθμητική πράξη)
Το CoreFPU, διαμορφωμένο ως FP MULT, υπολογίζει την ενότητα πολλαπλασιασμού κινητής υποδιαστολής. Πολλαπλασιάζει τους δύο αριθμούς κινητής υποδιαστολής (ain και bin) και παρέχει την έξοδο (pout) σε μορφή κινητής υποδιαστολής. Η είσοδος και η έξοδος είναι αριθμοί κινητής υποδιαστολής μονής ή διπλής ακρίβειας. Η είσοδος είναι έγκυρη στο σήμα di_valid και η έξοδος είναι έγκυρη στο σήμα do_valid. Ο πυρήνας παράγει σημαίες ovfl_fg (Overflow), unfl_fg (Underflow), qnan_fg (Quiet Not a Number), snan_fg (Signalling Not a Number), pinf_fg (Positive Infinity) και ninf_fg (Negative Infinity) με βάση την πράξη πολλαπλασιασμού.
ExampΟι τιμές για την πράξη πολλαπλασιασμού με κινητή υποδιαστολή παρατίθενται στους ακόλουθους πίνακες.
Πίνακας 2-8. Πρώηνample για πράξη πολλαπλασιασμού κινητής υποδιαστολής (32-bit)
Floating-Point Value | Σημείο | Εκθέτης | Μάντισσα |
Είσοδος κινητής υποδιαστολής 1 ain (0x1ec7a735) | 0 | 00111101 | 10001111010011100110101 |
Είσοδος κινητής υποδιαστολής 2 bin (0x6ecf15e8) | 0 | 11011101 | 10011110001010111101000 |
Έξοδος πολλαπλασιασμού κινητής υποδιαστολής (0x4e21814a) | 0 | 10011100 | 01000011000000101001010 |
Floating-Point Value | Σημείο | Εκθέτης | Μάντισσα |
Είσοδος κινητής υποδιαστολής 1
ain (0x40c1f5a9930be0df) |
0 | 10000001100 | 0001111101011010100110010011000010111110000011011111 |
Είσοδος κινητής υποδιαστολής 2
bin (0x400a0866c962b501) |
0 | 10000000000 | 1010000010000110011011001001011000101011010100000001 |
Έξοδος πολλαπλασιασμού κινητής υποδιαστολής με ύφος βουητού (0x40dd38a1c3e2cae9) | 0 | 10000001101 | 1101001110001010000111000011111000101100101011101001 |
Πίνακας Αλήθειας για Πρόσθεση και Αφαίρεση
Οι ακόλουθοι πίνακες αλήθειας παραθέτουν τις τιμές για την πράξη πρόσθεσης και αφαίρεσης. Πίνακας 2-10. Πίνακας αλήθειας για την πρόσθεση
Δεδομένα Α | Δεδομένα Β | Sign Bit | Αποτέλεσμα | Ξεχείλισμα | Υπερχείλιση | 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 |
μηδέν | μηδέν | 0 | POSZERO | 0 | 0 | 0 | 0 | 0 | 0 |
μηδέν | posfinite(y) | 0 | posfinite(y) | 0 | 0 | 0 | 0 | 0 | 0 |
μηδέν | negfinite(y) | 1 | negfinite(y) | 0 | 0 | 0 | 0 | 0 | 0 |
μηδέν | posinfinite | 0 | posinfinite | 0 | 0 | 0 | 0 | 1 | 0 |
μηδέν | άπειρο | 1 | άπειρο | 0 | 0 | 0 | 0 | 0 | 1 |
posfinite(y) | μηδέν | 0 | posfinite(y) | 0 | 0 | 0 | 0 | 0 | 0 |
posfinite | posinfinite | 0 | posinfinite | 0 | 0 | 0 | 0 | 1 | 0 |
Τραπέζι 2-10. Πίνακας Αλήθειας για Πρόσθεση (συνέχεια) | |||||||||
Δεδομένα Α | Δεδομένα Β | Sign Bit | Αποτέλεσμα | Ξεχείλισμα | Υπερχείλιση | SNaN | QNaN | PINF | NINF |
posfinite | άπειρο | 1 | άπειρο | 0 | 0 | 0 | 0 | 0 | 1 |
negfinite(y) | μηδέν | 1 | negfinite(y) | 0 | 0 | 0 | 0 | 0 | 0 |
αρνητικό πεπερασμένο | posinfinite | 0 | posinfinite | 0 | 0 | 0 | 0 | 1 | 0 |
αρνητικό πεπερασμένο | άπειρο | 1 | άπειρο | 0 | 0 | 0 | 0 | 0 | 1 |
posinfinite | μηδέν | 0 | posinfinite | 0 | 0 | 0 | 0 | 1 | 0 |
posinfinite | posfinite | 0 | posinfinite | 0 | 0 | 0 | 0 | 1 | 0 |
posinfinite | αρνητικό πεπερασμένο | 0 | posinfinite | 0 | 0 | 0 | 0 | 1 | 0 |
posinfinite | posinfinite | 0 | posinfinite | 0 | 0 | 0 | 0 | 1 | 0 |
posinfinite | άπειρο | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
άπειρο | μηδέν | 1 | άπειρο | 0 | 0 | 0 | 0 | 0 | 1 |
άπειρο | posfinite | 1 | άπειρο | 0 | 0 | 0 | 0 | 0 | 1 |
άπειρο | αρνητικό πεπερασμένο | 1 | άπειρο | 0 | 0 | 0 | 0 | 0 | 1 |
άπειρο | posinfinite | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
άπειρο | άπειρο | 1 | άπειρο | 0 | 0 | 0 | 0 | 0 | 1 |
posfinite | posfinite | 0 | posfinite | 0 | 0 | 0 | 0 | 0 | 0 |
posfinite | posfinite | 0 | posinfinite | 0 | 0 | 0 | 0 | 1 | 0 |
posfinite | posfinite | 0/1 | QNaN | 0 | 0 | 0 | 1 | 0 | 0 |
posfinite | posfinite | 0/1 | SNaN | 0 | 0 | 1 | 0 | 0 | 0 |
posfinite | posfinite | 0 | POSSNaN | 1 | 0 | 1 | 0 | 0 | 0 |
posfinite | αρνητικό πεπερασμένο | 0 | posfinite | 0 | 0 | 0 | 0 | 0 | 0 |
posfinite | αρνητικό πεπερασμένο | 1 | αρνητικό πεπερασμένο | 0 | 0 | 0 | 0 | 0 | 0 |
posfinite | αρνητικό πεπερασμένο | 0 | POSSNaN | 0 | 1 | 1 | 0 | 0 | 0 |
αρνητικό πεπερασμένο | posfinite | 0 | posfinite | 0 | 0 | 0 | 0 | 0 | 0 |
αρνητικό πεπερασμένο | posfinite | 1 | αρνητικό πεπερασμένο | 0 | 0 | 0 | 0 | 0 | 0 |
αρνητικό πεπερασμένο | posfinite | 0 | POSSNaN | 0 | 1 | 1 | 0 | 0 | 0 |
αρνητικό πεπερασμένο | αρνητικό πεπερασμένο | 1 | αρνητικό πεπερασμένο | 0 | 0 | 0 | 0 | 0 | 0 |
αρνητικό πεπερασμένο | αρνητικό πεπερασμένο | 1 | άπειρο | 0 | 0 | 0 | 0 | 0 | 1 |
αρνητικό πεπερασμένο | αρνητικό πεπερασμένο | 0/1 | QNaN | 0 | 0 | 0 | 1 | 0 | 0 |
αρνητικό πεπερασμένο | αρνητικό πεπερασμένο | 0/1 | SNaN | 0 | 0 | 1 | 0 | 0 | 0 |
αρνητικό πεπερασμένο | αρνητικό πεπερασμένο | 0 | POSSNaN | 1 | 0 | 1 | 0 | 0 | 0 |
Δεδομένα Α | Δεδομένα Β | Sign Bit | Αποτέλεσμα | Ξεχείλισμα | Υπερχείλιση | 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 |
μηδέν | μηδέν | 0 | POSZERO | 0 | 0 | 0 | 0 | 0 | 0 |
μηδέν | posfinite(y) | 1 | negfinite(y) | 0 | 0 | 0 | 0 | 0 | 0 |
μηδέν | negfinite(y) | 0 | posfinite(y) | 0 | 0 | 0 | 0 | 0 | 0 |
μηδέν | posinfinite | 1 | άπειρο | 0 | 0 | 0 | 0 | 0 | 1 |
μηδέν | άπειρο | 0 | posinfinite | 0 | 0 | 0 | 0 | 1 | 0 |
posfinite(y) | μηδέν | 0 | posfinite(y) | 0 | 0 | 0 | 0 | 0 | 0 |
posfinite | posinfinite | 1 | άπειρο | 0 | 0 | 0 | 0 | 0 | 1 |
posfinite | άπειρο | 0 | posinfinite | 0 | 0 | 0 | 0 | 1 | 0 |
negfinite(y) | μηδέν | 1 | negfinite(y) | 0 | 0 | 0 | 0 | 0 | 0 |
αρνητικό πεπερασμένο | posinfinite | 1 | άπειρο | 0 | 0 | 0 | 0 | 0 | 1 |
Τραπέζι 2-11. Πίνακας Αλήθειας για Αφαίρεση (συνέχεια) | |||||||||
Δεδομένα Α | Δεδομένα Β | Sign Bit | Αποτέλεσμα | Ξεχείλισμα | Υπερχείλιση | SNaN | QNaN | PINF | NINF |
αρνητικό πεπερασμένο | άπειρο | 0 | posinfinite | 0 | 0 | 0 | 0 | 1 | 0 |
posinfinite | μηδέν | 0 | posinfinite | 0 | 0 | 0 | 0 | 1 | 0 |
posinfinite | posfinite | 0 | posinfinite | 0 | 0 | 0 | 0 | 1 | 0 |
posinfinite | αρνητικό πεπερασμένο | 0 | posinfinite | 0 | 0 | 0 | 0 | 1 | 0 |
posinfinite | posinfinite | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
posinfinite | άπειρο | 0 | posinfinite | 0 | 0 | 0 | 0 | 1 | 0 |
άπειρο | μηδέν | 1 | άπειρο | 0 | 0 | 0 | 0 | 0 | 1 |
άπειρο | posfinite | 1 | άπειρο | 0 | 0 | 0 | 0 | 0 | 1 |
άπειρο | αρνητικό πεπερασμένο | 1 | άπειρο | 0 | 0 | 0 | 0 | 0 | 1 |
άπειρο | posinfinite | 1 | άπειρο | 0 | 0 | 0 | 0 | 0 | 1 |
άπειρο | άπειρο | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
posfinite | posfinite | 0 | posfinite | 0 | 0 | 0 | 0 | 0 | 0 |
posfinite | posfinite | 1 | αρνητικό πεπερασμένο | 0 | 0 | 0 | 0 | 0 | 0 |
posfinite | posfinite | 0 | POSSNaN | 0 | 1 | 1 | 0 | 0 | 0 |
posfinite | αρνητικό πεπερασμένο | 0 | posfinite | 0 | 0 | 0 | 0 | 0 | 0 |
posfinite | αρνητικό πεπερασμένο | 0 | posinfinite | 0 | 0 | 0 | 0 | 1 | 0 |
posfinite | αρνητικό πεπερασμένο | 0/1 | QNaN | 0 | 0 | 0 | 1 | 0 | 0 |
posfinite | αρνητικό πεπερασμένο | 0/1 | SNaN | 0 | 0 | 1 | 0 | 0 | 0 |
posfinite | αρνητικό πεπερασμένο | 0 | POSSNaN | 1 | 0 | 1 | 0 | 0 | 0 |
αρνητικό πεπερασμένο | posfinite | 1 | αρνητικό πεπερασμένο | 0 | 0 | 0 | 0 | 0 | 0 |
αρνητικό πεπερασμένο | posfinite | 1 | άπειρο | 0 | 0 | 0 | 0 | 0 | 1 |
αρνητικό πεπερασμένο | posfinite | 0/1 | QNaN | 0 | 0 | 0 | 1 | 0 | 0 |
αρνητικό πεπερασμένο | posfinite | 0/1 | SNaN | 0 | 0 | 1 | 0 | 0 | 0 |
αρνητικό πεπερασμένο | posfinite | 0 | POSSNaN | 1 | 0 | 1 | 0 | 0 | 0 |
αρνητικό πεπερασμένο | αρνητικό πεπερασμένο | 0 | posfinite | 0 | 0 | 0 | 0 | 0 | 0 |
αρνητικό πεπερασμένο | αρνητικό πεπερασμένο | 1 | αρνητικό πεπερασμένο | 0 | 0 | 0 | 0 | 0 | 0 |
αρνητικό πεπερασμένο | αρνητικό πεπερασμένο | 0 | POSSNaN | 0 | 1 | 1 | 0 | 0 | 0 |
Σπουδαίος:
- Στους προηγούμενους πίνακες υποδηλώνουν οποιονδήποτε αριθμό.
- Το στους προηγούμενους πίνακες υποδηλώνει μια συνθήκη αδιαφορίας.
Truth Table for Multiplication
Ο παρακάτω πίνακας αληθείας παραθέτει τις τιμές για την πράξη πολλαπλασιασμού.
Πίνακας 2-12. Πίνακας Αλήθειας για τον Πολλαπλασιασμό
Δεδομένα Α | Δεδομένα Β | Sign Bit | Αποτέλεσμα | Ξεχείλισμα | Υπερχείλιση | 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 |
μηδέν | μηδέν | 0 | POSZERO | 0 | 0 | 0 | 0 | 0 | 0 |
μηδέν | posfinite | 0 | POSZERO | 0 | 0 | 0 | 0 | 0 | 0 |
μηδέν | αρνητικό πεπερασμένο | 0 | POSZERO | 0 | 0 | 0 | 0 | 0 | 0 |
μηδέν | posinfinite | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
μηδέν | άπειρο | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
Τραπέζι 2-12. Πίνακας Αλήθειας για Πολλαπλασιασμό (συνέχεια) | |||||||||
Δεδομένα Α | Δεδομένα Β | Sign Bit | Αποτέλεσμα | Ξεχείλισμα | Υπερχείλιση | SNaN | QNaN | PINF | NINF |
posfinite | μηδέν | 0 | POSZERO | 0 | 0 | 0 | 0 | 0 | 0 |
posfinite | posinfinite | 0 | posinfinite | 0 | 0 | 0 | 0 | 1 | 0 |
posfinite | άπειρο | 1 | άπειρο | 0 | 0 | 0 | 0 | 0 | 1 |
αρνητικό πεπερασμένο | μηδέν | 0 | POSZERO | 0 | 0 | 0 | 0 | 0 | 0 |
αρνητικό πεπερασμένο | posinfinite | 1 | άπειρο | 0 | 0 | 0 | 0 | 0 | 1 |
αρνητικό πεπερασμένο | άπειρο | 0 | posinfinite | 0 | 0 | 0 | 0 | 1 | 0 |
posinfinite | μηδέν | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
posinfinite | posfinite | 0 | posinfinite | 0 | 0 | 0 | 0 | 1 | 0 |
posinfinite | αρνητικό πεπερασμένο | 1 | άπειρο | 0 | 0 | 0 | 0 | 0 | 1 |
posinfinite | posinfinite | 0 | posinfinite | 0 | 0 | 0 | 0 | 1 | 0 |
posinfinite | άπειρο | 1 | άπειρο | 0 | 0 | 0 | 0 | 0 | 1 |
άπειρο | μηδέν | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
άπειρο | posfinite | 1 | άπειρο | 0 | 0 | 0 | 0 | 0 | 1 |
άπειρο | αρνητικό πεπερασμένο | 0 | posinfinite | 0 | 0 | 0 | 0 | 1 | 0 |
άπειρο | posinfinite | 1 | άπειρο | 0 | 0 | 0 | 0 | 0 | 1 |
άπειρο | άπειρο | 0 | posinfinite | 0 | 0 | 0 | 0 | 1 | 0 |
posfinite | posfinite | 0 | posfinite | 0 | 0 | 0 | 0 | 0 | 0 |
posfinite | posfinite | 0 | posinfinite | 0 | 0 | 0 | 0 | 1 | 0 |
posfinite | posfinite | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
posfinite | posfinite | 0 | POSSNaN | 0 | 0 | 1 | 0 | 0 | 0 |
posfinite | posfinite | 0 | POSSNaN | 1 | 0 | 1 | 0 | 0 | 0 |
posfinite | posfinite | 0 | POSSNaN | 0 | 1 | 1 | 0 | 0 | 0 |
posfinite | αρνητικό πεπερασμένο | 1 | αρνητικό πεπερασμένο | 0 | 0 | 0 | 0 | 0 | 0 |
posfinite | αρνητικό πεπερασμένο | 1 | άπειρο | 0 | 0 | 0 | 0 | 0 | 1 |
posfinite | αρνητικό πεπερασμένο | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
posfinite | αρνητικό πεπερασμένο | 0 | POSSNaN | 0 | 0 | 1 | 0 | 0 | 0 |
posfinite | αρνητικό πεπερασμένο | 0 | POSSNaN | 1 | 0 | 1 | 0 | 0 | 0 |
posfinite | αρνητικό πεπερασμένο | 0 | POSSNaN | 0 | 1 | 1 | 0 | 0 | 0 |
αρνητικό πεπερασμένο | posfinite | 1 | αρνητικό πεπερασμένο | 0 | 0 | 0 | 0 | 0 | 0 |
αρνητικό πεπερασμένο | posfinite | 1 | άπειρο | 0 | 0 | 0 | 0 | 0 | 1 |
αρνητικό πεπερασμένο | posfinite | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
αρνητικό πεπερασμένο | posfinite | 0 | POSSNaN | 0 | 0 | 1 | 0 | 0 | 0 |
αρνητικό πεπερασμένο | posfinite | 0 | POSSNaN | 1 | 0 | 1 | 0 | 0 | 0 |
αρνητικό πεπερασμένο | posfinite | 0 | POSSNaN | 0 | 1 | 1 | 0 | 0 | 0 |
αρνητικό πεπερασμένο | αρνητικό πεπερασμένο | 0 | posfinite | 0 | 0 | 0 | 0 | 0 | 0 |
αρνητικό πεπερασμένο | αρνητικό πεπερασμένο | 0 | posinfinite | 0 | 0 | 0 | 0 | 1 | 0 |
αρνητικό πεπερασμένο | αρνητικό πεπερασμένο | 0 | POSQNaN | 0 | 0 | 0 | 1 | 0 | 0 |
αρνητικό πεπερασμένο | αρνητικό πεπερασμένο | 0 | POSQNaN | 0 | 0 | 1 | 0 | 0 | 0 |
αρνητικό πεπερασμένο | αρνητικό πεπερασμένο | 0 | POSQNaN | 1 | 0 | 1 | 0 | 0 | 0 |
αρνητικό πεπερασμένο | αρνητικό πεπερασμένο | 0 | POSQNaN | 0 | 1 | 1 | 0 | 0 | 0 |
Σπουδαίος:
Το bit προσήμου '0' ορίζει τη θετική έξοδο και το bit προσήμου '1' ορίζει την αρνητική έξοδο.
Το x στον προηγούμενο πίνακα υποδηλώνει την συνθήκη «δεν με νοιάζει».
Παράμετροι CoreFPU και Σήματα Διεπαφής
Αυτή η ενότητα εξετάζει τις παραμέτρους στις ρυθμίσεις του CoreFPU Configurator και τα σήματα εισόδου/εξόδου.
Παράμετροι GUI διαμόρφωσης
There are number of configurable options that apply to the FPU unit as shown in the following table. If a configuration other than default is required, configuration dialog box is used to select appropriate values for the configurable option.
Πίνακας 3-1. Παράμετροι GUI διαμόρφωσης CoreFPU
Όνομα παραμέτρου | Αθέτηση | Περιγραφή |
Ακρίβεια | Μονόκλινο | Επιλέξτε την απαιτούμενη λειτουργία:
Μοναδική ακρίβεια |
Τύπος μετατροπής | Μετατροπή από σταθερό σημείο σε κινητή υποδιαστολή | Επιλέξτε την απαιτούμενη λειτουργία:
|
Πλάτος κλάσματος εισόδου1 | 15 | Ρυθμίζει το κλασματικό σημείο στα σήματα Input ain και bin
Το έγκυρο εύρος είναι 31–1 |
Πλάτος κλάσματος εξόδου2 | 15 | Ρυθμίζει το κλασματικό σημείο στα σήματα εξόδου aout
Το έγκυρο εύρος είναι 51–1 |
Σπουδαίος:
- Αυτή η παράμετρος μπορεί να ρυθμιστεί μόνο κατά τη μετατροπή από σταθερό σημείο σε κινητή υποδιαστολή.
- Αυτή η παράμετρος μπορεί να ρυθμιστεί μόνο κατά τη μετατροπή από κινητή υποδιαστολή σε σταθερή υποδιαστολή.
Σήματα εισόδου και εξόδου (Κάντε μια ερώτηση)
Ο παρακάτω πίνακας παραθέτει τα σήματα θύρας εισόδου και εξόδου του CoreFPU.
Πίνακας 3-2. Περιγραφή θύρας
Όνομα σήματος | Πλάτος | Τύπος | Περιγραφή |
clk | 1 | Εισαγωγή | Main system clock |
rstn | 1 | Εισαγωγή | Ασύγχρονη επαναφορά ενεργής-χαμηλής |
di_valid | 1 | Εισαγωγή | Έγκυρη είσοδος ενεργού-υψηλού
Αυτό το σήμα υποδεικνύει ότι τα δεδομένα που υπάρχουν στα ain[31:0], ain[63:0] και bin[31:0], bin[63:0] είναι έγκυρα. |
ain | 32/64 | Εισαγωγή | Ένας δίαυλος εισόδου (Χρησιμοποιείται για όλες τις λειτουργίες) |
αποθήκη1 | 32/64 | Εισαγωγή | Δίαυλος εισόδου B (Χρησιμοποιείται μόνο για αριθμητικές πράξεις) |
έξω2 | 32/64 | Παραγωγή | Τιμή εξόδου όταν επιλέγονται πράξεις μετατροπής από σταθερή σε κινητή υποδιαστολή ή από κινητή σε σταθερή υποδιαστολή. |
σκυθρωπάζω1 | 32/64 | Παραγωγή | Τιμή εξόδου όταν επιλέγονται πράξεις πρόσθεσης, αφαίρεσης ή πολλαπλασιασμού. |
Τραπέζι 3-2. Port Description (continued) | |||
Όνομα σήματος | Πλάτος | Τύπος | Περιγραφή |
do_valid | 1 | Παραγωγή | Ενεργό-υψηλό σήμα
Αυτό το σήμα υποδεικνύει ότι τα δεδομένα που υπάρχουν στο δίαυλο δεδομένων pout/aout είναι έγκυρα. |
ovfl_fg3 | 1 | Παραγωγή | Ενεργό-υψηλό σήμα
Αυτό το σήμα υποδεικνύει την υπερχείλιση κατά τη διάρκεια πράξεων κινητής υποδιαστολής. |
unfl_fg | 1 | Παραγωγή | Ενεργό-υψηλό σήμα
Αυτό το σήμα υποδεικνύει την υπορροή κατά τη διάρκεια πράξεων κινητής υποδιαστολής. |
qnan_fg3 | 1 | Παραγωγή | Ενεργό-υψηλό σήμα
Αυτό το σήμα υποδεικνύει την κατάσταση Quiet Not a Number (QNaN) κατά τη διάρκεια πράξεων κινητής υποδιαστολής. |
snan_fg | 1 | Παραγωγή | Ενεργό-υψηλό σήμα
Αυτό το σήμα υποδεικνύει τη σηματοδότηση που δεν είναι αριθμός (SNaN) κατά τη διάρκεια πράξεων κινητής υποδιαστολής. |
pinf_fg3 | 1 | Παραγωγή | Ενεργό-υψηλό σήμα
Αυτό το σήμα υποδεικνύει το θετικό άπειρο κατά τη διάρκεια πράξεων κινητής υποδιαστολής. |
ninf_fg | 1 | Παραγωγή | Ενεργό-υψηλό σήμα
Αυτό το σήμα υποδεικνύει το αρνητικό άπειρο κατά τη διάρκεια πράξεων κινητής υποδιαστολής. |
Σπουδαίος:
- Αυτή η θύρα είναι διαθέσιμη μόνο για πράξεις πρόσθεσης, αφαίρεσης ή πολλαπλασιασμού με κινητή υποδιαστολή.
- Αυτή η θύρα είναι διαθέσιμη μόνο για λειτουργίες μετατροπής από σταθερό σημείο σε κινητή υποδιαστολή και από κινητή υποδιαστολή σε σταθερή υποδιαστολή.
- Αυτή η θύρα είναι διαθέσιμη για πράξεις κινητής υποδιαστολής σε σταθερή υποδιαστολή, πρόσθεση κινητής υποδιαστολής, αφαίρεση κινητής υποδιαστολής και πολλαπλασιασμό κινητής υποδιαστολής.
Υλοποίηση του CoreFPU στο Libero Design Suite
Αυτή η ενότητα περιγράφει την υλοποίηση του CoreFPU στο Libero Design Suite.
SmartDesign
Το CoreFPU είναι διαθέσιμο για λήψη στον κατάλογο Libero IP μέσω του web αποθετήριο. Μόλις καταχωρηθεί στον κατάλογο, ο πυρήνας δημιουργείται χρησιμοποιώντας τη ροή SmartDesign. Για πληροφορίες σχετικά με τη χρήση του SmartDesign για τη διαμόρφωση, τη σύνδεση και τη δημιουργία πυρήνων, ανατρέξτε στην ηλεκτρονική βοήθεια του Libero SoC.
Μετά τη διαμόρφωση και τη δημιουργία της βασικής παρουσίας, η βασική λειτουργικότητα προσομοιώνεται χρησιμοποιώντας το testbench που παρέχεται με το CoreFPU. Οι παράμετροι του testbench προσαρμόζονται αυτόματα στη διαμόρφωση του CoreFPU. Το CoreFPU δημιουργείται ως στοιχείο ενός μεγαλύτερου σχεδιασμού.
Figure 4-1. SmartDesign CoreFPU Instance for Arithmetic Operations
Figure 4-2. SmartDesign CoreFPU Instance for Conversion Operation
Μετατροπή από σταθερό σημείο σε κινητή υποδιαστολή
During fixed-point to floating-point conversion, the Input Fraction Width is configurable. The Output Width is set to 32-bit for single precision and 64-bit for double precision floating-point by default.
To convert from fixed-point to floating-point, select Fixed to floating point Conversion type, as shown in the following figure.
Από κινητό σημείο σε σταθερό σημείο
Κατά τη μετατροπή από κινητή υποδιαστολή σε σταθερή υποδιαστολή, το Κλασματικό πλάτος εξόδου είναι διαμορφώσιμο και το Πλάτος εισόδου ορίζεται από προεπιλογή σε 32 bit για κινητή υποδιαστολή μονής ακρίβειας και 64 bit για κινητή υποδιαστολή διπλής ακρίβειας.
Για να μετατρέψετε από κινητή υποδιαστολή σε σταθερή υποδιαστολή, επιλέξτε τον τύπο μετατροπής από κινητή υποδιαστολή σε σταθερή, όπως φαίνεται στο παρακάτω σχήμα.
Σχήμα 4-4. Διαμορφωτής CoreFPU για από κινητό σημείο σε σταθερό Πρόσθεση/Αφαίρεση/Πολλαπλασιασμός με κινητή υποδιαστολή
Κατά την πρόσθεση, την αφαίρεση και τον πολλαπλασιασμό με κινητή υποδιαστολή, το πλάτος κλάσματος εισόδου και το πλάτος κλάσματος εξόδου δεν είναι διαμορφώσιμα, καθώς πρόκειται για αριθμητικές πράξεις κινητής υποδιαστολής και το πλάτος εισόδου/εξόδου έχει οριστεί από προεπιλογή σε 32-bit απλής ακρίβειας και 64-bit για κινητή υποδιαστολή διπλής ακρίβειας.
Το παρακάτω σχήμα δείχνει τον διαμορφωτή CoreFPU για τη λειτουργία αφαίρεσης κινητής υποδιαστολής.
Σχήμα 4-5. Διαμορφωτής CoreFPU για αφαίρεση κινητής υποδιαστολήςΠροσομοίωση (Κάντε μια ερώτηση)
Για να εκτελέσετε προσομοιώσεις, στο παράθυρο διαμόρφωσης πυρήνα, επιλέξτε User Testbench. Μετά τη δημιουργία του CoreFPU, η προ-σύνθεση του testbench είναι η Γλώσσα Περιγραφής Υλικού (HDL). fileΤα s είναι εγκατεστημένα στο Libero.
Simulation Waveforms (Ask a Question)
Αυτή η ενότητα συζητά τις κυματομορφές προσομοίωσης για το CoreFPU.
Τα παρακάτω σχήματα δείχνουν την κυματομορφή της μετατροπής από σταθερό σημείο σε κινητή υποδιαστολή τόσο για 32-bit όσο και για 64-bit.
Ενοποίηση συστήματος
Το παρακάτω σχήμα δείχνει έναν πρώηνample of using the core. In this exampΔηλαδή, το UART σχεδιασμού χρησιμοποιείται ως κανάλι επικοινωνίας μεταξύ του σχεδιασμού και του κεντρικού υπολογιστή. Τα σήματα ain και bin (πλάτους 32 bit ή 64 bit το καθένα) είναι οι είσοδοι στο σχεδιασμό από το UART. Αφού το CoreFPU λάβει το σήμα di_valid, υπολογίζει το αποτέλεσμα. Μετά τον υπολογισμό του αποτελέσματος, το σήμα do_valid γίνεται υψηλό και αποθηκεύει το αποτέλεσμα (δεδομένα aout/pout) στην ενδιάμεση μνήμη εξόδου. Η ίδια διαδικασία ισχύει για τις μετατροπές και τις αριθμητικές πράξεις. Για τις μετατροπές, μόνο η είσοδος ain είναι επαρκής, ενώ για τις αριθμητικές πράξεις, απαιτούνται τόσο οι είσοδοι ain όσο και bin. Η έξοδος aout είναι ενεργοποιημένη για τις μετατροπές και η θύρα pout είναι ενεργοποιημένη για τις αριθμητικές πράξεις.
Εικόνα 4-16. Πρώηνample of the CoreFPU System
- Σύνθεση (Υποβολή ερώτησης)
Για να εκτελέσετε σύνθεση στο CoreFPU, ορίστε τη ρίζα σχεδίασης στην παρουσία του στοιχείου IP και από το παράθυρο ροής σχεδίασης Libero, εκτελέστε το εργαλείο Σύνθεσης.
Τόπος και Διαδρομή (Υποβολή Ερώτησης)
Αφού ολοκληρωθεί η σύνθεση του σχεδιασμού, εκτελέστε το εργαλείο Place-and-Route. Το CoreFPU δεν απαιτεί ειδικές ρυθμίσεις placeand-route. - User Testbench (Υποβολή ερώτησης)
Ένα δοκιμαστικό κέντρο χρήστη παρέχεται με την έκδοση IP του CoreFPU. Χρησιμοποιώντας αυτό το δοκιμαστικό κέντρο, μπορείτε να επαληθεύσετε τη λειτουργική συμπεριφορά του CoreFPU.
Ένα απλοποιημένο διάγραμμα μπλοκ του δοκιμαστικού πάγκου χρήστη φαίνεται στο ακόλουθο σχήμα. Το δοκιμαστικό πάγκο χρήστη δημιουργεί την αρχική μορφή του σχεδιασμού Configured CoreFPU (UUT) και περιλαμβάνει τη γεννήτρια δεδομένων δοκιμών συμπεριφοράς, το απαραίτητο ρολόι και τα σήματα επαναφοράς.
Σχήμα 4-17. Δοκιμαστικός πάγκος χρήστη CoreFPU
Σημαντικό: Πρέπει να παρακολουθείτε τα σήματα εξόδου στον προσομοιωτή ModelSim, ανατρέξτε στην ενότητα Προσομοίωση.
Additional References (Ask a Question)
Αυτή η ενότητα παρέχει μια λίστα με πρόσθετες πληροφορίες.
Για ενημερώσεις και πρόσθετες πληροφορίες σχετικά με το λογισμικό, τις συσκευές και το υλικό, επισκεφθείτε τη διεύθυνση
Σελίδες πνευματικής ιδιοκτησίας στα FPGA και PLD μικροτσίπ webτοποθεσία.
- Γνωστά προβλήματα και λύσεις (Υποβάλετε μια ερώτηση)
Δεν υπάρχουν γνωστά προβλήματα και λύσεις για το CoreFPU v3.0. - Διακοπείσες λειτουργίες και συσκευές (Υποβάλετε μια ερώτηση)
Δεν υπάρχουν λειτουργίες και συσκευές που έχουν διακοπεί με αυτήν την έκδοση IP.
Γλωσσάριο
The following are the list of terms and definitions used in the document.
Πίνακας 6-1. Όροι και ορισμοί
Ορος | Ορισμός |
FPU | Μονάδα Κυμαινόμενου Σημείου |
FP ADD | Floating-Point Addition |
Υποβρύχιο FP | Αφαίρεση κινητής υποδιαστολής |
ΠΟΛΛΑΠΛΩΝ FP | Πολλαπλασιασμός κινητής υποδιαστολής |
Επιλυμένα Θέματα
Ο παρακάτω πίνακας παραθέτει όλα τα επιλυμένα προβλήματα για τις διάφορες εκδόσεις του CoreFPU.
Πίνακας 7-1. Επιλυμένα Θέματα
Ελευθέρωση | Περιγραφή |
3.0 | Ακολουθεί η λίστα με όλα τα επιλυμένα προβλήματα στην έκδοση v3.0:
Αριθμός υπόθεσης: 01420387 και 01422128 Προστέθηκε η λογική του σχήματος στρογγυλοποίησης (στρογγυλοποίηση στον πλησιέστερο ζυγό αριθμό). |
2.1 | Ακολουθεί η λίστα με όλα τα επιλυμένα προβλήματα στην έκδοση v2.1: Ο σχεδιασμός αντιμετωπίζει προβλήματα λόγω της παρουσίας διπλότυπων ενοτήτων όταν δημιουργούνται πολλαπλοί πυρήνες. Η μετονομασία της παρουσίας IP του CoreFPU έχει ως αποτέλεσμα το σφάλμα "Undefined module". |
1.0 | Αρχική Έκδοση |
Αξιοποίηση Πόρων Συσκευής και Απόδοση
Η μακροεντολή CoreFPU υλοποιείται στις οικογένειες που παρατίθενται στον παρακάτω πίνακα.
Πίνακας 8-1. Χρήση συσκευής μονάδας FPU PolarFire για 32-Bit
FPGA Resources | Χρησιμοποίηση | |||||||
Οικογένεια | 4LUT | DFF | Σύνολο | Μαθηματικό μπλοκ | Συσκευή | Ποσοστόtage | Εκτέλεση | Αφάνεια |
Από σταθερό σημείο σε κινητό σημείο | ||||||||
PolarFire® | 260 | 104 | 364 | 0 | MPF300T | 0.12 | 310 MHz | 3 |
Από κινητό σημείο σε σταθερό σημείο | ||||||||
PolarFire | 591 | 102 | 693 | 0 | MPF300T | 0.23 | 160 MHz | 3 |
Floating-Point Addition | ||||||||
PolarFire | 1575 | 1551 | 3126 | 0 | MPF300T | 1.06 | 340 MHz | 16 |
Αφαίρεση κινητής υποδιαστολής | ||||||||
PolarFire | 1561 | 1549 | 3110 | 0 | MPF300T | 1.04 | 345 MHz | 16 |
Πολλαπλασιασμός κινητής υποδιαστολής | ||||||||
PolarFire | 465 | 847 | 1312 | 4 | MPF300T | 0.44 | 385 MHz | 14 |
FPGA Resources | Χρησιμοποίηση | |||||||
Οικογένεια | 4LUT | DFF | Σύνολο | Μαθηματικό μπλοκ | Συσκευή | Ποσοστόtage | Εκτέλεση | Αφάνεια |
Από σταθερό σημείο σε κινητό σημείο | ||||||||
RTG4™ | 264 | 104 | 368 | 0 | RT4G150 | 0.24 | 160 MHz | 3 |
Από κινητό σημείο σε σταθερό σημείο | ||||||||
RTG4 | 439 | 112 | 551 | 0 | RT4G150 | 0.36 | 105 MHz | 3 |
Floating-Point Addition | ||||||||
RTG4 | 1733 | 1551 | 3284 | 0 | RT4G150 | 1.16 | 195 MHz | 16 |
Αφαίρεση κινητής υποδιαστολής | ||||||||
RTG4 | 1729 | 1549 | 3258 | 0 | RT4G150 | 1.16 | 190 MHz | 16 |
Πολλαπλασιασμός κινητής υποδιαστολής | ||||||||
RTG4 | 468 | 847 | 1315 | 4 | RT4G150 | 0.87 | 175 MHz | 14 |
FPGA Resources | Χρησιμοποίηση | |||||||
Οικογένεια | 4LUT | DFF | Σύνολο | Μαθηματικό μπλοκ | Συσκευή | Ποσοστόtage | Εκτέλεση | Αφάνεια |
Από σταθερό σημείο σε κινητό σημείο | ||||||||
PolarFire® | 638 | 201 | 849 | 0 | MPF300T | 0.28 | 305 MHz | 3 |
Από κινητό σημείο σε σταθερό σημείο | ||||||||
PolarFire | 2442 | 203 | 2645 | 0 | MPF300T | 0.89 | 110 MHz | 3 |
Floating-Point Addition | ||||||||
PolarFire | 5144 | 4028 | 9172 | 0 | MPF300T | 3.06 | 240 MHz | 16 |
Αφαίρεση κινητής υποδιαστολής | ||||||||
PolarFire | 5153 | 4026 | 9179 | 0 | MPF300T | 3.06 | 250 MHz | 16 |
Πολλαπλασιασμός κινητής υποδιαστολής | ||||||||
PolarFire | 1161 | 3818 | 4979 | 16 | MPF300T | 1.66 | 340 MHz | 27 |
FPGA Resources | Χρησιμοποίηση | |||||||
Οικογένεια | 4LUT | DFF | Σύνολο | Μαθηματικό μπλοκ | Συσκευή | Ποσοστόtage | Εκτέλεση | Αφάνεια |
Από σταθερό σημείο σε κινητό σημείο | ||||||||
RTG4™ | 621 | 201 | 822 | 0 | RT4G150 | 0.54 | 140 MHz | 3 |
Από κινητό σημείο σε σταθερό σημείο | ||||||||
RTG4 | 1114 | 203 | 1215 | 0 | RT4G150 | 0.86 | 75 MHz | 3 |
Floating-Point Addition | ||||||||
RTG4 | 4941 | 4028 | 8969 | 0 | RT4G150 | 5.9 | 140 MHz | 16 |
Αφαίρεση κινητής υποδιαστολής | ||||||||
RTG4 | 5190 | 4026 | 9216 | 0 | RT4G150 | 6.07 | 130 MHz | 16 |
Πολλαπλασιασμός κινητής υποδιαστολής | ||||||||
RTG4 | 1165 | 3818 | 4983 | 16 | RT4G150 | 3.28 | 170 MHz | 27 |
Σημαντικό: Για να αυξήσετε τη συχνότητα, επιλέξτε την επιλογή Ενεργοποίηση επαναχρονισμού στη ρύθμιση σύνθεσης.
Ιστορικό αναθεώρησης
Το ιστορικό αναθεωρήσεων περιγράφει τις αλλαγές που εφαρμόστηκαν στο έγγραφο. Οι αλλαγές παρατίθενται με αναθεώρηση, ξεκινώντας από την πιο πρόσφατη δημοσίευση.
Υποστήριξη FPGA μικροτσίπ
Η ομάδα προϊόντων Microchip FPGA υποστηρίζει τα προϊόντα της με διάφορες υπηρεσίες υποστήριξης, όπως Εξυπηρέτηση Πελατών, Κέντρο τεχνικής υποστήριξης πελατών, webιστοσελίδα και γραφεία πωλήσεων σε όλο τον κόσμο. Προτείνεται στους πελάτες να επισκεφτούν τους διαδικτυακούς πόρους του Microchip πριν επικοινωνήσουν με την υποστήριξη, καθώς είναι πολύ πιθανό τα ερωτήματά τους να έχουν ήδη απαντηθεί.
Επικοινωνήστε με το Κέντρο Τεχνικής Υποστήριξης μέσω του webτοποθεσία στο www.microchip.com/support. Αναφέρετε τον αριθμό ανταλλακτικού συσκευής FPGA, επιλέξτε την κατάλληλη κατηγορία περίπτωσης και μεταφορτώστε το σχέδιο files κατά τη δημιουργία θήκης τεχνικής υποστήριξης.
Επικοινωνήστε με την Εξυπηρέτηση Πελατών για μη τεχνική υποστήριξη προϊόντων, όπως τιμολόγηση προϊόντων, αναβαθμίσεις προϊόντων, πληροφορίες ενημέρωσης, κατάσταση παραγγελίας και εξουσιοδότηση.
- Από τη Βόρεια Αμερική, καλέστε το 800.262.1060
- Από τον υπόλοιπο κόσμο, καλέστε στο 650.318.4460
- Φαξ, από οπουδήποτε στον κόσμο, 650.318.8044
Πληροφορίες μικροτσίπ
Εμπορικά σήματα
Το όνομα και το λογότυπο "Microchip", το λογότυπο "M" και άλλα ονόματα, λογότυπα και εμπορικά σήματα είναι σήματα κατατεθέντα και μη καταχωρημένα εμπορικά σήματα της Microchip Technology Incorporated ή των θυγατρικών ή/και θυγατρικών της στις Ηνωμένες Πολιτείες και/ή σε άλλες χώρες ("Microchip Εμπορικά σήματα»). Πληροφορίες σχετικά με τα εμπορικά σήματα Microchip μπορείτε να βρείτε στη διεύθυνση https://www.microchip.com/en-us/about/legal-information/microchip-trademarks
ISBN: 979-8-3371-0947-3
Νομική ειδοποίηση
Αυτή η δημοσίευση και οι πληροφορίες στο παρόν μπορούν να χρησιμοποιηθούν μόνο με προϊόντα Microchip, συμπεριλαμβανομένου του σχεδιασμού, της δοκιμής και της ενσωμάτωσης προϊόντων Microchip στην εφαρμογή σας. Η χρήση αυτών των πληροφοριών με οποιονδήποτε άλλο τρόπο παραβιάζει αυτούς τους όρους. Οι πληροφορίες σχετικά με τις εφαρμογές συσκευών παρέχονται μόνο για τη δική σας διευκόλυνση και ενδέχεται να αντικατασταθούν από ενημερώσεις. Είναι δική σας ευθύνη να διασφαλίσετε ότι η αίτησή σας πληροί τις προδιαγραφές σας. Επικοινωνήστε με το τοπικό γραφείο πωλήσεων Microchip για πρόσθετη υποστήριξη ή λάβετε πρόσθετη υποστήριξη στο www.microchip.com/en-us/support/design-help/client-support-services
ΑΥΤΕΣ ΟΙ ΠΛΗΡΟΦΟΡΙΕΣ ΠΑΡΕΧΟΝΤΑΙ ΑΠΟ ΤΟ MICROCHIP «AS IS». Το MICROCHIP ΔΕΝ ΠΑΡΕΧΕΙ ΚΑΜΙΑ ΔΗΛΩΣΗ Ή ΕΓΓΥΗΣΗ ΟΠΟΙΟΥΔΗΠΟΤΕ ΕΙΔΟΥΣ ΡΗΤΗ Ή ΣΙΩΠΗΡΗ, ΓΡΑΠΤΗ Ή ΠΡΟΦΟΡΙΚΗ, ΝΟΜΙΚΕΣ Ή ΑΛΛΙΩΣ, ΣΧΕΤΙΚΑ ΜΕ ΤΙΣ ΠΛΗΡΟΦΟΡΙΕΣ ΠΟΥ ΠΕΡΙΛΑΜΒΑΝΟΥΝ ΑΛΛΑ ΟΧΙ ΠΕΡΙΟΡΙΣΜΕΝΕΣ ΜΗ ΠΑΡΑΒΙΑΣΗ, ΕΜΠΟΡΕΥΣΙΜΟΤΗΤΑ ΚΑΙ ΚΑΤΑΛΛΗΛΟΤΗΤΑ ΓΙΑ ΣΥΓΚΕΚΡΙΜΕΝΟ ΣΚΟΠΟ Ή ΕΓΓΥΗΣΕΙΣ ΣΧΕΤΙΚΑ ΜΕ ΤΗΝ ΚΑΤΑΣΤΑΣΗ, ΤΗΝ ΠΟΙΟΤΗΤΑ Ή ΤΗΝ ΑΠΟΔΟΣΗ ΤΟΥ.
ΣΕ ΚΑΜΙΑ ΠΕΡΙΠΤΩΣΗ ΔΕΝ ΕΙΝΑΙ ΥΠΕΥΘΥΝΗ Η ΜΙΚΡΟΤΣΙΠ ΓΙΑ ΟΠΟΙΑΔΗΠΟΤΕ ΕΜΜΕΣΗ, ΕΙΔΙΚΗ, ΤΙΜΩΡΙΚΗ, ΣΥΜΠΤΩΜΑΤΙΚΗ Ή ΣΥΝΕΠΕΙΡΗ ΑΠΩΛΕΙΑ, ΖΗΜΙΑ, ΚΟΣΤΟΣ Ή ΔΑΠΑΝΗ ΟΠΟΙΟΥΔΗΠΟΤΕ ΕΙΔΟΥΣ ΣΧΕΤΙΚΑ ΜΕ ΤΙΣ Η.Π.Α. ΑΚΟΜΑ ΚΑΙ ΑΝ ΕΧΕΙ ΣΥΜΒΟΥΛΕΥΘΕΙ ΜΙΚΡΟΤΣΙΠ ΓΙΑ ΤΗΝ ΠΙΘΑΝΟΤΗΤΑ Ή ΟΙ ΒΛΑΒΕΣ ΕΙΝΑΙ ΠΡΟΒΛΕΠΤΕΣ. ΣΤΟΝ ΠΛΗΡΗ ΒΑΘΜΟ ΠΟΥ ΕΠΙΤΡΕΠΕΤΑΙ ΑΠΟ ΤΟ ΝΟΜΟ, Η ΣΥΝΟΛΙΚΗ ΕΥΘΥΝΗ ΤΗΣ ΜΙΚΡΟΤΣΙΠ ΓΙΑ ΟΛΕΣ ΤΙΣ ΑΠΑΙΤΗΣΕΙΣ ΜΕ ΟΠΟΙΟΔΗΠΟΤΕ ΤΡΟΠΟ ΣΧΕΤΙΚΑ ΜΕ ΤΙΣ ΠΛΗΡΟΦΟΡΙΕΣ Ή ΤΗ ΧΡΗΣΗ ΤΟΥ ΔΕΝ ΘΑ ΥΠΕΡΒΑΙΝΕΙ ΤΟ ΠΟΣΟ ΤΩΝ ΤΕΛΩΝ, ΕΑΝ ΥΠΑΡΧΕΙ, ΑΥΤΟ ΠΟΛΥ ΑΥΤΟ ΠΛΗΡΟΦΟΡΙΕΣ.
Η χρήση των συσκευών Microchip σε εφαρμογές υποστήριξης ζωής ή/και ασφάλειας είναι εξ ολοκλήρου με κίνδυνο του αγοραστή και ο αγοραστής συμφωνεί να υπερασπιστεί, να αποζημιώσει και να διατηρήσει το αβλαβές Microchip από οποιαδήποτε ζημιά, αξιώσεις, κοστούμια ή έξοδα που προκύπτουν από αυτή τη χρήση. Καμία άδεια δεν μεταβιβάζεται, σιωπηρά ή με άλλο τρόπο, βάσει οποιωνδήποτε δικαιωμάτων πνευματικής ιδιοκτησίας Microchip, εκτός εάν αναφέρεται διαφορετικά.
Δυνατότητα προστασίας κωδικών συσκευών μικροτσίπ
Σημειώστε τις ακόλουθες λεπτομέρειες της δυνατότητας προστασίας κωδικών σε προϊόντα Microchip:
- Τα προϊόντα μικροτσίπ πληρούν τις προδιαγραφές που περιέχονται στο συγκεκριμένο φύλλο δεδομένων μικροτσίπ τους.
- Η Microchip πιστεύει ότι η οικογένεια προϊόντων της είναι ασφαλής όταν χρησιμοποιείται με τον προβλεπόμενο τρόπο, εντός των προδιαγραφών λειτουργίας και υπό κανονικές συνθήκες.
- Το Microchip εκτιμά και προστατεύει επιθετικά τα δικαιώματα πνευματικής ιδιοκτησίας του. Οι προσπάθειες παραβίασης των χαρακτηριστικών προστασίας κωδικών των προϊόντων Microchip απαγορεύονται αυστηρά και ενδέχεται να παραβιάζουν τον Νόμο για τα δικαιώματα πνευματικής ιδιοκτησίας στην ψηφιακή εποχή.
- Ούτε το Microchip ούτε οποιοσδήποτε άλλος κατασκευαστής ημιαγωγών μπορεί να εγγυηθεί την ασφάλεια του κώδικά του. Η προστασία κωδικού δεν σημαίνει ότι εγγυόμαστε ότι το προϊόν είναι «άθραυστο». Η προστασία κωδικών εξελίσσεται συνεχώς. Η Microchip δεσμεύεται να βελτιώνει συνεχώς τα χαρακτηριστικά προστασίας κωδικών των προϊόντων μας.
Έγγραφα / Πόροι
![]() |
Μονάδα κινητής υποδιαστολής πυρήνα MICROCHIP CoreFPU Core [pdf] Οδηγός χρήστη v3.0, v2.1, v2.0, v1.0, CoreFPU Core Floating Point Unit, Core Floating Point Unit, Floating Point Unit, Point Unit |