Εγκατάσταση του Quartus Οδηγίες εγκατάστασης και χρήσης του Quartus Δημήτρης Μαγγίρας, Γιώργος Δημητρακόπουλος 1. Κατεβάζουμε την έκδοση 13.0SP1 από εδώ ακολουθώντας τις οδηγίες που φαίνονται στην εικόνα. 2. Στη νέα σελίδα που θα ανοίξει επιλέγουμε το λειτουργικό σύστημα που έχουμε, διαλέγουμε Direct Download και στη συνέχεια από την καρτέλα Individual Files κατεβάζουμε το αρχείο Quartus II Software όπως φαίνονται παρακάτω. (Για το download των αρχείων χρειάζεται να συνδεθούμε στον λογαριασμό μας είτε να δημιουργήσουμε εάν δεν διαθέτουμε).
3. Ξεκινάμε κάνοντας εγκατάσταση το QuartusSetupWeb-13.0.1.232.exe πατώντας το κουμπί Next. 4. Μόλις τελειώσει η εγκατάσταση, στο pop-up window επιλέγουμε το Run the Quartus II software. Χρήση του Quartus για την υλοποίηση κυκλώματος σε FPGA 1. Φτιάχνουμε φάκελο ο οποίος θα περιέχει όλα τα αρχεία του project μας. Για παράδειγμα «counter» στο path C:/altera/13.0sp1/projects/ και βάζουμε τα αρχεία Verilog τα οποία περιγράφουν το κύκλωμα (όχι το testbench). Στο συγκεκριμένο παράδειγμα υλοποιούμε έναν counter στο αρχείο counter.sv με τον παρακάτω κώδικα: module counter #(parameter int WIDTH = 8) //Input-Output List (input logic clk, input logic rst_n, input logic cnt_en, output logic[width-1:0] val_out); //Internal Signal(flip-flops) logic[width-1:0] cnt; //Functionality always_ff @(posedge clk, negedge rst_n) begin if(!rst_n) cnt <= 0; else begin if (cnt_en) cnt <= cnt + 1; end end assign val_out = cnt; endmodule Κώδικας 1. Περιγραφή του counter σε System Verilog. Σχήμα 1. Το επιθυμητό κύκλωμα που περιγράφει ο Κώδικας 1. 2. Στη συνέχεια ανοίγουμε το Quartus και δημιουργούμε ένα νέο project από το File -> New Project Wizard. 3. Στο Introduction window πατάμε Next. 4. Στη συνέχεια στο 1 ο πεδίο επιλέγουμε το φάκελο του project που δημιουργήσαμε προηγουμένως. Στο 2 ο πεδίο γράφουμε το όνομα του project, ενώ στο 3 ο πεδίο διαλέγουμε το top-level entity του design. Τop-level entity είναι το υψηλότερο ιεραρχικά module στην περίπτωσή μας το counter και πατάμε Next.
5. Πρέπει να προσθέσουμε τα system Verilog αρχεία του project. Πατάμε στο κουμπί με τον αριθμό 1 και επιλέγουμε όλα τα Verilog αρχεία στο project (στην περίπτωσή μας μόνο το counter.sv) και πατάμε Add. Όταν έχουμε επιλέξει τα αρχεία δεν θα είναι γκρι. Σιγουρευόμαστε πως τα Verilog αρχεία έχουν προστεθεί όπως φαίνεται στο περιοχή με τον αριθμό 3 και πατάμε Next. 6. Στο Device family επιλέγουμε Cyclone II και στο Target device την επιλογή Specific device selected in Available devices list. Στη λίστα των διαθέσιμων συσκευών ψάχνουμε και επιλέγουμε την FPGA του εργαστηρίου η οποία έχει όνομα EP2C20F484C7 και συνεχίζουμε πατώντας Next. Σημείωση: Κανονικά θα πρέπει να είναι διαθέσιμο το όνομα της πλακέτας μας. Σε διαφορετική περίπτωση πρέπει να το κατεβάσουμε manually. Πηγαίνουμε πάλι στο site απ όπου κατεβάσαμε το quartus.exe. Στην καρτέλα Individual Files στην περιοχή με τα Devices επιλέγουμε και κατεβάζουμε το Cyclone II. Αφού ολοκληρωθεί η λήψη, στο Quartus πάμε Tools -> Install Devices και βρίσκουμε το.qdz που κατεβάσαμε.
7. Στο επόμενο παράθυρο με τίτλο EDA Tools Settings [page 4 of 5] δεν αλλάζουμε κάτι και πατάμε Finish. 8. Ελέγχουμε εάν έχει προστεθεί το project μας και πατάμε το κουμπί Start Compilation. Σε αυτό το βήμα γίνεται η λογική σύνθεση του κυκλώματος και επομένως είναι πολύ πιθανό να προκύψουν σφάλματα (errors) που υπάρχουν στον κώδικά μας, ακόμη και αν περνάει από simulation με το modelsim. Σε κάθε περίπτωση ελέγχουμε και διορθώνουμε τα πιθανά σφάλματα. Εάν δεν υπάρχει κάποιο πρόβλημα τότε το compilation θα ολοκληρωθεί εμφανίζοντας το μήνυμα Full Compilation was successful και πατάμε ΟΚ. Προσοχή, κάποια warnings είναι αναμενόμενα (περίπου 12) 9. Στη συνέχεια και πριν φορτώσουμε το κύκλωμα στην FPGA, πρέπει να αντιστοιχίσουμε τα σήματα εισόδου και εξόδου του κυκλώματος, με τα φυσικά pins της FPGA. Για να το κάνουμε αυτό πάμε Assignments -> Pin Planner. Από το eclass του μαθήματος, ανοίγουμε το αρχείο «Οδηγός χρήσης πλακέτας FPGA», στο οποίο μπορούμε να βρούμε την ονομασία του κάθε Pin της FPGA όπως τα clocks, τα LED Pins και τα VGA Pins. Για παράδειγμα, το σήμα ρολογιού των 50MHz το βρίσκουμε στο section 4.4 Clock Inputs στο πίνακα 4.5 με την ονομασία PIN_L1. Για το σήμα reset επιλέγουμε κάποιο από τα Pushbuttons πάνω στην FPGA, έστω αυτό που αντιστοιχεί στο PIN_R22. Αντίστοιχα, για τα σήματα εξόδου (val_out) θα πρέπει να αντιστοιχίσουμε κάθε ένα bit του σήματος σε LED light που βρίσκονται στην FPGA. Έτσι ανατρέχοντας πάλι στο pdf file από το eclass στο αντίστοιχο section για τα LEDs, επιλέγουμε το 7 ο bit του σήματος εξόδου val_out να αντιστοιχηθεί στο PIN_Y21 (δηλαδή το LEDG[7] ). Ομοίως, για το 6 ο bit του val_out επιλέγουμε το LEDG[6] που είναι το PIN_Y22. Έτσι, στο παράθυρο του Pin Planner αντιστοιχίζουμε το όνομα του σήματος του κυκλώματός μας (στήλη Node Name) με το επιθυμητό Pin της FPGA (στήλη Location). Σημείωση: Σε όλες τις εργαστηριακές σας ασκήσεις θα επιλέγετε πάντα το σήμα ρολογιού των 50MHz. Με τον ίδιο τρόπο συμπληρώνουμε όλα τα pins και στη συνέχεια ξανακάνουμε compile. 10. Για να φορτώσουμε το project στην FPGA συνδέουμε την FPGA στο laptop, θέτουμε σε λειτουργία την FPGA, ανοίγουμε τον Programmer από το Tools -> Programmer, ελέγχουμε ότι έχουμε επιλέξει το USB-Blaster και πατάμε το κουμπί Start. Την 1 η φορά που θα συνδέσουμε την FPGA με το laptop θα πρέπει να εγκαταστήσουμε τον αντίστοιχο driver. Για να το κάνουμε αυτό πηγαίνουμε στην Διαχείριση Συσκευών των Windows και κάνουμε ενημέρωση driver του USB Blaster διαλέγοντας την επιλογή Αναζήτηση λογισμικού στον υπολογιστή και επιλέγουμε τον φάκελο εγκατάστασης του Quartus (πχ C:/altera/13.0sp1) προσέχοντας να είναι επιλεγμένο το checkbox για αναζήτηση σε υποφακέλους. Εφόσον γίνει με επιτυχία η εγκατάσταση γυρνάμε στο Quartus, ανοίγουμε τον Programmer (εάν είναι ήδη ανοιχτό το παράθυρο του Programmer, το κλείνουμε και το ξανα ανοίγουμε) και από το Hardware Setup button επιλέγουμε το USB-Blaster. Τώρα μπορούμε να κατεβάσουμε το project στην FPGA πατώντας το Start.
Extra 11. Πριν φορτώσουμε το project στην FPGA μπορούμε να δούμε ποιες περιοχές τις FPGA έχουμε χρησιμοποιήσει. Για να το κάνουμε αυτό πηγαίνουμε Tools -> Chip Planner 12. Επίσης μπορούμε να δούμε οπτικά το project σε επίπεδο RTL από το Tools -> Netlist Viewers -> RTL Viewer. Έτσι για το παράδειγμα του counter σε επίπεδο RTL έχουμε την παρακάτω εικόνα.