Πίνακας περιεχομένων:
2025 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2025-01-23 14:39
Σε αυτό το διδακτικό, θα σχεδιάσουμε έναν απλό ελεγκτή VGA σε RTL. Το VGA Controller είναι το ψηφιακό κύκλωμα που έχει σχεδιαστεί για να οδηγεί οθόνες VGA. Διαβάζει από το Frame Buffer (VGA Memory) που αντιπροσωπεύει το πλαίσιο που θα εμφανιστεί και παράγει τα απαραίτητα δεδομένα και σήματα συγχρονισμού για σκοπούς προβολής.
Αν ψάχνετε για Verilog/System verilog code: Επισκεφτείτε το blog μου VGA Controller και Video System στο Verilog
Βήμα 1: Διασύνδεση ενός ελεγκτή VGA
Ακολουθούν τα κύρια σήματα διεπαφής σε έναν ελεγκτή VGA
- Ρολόι Pixel ή ρολόι VGA
- Σήματα HSYNC και VSYNC
Για την επιλεγμένη οθόνη VGA, πρέπει πρώτα να υπολογίσετε τη συχνότητα του ρολογιού Pixel που απαιτείται για την οδήγησή του. Εξαρτάται από 3 παραμέτρους: Total Horizontal Pixels, Total Vertical Pixels, Screen Refresh Rate.
Τυπικά, F = THP * TVP * Refresh Rate
Βρείτε την τεκμηρίωση για το ρολόι pixel που απαιτείται για διάφορες οθόνες VGA, στο συνημμένο RAR.
Τα σήματα HSYNC και VSYNC δημιουργούνται από ρολόι Pixel. Ο χρονισμός των σημάτων HSYNC και VSYNC εξαρτάται από τον αριθμό των παραμέτρων: Horizontal and Vertical Frontporch, Horizontal and Vertical Backporch, Horizontal and Vertical Display Pixels, Horizontal and Vertical Sync Pulse Widths and Polaities.
Αυτές οι παράμετροι είναι τυποποιημένες για μια επιλεγμένη οθόνη VGA. Βρείτε αυτά τα έγγραφα στο συνημμένο RAR.
Αυτές οι παράμετροι είναι παράμετροι διαμορφώσιμες στο IP του ελεγκτή VGA.
Βήμα 2: Ενσωμάτωση του ελεγκτή VGA με οθόνη VGA
Το σχήμα δείχνει πώς να ενσωματώσετε τον ελεγκτή VGA με μια οθόνη VGA. Χρειάζεστε δύο ακόμη στοιχεία για να ολοκληρώσετε το σύστημα:
- Frame Buffer: Μνήμη που κρατά το πλαίσιο που θα εμφανιστεί.
- Video DAC: DAC που μετατρέπει τα ψηφιακά δεδομένα RGB και οδηγεί την οθόνη VGA με αναλογικά σήματα RGB στο κατάλληλο επίπεδο τάσης.
Ένα από τα πιο απλά και δημοφιλή βίντεο DAC είναι το ADV7125. Είναι ένα DAC 8-bit που μετατρέπει τις ψηφιακές λέξεις RGB σε αναλογικά σήματα 0-0,7 V και οδηγεί την οθόνη VGA.
Βήμα 3: Σχεδιασμός ρυθμιστικού πλαισίου
Είναι η μνήμη που «αποθηκεύει» την εικόνα που θα εμφανιστεί. Είναι συνήθως RAM ή μερικές φορές ROM. Θα συζητήσουμε πώς να σχεδιάσουμε ένα buffer πλαισίου για να αντιπροσωπεύει μια εικόνα. Το buffer πλαισίου μεταφέρει αυτές τις ψηφιακές πληροφορίες σε ένα βίντεο DAC κατόπιν εντολής από τον ελεγκτή VGA.
Πρώτα πρέπει να αποφασίσουμε το απαιτούμενο βάθος pixel. Καθορίζει την ποιότητα της εικόνας, την ποικιλία χρωμάτων που μπορεί να αντιπροσωπεύει ένα pixel. Για ένα DAC 8-bit, πρέπει να αντιπροσωπεύουμε τα κύρια στοιχεία χρώματος ενός εικονοστοιχείου: R, G και B σε 8 bits το καθένα. Αυτό σημαίνει ότι ένα pixel είναι 24-bit.
Κάθε εικονοστοιχείο αποθηκεύεται με συνεχή τρόπο στις θέσεις μνήμης Frame Buffer.
Ας υποθέσουμε ότι μια εικόνα που θα εμφανιστεί είναι 800x600 pixel.
Συνεπώς, το Frame Buffer που χρειάζεται είναι 800x600 = 480000 x 24 bit μνήμης
Το συνολικό μέγεθος της μνήμης είναι 800x600x24 = 1400 kB περίπου.
Αν ασπρόμαυρη εικόνα, 800x600x1 = 60 kB περίπου.
Αποκλεισμός RAM μπορεί να χρησιμοποιηθεί για να αντιπροσωπεύει ένα Buffer Frame σε Xilinx FPGA.
Βήμα 4: Σημειώσεις
- Απαιτούνται πρόσθετα σήματα στον ελεγκτή VGA ανάλογα με το επιλεγμένο DAC. Έχω χρησιμοποιήσει το ADV7125.
- Προσθέστε καθυστερήσεις κύκλου μέσω σαγιονάρων στο VSYNC και το HSYNC πριν οδηγήσετε την οθόνη VGA. Αυτό οφείλεται στις καθυστερήσεις DAC και μνήμης. Τα σήματα εικονοστοιχείων πρέπει να συγχρονίζονται με το HSYNC και το VSYNC. Στην περίπτωσή μου, ήταν καθυστέρηση 2 κύκλων.
- Εάν το Buffer Frame δεδομένου μεγέθους δεν μπορεί να σχεδιαστεί στο FPGA λόγω περιορισμού μεγέθους RAM, χρησιμοποιήστε μικρότερη μνήμη για να αναπαραστήσετε την εικόνα και απλώς επεξεργαστείτε τον κώδικα για να κυλήσει τη διεύθυνση στο όριο της διαθέσιμης μνήμης, αντί για το όριο του πλήρους πλαισίου. Αυτό θα αναπαράγει την ίδια εικόνα ξανά και ξανά σε όλη την οθόνη. Μια άλλη μέθοδος είναι η κλιμάκωση εικονοστοιχείων στην οποία κάθε εικονοστοιχείο αναπαράγεται για να εμφανίσει ολόκληρη την εικόνα σε πλήρη οθόνη, σε μικρότερη ανάλυση. Αυτό μπορεί να γίνει τροποποιώντας τη λογική αύξησης διεύθυνσης στον κώδικα.
- Η IP είναι πλήρως φορητή σε όλα τα FPGA και ελέγχεται ο χρόνος έως και 100 MHz στο Virtex-4 FPGA.
Βήμα 5: Συνημμένα αρχεία
Το RAR περιέχει:
- Κωδικός ελεγκτή VGA
- PDF των προτύπων VGA.
Συνιστάται:
Σχεδιασμός ενός σχηματικού σχήματος στο KiCad: 3 βήματα
Σχεδιασμός ενός σχηματικού σχήματος στο KiCad: Σε αυτό το άρθρο, θα μπορείτε να γνωρίζετε πώς να σχεδιάζετε ένα σχηματικό κύκλωμα στο Ki Cad. Έτσι, πρέπει να γνωρίζετε τι είναι το KiCad. Το KiCad είναι ένα λογισμικό που μπορεί να εγκατασταθεί σε παράθυρα και λογισμικό mac. Αυτό το λογισμικό σάς επιτρέπει να σχεδιάζετε και να δημιουργείτε το desi σας
Σχεδιασμός ενός απλού τεσσάρων κατευθύνσεων συσχετιστικού ελεγκτή μνήμης cache σε VHDL: 4 βήματα
Σχεδιασμός ενός απλού τεσσάρων κατευθυντήριων συστημάτων ελεγκτή μνήμης προσωρινής μνήμης σε VHDL: Στο προηγούμενο διδάσκοντά μου, είδαμε πώς να σχεδιάσουμε έναν απλό ελεγκτή προσωρινής μνήμης απευθείας αντιστοιχισμένου. Αυτή τη φορά, προχωράμε ένα βήμα μπροστά. Θα σχεδιάσουμε ένα απλό τετράπλευρο σύνολο συσχετιστικού ελεγκτή προσωρινής μνήμης. Πλεονέκτημα; Λιγότερο ποσοστό χαμένων, αλλά με κόστος για
Σχεδιασμός προγραμματιζόμενου ελεγκτή διακοπών σε VHDL: 4 βήματα
Σχεδιασμός προγραμματιζόμενου ελεγκτή διακοπών στο VHDL: Είμαι συγκλονισμένος από το είδος των απαντήσεων που λαμβάνω σε αυτό το ιστολόγιο. Ευχαριστώ παιδιά που επισκεφτήκατε το ιστολόγιό μου και μου δώσατε κίνητρο να μοιραστώ τις γνώσεις μου μαζί σας. Αυτή τη φορά, θα παρουσιάσω τον σχεδιασμό μιας άλλης ενδιαφέρουσας ενότητας που βλέπουμε σε όλα τα SOC - Interrupt C
Σχεδιασμός ενός απλού ελεγκτή προσωρινής μνήμης σε VHDL: 4 βήματα
Σχεδιασμός ενός απλού ελεγκτή προσωρινής μνήμης σε VHDL: Γράφω αυτό με οδηγίες, γιατί μου φάνηκε λίγο δύσκολο να βρω κάποιον κώδικα αναφοράς VHDL για να μάθω και να αρχίσω να σχεδιάζω έναν ελεγκτή προσωρινής μνήμης. Έτσι σχεδίασα ένα χειριστήριο cache μόνος μου από την αρχή και το δοκίμασα με επιτυχία στο FPGA. Έχω π
Αποσυναρμολόγηση, καθαρισμός και επανασυναρμολόγηση ενός ελεγκτή Xbox 360 .: 11 βήματα (με εικόνες)
Αποσυναρμολόγηση, καθαρισμός και επανασυναρμολόγηση ενός ελεγκτή Xbox 360: Αυτός ο οδηγός βήμα προς βήμα θα σας δώσει οδηγίες για την αποσυναρμολόγηση, τον καθαρισμό και την επανασυναρμολόγηση του ελεγκτή Xbox 360. Διαβάστε κάθε βήμα στο σύνολό του πολύ προσεκτικά πριν από την εκτέλεση για να αποφύγετε τυχόν προβλήματα κατά τη διαδικασία