Πίνακας περιεχομένων:

Σχεδιασμός ενός απλού ελεγκτή VGA σε VHDL και Verilog: 5 βήματα
Σχεδιασμός ενός απλού ελεγκτή VGA σε VHDL και Verilog: 5 βήματα

Βίντεο: Σχεδιασμός ενός απλού ελεγκτή VGA σε VHDL και Verilog: 5 βήματα

Βίντεο: Σχεδιασμός ενός απλού ελεγκτή VGA σε VHDL και Verilog: 5 βήματα
Βίντεο: Raijintek Silenos Ms Pro Unboxing( GREEK) #Raijintek #Silenos #white 2024, Ιούνιος
Anonim
Σχεδιασμός ενός απλού ελεγκτή VGA σε VHDL και Verilog
Σχεδιασμός ενός απλού ελεγκτή VGA σε VHDL και Verilog

Σε αυτό το διδακτικό, θα σχεδιάσουμε έναν απλό ελεγκτή 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
Ενσωμάτωση ελεγκτή 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.

Συνιστάται: