Το περιεχόμενο του μαθήματος αφορά τη σχεδίαση ψηφιακών κυκλωμάτων και την υλοποίησή τους σε τεχνολογία Field Programmable Gate Arrays (FPGAs) με τη χρήση των κατάλληλων εργαλείων λογισμικού της XILINX (WebPACK edition του Vivado Design Suite).
Συγκεκριμένα αφορά τη σχεδίαση με τη γλώσσα περιγραφής υλικού VHDL, την δημιουργία κατάλληλων περιορισμών χρονισμού (timing constraints) και I/O (I/O constraints), την σύνθεση (synthesis) και υλοποίηση (implementation) και παραγωγή του bitstream στοχεύοντας συγκεκριμένο FPGA καθώς και την επαλήθευση της ορθής σχεδίασης (verification) σε όλα τα διαδοχικά επίπεδα σχεδίασης (πηγαίος κώδικας VHDL, post synthesis, post place & route) με προσομοίωση (simulation), την αποσφαλμάτωση (debug) καθώς και την επαλήθευση της λειτουργικότητας στο υλικό (FPGA validation) με χρήση κατάλληλης αναπτυξιακής κάρτας (development board).
Τα ψηφιακά κυκλώματα που θα σχεδιαστούν και θα υλοποιηθούν είναι αντίστοιχης διδακτικής σημασίας και πολυπλοκότητας με αυτά που διδάσκονται στο προπτυχιακό μάθημα κορμού της Λογικής Σχεδίασης (K02).
Η αναπτυξιακή κάρτα που χρησιμοποιείται στην εκπαιδευτική διαδικασία είναι η κάρτα Zedboard της Xilinx που φιλοξενεί ένα FPGA της σειράς Zynq 7000 της Xilinx.
Το μάθημα περιλαμβάνει τις ακόλουθες ενότητες:
1. Τεχνολογίες υλοποίησης Ψηφιακών Συστημάτων – Εισαγωγή στις τεχνολογίες FPGA της Xilinx
2. Μεθοδολογία και ροή σχεδίασης με FPGAs
3. Διαδικασία download, αδειοδότησης (licensing) και εγκατάστασης του λογισμικού σχεδίασης FPGA της XILINX. Γνωριμία με την αναπτυξιακή κάρτα.
4. Βασικές έννοιες μοντελοποίησης λογικών εξισώσεων με VHDL
5. Βασικές έννοιες λειτουργικής επαλήθευσης με μοντέλα δοκιμής (VHDL Testbenches)
6. Βασικά συνδυαστικά κυκλώματα (αποκωδικοποιητές, κωδικοποιητές, πολυπλέκτες) με VHDL
7. Βασικές αριθμητικές πράξεις (πρόσθεση, αφαίρεση, σύγκριση, πολλαπλασιασμός) με VHDL
8. Βασικά στοιχεία αποθήκευσης (latches, flip-flops, καταχωρητές, καταχωρητές ολίσθησης) με VHDL
9. Μετρητές με VHDL
10. Μνήμες με VHDL
11. Μηχανές Πεπερασμένων Καταστάσεων (FSMs) με VHDL
12. Περιορισμοί χρονισμού (timing constraints) και σχεδίαση για timing closure
13. Σχεδίαση με χρήση έτοιμων πυρήνων IP (χρήση Xilinx IP Cores)
1) Ψηφιακή Σχεδίαση. Ενσωματωμένα Συστήματα με VHDL, Peter J. Ashenden, Επιστημονική Επιμέλεια – Μετάφραση: Μ. Ψαράκης, Ν. Κρανίτης, Δ. Γκιζόπουλος, Έκδοση 1η, 2010, Εκδόσεις Νέων Τεχνολογιών
2) Σχεδιασμός Κυκλωμάτων με τη VHDL, V.A. Pedroni, Έκδοση 1η, 2008, Εκδόσεις Κλειδάριθμος