You are on page 1of 42

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

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ

ΕΥΣΤΑΘΙΟΣ ΚΥΡΙΑΚΗΣ-ΜΠΙΤΖΑΡΟΣ
ΚΑΘΗΓΗΤΗΣ

ΟΚΤΩΒΡΙΟΣ 2019
2
ΠΡΟΛΟΓΟΣ

Στο φυλλάδιο αυτό περιλαμβάνονται οι ασκήσεις του εργαστηριακού μέρους του


μαθήματος Σχεδίαση Ψηφιακών Συστημάτων, το οποίο διδάσκεται στο 3ο εξάμηνο του
προπτυχιακού προγράμματος σπουδών του Τμήματος Ηλεκτρολόγων και Ηλεκτρονικών
Μηχανικών του Πανεπιστημίου Δυτικής Αττικής. Σκοπός του εργαστηριακού μέρους του
μαθήματος είναι η εξοικείωση των φοιτητών στις τεχνικές σχεδίασης και εξομοίωσης
ψηφιακών συστημάτων με χρήση λογισμικού είτε με σχηματικό διάγραμμα είτε με τη
γλώσσα περιγραφής υλικού VHDL, και στην υλοποίησή τους με τυποποιημένα
ολοκληρωμένα κυκλώματα της οικογένειας 74xxx και με προγραμματιζόμενες διατάξεις
CPLD (Complex Programmable Logic Devices) και FPGA (Field Programmable Gate
Array). Το εργαλείο σχεδιασμού που χρησιμοποιείται είναι η ελεύθερη έκδοση (web
edition) του Quartus Prime της Intel FPGA (πρώην Altera). Η ύλη του εργαστηρίου είναι
προσαρμοσμένη στην ύλη που διδάσκεται στο μάθημα Σχεδίαση Ψηφιακών Συστημάτων
αλλά θεωρείται ότι οι φοιτητές έχουν καλή γνώση της ύλης του μαθήματος του β΄εξαμήνου
Σχεδίαση Λογικών Κυκλωμάτων.
Σε κάθε άσκηση αναφέρονται οι παράγραφοι του βιβλίου «Σχεδίαση Ψηφιακών
Συστημάτων με τη γλώσσα VHDL», S. Brown & Z. Vranesic, Εκδόσεις Τζιόλα, (3η
έκδ. 2012), στις οποίες περιλαμβάνεται το θεωρητικό υπόβαθρο που είναι απαραίτητο για
την επιτυχή ολοκλήρωση της. Σε μερικές ασκήσεις απαιτείται και η χρήση του φυλλαδίου
προδιαγραφών (data sheet) συγκεκριμένων ολοκληρωμένων κυκλωμάτων της οικογένειας
74xxx. Είναι απαραίτητο πριν την πραγματοποίηση κάθε άσκησης στο εργαστήριο να έχει
γίνει προεργασία από τον φοιτητή. Υπάρχουν στοιχεία σε κάθε άσκηση όπως πίνακες
αλήθειας, σχηματικά διαγράμματα, διαγράμματα βαθμίδων και κώδικες VHDL τα
οποία πρέπει να έχουν μελετηθεί συστηματικά εκ των προτέρων, γιατί αποτελούν και
αντικείμενο εξέτασης κατά τη διάρκεια πραγματοποίησης κάθε άσκησης στο εργαστήριο.
Το υλικό του παρόντος φυλλαδίου σε μορφή pdf, ο οδηγός χρήσης (User's Guide) του
αναπτυξιακού συστήματος DE10 Lite της Terasic και τα εγχειρίδια (data sheets) των
τυποποιημένων ολοκληρωμένων κυκλωμάτων που ζητούνται στις ασκήσεις βρίσκονται στη
δικτυακή διεύθυνση του μαθήματος Σχεδίαση Ψηφιακών Συστημάτων στο e-class του
Τμήματος Ηλεκτρολόγων και Ηλεκτρονικών Μηχανικών https://eclass.uniwa.gr/modules/
user/?course=EEE306
Παρατηρήσεις και σχόλια που στοχεύουν στη βελτίωση του περιεχομένου
φυλλαδίου και τη διόρθωση σφαλμάτων είναι ευπρόσδεκτες.

Ευστάθιος Κυριάκης-Μπιτζάρος
Καθηγητής

3
4
ΠΕΡΙΕΧΟΜΕΝΑ

Άσκηση 1η Υλοποίηση Λογικών Κυκλωμάτων με Τυποποιημένα Ολοκληρωμένα


Κυκλώματα ......................................................................................................7

Άσκηση 2η Σχεδίαση με Χρήση Η/Υ & Υλοποίηση Συνδυαστικών Κυκλωμάτων..........11

Άσκηση 3η Υλοποίηση Αποκωδικοποιητή Οθόνης 7 Τμημάτων.....................................23

Άσκηση 4η Πολυπλέκτες και Κωδικοποιητές...................................................................34

Άσκηση 5η-6η Υλοποίηση Παραμετρικού Μετρητή (Counter).............................................36

Χρήσιμες Πληροφορίες (Κανονισμός Λειτουργίας)..............................................................39

Διάγραμμα Ακροδεκτών Ολοκληρωμένων Κυκλωμάτων 74LSxxx......................................41

Αναπτυξιακό Σύστημα ΑΚ-180.............................................................................................42

5
6
ΑΣΚΗΣΗ 1η

ΥΛΟΠΟΙΗΣΗ ΛΟΓΙΚΩΝ ΚΥΚΛΩΜΑΤΩΝ ΜΕ


ΤΥΠΟΠΟΙΗΜΕΝΑ ΟΛΟΚΛΗΡΩΜΕΝΑ ΚΥΚΛΩΜΑΤΑ

Σκοπός της πρώτης άσκησης είναι αφενός η επανάληψη των ιδιοτήτων των πράξεων της
άλγεβρας Booole και αφετέρου η εισαγωγή των φοιτητών στη δομή και τη χρήση του
συστήματος υλοποίησης κυκλωμάτων AK-180 και στα τυποποιημένα ολοκληρωμένα
κυκλώματα της σειράς 74LSxxx ή 74HCxxx.

ΘΕΩΡΙΑ
• «Ψηφιακή Σχεδίαση», Μ. Mano, M.D. Ciletti, (5η εκδ.), Κεφ. 2, σελ. 38–45, 60–63.
Εισαγωγή στα πειράματα, Κεφ. 9, σελ. 442-447.
• «Σχεδίαση Ψηφιακών Συστημάτων με τη γλώσσα VHDL», S. Brown & Z. Vranesic,
(3η εκδ.), Παρ. 2.1 έως 2.5 (όχι 2.5.1 και 2.5.2) και 3.5.
• Εγχειρίδια χρήσης των Ο.Κ. 74LS04 (ΝOT), 74LS08 (AND2), 74LS32 (OR2)
74LS10 (NAND3), 74LS27 (NOR3), 74LS00 (NAND2), και 74LS02 (NOR2)
• Το σύστημα ανάπτυξης λογικών κυκλωμάτων AK-180

ΕΡΓΑΣΤΗΡΙΑΚΟ ΜΕΡΟΣ

1. Τοποθετήστε στο breadboard ένα Ο.Κ. με αντιστροφείς 74LS04.


2. Συνδέστε την τροφοδοσία (τάση και γείωση) στους κατάλληλους ακροδέκτες του
Ο.Κ. (σελ. 41), χωρίς να θέσετε το κύκλωμα υπό τάση. Ο διακόπτης τροφοδοσίας
στο πίσω μέρος του ΑΚ-180 να είναι στη θέση OFF (βλ. σελ. 42).
3. Συνδέστε την είσοδο ενός αντιστροφέα με ένα διακόπτη και με ένα LED.
4. Συνδέστε την έξοδο του αντιστροφέα σε ένα άλλο LED.
5. Δώστε τροφοδοσία στο κύκλωμα και ελέγξτε τη σχέση εισόδου-εξόδου του
αντιστροφέα για τις δύο λογικές καταστάσεις της εισόδου. Καταγράψτε το
αποτέλεσμα στον παρακάτω πίνακα.
ΙΝ OUT

6. Αποσυνδέστε το διακόπτη από την είσοδο του αντιστροφέα.


7. Τοποθετήστε τον επιλογέα συχνοτήτων της γεννήτριας παλμών στη χαμηλότερη
τιμή. Συνδέστε την είσοδο του αντιστροφέα στη γεννήτρια παλμών.
8. Παρατηρείστε τη συμπεριφορά των LED καθώς μεταβάλετε τη συχνότητα της
γεννήτριας από πολύ χαμηλές (<1Hz) συχνότητες σε υψηλές συχνότητες.
Γιατί όταν η συχνότητα της εισόδου ξεπεράσει τα 100 Hz βλέπετε το LED μονίμως
αναμμένο;

Με ποιο/α όργανο/α μπορείτε στην περίπτωση αυτή να δείτε τη σχέση εισόδου και
εξόδου του κυκλώματός σας σε αυτές τις συχνότητες για να επαληθεύσετε τη
λειτουργία του; Σχεδιάστε την προτεινόμενη διάταξη στην επόμενη σελίδα και τις
αναμενόμενες ενδείξεις.

7
9. Συμπληρώστε τις τρεις πρώτες στήλες του Πίνακα 1.1 με τον πίνακα αλήθειας της
πύλης AND 2 εισόδων.
10. Τοποθετήστε στο breadboard ένα Ο.Κ. με πύλες AND 2 εισόδων 74LS08.
11. Συνδέστε την τροφοδοσία (τάση και γείωση) στους κατάλληλους ακροδέκτες του
Ο.Κ. (σελ. 41), χωρίς να θέσετε το κύκλωμα υπό τάση.
12. Συνδέστε κάθε είσοδο της πύλης σε ένα διακόπτη και ένα LED.
13. Συνδέστε την έξοδο της πύλης σε ένα άλλο LED.
14. Χρησιμοποιώντας τους διακόπτες για να παράγετε όλους τους συνδυασμούς των
εισόδων συμπληρώστε την στήλη AB cir του πίνακα 1.1 ώστε να επαληθεύσετε τον
πίνακα αληθείας του βήματος 9.

A B AB ΑB cir

Πίνακας 1.1

15. Διατυπώστε την προσεταιριστική ιδιότητα για τις λογικές συναρτήσεις AND και OR
τριών εισόδων:
AND A·B·C =

OR A+B+C =

16. Σχεδιάστε τα αντίστοιχα λογικά κυκλώματα με λογικές πύλες 2 εισόδων


AND OR

17. Διατυπώστε την προσεταιριστική ιδιότητα για τις λογικές συναρτήσεις NAND και
NOR τριών εισόδων:

NAND A·B·C =

NOR A+B+C =

8
18. Σχεδιάστε τα αντίστοιχα λογικά κυκλώματα με λογικές πύλες 2 εισόδων
ΛΟΓΙΚΑ ΚΥΚΛΩΜΑΤΑ ΓΙΑ ΤΗΝ NAND 3 ΕΙΣΟΔΩΝ

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

19. Συμπληρώστε τις τέσσερις πρώτες στήλες του πίνακα 1.2 με τον πίνακα αλήθειας
της πύλης NAND 3 εισόδων.
20. Τοποθετείστε στο αναπτυξιακό σύστημα μία πύλη NAND 3 εισόδων (74LS10) και
συνδέστε τις εισόδους της σε διακόπτες και την έξοδό της σε ένα LED (Mην
ξεχνάτε τη σύνδεση της τροφοδοσίας Vcc και GND).
21. Συμπληρώστε τη στήλη NAND3 του πίνακα 1.2 για όλους τους συνδυασμούς των
εισόδων της πύλης και επαληθεύστε το αποτέλεσμα με τον πίνακα αλήθειας του
βήματος 19 (στήλη 4 του πίνακα 1.2).
22. Υλοποιήστε ένα από τα δύο κυκλώματα του βήματος 18 με πύλες NAND 2 εισόδων
(74LS00) συνδέοντας τις εισόδους στους ίδιους διακόπτες με το βήμα 20 και την
έξοδο σε ένα άλλο LED.
23. Συμπληρώστε τη στήλη NAND CIR του πίνακα 1.2 για όλους τους συνδυασμούς
των εισόδων της πύλης και επαληθεύστε αν το αποτέλεσμα είναι ίδιο με το βήμα 21.
A B C ABC NAND3 NAND CIR. Βήμα 29
Βήμα 21 Βήμα 23

Πίνακας 1.2

9
24. ΙΣΧΥΕΙ Η ΠΡΟΣΕΤΑΙΡΙΣΤΙΚΗ ΙΔΙΟΤΗΤΑ ΣΤΗ NAND; NAI - OXI
25. Επαναλάβετε τα βήματα 19 έως 23 για την πύλη NOR χρησιμοποιώντας τα Ο.Κ.
74LS27 και 74LS02, και συμπληρώστε τον πίνακα 1.3.
A B C A+B+C NOR3 NOR CIR. Βήμα 29

Πίνακας 1.3
26. ΙΣΧΥΕΙ Η ΠΡΟΣΕΤΑΙΡΙΣΤΙΚΗ ΙΔΙΟΤΗΤΑ ΣΤΗ NOR; NAI – OXI
27. Χρησιμοποιώντας μόνο πύλες NAND ή NOR 2 εισόδων υλοποιήστε τις συναρτήσεις
NAND και NOR 3 εισόδων, αντίστοιχα.
NAND NOR

28. Υλοποιήστε τα παραπάνω κυκλώματα στο breadboard.


29. Συμπληρώστε για όλους τους συνδυασμούς των εισόδων της πύλης τη στήλη “Βήμα
29” στους πίνακες 1.2 και 1.3 και ελέγξτε την ορθότητα των κυκλωμάτων.

10
ΑΣΚΗΣΗ 2η

ΣΧΕΔΙΑΣΗ ΜΕ ΧΡΗΣΗ Η/Υ & ΥΛΟΠΟΙΗΣΗ ΣΥΝΔΥΑΣΤΙΚΩΝ


ΚΥΚΛΩΜΑΤΩΝ

Σκοπός της δεύτερης άσκησης είναι η εξοικείωση των σπουδαστών με την σχεδίαση με
χρήση Η/Υ στο περιβάλλον QUARTUS-Prime της Intel, την υλοποίηση και τον έλεγχο
συνδυαστικών κυκλωμάτων. Αρχικά, γίνεται σχεδίαση και εξομοίωση ενός απλού
συνδυαστικού κυκλώματος τεσσάρων εισόδων με πύλες δύο εισόδων και ακολουθεί η
υλοποίησή του και η επαλήθευση της ορθής λειτουργίας του στο breadboard.

ΘΕΩΡΙΑ
• «Ψηφιακή Σχεδίαση», Μ. Mano, M.D. Ciletti, (5η εκδ.), Κεφ. 9, σελ. 465 – 467.
• «Σχεδίαση Ψηφιακών Συστημάτων με τη γλώσσα VHDL», S. Brown & Z. Vranesic,
(3η εκδ.), Παρ. 2.6, 2.7.
• Εγχειρίδια χρήσης (Data Sheets) των Ο.Κ. 74LS08 (AND), 74LS32 (OR), 74LS04
(NOT), 74LS02 (NOR), 74LS93 (COUNTER).

ΕΡΓΑΣΤΗΡΙΑΚΟ ΜΕΡΟΣ

1. ΛΟΓΙΚΕΣ ΣΥΝΑΡΤΗΣΕΙΣ ΚΥΚΛΩΜΑΤΟΣ


1.1. Διατυπώστε τις συναρτήσεις των εξόδων του κυκλώματος του σχήματος 2.1.

f1 =

f2 =

f3 =

Σχήμα 2.1

11
2. ΣΥΜΠΛΗΡΩΣΗ ΠΙΝΑΚΑ ΑΛΗΘΕΙΑΣ
2.1. Συμπληρώστε στην 5η, 6η και 7η στήλη του πίνακα 2.1 τον πίνακα αλήθειας των
συναρτήσεων f1, f2 και f3, αντίστοιχα.

x4 x3 x2 x1 f1 f2 f3 f1 f2 f3
Βήμα 5.3 Βήμα 5.3 Βήμα 5.3
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1
Πίνακας 2.1

3. ΕΙΣΑΓΩΓΗ ΚΥΚΛΩΜΑΤΟΣ ΣΤΟ QUARTUS-PRIME


3.1. Ορισμός Ονόματος του Έργου ( Project )
Για κάθε κύκλωμα που σχεδιάζετε είναι αναγκαίο να ορίσετε τη θέση του φακέλου
(directory), όπου το λογισμικό QUARTUS Prime θα αποθηκεύει όλα τα αρχεία που θα
δημιουργηθούν για το έργο (project).
3.1.1.Επιλέξτε New Project Wizard από το File Menu.

3.1.2. Στο παράθυρο που παρουσιάζεται (Σχήμα 2.2), πρέπει να συμπληρωθεί το directory,
όπου θα τοποθετηθεί το νέο project, το όνομα του project και το όνομα της ανώτερης
οντότητας (entity) του σχηματικού διαγράμματος.
Στο πρώτο πεδίο γράφετε το όνομα του directory (φακέλου) το οποίο πρέπει να είναι
της μορφής /home/userx/Digital/askisizz όπου x=1,2,...,6 ανάλογα με το username
που σας έχει δοθεί και zz ο αριθμός της άσκησης.
ΜΗΝ ΠΡΟΣΠΑΘΕΙΤΕ ΝΑ ΔΗΜΙΟΥΡΓΗΣΕΤΕ ΤΟ PROJECT ΣΕ ΑΛΛΟΝ
ΦΑΚΕΛΟ ΓΙΑΤΙ ΔΕΝ ΕΧΕΤΕ ΔΙΚΑΙΩΜΑΤΑ ΕΓΓΡΑΦΗΣ.
Στο δεύτερο πεδίο γράφετε το όνομα του Project. Μπορείτε να διαλέξετε όποιο όνομα
θέλετε αλλά καλό θα είναι σε κάθε άσκηση να είναι askisizz, όπου zz ο αριθμός της
άσκησης ή κάτι σχετικό με τη λειτουργία του κυκλώματος π.χ. Fulladd για τον full
adder, reg8p για τον register 8 ψηφίων.

12
Στο τρίτο πεδίο συμπληρώνετε το όνομα της οντότητας (entity) το οποίο παίρνει
αυτόματα το ίδιο όνομα με αυτό του Project. (Μπορείτε αν θέλετε να αλλάξετε αυτό
το όνομα αλλά δεν συνιστάται γιατί εύκολα μπορεί να σας δημιουργήσει προβλήματα
σε επόμενα βήματα.)
ΠΡΟΣΟΧΗ: Μηv χρησιμοποιείτε κενά ή/και ελληνικούς χαρακτήρες στα ονόματα
των αρχείων του project και του entity γιατί δημιουργούν προβλήματα στη
διαχείριση τους από το QUARTUS Prime.
Πατήστε YES για να ολοκληρωθεί η δημιουργία του directory.

Σχήμα 2.2
3.1.3 Στην επόμενη σελίδα επιλέξτε Empty Project
3.1.4 Πατήστε Επόμενο (ΝΕΧΤ). Η σελίδα “Add files” του New Project Wizard
εμφανίζεται. Εδώ, μπορείτε να επιλέξετε τα design files που επιθυμείτε και να τα
συμπεριλάβετε στο project. Επειδή, όμως δημιουργήσατε ένα νέο project, δεν
υπάρχουν αρχεία να ενσωματώσετε, ακόμη. Σε περίπτωση που υπάρχουν, πατήστε
Browse (…) για να επιλέξετε τα αρχεία, και πατώντας το Add… να τα προσθέσετε
στο Project.
3.1.5 Πατήστε NEXT. Η Τρίτη σελίδα του New Project Wizard (Σχήμα 2.3) περιέχει τα
στοιχεία της οικογένειας του ολοκληρωμένου κυκλώματος που θα χρησιμοποιηθεί για
την εξομοίωση και την υλοποίηση του κυκλώματός σας (Family and Device Settings).
Εδώ μπορείτε να επιλέξετε την οικογένεια και τον τύπο CPLD ή FPGA που θέλετε να
χρησιμοποιήσετε για την υλοποίηση του κυκλώματος. Συμπληρώσετε εδώ Device
Familly MAX10 και Device 10M50DAF484C7G.
3.1.6 Πατήστε Finish. Δεν απαιτείται να γίνουν αλλαγές στις τελευταίες δύο σελίδες του
New Project Wizard.

13
Σχήμα 2.3

3.2. Δημιουργία Σχηματικού Διαγράμματος ( Block Diagram )

3.2.1.Επιλέξτε New (File Menu). Η επιλογή Device Design Files του παραθύρου New
εμφανίζεται αυτόματα (Σχήμα 2.4).
3.2.2.Επιλέξτε το Block Diagram/Schematic File. Το αρχείο που θα δημιουργηθεί έχει
extension .bdf (Block Diagram File).
3.2.3.Πατήστε OK. Εμφανίζεται στην οθόνη το παράθυρο του επεξεργαστή Σχηματικών
Διαγραμμάτων (Block Editor). Στην πάνω πλευρά του παραθύρου αυτού υπάρχουν τα
εργαλεία για τη σχεδίαση του σχηματικού διαγράμματος του κυκλώματος και όταν
τοποθετείτε το ποντίκι πάνω σε κάθε εικονίδιο εμφανίζεται μία σύντομη περιγραφή
της αντίστοιχης λειτουργίας.
3.2.4.Επιλέξτε από το File Menu το Save as.
3.2.5.Επιλέξτε το όνομα του αρχείου όπου επιθυμείτε να σώσετε το BDF. Δώστε το όνομα
/home/userx/Digital/askisi2/askisi2.bdf.

14
Σχήμα 2.4

3.3. Εισαγωγή Λογικών Στοιχείων

Ένα αρχείο σχηματικού διαγράμματος περιέχει τα σύμβολα των λογικών στοιχείων (π.χ.
πύλες, πολυπλέκτες, flip-flops) και τις διασυνδέσεις που απαιτούνται ώστε να υλοποιείται
το υπό σχεδίαση κύκλωμα. Το πρόγραμμα QUARTUS Prime παρέχει σύμβολα για μια
μεγάλη ποικιλία βασικών λογικών συναρτήσεων (Primitives), βιβλιοθήκες με παραμετρικά
στοιχεία και συναρτήσεις (Library of Parameterized Modules, LPM ) και πολύπλοκα
κυκλώματα (Megafunctions), τα οποία μπορούν να χρησιμοποιηθούν στον Block Editor.
Για να εισάγετε τις πύλες που απαιτούνται για το κύκλωμα της άσκησης ακολουθείστε την
παρακάτω διαδικασία.

3.3.1. Κάντε κλικ στο Symbol Tool πάνω στην επιφάνεια εργαλείων (το σύμβολο της πύλης
στο αριστερό μέρος της οθόνης του schematic editor) για να εμφανιστεί το παράθυρο
επιλογής συμβόλων του σχήματος 2.5 (Symbol dialog box ).
3.3.2.Στη λίστα των βιβλιοθηκών ( libraries ) πατήστε το εικονίδιο (+) ώστε να ανοίξετε τις
επιλογές του φακέλου /home/altera_lite/15.1/quartus/libraries/. Ακολούθως, ανοίξτε
τις επιλογές του υποφακέλου others και του υποφακέλου maxplus2
3.3.3.Μετακινείστε με το ποντίκι τη λίστα των ονομάτων των διαθέσιμων πυλών και θα
εμφανιστούν στην οθόνη οι κωδικοί των Ο.Κ. της οικογένειας 74xx. Επιλέξτε την
πύλη που επιθυμείτε να τοποθετήσετε στον Block Editor (το σύμβολό της εμφανίζεται
μέσα στο παράθυρο) και πατήστε ΟΚ για να κλείσετε το παράθυρο της βιβλιοθήκης.
Όταν ανοίγετε το Symbol Dialog Box, η επιλογή Repeat-Insert mode είναι πάντοτε
επιλεγμένη. Είναι εύχρηστη στην περίπτωση, όπου θέλετε να τοποθετήσετε πολλά ίδια
στοιχεία.

15
Σχήμα 2.5

3.3.4.Με το ποντίκι τοποθετήστε μέσα στο παράθυρο του block editor ένα ή περισσότερα
αντίγραφα της πύλης που έχετε επιλέξει. Στη φάση αυτή μπορείτε να αλλάξετε
προσανατολισμό ή να περιστρέψετε κατά 90°, 180° ή 270° το στοιχείο που
τοποθετείτε, κάνοντας δεξί κλικ πάνω στο component και επιλέγοντας μία από τις
επιλογές Flip horizontal, Flip vertical και Rotate by degrees. Με το πλήκτρο Esc
ακυρώνετε τη διαδικασία εισαγωγής συμβόλου.
3.3.5.Ακολουθήστε την ίδια διαδικασία και για τις υπόλοιπες πύλες, που θέλετε να
τοποθετήσετε. Το σχηματικό σας θα πρέπει να έχει τη μορφή που φαίνεται στο σχήμα
2.6.

Σχήμα 2.6

3.4. Εισαγωγή και Ονοματοδοσία Ακροδεκτών Εισόδου και Εξόδου.

Στις εισόδους και τις εξόδους του κυκλώματος πρέπει να τοποθετηθούν οι κατάλληλοι
ακροδέκτες (pins). Για να εισάγετε τα σύμβολα, τα οποία να αντιπροσωπεύουν τις θύρες του
κυκλώματος, ακολουθήστε τα παρακάτω βήματα :

3.4.1.Επιλέξτε το Symbol Tool και στο φάκελο Primitives επιλέξτε το φάκελο Pin.
3.4.2.Επιλέξτε το σύμβολο εισόδου (Input) και πατήστε ΟΚ.

16
3.4.3.Τοποθετήστε τις εισόδους στην αριστερή πλευρά του Block Editor, μπροστά από τις
πύλες. Πατήστε Esc.
Η εισαγωγή των ακροδεκτών μπορεί να γίνει και από το Pin Tool της γραμμής των
εργαλείων.
3.4.4.Επαναλάβετε τα βήματα 1 έως 3, για να τοποθετήσετε δεξιά της ΝOR πύλης, τρία
σύμβολα εξόδου (Output pins).
3.4.5. Σώστε το κύκλωμα (το εικονίδιο με τη δισκέτα ή Save από το File Menu ).
3.4.6.Υπάρχουν δύο τρόποι για να δώσετε όνομα στους ακροδέκτες Εισόδου – Εξόδου του
κυκλώματός σας,
α) διπλό κλικ στο κείμενο pin_name και αλλαγή του κειμένου από το
πληκτρολόγιο και

β) διπλό κλικ πάνω στο pin ανοίγει μία φόρμα εισαγωγής στοιχείων (Pin
properties) στην οποία μπορείτε να αλλάξετε το όνομα του ακροδέκτη και
πατώντας ΟΚ να ολοκληρώσετε την αλλαγή.
ΠΡΟΣΟΧΗ: πρέπει από την παλέτα εργαλείων να είναι ενεργοποιημένο το Selection and
Smart Drawing Tool (το βελάκι).
3.4.7. Αλλάξτε το όνομα του πρώτου ακροδέκτη εισόδου σε x1.
3.4.8.Επαναλάβετε την ίδια διαδικασία για τον ορισμό και των υπολοίπων ακροδεκτών
εισόδου και εξόδου. Η οθόνη σας πρέπει να είναι όπως φαίνεται στο Σχήμα 2.7.
3.4.9.Αποθηκεύστε το κύκλωμα. (File --> Save)

Σχήμα 2.7

3.5. Σύνδεση κόμβων με καλώδια.

Το επόμενο βήμα είναι η πραγματοποίηση των διασυνδέσεων των στοιχείων του


κυκλώματος. Για να σχεδιάσετε τα καλώδια (nets) πρέπει να επιλέξετε το εικονίδιο
Orthogonal Node Tool (πέμπτο από την κορυφή) πάνω στο toolbar και να τοποθετήσετε το
σταυρόνημα ( + ) ακριβώς πάνω στον ακροδέκτη, το σημείο που πρέπει να συνδεθεί το
καλώδιο. Ύστερα, κρατώντας πατημένο το αριστερό κουμπί του ποντικιού τραβάμε την
γραμμή (καλώδιο) έως τον άλλο ακροδέκτη. Για να δημιουργήσετε διακλάδωση σε ένα
καλώδιο τοποθετήστε το σταυρόνημα πάνω στο καλώδιο και με πατημένο το αριστερό
πλήκτρο του ποντικιού μετακινήστε το ποντίκι. Εναλλακτικά έχοντας επιλεγμένο το
Selection and Smart Drawing Tool από το toolbar όταν το ποντίκι βρίσκεται κοντά σε έναν
ακροδέκτη, ένα ασύνδετο καλώδιο ή μία γωνία καλωδίου μετατρέπεται σε σταυρόνημα. Αν

17
πατήσετε το αριστερό πλήκτρο του ποντικιού και κρατώντας το πατημένο μετακινήσετε το
ποντίκι θα δημιουργηθεί ένα καλώδιο που συνδέεται αυτόματα με τον ακροδέκτη ή το
καλώδιο. Η διασταύρωση δύο καλωδίων δεν σημαίνει και βραχυκύκλωμα. Όπου υπάρχει
διασύνδεση καλωδίων το Quartus τοποθετεί αυτόματα μία τελεία.
3.5.1.Ενώστε την είσοδο x1 με τη πάνω είσοδο της πύλης OR.
3.5.2.Ακολουθήστε την ίδια διαδικασία για να συνδέσετε όλες τις πύλες μεταξύ τους ώστε
να σχεδιάσετε το σχηματικό διάγραμμα του κυκλώματος που φαίνεται στο σχήμα 2.8.
3.5.3.Αποθηκεύστε το κύκλωμα.

Σχήμα 2.8

4. ΜΕΤΑΦΡΑΣΗ ( COMPILΑΤΙΟΝ )

Ο μεταφραστής (Compiler) του Quartus Prime αποτελείται από ένα σετ ανεξάρτητων
εργαλείων που ελέγχουν το σχέδιο για λάθη, αναλύουν το σχηματικό διάγραμμα και
δημιουργούν μία λογική έκφραση για κάθε λογική συνάρτηση του κυκλώματος,
απεικονίζουν το σχέδιο σε μία προγραμματιζόμενη διάταξη (FPGA ή CPLD) της Intel και
δημιουργούν αρχεία εξόδων για προσομοίωση λειτουργίας (Simulation), χρονική ανάλυση
(timing analysis), και προγραμματισμό διατάξεων (device programming).
Ο μεταφραστής αποτελείται από τα εργαλεία :
· Analysis and Synthesis
· Fitter
· Assembler και
· Time Quest Timing Analysis
4.1. Για να ξεκινήσετε το Full Compilation (πλήρης μετάφραση) επιλέξτε με το ποντίκι το
pull-down menu Processing και ύστερα το Start Compilation.
Η πρόοδος των εργασιών φαίνεται στο αριστερό μέρος της οθόνης. Στο κάτω μέρος
της οθόνης εμφανίζονται τα πιθανά σφάλματα (Errors) του κυκλώματος (με κόκκινα
γράμματα) καθώς και τα κάθε είδους προειδοποιητικά (Warning) (με μπλε γράμματα)
και πληροφοριακά (Info) (με πράσινα γράμματα) μηνύματα. Σε περίπτωση που
υπάρχει λάθος στο κύκλωμα η διαδικασία μετάφρασης σταματάει. Με διπλό αριστερό
κλικ πάνω στο μήνυμα του σφάλματος ή της προειδοποίησης ο cursor τοποθετείται
στο παράθυρο του block editor στην περιοχή του σφάλματος.
Επίσης, εμφανίζεται το παράθυρο Compilation Report, στο οποίο περιλαμβάνονται
πληροφοριακά και στατιστικά στοιχεία για τη διαδικασία της μετάφρασης και της
υλοποίησης του κυκλώματος.

18
4.2. Όταν το κύκλωμα είναι πολύπλοκο η διαδικασία της πλήρους μετάφρασης είναι
χρονοβόρα, γι' αυτό δίνεται η δυνατότητα στο σχεδιαστή να κάνει μερικό έλεγχο του
κυκλώματος χρησιμοποιώντας την επιλογή από το menu Processing --> Start
Analysis and Synthesis, η οποία ελέγχει το κύκλωμα για πιθανά σφάλματα και δίνει
τη δυνατότητα μόνο λειτουργικής εξομοίωσης (Functional Simulation).
5. ΠΡΟΣΟΜΟΙΩΣΗ ΛΕΙΤΟΥΡΓΙΑΣ ( SIMULATION )

Για να βεβαιωθούμε ότι το κύκλωμα εκτελεί τις λειτουργίες για τις οποίες το έχουμε
σχεδιάσει είναι απαραίτητη η διαδικασία της προσομοίωσης. Στη διαδικασία αυτή δίνουμε
παλμούς στα σήματα εισόδου του κυκλώματος και ελέγχουμε αν τα σήματα εξόδου είναι τα
αναμενόμενα σύμφωνα με τον πίνακα αληθείας του. Υπάρχουν δύο τύποι εξομοίωσης
λειτουργική (functional) και χρονισμών (timing). Στην περίπτωση της λειτουργικής
εξομοίωσης δε λαμβάνουμε υπόψη τις καθυστερήσεις των στοιχείων (πυλών και
διασυνδέσεων) του κυκλώματος αλλά απλά επαληθεύουμε ότι η λογική συνάρτηση που
υλοποιεί το κύκλωμα είναι σωστή. Στην εξομοίωση χρονισμών επαληθεύουμε την ορθότητα
του κυκλώματος μας και με βάση του χρονικούς περιορισμούς που αυτό έχει. Για
παράδειγμα έστω ότι έχουμε σχεδιάσει έναν απαριθμητή και ότι η καθυστέρηση ενός flip-
flop είναι 10 nsec. Στην λειτουργική εξομοίωση μπορούμε να χρησιμοποιήσουμε ένα σήμα
ρολογιού με περίοδο 5 nsec και το κύκλωμα μας θα κάνει σωστή καταμέτρηση. Αν
χρησιμοποιήσουμε όμως το ίδιο σήμα ρολογιού σε εξομοίωση χρονισμού το κύκλωμα δεν
θα έχει τη σωστή απόκριση γιατί μέσα στα 5 nsec τα flip-flops δεν προλαβαίνουν να
αλλάξουν κατάσταση.
Το Quartus Prime δίνει τη δυνατότητα να επιλέξετε το εργαλείο εξομοίωσης με το οποίο θα
ελέγξετε τη λειτουργία του κυκλώματός σας. Ο Simulator που θα χρησιμοποιηθεί στα
πλαίσια των εργαστηριακών ασκήσεων είναι αυτός που δίνει η ALTERA στο πλαίσιο του
προγράμματος υποστήριξης εκπαιδευτικών δραστηριοτήτων (University program).

5.1. Από το pull-down menu file επιλέξτε New. Στη φόρμα με τους δυνατούς τύπους
αρχείων (σχήμα 2.4) επιλέξτε University Program VWF (Vector Waveform File).
Στο αρχείο κυματομορφών αποθηκεύονται οι κυματομορφές των εισόδων, οι οποίες
χρησιμοποιούνται στην εξομοίωση. Εμφανίζεται το περιβάλλον του εξομοιωτή
(Σχήμα 2.9) και ο Waveform Editor (Επεξεργαστής Κυματομορφών), ο οποίος δίνει
τη δυνατότητα να εισάγετε τους κόμβους (Nodes) του κυκλώματος και τις
κυματομορφές εισόδου ώστε να μπορέσει να πραγματοποιηθεί η εξομοίωση.

Σχήμα 2.9

19
5.2. Κάντε διπλό αριστερό κλικ στον κενό χώρο κάτω από το Name και στο παράθυρο
που εμφανίζεται επιλέξτε Node Finder.
5.3. Στο Node Finder (Σχήμα 2.10) επιλέξτε το πλήκτρο List στο πάνω δεξιά τμήμα του
παραθύρου για την εμφάνιση των ονομάτων των κόμβων του τρέχοντος έργου στο
ορθογώνιο με το όνομα Nodes Found.
ΠΡΟΣΟΧΗ: Στο πεδίο Named να υπάρχει το * και στο Filter Pins:all

Σχήμα 2.10
Από την επιλογή Named στην πάνω αριστερή γωνία του παραθύρου του Node Finder
μπορείτε να επιλέξετε σήματα ανάλογα με το όνομά τους. Από την επιλογή Filter
μπορείτε να επιλέξετε ομάδες σημάτων π.χ. σήματα εισόδου, εξόδου, όλα τα σήματα
του σχεδίου (περιλαμβάνονται και όσα εισάγονται αυτόματα από τον μεταφραστή).
5.4. Επιλέξτε με το ποντίκι τους κόμβους από το αριστερό τμήμα του παραθύρου και με
το > που υπάρχει στη μεσαία στήλη αντιγράψτε τους στο δεξί παράθυρο (selected
nodes). Πατώντας ΟΚ το παράθυρο του Node Finder κλείνει και οι κόμβοι που
επιλέξατε εμφανίζονται στο παράθυρο του Waveform Editor.
5.5. Αλλάξετε τη σειρά εμφάνισης των σημάτων στο παράθυρο με το ποντίκι (Αριστερό
κλικ πάνω στο όνομα και μετακίνηση, χωρίς να αφήσετε το κουμπί), ώστε να έχετε
πάνω τις εισόδους και κάτω τις εξόδους του κυκλώματος όπως στο σχήμα 2.11.

Σχήμα 2.11

20
5.6. Στη γραμμή εργαλείων (Toolbar) στο πάνω μέρος της οθόνης εμφανίζεται μία σειρά
εργαλείων που χρησιμοποιούνται για να καθοριστούν οι λογικές τιμές των σημάτων
εισόδου. Οι τιμές στις εξόδους f1, f2, f3 εμφανίζονται αρχικά αόριστες (undefined,
ΧΧΧΧΧ) και θα προσδιοριστούν όταν εκτελεστεί η εξομοίωση του κυκλώματος. Για
να αλλάξετε την τιμή μίας εισόδου για ένα συγκεκριμένο χρονικό διάστημα πρέπει να
επιλέξετε με το ποντίκι το αντίστοιχο τμήμα της κυματομορφής πάνω στο παράθυρο
του Waveform editor και πατώντας στο Toolbar, το ‘0’ ή το ‘1’να δώσετε την
επιθυμητή τιμή. Αν επιλέξετε με το ποντίκι το όνομα ενός σήματος στο αριστερό
τμήμα της οθόνης η τιμή που δίνετε ισχύει για όλη τη διάρκειά του.
5.7. Κάντε zoom για να βλέπετε στην οθόνη χρονικό διάστημα από 0 έως περίπου 120 ns
αντί για το 0 έως 1 us το οποίο είναι το προεπιλεγμένο και δώστε στις εισόδους x1,
x2, x3 και x4 τις τιμές που φαίνονται στο σχήμα 2.12:

Σχήμα 2.12

5.8. Σώστε το αρχείο του Waveform Editor από το menu File  Save as με το όνομα
askisi2.vwf. Είναι επιθυμητό να δίνετε στο αρχείο κυματομορφών το ίδιο όνομα με
το όνομα του entity.
ΠΡΟΣΟΧΗ: Να είναι ενεργοποιημένη η επιλογή Add file to current project.
5.9. Η προκαθορισμένη διάρκεια της εξομοίωσης στο waveform file είναι 1 usec,
ανεξάρτητα από τη διάρκεια των σημάτων που εμφανίζεται στην οθόνη. Μπορείτε να
αλλάξετε το χρόνο αυτό από το menu ΕDIΤ → SET END TIME.
5.10. Τρέξτε τον εξομοιωτή: Simulation  Run Functional Simulation. Ανοίγει ένα
παράθυρο στο οποίο εμφανίζονται διάφορα μυνήματα σχετικά με τη εκτέλεση του
εξομοιωτή και πιθανά σφάλματα αν υπάρχουν. Μόλις ολοκληρωθεί η διαδικασία
εμφανίζεται νέο παράθυρο ίδιο με αυτό του waveform editor στο οποίο εμφανίζονται
και τα αποτελέσματα της εξομοίωσης (Σχήμα 2.13).

Σχήμα 2.13

21
5.11. Προσδιορίστε τις καταστάσεις του κυκλώματος που αντιστοιχούν στους παλμούς του
σχήματος 2.13 και καταγράψτε τες στον παρακάτω πίνακα. Επαληθεύστε τα
αποτελέσματα με τη βοήθεια του πίνακα αληθείας της άσκησης (Πίνακας 2.1)

x4 x3 x2 x1 f1 f2 f3

Από τον πίνακα είναι φανερό ότι έχουν ελεγχθεί περίπου το 1/4 των πιθανών
καταστάσεων του κυκλώματος. Είναι επιθυμητό για ένα συνδυαστικό κύκλωμα το
ποσοστό κάλυψης της προσομοίωσης να φτάνει το 100%. Για να επιτευχθεί ο στόχος
αυτός πρέπει να δοθούν στις εισόδους όλοι οι δυνατοί συνδυασμοί. (Στα
ακολουθιακά κυκλώματα που διαθέτουν και στοιχεία μνήμης είναι πολύ πιο δύσκολο
να επιτευχθεί πλήρης κάλυψη των καταστάσεων του κυκλώματος και ακολουθούνται
άλλες τεχνικές για την αύξηση της κάλυψης των πιθανών καταστάσεων και την
εξακρίβωση της ορθής λειτουργίας ενός κυκλώματος.)
5.12. Κάντε πλήρη επαλήθευση του πίνακα αληθείας βάζοντας όλους τους δυνατούς
συνδυασμούς των εισόδων. Για να το πετύχετε αυτό χρησιμοποιήστε το εργαλείο
overwrite clock από το Waveform Editor Toolbar, έτσι ώστε το Χ1 να έχει περίοδο
10ns, το Χ2 20ns, το Χ3 40ns και το Χ4 80ns (Γενικά πρέπει να διπλασιάζεται η
συχνότητα του παλμού εισόδου σε κάθε ανώτερης τάξης bit από το LSB προς το
MSB).
5.11. Επαληθεύστε τα αποτελέσματα της εξομοίωσης με τον πίνακα 2.1.

6. ΥΛΟΠΟΙΗΣΗ ΤΟΥ ΚΥΚΛΩΜΑΤΟΣ

6.1. Υλοποιήστε τις συναρτήσεις f1 και f3 του κυκλώματος του σχήματος 2.8 με πύλες
δύο εισόδων χρησιμοποιώντας τα κατάλληλα ολοκληρωμένα κυκλώματα της
οικογένειας 74LS.
6.2. Συνδέστε στις 4 εισόδους του κυκλώματος διακόπτες και στις δύο εξόδους του LEDs.
Αν θέλετε μπορείτε να συνδέσετε και τις εισόδους του κυκλώματος σε LEDs για να
έχετε και οπτική ένδειξη των τιμών τους.
6.3. Επιβεβαιώστε την ορθή λειτουργία του κυκλώματος για τους όλους τους
συνδυασμούς των εισόδων καταχωρώντας τις τιμές των εξόδων του στην 8η, 9η και
10η στήλη του πίνακα 2.1.

22
ΑΣΚΗΣΗ 3η

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

Υπάρχουν δύο βασικοί τρόποι περιγραφής ενός κυκλώματος σε ένα εργαλείο σχεδιασμού με
υπολογιστή (CAD Tool), το σχηματικό διάγραμμα και η γλώσσα περιγραφής υλικού
(hardware description language, HDL). H VHDL είναι μια τέτοια γλώσσα με την οποία
μπορεί να περιγραφεί ένα ψηφιακό σύστημα. Οι γλώσσες περιγραφής υλικού διαθέτουν με
την σειρά τους δύο τρόπους περιγραφής του συστήματος, την περιγραφή της συμπεριφοράς
του (behavioral modeling) και την περιγραφή της δομής του (structural modeling). Στην
πρώτη περίπτωση περιγράφεται το τι κάνει το σύστημα ενώ στη δεύτερη περιγράφεται ο
τρόπος διασύνδεσης βασικών δομικών μονάδων (π.χ. λογικών πυλών, πολυπλεκτών,
αθροιστών) οι οποίες χρησιμοποιούνται για την υλοποίησή του. Στα σύγχρονα εργαλεία
σχεδιασμού δίνεται η δυνατότητα μικτής περιγραφής του ψηφιακού συστήματος κατά την
οποία ένα μέρος του συστήματος περιγράφεται με σχηματικά διαγράμματα και ένα άλλο
μέρος του σε HDL, καθώς επίσης και η δυνατότητα αυτόματης παραγωγής κώδικα HDL
από σχηματικό διάγραμμα και το αντίθετο παραγωγής σχηματικού διαγράμματος από
κώδικα HDL. Το επόμενο βήμα μετά την ολοκλήρωση της περιγραφής της ψηφιακής
λογικής (με σχηματικό διάγραμμα ή γλώσσα VHDL) είναι η διαδικασία της μεταγλώττισης
(compilation), κατά την οποία προσδιορίζονται και διορθώνονται όλα τα πιθανά συντακτικά
ή σχεδιαστικά λάθη του συστήματος και ακολουθεί η προσομοίωση (simulation) του
συστήματος για την επαλήθευση της ορθής λειτουργίας του και τέλος η υλοποίησή του στο
διαθέσιμο υλικό (hardware).
Πρέπει να τονιστεί ότι η περιγραφή του συστήματος με VHDL είναι ανεξάρτητη από το
υλικό στο οποίο θα υλοποιηθεί τελικά το σύστημα το οποίο μπορεί να είναι ένα τυπωμένο
κύκλωμα, ένα ολοκληρωμένο κύκλωμα ειδικού σκοπού ή μία προγραμματιζόμενη διάταξη
πυλών (CPLD ή FPGA). Στο πλαίσιο του εργαστηριακού μέρους του μαθήματος Σχεδίαση
Ψηφιακών Συστημάτων για την συγγραφή του κώδικα VHDL, την μεταγλώττιση, την
εξομοίωση και την υλοποίηση ενός ψηφιακού συστήματος θα χρησιμοποιηθεί το
ολοκληρωμένο περιβάλλον σχεδιασμού Quartus Prime της εταιρίας Intel FPGA (πρώην
Altera).
Είναι σημαντικό να θυμάστε πάντα ότι με την VHDL περιγράφετε ένα ψηφιακό
σύστημα, το οποίο τελικά θα υλοποιηθεί σε κάποιο υλικό (hardware), δηλαδή ότι
σχεδιάζετε ένα ψηφιακό ολοκληρωμένο κύκλωμα που έχει ακροδέκτες εισόδου και
εξόδου (ports) και αποτελείται από λογικές πύλες και όχι ότι γράφετε ένα πρόγραμμα
σε μία γλώσσα προγραμματισμού το οποίο θα εκτελεστεί από έναν γενικού σκοπού
επεξεργαστή σε κάποιο υπολογιστή.
Προσοχή: Το φυλλάδιο έχει γραφεί για χρήση της έκδοσης (version) Quartus Prime 15.1.0
Lite Edition σε περιβάλλον LINUX. Σε άλλες εκδόσεις μπορεί να υπάρχουν διαφορές στο
περιβάλλον εργασίας και τον εξομοιωτή των κυκλωμάτων οι οποίες να μην είναι συμβατές με
αυτό το φυλλάδιο. Το λογισμικό Quartus Prime είναι διαθέσιμo δωρεάν από την ιστοσελίδα
της Intel, https://www.intel.com/content/www/us/en/software/programmable/overview.html.

Σκοπός της τρίτης άσκησης είναι αφενός η επανάληψη απαραίτητων γνώσεων από την ύλη
του μαθήματος Σχεδίαση Λογικών Κυκλωμάτων και αφετέρου η άμεση εισαγωγή στην
υλοποίηση κυκλωμάτων με CPLD και FPGA με στόχο την εξοικείωση των σπουδαστών με
το αναπτυξιακό σύστημα DE10-Lite της Terasic. Σχεδιάζεται ένας δυαδικός αποκωδικο-

23
ποιητής οθόνης 7 τμημάτων ξεκινώντας από τον πίνακα αληθείας μέχρι την απεικόνιση στο
CPLD MAX10. Πρέπει να δοθεί ιδιαίτερη προσοχή στην ορθή σχεδίαση του αποκωδικο-
ποιητή γιατί αν και στην άσκηση αυτή ελέγχεται αυτόνομος, θα χρησιμοποιηθεί και σε
επόμενες ασκήσεις για την ένδειξη των αποτελεσμάτων.

ΘΕΩΡΙΑ
 Data Sheet DM9368 (7-segment decoder/driver/latch, Fairchild Semiconductors)
 Οδηγός χρήσης του αναπτυξιακού συστήματος DE10 Lite της Terasic.
«Σχεδίαση Ψηφιακών Συστημάτων με τη γλώσσα VHDL», Brown, Vranesic 3η εκδ.:
 Βελτιστοποίηση της υλοποίησης λογικών κυκλωμάτων, Κεφ. 4.1-4.5, σελ 180-200.
 Εργαλεία Σχεδιασμού CAD, Κεφ. 4.12, σελ 237-241.

ΤΟ ΑΝΑΠΤΥΞΙΑΚΟ ΣΥΣΤΗΜΑ DE10 Lite ΤΗΣ Terasic


Το διάγραμμα βαθμίδων (block diagram) του αναπτυξιακού συστήματος DE10 Lite
φαίνεται στο σχήμα 3.1 ( βλ. σελίδα 6 του οδηγού χρήσης (User's Guide)). Εκτός από την
προγραμματιζόμενη διάταξη υπάρχουν διάφορα στοιχεία όπως σειρές διακοπτών (DIP
switches), δίοδοι εκπομπής φωτός (LEDs), οθόνες επτά τμημάτων (seven segment displays),
ταλαντωτής παραγωγής σήματος ρολογιού (clock oscillator) και ακιδοσειρές για τη σύνδεση
των ακροδεκτών των διατάξεων στις επιθυμητές θέσεις. Λεπτομερής περιγραφή όλων των
στοιχείων του αναπτυξιακού συστήματος γίνεται στο εγχειρίδιο χρήσης το οποίο είναι
απαραίτητο να χρησιμοποιήσετε για την ορθή ολοκλήρωση της άσκησης.

Σχήμα 3.1
Η προγραμματιζόμενη διάταξη στο αναπτυξιακό σύστημα DE10 Lite της Terasic είναι της
οικογένειας ΜΑΧ10, η οποία μπορεί είτε να προγραμματιστεί μόνιμα με χρήση της on-chip
flash ώστε να συμπεριφέρεται ως CPLD, είτε να προγραμματιστεί με χρήση της RAM ώστε
χάνει τον προγραμματισμό της μόλις κλείσει η τροφοδοσία. Σε κάθε περίπτωση ο
προγραμματισμός της διάταξης γίνεται από προσωπικό υπολογιστή με χρήση ενός καλωδίου
USB και του ενσωματωμένου USB Blaster firmware.
Στο αναπτυξιακό σύστημα περιλαμβάνεται η διάταξη MAX10 10M50DAF484C7G η οποία
περιέχει 50000 λογικά στοιχεία (Logic Elements), 2 μετατροπείς αναλογικού σήματος σε
ψηφιακό (ADC), 1638 Kbits user RAM, 5888 Kbits user flash, 144 πολλαπλασιαστές
(18x18 bits) και 4 PLLs για την παραγωγή σημάτων χρονισμού και διαθέτει 484 ακροδέκτες

24
(pins) οι οποίοι είναι προγραμματιζόμενοι από τον χρήστη και υποστηρίζουν διαφορετικά
ηλεκτρικά standards (LVCMOS, LVTTL, LVDS, κλπ)
Από τα επιπλέον στοιχεία του αναπτυξιακού, στα πλαίσια του μαθήματος θα
χρησιμοποιηθούν οι διακόπτες σειράς (DIP switches), οι δίοδοι εκπομπής φωτός και οι
οθόνες επτά τμημάτων (Seven Segment Displays). Τα σχηματικά διαγράμματα σύνδεσης
των παραπάνω στοιχείων με το ΜΑΧ10 φαίνονται στο σχήμα 3.2.
ΠΡΟΣΟΧΗ: Oι δίοδοι εκπομπής φωτός (LEDs) του αναπτυξιακού είναι συνδεδεμένες
στη γείωση και ανάβουν με λογικό “1” στον αντίστοιχο ακροδέκτη του FPGA.
Αντίθετα οι LEDs της οθόνης 7 τμημάτων είναι συνδεδεμένες στην τάση τροφο-
δοσίας μέσω μιας αντίστασης pull-up και φωτοβολούν όταν εμφανιστεί λογικό ‘0’
στον αντίστοιχο ακροδέκτη.

Σχήμα 3.2

ΕΡΓΑΣΤΗΡΙΑΚΟ ΜΕΡΟΣ

ΜΕΡΟΣ Α Σχεδιασμός και εξομοίωση κυκλώματος


1. Στο επόμενο σχήμα 3.3 φαίνεται η κωδικοποίηση των επτά τμημάτων της οθόνης
και το δεκαεξαδικό ψηφίο που πρέπει να εμφανίζεται για όλους τους συνδυασμούς
των εισόδων από 0 έως 15. (Προσέξτε την αντιστοιχία των τμημάτων a,b,c,d,e,f,g με
τα 0,1,2,3,4,5,6 της προηγούμενης παραγράφου).

Σχήμα 3.3

25
2. Συμπληρώστε τον πίνακα αληθείας του αποκωδικοποιητή οθόνης 7 τμημάτων
(Πίνακας 3.1), λαμβάνοντας υπόψη ότι ένα τμήμα της οθόνης ανάβει με λογικό “0”
και παραμένει σβηστό με “1”.

D3 D2 D1 D0 a b c d e f g
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1
Πίνακας 3.1

3. Με χρήση πινάκων Karnaugh απλοποιήστε τις συναρτήσεις των εξόδων του


αποκωδικοποιητή.
a b c

d e f

26
4. Δημιουργήστε ένα νέο project (στον φάκελο /home/userx/Digital/askisi3/ με όνομα
seven_segment εφαρμόζοντας την ίδια διαδικασία με την Άσκηση 2.

5. Επιλέξτε από το menu File → New ώστε να εμφανιστεί η παρακάτω λίστα επιλογών.

Σχήμα 3.4
6. Επιλέξτε από την ομάδα Design Files το VHDL File και πατήστε OK. Ένα
παράθυρο εισαγωγής κώδικα VHDL θα ανοίξει στο δεξί μέρος της οθόνης σας με το
όνομα Vhdl1.vhd.
7. Επιλέξτε από το Menu File --> Save as και επιλέξτε το όνομα του αρχείου όπου θα
αποθηκευθεί ο κώδικας VHDL που θα γράψετε. Δώστε το όνομα:
/home/userx/Digital/askisi3/seven_segment.vhd

ΠΡΟΣΟΧΗ: Για να μη δημιουργούνται προβλήματα σε επόμενα βήματα να


χρησιμοποιείτε πάντα το ίδιο όνομα για το project και το top-level entity όταν
ορίζετε το project, το αρχείο VHDL και το entity μέσα στο αρχείο VHDL.

8. Γράψτε στο αρχείο αυτό τον κώδικα VHDL για τον αποκωδικοποιητή της οθόνης
επτά τμημάτων χρησιμοποιώντας τις απλοποιημένες συναρτήσεις εξόδου του
προηγούμενου βήματος ή άλλη ισοδύναμη μέθοδο.
Ο κώδικας πρέπει να έχει την παρακάτω δομή. Περισσότερες λεπτομέρειες δίνονται
στο θεωρητικό μέρος του μαθήματος καθώς και στο βιβλίο.

A. Το τμήμα που δήλωσης των βιβλιοθηκών (LIBRARY):

Library ieee;
Use ieee.std_logic_1164.all;

27
Εδώ από ένα σύνολο βιβλιοθηκών οι οποίες είναι τυποποιημένες και υπάρχουν σε
όλες τις εκδόσεις της VHDL χρησιμοποιείται μόνο η ieee.std_logic_1164, η οποία
περιλαμβάνει τον ορισμό του τύπου std_logic. Η χρήση βιβλιοθηκών διευκολύνει
την περιγραφή των κυκλωμάτων γιατί μας απαλλάσσει από τον κόπο να
ξαναγράψουμε κώδικα για βασικά στοιχεία το οποία έχουν ήδη σχεδιαστεί. Εκτός
από τις βιβλιοθήκες που παρέχονται από την ίδια τη γλώσσα και την εταιρία
προμήθειας του λογισμικού δίνεται η δυνατότητα στο σχεδιαστή να φτιάξει και δικές
του βιβλιοθήκες.

B. Το τμήμα δήλωσης της οντότητας (ENTITY)

entity seven_segment is
port ( ;
);
end entity;

Εδώ περιγράφονται τα σήματα εισόδου και εξόδου που έχει το σύστημα που θα
υλοποιηθεί. Με απλά λόγια ο κώδικας που δίνεται παραπάνω αντιστοιχεί στα εξής
«Υλοποιούμε ένα ψηφιακό σύστημα το οποίο ονομάζεται seven_segment και το
οποίο έχει ως ακροδέκτες (σήματα) εισόδου τα D0, D1, D2 και D3, και ως
ακροδέκτες εξόδου τα a.b.c,d,e,f και g». Ακόμα δεν έχει ειπωθεί τίποτα για τη
λογική σχέση που θα έχουν τα σήματα εξόδου με αυτά της εισόδου.

Γ. Το τμήμα περιγραφής της λογικής (ARCHITECTURE):

architecture logic_functions of seven_segment is


begin
a <= ;
b <= ;
……
end architecture;

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


δηλαδή οι λογικές συναρτήσεις που χρησιμοποιούνται για τον υπολογισμό των
εξόδων του κυκλώματος από τις εισόδους του.
9. Σώστε το αρχείο του VHDL κώδικα από το menu File → Save
10. Όταν ολοκληρώσετε την εισαγωγή του κώδικα VHDL πρέπει να βεβαιωθείτε ότι δεν
υπάρχουν ορθογραφικά ή συντακτικά λάθη στο πρόγραμμα. Όπως και στην
περίπτωση του σχηματικού διαγράμματος από το menu Processing επιλέξτε Start
και ακολούθως Start Analysis and Synthesis. Η διαδικασία αυτή αναλαμβάνει τη
μετάφραση του προγράμματός σας (compilation) και μόλις ολοκληρωθεί εμφανίζει
στην οθόνη ένα πληροφοριακό μήνυμα για το αν ήταν επιτυχής η διαδικασία ή όχι.
Αν ο κώδικας περιέχει σφάλματα η διαδικασία ανάλυσης σταματάει και αναφέρεται
ο συνολικός αριθμός των σφαλμάτων. Για την αποσφαλμάτωση του κώδικα πρέπει
να προσδιορίσετε στο κάτω μέρος της οθόνης το πρώτο μήνυμα λάθους και με
διπλό κλικ του αριστερού πλήκτρου του ποντικιού τοποθετείται αυτόματα ο δρομέας
(cursor) στη γραμμή του κώδικα που παρουσιάζεται το σφάλμα. Διαβάστε
προσεκτικά το μήνυμα λάθους και προβείτε στην αναγκαία διόρθωση. Επαναλάβετε

28
τη διαδικασία Start Analysis and Synthesis για να δείτε τα εναπομείναντα λάθη.
Πολλές φορές η διόρθωση ενός σφάλματος οδηγεί σε σημαντική ελάττωση του
συνολικού αριθμού των σφαλμάτων.
Μην επιχειρείτε τη διόρθωση του κώδικα από το τελευταίο σφάλμα γιατί πολλές
φορές το μήνυμα είναι παραπλανητικό.
Αν μετά τη διόρθωση ενός σφάλματος εμφανιστούν περισσότερα σφάλματα δεν
σημαίνει απαραίτητα ότι ήταν λάθος η διόρθωση που κάνατε. Για παράδειγμα
μία παρένθεση που δεν είχε κλείσει σωστά η ένα semicolon (;) που έλλειπε μπορεί
μπορεί να είχε οδηγήσει αρχικά τον compiler στο να αγνοήσει τμήματα του
κώδικα που περιέχουν άλλα σφάλματα.

11. Όταν ολοκληρωθεί επιτυχώς το compilation ακολουθώντας τη διαδικασία της


προηγούμενης άσκησης προσομοιώστε το κύκλωμα για όλους τους συνδυασμούς
των εισόδων του και επαληθεύστε τον πίνακα αληθείας του.

Μέρος Β. Απεικόνιση του κυκλώματος σε ένα CPLD MAX10.

12. Από το menu Assignments επιλέξτε Device ώστε να ανοίξει το παράθυρο επιλογής
ολοκληρωμένου κυκλώματος που φαίνεται στο σχήμα 3.5.

Σχήμα 3.5
13. Από την επιλογή Family μπορείτε να επιλέξετε την οικογένεια CPLD ή FPGA στην
οποία θα υλοποιήσετε το κύκλωμά σας. Κάθε οικογένεια περιλαμβάνει περισσότερα
από ένα Ο.Κ. τα οποία διαφέρουν μεταξύ τους σε διάφορα χαρακτηριστικά, όπως ο
αριθμός των λογικών στοιχείων και των ακροδεκτών, η ταχύτητα κλπ. Επιλέξτε την
οικογένεια MAX10 και από το παράθυρο Available Devices το CPLD
10M50DAF484C7G.
14. Το επόμενο βήμα είναι η αντιστοίχιση των ακροδεκτών (pins) του κυκλώματος.
Επιλέξτε Assignments|Pin Planner για να ενεργοποιήσετε το εργαλείο
αντιστοίχισης ακροδεκτών που φαίνεται στο σχήμα 3.6.

29
Σχήμα 3.6
Για να κάνετε τις αντιστοιχίσεις των ακροδεκτών στις θέσεις που θέλετε,
χρησιμοποιήστε το παράθυρο Edit. Στην πρώτη στήλη (Node Edit) εμφανίζονται τα
ονόματα των σημάτων του κυκλώματος και με διπλό κλικ σε κάθε κουτάκι της
τρίτης στήλης (Location) εμφανίζονται όλοι οι ακροδέκτες του Ο.Κ. που έχετε
επιλέξει. Για κάθε ακροδέκτη δίνονται και επιπλέον πληροφορίες για τη
λειτουργικότητα (input/output, clock, reset κλπ). Για παράδειγμα το pin1 με τον
χαρακτηρισμό global clock πρέπει να χρησιμοποιηθεί μόνο για το σήμα ρολογιού
του κυκλώματός και όχι για οποιαδήποτε άλλη λειτουργία.
Πληροφορίες για τους ακροδέκτες του Ο.Κ. βλέπετε και στο σχήμα που εμφανίζεται
στο δεξί μέρος της οθόνης. Στο σχήμα αυτό οι ακροδέκτες γενικού σκοπού
σημειώνονται με κενό κύκλο ενώ αυτοί που έχουν ειδικές λειτουργίες με τρίγωνο,
τετράγωνο, πεντάγωνο ή κύκλο με κάποια ένδειξη στο εσωτερικό του. Είναι δυνατή
η γραφική αντιστοίχιση των ακροδεκτών με χρήση του mouse. Κάνοντας κλικ πάνω
στο όνομα ενός σήματος στην πρώτη στήλη του πίνακα Edit και κρατώντας
πατημένο το αριστερό πλήκτρο του mouse μπορείτε να τοποθετήσετε το σήμα στον
ακροδέκτη που επιθυμείτε. Μόλις το mouse περάσει πάνω από έναν ακροδέκτη
εμφανίζεται ο αριθμός του και ένα μήνυμα για τη λειτουργία του και τη δυνατότητα
ή όχι τοποθέτησης σήματος από το χρήστη σε αυτό.

15. Πραγματοποιήστε τις παρακάτω αντιστοιχίσεις των ακροδεκτών με τα σήματα του


κυκλώματός σας σύμφωνα με τα διαγράμματα του σχήματος 3.2.

Είσοδοι: d0  pin C10, d1  pin C11, d2  pin D12, d3  pin C12


Έξοδοι: a  pin C14, b  pin E15, c  pin C15, d  pin C16,
e  pin E16, f  pin D17, g  pin C17.

16. Το επόμενο βήμα είναι η απεικόνιση του κυκλώματος στο επιλεγμένο CPLD, η
οποία γίνεται με τη χρήση του Compiler. Προχωρήστε στην μετάφραση (από το
menu Processing | Start Compilation). Όταν ολοκληρωθεί η μετάφραση
δημιουργείται το Compilation Report, στο οποίο μπορείτε να δείτε διάφορες
πληροφορίες για το υπό σχεδίαση κύκλωμα.

30
Στο Flow Summary βλέπετε αν η εργασία έχει υλοποιηθεί με επιτυχία, την
οικογένεια (Family) και το συγκεκριμένο Ο.Κ. (Device) που έχετε χρησιμοποιήσει
καθώς και τα ποσοστά χρήσης των διαθέσιμων μακροκυψελών (macrocells) και
ακροδεκτών (pins). Σημαντική πληροφορία είναι και το αν ικανοποιούνται οι
απαιτήσεις χρονισμού (Timing requirements) του κυκλώματός σας. Σε περίπτωση
που δεν ικανοποιούνται πρέπει να χρησιμοποιηθεί ο Timing Analyser για να
προσδιοριστεί το πρόβλημα και να γίνουν οι απαραίτητες διορθώσεις.

17. Υλοποίηση και έλεγχος του αποκωδικοποιητή


17.1 Τόσο οι διακόπτες (DIP switches) όσο και η οθόνη 7 τμημάτων είναι
συνδεδεμένα πάνω στο PCB και η αντιστοιχία των ακροδεκτών της διάταξης που
κάνατε στο βήμα 6.4 έχει εξασφαλίσει τη σύνδεσή τους.
17.2 Συνδέστε το καλώδιο τροφοδοσίας και προγραμματισμού USB σε μία θύρα
USB του υπολογιστή (τη δεξιά στην μπροστά όψη) και στο αναπτυξιακό
σύστημα DE10-Lite.
17.3 Από το menu Tools επιλέξτε Programmer. Το επόμενο παράθυρο (Σχ. 3.7)
εμφανίζεται στην οθόνη.

Σχήμα 3.7
17.4. Αν δίπλα από το Hardware Setup εμφανίζεται το μήνυμα “No Hardware”
πατήστε την επιλογή Hardware Setup και στο παράθυρο που εμφανίζεται επιλέξτε το
USB Blaster[3-5] και μετά το Select Hardware ώστε να ενεργοποιήσετε τη σύνδεση
του υπολογιστή με το αναπτυξιακό σύστημα DE10-Lite. Η επιλογή mode πρέπει να
είναι JTAG.
17.5. Όταν ολοκληρώσετε τη διαδικασία ενεργοποίησης της σύνδεσης επιλέξτε Auto
Detect ώστε να ανιχνεύσει την προγραμματιζόμενη διάταξη και να εμφανιστεί στην
οθόνη ο τύπος MAX10M50DAF484.
17.6. Κάντε κλικ στο Add file και θα εμφανιστεί ένα παράθυρο για την επιλογή του
αρχείου προγραμματισμού. Από τη λίστα αρχείων που εμφανίζεται επιλέξτε το
directory output_files και από εκεί το αρχείο xxxxx.sof, όπου xxxxx το όνομα του
project το οποίο χρησιμοποιήσατε για τον αποκωδικοποιητή.

31
17.7. Στη στήλη Program/Configure επιλέξτε το κουτάκι. Το παράθυρο του
Programmer πρέπει να είναι όπως φαίνεται στο σχήμα 3.8.

Σχήμα 3.8
17.8. Σώστε το αρχείο του προγραμματιστή με το όνομα xxxxx.cdf, όπου xxxxx το
όνομα του project το οποίο χρησιμοποιήσατε.
17.9. Επιλέξτε το Start ώστε να ξεκινήσει η διαδικασία προγραμματισμού.
Εμφανίζεται μία μπάρα που δείχνει την πρόοδο της διαδικασίας και αναβοσβήνουν
τα πράσινα LEDs του αναπτυξιακού.
17.10. Επιβεβαιώστε τη σωστή λειτουργία του κυκλώματος για όλους τους
συνδυασμούς των εισόδων.

32
ΑΝΑΚΕΦΑΛΑΙΩΣΗ:
ΣΧΕΔΙΑΣΗ ΚΑΙ ΠΡΟΣΟΜΟΙΩΣΗ ΨΗΦΙΑΚΟΥ ΚΥΚΛΩΜΑΤΟΣ ΣΕ 8 ΒΗΜΑΤΑ

Βήμα 1 Άνοιγμα νέου Project με όνομα κατάλληλο ανάλογα την άσκηση ή την
λειτουργία του κυκλώματος σε αντίστοιχο φάκελο (directory) πχ. Project:
askisi1 στο φάκελο /home/userx/Digital/askisi1
Βήμα 2 Δημιουργία αρχείου VHDL. Αρχικά δημιουργείται με το όνομα Vhdl1.Vhd,
κάνετε αμέσως SAVE AS και δίνετε όνομα ίδιο με αυτό του Project, πχ.
askisi1.vhd.
Βήμα 3 Συγγραφή του κώδικα VHDL, ΠΡΟΣΟΧΗ το entity να έχει το ίδιο όνομα με
το project και το αρχείο VHDL, πχ. Entity askisi1. Αν και η VHDL δεν είναι
case sensitive, επειδή το Linux είναι case sensitive χρησιμοποιήστε τα ίδια
ακριβώς ονόματα με χρήση πεζών ή κεφαλαίων γραμμάτων στις ίδιες θέσεις.
Βήμα 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 Εκτέλεση της προσομοίωσης και επαλήθευση της ορθής λειτουργίας του
κυκλώματος.

33
ΑΣΚΗΣΗ 4η

ΠΟΛΥΠΛΕΚΤΕΣ ΚΑΙ ΚΩΔΙΚΟΠΟΙΗΤΕΣ

Στην άσκηση αυτή γίνεται η υλοποίηση ενός κυκλώματος ψηφιακής ψηφοφορίας με χρήση
πολυπλεκτών και αποκωδικοποιητών για να εξοικειωθούν οι φοιτητές με μεγαλύτερης
πολυπλοκότητας κύκλωμα το οποίο απαιτεί ιεραρχικό σχεδιασμό και περιγραφή της δομής
του (Structural description)

ΘΕΩΡΙΑ
• «Ψηφιακή Σχεδίαση», Μ. Mano, M.D. Ciletti, (5η εκδ.), Κεφ. 4.11, σελ. 158 – 164.
• «Σχεδίαση Ψηφιακών Συστημάτων με τη γλώσσα VHDL», S. Brown & Z. Vranesic
(3η εκδ), Κεφ. 6.1, (όχι τα παραδείγματα 6.1, 6.2, 6.8).
• Εγχειρίδια χρήσης (Data Sheets) των Ο.Κ. 74LS153 (4 to 1 Multiplexer), 74LS47 ή
74HC4511 (BCD to 7-segment decoder).

ΕΡΓΑΣΤΗΡΙΑΚΟ ΜΕΡΟΣ

1. Έστω ότι μία εταιρία έχει τρεις μετόχους από τους οποίους ο Α και ο Β έχουν 2 μετοχές
και ο C 3 μετοχές. Για να ληφθεί απόφαση στη συνέλευση της εταιρίας πρέπει να υπάρχει
απόλυτη πλειοψηφία, δηλαδή το άθροισμα των μετοχών αυτών που ψηφίζουν μία πρόταση
να είναι μεγαλύτερο ή ίσο του 4.
2. Το ηλεκτρονικό ψηφιακό κύκλωμα που θα σχεδιαστεί πρέπει να έχει τα παρακάτω
χαρακτηριστικά
2α. Κάθε μέτοχος χρησιμοποιεί για να ψηφίσει ένα διακόπτη δύο θέσεων (ΟΧΙ='0',
ΝΑΙ='1')
2β. αν η πρόταση υπερψηφίζεται πρέπει να ενεργοποιείται μία κόκκινη ενδεικτική
λυχνία (LED) ενώ αν απορρίπτεται να απενεργοποιείται.
2γ. να εμφανίζεται σε φωτεινό πίνακα ο συνολικός αριθμός των ψήφων που
συγκέντρωσε η πρόταση. Χρησιμοποιήστε μία οθόνη επτά τμημάτων (seven segment
display) από τις διαθέσιμες στο αναπτυξιακό και τον αποκωδικοποιητή οθόνης επτά
τμημάτων της άσκησης 3.

Για να σχεδιάσετε το κύκλωμα αρχικά πρέπει να συμπληρώσετε τον πίνακα 4.1, ώστε να
προσδιορίσετε τις εξόδους του κυκλώματος. Στις τρεις πρώτες στήλες φαίνονται οι μέτοχοι
και σε παρένθεση ο αριθμός των ψήφων κάθε μετόχου. Σε κάθε στήλη σημειώνεται η ψήφος
του μετόχου (0:ΟΧΙ, 1:ΝΑΙ). Η μεταβλητή 'ΝΑΙ' πρέπει να είναι '0' αν η πρόταση
απορρίπτεται και '1' αν η πρόταση εγκρίνεται. Στη στήλη 'Δεκαδικό' πρέπει να φαίνεται ο
αριθμός των ψήφων υπέρ της πρότασης στο δεκαδικό σύστημα και στις διπλανές στήλες ο
αντίστοιχος δυαδικός αριθμός με y2 το MSB και y0 το LSB του αριθμού. Για την
υλοποίηση όλων των συναρτήσεων πρέπει να χρησιμοποιηθούν πολυπλέκτες 4 σε 1 και
αντιστροφείς όπου απαιτούνται. Οι έξοδοι y2, y1, και y0 πρέπει να είναι είσοδοι στον
αποκωδικοποιητή BCD to 7-segment ώστε να εμφανίζεται στην οθόνη ο αριθμός των
ψήφων.

34
Ψήφος μετόχου ΨΗΦΟΙ υπέρ της πρότασης
C (3) B (2) A (2) ΝΑΙ Δεκαδικό Δυαδικό
y2 y1 y0

Πίνακας 4.1

3. Σχεδιάστε το κύκλωμα για την υλοποίηση των συναρτήσεων 'ΝΑΙ', y2, y1, και y0 με
πολυπλέκτες 4 σε 1 και την σύνδεσή τους με τον αποκωδικοποιητή της οθόνης 7
τμημάτων.

4. Δημιουργήστε ένα project, γράψτε κώδικα VHDL σε επίπεδο συμπεριφοράς για τον
πολυπλέκτη 4 σε 1 και εξομοιώστε πλήρως την λειτουργία του.

5. Σε νέο project γράψτε κώδικα VHDL σε επίπεδο δομής για το πλήρες κύκλωμα που
σχεδιάσατε στο βήμα 3 και επαληθεύστε την λειτουργία του για όλες τις περιπτώσεις
του πίνακα 4.1.

6. Κάντε την αντιστοίχιση ακροδεκτών (pin assignment) σύμφωνα με το σχήμα 3.2, για
τις εισόδους και τις εξόδους του κυκλώματος ηλεκτρονικής ψηφοφορίας, ώστε να
μπορείτε να υλοποιήσετε το κύκλωμα στο αναπτυξιακό σύστημα DE10-Lite.

7. Ολοκληρώστε την μετάφραση (compilation) του κυκλώματος και προγραμματίστε το


αναπτυξιακό σύστημα.

8. Επαληθεύστε την ορθή λειτουργία της ηλεκτρονικής κάλπης σύμφωνα με τις


προδιαγραφές του βήματος 2 και τον πίνακα 4.1.

35
ΑΣΚΗΣΗ 5η-6η
ΣΧΕΔΙΑΣΗ ΠΑΡΑΜΕΤΡΙΚΟΥ ΜΕΤΡΗΤΗ (COUNTER) ΚΑΙ
ΑΠΕΙΚΟΝΙΣΗ ΣΕ FPGA

ΘΕΩΡΙΑ

• Data sheet, 74HC/HCT191, Presettable synchronous 4-bit binary up/down counter,


Philips Semiconductors.
«Σχεδίαση Ψηφιακών Συστημάτων με τη γλώσσα VHDL», Brown, Vranesic, 3η εκδ.:
 Flip-flops, Καταχωρητές, Μετρητές και ένας Απλός Επεξεργαστής, Κεφ. 7.9, σελ
400–406, και Παραδείγματα 7.10, 7.11, 7.12 σελ. 428–430.

ΕΡΓΑΣΤΗΡΙΑΚΟ ΜΕΡΟΣ

1. Σχεδιάστε και εξομοιώστε σε επίπεδο περιγραφής συμπεριφοράς (behavioral description)


χρησιμοποιώντας τη γλώσσα VHDL έναν απαριθμητή, ο οποίος έχει τα βασικά
χαρακτηριστικά του 74HC191 ή άλλου ισοδύναμου:
α. Να είναι παραμετρικός ως προς τον αριθμό των ψηφίων (η εξομοίωση να γίνει για 4 bits)
β. Να ενεργοποιείται στην ανερχόμενη παρυφή του σήματος ρολογιού (CLOCK)
γ. Να έχει δυνατότητα αύξουσας και φθίνουσας μέτρησης (up/down counting) με χρήση
ενός σήματος ελέγχου UD.
δ. Να διαθέτει σήμα επίτρεψης μέτρησης (count enable, CE). Όταν το σήμα CE γίνεται ‘1’
σταματάει η μέτρηση.
ε. Να έχει δυνατότητα ασύγχρονης φόρτωσης αρχικής τιμής με το σήμα ελέγχου LOAD.
Όταν το LOAD είναι ‘0’ φορτώνεται η επιθυμητή τιμή.
ζ. Να διαθέτει έξοδο ripple carry (RC) η οποία να γίνεται ‘0’ όταν ο απαριθμητής παίρνει τη
μέγιστη δυνατή τιμή.
Πίνακας αλήθειας του απαριθμητή

CE UD LOAD CLOCK DIN COUNT

36
Κώδικας VHDL.

2. Υλοποιήστε ένα διαιρέτη συχνότητας του σήματος χρονισμού clock του


αναπτυξιακού ώστε να παράγεται ένα σήμα χρονισμού με συχνότητα μικρότερη από
5 Hz.
Κώδικας VHDL.

3. Χρησιμοποιώντας ως components τον αποκωδικοποιητή της οθόνης 7 τμημάτων της


άσκησης 2 και το διαιρέτη συχνότητας του προηγούμενου βήματος σχεδιάστε το
κύκλωμα και υλοποιήστε τον απαριθμητή στο αναπτυξιακό σύστημα DE10 Lite της
Terasic.

37
Διάγραμμα βαθμίδων

Κώδικας VHDL.

38
Κανονισμός Λειτουργίας
ΣΧΕΔΙΑΣΗ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ
Αίθουσα ΖΒ112, Τηλ. 210 5381523
Υπεύθυνος Εργαστηρίου: Καθηγητής Ευστάθιος Κυριάκης – Μπιτζάρος

ΕΓΓΡΑΦΕΣ – ΕΝΗΜΕΡΩΣΗ
1. Κατά την περίοδο εγγραφών του εξαμήνου, στο οποίο διδάσκεται το μάθημα, οι φοιτητές που
επιθυμούν να το παρακολουθήσουν εγγράφονται ηλεκτρονικά μέσω της σχετικής ιστοσελίδας σε
εργαστηριακά τμήματα που έχουν προκαθοριστεί.
2. Μετά την ηλεκτρονική εγγραφή ακολουθεί επιβεβαίωση των εγγραφών με προσέλευση των
φοιτητών στα αντίστοιχα τμήματα και αντιπαραβολή με τις αντίστοιχες δηλώσεις εγγραφών της
Γραμματείας.
3. Την πρώτη εβδομάδα, οι φοιτητές ενημερώνονται για τον κανονισμό λειτουργίας και το
αντικείμενο του εργαστηρίου.
4. Οι φοιτητές οφείλουν να προσέρχονται την προκαθορισμένη ημέρα και ώρα που αντιστοιχεί στο
τμήμα εγγραφής τους. Αλλαγή τμήματος στη διάρκεια του εξαμήνου γίνεται μόνο για έκτακτες
περιπτώσεις και κατόπιν έγκρισης από τον υπεύθυνο του εργαστηρίου, ο οποίος θα πρέπει να
ενημερώνεται εγκαίρως.
ΠΑΡΑΚΟΛΟΥΘΗΣΗ – ΑΠΟΥΣΙΕΣ
5. Η θεωρία και το εργαστήριο δεν είναι διαφορετικά μαθήματα αλλά τα δύο τμήματα του ίδιου
μαθήματος. Οι φοιτητές οφείλουν να έχουν μελετήσει τη θεωρία που αναφέρεται σε κάθε
εργαστηριακή άσκηση.
6. Οι φοιτητές οφείλουν να έχουν πάντοτε μαζί τους το φυλλάδιο των εργαστηριακών ασκήσεων, το
οποίο υπάρχει διαθέσιμο σε ηλεκτρονική μορφή στην ιστοσελίδα του εργαστηρίου στο e-class και
να έχουν προετοιμαστεί σύμφωνα με τις οδηγίες του φυλλαδίου για την άσκηση την οποία πρόκειται
να διεξάγουν. Η έλλειψη φυλλαδίου ή προετοιμασίας μπορεί κατά την κρίση του διδάσκοντα να
οδηγήσει σε αποβολή του φοιτητή από το τμήμα και την καταχώρηση απουσίας.
7. Ο διδάσκων οφείλει να καταχωρεί τις παρουσίες των φοιτητών σε κατάσταση κατά την έναρξη
του μαθήματος ή να συλλέγει υπογραφές των παρόντων φοιτητών σε ειδικά διαμορφωμένο
κατάλογο.
8. Ο φοιτητής θεωρείται ότι έχει καλύψει επαρκώς την παρακολούθηση του εργαστηρίου όταν έχει
συμπληρώσει τουλάχιστον το ογδόντα τοις εκατό (80%) των ασκήσεων που πραγματοποιήθηκαν, με
την προϋπόθεση ότι ο αριθμός αυτός (το 80%) είναι τουλάχιστον 4. Φοιτητής με περισσότερες
απουσίες διαγράφεται από το εργαστηριακό τμήμα και πρέπει να παρακολουθήσει εκ νέου το
εργαστήριο σε επόμενο εξάμηνο. Για τους φοιτητές που έχουν μία απουσία δίνεται η δυνατότητα
εκτέλεσης συμπληρωματικής άσκησης στο τέλος του εξαμήνου. Δεν είναι δυνατή η συμπλήρωση
ασκήσεων λόγω απουσίας κατά τη διάρκεια του εξαμήνου.
9. Μαθήματα που δεν πραγματοποιήθηκαν για οποιονδήποτε λόγο, μπορούν να αναπληρωθούν
σύμφωνα με πρόγραμμα, το οποίο καταρτίζεται με ευθύνη του υπεύθυνου του εργαστηρίου και
ανακοινώνεται εγκαίρως στους φοιτητές. Ενδεχόμενη απουσία των φοιτητών από αναπληρώσεις
μαθημάτων καταμετρείται κανονικά ως απουσία.
10. Οι φοιτητές οφείλουν να ενημερώνονται τακτικά μέσω της ιστοσελίδας ή/και τον πίνακα
ανακοινώσεων του εργαστηρίου για όλα τα σχετικά με τη λειτουργία του εργαστηρίου θέματα.
11. Επιτρέπεται η χρήση φορητού ηλεκτρονικού υπολογιστή από τους φοιτητές κατά τη διάρκεια
εκτέλεσης των ασκήσεων προσομοίωσης μετά από συνεννόηση με τους διδάσκοντες.

39
ΑΞΙΟΛΟΓΗΣΗ – ΒΑΘΜΟΛΟΓΙΑ
12. Ο διδάσκων μπορεί κατά την κρίση του να αξιολογήσει προφορικά ή γραπτά τους φοιτητές πριν,
κατά τη διάρκεια ή μετά την εκτέλεση της εργαστηριακής άσκησης πάνω στο αντικείμενό της. Ο
μέσος όρος των βαθμών που συγκεντρώνει ο φοιτητής σε όσες ασκήσεις αξιολογηθεί
συνυπολογίζεται στον τελικό βαθμό του εργαστηρίου με συντελεστή 0,2.
13. Στο μέσο του εξαμήνου μπορεί να γίνει γραπτή εξέταση των φοιτητών στην ύλη των ασκήσεων
που έχουν διδαχθεί μέχρι εκείνη τη στιγμή. Οι φοιτητές ενημερώνονται για την πρόοδο τουλάχιστον
μία εβδομάδα νωρίτερα. Ο βαθμός της προόδου συνυπολογίζεται στον τελικό βαθμό του
εργαστηρίου με συντελεστή 0,2.
14. Στο τέλος του εξαμήνου γίνεται γραπτή και πρακτική εξέταση των φοιτητών σε όλη την ύλη που
καλύπτουν οι εργαστηριακές ασκήσεις. Ο βαθμός της τελικής εξέτασης συνυπολογίζεται στον
τελικό βαθμό του εργαστηρίου με συντελεστή 0,6 αν έχει πραγματοποιηθεί η πρόοδος ή 0,8 αν δεν
έχει πραγματοποιηθεί.
15. Το πρόγραμμα της τελικής εξέτασης ανακοινώνεται έγκαιρα στους φοιτητές, οι οποίοι οφείλουν
να προσέρχονται για να εξεταστούν αυστηρά την ημέρα και ώρα που αναφέρεται σε αυτό.
16. Οι επαναληπτικοί φοιτητές, οι οποίοι έχουν δικαίωμα να μην παρακολουθήσουν ξανά το
εργαστήριο, πρέπει να υποβάλλουν μετά από σχετική ανακοίνωση δήλωση συμμετοχής στην τελική
εξέταση ώστε να συμπεριληφθούν στο πρόγραμμα.
17. Η αναλυτική κατάσταση της βαθμολόγησης των φοιτητών αναρτάται στο διαδίκτυο ή/και τον
πίνακα ανακοινώσεων του εργαστηρίου μετά την ολοκλήρωση της τελικής εξέτασης.
ΥΠΟΧΡΕΩΣΕΙΣ ΔΙΔΑΣΚΟΝΤΩΝ
18. Οι διδάσκοντες είναι πλήρως υπεύθυνοι για τη λειτουργία, σύμφωνα με τον κανονισμό σπουδών,
των εργαστηριακών τμημάτων που αναλαμβάνουν. Σε περίπτωση που ανακύπτουν προβλήματα
πρέπει να λαμβάνουν αποφάσεις που κατά την κρίση τους οδηγούν σε λύση και να ενημερώνουν
σχετικά τον υπεύθυνο του εργαστηρίου.
19. Κύρια υποχρέωση των διδασκόντων είναι να μεριμνούν για την ορθή διεξαγωγή της άσκησης
από όλους τους φοιτητές του εργαστηριακού τμήματος και να παρέχουν τις απαραίτητες οδηγίες
στους φοιτητές που αντιμετωπίζουν προβλήματα κατά τη διάρκεια της υλοποίησής της.
20. Οι διδάσκοντες οφείλουν να βρίσκονται στο χώρο του εργαστηρίου πριν την έναρξη της
διδακτικής ώρας και να μην αποχωρούν από αυτό πριν το τέλος της προβλεπόμενης διάρκειας ακόμη
και εάν όλοι οι φοιτητές έχουν ολοκληρώσει την άσκηση νωρίτερα. Δεν πρέπει να παραμένουν οι
φοιτητές μόνοι τους στο εργαστήριο χωρίς την παρουσία των διδασκόντων.
21. Οι διδάσκοντες πρέπει να ελέγχουν την ορθή λειτουργία του εξοπλισμού πριν από την έναρξη
του μαθήματος και να επανατοποθετούν όλα τα εξαρτήματα στις θέσεις τους ώστε να είναι
διαθέσιμα για τα επόμενα τμήματα. Επίσης, πρέπει να αναφέρουν στον υπεύθυνο του εργαστηρίου
πιθανές βλάβες ή άλλα προβλήματα που αφορούν την πραγματοποίηση κάθε άσκησης.
ΑΣΦΑΛΕΙΑ
22. Οι φοιτητές οφείλουν να τηρούν τους κανόνες ασφαλείας που αφορούν όλες τις κοινές
ηλεκτρικές συσκευές καθώς και τους ρευματολήπτες που είναι τοποθετημένοι στο εργαστήριο.
Επίσης, δεν πρέπει να χειρίζονται τον εξοπλισμό και τους ηλεκτρονικούς υπολογιστές του
εργαστηρίου χωρίς την άδεια του διδάσκοντα.
23. Ο χώρος του εργαστηρίου διαθέτει πυροσβεστήρα ξηράς κόνεως και CO2 για την περίπτωση
πυρκαγιάς, καθώς και φαρμακείο για πρώτες βοήθειες.
ΑΠΑΓΟΡΕΥΣΕΙΣ
24. Απαγορεύεται η χρήση κάθε είδους προσωπικής ηλεκτρονικής συσκευής συμπεριλαμβανομένων
των κινητών τηλεφώνων κατά τη διάρκεια του μαθήματος. (εκτός από φορητό Η/Υ, βλ. Παρ. 11)
25. Απαγορεύεται αυστηρά το κάπνισμα και η είσοδος στο χώρο του εργαστηρίου με φαγητό, καφέ,
νερό, αναψυκτικά, κλπ.

40
ΔΙΑΓΡΑΜΜΑΤΑ ΑΚΡΟΔΕΚΤΩΝ ΤΩΝ Ο.Κ. 74LSxxx

41
ΤΟ ΑΝΑΠΤΥΞΙΑΚΟ ΣΥΣΤΗΜΑ AK-180

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


ΔΙΑΚΟΠΤΕΣ

ΔΙΑΚΟΠΤΕΣ ΟΘΟΝΕΣ
“0” - “1” 7 ΤΜΗΜΑΤΩΝ

LEDs

ΤΑΣΗ
ΤΡΟΦΟΔΟΣΙΑΣ
5V

42

You might also like