ΑΣΚΗΣΗ 1η ΤΟ ΠΕΡΙΒΑΛΛΟΝ ΣΧΕΔΙΑΣΗΣ QUARTUS II ΤΗΣ ALTERA



Σχετικά έγγραφα
ΑΣΚΗΣΗ 4 η ΕΙΣΑΓΩΓΗ ΣΤΗ ΛΟΓΙΚΗ ΣΧΕΔΙΑΣΗ ΜΕ ΧΡΗΣΗ Η/Υ (QUARTUS II ALTERA)

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Σχεδίαση Ψηφιακών Συστημάτων. Ενότητα: Βασικές Μονάδες

Εφαρμογές Ψηφιακών Ηλεκτρονικών

ηµιουργία Αρχείου Πρότζεκτ (.qpf)

ΑΣΚΗΣΗ 2 η N-MOS ΚΑΙ P-MOS TRANSISTOR ΩΣ ΔΙΑΚΟΠΤΗΣ

ΑΣΚΗΣΗ 9η-10η ΑΡΙΘΜΗΤΙΚΗ-ΛΟΓΙΚΗ ΜΟΝΑΔΑ ΕΝΟΣ ΨΗΦΙΟΥ (1-BIT ALU)

ΗΜΥ211 Εργαστήριο Ψηφιακών Συστημάτων

Εισαγωγή στη VHDL Υλοποίηση στο Quartus

Οδηγίες εγκατάστασης και χρήσης του Quartus

ΑΣΚΗΣΗ 2η ΥΛΟΠΟΙΗΣΗ ΑΠΟΚΩΔΙΚΟΠΟΙΗΤΗ ΟΘΟΝΗΣ 7 ΤΜΗΜΑΤΩΝ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα

Εργαστηριακή Άσκηση 4: Ιεραρχική σχεδίαση και προσχεδιασμένοι πυρήνες

ΑΣΚΗΣΗ 8 η -9 η ΣΧΕΔΙΑΣΗ ΑΡΙΘΜΗΤΙΚΗΣ ΛΟΓΙΚΗΣ ΜΟΝΑΔΑΣ ΤΕΣΣΑΡΩΝ ΔΥΑΔΙΚΩΝ ΨΗΦΙΩΝ

Προπαρασκευαστική παρουσίαση. για το Εργαστήριο ΗΜΥ 211. και το λογισμικό Altera Quartus II

ΗΜΥ 213 Εργαστήριο Οργάνωσης Η/Υ και Μικροεπεξεργαστών Εαρινό εξάμηνο Διδάσκων: Γιώργος Ζάγγουλος

Εισαγωγή στη Γλώσσα VHDL

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Σχεδίαση Ψηφιακών Συστημάτων. Ενότητα: ΚΑΤΑΧΩΡΗΤΕΣ - ΑΠΑΡΙΘΜΗΤΕΣ

VHDL Εισαγωγικές έννοιες

Προπαρασκευαστική Άσκηση. για το Εργαστήριο ΗΜΥ 211. και το λογισμικό Altera Max +Plus II

Εισαγωγή στις πύλες NAND, NOR και XOR Σχεδιασμός Ελεγκτή Λαμπτήρων με πολλαπλούς διακόπτες και Ανιχνευτή Πρώτων Αριθμών

Πανεπιστήµιο Θεσσαλίας

Συστήματα Μικροεπεξεργαστών

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

Structural VHDL. Structural VHDL

Πως θα κατασκευάσω το πρώτο πρόγραμμα;

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

Δημιουργία και επεξεργασία διανυσματικών επιπέδων στο QGIS

Οδηγίες για την εγκατάσταση του πακέτου Cygwin

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Ακολουθιακός Κώδικας

Διδάσκoντες: Γιώργος Ζάγγουλος και Λάζαρος Ζαχαρία. Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Επιβεβαίωση ορθής λειτουργίας απλών ψηφιακών κυκλωμάτων

ΕΙΣΑΓΩΓΗ ΔΕΔΟΜΕΝΩΝ ΑΠΟ EXCEL ΣΤΟ GRETL

Διδάσκoντες: Δρ. Γιώργος Ζάγγουλος και Δρ. Παναγιώτα Μ. Δημοσθένους. Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

ΗΜΥ211 Εργαστήριο Ψηφιακών Συστημάτων

Εργαστήριο Οργάνωσης Η/Υ. Δαδαλιάρης Αντώνιος

Σχεδιασμός Αποκωδικοποιητή και υλοποίηση του στο Logisim και στο Quartus. Εισαγωγή στο Logisim

Δημιουργία μιας εφαρμογής Java με το NetBeans

ΑΣΚΗΣΗ 1: TO ΠΕΡΙΒΑΛΛΟΝ ΕΡΓΑΣΙΑΣ DEV-C++

9. O Προσομοιωτής Κβαντικού Υπολογιστή QCS

ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων. Καταχωρητές 1

Εισαγωγή στο περιβάλλον Code::Blocks

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

Κυκλωμάτων» Χειμερινό εξάμηνο

Συνοπτικός Οδηγός Χρήσης του MySQL Workbench

> μεγαλύτερο <= μικρότερο ή ίσο < μικρότερο == ισότητα >= μεγαλύτερο ή ίσο!= διαφορετικό

Εργαστήριο Αρχιτεκτονικής Υπολογιστών Ι. Εισαγωγή στη VHDL

ΗΜΥ211 Εργαστήριο Ψηφιακών Συστημάτων

To περιβάλλον Ανάπτυξης εφαρμογών της Visual Basic 2008 Express Edition

Εισαγωγή στη γλώσσα περιγραφής υλικού VHDL. Γενικά χαρακτηριστικά, σύνταξη και τύποι. Ψηφιακή Σχεδίαση µε CAD ΙΙ - ιάλεξη 1 -

ΑΣΚΗΣΗ 3 ΣΥΝΔΥΑΣΤΙΚΑ ΛΟΓΙΚΑ ΚΥΚΛΩΜΑΤΑ: ΑΝΑΛΥΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ

Ενότητα 6 ΑΝΑΛΥΣΗ & ΣΥΝΘΕΣΗ ΣΥΝΔΥΑΣΤΙΚΗΣ ΛΟΓΙΚΗΣ ΣΥΝΔΥΑΣΤΙΚΑ ΚΥΚΛΩΜΑΤΑ ΠΟΛΛΩΝ ΕΠΙΠΕΔΩΝ

Αρχιτεκτονικές Δικτύων & Πρωτόκολλα Ι

ΟΔΗΓΙΕΣ ΧΡΗΣΤΗ ΓΙΑ ΤΟ ΠΡΟΓΡΑΜΜΑ ΗΛΕΚΤΡΟΝΙΚΗΣ ΤΑΞΗΣ

Λεπτομέριες τοιχοποιίας Σχεδίαση κάτοψης

Περιγραφή του βασικού παραθύρου του Cubase SE3. Εικόνα 1

ΑΣΚΗΣΗ 3 η Ο ΑΝΤΙΣΤΡΟΦΕΑΣ CMOS

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

Εισαγωγή Η VHDL υποστηρίζει τους εξής τρείς βασικούς και διαφορετικούς τρόπους περιγραφής

Διαχείριση Έργων Πληροφορικής Εργαστήριο

Εξοικείωση με το πρόγραμμα DEV C++ Επικοινωνία Χρήστη - Υπολογιστή

26-Nov-09. ΗΜΥ 210: Λογικός Σχεδιασμός, Χειμερινό Εξάμηνο Καταχωρητές 1. Διδάσκουσα: Μαρία Κ. Μιχαήλ

«Κρυπτογράφηση Εταιριών»

ΠΑΡΑΡΤΗΜΑ Β. Verification

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Χειµερινό Εξάµηνο 2016 ΔΙΑΛΕΞΗ 15: Καταχωρητές (Registers)

Σχεδιασμός Συνδυαστικού κυκλώματος και υλοποίηση στο Quartus και στο Logisim. Υλοποίηση κυκλώματος μόνο με πύλες Nand 2 εισόδων.

Εγχειρίδιο Χρήσης V3.0

ΣΧΕΔΙΑΣΜΟΣ ΙΣΤΟΣΕΛΙΔΑΣ ΜΕ ΤΗ ΧΡΗΣΗ "ΠΡΟΤΥΠΟΥ ΙΣΤΟΣΕΛΙΔΑΣ" (TEMPLATE) ΣΤΟ ΠΡΟΓΡΑΜΜΑ MICROSOFT OFFICE SHAREPOINT DESIGNER 2007

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Επεξεργασία πινάκων

Μοντέλα. χαρακτηριστικά χωρίς να συνοδεύεται από λεπτοµέρειες.

Εισαγωγή στις πύλες NAND, NOR και XOR. Σχεδιασμός Ελεγκτή Λαμπτήρων με πολλαπλούς διακόπτες

Ράβδος Εργαλείων, σχεδόν τα ίδια εργαλεία και εικονίδια υπάρχουν όπως στα άλλα προγράμματα που έχετε μάθει μέχρι σήμερα.

Περίληψη. ΗΜΥ-210: Λογικός Σχεδιασµός Εαρινό Εξάµηνο Παράδειγµα: Καταχωρητής 2-bit. Καταχωρητής 4-bit. Μνήµη Καταχωρητών

Εγχειρίδιο Χρήστη Φάση 1: Καταχώρηση Ειδικοτήτων

ΔΗ Μ Ι Ο ΥΡ Γ Ι Α W I K I με τ η χρήση τ η ς υπ ηρεσίας h t t p : / id ot.com /

Υπολογισμός και αποστολή Αναλυτικής Περιοδικής Δήλωσης

Ανάπτυξη εφαρμογής Input-Output

Ορισμός Νέου Κωδικού URegister

ΟΔΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ & ΧΡΗΣΗΣ ΟΛΟΚΛΗΡΩΜΕΝΟΥ ΠΕΡΙΒΑΛΛΟΝΤΟΣ ΑΝΑΠΤΥΞΗΣ BloodShed Dev-C++

Εθνική Σχολή Δημόσιας Υγείας Υγειονομική Σχολή Αθηνών Οδηγός Υποβολής. Ηλεκτρονική Υποβολή Αιτήσεων για τα Μεταπτυχιακά Προγράμματα Σπουδών

KiCad Create new project Eeschema Electronic schematic editor Eeschema Page settings grid Place component

Σχεδίαση Ψηφιακών Συστημάτων

ΣΧΕΔΙΑΣΜΟΣ ΙΣΤΟΣΕΛΙΔΑΣ ΜΕ ΤΗ ΧΡΗΣΗ ΠΡΟΤΥΠΟΥ ΙΣΤΟΣΕΛΙΔΑΣ (TEMPLATE) ΣΤΟ ΠΡΟΓΡΑΜΜΑ MICROSOFT OFFICE SHAREPOINT DESIGNER 2007

ΕΡΓΑΛΕΙΑ ΚΑΤΑΣΚΕΥΗΣ ΠΑΙΧΝΙΔΙΩΝ: Εργασία με το λογισμικό Valve Editor

Εργαστήριο 1-1 η Άσκηση - Ανάλυση

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΥΠΗΡΕΣΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΥΠΟΔΟΜΗΣ ΟΔΗΓΟΣ ΧΡΗΣΗΣ ΤΗΣ ΥΠΗΡΕΣΙΑΣ ΤΗΛΕΟΜΟΙΟΤΥΠΟΥ (FAX) ΜΕΣΩ ΤΗΣ ΔΙΑΔΙΚΤΥΑΚΗΣ ΕΦΑΡΜΟΓΗΣ WEBUTIL

ΗΜΥ211 Εργαστήριο Ψηφιακών Συστημάτων

Προσοµοίωση Συστηµάτων µε VHDL. (Peter Ashenden, The Students Guide to VHDL)

Τυπικζσ Γλώςςεσ Περιγραφήσ Υλικοφ Εργαςτήριο 4

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Python. 1η Ομάδα Ασκήσεων

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ GRS-1

Δομές Δεδομένων. Σημειώσεις από το εργαστήριο για τον χειρισμό του προγράμματος Eclipse. 5ο εξάμηνο. v1.0

Ανάκτηση Κωδικού URegister για Νεοεισαχθέντες Φοιτητές

Βήμα 1ο. Συνδεθείτε στο σύστημα διαχείρισης του Joomla ιστοχώρου σας. Η διεύθυνση θα είναι:

Φύλλο Εργασίας. Δραστηριότητα 1 Ανοίξτε το αρχείο DR01.html και δουλέψτε λίγο με την προσομοίωση του παλμογράφου για να εξοικειωθείτε.

Ψηφιακή Επεξεργασία Σήματος

Βήμα 1: Γενικά στοιχεία της εργασίας και υπεύθυνος επικοινωνίας

ΠΛΗΡΟΦΟΡΙΚΗ Ι Εργαστήριο 1 MATLAB ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave

Οδηγός Χρήσης της Υπηρεσίας Τηλεομοιότυπου (RightFax Fax Service) Web Utility. (διαδικτυακή εφαρμογή)

Transcript:

ΑΣΚΗΣΗ 1η ΤΟ ΠΕΡΙΒΑΛΛΟΝ ΣΧΕΔΙΑΣΗΣ QUARTUS II ΤΗΣ ALTERA ΣΧΕΔΙΑΣΗ ΚΥΚΛΩΜΑΤΟΣ ΜΕ ΧΡΗΣΗ ΤΗΣ ΓΛΩΣΣΑΣ VHDL Η γλώσσα περιγραφής υλικού (harware description language) VHDL είναι μια γλώσσα με την οποία μπορεί να περιγραφεί ένα ψηφιακό σύστημα. Υπάρχουν δύο βασικοί τρόποι περιγραφής του συστήματος, η περιγραφή της συμπεριφοράς του (behavioral modeling) και η περιγραφή της δομής του (structural modeling). Στην πρώτη περίπτωση περιγράφουμε το τι κάνει το σύστημα ενώ στη δεύτερη περιγράφουμε τον τρόπο διασύνδεσης βασικών δομικών μονάδων (π.χ. λογικών πυλών) οι οποίες χρησιμοποιούνται για την υλοποίησή του. Υπάρχει βέβαια και η δυνατότητα μικτής περιγραφής κατά την οποία ένα μέρος του συστήματος περιγράφεται δομικά και ένα άλλο μέρος του σε επίπεδο συμπεριφοράς. Το επόμενο βήμα μετά την ολοκλήρωση της περιγραφής της ψηφιακής λογικής με τη γλώσσα VHDL είναι η διαδικασία της μεταγλώττισης (compilation), η οποία επιτρέπει αφενός την προσομοίωση (simulation) του συστήματος και την επαλήθευση της ορθής λειτουργίας του και αφετέρου την υλοποίηση του στο διαθέσιμο υλικό (hardware). Πρέπει να τονιστεί ότι η περιγραφή του συστήματος με VHDL είναι ανεξάρτητη από το υλικό στο οποίο θα υλοποιηθεί τελικά το σύστημα το οποίο μπορεί να είναι ένα τυπωμένο κύκλωμα, ένα ολοκληρωμένο κύκλωμα ειδικού σκοπού ή μία προγραμματιζόμενη διάταξη πυλών (CPLD ή FPGA). Η συγγραφή του κώδικα VHDL, η μεταγλώττιση, η εξομοίωση και η υλοποίηση ενός ψηφιακού συστήματος γίνεται με τη χρήση υπολογιστή. Στα πλαίσια του εργαστηρίου αυτού θα χρησιμοποιηθεί το ολοκληρωμένο περιβάλλον σχεδιασμού Quartus II της εταιρίας Altera. Είναι σημαντικό να θυμάστε πάντα ότι με την VHDL περιγράφουμε ένα ψηφιακό σύστημα, το οποίο τελικά θα υλοποιηθεί σε κάποιο υλικό (hardware), δηλαδή ότι περιγράφετε ένα ψηφιακό ολοκληρωμένο κύκλωμα που έχει ακροδέκτες εισόδου και εξόδου (ports) και αποτελείται από λογικές πύλες και όχι ότι γράφετε ένα πρόγραμμα σε μία γλώσσα προγραμματισμού το οποίο θα εκτελεστεί από έναν γενικού σκοπού επεξεργαστή σε κάποιο υπολογιστή. Σκοπός της πρώτης άσκησης είναι η εξοικείωση των σπουδαστών με το εργαλείο σχεδιασμού FPGAs QUARTUS-II της ALTERA Περιγράφονται με λεπτομέρεια οι διαδικασίες εισαγωγής και μετάφρασης του κώδικα VHDL, και εξομοίωσης ενός ψηφιακού κυκλώματος χρησιμοποιώντας ως ένα απλό παράδειγμα μία λογική συνάρτηση τριών μεταβλητών. Προσοχή: το φυλλάδιο έχει γραφεί για χρήση των εκδόσεων Quartus II 13.0SP1. Σε εκδόσεις παλαιότερες από την 10 υπάρχουν αρκετές αλλαγές στο περιβάλλον εργασίας και τον εξομοιωτή των κυκλωμάτων οι οποίες δεν είναι συμβατές με αυτό το φυλλάδιο. 7

ΘΕΩΡΙΑ: «Σχεδίαση Ψηφιακών Συστημάτων με τη γλώσσα VHDL», Brown, Vranesic 2η εκδ.: Βελτιστοποίηση της υλοποίησης λογικών κυκλωμάτων, Κεφ. 4.1-4.4, σελ 205-227. «Σχεδίαση Ψηφιακών Συστημάτων με τη γλώσσα VHDL», Brown, Vranesic 3η εκδ.: Εισαγωγή στη γλώσσα VHDL, Κεφ. 2.10, σελ. 80-84. ΕΡΓΑΣΤΗΡΙΑΚΟ ΜΕΡΟΣ: 1. Συμπληρώστε τον πίνακα αλήθειας των λογικών συναρτήσεων f και g. Απλοποιήστε τις συναρτήσεις με χρήση πίνακα Karnaugh και σχεδιάστε κύκλωμα υλοποίησής τους με το μικρότερο αριθμό αντιστροφέων και πυλών δύο εισόδων. f ( x1, x 2, x3) x1 x 2 x3 x1 x 2 x1 x 2 x3 x1 x 2 x3 x1 x2 x3 f g g ( x1, x 2, x3) ( x1 x 2) ( x1 x 2) x1 x 2 x3 x1 x 2 x3 2. Εισαγωγή κυκλώματος στο QUARTUS-II Α. Ορισμός Ονόματος του Έργου ( Project ) Για κάθε κύκλωμα εκτός από τα αρχεία, τα οποία συντάσσει ο σχεδιαστής, όπως το αρχείο του κώδικα VHDL και το αρχείο κυματομορφών, το λογισμικό QUARTUS II δημιουργεί αυτόματα αρκετά αρχεία που περιέχουν πληροφορίες τις οποίες χρησιμοποιεί το ίδιο το λογισμικό. Το σύνολο των αρχείων που δημιουργούνται για ένα κύκλωμα ονομάζεται project (έργο). Είναι αναγκαίο πριν ξεκινήσετε τη διαδικασία σχεδίασης να ορίσετε τη θέση του φακέλου, όπου θα αποθηκευτούν τα αρχεία του έργου ακολουθώντας την παρακάτω διαδικασία. ΠΡΟΣΟΧΗ: Η διαδικασία αυτή πρέπει να ακολουθείται επακριβώς σε κάθε άσκηση γιατί αν δεν γίνει σωστά δημιουργούνται προβλήματα σε επόμενα βήματα 1. Επιλέξτε New Project Wizard από το File Menu. 2. Στο παράθυρο που παρουσιάζεται, πρέπει να συμπληρωθεί το directory, όπου θα τοποθετηθεί το νέο project, το όνομα του project και το όνομα της ανώτερης οντότητας ( entity ) του σχηματικού διαγράμματος. 8

Στο πρώτο πεδίο γράφετε το όνομα του directory το οποίο πρέπει να είναι D:\users\digitalx\psifiaka\askisizz όπου x=1...8 ανάλογα με το username που σας έχει δωθεί και zz ο αριθμός της άσκησης. Στο δεύτερο πεδίο γράφετε το όνομα του Project. Μπορείτε να διαλέξετε όποιο όνομα θέλετε αλλά καλό θα είναι σε κάθε άσκηση να είναι askisizz, όπου zz ο αριθμός της άσκησης ή κάτι σχετικό με τη λειτουργία του κυκλώματος π.χ. Fulladd για τον full adder, reg8p για τον register 8 ψηφίων. Στο τρίτο πεδίο συμπληρώνεται το όνομα της οντότητας (entity) το οποίο παίρνει αυτόματα το ίδιο όνομα με αυτό του Project. (Μπορείτε αν θέλετε να αλλάξετε αυτό το όνομα αλλά δεν συνιστάται γιατί εύκολα μπορεί να σας δημιουργήσει προβλήματα σε επόμενα βήματα.) ΠΡΟΣΟΧΗ: Μη χρησιμοποιείτε κενά ή/και ελληνικούς χαρακτήρες στα ονόματα των αρχείων του project και του entity. 3. Πατήστε Επόμενο (ΝΕΧΤ). Η σελίδα Add files του New Project Wizard εμφανίζεται. Εδώ, μπορείτε να επιλέξετε τα design files που επιθυμείτε και να τα συμπεριλάβετε στο project. Επειδή, όμως δημιουργήσατε ένα νέο project, δεν υπάρχουν αρχεία να ενσωματώσετε, ακόμη. Σε περίπτωση που υπάρχουν, πατήστε Browse( ) για να επιλέξετε τα αρχεία, και πατώντας το Add να τα προσθέσετε στο Project. 4. Πατήστε NEXT. Η Τρίτη σελίδα του New Project Wizard περιέχει το Family και Device Settings. Εδώ μπορείτε να επιλέξετε την οικογένεια και τον τύπο CPLD ή FPGA που θέλετε να χρησιμοποιήσετε για την υλοποίηση του κυκλώματος. Συμπληρώσετε εδώ Device Familly MAX7000S και Device EPM7128SLC84-7 9

5. Πατήστε Finish. Δεν απαιτείται να γίνουν αλλαγές στις τελευταίες δύο σελίδες του New Project Wizard. Β. Εισαγωγή και αποσφαλμάτωση κώδικα VHDL 1. Επιλέξτε από το menu File New ώστε να εμφανιστεί η παρακάτω λίστα επιλογών. 2. Επιλέξτε από την ομάδα Design Files το VHDL File και πατήστε OK. Ένα παράθυρο εισαγωγής κώδικα VHDL θα ανοίξει στο δεξί μέρος της οθόνης σας με το όνομα Vhdl1.vhd. 3. Επιλέξτε από το Menu File --> Save as και επιλέξτε το όνομα του αρχείου όπου θα αποθηκευθεί ο κώδικας VHDL που θα γράψετε. Δώστε το όνομα: D:\users\digitalx\psifiaka\askisi1\askisi1.vhd ΠΡΟΣΟΧΗ: Για να μη δημιουργούνται προβλήματα σε επόμενα βήματα της άσκησης να χρησιμοποιείτε πάντα το ίδιο όνομα για το project και το top-level entity όταν ορίζετε το project, το αρχείο VHDL και το entity μέσα στο αρχείο VHDL. 4. Γράψτε στο αρχείο αυτό τον παρακάτω κώδικα VHDL: library ieee; use ieee.std_logic_1164.all; entity askisi1 is port (x1, x2, x3 : in std_logic; f : out std_logic); end entity; 10

architecture ask1_behav of askisi1 is begin f <= (x1 and x2) or ((not x2 ) and x3); end architecture; Σε κάθε αρχείο VHDL, υπάρχουν 3 τουλάχιστον ενότητες, οι οποίες περιγράφονται συνοπτικά παρακάτω. Περισσότερες λεπτομέρειες δίνονται στο θεωρητικό μάθημα καθώς και στο βιβλίο. 1.Το τμήμα που δήλωσης των βιβλιοθηκών (LIBRARY): Library ieee; Use ieee.std_logic_1164.all; Εδώ χρησιμοποιείται μόνο η ieee.std_logic_1164.all η οποία περιλαμβάνει τον ορισμό του τύπου std_logic. Η χρήση βιβλιοθηκών διευκολύνει την περιγραφή των κυκλωμάτων γιατί μας απαλλάσσει από τον κόπο να ξαναγράψουμε κώδικα για βασικά στοιχεία το οποία έχουν ήδη σχεδιαστεί. Εκτός από τις βιβλιοθήκες που παρέχονται από την ίδια τη γλώσσα και την εταιρία προμήθειας του λογισμικού δίνεται η δυνατότητα στο σχεδιαστή να φτιάξει και δικές του βιβλιοθήκες. 2. Το τμήμα δήλωσης της οντότητας (ENTITY) Entity askisi1 is Port (X1, Χ2, Χ3 F End entity; : in std_logic; : out std_logic ); Εδώ περιγράφονται τα σήματα εισόδου και εξόδου που έχει το σύστημα που θα υλοποιηθεί. Με απλά λόγια ο κώδικας που δίνεται παραπάνω αντιστοιχεί στα εξής «Υλοποιούμε ένα ψηφιακό σύστημα το οποίο ονομάζεται askisi1 και το οποίο έχει ως ακροδέκτες (σήματα) εισόδου τα X1, X2 και X3, και ως ακροδέκτη εξόδου το F». Ακόμα δεν έχει ειπωθεί τίποτα για τη λογική σχέση που θα έχουν τα σήματα εξόδου με αυτά της εισόδου. 3. Το τμήμα περιγραφής της λογικής (ARCHITECTURE): Architecture ask1_behav of askisi1 is Begin f<=(x1 and X2) or ((not X2) and X3); End architecture; Εδώ περιγράφεται η αρχιτεκτονική του ψηφιακού συστήματος που θα υλοποιηθεί. δηλαδή η λογική συνάρτηση: f x1 x 2 x 2 x3 Γ. Ο Μεταφραστής ( COMPILER ) Ο μεταφραστής (Compiler) του Quartus II αποτελείται από ένα σετ ανεξάρτητων εργαλείων που ελέγχουν και αναλύουν τον κώδικα VHDL ή το σχηματικό διάγραμμα για λάθη και δημιουργούν μία λογική έκφραση για κάθε λογική συνάρτηση του κυκλώματος, απεικονίζουν το σχέδιο σε μία προγραμματιζόμενη διάταξη (FPGA ή CPLD) της Altera και δημιουργούν αρχεία εξόδων για προσομοίωση λειτουργίας (Simulation), χρονική ανάλυση (timing analysis), και προγραμματισμό των διατάξεων (device programming). Ο μεταφραστής αποτελείται από τα εργαλεία : Analysis and Synthesis Fitter Assembler και Timing Analyzer 11

1. Όταν ολοκληρώσετε την εισαγωγή του κώδικα VHDL πρέπει να βεβαιωθείτε ότι δεν υπάρχουν ορθογραφικά ή συντακτικά λάθη στο πρόγραμμα. Επειδή η πλήρης μετάφραση μπορεί να διαρκεί αρκετό χρόνο το QUARTUS-II δίνει τη δυνατότητα να αναλύσετε τον κώδικα και να προσδιορίσετε τυχόν λάθη εκτελώντας μόνο το πρώτο βήμα. Από το menu Processing επιλέξτε Start και ακολούθως Start Analysis and Synthesis. Η διαδικασία αυτή αναλαμβάνει τη μετάφραση του προγράμματός σας (compilation) και μόλις ολοκληρωθεί εμφανίζει στην οθόνη ένα πληροφοριακό μήνυμα για το αν ήταν επιτυχής η διαδικασία ή όχι. Στο κάτω μέρος της οθόνης εμφανίζονται διάφορα μηνύματα τα οποία χωρίζονται σε τρεις κατηγορίες: πληροφοριακά (info) με πράσινα γράμματα, προειδοποιητικά (warning) με μπλε γράμματα, και σφάλματα (errors) με κόκκινα γράμματα. Αν ο κώδικας περιέχει σφάλματα η διαδικασία ανάλυσης σταματάει και αναφέρεται ο συνολικός αριθμός των σφαλμάτων. Για την αποσφαλμάτωση του κώδικα πρέπει να προσδιορίσετε στο κάτω μέρος της οθόνης το πρώτο μήνυμα λάθους και με διπλό κλικ του αριστερού πλήκτρου του ποντικιού τοποθετείται αυτόματα ο δρομέας (cursor) στη γραμμή του κώδικα που παρουσιάζεται το σφάλμα. Διαβάστε προσεκτικά το μήνυμα λάθους και προβείτε στην αναγκαία διόρθωση. Επαναλάβετε τη διαδικασία Start Analysis and Synthesis για να δείτε τα εναπομείναντα λάθη. Πολλές φορές η διόρθωση ενός σφάλματος οδηγεί σε σημαντική ελάττωση του συνολικού αριθμού των σφαλμάτων. Μην επιχειρείτε τη διόρθωση του κώδικα από το τελευταίο σφάλμα γιατί πολλές φορές το μήνυμα είναι παραπλανητικό. Αν μετά τη διόρθωση ενός σφάλματος εμφανιστούν περισσότερα σφάλματα δεν σημαίνει απαραίτητα ότι ήταν λάθος η διόρθωση που κάνατε. Για παράδειγμα μία παρένθεση που δεν είχε κλείσει σωστά η ένα semicolon (;) που έλλειπε μπορεί μπορεί να είχε οδηγήσει αρχικά τον compiler στο να αγνοήσει τμήματα του κώδικα που περιέχουν άλλα σφάλματα. 2. Όταν ολοκληρώσετε τη διόρθωση των σφαλμάτων πρέπει να προχωρήσετε σε πλήρη μετάφραση του κώδικα. Για να ανοίξετε το παράθυρο του μεταφραστή επιλέξτε από το pull-down menu Processing --> Start Compilation 3. Όταν ο Compiler ολοκληρώσει τη μετάφραση, βλέπετε στην οθόνη το Compilation Report στο οποίο δίνονται πληροφοριακά και στατιστικά στοιχεία για τη διαδικασία της μετάφρασης του κυκλώματος. Το παράθυρο αυτό μπορείτε να το ανοίξετε και από το menu Processing --> Compilation Report. Δ. Προσομοίωση Λειτουργίας ( Simulation ) Η ανυπαρξία συντακτικών σφαλμάτων δε συνεπάγεται ότι το κύκλωμα εκτελεί τις λειτουργίες για τις οποίες έχει σχεδιαστεί. Για παράδειγμα αν θέλετε να υλοποιήσετε μία πύλη XOR και έχετε γράψει την εντολή X <= A OR B; ο μεταφραστής δεν θα προσδιορίσει κανένα λάθος αλλά το κύκλωμα αντιστοιχεί σε μία πύλη OR και όχι στην επιθυμητή XOR. Επομένως, το επόμενο βήμα μετά την αποσφαλμάτωση του κώδικα VHDL είναι η προσομοίωση του κυκλώματος για να επιβεβαιωθεί η ορθή λειτουργία του. Στη διαδικασία αυτή δίνονται συγκεκριμένοι παλμοί στα σήματα εισόδου του κυκλώματος και ελέγχονται τα σήματα εξόδου αν είναι τα αναμενόμενα σύμφωνα με τον πίνακα αληθείας του. Η διαδικασία της προσομοίωσης στον υπολογιστή είναι αντίστοιχη με την διαδικασία που θα κάνατε στον εργαστηριακό πάγκο αν είχατε φτιάξει το κύκλωμά σας σε ένα τυπωμένο κύκλωμα (PCB). Όπως θα χρησιμοποιούσατε γεννήτριες τετραγωνικών παλμών για να οδηγήσετε τα σήματα εισόδου και θα βλέπατε την κυματομορφή της εξόδου σε ένα λογικό αναλυτή (logic analyzer) ή έναν παλμογράφο έτσι και στον υπολογιστή πρέπει να δημιουργήσετε ένα αρχείο στο οποίο αποθηκεύετε τα σήματα των εισόδων του κυκλώματος 12

και στην οθόνη του υπολογιστή βλέπετε την έξοδο του κυκλώματος ώστε να μπορέσετε να εξακριβώσετε αν αυτό λειτουργεί σύμφωνα με τις προδιαγραφές του. Υπάρχουν δύο τύποι εξομοίωσης λειτουργική (functional) και χρονισμών (timing). Στην περίπτωση της λειτουργικής εξομοίωσης δε λαμβάνονται υπόψη οι καθυστερήσεις των στοιχείων (πυλών και διασυνδέσεων) του κυκλώματος αλλά απλά επαληθεύεται ότι η λογική συνάρτηση που υλοποιεί το κύκλωμα είναι σωστή. Στην εξομοίωση χρονισμών επαληθεύουμε την ορθότητα του κυκλώματος και με βάση τους χρονικούς περιορισμούς που αυτό έχει. Για παράδειγμα έστω ότι έχουμε σχεδιάσει έναν απαριθμητή (counter) και ότι η καθυστέρηση ενός flip-flop είναι 10 nsec. Στη λειτουργική εξομοίωση μπορούμε να χρησιμοποιήσουμε ένα σήμα ρολογιού με περίοδο 5 nsec και το κύκλωμα μας θα κάνει σωστή καταμέτρηση. Αν χρησιμοποιήσουμε όμως το ίδιο σήμα ρολογιού σε εξομοίωση χρονισμού το κύκλωμα δεν θα έχει τη σωστή απόκριση γιατί μέσα στα 5 nsec τα flip-flops δεν προλαβαίνουν να αλλάξουν κατάσταση. Το Quartus δίνει τη δυνατότητα να επιλέξετε το εργαλείο εξομοίωσης με το οποίο θα ελέγξετε τη λειτουργία του κυκλώματός σας. Ο Simulator που θα χρησιμοποιηθεί στα πλαίσια των εργαστηριακών ασκήσεων είναι αυτός που δίνει η ALTERA στο πλαίσιο του προγράμματος υποστήριξης εκπαιδευτικών δραστηριοτήτων (University program). 1. Από το pull-down menu file επιλέξτε New. Στη φόρμα με τους δυνατούς τύπους αρχείων επιλέξτε University Program VWF (Vector Waveform File). Στο αρχείο κυματομορφών αποθηκεύονται οι κυματομορφές των εισόδων, οι οποίες χρησιμοποιούνται στην εξομοίωση. Εμφανίζεται το περιβάλλον του εξομοιωτή και ο Waveform Editor (Επεξεργαστής Κυματομορφών), ο οποίος δίνει τη δυνατότητα να εισάγετε τους κόμβους (Nodes) του κυκλώματος και τις κυματομορφές εισόδου ώστε να μπορέσει να πραγματοποιηθεί η εξομοίωση. 2. Κάντε διπλό αριστερό κλικ στον κενό χώρο κάτω από το Name και στο παράθυρο που εμφανίζεται επιλέξτε Node Finder. 13

3. Στο Node Finder επιλέξτε το πλήκτρο List στο πάνω δεξιά τμήμα του παραθύρου για την εμφάνιση των ονομάτων των κόμβων του τρέχοντος έργου στο ορθογώνιο με το όνομα Nodes Found. ΠΡΟΣΟΧΗ: Στο πεδίο Named να υπάρχει το * και στο Filter Pins:all Από την επιλογή Named στην πάνω αριστερή γωνία του παραθύρου του Node Finder μπορείτε να επιλέξετε σήματα ανάλογα με το όνομά τους. Από την επιλογή Filter μπορείτε να επιλέξετε ομάδες σημάτων π.χ. σήματα εισόδου, εξόδου, όλα τα σήματα του σχεδίου (περιλαμβάνονται και αυτά που εισάγονται αυτόματα από τον μεταφραστή). 4. Επιλέξτε με το ποντίκι τους κόμβους από το αριστερό τμήμα του παραθύρου και με το > που υπάρχει στη μεσαία στήλη αντιγράψτε τους στο δεξί παράθυρο (selected nodes). Πατώντας ΟΚ το παράθυρο του Node Finder κλείνει και οι κόμβοι που επιλέξατε εμφανίζονται στο παράθυρο του Waveform Editor. 14

5. Στη γραμμή εργαλείων (Toolbar) στο πάνω μέρος της οθόνης εμφανίζεται μία σειρά εργαλείων που χρησιμοποιούνται για να καθοριστούν οι λογικές τιμές των σημάτων εισόδου. Οι τιμές στη έξοδο f εμφανίζονται αρχικά αόριστες (undefined, ΧΧΧΧΧ) και θα προσδιοριστούν όταν εκτελεστεί η εξομοίωση του κυκλώματος. Για να αλλάξετε την τιμή μίας εισόδου για ένα συγκεκριμένο χρονικό διάστημα πρέπει να επιλέξετε με το ποντίκι το αντίστοιχο τμήμα της κυματομορφής πάνω στο παράθυρο του Waveform editor και πατώντας στο Toolbar, το 0 ή το 1 να δώσετε την επιθυμητή τιμή. Αν επιλέξετε με το ποντίκι το όνομα ενός σήματος στο αριστερό τμήμα της οθόνης η τιμή που δίνετε ισχύει για όλη τη διάρκειά του. Δώστε στις εισόδους x1, x2 και x3 τις τιμές που φαίνονται στο παρακάτω σχήμα: 6. Σώστε το αρχείο του Waveform Editor από το menu file Save as με το όνομα askisi1.vwf. ΠΡΟΣΟΧΗ: Είναι επιθυμητό να δίνετε στο αρχείο κυματομορφών το ίδιο όνομα με το όνομα του entity Η προκαθορισμένη διάρκεια των σημάτων στο waveform file είναι 1 μsec. Μπορείτε να αλλάξετε το χρόνο αυτό από το menu EDIT SET END TIME. 7. Το Quartus διαθέτει δύο προσομοιωτές που μπορούν να χρησιμοποιηθούν για την επαλήθευση της ορθής λειτουργίας του κυκλώματος. Από το menu Simulation Options επιλέξτε Modelsim (Recommended). 8. Τρέξτε τον εξομοιωτή: Simulation Run Functional Simulation. Ανοίγει ένα παράθυρο στο οποίο εμφανίζονται διάφορα μυνήματα σχετικά με τη εκτέλεση του εξομοιωτή και πιθανά σφάλματα αν υπάρχουν. Μόλις ολοκληρωθεί η διαδικασία εμφανίζεται νέο παράθυρο ίδιο με αυτό του waveform editor στο οποίο εμφανίζονται και τα αποτελέσματα της εξομοίωσης. 9. Κάντε επαλήθευση των αποτελεσμάτων, με τη βοήθεια του πίνακα αληθείας. 10. Με την προαναφερόμενη διαδικασία έχετε επιβεβαιώσει τη σωστή λειτουργία του κυκλώματος για μερικούς μόνο συνδυασμούς των εισόδων. Για να κάνετε πλήρη επαλήθευση του πίνακα αληθείας πρέπει να βάλετε στις εισόδους όλους τους δυνατούς συνδυασμούς (8=23 στο συγκεκριμένο παράδειγμα). Για να το πετύχετε αυτό επιλέξτε το σήμα εισόδου από το όνομά του και με χρήση του εργαλείου overwrite clock από το Toolbar δημιουργήστε τις κυματομορφές που φαίνονται στο επόμενο σχήμα. Το x1 έχει περίοδο 10 nsec, το x2 20 nsec και το x3 40 nsec. Παρατηρήστε ότι κάθε είσοδος έχει 15

τη διπλάσια περίοδο από την προηγούμενή της σε άμεση αντιστοιχία με τον πίνακα αληθείας και ότι όλοι οι δυνατοί συνδυασμοί τους καλύπτονται στα πρώτα 40 nsec ενώ από εκεί και μετά επαναλαμβάνονται οι ίδιοι συνδυασμοί. 11. Κάντε επαλήθευση των αποτελεσμάτων, με τη βοήθεια του πίνακα αληθείας. 12. Συμπληρώστε τον κώδικα VHDL ώστε να υλοποιούνται στο ίδιο entity και οι δύο λογικές συναρτήσεις του βήματος 1 και επαναλάβετε τη διαδικασία για την λειτουργική εξομοίωση και την επαλήθευση της ορθής λειτουργίας του πλήρους κυκλώματος. 13. Εκτελέστε προσομοίωση χρονισμού του κυκλώματος (Simulation Run Timing Simulation) και παρατηρείστε τις διαφορές. 14. Για να συγκρίνετε τα αποτελέσματα της λειτουργικής και της χρονικής προσομοίωσης του κυκλώματος συμπληρώστε τον παρακάτω πίνακα. Σε κάθε στοιχείο του πίνακα να γράψετε τη χρονική στιγμή της αλλαγής της τιμής (από 0 σε 1 ή από 1 σε 0) της f και της g. Για να διευκολυνθείτε στην εκτίμηση της καθυστέρησης επιλέξτε από το menu edit Grid Size 1.0 ns f functional g timing 1η παρυφή 2η παρυφή 3η παρυφή 4η παρυφή 5η παρυφή 16 functional timing

ΑΝΑΚΕΦΑΛΑΙΩΣΗ: ΣΧΕΔΙΑΣΗ ΚΑΙ ΠΡΟΣΟΜΟΙΩΣΗ ΨΗΦΙΑΚΟΥ ΚΥΚΛΩΜΑΤΟΣ ΣΕ 9 ΒΗΜΑΤΑ Βήμα 1 Άνοιγμα νέου Project με όνομα κατάλληλο ανάλογα την άσκηση και σε directory όπως περιγράφεται στο μέρος Α βήμα 2, πχ. Project: askisi1 στο φάκελο D:\users\digitalx\psifiaka\askisi1. Βήμα 2 Δημιουργία αρχείου VHDL. Αρχικά δημιουργείται με το όνομα Vhdl1.Vhd, κάνετε αμέσως SAVE AS και δίνετε όνομα ίδιο με αυτό του Project, πχ. askisi1.vhd. Βήμα 3 Συγγραφή του κώδικα VHDL, ΠΡΟΣΟΧΗ το entity να έχει το ίδιο όνομα με το project και το αρχείο VHDL, πχ. Entity askisi1. Βήμα 4 Έλεγχος και διόρθωση των πιθανών σφαλμάτων με Start Analysis and Synthesis. Διορθώνετε το πρώτο λάθος από τη λίστα σφαλμάτων και επαναλαμβάνοντας Start Analysis and Synthesis συνεχίζετε μέχρι να διορθώσετε όλα τα λάθη. Βήμα 5 Πλήρης μετάφραση με χρήση του Compiler Tool. Βήμα 6 Δημιουργία αρχείου κυματομορφών Vector Waveform File με χρήση του University Program VWF. Αρχικά δημιουργείται με το όνομα Waveform1.vwf, κάνετε αμέσως SAVE AS και δίνετε όνομα ίδιο με αυτό του Project, πχ. askisi1.vwf. Βήμα 7 Τοποθέτηση των κόμβων στο αρχείου κυματομορφών με το Node Finder και απόδοση των επιθυμητών λογικών τιμών στα σήματα εισόδου (input ports). Βήμα 8 Επιλογή προσομοιωτή Modelsim (Recommended) Βήμα 9 Εκτέλεση της προσομοίωσης και επαλήθευση της ορθής λειτουργίας του κυκλώματος. 17