FPGA: όλα σχετικά με αυτές τις μάρκες και τον προγραμματισμό τους

Τσιπ FPGA

Ο Τα FPGA έχουν γίνει όλο και πιο δημοφιλή τις τελευταίες στιγμές. Ακόμη και για επαγγελματικές εφαρμογές αυτά τα τσιπ χρησιμοποιούνται συχνά, αλλά και για DIYers και κατασκευαστές που θέλουν να εφαρμόσουν ένα ξεχωριστό κύκλωμα μέσα σε ένα τσιπ με όλα τα πλεονεκτήματα που συνεπάγεται αυτό. Δεν είναι φθηνό ή εύκολο να βρείτε ένα εργοστάσιο για να στείλετε τις διατάξεις ή τα μοτίβα σας και να έχετε ένα προσαρμοσμένο τσιπ κατασκευασμένο για εσάς.

Είναι αλήθεια ότι ορισμένα χυτήρια επιτρέπουν φτιάξτε γκοφρέτες ή γκοφρέτες πολλαπλών έργων να κάνουν μάρκες από άτομα ή πανεπιστήμια για να δοκιμάσουν μαζί τους. Αυτοί οι τύποι εργοστασίων, όπως λέω, είναι δύσκολο να βρεθούν, είναι συνήθως στο εξωτερικό και δεν είναι φθηνοί. Μετά από λίγο, τα δείγματα των μαρκών σας αποστέλλονται στη συμφωνημένη διεύθυνση, αλλά δεν είναι υπεύθυνοι για τη δοκιμή αυτών ή τον έλεγχο της λειτουργίας τους. Όλα εξαρτώνται από το σχέδιό σας ...

ένα εναλλακτική λύση σε αυτό είναι να αγοράσετε ένα FPGA και προγραμματίστε ό, τι χρειάζεστε για να εφαρμόσετε μέσα στο τσιπ ...

Τι είναι το FPGA;

Προγραμματιζόμενα κελιά

Το FPGA σημαίνει Field Programmable Gate Array. Πρόκειται για ψηφιακές συσκευές ή μάρκες που μπορούν να διαμορφωθούν έτσι ώστε να επιτρέπουν σχεδόν οτιδήποτε να υλοποιηθεί. Δηλαδή, είναι ένα κενό chip όπου μπορείτε να "γράψετε". Αυτό σημαίνει ότι μπορείτε να εφαρμόσετε μια CPU, μια μνήμη, έναν ελεγκτή, οποιαδήποτε λογική, κ.λπ., επιτυγχάνοντας μια πολύ γρήγορη λειτουργία και με όλα τα πλεονεκτήματα της ενσωμάτωσής της σε ένα τσιπ και όχι με ηλεκτρονικά στοιχεία.

Ο Ross Freeman και ο Bernard Vonderschmitt, συνιδρυτές της Xilinx, ήταν αυτοί που εφευρέθηκαν το FPGA το 1984. Το έκαναν ως μια εξέλιξη στις μάρκες CPLD εκείνης της εποχής. Οι προγραμματιζόμενες μάρκες CPLD είχαν ελλείψεις που επιλύθηκαν νέα σχέδια FPGA και έκτοτε εξελίχθηκαν.

Η αγορά FPGA είναι τόσο καρποφόρα που αρέσουν στις εταιρείες Intel, Xilinx, Altera, Quick Logic, Lattice κ.λπ., έχουν επενδύσει πολλά για να αναπτύξουν καλύτερα FPGA και επίσης ενσωματωμένα περιβάλλοντα προγραμματισμού ή IDE για αυτούς. Παρέχοντας έτσι πολύ καλές πλατφόρμες για να διευκολύνουμε το έργο των προγραμματιστών ή των κατασκευαστών.

Επί του παρόντος, αυτοί οι κατασκευαστές δεν παρέχουν μόνο ένα προγραμματιζόμενο τσιπ, αλλά και περιλαμβάνουν πολυάριθμα βοηθητικά στοιχεία για να προσφέρει περισσότερες δυνατότητες στους προγραμματιστές. Για παράδειγμα, περιλαμβάνουν κελιά μνήμης flash, κελιά μνήμης SDRAM κ.λπ.

Σε τι χρησιμεύουν;

IDE για προγραμματισμό FPGA

Επομένως, ένα FPGA μπορεί να είναι παρόμοιο με ένα ASIC αλλά αυτό μπορούμε να επιλέξουμε τι θα γίνει. Για παράδειγμα, θα μπορούσαμε να δημιουργήσουμε έναν κώδικα για να τον προγραμματίσουμε και να τον μετατρέψουμε σε CPU, GPU, αθροιστής, ελεγκτή μνήμης ή οποιοδήποτε άλλο λογικό κύκλωμα που εφαρμόζεται σε ένα τσιπ.

Οι δυνατότητες είναι αρκετά ατελείωτες. Στην πραγματικότητα, σας προτείνω να επισκεφθείτε τον ιστότοπο opencores.org, ένας ιστότοπος αφιερωμένος στην προσφορά πληθώρας έργων hardware libre. Θα βρείτε κωδικούς σε VHDL, Verligo, κ.λπ., για RAM, CPU, GPU, ελεγκτές, ALUs, FPUs, αποκωδικοποιητές και ένα μακρύ κλπ..

Πώς προγραμματίζεται;

Προγραμματιστής για FPGA

Για να προγραμματίσουμε ένα FPGA μπορούμε να το κάνουμε από το αγαπημένο μας λειτουργικό σύστημα, όπως GNU / Linux, Windows και MacOS, αν και υπάρχουν σίγουρα περισσότερα περιβάλλοντα ανάπτυξης για τα Windows. Γενικά, οι ίδιες εταιρείες που κάνουν το FPGA προσφέρουν ένα Πολύ πλήρες IDE για εργασία και πού να βρείτε όλα τα εργαλεία που χρειάζεστε στην ίδια σουίτα λογισμικού.

Θα χρειαστείτε επίσης το FPGA chip ή board και το απαραίτητο καλώδιο ή προγραμματιστή με το οποίο μπορείτε να συνδέσετε το FPGA στον υπολογιστή σας για να μεταβιβάσετε τον γραπτό κώδικα στο FPGA και έτσι είναι προγραμματισμένο. Αυτό είναι κάτι παρόμοιο με αυτό που κάνετε με τον πίνακα Arduino, γράφοντας το πρόγραμμα Arduino IDE στην προγραμματιζόμενη μνήμη του μικροελεγκτή.

Μόνο στην περίπτωση του FPGA αυτό που έχουμε είναι ένας πίνακας ή μια σειρά από στοιχειώδη στοιχεία όπως κελιά μνήμης, AND πύλες, Ή, ΟΧΙ, Flip-flops και άλλα. βασικά στοιχεία ή μπλοκ ψηφιακών ηλεκτρονικών που μπορούμε να χρησιμοποιήσουμε. Με το γραπτό πρόγραμμα, αυτό που πρόκειται να κάνουμε είναι να επιβάλουμε τον τρόπο με τον οποίο αυτά τα βασικά μπλοκ πρέπει να ομαδοποιηθούν για να σχηματίσουν το μικρό κύκλωμα που θέλουμε, όπως ένα ALU.

Δηλαδή, εάν προγραμματίσουμε έναν αθροιστή στο IDE μας, τα απαραίτητα μπλοκ για την εφαρμογή αυτού του αθροιστή πρόκειται να συνδεθούν με τον σωστό τρόπο μέσα στο FPGA έτσι ώστε το τσιπ να λειτουργεί ως αθροιστής. Απλό, σωστά; Σε γενικές γραμμές, διάφορες μέθοδοι χρησιμοποιούνται για αυτόν τον προγραμματισμό σε φυσικό επίπεδο, όπως μνήμες ή ασφάλειες για τη δημιουργία μόνιμου συνδέσμου σε αυτήν την περίπτωση.

Η ταχύτητα από την οποία λειτουργούν εξαρτάται από συχνότητα ρολογιού στο οποίο λειτουργεί το FPGA που έχουμε αγοράσει. Για παράδειγμα, οι πιο βασικές λειτουργούν συνήθως στα 50 Mhz, ενώ άλλοι θα το κάνουν σε πολύ υψηλότερες συχνότητες. Στην περίπτωση του FPGA στα 50 Mhz, αυτό σημαίνει ότι θα λειτουργεί με ρυθμό 50.000.000 φορές ανά δευτερόλεπτο. Εάν συνεχίσουμε με τον αθροιστή που έχω δώσει ως παράδειγμα, θα μπορείτε να κάνετε αυτό το ποσό των χρημάτων σε ένα δευτερόλεπτο ...

Συνεχίζοντας με το θέμα του Ο προγραμματισμός, μόλις μάθουμε ότι μπορείτε να γράψετε κώδικα όπως θα κάναμε στο Arduino IDE ή να αναπτύξουμε οποιοδήποτε άλλο πρόγραμμα και βλέποντας πώς γίνεται σε επίπεδο υλικού, θα πω ότι πραγματικά δεν προγραμματίζει ως έχει. Είναι μάλλον μια περιγραφή υλικού. Στην πραγματικότητα, χρησιμοποιούνται γλώσσες περιγραφής υλικού όπως VHDL, Verilog κ.λπ.

με αυτό το πρόγραμμα περιγράφεται σε λογικό επίπεδο τι κάνει το μικρό κύκλωμα που θέλουμε να εφαρμόσουμε. Και μετά πηγαίνει στο FPGA. Αν και είναι αλήθεια ότι ορισμένες πλατφόρμες επιτρέπουν τον προγραμματισμό σε γλώσσες προγραμματισμού όπως το C να είναι σε θέση να εφαρμόσουν μια CPU στο FPGA και στη συνέχεια να δημιουργήσουν προγράμματα για φόρτωση στη μνήμη και επεξεργασία από τον εν λόγω επεξεργαστή.

Ενσωμάτωση με το Arduino

Arduino-FPGA

Τα FPGA χρησιμοποιούνται συνήθως ξεχωριστά, αλλά είναι αλήθεια ότι υπάρχουν πολλά εργαλεία και κιτ στην αγορά που θα κάνουν τη ζωή σας πιο εύκολη στην ενσωμάτωση του FPGA με την πλατφόρμα Arduino. Ένα παράδειγμα ενός πίνακα για να φέρετε FPGA στα έργα σας με το Arduino είναι το MKR Vidor 4000, αν και υπάρχουν και άλλα.

MKR Viewer 4000 είναι ένας πίνακας με τρεις μάρκες. Ένα από αυτά είναι ένα FPGA, ειδικά ένα Intel Cyclone 10. Υπάρχουν επίσης άλλα τσιπ για Bluetooth LE ή χαμηλής ισχύος συνδεσιμότητα και επίσης συμβατότητα WiFi. Ένα καλό συμπλήρωμα για να παρέχετε στο Arduino σας λειτουργίες συνδεσιμότητας και να μπορείτε να εφαρμόσετε ό, τι χρειάζεστε στο FPGA.

Με αυτό έχετε ένα προσαρμόσιμο υλικό, διαμορφωμένο από εσάς για τον σκοπό που θέλετε. Αυτό προσφέρει ατελείωτες δυνατότητες.


Γίνε ο πρώτος που θα σχολιάσει

Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.