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

FPGA Cyclone IV DueProLogic - Push Button & LED: 5 Βήματα
FPGA Cyclone IV DueProLogic - Push Button & LED: 5 Βήματα

Βίντεο: FPGA Cyclone IV DueProLogic - Push Button & LED: 5 Βήματα

Βίντεο: FPGA Cyclone IV DueProLogic - Push Button & LED: 5 Βήματα
Βίντεο: FPGA Cyclone IV DueProLogic - Push button & LED (Tutorial & code) 2024, Δεκέμβριος
Anonim
FPGA Cyclone IV DueProLogic - Push Button & LED
FPGA Cyclone IV DueProLogic - Push Button & LED

Σε αυτό το σεμινάριο, θα χρησιμοποιήσουμε το FPGA για τον έλεγχο του εξωτερικού κυκλώματος LED. Θα υλοποιήσουμε τις ακόλουθες εργασίες

(Α) Χρησιμοποιήστε τα κουμπιά στο FPGA Cyclone IV DuePrologic για τον έλεγχο της λυχνίας LED.

(B) Ανάβει και σβήνει περιοδικά το LED φλας

Επίδειξη βίντεο

Μενού εργαστηρίου:

Βήμα 1: Δημιουργία ηλεκτρονικού κυκλώματος

Βήμα 2: Ελέγξτε το Pin Planner και Edit Verilog Code

Ελέγξτε το Pin Planner και Edit Verilog Code
Ελέγξτε το Pin Planner και Edit Verilog Code

Βήμα 3: Επεξεργασία κώδικα Verilog

Επεξεργασία κώδικα Verilog
Επεξεργασία κώδικα Verilog

Όταν αγοράζετε FPGA DueProLogic, θα πρέπει να λάβετε ένα DVD. Αφού ανοίξετε το "Projects_HDL", θα πρέπει να δείτε το αρχικό αρχείο κώδικα

Προσθέστε τον επισημασμένο κώδικα. Καταχωρεί τις θύρες εισόδου/εξόδου και εκχωρεί αριθμούς στις θύρες.

καλώδιο εξόδου [7: 0] XIO_1, // XIO-D2-D9

σύρμα εξόδου [5: 0] XIO_2, // XIO-D10-D12

σύρμα εξόδου [5: 0] XIO_3, // XIO-D22-D29

σύρμα εισόδου [5: 0] XIO_4, // XIO-D30-D37

σύρμα εισόδου [5: 0] XIO_5, // XIO-D38-D45

σύρμα εξόδου [4: 0] XIO_6_OUT, // XIO-D46-D53

σύρμα εισόδου [31: 5] XIO_6, // XIO-D46-D53

καλώδιο εξόδου [2: 0] XIO_7, // XIO - D69, D70, D71, D74, D75, D76

καλώδιο εισόδου UBA, // Διακόπτες κουμπιού ώθησης

καλώδιο εισόδου UBB // Διακόπτες πλήκτρων

εκχώρηση XIO_1 [3] = start_stop_cntrl;

εκχώρηση XIO_2 [1] = start_blinky; // LED φλας LED ενεργοποίηση και απενεργοποίηση

εκχώρηση XIO_2 [2] = 1'b1; // έξοδος Υ HIGHΗΛΗ

εκχώρηση XIO_2 [3] = ~ UBA; // Πατήστε το κουμπί A

εκχώρηση XIO_2 [4] = UBB; // Πατήστε το κουμπί Β

εκχώρηση c_enable = XIO_5 [2];

εκχώρηση LEDExt = XIO_5 [5];

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

//-----------------------------------------------

// Έναρξη Blinky LED

//-----------------------------------------------

/*

πάντα @(posedge CLK_66 ή negedge RST)

να αρχίσει

αν (! RST)

start_blinky <= 1'b0;

αλλού

να αρχίσει

εάν (control_register [7: 4]> 0)

start_blinky <= 1'b1;

αλλού

start_blinky <= 1'b0;

τέλος

τέλος

*/

reg [31: 0] ex?

αρχική έναρξη

ex <= 32'b0;

start_blinky <= 1'b0;

τέλος

πάντα @(posedge CLK_66)

να αρχίσει

ex <= ex + 1'b1;

εάν (πρώην> 100000000) // αναβοσβήνει ενεργοποιημένο/απενεργοποιημένο ~ 1,6 δευτερόλεπτα, ρολόι 66MHz

να αρχίσει

start_blinky <=! start_blinky;

ex <= 32'b0;

τέλος

τέλος

//-----------------------------------------------

// Μετρητής χρονοδιακόπτη καθυστέρησης LED

//-----------------------------------------------

/*

πάντα @(posedge CLK_66 ή negedge RST)

να αρχίσει

αν (! RST)

led_delay_counter <= TIMER_LOW_LIMIT;

αλλού

να αρχίσει

εάν (κατάσταση [SELECT_MODE])

led_delay_counter <= timer_value;

αλλιώς εάν (κατάσταση [WAIT_FOR_TIMER])

led_delay_counter <= led_delay_counter - 1'd1;

τέλος

τέλος*/

Βήμα 4: Μεταγλώττιση κώδικα Verilog

Μεταγλώττιση Verilog Code
Μεταγλώττιση Verilog Code
Μεταγλώττιση Verilog Code
Μεταγλώττιση Verilog Code

Πατήστε "Έναρξη σύνταξης" στο Quartus, δεν πρέπει να δημιουργηθεί μήνυμα σφάλματος.

Εάν λάβετε μήνυμα σφάλματος για πολλές καρφίτσες. Μεταβείτε στις Εκχωρήσεις -> Συσκευή -> Επιλογές συσκευής και καρφίτσας -> Καρφίτσες διπλού σκοπού -> αλλάξτε την τιμή του κατάλληλου πείρου σε "Χρήση ως κανονικός I/O".

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

Βήμα 5: Ας το δοκιμάσουμε

Άλλωστε, πρέπει να δουλεύει !!! Η κίτρινη λυχνία LED είναι πάντα αναμμένη. Η κόκκινη λυχνία LED αναβοσβήνει. Η μπλε λυχνία LED απενεργοποιείται εάν πατήσετε το κουμπί Β. Η πράσινη λυχνία LED ανάβει εάν πατήσετε το κουμπί Α

Συνιστάται: