1 Περίληψη Η εργασία έγινε στα πλαίσια του μαθήματος των Ψηφιακών Ηλεκτρονικών Συστημάτων με σκοπό αρχικά την εκμάθηση της γλώσσας VHDL (Very High Spe

Σχετικά έγγραφα
Πανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά. Συνδυαστική Λογική. Επιμέλεια Διαφανειών: Δ.

Λογική Σχεδίαση Ι - Εξεταστική Φεβρουαρίου 2013 Διάρκεια εξέτασης : 160 Ονοματεπώνυμο : Α. Μ. Έτος σπουδών:

Εισαγωγή στη σχεδιαστική ροή της Xilinx

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

9. OIΚΟΥΜΕΝΙΚΕΣ ΠΥΛΕΣ ΠΟΛΛΑΠΛΩΝ ΕΙΣΟ ΩΝ

Αθροιστές. Ημιαθροιστής

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

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

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

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

ΦΟΙΤΗΤΡΙΑ : ΒΟΥΛΓΑΡΙ ΟΥ ΜΑΡΙΑ, ΑΕΜ: 2109 ΕΠΙΒΛΕΠΩΝ : ΚΑΛΟΜΟΙΡΟΣ ΙΩΑΝΝΗΣ, ΕΠΙΚΟΥΡΟΣ ΚΑΘΗΓΗΤΗΣ

Ψηφιακά Συστήματα. 6. Σχεδίαση Συνδυαστικών Κυκλωμάτων

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

"My Binary Logic" Ένας προσομοιωτής λογικών πυλών στο Scratch

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

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

Ψηφιακή Λογική και Σχεδίαση

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

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ. ΜΑΘΗΜΑ 2 ο. ΑΛΓΕΒΡΑ Boole ΛΟΓΙΚΑ ΚΥΚΛΩΜΑΤΑ

Ψηφιακή Σχεδίαση. Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:07. Δρ. Μηνάς Δασυγένης. Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Εισαγωγή στη Verilog με το ISE

4.1 Θεωρητική εισαγωγή

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

ΗΜΥ 210: Λογικός Σχεδιασµός, Εαρινό Εξάµηνο Ένα συνδυαστικό κύκλωµα µπορεί να περιγραφεί από: Φεβ-05. n-είσοδοι

Γ2.1 Στοιχεία Αρχιτεκτονικής. Γ Λυκείου Κατεύθυνσης

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

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

VHDL Introduction. Subtitle

9 ο Μαθητικό Συνέδριο Πληροφορικής Κεντρικής Μακεδονίας. "My Binary Logic" Ένας προσομοιωτής λογικών πυλών στο Scratch

Συνδυαστικά Κυκλώματα

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

100 ΕΡΩΤΗΣΕΙΣ ΜΕ ΤΙΣ ΑΝΤΙΣΤΟΙΧΕΣ ΑΠΑΝΤΗΣΕΙΣ ΓΙΑ ΤΟ ΜΑΘΗΜΑ ΨΗΦΙΑΚΑ ΚΥΚΛΩΜΑΤΑ

Πτυχιακή Εργασία Σχεδίαση κυκλωμάτων επικοινωνίας με απλές οθόνες, με τη γλώσσα VHDL και υλοποίηση στις αναπτυξιακές πλακέτες LP-2900 και DE2.

Lab 2 Manual - Introduction to Xilinx

ΠΛΗ10 Κεφάλαιο 2. ΠΛH10 Εισαγωγή στην Πληροφορική: Τόμος Α Κεφάλαιο: : Αριθμητική περιοχή της ALU 2.5: Κυκλώματα Υπολογιστών

Πανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά. Μονάδες Μνήμης και Διατάξεις Προγραμματιζόμενης Λογικής

w x y Υλοποίηση της F(w,x,y,z) με πολυπλέκτη 8-σε-1

6.1 Θεωρητική εισαγωγή

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων Τµήµα Επιστήµης Υπολογιστών Χειµερινό Εξάµηνο

Πανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά. Καταχωρητές και Μετρητές 2. Επιμέλεια Διαφανειών: Δ.

Πανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά. Ακολουθιακή Λογική. Επιμέλεια Διαφανειών: Δ.

ΚΕΦΑΛΑΙΟ Συνδυαστικά Κυκλώµατα. 3.2 Σχεδιασµός Συνδυαστικής Λογικής 3.3 ιαδικασία Ανάλυσης 3.4 ιαδικασία Σχεδιασµού.

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2006

Ενσωματωμένα Συστήματα

ΑΣΚΗΣΗ 4 ΣΧΕΔΙΑΣΗ ΑΡΙΘΜΗΤΙΚΩΝ ΛΟΓΙΚΩΝ ΚΥΚΛΩΜΑΤΩΝ

Πανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά. Αριθμητικά Συστήματα. Επιμέλεια Διαφανειών: Δ.

i Το τρανζίστορ αυτό είναι τύπου NMOS. Υπάρχει και το συμπληρωματικό PMOS. ; Τι συμβαίνει στο τρανζίστορ PMOS; Το τρανζίστορ MOS(FET)

Άσκηση 3 Ένα νέο είδος flip flop έχει τον ακόλουθο πίνακα αληθείας : I 1 I 0 Q (t+1) Q (t) 1 0 ~Q (t) Κατασκευάστε τον πίνακα

Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II

6 η Θεµατική Ενότητα : Σχεδίαση Συστηµάτων σε Επίπεδο Καταχωρητή

Εργαστήριο Εισαγωγής στη Σχεδίαση Συστημάτων VLSI

V Vin $N PULSE 1.8V p 0.1p 1n 2n M M1 $N 0002 $N 0001 Vout $N 0002 MpTSMC180 + L=180n + W=720n + AD=0.324p + AS=0.

Κεφάλαιο 3 ο Ακολουθιακά Κυκλώματα με ολοκληρωμένα ΤΤL

ΕΙΣΑΓΩΓΙΚΟ ΕΓΧΕΙΡΙ ΙΟ ΓΙΑ ΣΧΕ ΙΑΣΜΟ ΜΕ ΧΡΗΣΗ ΤΗΣ ΓΛΩΣΣΑΣ VHDL

Σχεδίαση Υπολογιστικών

Ψηφιακά Κυκλώματα (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων

Ηλεκτρολόγοι Μηχανικοί ΕΜΠ Λογική Σχεδίαση Ψηφιακών Συστημάτων Διαγώνισμα κανονικής εξέτασης Θέμα 1ο (3 μονάδες)

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

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

ΣΧΕΔΙΑΣΗ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

a -j a 5 a 4 a 3 a 2 a 1 a 0, a -1 a -2 a -3

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2016

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

Σχεδιασμός Πλήρους Αθροιστή/Αφαιρέτη

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2009

6.1 Καταχωρητές. Ένας καταχωρητής είναι μια ομάδα από f/f αλλά μπορεί να περιέχει και πύλες. Καταχωρητής των n ψηφίων αποτελείται από n f/f.

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

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

Περιγραφή Κυκλωμάτων με χρήση της VHDL. Εισαγωγικές έννοιες για σχεδιασμό με τη VHDL

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Κεφάλαιο 3

Περιεχόμενα. Πρώτο Κεφάλαιο. Εισαγωγή στα Ψηφιακά Συστήματα. Δεύτερο Κεφάλαιο. Αριθμητικά Συστήματα Κώδικες

Μελέτη και σχεδίαση µιας υποτυπώδους κεντρικής µονάδας επεξεργασίας στα 32 µπιτ.

K24 Ψηφιακά Ηλεκτρονικά 4: Σχεδίαση Συνδυαστικών Κυκλωμάτων

Εισαγωγή στην πληροφορική

Ελίνα Μακρή

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2007

Ενσωματωμένα Συστήματα

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

ΤΙΤΛΟΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΑΣΚΗΣΗΣ ΑΣΥΓΧΡΟΝΟΙ ΜΕΤΡΗΤΕΣ

Ψηφιακή Σχεδίαση Εργαστηριο 1. Τμήμα: Μηχανικών Πληροφορικής κ Τηλεπικοινωνιών Διδάσκων: Δρ. Σωτήριος Κοντογιαννης Μάθημα 2 ου εξαμήνου

Πρόγραμμα Επικαιροποίησης Γνώσεων Αποφοίτων ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ

«Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο

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

Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II

Επίπεδο Ψηφιακής Λογικής (The Digital Logic Level)

Πανεπιστήμιο Πειραιώς Τμήμα Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών «Προηγμένα Συστήματα Πληροφορικής» Μεταπτυχιακή Διατριβή

ΨΗΦΙΑΚΑ ΚΥΚΛΩΜΑΤΑ - ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 3

Ηλεκτρολόγοι Μηχανικοί ΕΜΠ Λογική Σχεδίαση Ψηφιακών Συστημάτων Διαγώνισμα κανονικής εξέτασης 2017

Πράξεις με δυαδικούς αριθμούς

Κυκλώµατα µε MSI. υαδικός Αθροιστής & Αφαιρέτης

ΤΙΤΛΟΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΑΣΚΗΣΗΣ ΣΕΙΡΙΑΚΗ ΠΡΟΣΘΕΣΗ

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος...9 ΚΕΦ. 1. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΚΩΔΙΚΕΣ

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

Πανεπιστήµιο Κύπρου DEPARTMENT OF COMPUTER SCIENCE

K24 Ψηφιακά Ηλεκτρονικά 6: Πολυπλέκτες/Αποπολυπλέκτες

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2016

Πληροφορική 2. Αλγόριθμοι

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

Transcript:

Εργασία στα Ψηφιακά Ηλεκτρονικά Συστήματα 2013-2014 Θέμα: Κατασκευή και Ανάλυση Μετρητή 4-bit και Πλήρους Αθροιστή σε περιβάλλον VHDL Ονοματεπώνυμο: Αλέξανδρος Γεώργιος Μουντογιαννάκης Σχολή: Τμήμα Επιστήμης Υπολογιστών ΑΠΘ ΑΕΜ: 1938 22 Φεβρουαρίου 2014 1

1 Περίληψη Η εργασία έγινε στα πλαίσια του μαθήματος των Ψηφιακών Ηλεκτρονικών Συστημάτων με σκοπό αρχικά την εκμάθηση της γλώσσας VHDL (Very High Speed Integrated Circuits Hardware Description Language), απαραίτητης στη σχεδίαση ψηφιακών συστημάτων και την ανάλυση των συστημάτων αυτών μέσω testbench, δηλαδή ψηφιακού περιβάλλοντος που επαληθεύει την εγκυρότητα του συστήματος που κατασκευάσαμε. Τα συστήματα με τα οποία θα ασχοληθούμε είναι ένας μετρητής 4-bit, η τιμή του οποίου θα εμφανίζεται μέσω ενός αποκωδικοποιητή LED και ενός πλήρους αθροιστή 3-bit. Η προσομοίωση υλοποιήθηκε εξ ολοκλήρου στο ISE Design Suite 14.2 ths Xilinx. 2 Εισαγωγή Αρχικά, θα μελετήσουμε την περίπτωση του μετρητή και του αποκωδικοποιητή. Ο αποκωδικοποιητής LED δέχεται 4 bit εισόδου και έχει έξοδο 7 σήματα, που αποτελούν τα τμήματα ενός LED ψηφίου. Οι είσοδοι αυτοί προέρχονται από τον μετρητή 4-bit, όπως φαίνεται στο παρακάτω διάγραμμα: Διάγραμμα μετρητή - αποκωδικοποιητή Η σχεδίαση αυτή είναι ιεραρχική, δηλαδή ο αποκωδικοποιητής και ο μετρητής είναι μονάδες που διασυνδέονται με μία άλλη μονάδα υψηλότερου επιπέδου. Σκοπός μας είναι να δημιουργήσουμε τον αποκωδικοποιητή και τον μετρητή σε μορφή VHDL και στη συνέχεια να τρέξουμε την προσομοίωση μέσω ενός ειδικά διαμορφωμένου testbench, ώστε να επαληθεύσουμε αν ο αριθμός που εμφανίζεται στο LED είναι ο επιθυμητός. Τα κύρια προβλήματα που καλούμαστε να αντιμετωπίσουμε είναι η σωστή συγγραφή κώδικα VHDL και η αρχικοποίηση τιμών στο testbench, ώστε η προσομοίωση να τρέξει κανονικά. Ο πλήρης αθροιστής είναι ένα συνδυαστικό κύκλωμα που συνθέτει το α- ποτέλεσμα της πρόσθεσης τριών bit εισόδου. Αποτελείται από τρεις εισόδους 2

A, B, Cin και 2 εξόδους Sum, Cout. Για την υλοποίησή του πρέπει αφενός να τον σχεδιάσουμε στην VHDL και αφετέρου σε επίπεδο πυλών. Τέλος, με ένα ειδικά διαμορφωμένο testbench, θα ελέγξουμε την σωστή λειτουργία του κυκλώματος, η οποία προκύπτει απο τον πίνακα αληθείας. 3 Κύριο Μέρος Εργαλεία που χρησιμοποιήθηκαν: Το Xilinx ISE Design Suite 14.2 είναι ένα παντοδύναμο περιβάλλον σχεδίασης συστημάτων, το οποίο εκτός από συγγραφή VHDL και σχηματική σχεδίαση, προσφέρει μέσω του isim (third party software) την δυνατότητα προσομοίωσης του κατασκευασμένου συστήματος. Προσφέρονται επίσης και άλλα χρήσιμα εργαλεία, όπως το Xilinx Plan Ahead, που ειδικεύεται στην ανάλυση αποτελεσμάτων. Αρχεία στο CD: Ο φάκελος Project1 περίεχει το Project1.xise, το ο- ποίο περιέχει ότι σχετίζεται με τη κατασκευή του συστήματος μετρητή - αποκωδικοποιητή. Ο φάκελος Project2 σχετίζεται με την κατασκευή του αθροιστή. Μερικές από τις μορφές αρχείων που βρίσκονται στους φακέλους είναι:.sch: Το schematic της υλοποιημένης μονάδας..vhd: Ο κώδικας της μονάδας, γραμμένος σε VHDL..wcfg: Αρχείο του isim που περιέχει τα χρονοδιαγράμματα της προσομοίωσης..sym: Το σχηματικό σύμβολο της μονάδας, που μπορεί να χρησιμοποιηθεί περαιτέρω σε αρχείο.sch..ucf: User Constraints File. Περιέχει τους περιορισμούς της εφαρμογής. Στην περίπτωσή μας προέρχονται από την κατασκευή του FPGA. Στο CD υπάρχει και το αρχείο pdf της παρουσίασης. FPGA: Παρακάτω εμφανίζεται η οικογένεια και το μοντέλο του board που επιλέξαμε να υλοποιήσουμε τα συστήματα: Οι ιδιότητες αυτές είναι ορατές και στο παράθυρο της ιεραρχίας (xc3s500e- 4fg320). Αποτελούν το Spartan-3E Starter Board. Μεθοδολογία Μετρητή: Οπως αναφέραμε, σκοπός είναι να δημιουργήσουμε ένα απλό ακολουθιακό κύκλωμα μετρητή. Αυτό θα γίνει με ιεραρχικό σχέδιο, χρησιμοποιώντας έναν ξεχωριστό αποκωδικοποιητή που μετατρέπει μία δυαδική τιμή (count) σε μία επίδειξη 7 τμημάτων (seven seg). Ο κώδικας που χρησιμοποιήσαμε για το component του decoder είναι ο παρακάτω: 3

Οι μεταβλητές count και seven seg είναι τύπου std logic vector, δηλαδή αποτελούν πίνακες από std logic, η οποία συμβολίζει, ανάμεσα στο λογικό 0 και το λογικό 1 και άλλες λογικές τιμές (όπως U: uninitialized, X: unknown) που θα παρατηρήσουμε παρακάτω. Οταν η 4-bit count τιμή είναι 0000, η seven seg παίρνει την τιμή 1110111, δηλαδή εμφανίζονται στη LED τα 6 από τα 7 τμήματα (παραλείπεται το μεσαίο), ώστε να σχηματιστεί ο αριθμός 0. Στο παραπάνω διάγραμμα μετρήτη - αποκωδικοποιητή, είναι προφανές ότι παραλείπεται το τμήμα s3. Οταν η τιμή count γίνεται 1, η seven seg παίρνει την τιμή 0010010, που σημαίνει ότι στη LED εμφανίζονται μόνο τα τμήματα s2 και s5, επομένως σχηματίζεται το 1, κ.ο.κ. Τα πιθανά outcomes του seven seg, σύμφωνα με τον τρόπο που έχουμε δώσει τις τιμές, είναι: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, b, C, d, E, F. Ο κώδικας VHDL του μετρητή που σχεδιάσαμε είναι ο παρακάτω: 4

5

Αρχικά δηλώνουμε τις μεταβλητές μας και τις αρχικοποιούμε. Με την εντολή component μπορούμε να χρησιμοποιήσουμε ένα άλλο εξάρτημα μέσα στον κώδικά μας (πρέπει να δηλώσουμε ξανά τις εισόδους/εξόδους του). Δίνουμε στα σήματα clk 1Hz την τιμή 0 και στο count έναν 4-bit undefined πίνακα. Αρχικοποιούμε τις τιμές του decoder και τον συνδέουμε στο υπόλοιπο κύκλωμα με την εντολή port map. Με τα processes υποδεικνύουμε τη συμπεριφορά της αρχιτεκτονικής μας. Δηλώνουμε στο one second process μια μεταβλητή counter 50M, που παίρνει ακέραιες τιμές από 0 μέχρι 50000 και αποτελεί τον ταλαντωτή του συστήματός μας. Αν η reset είναι αληθής, η τιμή του counter 50M είναι 0, αλλιώς αν έχουμε αλλαγή του clk 50M από 0 σε 1 (rising edge), η τιμή counter 50M αυξάνεται κατά την προηγούμενη τιμή της συν 1. Σε περίπτωση που συμβαίνει το δεύτερο και η τιμή του counter 50M φτάσει 50000, το clk 1Hz παίρνει την αντίθετη από ότι έχει τιμή και το counter 50M μηδενίζεται. Με αυτόν τον τρόπο δημιουργήσαμε ένα ρολόι ενός δευτερολέπτου. Τέλος, η count process έιναι αυτή που μετράει τα δευτερόλεπτα από το 0 έως το 15, στα οποία στέλνονται οι τιμές στον αποκωδικοποιητή. Αν η reset είναι αληθής, η count μηδενίζεται. Αλλιώς εάν έχουμε αλλαγή του clk 50M από 0 σε 1 η count γίνεται count + 1. Αν η count φτάσει 15, μηδενίζεται ξανά. Τέλος, χρειαζόμαστε τους περιορισμούς για τον μετρητή. 6

Τα τρία αυτά αρχεία (counter.vhd, decoder1.vhd, counter.ucf) βρίσκονται κάτω από το ίδιο source. Στο Design Suite 14.2, καθορίζουμε την μονάδα υψηλότερου επιπέδου στο Top Module πλαίσιο, ακριβώς πάνω από το παράθυρο ιεραρχίας. Ανάλογα με τη μονάδα που καθορίζουμε κάθε φορά, μπορούμε να παράγουμε το schematic της (Επιλογή View RTL Schematic, κάτω από το Synthesize). Top-Level Block Schematic μετρητή και αποκωδικοποιητή Πλήρως ανελυμένο συνδυαστικό schematic Είναι εμφανές το συνδυαστικό κύκλωμα προκύπτει μόνο, όταν έχουμε θέσει ως μονάδα υψηλότερου επιπέδου τον μετρητή. 7

Μεθοδολογία Αθροιστή: Οπως αναφέραμε, το κύκλωμα του πλήρη αθροιστή θα έχει 3 εισόδους και 2 εξόδους. Οι είσοδοι A και B παριστάνουν τα 2 bit ίδιας τάξης που θα προστεθούν, δηλαδή τα 2 bit της ίδιας θέσης σε 2 αριθμόυς με περισσότερα bit που πρέπει να προστεθούν. Η τρίτη είσοδος Cin παριστάνει το κρατούμενο από τη προηγούμενη, αμέσως λιγότερο σημαντική θέση. Η χρήση 2 εξόδων S και Cout είναι απαραίτητη, καθώς το αριθμητικό άθροισμα τριών δυαδικών ψηφίων που μπορούν να πάρουν τιμές από 0 έως 3 μπορέι να έχει ως αποτέλεσμα το δυαδικό 2 ή το δυαδικό 3, τα οποία χρειάζονται 2 bit για την αναπαράστασή τους. Η δυαδική S δίνει την τιμή του λιγότερου σημαντικού bit του αθροίσματος, ενώ η μεταβλητή Cout το κρατούμενο εξόδου. Η υλοποίηση του πλήρους αθροιστή μπορεί να γίνει είτε με μορφή αθροίσματος γινομένων, είτε με 2 ημιαθροιστές και μία πύλη OR πριν την έξοδο Cout. Προτιμάται ο δεύτερος τρόπος. Η σχεδίασή του σε επίπεδο πυλών, όπως έγινε στο Design Suite, φαίνεται στο παρακάτω σχήμα: Ο απλός κώδικας VHDL που παράγει τον πλήρη αθροιστή ειναι ο παρακάτω: 8

Το μόνο που έχουμε να κάνουμε είναι να δηλώσουμε στο ENTITY τις εισόδους και τις εξόδους, που παίρνουν λογικές τιμές, και στο ARCHITECTU- RE να σχηματίσουμε τον αθροιστή, όπως ακριβώς κάναμε και στο σχήμα. Top-Level Block Schematic πλήρους αθροιστή Πλήρως ανελυμένο schematic πλήρους αθροιστή 9

4 Αποτελέσματα Τα αποτελέσματα θα προκύψουν από το πρόγραμμα isim, που προσφέρεται μαζί με το Design Suite. Η εγγραφή του κώδικα και η υλοποίηση των σχεδίων έγινε στο Implementation Mode του προγράμματος. Για να μεταφερθούμε σε περιβάλλον προσομοίωσης, επιλέγουμε το View: Simulation πάνω από Top Module πλαίσιο. Παράθυρο Ιεραρχίας Το Design Suite μας δίνει την επιλογή κατασκευής έτοιμου testbench, βασισμένο στον κώδικα που έχουμε σχεδιάσει. Επιλέγουμε Project/New Source/VHDL Test Bench/την πηγή με την οποία θα συσχετιστεί το testbench και προκύπτει ένα έτοιμο τμήμα κώδικα, το οποίο επιδέχεται ορισμένες αλλαγές. Το testbench αρχείο που δημιουργήσαμε είναι ορατό μόνο σε Simulation mode. Παρακάτω εμφανίζεται ο κώδικας VHDL του testbench του μετρητή μας (counter tb.vhd), μαζί με τις αλλαγές που έχουμε κάνει. Για να δούμε τα αποτελέσματά του, το καθορίζουμε ως κορυφαία μονάδα στην ιεραρχία, και επιλέγουμε το Simulate Behavioral Model. Πριν ανοίξει το isim για εμφάνιση αποτελεσμάτων, ελέγχει αν ο κώδικας είναι συντατικά σωστός. 10

11

12

Παρατηρούμε ότι οι έισοδοι και έξοδοι είναι αυτοί που είχαμε δώσει και στον μετρητή. Η πρώτη αλλαγή έγινε στην σταθερά καθορισμού περιόδου του ρολογιού. Θέλουμε αυτή να ταιριάζει με το 50M Hz ρολόι εισόδου για να ταιριάζουν τα διαγράμματα χρόνου. Για να το κάνουμε αυτό, παίρνουμε 1/50 Mhz και τα μετατρέπουμε σε nanosecond, άρα προκύπτουν 20ns. Στη συνέχεια, πρέπει να αλλάξουμε το clk 50M process, όπου το Xilinx διαιρεί το ρολόι δία 2, δημιουργώντας ρολόι 25M hz. Εμείς απλά αφαιρούμε τους διαιρέτες από τις προτάσεις μας. Τέλος, στο stim proc, γράφουμε το παρακάτω τμήμα κώδικα, που υποδεικνύει ότι το διάγραμμα θα ξεκινήσει να παίρνει τιμές μετά από 100ms (αφού η κατάσταση της reset θα παραμέινει ίδια για 100ms). Στη σύνεχεία η reset παίρνει τη λογική τιμή 1 για 10ns και αλλα ζει σε 0, όπου και παραμένει έτσι για άλλα 10ns κ.ο.κ. Αφού επαληθευτεί η ορθότητα του κώδικα, μεταφερόμαστε στο περιβάλλον προσομοίωσης, το οποίο θα αναλύσουμε παρακάτω. Για τον πλήρη αθροιστή, επιλέγονται κάθε φορά περιπτώσεις, στις οποίες οι είσοδοι δέχονται διαφορετικές τιμές και αναμένεται το αποτέλεσμα να ταιρίαζει με τον πίνακα αληθείας. Και πάλι το μεγαλύτερο μέρος του κώδικα δημιουργήθηκε από το Xilinx και συσχετίστηκε με τον VHDL κώδικα του πλήρους αθροιστή που γράψαμε. Το testbench για τον πλήρη αθροιστή είναι: 13

14

Με λίγα λόγια κάθε 3ms δίνονται τίμες που καλύπτουν τον πίνακα αληθείας των εισόδων. Αν οι τιμές των εξόδων αντιστοιχούν σε αυτόυς του πίνακα αληθείας του πλήρη αθροιστή, σημαίνει ότι υλοποίησαμε σωστά το κύκλωμα. 15

5 Ανάλυση Αποτελεσμάτων Η ανάλυση αποτελεσμάτων έγινε, όπως προαναφέραμε, στο πρόγραμμα isim. Στα δεξιά βλέπουμε τις εισόδους και εξόδους, των οποίων η τιμή θα φαίνεται και θα μεταβάλλεται, όσο το σύστημα είναι σε λειτουργία. Παρατηρούμε ότι η τιμή count δεν είναι ανάμεσα τους. Το πρώτο πράγμα που θα κάνουμε είναι προσθέσουμε από τα αντικείμενα του UUT (Unit Under Test), που βρίσκονται στα δεξιά της οθόνης την τιμή count, αλλά και την τιμή clk 1Hz. Στη συνέχεια θα θέσουμε στο Run for the time specified μία τιμή που επαρκεί για να μελετήσουμε το σύστημα, έστω 300ms, και θα το τρέξουμε. Μόλις τελειώσει, κάνουμε Full View τα αποτελέσματα, ώστε να εμφανίζει όλο το χρονοδιάγραμμα και προκύπτει το εξής: Τα αρχικά συμπεράσματα είναι ότι το σύστημα αρχίζει να λειτουργεί μετά από 100ms, όπως εμείς ορίσαμε. Από 0 έως 100ms η τιμή του count είναι άγνωστη, καθώς δεν έχει οριστεί αρχική τιμή. Η τιμή LED παραμένει 0, και η seven seg έχει πάρει την τιμή 1101100, η οποία είναι η τιμή που προκύπτει από το τελευταίο else του when-else clause του decoder. Ενδεικτικά, θα επιλέξουμε ένα τυχαίο τμήμα του χρονοδιαγράμματος, ώστε να μελετήσουμε τα αποτελέσματα: 16

Κάθε 4ms, η τιμή count αυξάνεται κατά 1. Αυτό συμβάινει κάθε φορά που το clk 1Hz μεταβαίνει από την την αρχή της λογικής τιμής 1 στην αρχή της επόμενης 1. Χρειάζεται δηλαδή 2ms σε κατάσταση high και 2ms σε κατάσταση low. Παρατηρούμε ότι κάθε count αντιστοιχεί απόλυτα σε κάθε τιμή seven seg που δόθηκε στον decoder. Η τιμή LED μεταβαίνει σε 1 όταν το count γίνεται 15, όπως σχεδιάσαμε. Εάν ζουμάρουμε παραπάνω, θα παρατηρήσουμε ότι η τιμή του clk 50m μεταβαίνει από 0 σε 1 και αντίστροφα κάθε 20ns. Από όλα τα παραπάνω, έχουμε επαληθεύσει ότι το σύστημα που κατασκευάσαμε λειτουργεί σωστά. Τα αποτελέσματα της προσομοίωσης του πλήρη αθροιστή είναι τα εξής: Θα τα συγκρίνουμε με τον πίνακα αληθείας του αθροιστή: 17

Τρέξαμε την προσομοίωση για 24ms, δηλαδή ακριβώς όσα χρειάζονται για να προκύψουν και οι 8 περιπτώσεις που δώσαμε. Το χρονοδιάγραμμα επαληθεύει απόλυτα τον πίνακα αληθείας, άρα η κατασκευή του είναι σωστή. 6 Βιβλιογραφία Ψηφιακή Σχεδίαση, Τέταρτη Εκδοση, από M. Morris Mano, Michael D. Ciletti Fundamentals of Digital Logic and Microcomputer Design, 5th E- dition, από M. Rafiquzzaman, Ph.D Xilinx ISE User Guides, από http://www.xilinx.com/ Spartan 3 Starter Board Tutorial, σε pdf, από Jim Duckworth 18