Με την αυξανόμενη δημοτικότητα των μικροελεγκτών οι μηχανικοί χρησιμοποιούν μικροελεγκτές περισσότερο από τα FPGA. Οι μικροελεγκτές έχουν κυριαρχήσει στο FPGA λόγω του φθηνού κόστους, της καλής υποστήριξης, της εύκολης διαθεσιμότητας, της μεγάλης κοινότητας, της ευελιξίας, του προγραμματισμού κ.λπ. Αλλά εκτός από αυτό οι μικροεπεξεργαστές έχουν ορισμένους περιορισμούς όπως οι οδηγίες που έχουν οριστεί, η διαδοχική εκτέλεση προγραμμάτων (διαδοχική επεξεργασία), έλλειψη ευελιξίας και επαναχρησιμοποίησης κ.λπ. Ωστόσο, το FPGA μπορεί να ξεπεράσει αυτούς τους περιορισμούς καθώς τα FPGA έχουν παράλληλη εκτέλεση προγραμμάτων και είναι ευέλικτο και επαναχρησιμοποιήσιμο σημαίνει ότι μπορεί να επαναπρογραμματιστεί ξανά και ξανά για διαφορετικές εργασίες.
Τι είναι το FPGA και πώς διαφέρει από τον Μικροελεγκτή
Το Field-Programmable Gate Array είναι ένα ολοκληρωμένο κύκλωμα σιλικόνης που έχει συστοιχία λογικών πυλών και αυτός ο πίνακας μπορεί να προγραμματιστεί στο πεδίο, δηλαδή ο χρήστης μπορεί να αντικαταστήσει τις υπάρχουσες διαμορφώσεις με τις νέες καθορισμένες διαμορφώσεις του και μπορεί να δημιουργήσει το δικό του ψηφιακό κύκλωμα στο πεδίο. Τα FPGA μπορούν να θεωρηθούν ως κενή πλάκα. Τα FPGA δεν κάνουν από μόνα τους, ενώ εναπόκειται στους σχεδιαστές να δημιουργήσουν ένα αρχείο διαμόρφωσης που συχνά ονομάζεται αρχείο bit για το FPGA. Το FPGA θα συμπεριφέρεται σαν το ψηφιακό κύκλωμα μόλις φορτωθεί με ένα bit αρχείο.
Ενώ στους μικροελεγκτές, αυτό δεν συμβαίνει καθώς οι μικροελεγκτές δεν μπορούν να προγραμματιστούν ή να αναδιαρθρωθούν στο πεδίο. Ο χρήστης δεν επιτρέπεται να αντικαταστήσει τις υπάρχουσες διαμορφώσεις του, ούτε μπορεί να δημιουργήσει οποιοδήποτε ψηφιακό κύκλωμα στο πεδίο. Οι μικροελεγκτές είναι εύκολο να προγραμματιστούν και η κοινότητα είναι επίσης ευρεία. Οι μικροελεγκτές είναι προσαρμοσμένοι μίνι υπολογιστές που διατίθενται σε μορφή IC ενώ τα FPGA περιέχουν μόνο λογικά μπλοκ που μπορούν ξανά να επανασυνδεθούν ηλεκτρικά. Επίσης, όσον αφορά τους μικροελεγκτές, καταναλώνει λιγότερη ισχύ από τα FPGA. Τα FPGAs είναι γνωστό ότι είναι δαπανηρά και απαιτεί περισσότερο κόστος από τον μικροελεγκτή όταν πρόκειται για την κατασκευή οποιασδήποτε συσκευής. Τα FPGAs χρειάζονται πολύ περισσότερο χρόνο για τη ρύθμιση, ενώ οι μικροελεγκτές είναι διαθέσιμοι εύκολα κατασκευασμένοι για συγκεκριμένες εφαρμογές.
Αρχιτεκτονική FPGA
Ένα FPGA έχει μια κανονική δομή λογικών κυττάρων ή ενοτήτων και διασυνδέσεων που βρίσκεται υπό τον πλήρη έλεγχο των προγραμματιστών και των σχεδιαστών. Το FPGA είναι κατασκευασμένο με τρία κύρια μπλοκ, όπως Configurable Logic Block (CLB), I / O Blocks ή Pads και Switch Matrix / Interconnection Wires. Κάθε μπλοκ θα συζητηθεί παρακάτω εν συντομία.
- CLB (Configable Logic Block): Αυτά είναι τα βασικά κελιά του FPGA. Αποτελείται από μία γεννήτρια λειτουργίας 8-bit, δύο γεννήτριες λειτουργίας 16-bit, δύο καταχωρητές (flip-flops ή latches) και επαναπρογραμματιζόμενα χειριστήρια δρομολόγησης (πολυπλέκτες) Τα CLBs εφαρμόζονται για την εφαρμογή άλλων σχεδιασμένων λειτουργιών και μακροεντολών. Κάθε CLBs έχει εισόδους σε κάθε πλευρά που τις καθιστούν εύκαμπτες για τη χαρτογράφηση και την κατανομή της λογικής.
- Επιθέματα ή μπλοκ I / O: Τα τακάκια εισόδου / εξόδου χρησιμοποιούνται για τα εξωτερικά περιφερειακά για πρόσβαση στις λειτουργίες του FPGA και χρησιμοποιώντας τα τακάκια I / O μπορεί επίσης να επικοινωνήσει με το FPGA για διαφορετικές εφαρμογές χρησιμοποιώντας διαφορετικά περιφερειακά.
- Καλώδια διακόπτη Matrix / διασύνδεσης: Ο διακόπτης Matrix χρησιμοποιείται στο FPGA για τη σύνδεση καλωδίων μακράς και μικρής διασύνδεσης σε ευέλικτο συνδυασμό Περιέχει επίσης τα τρανζίστορ για να ενεργοποιήσετε / απενεργοποιήσετε τις συνδέσεις μεταξύ διαφορετικών γραμμών.
Όταν χρειάζονται FPGA
Όπως αναφέρθηκε παραπάνω ότι οι μικροελεγκτές έχουν κάποιο περιορισμό και δεν μπορούν να χρησιμοποιηθούν για την εκτέλεση εργασιών παράλληλα, καθώς ο μικροελεγκτής και οι μικροεπεξεργαστές εκτελούνται σε διαδοχική εκτέλεση προγραμμάτων που το καθιστούν λίγο αργό σε ορισμένες εφαρμογές, σε αυτό το σενάριο τα FPGAs έχουν ένα πλεονέκτημα και μπορούν να χρησιμοποιηθούν αποτελεσματικά. Επίσης, ο μικροελεγκτής μπορεί να εκτελεί περιορισμένες εργασίες επειδή συνοδεύονται από οδηγίες και το κύκλωμα τους. Ένας προγραμματιστής πρέπει να συμμορφώνεται με τους περιορισμούς κατά την ανάπτυξη κώδικα. Έτσι, σε αυτό το σενάριο επίσης, τα FPGA έχουν πλεονέκτημα.
Ωστόσο, στην περίπτωση των μικροελεγκτών, ο επεξεργαστής αλλάζει από έναν κωδικό σε έναν άλλο για να επιτύχει κάποιο επίπεδο παραλληλισμού. Θα βρείτε ευκολότερο να γράψετε κωδικούς σε μικροελεγκτές από ότι τα FPGA. Η δυνατότητα παράλληλης επεξεργασίας των FPGAs σας επιτρέπει να ελέγχετε αποτελεσματικά τις διακοπές χρησιμοποιώντας Μηχανές Πεπερασμένης Κατάστασης (FSM).
Στην περίπτωση των μικροελεγκτών, πρέπει να λάβετε υπόψη τον χρόνο που χρειάζεται το ISR για να επιλύσετε μια διακοπή. Μπορείτε να επανασυνδέσετε ένα FPGA εύκολα με τον επαναπρογραμματισμό του. Η διαμόρφωση σε ένα FPGA φορτώνεται στα ρυθμιζόμενα κελιά λογικής όταν είναι ενεργοποιημένη η τροφοδοσία.
Δεν χρειάζεται να κάνετε αλλαγές στο υλικό για να επαναπρογραμματίσετε το FPGA. Τα FPGA είναι κατάλληλα για επεξεργασία υψηλής ταχύτητας παράλληλων δεδομένων και συνοδεύεται από υψηλό βαθμό προσαρμογής. Ωστόσο, έχουν επίσης τα μειονεκτήματα της λειτουργίας πρωτοτύπου και την πολυπλοκότητα της διαμόρφωσης. Έτσι, τα FPGA μπορούν να επιλεγούν με αυτά τα πλεονεκτήματα έναντι των μικροελεγκτών. Ας ξεκινήσουμε τον προγραμματισμό FPGA και να τονίσουμε