Πτυχιακή Εργασία. Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Πτυχιακή Εργασία. Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL"

Transcript

1 ΤΕΙ ΚΑΒΑΛΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΒΙΟΜΗΧΑΝΙΚΗΣ ΠΛΗΡΟΦΟΡΙΚΉΣ Πτυχιακή Εργασία Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL Αναστασόπουλος Νεκτάριος Δαρλαγιάννη Ιφιγένεια Πετρίδη Ειρήνη Εισηγητής: κ. Δ. Πογαρίδης Καβάλα 2007

2 Πτυχιακή Εργασία Σχεδίαση Ψηφιακών Συστημάτων Με τη Γλώσσα VHDL Αναστασόπουλος Νεκτάριος Δαρλαγιάννη Ιφιγένεια Πετρίδη Ειρήνη Καβάλα 2007 Εισηγητής: κ. Δ. Πογαρίδης

3 Την Προσπάθεια Αυτή Την Αφιερώνουμε Στους Γονείς μας που με κόπο και υπομονή μας σπουδάζουν. Ευχαριστούμε, Τον κ. Δ.Πογαρίδη που μας εμπιστεύτηκε και μας ανέθεσε την παρούσα Πτυχιακή Εργασία.

4 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Περιεχόμενα ΚΕΦΑΛΑΙΟ Ι... 6 Η ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ VHDL Ορισμός Της Γλώσσας VHDL Πλεονεκτήματα Της VHDL Στη Σχεδίαση Κυκλωμάτων ιαφορές VHDL Με C/C Μοντελοποίηση Συστημάτων Τέσσερις Περιοχές & Επίπεδα Μοντελοποίησης ) Περιοχή & Επίπεδο Μοντελοποίησης ) Περιοχή & Επίπεδο Μοντελοποίησης ) Περιοχή & Επίπεδο Μοντελοποίησης ) Περιοχή & Επίπεδο Μοντελοποίησης Μοντέλα Ψηφιακών Συσκευών Στα Οποία Βασίζεται η VHDL Α) Μοντέλο συμπεριφοράς (behavioral model) Β) Μοντέλο χρονισμού (timing model) Γ)Μοντέλο δομής (structural model) Οργάνωση της σχεδίασης (Design Organization) Τύποι δεδομένων και αντικείμενα Α) Ονόματα αντικειμένων δεδομένων Β) Χρήση αντικειμένων δεδομένων α) Σταθερές (Constants) β) Μεταβλητές (Variables) γ) Σήματα (Signals) Βασικά χαρακτηριστικά της γλώσσας VHDL ) Συνδυαστική Λογική Σχεδίαση (Combinational Logic Design) ) Λογικές πράξεις (Logical operators) ) Σχεσιακές πράξεις (Relational operators) ) Πολυπλέκτης 4 - σε - 1 (Multiplexer 4 - to - 1) ) Ακολουθιακή Λογική Σχεδίαση (Sequential Logic Design) ) Προτερήματα του δομημένου τρόπου σχεδίασης ) Καταχωρητής Ολίσθησης 4ψηφίων (4- bit Shift Register) Μοντέλα Ελέγχου-Επαλήθευσης Διαδικασία Εξομοίωσης Σχεδιασμού ) Εκτέλεση εξομοίωσης ) Αλγόριθμος Εξομοίωσης Ι ΚΕΦΑΛΑΙΟ ΙΙ ΛΕΙΤΟΥΡΓΙΑ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ Maxplus + II Σχεδίαση Ψηφιακών Συστημάτων (ALTERA) ) Συνοπτικό εγχειρίδιο χρήσης για το λογισμικό MAX+plusII ) Δημιουργία έργου (Project) ) Μεταγλωττιστής (Compiler) ) Επεξεργαστής κυματομορφών (Waveform Editor) ) Εκτέλεση προσομοίωσης (Simulation) ) Επιλογή προγραμματιζόμενης λογικής συσκευής Altera για υλοποίηση ) Επιλογή ακίδων στην προγραμματιζόμενη λογική συσκευή Altera ) Μεταγλώττιση Σχεδίου ) Φόρτωση και Έλεγχος Εφαρμογές Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 2

5 Πτυχιακή Εργασία 2.3 Εισαγωγή σχεδίου με σχηματικό διάγραμμα (Graphic Editor) ) Εισαγωγή λογικών συμβόλων ΚΕΦΑΛΑΙΟ ΙΙΙ ΕΦΑΡΜΟΓΕΣ ΣΧΕΔΙΑΣΗΣ Εφαρμογή 1: Κύκλωμα Ελέγχου Σημάτων Αυτοκινήτου Διαδικασία Σχεδίασης: Εισαγωγή σχεδίασης δια μέσου κώδικα VHDL: ος Τρόπος: Υλοποίηση με τις εξισώσεις ος Τρόπος: Υλοποίηση με τους πίνακες αληθείας Σχολιασμός Κώδικα ος Τρόπος: Υλοποίηση με τις εξισώσεις ος Τρόπος: Υλοποίηση με τους πίνακες αληθείας Εφαρμογή 2: Κύκλωμα Ελέγχου Φωτεινών Σηματοδοτών η Περίπτωση: Κύκλωμα Φωτεινών Σηματοδοτών Σε μια Διασταύρωση Κατά Τη Διάρκεια Της Ημέρας Διαδικασία Σχεδίασης: Εισαγωγή σχεδίασης δια μέσου κώδικα VHDL: ος Τρόπος: Υλοποίηση με τις εξισώσεις ος Τρόπος: Υλοποίηση με τους πίνακες αληθείας Σχολιασμός Κώδικα ος Τρόπος: Υλοποίηση με τις εξισώσεις η Περίπτωση: Κύκλωμα Ρύθμισης Φωτεινών Σηματοδοτών Σε Μια Διασταύρωση Κατά Τη Διάρκεια Της Νύχτας Διαδικασία Σχεδίασης: Εισαγωγή σχεδίασης δια μέσου κώδικα VHDL: ος Τρόπος: Υλοποίηση με τις εξισώσεις ος Τρόπος: Υλοποίηση με τους πίνακες αληθείας Σχολιασμός Κώδικα ος Τρόπος: Υλοποίηση με τις εξισώσεις ος Τρόπος: Υλοποίηση με τους πίνακες αληθείας η Περίπτωση: Κύκλωμα Ρύθμισης Φωτεινών Σηματοδοτών Σε Μια Διασταύρωση Κατά Τη Διάρκεια Της Ημέρας Αλλά Και Της Νύχτας Διαδικασία Σχεδίασης: Εισαγωγή σχεδίασης δια μέσου κώδικα VHDL: ος Τρόπος: Υλοποίηση με τις εξισώσεις ος Τρόπος: Υλοποίηση με τους πίνακες αληθείας ος Τρόπος: Υλοποίηση με τους πίνακες αληθείας --Διαφοροποίηση Σχολιασμός Κώδικα ος Τρόπος: Υλοποίηση με τις εξισώσεις ος Τρόπος: Υλοποίηση με τους πίνακες αληθείας ος Τρόπος: Υλοποίηση με τους πίνακες αληθείας --Διαφοροποίηση Εφαρμογή 3: Κύκλωμα Αυτόματου Πωλητή Αναψυκτικού η Περίπτωση: 20λεπτα 10λεπτά 1 ποτό Διαδικασία Σχεδίασης: Εισαγωγή σχεδίασης δια μέσου κώδικα VHDL: ος Τρόπος: Υλοποίηση με τις εξισώσεις ος Τρόπος: Υλοποίηση με τους πίνακες αληθείας Σχολιασμός Κώδικα ος Τρόπος: Υλοποίηση με τις εξισώσεις Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 3

6 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής 2 ος Τρόπος: Υλοποίηση με τους πίνακες αληθείας η Περίπτωση: 50λεπτα 20 λεπτά 10λεπτά 1 ποτό Διαδικασία Σχεδίασης: Εισαγωγή σχεδίασης δια μέσου κώδικα VHDL: ος Τρόπος: Υλοποίηση με τις εξισώσεις ος Τρόπος: Υλοποίηση με τους πίνακες αληθείας Σχολιασμός Κώδικα ος Τρόπος: Υλοποίηση με τις εξισώσεις ος Τρόπος: Υλοποίηση με τους πίνακες αληθείας η Περίπτωση: 50λεπτα 20 λεπτά 10λεπτά 1 ποτό Ρέστα Διαδικασία Σχεδίασης: Εισαγωγή σχεδίασης δια μέσου κώδικα VHDL: ος Τρόπος: Υλοποίηση με τους πίνακες αληθείας Σχολιασμός Κώδικα ος Τρόπος: Υλοποίηση με τους πίνακες αληθείας η Περίπτωση: 50λεπτα 20 λεπτά 10λεπτά 1 ποτό Ρέστα Διαδικασία Σχεδίασης: Εισαγωγή σχεδίασης δια μέσου κώδικα VHDL: ος Τρόπος: Υλοποίηση με τους πίνακες αληθείας Σχολιασμός Κώδικα ος Τρόπος: Υλοποίηση με τους πίνακες αληθείας ΠΑΡΑΡΤΗΜΑ Ι Η ΚΑΡΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΚΑΙ ΕΛΕΓΧΟΥ ΕΦΑΡΜΟΓΩΝ Π1. 1 Περιγραφή της Κάρτας Π1.2 Περιγραφή Κάρτας Προγραμματισμού και Εφαρμογών Π1. 3 Περιγραφή του Προγραμματιστή Π1.4 Πίνακες Κατανομής Ακίδων Π1.4.1 Κόκκινα, Κίτρινα και Πράσινα LEDs Π1.4.2 Ενδείκτης Επτά-τμημάτων με Κοινή Κάθοδο Ενδείκτης 7 τμημάτων Π1.4.3 Βομβητής Π1.4.4 LED σε Διάταξη Ζαριού Π1.4.5 LCD Οθόνη Π1.4.6 Κύκλωμα ρολογιού Π1.4.7 LED σε Μορφή Μήτρας 8x Π1.4.8 Μικροελεγκτής Π1.4.9 Διακόπτες Δεδομένων Π Διακόπτες Παλμών Π Πληκτρολόγιο Π Μετατροπείς A/D και D/A ΠΑΡΑΡΤΗΜΑ ΙΙ ΚΩΔΙΚΕΣ Σχολιασμός για τους κώδικες των εφαρμογών Κώδικες Κώδικας clkgen Κώδικας scounter10_up Κύκλωματα Ελέγχου Σημάτων Ενός Αυτοκινήτου ος Τρόπος: Υλοποίηση με τις εξισώσεις ος Τρόπος: Υλοποίηση με τους πίνακες αληθείας Εφαρμογή 2: Κύκλωμα Ελέγχου Φωτεινών Σηματοδοτών Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 4

7 Πτυχιακή Εργασία 1 η Περίπτωση: Κύκλωμα Φωτεινών Σηματοδοτών Σε μια Διασταύρωση Κατά Τη Διάρκεια Της Ημέρας ος Τρόπος: Υλοποίηση με τις εξισώσεις ος Τρόπος: Υλοποίηση με τους πίνακες αληθείας η Περίπτωση: Κύκλωμα Ρύθμισης Φωτεινών Σηματοδοτών Σε Μια Διασταύρωση Κατά Τη Διάρκεια Της Νύχτας ος Τρόπος: Υλοποίηση με τις εξισώσεις ος Τρόπος: Υλοποίηση με τους πίνακες αληθείας η Περίπτωση: Κύκλωμα Ρύθμισης Φωτεινών Σηματοδοτών Σε Μια Διασταύρωση Κατά Τη Διάρκεια Της Ημέρας Αλλά Και Της Νύχτας ος Τρόπος: Υλοποίηση με τις εξισώσεις ος Τρόπος: Υλοποίηση με τους πίνακες αληθείας ος Τρόπος: Υλοποίηση με τους πίνακες αληθείας --Διαφοροποίηση Κύκλωματα Ενός Αυτόματου Πωλήτη Αναψυκτικού η Περίπτωση: 20λεπτα 10λεπτά 1 ποτό ος Τρόπος: Υλοποίηση με τις εξισώσεις ος Τρόπος: Υλοποίηση με τους πίνακες αληθείας η Περίπτωση: 50λεπτα 20λεπτά 10λεπτά 1 ποτό ος Τρόπος: Υλοποίηση με τις εξισώσεις ος Τρόπος: Υλοποίηση με τους πίνακες αληθείας η Περίπτωση: 50λεπτα 20λεπτά 10λεπτά 1 ποτό Ρέστα ος Τρόπος: Υλοποίηση με τους πίνακες αληθείας η Περίπτωση: 50λεπτα 20λεπτά 10λεπτά 2 ποτό Ρέστα ος Τρόπος: Υλοποίηση με τους πίνακες αληθείας Βιβλιογραφία Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 5

8 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής ΚΕΦΑΛΑΙΟ Ι Η ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ VHDL Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 6

9 Πτυχιακή Εργασία 1.1 Ορισμός Της Γλώσσας VHDL Η VHDL είναι μια γλώσσα περιγραφής υλικού για την ανάπτυξη ολοκληρωμένων ψηφιακών ηλεκτρονικών κυκλωμάτων και συστημάτων. Το ακρωνύμιο της VHDL, που αποτελεί συντόμευση των λέξεων: VHSIC Hardware Description Language. Τα αρχικά VHSIC είναι µε τη σειρά τους μια συντόμευση Very High-Speed Integrated Circuit (Ολοκληρωμένα Κυκλώματα Υψηλής Ταχύτητας). Η VHDL, ως γλώσσα προγραμματισμού χρησιμοποιείται για την περιγραφή κυκλωμάτων ή υλικού (HDL). Μπορεί να χρησιμοποιηθεί, και, για την περιγραφή κυκλωμάτων ως προς την δομή (structure), τη ροή δεδομένων (dataflow) ή την συμπεριφορά (behavior). Παρέχει δυνατότητα περιγραφής της χρονικής συμπεριφοράς ή χρονισμού (timing) των κυκλωμάτων για εκτέλεση προσομοίωσης. Σε συνδυασμό με έναν μεταφραστή (compiler) χρησιμοποιείται για σύνθεση κυκλωμάτων σε ολοκληρωμένα ειδικής σχεδίασης (custom design) ή υλοποίηση σε κάποια διάταξη προγραμματιζόμενης λογικής (PLD ή FPGA), καθώς και από εργαλεία προσομοίωσης λειτουργίας. Με βάση αυτά τα χαρακτηριστικά η VHDL χαρακτηρίζεται σαν ένα εργαλείο ECAD (Electronic Computer Aided Design). Γενικά, σήμερα, η χρήση εργαλείων CAD έχει επεκταθεί καθώς η τεράστια ανάπτυξη της τεχνολογίας ημιαγωγών στην κατασκευή ολοκληρωμένων κυκλωμάτων έχει μετατοπίσει το κέντρο βάρους των μηχανικών από την λεπτομερειακή υλοποίηση κυκλωμάτων στην διαχείριση της αυξανομένης πολυπλοκότητας. Πιο συγκεκριμένα τη σημερινή εποχή, ο μηχανικός-σχεδιαστής περιορίζεται περισσότερο από την δυνατότητά του να ανταπεξέλθει στην πολυπλοκότητα της σχεδίασης του παρά από την ικανότητα της τεχνολογίας να την υποστηρίξει. Αυτό το χάσμα έρχεται να γεφυρώσει η VHDL επιτρέποντας μια υψηλού επιπέδου περιγραφή (Abstract) της σχεδίασης και κατόπιν µε την χρήση εργαλείων σύνθεσης (Logic Synthesis Tools) την αυτόματη αποτύπωση αυτής της σχεδίασης σε ολοκληρωμένη μορφή, η οποία είναι εντός των προδιαγραφών που θέτει ο μηχανικός. 1.2 Πλεονεκτήματα Της VHDL Στη Σχεδίαση Κυκλωμάτων Η γλώσσα VHDL αποτελεί μια πρότυπη βιομηχανική γλώσσα περιγραφής ψηφιακών κυκλωμάτων. Μια πρώτη έκδοση του προτύπου αυτού έγινε γνωστή το 1987 µε το όνομα IEEE11076, ενώ αργότερα το 1993 εμφανίστηκε μια βελτιωμένη έκδοσή της µε το όνομα IEEE1164. Και ως εκ τούτου είναι ανεξάρτητη του εργαλείου σχεδίασης CAD και του κατασκευαστή ή του τρόπου υλοποίησης του κυκλώματος (παρέχει δηλαδή φορητότητα και συμβατότητα σχεδίασης). Η χρήση προγράμματος (κώδικα) αντί σχηματικών είναι αποτελεσματικότερη για τη σχεδίαση μεγάλων και πολύπλοκων κυκλωμάτων, τόσο λόγω ταχύτερης σύλληψης (capture) όσο και ευκολότερης διαχείρισης και τροποποίησης της σχεδίασης. Περιλαμβάνει ακόμα, την δυνατότητα επαναχρησιμοποίησης σχεδιάσεων και πρόσβαση σε έτοιμες βιβλιοθήκες. Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 7

10 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Όλα τα γνωστά πλεονεκτήματα των υψηλού επιπέδου γλωσσών προγραμματισμού: Δόμηση Παραμετροποίηση Βρόχοι επανάληψης Εντολές συνθήκης Ιεράρχηση (με τον ορισμό υποενοτήτων) 1.3 ιαφορές VHDL Με C/C++ Η VHDL είναι όπως αναφέραμε μια γλώσσα περιγραφής υλικού (HDL). Σε σχέση µε γνωστές υψηλού επιπέδου γλώσσες προγραµµατισµού ( C/C++) υπάρχουν μερικές βασικές διαφορές : Στη VHDL δεν υπάρχει κάποια συγκεκριμένη ροή προγράμματος όπως στην C. Κάθε έκφραση στην VHDL εκτελείται παράλληλα έκτος αν δηλωθεί το αντίθετο. Βέβαια, υπάρχουν constructs στην VHDL για κατ εξαίρεση σειριακή ροή αλλά και αυτό από µόνο του δηλώνει ότι η VHDL είναι μια παράλληλη γλώσσα, ότι δηλαδή αυτό γίνεται κατ εξαίρεση. Η VHDL επιτρέπει την χρήση χρονικών καθυστερήσεων. Μπορούμε δηλαδή να πούμε ότι μια δήλωση εκτελείται μετά την πάροδο ενός χρονικού ορίου. Ναι µεν σε μερικές γλώσσες υποστηρίζεται η χρήση χρονικών καθυστερήσεων αλλά αυτό γίνεται µέσω διαφόρων πρόσθετων βιβλιοθηκών και δεν αποτελούν αναπόσπαστο κομμάτι της γλώσσας. Θα πρέπει να σημειώσουμε, επίσης, ότι η γλώσσα αυτή έχει κληρονομήσει πολλά στοιχεία από τη γλώσσα προγραμματισμού ADA. Τα σύγχρονα ψηφιακά συστήματα είναι αρκετά περίπλοκα. Απαιτείται αντιμετώπιση της πολυπλοκότητας για σχεδίαση με σιγουριά τήρησης των προδιαγραφών. Ένας τρόπος είναι ο συστηματικός σχεδιασμός: χρήση ιεραρχικής δομής (από αφηρημένα μοντέλα σε στοιχεία βιβλιοθήκης). Κάθε υποσύστημα μπορεί να αντιμετωπιστεί ως ανεξάρτητη αφηρημένη οντότητα (χωρίς λεπτομέρειες υλοποίησης). Μοντέλο: Τρόπος αναπαράστασης πληροφοριών και επίπεδο αφαίρεσης. 1.4 Μοντελοποίηση Συστημάτων Η VHDL χρησιμοποιείται για την ανάπτυξη μοντέλων ενός συστήματος. Ανάγκες χρήσης μοντέλων: καταγραφή προδιαγραφών τεκμηρίωση επαλήθευση με τη χρήση προσομοίωσης τυπική επαλήθευση (formal verification) σύνθεση Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 8

11 Πτυχιακή Εργασία Στόχος: αξιόπιστη διαδικασία σχεδίασης, με ταυτόχρονη ελαχιστοποίηση του κόστους και του απαιτούμενου χρόνου. αποφυγή σχεδιαστικών λαθών 1.5 Τέσσερις Περιοχές & Επίπεδα Μοντελοποίησης 1.5.1) Περιοχή & Επίπεδο Μοντελοποίησης 1.5.2) Περιοχή & Επίπεδο Μοντελοποίησης Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 9

12 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής 1.5.3) Περιοχή & Επίπεδο Μοντελοποίησης 1.5.4) Περιοχή & Επίπεδο Μοντελοποίησης Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 10

13 Πτυχιακή Εργασία 1.6 Μοντέλα Ψηφιακών Συσκευών Στα Οποία Βασίζεται η VHDL Η VHDL είναι μία γλώσσα περιγραφής υλικού χωρίς να κάνει υποθέσεις για την τεχνολογία ή για την μεθοδολογία που ακολουθείται κατά τον σχεδιασμό μιας ψηφιακής συσκευής. Αντί αυτού χρησιμοποιεί ένα μοντέλο περιγραφής και σχεδίασης που περιέχει τα χαρακτηριστικά συμπεριφοράς, χρονισμού και δομής των ψηφιακών συσκευών. Αυτό το μοντέλο είναι κατάλληλο για την περιγραφή όλων των συσκευών από αυτές υψηλού επιπέδου μέχρι και περιγραφές σε επίπεδο πυλών. Το γενικό μοντέλο λοιπόν στο οποίο βασίζεται η VHDL αποτελείται από τρία ανεξάρτητα αλληλοεξαρτώμενα μοντέλα, τα οποία αναφέρθηκαν και παραπάνω: ένα μοντέλο συμπεριφοράς (behavioral model), ένα μοντέλο χρονισμού (timing model) και ένα μοντέλο δομής (structural model). Αυτά τα τρία μοντέλα ολοκληρώνονται σε μία μόνο γλώσσα. Α) Μοντέλο συμπεριφοράς (behavioral model) Η συμπεριφορά μπορεί να οριστεί ως η λειτουργική μετάφραση ενός συγκεκριμένου συστήματος. Όλα τα μοντέλα έχουν μία δομή και μία συμπεριφορά. Στην VHDL η δομή ενσωματώνεται στην γλώσσα και ο σχεδιαστής έχει τη δυνατότητα να μπλέξει τη δομή και τη συμπεριφορά οπουδήποτε μέσα στο μοντέλο. Είσοδος Διακριτό Σύστημα Έξοδος Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 11

14 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Σχήμα 1.1 : Αναπαράσταση ενός διακριτού συστήματος Μία ψηφιακή συσκευή είναι ένα διακριτό σύστημα, δηλαδή ένα σύστημα που μετασχηματίζει είσοδο διακριτών τιμών σε έξοδο διακριτών τιμών. Αυτό το επιτυγχάνει εκτελώντας έναν αριθμό εργασιών μετασχηματισμών στις τιμές εισόδου. Τα αποτελέσματα αυτών των εργασιών περνάνε σε άλλες εργασίες και τελικά στις τιμές εξόδου. Σχήμα 1.2 : Αναπαράσταση ενός διακριτού συστήματος P με δύο εισόδους και μία έξοδο Σαν παράδειγμα μπορούμε να θεωρήσουμε ένα διακριτό σύστημα Ρ, του οποίου η συμπεριφορά είναι η λογική συνάρτηση XOR. Το συγκεκριμένο σύστημα θα έχει δύο διακριτές τιμές εισόδου και μία διακριτή τιμή εξόδου. Τα διακριτά συστήματα μπορούν να ποικίλουν από τα πολύ απλά ως τα πολύ σύνθετα. Στην VHDL όλες οι λειτουργίες ενός διακριτού συστήματος περιγράφονται με έναν αφαιρετικό μηχανισμό. Αυτή η αφαίρεση ωστόσο δεν συνεπάγονται πολυπλοκότητα. Όπως προαναφέρθηκε ένα διακριτό συστήματα είναι μία συλλογή λειτουργιών που εφαρμόζονται σε τιμές που περνάνε μέσα από το σύστημα. Στην VHDL αναφερόμαστε σε κάθε τέτοια εργασία ως διεργασία (process) και τα μονοπάτια από τα οποία οι τιμές περνάνε μέσα από το σύστημα ονομάζονται σήματα (signals). Στην VHDL όλες οι διεργασίες σε ένα μοντέλο λέμε ότι εκτελούνται ταυτόχρονα. Έτσι, μπορούμε να πούμε ότι το μοντέλο της VHDL είναι μία συλλογή από ανεξάρτητα προγράμματα που τρέχουν παράλληλα. Για τον συντονισμό αυτών των διεργασιών χρειάζεται ένας μηχανισμός και αυτός ο μηχανισμός είναι το σήμα. Συγκεκριμένα τα σήματα ορίζουν ένα μονοπάτι δεδομένων (data pathway) μεταξύ δύο διεργασιών. Αυτό το μονοπάτι δεδομένων είναι κατευθυνόμενο (directed), η μία πλευρά δημιουργεί μία τιμή και η άλλη λαμβάνει την τιμή αυτή. Γενικότερα, τα μονοπάτια δεδομένων έχουν κάποια ειδικά χαρακτηριστικά, όπως ο τύπος που συνδέεται με το μονοπάτι και ορίζει τη διακύμανση των τιμών που μπορούν να περάσουν από αυτό. Για παράδειγμα αν ο τύπος είναι ακέραιος δεν μπορεί να περάσει τιμή πραγματικού αριθμού ή οποιαδήποτε άλλη τιμή εκτός από ακέραιο αριθμό. Όλη η επικοινωνία μεταξύ των διεργασιών γίνεται μέσω αυτών των μονοπατιών. Οι διεργασίες εκτελούνται μέχρι να τεθούν σε διαθεσιμότητα (suspended). Όταν μία διεργασία τεθεί σε διαθεσιμότητα μπορεί να ενεργοποιηθεί ξανά. Ένας τρόπος γι αυτήν την ενεργοποίηση είναι να ανατίθεται στην διεργασία μία μέγιστη χρονική διάρκεια για την οποία πρέπει να μείνει σε διαθεσιμότητα. Μετά το τέλος αυτής της χρονικής διάρκειας η διεργασία ενεργοποιείται. Ένας άλλος τρόπος ενεργοποίησης είναι όταν κάποιες δεδομένες συνθήκες ικανοποιούνται. Έτσι ο σχεδιαστής του συστήματος μπορεί να καθορίσει την ενεργοποίηση μιας διαδικασίας όταν συμβούν αλλαγές στο σύστημα. Με άλλα λόγια μπορεί να εκφραστεί η ευαισθησία μιας διαδικασίας στην τιμή ορισμένων μονοπατιών δεδομένων. Αυτά τα μονοπάτια αποκαλούνται κανάλια ευαισθησίας (sensitivity channels). Όταν η τιμή ενός καναλιού Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 12

15 Πτυχιακή Εργασία ευαισθησίας αλλάζει τότε μία διεργασία επανεργοποιείται. Χρησιμοποιείται μία δήλωση αναμονής (wait statement) για να καθορίσει οποιεσδήποτε συνθήκες χρονικής αναμονής και κανάλια ευαισθησίας για μία διεργασία. Σαν παράδειγμα μπορούμε να σκεφτούμε το σύστημα που αναφέρθηκε παραπάνω με την λογική συνάρτηση ΧΟR, όπου οι είσοδοι είναι κανάλια ευαισθησίας και πρέπει να υπάρχουν και οι δύο τιμές για να ενεργοποιηθεί η διεργασία του συστήματος και να παραχθεί η τιμή εξόδου. Σχήμα 1.3 : Το διακριτό σύστημα P με τα μονοπάτια δεδομένων και τις διεργασίες Το διακριτό σύστημα που χρησιμοποιείται για να μοντελοποιηθεί μία ψηφιακή συσκευή περιλαμβάνεται μέσα σε μία σχεδιαστική οντότητα (design entity). Μία τέτοια οντότητα έχει δύο μέρη : μία δήλωση οντότητας και ένα σώμα αρχιτεκτονικής (architectural body). Σε πολλά συστήματα είναι δυνατόν να αποσυντεθεί η συμπεριφορά σε ένα σύνολο ενεργειών. Έτσι το διακριτό σύστημα P που είδαμε μπορεί να αναλυθεί σε ένα σύστημα Q με τρεις λειτουργίες όπως φαίνεται στο Σχήμα Σχήμα 1.4 : Αναπαράσταση του διακριτού συστήματος Q Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 13

16 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Β) Μοντέλο χρονισμού (timing model) Το μοντέλο των ψηφιακών συσκευών που χρησιμοποιείται εδώ βασίζεται στα ερεθίσματα. Όταν υπάρχει ένα ερέθισμα το μοντέλο ανταποκρίνεται και έπειτα περιμένει για περισσότερα ερεθίσματα. Τα ερεθίσματα συμβαίνουν σε συγκεκριμένες χρονικές στιγμές. Αυτός ο χρόνος αναφέρεται στον χρόνο προσομοίωσης. Επειδή η VHDL είναι παράλληλη αλλά έχει σχεδιαστεί για να εκτελείται και σε μη-παράλληλα συστήματα, καθίσταται απαραίτητο να καθοριστεί ο χρόνος προσομοίωσης, ο οποίος με τη σειρά του καθορίζει το πότε συμβαίνει κάποιο γεγονός κατά τη διάρκεια της προσομοίωσης. Αν δεν υπήρχε αυτός ο χρονικός καθορισμός ένα μοντέλο μπορεί να προσομοιώνονταν διαφορετικά σε δύο διαφορετικούς προσομοιωτές VHDL. Όταν λοιπόν μία διεργασία δημιουργεί μία τιμή σε ένα μονοπάτι δεδομένων μπορεί επίσης να προσδιορίζει ένα χρονικό διάστημα πριν να σταλεί η τιμή στο μονοπάτι αυτό. Αυτό αναφέρεται ως προγραμματισμός μιας συναλλαγής (scheduling a transaction). Είναι δυνατόν να προγραμματιστεί οποιοσδήποτε αριθμός συναλλαγών για ένα μονοπάτι δεδομένων. Η συλλογή αυτών των συναλλαγών για ένα σήμα αποκαλείται οδηγός του σήματος (driver of the signal). Ο οδηγός είναι ένα σύνολο από ζευγάρια χρόνων/τιμών, το οποίο κρατά την τιμή κάθε συναλλαγής και τον χρόνο στον οποίο η συναλλαγή πρέπει να συμβεί. Η VHDL έχει ένα μοντέλο χρονισμού δύο επιπέδων. Αυτό το μοντέλο αποκαλείται κύκλος προσομοίωσης και ακολουθείται το γενικότερο πλαίσιο των ερεθισμάτων. Για παράδειγμα, ένα λειτουργικό κομμάτι αντιδρά (reacts) όταν υπάρχει δραστηριοποίηση στις εισόδους του, τότε ανταποκρίνεται (responds) μέσω των εξόδων του. Οι διεργασίες λοιπόν είναι τα λειτουργικά κομμάτια που συνδέονται με τα σήματα. Έτσι, στο πρώτο στάδιο του κύκλου προσομοίωσης οι τιμές διαδίδονται μέσω των μονοπατιών δεδομένων. Αυτό το στάδιο ολοκληρώνεται όταν όλα τα μονοπάτια δεδομένων για τα οποία έχει προγραμματιστεί να πάρουν τιμή και να ανανεώσουν τις τιμές τους. Κατά το δεύτερο στάδιο οι διεργασίες που λαμβάνουν τιμή στα κανάλια ευαισθησίας ενεργοποιούνται. Αυτό το στάδιο ολοκληρώνεται όταν όλες οι διεργασίες ανασταλούν, οπότε το ρολόι προσομοίωσης τίθεται στον επόμενο χρόνο προσομοίωσης. Στο μοντέλο χρονισμού υπάρχει πάντα μία καθυστέρηση μεταξύ της χρονικής στιγμής που μία διεργασία τοποθετεί μία τιμή σε ένα μονοπάτι δεδομένων και της χρονικής στιγμής που το μονοπάτι δεδομένων αντιδρά σε αυτήν την τιμή. Συγκεκριμένα αν δεν δοθεί καμία τιμή στη ανάθεση μιας τιμής σε ένα μονοπάτι δεδομένων τότε χρησιμοποιείται μία δέλτα καθυστέρηση (delta delay).έτσι υπάρχει πάντα μία καθυστέρηση μεταξύ της ανάθεσης και της ανανέωσης της τιμής ενός σήματος. Αν η νέα τιμή του σήματος διαφέρει από την προηγούμενη στο μονοπάτι δεδομένων τότε λέμε ότι έχει συμβεί ένα γεγονός. Γ)Μοντέλο δομής (structural model) Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 14

17 Πτυχιακή Εργασία Όταν ένα μοντέλο μιας ψηφιακής συσκευής απαιτεί περισσότερες από μερικές διαδικασίες η διαχείριση της αναπαράστασης του διακριτού συστήματος γίνεται πολύ δύσκολη. Τέτοια μοντέλα συχνά αποσυντίθενται σε ενότητες που είναι λειτουργικά όμοιες. Αυτή η αποσύνθεση αποκαλείται δομή του μοντέλου. Έτσι ένα διακριτό σύστημα μπορεί να διαιρεθεί σε υποσυστήματα. Η διασύνδεση δύο υποσυστημάτων είναι στην πραγματικότητα ένα μονοπάτι δεδομένων από το ένα στο άλλο δίνοντας τη δυνατότητα με αυτόν τον τρόπο για την επίτευξη επικοινωνίας μεταξύ τους. Αυτές οι διασυνδέσεις αποκαλούνται θύρες (ports) και έχουν κάποια ειδικά χαρακτηριστικά. Καταρχήν ο ορισμός μιας θύρας αντιπροσωπεύει τη δήλωση ενός σήματος (signal) και επομένως ενός μονοπατιού δεδομένων (data pathway). Μπορούμε να σκεφτούμε αυτά τα μονοπάτια σαν έναν σωλήνα που συνδέει δύο διεργασίες. Αυτές οι συνδεόμενες λειτουργικές μονάδες μπορούν να θεωρηθούν μαύρα κουτιά που έχουν εισόδους και εξόδους. Στο μοντέλο της VHDL για ένα διακριτό σύστημα καθένα από αυτά τα κουτιά μπορεί να αναπαρασταθεί από μία σχεδιαστική οντότητα της VHDL. Σχήμα 1.6 : Αποσύνθεση του διακριτού συστήματος Q σε δύο υποσυστήματα Υπάρχουν πολλοί τρόποι με τους οποίους το μοντέλο δομής αλληλεπιδρά με το μοντέλο συμπεριφοράς. Πρώτα απ όλα είναι δυνατόν να παρεμβάλλεται μία συνάρτηση μετατροπής τύπου στο μονοπάτι δεδομένων. Αυτό είναι πολύ σημαντικό για την περίπτωση που δύο διεργασίες πρέπει να επικοινωνήσουν αλλά τα διακριτά συστήματα στα οποία ανήκουν δεν έχουν τα ίδια χαρακτηριστικά. Μπορούμε να σκεφτούμε το παράδειγμα όπου έχουμε από την μία πλευρά ακέραιους και από την άλλη πραγματικούς αριθμούς. Ένας άλλος σημαντικός τρόπος με τον οποίο η δομή και η συμπεριφορά αλληλεπιδρούν είναι με την ανάλυση των αναλυμένων σημάτων (resolved signals). Αν περισσότεροι από ένας οδηγοί έχουν οριστεί για ένα σήμα (δηλαδή αν περισσότερες από μία διεργασίες θέτουν τιμή στο σήμα), τότε το σήμα είναι ένα αναλυμένο σήμα (resolved signal). Ο σχεδιαστής πρέπει να αναθέσει μία συνάρτηση με αυτό το σήμα έτσι ώστε να λαμβάνονται οι διαφορετικές τιμές και να παράγεται στο τέλος μία μοναδική τιμή. Σε μερικές περιπτώσεις μπορούμε να αποσυνδέσουμε (disconnect) τον οδηγό ενός αναλυτικού σήματος, δηλαδή να κλείσει (turn off) τον οδηγό. Όταν ο οδηγός κλείσει, δεν περνάει στην αναλυτική συνάρτηση και επομένως δεν παίρνει μέρος στον καθορισμό της τελικής τιμής. Υπάρχουν δύο τύποι αναλυτικών σημάτων : οι καταχωρητές (registers) και οι δίαυλοι (busses). Ένα σήμα καταχωρητή (register signal) δεν αναλύεται αν όλοι οι οδηγοί του κλείσουν, ενώ ένα σήμα διαύλου αναλύεται όταν όλοι οι οδηγοί του είναι κλειστοί. Αυτό σημαίνει ότι η αναλυτική συνάρτηση για ένα σήμα διαύλου πρέπει να διαχειρίζεται την ανάλυση μιας άδειας λίστας τιμών. Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 15

18 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Σχήμα 1.7 : Ανάλυση Σημάτων σε μία Δομημένη Ιεραρχία Όταν μία θύρα αναλύεται τότε η αναλυτική τιμή καθορίζεται πριν περάσει έξω από το υποσύστημα που περιέχει την θύρα. Τα αναλυτικά σήματα έχουν πολύ σημαντικές επιδράσεις για τις θύρες σε ένα μοντέλο. Αν η τιμή αναλυθεί καθώς περάσει από μία σειρά θυρών, τότε η τελική τιμή θα είναι αυτή που θα καθοριστεί από την πρώτη θύρα. Γενικότερα το ψηφιακό κύκλωμα που περιγράφει η VHDL μπορεί να είναι από μία απλή λογική πύλη έως ένα ολοκληρωμένο ψηφιακό σύστημα. Στην VHDL το ψηφιακό κύκλωμα αναφέρεται ως οντότητα (entity). Όταν όμως μία οντότητα Χ εμπεριέχεται μέσα σε μία οντότητα Υ τότε αυτή ονομάζεται στοιχείο (component). Σχήμα 1.8 : Παράδειγμα δομής στην VHDL με τις οντότητες και τα στοιχεία Το παραπάνω σχήμα θα το χρησιμοποιήσουμε ως σημείο αναφοράς για την ανάλυση των βασικών στοιχείων της VHDL. Από το σχήμα διαπιστώνουμε κάτι πολύ σημαντικό, ότι κάθε οντότητα ή στοιχείο αποτελείται από την δήλωση της οντότητας (entity declaration) και το κομμάτι της αρχιτεκτονικής της οντότητας Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 16

19 Πτυχιακή Εργασία (architecture body).για την περιγραφή ενός entity, η VHDL προσφέρει πέντε διαφορετικά constructs τα οποία και ονομάζονται μονάδες σχεδίασης (design units): Entity declaration Architecture body Configuration declaration Packages Διακύρηξη Οντοτήτων (Entity Declaration) Είναι το κοµµάτι του κώδικα το οποίο δηλώνει το όνομα του συγκεκριμένου κυκλώματος και επίσης παραθέτει και μια λίστα µε τα Ports του κυκλώματος. Με τον όρο ports, εννοούμε τα σήματα µέσω των οποίων η συγκεκριμένη οντότητα (entity) επικοινωνεί µε το εξωτερικό περιβάλλον (είσοδοι, έξοδοι, κ.ά.). Σώμα Αρχιτεκτονικής (Architecture Body) Το κομμάτι entity declaration δεν αναφέρει τίποτα για το εσωτερικό του entity. Απλά δηλώνει το όνομα αλλά και τα interface ports. Οι εσωτερικές λεπτομέρειες του entity (δηλ. του κυκλώματος) δηλώνονται στον κύριο κορμό της σχεδίασης που είναι το Architecture body µε έναν από τους κάτωθι τρόπους σχεδίασης: 1. Ως ένας συνδυασμός αλληλοσυνδεόμενων στοιχείων (components). Structural Style of Modeling (Δομημένος τρόπος σχεδίασης). 2. Ως ένας συνδυασμός «σειριακών» δηλώσεων και αναθέσεων. Behavioral Style of Modeling (Σχεδίαση Τρόπου Συμπεριφοράς). 3. Ως ένας συνδυασμός «παράλληλων» δηλώσεων και αναθέσεων. Dataflow Style of Modeling (Σχεδίαση Διαγράμματος ροής). 4. Ως ένας συνδυασμός των παραπάνω. 1. Δομημένος τρόπος σχεδίασης (Structural Style of Modeling). Ο δομημένος τρόπος σχεδίασης περιγράφει το κύκλωμα κυρίως µε βάση τα στοιχεία (components) που το απαρτίζουν. Αυτά μπορεί να είναι στοιχεία από διάφορες βιβλιοθήκες ή και από τον ίδιο το χρήστη από µία άλλη σχεδίασή του. Το αν ο σχεδιαστής θα χρησιμοποιήσει στοιχεία από «έτοιμες» βιβλιοθήκες ή θα προτιμήσει δικής του κατασκευής στοιχεία (generic/user-defined components) είναι ένα σημαντικό θέμα, το οποίο επιλύεται µε βάση την εμπειρία του αλλά και µε βάση τις απαιτήσεις της σχεδίασής του. Το Architecture body, στο δομημένο τρόπο σχεδίασης, ορίζει ποια components εμπεριέχονται στη συγκεκριμένη σχεδίαση καθώς και το πώς ενώνονται μεταξύ τους. Τα κύρια στοιχεία της VHDL που χρησιμοποιούνται σε αυτό τον τρόπο σχεδίασης είναι : Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 17

20 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Component declaration and instantiation ( ήλωση στοιχείων). Port mapping and signal interface lists (Αναφορά στον τρόπο σύνδεσης του κάθε στοιχείου της σχεδίασης µε τα υπόλοιπα. Δηλαδή η έξοδος του στοιχείου σε ποια είσοδο άλλου στοιχείου πηγαίνει και µε τη χρήση ποιου σήµατος). Libraries and packages (Βιβλιοθήκες και πακέτα). Signals (Για διασυνδέσεις). Τα ορισµένα στοιχεία κατόπιν «αποτυπώνονται» στο κομμάτι των δηλώσεων (instantiated). Η αποτύπωση (instantiation) γενικά είναι μια παράλληλη δήλωση. Γι αυτό το λόγο δεν παίζει ρόλο η σειρά των δηλώσεων. Ο δομημένος τρόπος σχεδίασης γενικά δείχνει απλά το πώς συνδέονται τα διάφορα στοιχεία μεταξύ τους. Τα στοιχεία µε αυτόν τον τρόπο σχεδίασης αποτελούν «µαύρα κουτιά», δηλαδή δεν γίνεται καμία αναφορά για τη συμπεριφορά ή τη λειτουργία τους. Γι αυτό το λόγο αλλά και για άλλους, ο δομημένος τρόπος σχεδίασης χρησιμοποιείται συχνά στο υψηλότερο επίπεδο σχεδίασης έτσι ώστε να γίνεται ένας διαυγής καθορισμός των επιμέρους στοιχείων της τελικής σχεδίασης αλλά και για να έχει η σχεδίαση μια καθαρά ιεραρχική δομή. 2. Συµπεριφοριστικός τρόπος σχεδίασης (Behavioral Style of Modeling ). Ο τρόπος σχεδίασης με βάση την συμπεριφορά εμπεριέχει «παράλληλες» δηλώσεις µε κομμάτια σειριακών δηλώσεων οι οποίες περιγράφουν τις εξόδους του κυκλώματος σε συγκεκριμένες χρονικές στιγμές και µε συγκεκριμένες εισόδους. Από όλους τους τρόπους σχεδίασης µόνο ο συµπεριφοριστικός τρόπος χρησιμοποιεί άμεσα τις έννοιες του χρόνου και του ελέγχου. Αυτός ο τρόπος γενικά, περιγράφει τις λειτουργίες του κυκλώματος σε αλγοριθμικό επίπεδο. Τα κύρια στοιχεία της VHDL που χρησιμοποιούνται σε αυτό τον τρόπο σχεδίασης είναι : Process statements and sensitivity list. Sequential statements (σειριακές δηλώσεις). Variables (μεταβλητές). Ο συµπεριφοριστικός τρόπος σχεδίασης περιγράφει τη συμπεριφορά ενός entity µε ένα αριθμό δηλώσεων, οι οποίες εκτελούνται σειριακά, δηλαδή σύμφωνα µε τη σειρά που αυτές έχουν. Οι δηλώσεις αυτές βρίσκονται μέσα σε ένα process (διαδικασία) δεν αναφέρονται στη δομή του κυκλώματος entity αλλά µόνο στη λειτουργικότητά του. Από την άλλη, ένα process εξωτερικά είναι μια παράλληλη δήλωση και εκτελείται παράλληλα (δηλαδή άσχετα µε τη θέση του σε σχέση µε άλλες παράλληλες δηλώσεις ή άλλα process). Όπως και στο δομημένο τρόπο σχεδίασης, ένα process έχει και αυτό ένα κομμάτι ορισμών (declarative part) και ένα κομμάτι δηλώσεων (statement part). Οι δηλώσεις που υπάρχουν στο statement part εκτελούνται σειριακά. Τέλος αξίζει να αναφερθεί ότι ο συµπεριφοριστικός τρόπος σχεδίασης μπορεί να περιγράψει και συνδυαστικά αλλά και ακολουθιακά κυκλώματα. Άρα είναι ιδανικό εργαλείο για την υλοποίηση µηχανών πεπερασµένων καταστάσεων (FSMs). 3. Σχεδίαση Διαγράμματος Ροής (Dataflow Style of Modeling). Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 18

21 Πτυχιακή Εργασία Με τη χρήση σχεδίασης διαγράμματος ροής για την υλοποίηση ενός κυκλώματος, περιγράφουμε απλά τη «ροή» των δεδομένων μεταξύ στοιχείων συνδυαστικής λογικής, όπως απλές λογικές πύλες, αθροιστές, αποκωδικοποιητές. Με άλλα λόγια περιγράφεται το RTL (Register-Transfer-Level) του κυκλώματος. Τα κύρια στοιχεία της VHDL που χρησιμοποιούνται σε αυτό τον τρόπο σχεδίασης είναι : Operators (πράξεις : λογικές, σχεσιακές, αριθμητικές). Παράλληλες δηλώσεις. Με αυτόν τον τρόπο σχεδίασης η δομή του κυκλώματος δεν ορίζεται άμεσα, δηλαδή µε την «φανερή» χρήση στοιχείων (components), όπως µε την structural δομή, αλλά έμμεσα. Συνοψίζοντας για την σχεδίαση dataflow, µπορούµε να πούµε ότι αυτή δεν είναι ιδανική για την περιγραφή ακολουθιακών κυκλωμάτων (δηλαδή κυκλωμάτων που έχουν clock). Αντίθετα όπως υποδηλώνει και το όνομα του, αυτός ο τρόπος σχεδίασης είναι κατάλληλος για περιγραφή κυκλωμάτων που υπάρχει «ροή δεδομένων», όπως ALUs. 4. Συνδυασµός των παραπάνω (Mixed Style of Modeling). Είναι δυνατό µία σχεδίαση να περιέχει και τους τρεις προαναφερθέντες τρόπους σχεδίασης. Δηλαδή να γίνεται χρήση components (Structural Modeling), παράλληλες δηλώσεις (Dataflow Modeling) καθώς και processes (Behavioral Modeling). Το πιο συνηθισμένο όμως είναι να συνυπάρχει ο dataflow τρόπος σχεδίασης µε έναν από τους άλλους δύο. 1.7 Οργάνωση της σχεδίασης (Design Organization) Βιβλιοθήκες (Libraries) Σχεδόν καμία σχεδίαση που κάνουμε δεν είναι απόλυτα αυτόνομη. Πάντα θα γίνεται αναφορά σε κάποιο block, το οποίο αναπαριστά ένα component ή έναν ορισμό. Αυτά μπορεί να είναι αποθηκευμένα στην ίδια βιβλιοθήκη µε το παρόν σχέδιο ή σε κάποια ευρύτερη (global) βιβλιοθήκη. Επίσης κάθε βιβλιοθήκη χωρίζεται σε επιμέρους τμήματα, ανάλογα µε τα είδη αναφορών που έχει. Η δομή μίας βιβλιοθήκης φαίνεται στο παρακάτω σχήμα: Dessign File Design Unit Compilation Library Unit Primary Unit Design Unit Library Unit Secondary +ext.library Unit refs Design Unit Library Unit +ext.library Primary Unit refs Compilation Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 19

22 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Design Unit Design Unit Primary Unit Design Unit Design Unit Secondary Unit Σχήμα 1.9: Δομή Βιβλιοθήκης Ένα design file περιέχει τον VHDL κώδικα ενός στοιχείου (element) του σχεδίου. Πολλά design files μπορεί να χρησιμοποιηθούν για την εφαρμογή πολλών elements του ίδιου σχεδίου. Κάθε τέτοιο αρχείο μπορεί και να περιέχει κομμάτι(α) της δομής ενός στοιχείου κυκλώματος. Αυτά τα κομμάτια (units) χωρίζονται σε: Πρωτεύοντα (primary units). Περιέχουν τον ορισμό ενός entity ή ένα πακέτο (package). Δευτερεύοντα (secondary units). Περιέχουν τον ορισμό ενός architecture body ή ένα πακέτο (package). Τα primary units πρέπει να «περάσουν» τον μεταγλωτισμό (compilation) και να αποθηκευτούν σε μια βιβλιοθήκη πριν ακολουθήσουν τα δευτερεύοντα με τα οποία συνδέονται. Το σύνολο αυτών των μονάδων απαρτίζουν τα library units. Πακέτα (Packages). Ο ορισμός πακέτων χρησιμοποιείται για την αποθήκευση ενός συνόλου κοινών στοιχείων (components), διαδικασιών (procedures), συναρτήσεων (functions), τύπων (types), υποκατηγοριών (subtypes), τα οποία χρησιμοποιούνται συχνά από τον σχεδιαστή. Δήλωση πακέτων (package declaration) καθώς και τα πακέτα τα ίδια (package body) είναι σχεδιαστικές μονάδες(design units), κατά συνέπεια μπορούν να κάνουν χρήση των δεδομένων άλλων πακέτων. Ένα παράδειγμα πακέτου που μπορεί να έχουν πρόσβαση όλοι οι χρήστες είναι το STANDARD. Αυτό δεν μπορεί να τροποποιηθεί από τον χρήστη και μαζί με το πακέτο TEXTIO, βρίσκονται μέσα στη βιβλιοθήκη STD. Η ειδική χρησιμότητα των πακέτων δεν φαίνεται εκ πρώτης όψεως. Όμως αξίζει να αναφερθεί ότι μερικά εξειδικευμένα πακέτα που προσφέρουν οι εταιρίες κατασκευής ASICs (Application Specific ICs) και FPGAs (Field Programmable Gate Arrays), μπορούν να βοηθήσουν τον σχεδιαστή να υλοποιήσει ένα σύστημα βασισμένος σε μια συγκεκριμένη τεχνολογία. Πρόσβαση σε βιβλιοθήκες και πακέτα Πρώτα απ' όλα να σημειωθεί ότι υπάρχουν μονάδες σχεδίου (design units) μέσα σε βιβλιοθήκες που είναι ορατά σε κάθε σχεδίαση. Αυτά βρίσκονται στο STANDARD πακέτο στην STD βιβλιοθήκη καθώς και σε όλα τα πακέτα της WORK βιβλιοθήκης. Άμα τυχόν αυτά δεν ήταν ορατά στον χρήστη τότε κάθε σχεδίαση του έπρεπε να προαναφέρει τις ακόλουθες δηλώσεις: Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 20

23 Πτυχιακή Εργασία library STD, WORK; use STD.STANDARD.all - δήλωση βιβλιοθηκών - δήλωση όλων των στοιχείων ενός πακέτου Η πρώτη δήλωση ονομάζεται library clause και κάθε βιβλιοθήκη μπορεί να γίνει ορατή στη σχεδίαση του χρήστη με αυτόν τον τρόπο. Αντίστοιχα η δεύτερη δήλωση ονομάζεται use clause και καλεί συγκεκριμένα πακέτα ή στοιχεία πακέτων από μία βιβλιοθήκη. Όμως, αν ο χρήστης θέλει να έχει πρόσβαση σε ένα αντικείμενο από ένα πακέτο, δεν είναι αναγκαίο να «φορτώσει» όλο το πακέτο αλλά μόνο το επίμαχο αντικείμενο. Ας υποθέσουμε ότι το αντικείμενο είναι μία συνάρτηση (procedure) ή ένα στοιχείο (component) με το όνομα DECODE και βρίσκεται στο πακέτο MY_PROCS μέσα στη βιβλιοθήκη MY_LIB. Τότε η πρόσβαση γίνεται ως εξής: MY_LIB.MY_PROCS.DECODE; 1.8 Τύποι δεδομένων και αντικείμενα Οτιδήποτε μπορεί να έχει μία τιμή (όπως ένα σήμα) είναι ένα αντικείμενο στην VHDL. Κάθε αντικείμενο έχει έναν τύπο, ο οποίος δηλώνει τις τιμές που μπορεί να πάρει το αντικείμενο. Ο τύπος κάθε αντικειμένου μπορεί να καθοριστεί στατικά (statically) και δεν μπορεί να αλλάξει κατά την διάρκεια της εκτέλεσης του μοντέλου. Οι τρεις πιο βασικοί τύποι δεδομένων στην VHDL είναι οι ακέραιοι (integer types), η κινητής υποδιαστολής (floating point types) και οι απαριθμητικές τιμές (enumeration types). Οι τύποι ακεραίων και κινητής υποδιαστολής είναι γνωστοί και από τις άλλες γλώσσες προγραμματισμού. Σημειώνεται εδώ ότι στην VHDL μπορεί να περιοριστεί το εύρος τιμών με την δήλωση range. Έτσι ένας περιορισμός του τύπου type Byte is range 128 to 127; στην VHDL περιορίζει το εύρος τιμών στο πεδίο από 128 ως και 127. Όσο για τους απαριθμητικούς τύπους δεδομένων μπορούν να είναι είτε αναγνωριστικά (identifiers) είτε απλοί χαρακτήρες (character literals). Για τα αναγνωριστικά αναφέραμε παραπάνω τα χαρακτηριστικά που έχουν ενώ για τους απλούς χαρακτήρες πρέπει να πούμε ότι είναι μεμονωμένοι ASCII χαρακτήρες σε μονά εισαγωγικά ( a, A,, %, 6 κ.τ.λ) και ότι είναι διακρίνων κεφαλαία και μικρά (case-sensitive) οπότε το a είναι διαφορετικό από το A. Η VHDL έχει επίσης έναν μικρό αριθμό από προκαθορισμένους τύπους δεδομένων (predefined types), όπως για παράδειγμα ο ακέραιος τύπος Integer, ο τύπος κινητής υποδιαστολής Readl και οι απαριθμητικοί τύποι δεδομένων Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 21

24 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Boolean, Bit, Severity_level και Character. Για παράδειγμα ο ορισμός του Bit είναι : type Bit is ( 0, 1 ) Υπάρχουν τρεις κλάσεις αντικειμένων στην VHDL : τα σήματα (signals), οι μεταβλητές (variables) και οι σταθερές (constants). Τα σήματα και οι μεταβλητές μπορούν να αλλάξουν πολλές τιμές ενώ οι σταθερές παίρνουν τιμή μόνο μία φορά. Η διαφορά των σημάτων από τις μεταβλητές είναι ότι οι μεταβλητές παίρνουν τιμή αμέσως μόλις αυτή τους ανατίθεται ενώ τα σήματα μπορεί να πάρουν τιμή κάποια χρονική στιγμή μετά την ανάθεση. Ή γενικότερη μορφή της δήλωσης ενός αντικειμένου (object declaration) είναι η εξής : object-class identifier-list : subtype-indication signal-kind := expression Για παράδειγμα η δήλωση signal CLK, CLEAR : Bit := 0 ; ορίζει δύο σήματα (objectclass), που έχουν ονόματα CLK και CLEAR (identifier-list), τα οποία μπορούν να πάρουν τιμές Bit (subtype-indication) και η αρχική προεπιλεγμένη τιμή τους είναι 0 (expression). Από την προηγούμενη δήλωση παρατηρούμε ότι λείπει το signal-kind το οποίο μπορεί να είναι είτε bus είτε register. Α) Ονόματα αντικειμένων δεδομένων Είναι ευνόητο ότι για να χρησιμοποιήσουμε ένα αντικείμενο δεδομένων θα πρέπει να το ορίσουμε σε ένα πρόγραμμα με κάποιο όνομα. Όπως αναφέρθηκε και προηγουμένως, ως όνομα δεν μπορούμε να χρησιμοποιήσουμε κάποια από τις λέξεις - κλειδιά της VHDL. Αντιθέτως ένα όνομα θα πρέπει να ξεκινά από κάποιο γράμμα, δεν είναι δυνατό να τελειώνει με το χαρακτήρα "_" και δεν είναι δυνατό να έχει δύο διαδοχικούς χαρακτήρες " ". Επιπλέον είναι ενδιαφέρον το γεγονός ότι η VHDL δεν κάνει διάκριση ανάμεσα στα κεφαλαία και τα πεζά γράμματα. Β) Χρήση αντικειμένων δεδομένων α) Σταθερές (Constants) Μια σταθερά αντιστοιχεί μια τιμή σε ένα σύμβολο ενός δοσμένου τύπου δεδομένων. Μια σταθερά προφανώς δεν μπορεί να αλλάξει τιμή κατά την διάρκεια του τρεξίματος ενός προγράμματος. Η δήλωση σταθερών στη VHDL γίνεται ως εξής: Constant symbol: type: = value;. Παραδείγματα: Constant Vcc: signal: = T; -- logic 1 constant Constant zero4: bit_vector (0 to 3): = ( 0, 0, 0, 0 ); β) Μεταβλητές (Variables) Μια μεταβλητή δηλώνεται και χρησιμοποιείται μέσα σε ένα βρόχο, συνάρτηση, διαδικασία. Η τιμή μιας μεταβλητής αναπροσαρμόζεται με βάση την ανάθεση που δέχεται από την εκτέλεση μιας σειράς εντολών. Η δήλωση μεταβλητών στη VHDL είναι: Variable symbol: type [: = initial_value];. Παράδειγμα: Process Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 22

25 Πτυχιακή Εργασία Variable count: integer: = 0; Variable rega: bit_vector (7 downto 0); Begin Count: = 7; -- assign values to variables Rega: =x"01"; End; γ) Σήματα (Signals). Ένα σήμα είναι ένα αντικείμενο, το οποίο διαθέτει ένα ιστορικό τιμών (ανάλογα με τις διάφορες στιγμές κατά τις οποίες η τιμή του σήματος αλλάζει). Η δήλωση σημάτων είναι η εξής: Signal sig_name: data_type [: =initial_value];. Ακολούθως παρουσιάζουμε και περιγράφουμε τους εννέα ακόλουθους τύπους σήματος: 1) BIT, 2) BIT_VECTOR, 3) STD_LOGIC, 4) STD_LOGIC_VECTOR, 5) SIGNED, 6)UNSIGNED, 7)INTEGER, 8)ENUMERATION και 9)BOOLEAN. Ένα αντικείμενο τύπου BIT μπορεί να έχει την τιμή 0 ή 1, ενώ ένα αντικείμενο τύπου BIT_VECTOR είναι στην ουσία ένας πίνακας δυαδικών ψηφίων 0 και 1. Παραδείγματα: Signal clock: bit; Signal GND: bit: = 0 ; Signal databus: bit_vector (15 downto 0); Signal addrbus: bit_vector (0 to 31); Η χρήση του downto σε ένα πίνακα υποδηλώνει ότι το πιο σημαντικό bit ορίζεται με τη βοήθεια του υψηλότερου δείκτη και το λιγότερο σημαντικό bit ορίζεται με τη βοήθεια του χαμηλότερου δείκτη. Η χρήση του to σε ένα πίνακα υποδηλώνει ότι το πιο σημαντικό bit ορίζεται με τη βοήθεια του χαμηλότερου δείκτη και το λιγότερο σημαντικό bit ορίζεται με τη βοήθεια του υψηλότερου δείκτη. Παράδειγμα: (i) Signal databus: bit_vector (4 downto 1); (ii) Signal databus: bit_vector (1 to 4); Ένα αντικείμενο τύπου STD_LOGIC μπορεί να έχει την τιμή 0, 1, Ζ, -, L, Η, U, Χ και W. Είναι πλέον γνωστό το τι αντιπροσωπεύουν οι τιμές 0 και 1. Οι υπόλοιπες τιμές έχουν τις ακόλουθες έννοιες: Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 23

26 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Ζ: κατάσταση υψηλής σύνθετης αντίστασης - : αδιάφορη λογική κατάσταση L: αδιάφορη λογική κατάσταση Η: ασθενής τιμή 1 U: μη-μηδενισμένη τιμή Χ: άγνωστη τιμή W: άγνωστη ασθενής τιμή Ένα αντικείμενο τύπου STD_LOGIC_VECTOR είναι στην ουσία ένας πίνακας αντικειμένων τύπου STD_LOGIC. Παραδείγματα: Signal x: STD_LOGIC; Signal y: STD_LOGIC_VECTOR (15 downto 0); Signal s: STD_LOGIC_VECTOR (0 to 31); Η χρήση των εν λόγω τύπων αντικειμένων επιβάλλει την εισαγωγή στην αρχή ενός προγράμματος των εντολών: LIBRARY ieee; USE ieee.std_logic_1164.all; Ένα αντικείμενο τύπου STD_LOGIC_VECTOR καθορίζεται ως SIGNED όταν έχουμε να χειριστούμε προσημασμένους αριθμούς ενώ ένα αντικείμενο τύπου STD_LOGIC_VECTOR καθορίζεται ως UNSIGNED, όταν έχουμε να χειριστούμε μη - προσημασμένους αριθμούς. Η χρήση των παραπάνω τύπων (SIGNED & UNSIGNED) επιβάλλει την εισαγωγή στην αρχή ενός προγράμματος του πακέτου std_logic_signed όταν αναφερόμαστε σε προσημασμένους αριθμούς και το πακέτο std_logic_unsigned όταν αναφερόμαστε σε μη-προσημασμένους αριθμούς. Παραδείγματα: Signal y: SIGNED STD_LOGIC_VECTOR (15 downto 0); Signal s: UNSIGNED STD_LOGIC_VECTOR (0 to 31); Ένα σήμα τύπου INTEGER αντιπροσωπεύει ένα δυαδικό αριθμό, έχει μήκος 32 bits έχοντας εύρος τιμών από - (2 31-1) εώς (2 31-1). Το εύρος μπορεί να καθοριστεί από τον σχεδιαστή - μηχανικό με τη χρήση της λέξης κλειδί RANGE. Παράδειγμα: Signal y: INTEGER RANGE TO Ένα σήμα τύπου ENUMERATION είναι ένα σήμα για το οποίο οι δυνατές τιμές που μπορεί να πάρει καθορίζονται από τον χρήστη. Τα εν λόγω σήματα χρησιμοποιούνται κυρίως σε μηχανές πεπερασμένων καταστάσεων (finite state machines). Η γενική μορφή χρήσης ενός τέτοιου τύπου είναι: ΤΥΡΕ όνομα_τύπου_enumeration IS (name_a, name_b...);. Παράδειγμα: Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 24

27 Πτυχιακή Εργασία TYPE State_type IS (statea, stateb, statec); Signal y: State_type; Έτσι έχουμε ένα σήμα y του οποίου οι δυνατές τιμές είναι οι statea, stateb και statec. Ένα σήμα τύπου BOOLEAN είναι ένα σήμα το οποίο μπορεί να έχει την τιμή TRUE (ισοδύναμη με την τιμή 1) και την τιμή FALSE (ισοδύναμη με την τιμή 0). Παράδειγμα: Signal y: BOOLEAN; 1.9 Βασικά χαρακτηριστικά της γλώσσας VHDL Η ανάλυση των βασικών χαρακτηριστικών της γλώσσας VHDL θα προκύψει μέσα από τον διαχωρισμό των λογικών ψηφιακών κυκλωμάτων σε δύο κύριες κατηγορίες. Στα συνδυαστικά λογικά κυκλώματα και στα ακολουθιακά λογικά κυκλώματα. Θα ακολουθήσουν και διάφορα παραδείγματα, ενδεικτικά για κάθε κατηγορία, τα οποία θα βοηθήσουν στην καλύτερη κατανόηση της VHDL ως γλώσσας προγραμματισμού ) Συνδυαστική Λογική Σχεδίαση (Combinational Logic Design) Τα κυκλώματα συνδυαστικής λογικής, αποτελούνται από απλές λογικές πύλες και οι έξοδοι αυτών των κυκλωμάτων εξαρτώνται πάντα από τις εισόδους τους με σχέσεις που καθορίζονται επακριβώς από κάποιες συναρτήσεις Boole. Ο τρόπος σχεδίασης κυκλωμάτων όπως πολυπλέκτες 2ψηφίων και 16x16 πολλαπλασιαστές θα καθορίζεται με βάση διάφορους παράγοντες. Αυτοί είναι: Η πολυπλοκότητα της σχεδίασης. Παράγοντες όπως το μέγεθος και ο αριθμός των λογικών πυλών του κυκλώματος μπορεί να αναγκάσουν τον σχεδιαστή να υιοθετήσει ένα συγκεκριμένο τρόπο σχεδίασης (Structural, Behavioral, Dataflow). Η ευελιξία της σχεδίασης. Αν το κύκλωμα μπορεί να περιγραφεί αλγοριθμικά ή με χρήση συναρτήσεων Boole, τότε το architecture body μπορεί να περιέχει περισσότερους από έναν τρόπο σχεδίασης. Η τεχνολογία σχεδίασης. Αν η σχεδίαση προορίζεται να υλοποιηθεί πάνω σε ένα, συγκεκριμένης τεχνολογίας, υλικό, τότε ο χρήστης θα πρέπει να κάνει χρήση προκατασκευασμένων στοιχείων (components) από βιβλιοθήκες. Τα χαρακτηριστικά του κυκλώματος. Αν το κύκλωμα πρέπει να απαρτίζεται από συγκεκριμένα στοιχεία, τότε είναι απαραίτητο ο σχεδιαστής να καταλήξει σε ένα δομημένο (structural) τρόπο σχεδίασης για την υλοποίησή του. Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 25

28 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Παρ όλο που είναι σημαντικό να λαμβάνουμε υπ όψιν όλους τους παραπάνω παράγοντες, πρέπει να σημειωθεί ότι τα συνδυαστικά κυκλώματα υλοποιούνται κατά κύριο λόγο με τον Dataflow τρόπο σχεδίασης. Σε επόμενο στάδιο, αυτά τα κυκλώματα ενώνονται μεταξύ τους, σε υψηλότερο επίπεδο, δομικά ) Λογικές πράξεις (Logical operators) Η VHDL υποστηρίζει λογικές πράξεις για τους βασικούς της τύπους. BIT, BOOLEAN αλλά και για τους μονοδιάστατους πίνακές της BIT_VECTOR. Τα αποτελέσματα των λογικών αυτών πράξεων είναι του ιδίου τύπου και μεγέθους με τους τελεστέους. Πράξεις μεταξύ τύπων διαφορετικού μεγέθους απαγορεύονται. Πίνακας 1.1 Λογικές πράξεις στη VHDL Operator Function Not Αντιστροφή And Και Nand Όχι και Or Ή Nor Ούτε Xor Αποκλειστικό Ή Xnor Αποκλειστικό Ούτε Η πράξη not έχει την μεγαλύτερη προτεραιότητα ενώ όλες οι άλλες λογικές πράξεις, έχουν την ίδια προτεραιότητα. Γι αυτό το λόγο όταν σε μία δήλωση υπάρχουν πολλές λογικές πράξεις, είναι καλό να χρησιμοποιούμε παρενθέσεις για να δηλώνουμε την προτεραιότητα της κάθε μίας. Η πράξη not, όμως δεν χρειάζεται παρένθεση. Ας δούμε μερικά παραδείγματα πράξεων με τελεστέους BIT ή BOOLEAN: C<= A nand B; C<= A and not B; D<= (A nand B) xor C; D<= A and B and C; D<= A and B and C; D<= A nand B nand C; D<= A and B or C; --Νόμιμη πράξη, δεν χρειάζεται παρένθεση. --Νόμιμη, το not B έχει την υψηλότερη προτεραιότητα. --Νόμιμη πράξη, με παρένθεση. --Νόμιμη, όχι παρένθεση διότι είναι ιδίου τύπου. --Νόμιμη, όχι παρένθεση διότι είναι ιδίου (non inverting) τύπου. --Παράνομη, διότι ιδίου (inverting) τύπου θέλει παρένθεση. --Παράνομη, διότι (mixed) τύπου θέλει παρένθεση. Όσον αφορά τώρα πράξεις μεταξύ τελεστέων ιδίου ή διαφορετικού μεγέθους: signal W,X : BIT_VECTOR(3 downto 0); signal Y : BIT; Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 26

29 Πτυχιακή Εργασία signal Z : BIT_VECTOR(4 downto 0). W <= X or Y ; -- Παράνομη πράξη διότι το X έχει μέγεθος πίνακα 4 ενώ το Y έχει μέγεθος 1 (BIT). Z <= W and X; -- Παράνομη πράξη όχι λόγω μεγέθους τελεστέων αλλά μεγέθους αποτελέσματος (W,X =4 & Z=5 bits). Z(3)<=Y xor W(1); -- Νόμιμη, διότι όλοι οι τελεστέοι αλλά και το αποτέλεσμα, είναι μεγέθους bit ) Σχεσιακές πράξεις (Relational operators). Οι σχεσιακές πράξεις ελέγχουν για ισότητα, ανισότητα και γενικά κάνουν συγκρίσεις μεταξύ τελεστέων. Όλες οι σχεσιακές πράξεις έχουν την ίδια προτεραιότητα και μεγαλύτερη από τις λογικές πράξεις. Το δε αποτέλεσμα είναι πάντα τύπου Boolean (True/False). Για παράδειγμα: A<= B>C; -- Το Α είναι True όταν το Β είναι μεγαλύτερο του C. F <= D=E nand (B=C); -- Το F είναι False αν το D = Ε και το Β = C. Πίνακας 1.2 Σχεσιακές πράξεις στην VHDL. Operator Function = Ισότητα /= Ανισότητα < Μικρότερο από <= Μικρότερο ή ίσο από > Μεγαλύτερο από >= Μεγαλύτερο ή ίσο από 1.9.4) Πολυπλέκτης 4 - σε - 1 (Multiplexer 4 - to - 1). Με το παράδειγμα του πολυπλέκτη 4 σε 1 θα παρουσιαστούν τα βασικότερα στοιχεία (constructs) της VHDL που χρησιμοποιούνται στη σχεδίαση κυκλωμάτων συνδυαστικής λογικής. Ο 4 σε 1 πολυπλέκτης θα σχεδιαστεί και με τους τρεις τρόπους αρχιτεκτονικής σχεδίασης (behavioral, structural, dataflow), αποδεικνύοντας την ευελιξία της γλώσσας. Τα παρακάτω βασικά σημεία της VHDL θα γίνουν ορατά με αυτό το παράδειγμα: Ονόματα και identifiers Παράλληλες δηλώσεις (Concurrent statements) Υπο όρους αναθέσεις σημάτων (Conditional signal assignments) Επιλεγμένες αναθέσεις σημάτων (Selected signal assignments) Δηλώσεις στοιχείων (Component instantiations) Σειριακές δηλώσεις (Sequential statements) Case If 1.9.5) Ακολουθιακή Λογική Σχεδίαση (Sequential Logic Design). Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 27

30 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Είναι γνωστό ότι στα ακολουθιακά κυκλώματα, η έξοδος δεν εξαρτάται μόνο από την παρούσα κατάσταση των εισόδων αλλά και από την προηγούμενη κατάσταση της εξόδου. Άρα τα ακολουθιακά κυκλώματα χαρακτηρίζονται από την χρονική τους εξάρτηση. Κάθε κύκλωμα με ρολόι (clock) είναι ακολουθιακό. Στην VHDL μπορούμε να περιγράψουμε σύγχρονα και ασύγχρονα ακολουθιακά κυκλώματα αλλά όχι με όλους τους τρόπους σχεδίασης. Ο dataflow τρόπος σχεδίασης περιγράφει, όπως έχουμε αναφέρει, την ροή δεδομένων σε συνεχή χρόνο και άρα δεν μπορεί να περιγράψει κυκλώματα εξαρτώμενα από τον χρόνο (ακολουθιακά). Ο δομημένος (structural) τρόπος σχεδίασης μπορεί να χρησιμοποιηθεί σε ακολουθιακά κυκλώματα, αλλά τα στοιχεία (components) που θα καλέσει πρέπει να προέρχονται από «έτοιμες» βιβλιοθήκες. Αυτό οφείλεται στο ότι οι κύριες μονάδες-στοιχεία των ακολουθιακών κυκλωμάτων τα flip flops και τα latches είναι δύσκολο να κατασκευαστούν δομικά, κατά συνέπεια ο σχεδιαστής θα τα πάρει από διάφορες βιβλιοθήκες (ή θα τα κατασκευάσει σε behavioral). Συνεπώς με τον δομημένο τρόπο σχεδίασης ακολουθιακών κυκλωμάτων περιορίζεται η ευελιξία της υλοποίησης. Αντίθετα με τον συμπεριφοριστικό (behavioral) τρόπο σχεδίασης είναι δυνατή η χρήση ειδικών constructs που έχει η VHDL. Αυτές οι ειδικές δηλώσεις τις VHDL έχουν και το τίμημά τους. Αν δεν γίνει απόλυτη περιγραφή (με αυτά τα constructs) των σημάτων του κυκλώματος, ο μεταγλωτιστής (compiler-synthesizer) θα υλοποιήσει μεν το κύκλωμα αλλά όπως αυτός νομίζει καλύτερα, περιορίζοντας πάλι τις δυνατότητες του σχεδιαστή ) Προτερήματα του δομημένου τρόπου σχεδίασης. Με τη χρήση του δομημένου τρόπου σχεδίασης, ο χρήστης επιλέγει τα στοιχεία που αυτός νομίζει ότι ανταποκρίνονται καλύτερα στη σχεδίασή του με τα ακόλουθα προτερήματα: Οι λειτουργίες των στοιχείων που θα χρησιμοποιηθούν και κυρίως των αποθηκευτικών στοιχείων είναι γνωστά στον χρήστη και δεν αφήνονται στην «διακριτική ευχέρεια» του synthesizer. Είναι γνωστός επίσης ο αριθμός των αποθηκευτικών στοιχείων που θα χρησιμοποιηθούν, ενώ με τον behavioral τρόπο σχεδίασης ο synthesizer είναι αυτός που τον καθορίζει. Τέλος ο χρήστης μπορεί από την αρχή να επιλέξει το «τεχνολογικό» πλαίσιο μέσα στο οποίο θα σχεδιάσει το κύκλωμά του. Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 28

31 Πτυχιακή Εργασία 1.9.7) Καταχωρητής Ολίσθησης 4ψηφίων (4- bit Shift Register). Ο καταχωρητής ολίσθησης είναι ένα παράδειγμα ακολουθιακού κυκλώματος με τον οποίο θα παρουσιάστούν τα βασικά στοιχεία (constructs) της VHDL πάνω στην υλοποίηση ακολουθιακών κυκλωμάτων. Τα θέματα που θα παρουσιαστούν: Ονόματα πινάκων Πράξεις πινάκων Παράλληλες δηλώσεις Process For Generate Σειριακές δηλώσεις If Wait 1.10 Μοντέλα Ελέγχου-Επαλήθευσης Έλεγχος μιας σχεδίασης γίνεται με μεθόδους προσομοίωσης Απαιτείται ο σχεδιασμός καθώς και μία μέθοδος τροφοδότησης ακολουθιών τιμών στις εισόδους του σχεδιασμού. Η καταγραφή των σημάτων εξόδων καθώς και η σύγκρισή τους με αναμενόμενες τιμές δίνει το αποτέλεσμα του ελέγχου Διαδικασία Εξομοίωσης Σχεδιασμού Βασικός λόγος δημιουργίας ενός μοντέλου σχεδιασμού είναι η εξομοίωση. Στάδια Εξομοίωσης Ανάλυση: Έλεγχος Συντακτικός - Εννοιολογικός Εκτέλεση: εξομοίωση του σχεδιασμού στον χρόνο Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 29

32 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Επεξεργασία (Elaboration): μετασχηματισμός σε μη ιεραρχικό σχεδιασμό (διασύνδεση primitives και processes) ) Εκτέλεση εξομοίωσης Εκτέλεση των διαδικασιών Προσομοίωση διακριτών γεγονότων (events) ο χρόνος εξελίσσεται με διακριτά βήματα (χρονικούς κύκλους) όταν η τιμή ενός σήματος αλλάζει τότε έχουμε την εμφάνιση ενός γεγονότος. Μια διαδικασία είναι ευαίσθητη σε γεγονότα των σημάτων εισόδου όπως αυτά προσδιορίζονται από τις καταχωρήσεις wait σε αυτά τα γεγονότα η διαδικασία επανακαλείται και προσδιορίζει νέες μελλοντικές τιμές για τα σήματα εξόδου ) Αλγόριθμος Εξομοίωσης Ι Φάση Αρχικοποίησης σε κάθε σήμα δίδεται η αρχική του τιμή το χρονόμετρο της προσομοίωσης τίθεται στην τιμή 0 για κάθε διαδικασία ενεργοποίηση εκτέλεση μέχρι να προκύψει καταχώρηση wait οπότε και η διαδικασία οδηγείται σε αναμονή (αναστολή εκτέλεσης) η εκτέλεση συνήθως περιλαμβάνει τη μελλοντική καταχώρηση τιμών σε σήματα (δηλ. προγραμματίζει για κάποιες μελλοντικές στιγμές την ύπαρξη κάποιων δραστηριοτήτων) Κύκλος προσομοίωσης εξέλιξη του χρόνου προσομοίωσης στον επόμενο χρονικό κύκλο όπου υπάρχει κάποια δραστηριότητα Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 30

33 Πτυχιακή Εργασία στον τρέχοντα χρονικό κύκλο ενημέρωση των τιμών των σημάτων ύπαρξη γεγονότος αν η νέα τιμή διαφέρει από την παλιά Για κάθε διαδικασία ευαίσθητη σε οποιοδήποτε γεγονός (ή της οποίας ο χρόνος αναμονής έχει λήξει) επανάκληση εκτέλεση μέχρι να προκύψει wait και εν συνεχεία αναμονή. Η προσομοίωση τελειώνει όταν δεν υπάρχουν άλλες προγραμματισμένες δραστηριότητες ΚΕΦΑΛΑΙΟ ΙΙ Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 31

34 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής ΛΕΙΤΟΥΡΓΙΑ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ Maxplus + II 2.1 Σχεδίαση Ψηφιακών Συστημάτων (ALTERA) 2.1.1) Συνοπτικό εγχειρίδιο χρήσης για το λογισμικό MAX+plusII Το λογισμικό ΜΑΧ+plusII της εταιρίας ALTERA αφορά τη σχεδίαση CAD για τα προϊόντα της, τα οποία είναι chip για χρήση ψηφιακού VLSI με δυνατότητες OTP (One Time Programmable), FLASH ή και power up download μέσω σειριακών EEPROM. Οι δυνατότητες του προγράμματος είναι πολλαπλές και αφορούν τη σχεδίαση ψηφιακών κυκλωμάτων όσο και την εξομοίωσή τους. Η σχεδίαση ψηφιακών κυκλωμάτων γίνεται με τρεις τρόπους: 1. Με την εισαγωγή σχηματικού (κυκλωματικού) διαγράμματος. 2. Με τη χρήση των γλωσσών AHDL, VHDL. 3. Με τη χρήση ενός πίνακα αλήθειας (ή διαγραμμάτων χρονισμού). Εδώ θα αναφερθούμε κυρίως στο δεύτερο τρόπο. Στην συνέχεια θα αναφερθούμε στον προσομοιωτή (simulator) λειτουργίας του chip και τέλος θα δοθεί Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 32

35 Πτυχιακή Εργασία ο τρόπος επιλογής του chip καθώς και του pin out ) Δημιουργία έργου (Project) Η δημιουργία έργου (Project) είναι απαραίτητη από το λογισμικό για να μπορεί κάθε φορά να κρατά όλες τις πληροφορίες του έργου σε ένα φάκελο του συστήματος αρχείων. Έτσι ορίζουμε σαν έργο παραδείγματος χάριν το όνομά μας και οι πληροφορίες του έργου αποθηκεύονται στον υποφάκελο max2work\car\το όνομά μας. Η εφαρμογή που θα επεξεργαστούμε είναι η εξομοίωση των φλας ενός αυτοκινήτου. Η θέση και το όνομα του φακέλου είναι στην επιλογή του σπουδαστή. Οι σειρά των εντολών είναι File Project Name. Εναλλακτικά μπορούμε εφόσον έχουμε εισάγει κάποιον κώδικα με κάποιο από τους παραπάνω τρόπους και το έχουμε αποθηκεύσει σε κάποιο φάκελο, τότε με τις εντολές File Project Set Project to current file μπορούμε να δώσουμε αυτόματα σαν όνομα στο Project, το όνομα του αρχείου μας. Εικόνα 2.1: Ονομασία έργου. Εικόνα 2.2: Επιλογή τοποθεσίας αποθήκευσης του έργου. Μόλις ονομαστεί το νέο έργο πρέπει να δημιουργηθεί ένα νέο αρχείο επεξεργασίας κειμένου. Ένας τρόπος για να γίνει αυτό είναι να επιλέγει File New. Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 33

36 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Εικόνα 2.3: Δημιουργία νέου έργου. Μετά επιλέγουμε αν θέλουμε να δημιουργήσουμε Graphic Editor File ή Sympol Editor File ή Text Editor File ή Waveform Editor File. Επιλέγουμε Text Editor File. Εικόνα 2.4: Επιλογή του είδους αρχείου (Text Editor file). Το αποτέλεσμα θα είναι να εμφανιστεί στην οθόνη ο επεξεργαστής κειμένου. Όπου σε αυτόν πληκτρολογούμε τον κώδικά μας. Στην συνέχεια επιλέγουμε File Project Set Project to current file. Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 34

37 Πτυχιακή Εργασία Εικόνα 2.5: Καθορισμός του έργου που θα επεξεργαστεί. Το αποθηκεύουμε με κατάληξη car.vhd. Το όνομα του νέου αρχείου θα πρέπει υποχρεωτικά να είναι ίδιο με το όνομα του έργου. Εικόνα 2.6: Αποθήκευση του κώδικα ) Μεταγλωττιστής (Compiler) Η διαδικασία μεταγλώττισης, προσομοίωσης και υλοποίησης της σχεδίασης είναι ίδια ανεξάρτητα από τον τρόπο εισαγωγής της σχεδίασης. Πριν γίνει Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 35

38 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής προσομοίωση της σχεδίασης, προκειμένου να ελεγχθεί αν αυτό λειτουργεί σύμφωνα με τις προδιαγραφές, είναι απαραίτητο να γίνει μεταγλώττιση. File Project Save & Check. Εικόνα 2.7:Αποθήκευση και έλεγχος του κώδικα. Πατάμε Ok. Εικόνα 2.8: Εμφάνιση των λαθών του ελέγχου. File Project Save & Compile. Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 36

39 Πτυχιακή Εργασία Εικόνα 2.9: Αποθήκευση και μεταγλώττιση του κώδικα. Πατάμε Ok. Εικόνα 2.10: Εμφάνιση λαθών κατά την μεταγλώττιση. Σκοπός του μεταφραστή (compiler) είναι η δημιουργία μίας λογικής έκφρασης για κάθε λογική συνάρτηση του κυκλώματος από τα εργαλεία αρχικής σύνθεσης (ini- Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 37

40 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής tial synthesis tools). Τα εργαλεία σύνθεσης ελέγχονται από τον compiler και είναι τα ακόλουθα : 1. Compiler Netlist Extractor (Εξαγωγέας των στοιχείων κυκλώματος του μεταφραστή). 2. Database Builder (Κατασκευή βάσης δεδομένων για την εύκολη προσπέλαση των εργαλείων). 3. Functional SNF Extractor (Δημιουργία αρχείου για την χρήση του κυκλώματος προσομοίωσης simulator netlist file, SNF) 4. Logic Synthesizer (Χρησιμοποιεί τη βάση δεδομένων που έχει δημιουργηθεί από τον Database builder για να υπολογίσει τις εξισώσεις Boolean για κάθε είσοδο σε ένα αρχικό τύπο και ελαχιστοποιεί την λογική σύμφωνα με τις προδιαγραφές μας). 5. Fitter (Χρησιμοποιεί τη βάση δεδομένων και ταιριάζει τις λογικές απαιτήσεις σε λογική του project με τις δυνατότητες ενός ή περισσοτέρων chip. Αντιστοιχεί κάθε λογική συνάρτηση στο καλύτερο για την περίπτωση logic cell και επιλέγει τα κατάλληλα μονοπάτια ενδοδιασύνδεσης καθώς και την αντιστοιχία των pin). 6. Assembler (Η μονάδα εκείνη του compiler που δημιουργεί τα κατάλληλα αρχεία για των προγραμματισμό των chip). Η μετάφραση ξεκινά και ανάλογα με το μέγεθος του project και την επεξεργαστική μας ισχύ ποικίλει ο χρόνος ολοκλήρωσης. Όταν ολοκληρωθεί η διαδικασία πρέπει να εμφανιστεί ένα παράθυρο που να δείχνει μηδέν errors και warnings. Διαφορετικά ενεργοποιείται το παράθυρο του Επεξεργαστή μηνυμάτων (Message Processor) το οποίο μας δίνει αναλυτικά τις αιτίες που οφείλεται το κάθε μήνυμα. Για την λειτουργική επαναμεταγλώττιση επιλέγεται Processing Functional SNF Extractor. Το παράθυρο μεταγλώττισης θα αλλάξει και θα περιέχει μόνο τις τρεις βαθμίδες που απαιτούνται σε αυτό το σημείο. Εικόνα 2.11: Ένδειξη της λειτουργικής επαναμεταγλώττισης. Πατάμε Start. Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 38

41 Πτυχιακή Εργασία Εικόνα 2.12: Εμφάνιση των λαθών της λειτουργικής επαναμεταγλώττισης ) Επεξεργαστής κυματομορφών (Waveform Editor) Το παράθυρο του επεξεργαστή κυματομορφών ενεργοποιείται με File New. Επιλέγουμε το Waveform Editor. Τα αρχεία του είναι της μορφής *.scf και για την αποθήκευση η ανάκτηση του αρχείου ισχύουν όσα έχουμε αναφέρει για τους άλλους επεξεργαστές. Είναι απαραίτητο να σώσουμε το αρχείο με την κατάληξη*.scf διαφορετικά δεν θα μπορέσουμε να εκτελέσουμε προσομοίωση διότι ο προσομοιωτής δεν θα γνωρίζει από πού να πάρει εισόδους (input vectors). Τα αρχεία του έχουν σαν σκοπό την αποθήκευση κυματομορφών που πρόκειται να χρησιμοποιηθούν για την εκτέλεση προσομοίωσης. Επιλέγουμε Node Enter Nodes from SNF και ανοίγει ένα παράθυρο που στη συνέχεια με την επιλογή List εμφανίζονται τα ονόματα των κόμβων του τρέχοντος έργου στο ορθογώνιο του παραθύρου που φέρει το όνομα Available Nodes & Groups. Επιλέγουμε με το ποντίκι τον κάθε κόμβο που θα χρησιμοποιήσουμε στη εξομοίωση και στη συνέχεια τον μεταφέρουμε στο ορθογώνιο πεδίο Selected Nodes & Groups πατώντας => κάθε φορά. Τέλος πατώντας Οk επιστρέφουμε στον επεξεργαστή κυματομορφών. Εναλλακτικά μπορούμε με ανοιγμένο το παράθυρο του επεξεργαστή κυματομορφών να κάνουμε διπλό κλικ στο αριστερό σημείο του παραθύρου στο πλαίσιο κάτω από το Name τότε ανοίγει το ίδιο παράθυρο (Edit Node) με την προηγούμενη μέθοδο. Πρέπει να σημειώσουμε ότι σε κάθε περίπτωση για να έχουμε ενεργοποιημένη την επιλογή List πρέπει να έχουμε εκτελέσει compilation πρώτα έτσι ώστε να έχουν δημιουργηθεί τα κατάλληλα αρχεία. Για την επιλογή του συνολικού χρόνου προσομοίωσης επιλέγουμε File End Time και στο ορθογώνιο Time γράφουμε την επιθυμητή τιμή. Σαν επόμενο βήμα είναι να εισάγουμε στον επεξεργαστή κυματομορφών (Waveform Editor) τις διάφορες τιμές Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 39

42 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής (καταστάσεις) που θα παίρνουν οι είσοδοι στο κύκλωμα που έχουμε σχεδιάσει έτσι ώστε μετά την εκτέλεση της λειτουργίας compilation να πάρουμε τις αντίστοιχες εξόδους. Αυτό γίνεται με επιλογή (κλικ) του ποντικιού πάνω στον επιθυμητό κόμβο και στη συνέχεια επιλογή της κατάστασης (1,0, ρολόι) με τη βοήθεια των εικονιδίων που βρίσκονται στην αριστερή πλευρά του παραθύρου. Στο τέλος Εικόνα 2.13: Δημιουργία νέου επεξεργαστή κυματομορφών. Εικόνα 2.14: Επιλογή του είδους αρχείου (Waveform Editor file). Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 40

43 Πτυχιακή Εργασία Εικόνα 2.15: Αποθήκευση του αρχείου επεξεργαστή κυματομορφών. Εικόνα 2.16: Επιλογή για την εισαγωγή των εισόδων και εξόδων του κυκλώματος. Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 41

44 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Εικόνα 2.17: Παράθυρο επιλογής των εισόδων και εξόδων. Εικόνα 2.18: Εμφάνιση του παραθύρου για την εισαγωγή των εισόδων και των εξόδων. Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 42

45 Πτυχιακή Εργασία Ακολουθεί η προσαρμογή των επιλογών οθόνης του επεξεργαστή κυματομορφών, όπως μέγεθος πλέγματος. Κατά την δημιουργία διαγραμμάτων των κυματομορφών είναι χρήσιμο να ενεργοποιηθεί, αν δεν είναι ήδη ενεργοποιημένος ο ενδείκτης πλέγματος (Grid Size). Το μέγεθος του πλέγματος μπορεί επίσης να προσαρμοστεί. Επιλέγεται Options Grid Size. Εισάγεται το μέγεθος πλέγματος, για παράδειγμα 7.5 ns και επιλέγεται Ok. Εικόνα 2.19: Επιλογή του δείκτη πλέγματος από το μενού επιλογών. Εικόνα 2.20: Εισαγωγή του μεγέθους του δείκτη πλέγματος. Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 43

46 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Εικόνα 2.21: Καθορισμός των παλμών για τις εισόδους ) Εκτέλεση προσομοίωσης (Simulation) Για να ενεργοποιήσουμε τη προσομοίωση επιλέγουμε File Project Save & Simulate ή εναλλακτικά μπορούμε να επιλέξουμε το αντίστοιχο εικονίδιο των εφαρμογών. Στην συνέχεια κάνουμε κλικ στο Start και η εξομοίωση ξεκινά. Εάν έχουμε η όχι errors και warnings θα μας πληροφορήσει ο message processor. Στην περίπτωση που όλα είναι κανονικά (Οk) τότε εκτελούμε διπλό κλικ στο Open SCF και ο επεξεργαστής κυματομορφών (Waveform Editor) ανοίγει εμφανίζοντας κυματομορφές στις εξόδους σύμφωνα με τα αποτελέσματα της προσομοίωσης (Simulation). Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 44

47 Πτυχιακή Εργασία Εικόνα 2.22: Αποθήκευση και προσομοίωση του επεξεργαστή κυματομορφών. Εικόνα 2.23: Εμφάνιση λαθών κατά την προσομοίωση. Εικόνα 2.24: Εμφάνιση αποτελεσμάτων της προσομοίωσης. Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 45

48 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής 2.1.6) Επιλογή προγραμματιζόμενης λογικής συσκευής Altera για υλοποίηση. Προτού ο χρήστης συνεχίσει με την αντιστοίχηση ακίδων δια μέσου του επεξεργαστή κατόψεων, είναι καλό να γίνει μεταγλώττιση του κώδικα χωρίς να επιλεγεί καμία συσκευή ή να γίνει οποιαδήποτε κατανομή των φυσικών πόρων της συσκευής. Ανοίγεται ο μεταγλωττιστής και γίνεται έλεγχος ότι το παράθυρό του παρουσιάζει έξι πλήρη στάδια μεταγλώττισης. Εάν το παράθυρο του μεταγλωττιστή παρουσιάζει ακόμα μόνο τρία στάδια μεταγλώττισης, όπως χρησιμοποιήθηκαν όταν μεταγλωττίστηκε ο κώδικας πριν την λειτουργική του προσομοίωση, επιλέγεται Processing Functional SNF Extractor για να απενεργοποιηθεί αυτή την φορά. Εικόνα 2.25: Απενεργοποίηση της λειτουργικής επαναμεταγλώττιση (Functional SNF Extractor). Αφού εμφανιστούν τα έξι στάδια μεταγλώττισης πατάμε Start για να αρχίσει η μεταγλώττιση. Εικόνα 2.26: Εμφάνιση του παραθύρου επαναμεταγλώττιση. Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 46

49 Πτυχιακή Εργασία Εικόνα 2.27: Εμφάνιση αποτελεσμάτων της μεταγώττισης. Το επόμενο βήμα είναι να κάνουμε επιλογή κάποιας οικογένειας της προγραμματιζόμενης συσκευής Altera chip FLEX10K, όπου μπορεί να γίνει με δύο τρόπους. Ο πρώτος είναι να αφήσουμε την επιλογή στην εφαρμογή του fitter (AUTO), ενώ ο δεύτερος να προσδιορίσουμε ένα συγκεκριμένο chip, για παράδειγμα FLEX EPF10K10TC144-3 και στην συνέχεια να αφήσουμε τον fitter να προσπαθήσει να υλοποιήσει τις λογικές συναρτήσεις για το συγκεκριμένο chip με βάση τις δυνατότητές του. Στην περίπτωση που η υλοποίηση «χωράει» στο συγκεκριμένο chip που έχει επιλεγεί τότε ο επεξεργαστής μηνυμάτων θα δώσει 0 errors και 0 warnings, διαφορετικά η υλοποίηση θα αποτύχει και ο σχεδιαστής θα πρέπει να επιλέξει ένα άλλο, «μεγαλύτερο» chip για υλοποίηση. Και για τις δύο περιπτώσεις επιλέγουμε Assign Device. Στην επιλογή device family: διαλέγουμε την οικογένεια που θέλουμε να χρησιμοποιήσουμε, στην προκειμένη περίπτωση FLEX10K. Ενώ στην επιλογή Devices: εάν επιλέξουμε AUTO τότε η επιλογή του chip γίνεται με βάση την οικογένεια που έχουμε ήδη επιλέξει και με τις απολύτως απαιτούμενες δυνατότητες για την σωστή υλοποίηση της συνάρτησης επομένως και το ελάχιστο κόστος chip. Διαφορετικά κάνουμε κλικ στο συγκεκριμένο chip που μας ενδιαφέρει (EPF10K10TC144-3). Μετά φυσικά εκτελούμε compilation (και για τις δύο περιπτώσεις) έτσι ώστε να παραχθούν τα αρχεία για την υλοποίηση. Εικόνα 2.28: Επιλογή για την εισαγωγή της συσκευής από το μενού επιλογών. Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 47

50 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Εικόνα 2.29: Επιλογή της οικογένειας της προγραμματιζόμενης λογικής συσκευής Altera που θα χρησιμοποιηθεί. Μετά την επιλογή της συσκευής πατάμε Ok. Εικόνα 2.30: Επιλογή της συσκευής. Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 48

51 Πτυχιακή Εργασία 2.1.7) Επιλογή ακίδων στην προγραμματιζόμενη λογική συσκευή Altera. Μπορούμε να επιλέξουμε τον αριθμό των ακίδων (pin) για κάποιο κόμβο της σχεδίασης μας (πχ κάποιες είσοδοι, έξοδοι, ρολόγια κτλ) με δύο τρόπους. Ο πρώτος είναι με την επιλογή Assign Pin/Location/Chip. Εικόνα 2.31: Επιλογή για την εισαγωγή των ακίδων από το μενού επιλογών. Στο παραπάνω παράθυρο επιλέγουμε το όνομα του κόμβου (Node Name) είτε γράφοντας απευθείας στο αντίστοιχο πεδίο, είτε πατώντας πρώτα Search, μετά List και επιλέγοντας από την ήδη υπάρχουσα λίστα πατάμε Ok. Στην συνέχεια από τις επιλογές chip resource διαλέγουμε το Pin όπου και επιλέγουμε τον αριθμό του ακροδέκτη που θέλουμε να συνδεθεί με τον αντίστοιχο κόμβο και πατάμε Add (εμφανίζεται στο Existing/pin/Location/Assignments:). Εκτελείται η ίδια διαδικασία για όλες τις μεταβλητές που έχουμε. Η επιλογή Anywhere on this chip δεν πρέπει να είναι ενεργή. Ακολουθείται ένα παράδειγμα της παραπάνω διαδικασίας με την μεταβλητή clock (CLK). Εικόνα 2.32: Απεικόνιση του τρόπου επιλογής ακίδας μιας εισόδου. Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 49

52 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Το pin που επιλέγεται για την συσκευή αυτή είναι πάντα το 55. Εικόνα 2.33: Εμφάνιση του παραθύρου μετά την επιλογή της ακίδας. Μετά φυσικά εκτελούμε compilation έτσι ώστε να παραχθούν τα αρχεία για την υλοποίηση. Ο δεύτερος τρόπος είναι με την εμφάνιση της κάτοψης του chip (Floorplan Editor). Ο επεξεργαστής κατόψεων (Floorplan Editor) είναι το εργαλείο με το οποίο γίνεται η επιλογή των προγραμματιζόμενων συσκευών και η αντιστοίχηση των εισόδων και εξόδων στις φυσικές ακίδες της συσκευής. Η εμφάνιση της κάτοψης μπορεί να γίνει επιλέγοντας Max+plusII Floorplan Editor. Εδώ με το μενού Layout μπορούμε, είτε να εμφανίσουμε τις μακροκυψέλες (επιλέγοντας Layout LAB View), είτε να εμφανίσουμε την εικόνα των ακροδεκτών της συσκευασίας του ολοκληρωμένου κυκλώματος (επιλέγοντας Layout Device View). Σημειώνουμε ότι ο επεξεργαστής κατόψεων δεν παίζει κανένα δυναμικό ρόλο στη σχεδίαση. Ο σκοπός είναι να πληροφορήσει το σχεδιαστή μόνο. Εικόνα 2.34: Επιλογή του Floorpan Editor από το μενού επιλγών. Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 50

53 Πτυχιακή Εργασία Εικόνα 2.35: Απεικόνιση του επεξεργαστή κατόψεων. Αν και η εικόνα στον επεξεργαστή κατόψεων εμφανίζεται αρχικά αρκετά περίπλοκη, στην πραγματικότητα παρουσιάζει ένα χάρτη των φυσικών πόρων της συσκευής. Από το παραπάνω σχήμα μπορεί να φανεί ότι μόνο ένα μικρό ποσοστό των πόρων της συσκευής έχει χρησιμοποιηθεί από το κύκλωμα. Ο χρήστης ενδιαφέρεται περισσότερο για την αντιστοίχηση των ακίδων, που φαίνονται ως μικρά τετράγωνα κατά μήκος, οριζόντια και κάθετα, των πλευρών του χάρτη της συσκευής. Για να παρθεί μια σαφέστερη εικόνα χωρίς τις επιπρόσθετες περιπλοκές της εσωτερικής δομής της συσκευής, επιλέγεται Layout Device View. Εικόνα 2.36: Τρόπος επιλογής της απεικόνισης του επεξεργαστή κατόψεων. Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 51

54 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Η προκύπτουσα οθόνη φαίνεται στο παρακάτω σχήμα. Αυτό που φαίνεται τώρα είναι μια μορφή παράστασης της συσκευής γύρω από την οποία φαίνονται όπως έχουν στην πραγματικότητα τοποθετηθεί οι είσοδοι και οι έξοδοι της σχεδίασης. Για να φανεί η εικόνα με το σύνολο των ακίδων της συσκευής, χρησιμοποιούνται οι κυλιόμενες μπάρες. Το "zoom in" και το "zoom out" μπορούν επίσης να χρησιμοποιηθούν στη τακτοποίηση της οθόνης στο παράθυρο. Παρατηρείται ότι οι ακίδες χρώματος λευκού δεν είναι ορισμένες και εκείνες χρώματος μαύρου εκτελούν τις ειδικές λειτουργίες και δεν μπορούν να οριστούν. Οι χρωματιστές ακίδες είναι εκείνες που χρησιμοποιούνται από το κύκλωμα. Εικόνα 2.37: Διαφορετική απεικόνιση του επεξεργαστή κατόψεων για ευκολότερη χρήση επιλογής των ακίδων. Κατά τη μεταγλώττιση του σχεδίου, στο MAX+PLUS ΙΙ έχουν αντιστοιχηθεί αυτόματα οι ακίδες της συσκευής στις εισόδους και εξόδους του κυκλώματος. Όμως, η προγραμματιζόμενη συσκευή EPF10K10TC144-3, που χρησιμοποιείται στην εκπαιδευτική συσκευή, έχει τις ακίδες της συνδεδεμένες μόνιμα σε μια σειρά διαφορετικών κυκλωμάτων εισόδου και εξόδου, προκειμένου να γίνει ο έλεγχος καλής λειτουργίας των υπό σχεδίαση κυκλωμάτων, τις οποίες το MAX+PLUS ΙΙ φυσικά δεν μπορεί να γνωρίζει. Είναι, επομένως, απαραίτητο να γίνει ορθή αντιστοίχηση, με το χέρι, των εισόδων και εξόδων του κυκλώματος στις ακίδες της συσκευής. Ο πίνακας δίνει την πρέπουσα αντιστοίχηση ακίδων για αυτό το παράδειγμα. Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 52

55 Πτυχιακή Εργασία Πίνακας 2.1: Ανάθεση ακίδων για τον κώδικα "car" Τύπος κόμβου Κόμβος Αριθμός ακίδας Συσκευή Είσοδοι CLK 55 OSC CLR 49 Διακόπτες Πίεσης X1 47 Διακόπτες Πίεσης X2 48 Διακόπτες Πίεσης Έξοδοι L1 7 Κόκκινο Ζάρι L2 8 Κόκκινο Ζάρι L3 9 Κόκκινο Ζάρι R3 14 Πράσινο Ζάρι R2 17 Πράσινο Ζάρι R1 18 Πράσινο Ζάρι LED_COM 142 LED_COM Για να αντιστοιχηθούν με το χέρι οι ακίδες στις εισόδους και εξόδους του κυκλώματος σύμφωνα με το πίνακα, επιλέγεται αρχικά Layout Current Assignments Floorplan. Εικόνα 2.38: Εμφάνιση του τρόπου επιλογής των ακίδων με το χέρι. Παρατηρείται ότι οι ακίδες στο "device view" πλέον δεν ορίζονται και ότι οι είσοδοι και οι έξοδοι του κυκλώματος παρατίθενται στα κουτιά χαρακτηρισμένες ως "Unassigned Nodes & Pins" Για να αντιστοιχηθεί μια είσοδος ή μια έξοδος σε μία ακίδα, επιλέγεται το σύμβολο κόμβων στα αριστερά του ονόματος της ακίδας μέσα στους μη ορισμένους κόμβους και στα κουτιά ακίδων, σύρεται αυτό στην επιθυμητή ακίδα και απελευθερώνεται τελικά το κουμπί του ποντικιού. Αυτή η διαδικασία εμφανίζεται στην παρακάτω εικόνα, όπου η έξοδος "L1" αντιστοιχείται στην ακίδα 7. Με τον ίδιο τρόπο αντιστοιχούνται οι υπόλοιπες έξοδοι. Στη συνέχεια, αντιστοιχείται το "LED_COM" στην ακίδα 142. Τέλος, γίνεται επανατοποθέτηση του σχεδιαγράμματος συσκευών για να φανεί η κατώτατη άκρη, εάν είναι απαραίτητο, Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 53

56 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής και αντιστοιχείται η είσοδος "CLK" στην ακίδα 55, η είσοδος "CLR" στην ακίδα 49, η είσοδος Χ1 στην 47 και τέλος η Χ2 στην 48. Εικόνα 2.39: Απεικόνιση των ακίδων στον επεξεργαστή κυματομορφών. Τώρα που έχουν αντιστοιχηθεί οι είσοδοι και οι έξοδοι του κυκλώματος στις πρέπουσες φυσικές ακίδες της συσκευής EPF10K10TC144-3, μπορεί να πραγματοποιηθεί μια τελική επαναμεταγλώττιση πριν από τη φόρτωση του κυκλώματος στη συσκευή. Οι επιλογές των ακίδων (pin) φαίνονται αναλυτικά στο Παράρτημα ΙΙ ) Μεταγλώττιση Σχεδίου Στο σημείο αυτό είναι απαραίτητο να γίνει ολική επαναμεταγλώττιση του κυκλώματος για να ληφθεί υπόψη η νέα αντιστοίχηση ακίδων. Ανοίγεται το παράθυρο του μεταγλωττιστή και εξασφαλίζεται ότι παρουσιάζονται και τα έξι στάδια. Επιλέγεται Processing Total Recompile, και στη συνέχεια Start για την τελική μεταγλώττιση του κυκλώματος. Εικόνα 2.40: Επιλογή της ολικής επαναμεταγλώττισης από το μενού επιλογών. Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 54

57 Πτυχιακή Εργασία 2.1.9) Φόρτωση και Έλεγχος Τώρα μπορεί να φορτωθεί το κύκλωμα στη συσκευή EPF10K10TC Πρέπει να εξασφαλιστεί ότι η εκπαιδευτική συσκευή συνδέεται με τη παράλληλη πόρτα του υπολογιστή και την τροφοδοσία και ότι είναι ανοιχτή. Επιλέγοντας MAX+PLUS ΙΙ Programmer, ανοίγει το παράθυρο προγραμματιστή. Ο προγραμματιστής θα χρησιμοποιηθεί για να φορτώσει το κύκλωμα στη συσκευή EPF10K10TC144-3 υπό μορφή δυαδικού αρχείου με το όνομα "a SRAM Object File" (SOF). Σημειώνεται ότι το όνομα αρχείων είναι "car.sof" σύμφωνα με το όνομα της εφαρμογής και ότι η συσκευή είναι η EPF10K10TC Επιλέγουμε το FLEX Multi Device FLEX Chain Setup Εικόνα 2.41: Επιλογη του Multi - Device FLEX Chain Setup από το μενού επιλογών. Στο παράθυρο που θα ανοίξει, διαλέγουμε το αρχείο με τη κατάληξη *.sof και πατάμε Add και μετά Ok. Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 55

58 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Εικόνα 2.42: Επιλογή του αρχείου που χρησιμοποιείται, *.sof. Στη συνέχεια επιλέγουμε JTAG Multi- Device JTAG Chain Setup Εικόνα 2.43: Επιλογη του Multi - Device JTAG Chain Setup από το μενού επιλογών. Στο παράθυρο που θα ανοίξει πατάμε την επιλογή Select Programming File και στη συνέχεια διαλέγουμε το αρχείο με τη κατάληξη *.sof και πατάμε Ok. Εικόνα 2.44: Επιλογή του αρχείου που χρησιμοποιείται, *.sof. Τέλος πατάμε Add και μετά Ok. Στη περίπτωση που υπάρχει κάποιο άλλο αρχείο φορτωμένο από προηγούμενη εργασία, το επιλέγουμε, πατάμε Delete και συνεχίζουμε με τα παραπάνω βήματα. Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 56

59 Πτυχιακή Εργασία Εικόνα 2.45: Εμφάνιση της διαδικασίας επιλογής του αρχείου. Για να αρχίσει η φόρτωση του αρχείου διαμόρφωσης, επιλέγεται Configure. Τα LED I/O που περιβάλλουν τη κάρτα ολοκληρωμένων θα ανάψουν για λίγο κατά τον προγραμματισμό της συσκευής. Όταν όμως ολοκληρωθεί ο προγραμματισμός τα περισσότερα θα σβήσουν. Εικόνα 2.46: Επιλογή του configure για τη φόρτωση του προγράμματος στην προγραμματιζόμενη λογική συσκευή της Altera. Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 57

60 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Για να γίνει ο έλεγχος καλής λειτουργίας του κώδικα, πατάμε τον διακόπτη SW1 και παρατηρείται ότι ανάβουν τα LED L1 έως L3 σταδιακά. Το ίδιο συμβαίνει και όταν πατηθεί ο διακόπτης SW2, αλλά ανάβουν τα LED R3 έως R1 σταδιακά. Και τέλος όταν πατηθούν ταυτόχρονα και οι δυο διακόπτες SW1 και SW2 θα ενεργοποιούνται όλα τα LED ταυτόχρονα, όπου θα αναβοσβήνουν. Επομένως διαπιστώνουμε ότι ο κώδικάς μας λειτουργεί σωστά. 2.2 Εφαρμογές Όλες οι διαδικασίες που προαναφέρθηκαν μπορούν να υλοποιηθούν και από το Μενού Επιλογών Max + plusii 1. Hierarchy Display (Ενδείκτης ιεραρχίας Δομή του Project top down design). 2. Graphic Editor (Εισαγωγή Γραφικής παράστασης κυκλωματικού διαγράμματος). 3. Symbol Editor (Επεξεργαστής συμβόλων). 4. Text Editor (Επεξεργαστής κειμένου για γλώσσα VHDL κτλ). 5. Waveform Editor (Επεξεργαστής κυματομορφών για εισαγωγή στοιχείων κυματομορφών στον εξομοιωτή). 6. Floorplan Editor (Επεξεργαστής κατόψεων εμφάνιση των χρησιμοποιούμενων ή όχι, logic array blocks, LAB που αντιστοιχούν στο chip). 7. Compiler (Μεταγλωττιστής). 8. Simulator (Προσομοιωτής λειτουργίας έξοδος κυματομορφών 9. Timing Analyzer (Αναλυτής χρονισμού Πίνακας καθυστερήσεων). 10. Programmer (Προγραμματιστής download στο chip). 11. Message processor (Επεξεργαστής μηνυμάτων πχ. από compiler κτλ). Εικόνα 2.47: Εμφάνιση του μενού επιλογών του MAX+plus II. Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 58

61 Πτυχιακή Εργασία 2.3 Εισαγωγή σχεδίου με σχηματικό διάγραμμα (Graphic Editor) Στο παράθυρο διαχείρισης επιλέγουμε MAX+plusII Graphic Editor. Στη συνέχεια ανοίγει το παράθυρο της εφαρμογής το οποίο πρέπει να πάρει κάποιο όνομα με κατάληξη *.gdf. Για το λόγο αυτό επιλέγουμε File Save As και το όνομα του φακέλου που επιλέξαμε για το Project που έχει ήδη επιλεγεί. Ο επεξεργαστής γραφικών παραστάσεων θα δημιουργήσει ένα ξεχωριστό αρχείο για το σχηματικό διάγραμμα και θα το αποθηκεύσει στο φάκελο του έργου σε μορφή *.gdf (graphic design file). Στο ορθογώνιο που επιγράφεται File Name γράφουμε το όνομα του αρχείου που πρέπει όμως να είναι ίδιο με το όνομα του έργου. Στην περίπτωση που κλείσουμε όλη την εφαρμογή και την ενεργοποιήσουμε πάλι, το όνομα του τελευταίου project δεν ανοίγει αυτόματα και τον αντίστοιχο τύπο αρχείου (ανοίγει το τελευταίο project). Για το λόγο αυτό επιλέγουμε File open και τον τύπο του αρχείου που υπάρχει στην επιλογή bullet ανάλογα με το τύπο του επεξεργαστή (πχ. gdf, sym, scf, txt κτλ). Η παραπάνω λογική ισχύει για την ενεργοποίηση κάθε επεξεργαστή και για αυτό δεν θα αναφερθεί ξανά στο κείμενο ) Εισαγωγή λογικών συμβόλων Ο επεξεργαστής γραφικών μπορεί να περιέχει αρκετές βιβλιοθήκες, οι οποίες περιέχουν στοιχεία κυκλωμάτων που μπορούν να εισαχθούν στο σχηματικό μας διάγραμμα. Οι βασικότερες είναι οι ακόλουθες : 1. Prim (primitives): Περιέχει, βασικές πύλες (διαφόρων εισόδων), διάφορα στοιχεία που αφορούν Vcc ή gnd, εισόδους και εξόδους δεδομένων και ρολογιών για τη γραφική απεικόνιση στον εξομοιωτή και διάφορα άλλα. 2. mf (mega functions): Περιέχει ένα μεγάλο αριθμό λογικών ολοκληρωμένων LSI που βρίσκουμε στο εμπόριο (πχ 7400, κτλ) 3.mega_lpm: Αναφέρεται σε πιο απαιτητικούς χρήστες και περιέχει στοιχεία συγκεκριμένων κατηγοριών (πχ μετρητές, μνήμες, fifo κτλ), των οποίων όμως τα χαρακτηριστικά (δυνατότητες πχ όπως μήκος μετρητή, modulo set, reset κτλ) ελέγχονται μέσα από ειδικό παράθυρο που ανοίγει στο χρήστη αυτόματα η εφαρμογή (με διπλό κλικ του ποντικιού πάνω στο αντικείμενο). 4. edif: Ανάλογη με τη βιβλιοθήκη mf. Για την προσπέλαση σε κάθε μία από τις βιβλιοθήκες με σκοπό την εισαγωγή κάποιου συμβόλου (υλικού) αρκεί ένα διπλό κλικ στο ποντίκι στον κενό χώρο στο παράθυρο του επεξεργαστή γραφικών ή εναλλακτικά εφόσον έχουμε επιλέξει τη θέση του συμβόλου πάνω στην επιφάνεια εργασίας με δεξί κλικ επιλέγουμε Enter symbol. Το ορθογώνιο παράθυρο που εμφανίζεται περιέχει τις symbol libraries. Επιλέγοντας την αντίστοιχη βιβλιοθήκη εμφανίζεται αυτόματα ένα κατάλογος από τα σύμβολα που την αποτελούν. Εάν για παράδειγμα, θέλουμε μία πύλη OR 2εισόδων, τότε επιλέγουμε prim και στη συνέχεια or2 και τέλος ΟΚ. Στην συνέχεια για την τοποθέτηση συμβόλων εισόδου - εξόδου, τα οποία είναι απαραίτητα για τη λειτουργία του εξομοιωτή αλλά και είναι τα φυσικά σημεία σύνδεσης του chip με το περιβάλλον (pins), επιλέγουμε τη βιβλιοθήκη prim και input ή output αντίστοιχα. Επόμενο στάδιο είναι να δώσουμε ονόματα στα σύμβολα εισόδου εξόδου. Αυτό γίνεται με την τοποθέτηση του ποντικιού στη θέση PIN_NAME και διπλό κλικ. Στη συνέχεια γράφουμε το όνομα που επιθυμούμε. Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 59

62 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Τελευταίο στάδιο είναι η σύνδεση των κόμβων με καλώδια. Αυτό γίνεται πολύ απλά, για παράδειγμα όταν πρόκειται για τη σύνδεση δύο συμβόλων τοποθετούμε το βέλος του ποντικιού στο επιθυμητό άκρο του ενός συμβόλου, πατάμε το αριστερό πλήκτρο του ποντικιού και κρατώντας το πατημένο το μεταφέρουμε μέχρι το επιθυμητό άκρο του δεύτερου συμβόλου όπου και το αφήνουμε. Τα δύο σύμβολα έχουν ενωθεί ηλεκτρικά μεταξύ τους. Στη συνέχεια και εφόσον δεν έχουμε αφήσει κανένα σημείο συμβόλου ασύνδετο μπορούμε να προχωρήσουμε στο μεταφραστή (compiler). Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 60

63 Πτυχιακή Εργασία ΚΕΦΑΛΑΙΟ ΙΙΙ ΕΦΑΡΜΟΓΕΣ ΣΧΕΔΙΑΣΗΣ Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 61

64 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Εφαρμογή 1: Κύκλωμα Ελέγχου Σημάτων Αυτοκινήτου Να σχεδιαστεί ένα ψηφιακό σύστημα ελέγχου, που θα ενεργοποιεί τους λαμπτήρες των φλας ενός αυτοκινήτου. Θα υπάρχουν αντίστοιχα τρεις διαφορετικοί λαμπτήρες για δεξιά και τρεις για αριστερά, οι οποίοι θα ανάβουν σταδιακά ο ένας μετά τον άλλον για κάθε πλευρά όταν πατηθεί ο αντίστοιχος διακόπτης (αριστερά - δεξιά). Επίσης θα αναβοσβήνουν όλα μαζί όταν θα πατηθούν ταυτόχρονα και οι δύο διακόπτες για την ένδειξη alarm. Διαδικασία Σχεδίασης: Από την εκφώνηση συμπεραίνεται ότι θα έχουμε έξι λαμπτήρες συνολικά για την υλοποίηση της άσκησης. Θα υπάρχουν τρεις από την αριστερή και τρεις από την δεξιά πλευρά, όπως απεικονίζεται παρακάτω (Σχήμα 3.1.1). L1 L2 L3 R3 R2 R1 Σχήμα 3.1.1: Απεικόνιση των φαναριών του αυτοκινήτου. Για την κατανόηση του συστήματος πρέπει να καθορίσουμε τις εισόδους. Οι διακόπτες που θα έχουμε είναι οι Χ 1 και Χ 2 με τους οποίους θα τεθούν σε λειτουργία τα φλας του αυτοκινήτου. Στη συνέχεια αναλύουμε τις περιπτώσεις των δύο διακοπτών: Όταν οι διακόπτες Χ 1 και Χ 2 έχουν ταυτόχρονα την τιμή 0 (Χ 1 Χ 2 =00) τότε οι λαμπτήρες θα είναι σβηστοί, θα είναι δηλαδή στην κατάσταση IDLE. Όταν η Χ 1 πάρει την τιμή 1 (Χ 1 Χ 2 =10) τότε θα ενεργοποιηθούν οι λαμπτήρες στην δεξιά πλευρά (R1, R2, R3), οι οποίοι θα ανάβουν σταδιακά ο ένας μετά τον άλλον. Θα ανάψει δηλαδή πρώτα ο R1, μετά ο R2 και μετά ο R3. Όταν η Χ 2 πάρει την τιμή 1 (Χ 1 Χ 2 =01) τότε θα ενεργοποιηθούν οι λαμπτήρες στην αριστερή πλευρά (L1, L2, L3), οι οποίοι θα ανάβουν σταδιακά ο ένας μετά τον άλλον. Θα ανάψει δηλαδή πρώτα ο L1 μετά ο L2 και μετά ο L3. Όταν οι διακόπτες Χ 1 και Χ 2 έχουν ταυτόχρονα την τιμή 1 (Χ 1 Χ 2 =11) τότε οι λαμπτήρες θα αναβοσβήνουν όλοι μαζί, θα είναι δηλαδή στην κατάσταση LR3. Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 62

65 Πτυχιακή Εργασία Αναλυτική εξήγηση όλων των λαμπτήρων: Για την ενεργοποίηση του R1 οι έξοδοι θα είναι L1 L2 L3 R3 R2 R1 Για την ενεργοποίηση του R2 οι έξοδοι θα είναι L1 L2 L3 R3 R2 R1 Για την ενεργοποίηση του R3 οι έξοδοι θα είναι L1 L2 L3 R3 R2 R1 Για την ενεργοποίηση του L1 οι έξοδοι θα είναι L1 L2 L3 R3 R2 R1 Για την ενεργοποίηση του L2 οι έξοδοι θα είναι L1 L2 L3 R3 R2 R1 Για την ενεργοποίηση του L3 οι έξοδοι θα είναι L1 L2 L3 R3 R2 R1 Για την ενεργοποίηση του LR3 οι έξοδοι θα είναι , δηλαδή είναι στην κατάσταση alarm όπου οι λαμπτήρες αναβοσβήνουν. Θα πηγαίνει δηλαδή στην κατάσταση LR3 και μετά στην κατάσταση IDLE. L1 L2 L3 R3 R2 R1 Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 63

66 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής L1 L2 L3 R3 R2 R1 Στο σημείο αυτό ακολουθεί το διάγραμμα καταστάσεων (Σχήμα ), το οποίο αναπαριστά όλες τις πιθανές περιπτώσεις που μπορεί να δημιουργηθούν με βάση αυτών που προαναφέρθηκαν. Το διάγραμμα καταστάσεων μπορεί να χρησιμοποιηθεί για να ορίσει τη λειτουργία ενός ακολουθιακού κυκλώματος. Επίσης, χρησιμοποιείται για να παραστήσει τη συνολική λειτουργία του κυκλώματος. 01 L L 3 L IDLE LR R 3 R R 2 10 Σχήμα Διάγραμμα καταστάσεων Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 64

67 Πτυχιακή Εργασία Από το παραπάνω διάγραμμα καταστάσεων μπορεί να συνταχθεί ο πίνακας καταστάσεων του συστήματος. Ο πίνακας καταστάσεων εκτός του ότι χρησιμοποιείται για να ορίσει τη λειτουργία ενός ακολουθιακού κυκλώματος, χρησιμοποιείται κυρίως για την σχεδίαση του κυκλώματος. Ο τρόπος με τον οποίο μπορεί να παρασταθεί ένα ακολουθιακό κύκλωμα είναι το μοντέλο moore. Στη περίπτωση αυτή οι γραμμές του πίνακα καταστάσεων αντιστοιχούν στις παρούσες καταστάσεις ενώ οι στήλες στους συνδυασμούς των εισόδων. Οι καταχωρήσεις που θα υπάρχουν στον πίνακα είναι οι επόμενες καταστάσεις που σχετίζονται με το συνδυασμό των εισόδων και των παρουσών καταστάσεων. Τέλος υπάρχει μια στήλη που δείχνει τη κατάσταση των εξόδων για τη κάθε γραμμή παρούσας κατάστασης. Παρούσα Κατάσταση Πίνακας Πίνακας καταστάσεων (Μοντέλο moore) Είσοδοι X 1 X 2 Έξοδοι QC QB QA X1X2 = 00 X1X2= 01 X1X2= 10 X1X2= 11 Z6 Z5 Z4 Z3 Z2 Z1 IDLE IDLE L1 R1 LR L1 IDLE L2 IDLE LR L2 IDLE L3 IDLE LR L3 IDLE IDLE IDLE IDLE R1 IDLE IDLE R2 LR R2 IDLE IDLE R3 LR R3 IDLE IDLE IDLE IDLE LR3 IDLE IDLE IDLE IDLE Για να παρασταθούν οι καταστάσεις IDLE, L1, L2, L3, R1, R2, R3 και LR3 απαιτούνται τρεις μεταβλητές κατάστασης Q C Q B Q A. Άρα, απαιτούνται και τρία flip - flop. Στη συγκεκριμένη περίπτωση χρησιμοποιούμε D flip - flop, τα D2, D1, και D0. Ο τρόπος που εκχωρούνται οι δυαδικοί συνδυασμοί στις καταστάσεις ενός κυκλώματος, επηρεάζει την πολυπλοκότητα του συνδυαστικού μέρους. Στη συνέχεια θα δείξουμε πως θα εκχωρήσουμε τις μεταβλητές Q C Q B Q A στις καταστάσεις IDLE, L1, L2, L3, R1, R2, R3 και LR3 : IDLE: Q C 0 L1: Q C 0 L2: Q C 0 L3: Q C 0 Q B 0 Q B 0 Q B 1 Q B 1 Q A 0 Q A 1 Q A 0 Q A 1 LR3: Q C 1 R1: Q C 1 R2: Q C 1 R3: Q C 1 Q B 1 Q B 0 Q B 0 Q B 1 Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 65

68 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Q A 1 Q A 0 Q A 1 Q A 0 Σύμφωνα με τις παραπάνω εκχωρήσεις στις μεταβλητές κατάστασης Q C Q B Q A, ο πίνακας καταστάσεων του συστήματος μετατρέπεται όπως φαίνεται στον πίνακα 3.1.2: Πίνακας Πίνακας Μεταβάσεων του αναγνωριστή Παρούσα Κατάσταση Είσοδοι X 1 X 2 Έξοδοι QC QB QA X1X2 = 00 X1X2= 01 X1X2= 10 X1X2= 11 Z6 Z5 Z4 Z3 Z2 Z Ο παραπάνω πίνακας μπορεί να πάρει την μορφή του πίνακα Μεταβάσεων 3.1.3: Πίνακας Μεταβάσεων Πρωτεύουσες Παρούσα Επόμενη Είσοδοι Κατάσταση Κατασταση Πρωτεύουσα Έξοδος X1 X2 Q C Q B Q A + Q C + Q B + Q A Z6 Z5 Z4 Z3 Z2 Z Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 66

69 Πτυχιακή Εργασία Στον πίνακα μεταβάσεων βλέπουμε τις επόμενες καταστάσεις των D flip - flop για κάθε συνδυασμό παρούσας κατάστασης εισόδου. Η τιμή της εισόδου διέγερσης είναι ίδια με την τιμή της επόμενης κατάστασης ενός D flip flop. Οι τιμές στον πίνακα μεταβάσεων δίνουν τις απαιτούμενες διεγέρσεις των D flip flop, όπως απεικονίζονται στον πίνακα διεγέρσεων 3.1.4: Πίνακας Διεγέρσεων Πρωτεύουσες Παρούσα Επόμενη Δευτερεύουσα Είσοδοι Κατάσταση Κατασταση Έξοδος Πρωτεύουσα Έξοδος X1 X2 Q C Q B Q A + Q C + Q B + Q A D C D B D A Z6 Z5 Z4 Z3 Z2 Z Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 67

70 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Χρησιμοποιώντας τους πίνακες Karnaugh εξάγονται οι ελάχιστες συναρτήσεις που απαιτούνται για τη δημιουργία ενός ακολουθιακού κυκλώματος. X 1 X 2 Q B Q Q C =0 00 A X 1 X 2 00 Q B Q Q C =1 A D C = Q C Q B X 1 X 2 + Q C Q A X 1 X 2 + Q C Q B Q A X 1 +Q C Q B X 1 X 1 X 2 Q B Q Q C =0 00 A X 1 X 2 00 Q B Q Q C =1 A D B = Q C Q B Q A X 2 + Q C Q B X 1 X 2 + Q C Q B Q A X 2 + Q C Q B X 1 X 2 + Q C Q B Q A X 1 Q B Q A Q C =0 X 1 X Q B Q A Q C =1 X 1 X Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 68

71 Πτυχιακή Εργασία D A = Q C Q B Q A X 2 + Q C Q B Q A X 2 + Q C Q B X 1 X 2 + Q C Q B X 1 X 2 + Q C Q B Q A X 1 X 1 X 2 Q B Q Q C =0 00 A X 1 X 2 00 Q B Q Q C =1 A Z 6 = Q C Q A + Q C Q B + Q C Q B Q A X 1 X 2 Q B Q Q C =0 00 A X 1 X 2 00 Q B Q Q C =1 A Z 5 = Q C Q B + Q C Q B Q A X 1 X 2 Q B Q Q C =0 00 A X 1 X 2 00 Q B Q Q C =1 A Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 69

72 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Z 4 = Q C Q B Q A + Q C Q B Q A Q B Q A Q C =0 X 1 X X 1 X 2 00 Q B Q Q C =1 A Z 3 = Q C Q B Q B Q A Q C =0 X 1 X Q B Q A Q C =1 X 1 X Z 2 = Q C Q B + Q C Q A X 1 X 2 Q B Q Q C =0 00 A X 1 X 2 00 Q B Q Q C =1 A Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 70

73 Πτυχιακή Εργασία Z 1 = Q C Από τις ελάχιστες συναρτήσεις των πρωτευουσών και δευτερευουσών εισόδων που προκύπτουν από τους πίνακες Karnaugh που έχουν υλοποιηθεί σχεδιάζεται το παρακάτω ακολουθιακό κύκλωμα (Σχήμα 3.1.3). Σχήμα 3.1.3: Ακολουθιακό Κύκλωμα Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 71

74 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Εισαγωγή σχεδίασης δια μέσου κώδικα VHDL: Η άσκηση θα υλοποιηθεί με δύο τρόπους. Ο πρώτος τρόπος υλοποιείται με τη βοήθεια των ελάχιστων συναρτήσεων που έχουν εξαχθεί από τους πίνακες Karnaugh, που δημιουργήθηκαν παραπάνω. Ενώ ο δεύτερος τρόπος υλοποιείται με την βοήθεια των πινάκων αληθείας. 1 ος Τρόπος: Υλοποίηση με τις εξισώσεις. LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; LIBRARY ALTERA; USE ALTERA.MAXPLUS2.ALL; ENTITY car2 IS PORT (CLK, RIGHT, LEFT, CLRN :IN STD_LOGIC; L1, L2, L3, R3, R2, R1 :OUT STD_LOGIC); END car2; ARCHITECTURE circuit OF car2 IS SIGNAL CLR, CK, DA, DB, DC, QA, QB, QC, HIGH :STD_LOGIC; BEGIN HIGH<='1'; CK<=CLK; CLR<=CLRN; DA<=(NOT QC AND NOT QB AND NOT QA AND LEFT) OR (NOT QC AND QB AND NOT QA AND LEFT) OR (NOT QC AND NOT QB AND RIGHT AND LEFT) OR (QC AND NOT QB AND RIGHT AND LEFT) OR (QC AND NOT QB AND NOT QA AND RIGHT); DB<=(NOT QC AND NOT QB AND QA AND LEFT) OR (NOT QC AND NOT QB AND RIGHT AND LEFT) OR (NOT QC AND QB AND NOT QA AND LEFT) OR (QC AND NOT QB AND RIGHT AND LEFT) OR (QC AND NOT QB AND QA AND RIGHT); DC<=(NOT QC AND NOT QB AND RIGHT AND LEFT) OR (NOT QC AND NOT QA AND RIGHT AND Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 72

75 Πτυχιακή Εργασία LEFT) OR (NOT QC AND NOT QB AND NOT QA AND RIGHT) OR (QC AND NOT QB AND RIGHT); FFC:DFF PORT MAP (D=>DC, CLK=>CK, CLRN=>CLR, PRN=>HIGH, Q=>QC); FFB:DFF PORT MAP (D=>DB, CLK=>CK, CLRN=>CLR, PRN=>HIGH, Q=>QB); FFA:DFF PORT MAP (D=>DA, CLK=>CK, CLRN=>CLR, PRN=>HIGH, Q=>QA); L1<=(NOT QC AND QA) OR (NOT QC AND QB) OR (QC AND QB AND QA); L2<=(NOT QC AND QB) OR (QC AND QB AND QA); L3<=(NOT QC AND QB AND QA) OR (QC AND QB AND QA); R3<=(QC AND QB); R2<=(QC AND QB) OR (QC AND QA); R1<=QC; END circuit; Το αποτέλεσμα της προσομοίωσης του παραπάνω προγράμματος φαίνεται στο σχήμα Σχήμα 3.1.4: Αποτέλεσμα προσομοίωσης Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 73

76 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής 2 ος Τρόπος: Υλοποίηση με τους πίνακες αληθείας. LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY car IS PORT (CLK, RIGHT, LEFT, CLR :IN STD_LOGIC; Z :OUT STD_LOGIC_VECTOR (6 DOWNTO 1)); END car; ARCHITECTURE circuit OF car IS TYPE STATE_TYPE IS (IDLE, L1, L2, L3, R1, R2, R3,LR3); SIGNAL NEXTSTATE :STATE_TYPE; BEGIN PROCESS (CLR, CLK) BEGIN IF CLR='0' THEN NEXTSTATE<=IDLE; ELSIF (CLK='1' AND CLK'EVENT) THEN CASE NEXTSTATE IS WHEN IDLE=> IF (RIGHT ='0') AND (LEFT ='1') THEN NEXTSTATE<=L1; ELSIF (RIGHT ='1') AND (LEFT ='0') THEN NEXTSTATE<=R1; ELSIF (RIGHT ='1') AND (LEFT ='1') THEN NEXTSTATE<=LR3; ELSE NEXTSTATE<=IDLE; WHEN L1=> IF (RIGHT ='0') AND (LEFT ='1') THEN NEXTSTATE<=L2; ELSIF (RIGHT ='1') AND (LEFT ='0') THEN NEXTSTATE<=IDLE; ELSIF (RIGHT ='1') AND (LEFT ='1') THEN NEXTSTATE<=LR3; ELSE NEXTSTATE<=IDLE; WHEN L2=> IF (RIGHT ='0') AND (LEFT ='1') Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 74

77 Πτυχιακή Εργασία THEN NEXTSTATE<=L3; ELSIF (RIGHT ='1') AND (LEFT ='0') THEN NEXTSTATE<=IDLE; ELSIF (RIGHT ='1') AND (LEFT ='1') THEN NEXTSTATE<=LR3; ELSE NEXTSTATE<=IDLE; WHEN L3=> IF (RIGHT ='0') AND (LEFT ='1') THEN NEXTSTATE<=IDLE; ELSIF (RIGHT ='1') AND (LEFT ='0') THEN NEXTSTATE<=IDLE; ELSIF (RIGHT ='1') AND (LEFT ='1') THEN NEXTSTATE<=IDLE; ELSE NEXTSTATE<=IDLE; WHEN R1=> IF (RIGHT ='0') AND (LEFT ='1') THEN NEXTSTATE<=IDLE; ELSIF (RIGHT ='1') AND (LEFT ='0') THEN NEXTSTATE<=R2; ELSIF (RIGHT ='1') AND (LEFT ='1') THEN NEXTSTATE<=LR3; ELSE NEXTSTATE<=IDLE; WHEN R2=> IF (RIGHT ='0') AND (LEFT ='1') THEN NEXTSTATE<=IDLE; ELSIF (RIGHT ='1') AND (LEFT ='0') THEN NEXTSTATE<=R3; ELSIF (RIGHT ='1') AND (LEFT ='1') THEN NEXTSTATE<=LR3; ELSE NEXTSTATE<=IDLE; WHEN R3=> IF (RIGHT ='0') AND (LEFT ='1') THEN NEXTSTATE<=IDLE; ELSIF (RIGHT ='1') AND (LEFT ='0') THEN NEXTSTATE<=IDLE; ELSIF (RIGHT ='1') AND (LEFT ='1') THEN NEXTSTATE<=IDLE; ELSE NEXTSTATE<=IDLE; WHEN LR3=> IF (RIGHT ='0') AND (LEFT ='1') THEN NEXTSTATE<=IDLE; Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 75

78 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής END CASE; ELSIF (RIGHT ='1') AND (LEFT ='0') THEN NEXTSTATE<=IDLE; ELSIF (RIGHT ='1') AND (LEFT ='1') THEN NEXTSTATE<=IDLE; ELSE NEXTSTATE<=IDLE; CASE NEXTSTATE IS WHEN IDLE => Z<="000000"; WHEN L1 => Z<="100000"; WHEN L2 => Z<="110000"; WHEN L3 => Z<="111000"; WHEN R1 => Z<="000001"; WHEN R2 => Z<="000011"; WHEN R3 => Z<="000111"; WHEN LR3 => Z<="111111"; END CASE; END PROCESS; END circuit; Το αποτέλεσμα της προσομοίωσης του παραπάνω προγράμματος φαίνεται στο σχήμα Σχήμα 3.1.5: Αποτέλεσμα προσομοίωσης Η προσομοίωση που δημιουργήθηκε από το Waveform Editor του MAX+PLUS II είναι ένας τρόπος για να παρουσιαστούν όλες οι περιπτώσεις που παίρνουν οι είσοδοι (LEFT RIGHT). Ακόμα αποτελεί έναν τρόπο για να διαπιστώσουμε εάν ο κώδικας που έχει υλοποιηθεί, θα δώσει τις σωστές αλλά και τις Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 76

79 Πτυχιακή Εργασία αντίστοιχες τιμές στα LED σύμφωνα με τις απαιτήσεις και τις προδιαγραφές του συστήματος. Ακολουθεί η απεικόνιση του Edit Sympol (Σχήμα 3.1.6). Είναι ένας τρόπος αναπαράστασης της λειτουργικής σχεδίασης των εισόδων και εξόδων, όπως φαίνεται παρακάτω: Σχήμα 3.1.6: Απεικόνιση της λειτουργικής σχεδίασης. Σχολιασμός Κώδικα 1 ος Τρόπος: Υλοποίηση με τις εξισώσεις. Μια βιβλιοθήκη (library) VHDL αποτελεί το χώρο, όπου ο μεταγλωττιστής (compiler) της VHDL αποθηκεύει πληροφορίες για μια σχεδίαση ενός project, συμπεριλαμβάνοντας και ενδιάμεσα αρχεία που χρησιμοποιούνται κατά την ανάλυση, προσομοίωση και σύνθεση του κυκλώματος. Για την τρέχουσα σχεδίαση σε VHDL ο compiler δημιουργεί αυτόματα και χρησιμοποιεί στη συνέχεια τη βιβλιοθήκη που ονομάζεται work. Η βιβλιοθήκη work (συνήθως είναι ένας υποκατάλογος στο κατάλογο του project) δεν περιλαμβάνει όλες τις πληροφορίες που είναι απαραίτητες για ένα συγκεκριμένο έργο (project). Όταν η γλώσσα VHDL έγινε βιομηχανικό πρότυπο της IEEE 1164 Standard, δημιουργήθηκαν παράλληλα και κάποιες άλλες μορφές σήματος. Όταν πρόκειται να χρησιμοποιηθούν αυτές οι μορφές σήματος, θα πρέπει πάντα να εισάγονται στην αρχή του προγράμματος οι επόμενες δύο γραμμές. Επιπλέον οι γραμμές αυτές χρησιμοποιούνται για να επιτρέψουν τη χρήση μορφής σήματος STANDARD LOG- IC, που είναι συμβατή με τις υπόλοιπες λειτουργίες των βιβλιοθηκών της ALTERA. LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; Οι επόμενες δύο γραμμές χρησιμοποιούνται για να επιτρέψουν την πρόσβαση στις βιβλιοθήκες της ALTERA, που εμπεριέχουν τη βιβλιοθήκη των μακροσυναρτήσεων (macrofunctions) στη διεύθυνση c:\maxplus2\max2lib\mf. Μια μακροσυνάρτηση είναι ένα πρόγραμμα σε γλώσσα VHDL που μιμείται τη λειτουργία ενός κλασικού ολοκληρωμένου κυκλώματος τεχνολογίας TTL, μεσαίας βαθμίδας ολοκλήρωσης με όλες τις εισόδους και εξόδους του. Η χρήση αυτών των μακροσυναρτήσεων γίνεται είτε επιλέγοντας το σύμβολό της από τη λίστα της βιβλιοθήκης, όταν η εισαγωγή προγράμματος γίνεται διαμέσου σχηματικού διαγράμματος, είτε επιλέγοντας την αντίστοιχη συνιστώσα (COMPONENT) ως α_(κωδικός συνιστώσας), όταν η εισαγωγή γίνεται δια μέσου κώδικα VHDL. Τα Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 77

80 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής σήματα εισόδου-εξόδου της συνιστώσας παίρνονται επιλέγοντας «Help», «Old-Style Macrofunctions» και τη συνιστώσα που πρόκειται να εισαχθεί στο πρόγραμμα. LIBRARY ALTERA; USE ALTERA.MAXPLUS2.ALL; Το ENTITY ορίζεται ως το όνομα της αυτοτελούς μονάδος καθώς και οι είσοδοι και έξοδοι της (με τη δεσμευμένη λέξη port). Τα CLK, RIGHT, LEFT, CLRN αποτελούν τα σήματα εισόδου, ενώ τα L1, L2, L3, R3, R2, R1 αποτελούν τα σήματα εξόδου. Η κατεύθυνση τους προσδιορίζεται με τη χρήση των λεκτικών IN και OUT. Με τη μορφή σήματος STD_LOGIC μπορούν να οριστούν σήματα και άλλων επιπλέον λογικών καταστάσεων όπως, για παράδειγμα, υψηλής σύνθετης αντίστασης (High Z) Z, αδιάφορης κατάστασης -, και άλλων λιγότερο συνήθων μορφών. ENTITY car2 IS PORT (CLK, RIGHT, LEFT, CLRN :IN STD_LOGIC; L1, L2, L3, R3, R2, R1 :OUT STD_LOGIC); END car2; Με τη δήλωση ARCHITECTURE ορίζεται η εσωτερική δομή της μονάδας. Τα σήματα (εισόδου - εξόδου) πηγάζουν από τη δήλωση ENTITY που έχει προηγηθεί. Η ARCHITECTURE μπορεί να περιλαμβάνει, επίσης, τα σήματα και τις δηλώσεις που είναι τοπικά (local) κατ αναλογία με τις γνωστές γλώσσες υψηλού επιπέδου. Η λέξη κλειδί SIGNAL δηλώνει δεδομένα σημάτων που κινούνται στα καλώδια του κυκλώματος. Οι δηλώσεις σημάτων μπορούν να γίνουν είτε μέσα στη δήλωση οντότητας, είτε στην περιοχή δηλώσεων της αρχιτεκτονικής, είτε στο τμήμα δηλώσεων ενός πακέτου. Η SIGNAL ακολουθείται πάντα από το όνομα και τον τύπο του σήματος. Στην προκειμένη περίπτωση τα ονόματα των σημάτων που δηλώνονται είναι CLR, CK, DA, DB, DC, QA, QB, QC, HIGH. ARCHITECTURE circuit OF car2 IS SIGNAL CLR, CK, DA, DB, DC, QA, QB, QC, HIGH :STD_LOGIC; Στην συνέχεια ξεκινάει η υλοποίηση του κυρίως προγράμματος και γίνεται αρχικοποίηση των σημάτων HIGH, CK, CLR με τον τελεστή ανάθεσης σήματος (<=). BEGIN HIGH<='1'; CK<=CLK; CLR<=CLRN; Γίνεται υλοποίηση των εισόδων των Flip Flop DA, DB, DC μέσω των εξισώσεων που προέκυψαν από τους πίνακες Karnaugh. DA<=(NOT QC AND NOT QB AND NOT QA AND LEFT) Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 78

81 Πτυχιακή Εργασία OR (NOT QC AND QB AND NOT QA AND LEFT) OR (NOT QC AND NOT QB AND RIGHT AND LEFT) OR (QC AND NOT QB AND RIGHT AND LEFT) OR (QC AND NOT QB AND NOT QA AND RIGHT); DB<=(NOT QC AND NOT QB AND QA AND LEFT) OR (NOT QC AND NOT QB AND RIGHT AND LEFT) OR (NOT QC AND QB AND NOT QA AND LEFT) OR (QC AND NOT QB AND RIGHT AND LEFT) OR (QC AND NOT QB AND QA AND RIGHT); DC<=(NOT QC AND NOT QB AND RIGHT AND LEFT) OR (NOT QC AND NOT QA AND RIGHT AND LEFT) OR (NOT QC AND NOT QB AND NOT QA AND RIGHT) OR (QC AND NOT QB AND RIGHT); Η σύνδεση του στιγμιότυπου με τα υπόλοιπα κυκλώματα γίνεται με τη χρήση της λέξης κλειδί PORT MAP ακολουθούμενης από μια λίστα που δείχνει τα σήματα που συνδέονται στις γραμμές (ακίδες) της συνιστώσας. Οι συνδέσεις των σημάτων του υπό σχεδίαση κυκλώματος στις γραμμές (ακίδες) της συνιστώσας μπορούν να γίνουν με δύο τρόπους: είτε μέσω συσχέτισης θέσης (Positional Association), είτε μέσω συσχέτισης ονόματος (Name Association). Όταν τα σήματα αναφέρονται με την ίδια σειρά που αναφέρονται και οι ακίδες της συνιστώσας τότε γίνεται λόγος για συσχέτιση θέσης. Όταν τα σήματα δεν αναφέρονται με την ίδια σειρά, που αναφέρονται και οι ακίδες της συνιστώσας και η αντιστοίχηση γίνεται σήμα προς ακίδα με το όνομά τους (ακίδα συνιστώσας=>σήμα κυκλώματος), τότε γίνεται λόγος για συσχέτιση ονόματος. Αυτή η μορφή προγραμματισμού κατά την οποία χρησιμοποιούνται υποκυκλώματα, που διασυνδέονται μεταξύ τους προκειμένου να δημιουργηθεί ένα νέο κύκλωμα, ονομάζεται δομημένο ύφος προγραμματισμού (structural style of programming). FFC:DFF PORT MAP (D=>DC, CLK=>CK, CLRN=>CLR, PRN=>HIGH, Q=>QC); FFB:DFF PORT MAP (D=>DB, CLK=>CK, CLRN=>CLR, PRN=>HIGH, Q=>QB); FFA:DFF PORT MAP (D=>DA, CLK=>CK, CLRN=>CLR, PRN=>HIGH, Q=>QA); Με βάση πάλι τις εξισώσεις από τους πίνακες Karnaugh υλοποιούνται οι έξοδοι του συστήματος και έχουμε και το τέλος του προγράμματος. L1<=(NOT QC AND QA) OR (NOT QC AND QB) Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 79

82 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής OR (QC AND QB AND QA); L2<=(NOT QC AND QB) OR (QC AND QB AND QA); L3<=(NOT QC AND QB AND QA) OR (QC AND QB AND QA); R3<=(QC AND QB); R2<=(QC AND QB) OR (QC AND QA); R1<=QC; END circuit; 2 ος Τρόπος: Υλοποίηση με τους πίνακες αληθείας. Όταν πρόκειται να χρησιμοποιηθούν η μορφή σήματος STANDARD LOGIC, που είναι συμβατή με τις υπόλοιπες λειτουργίες των βιβλιοθηκών της AL- TERA, θα πρέπει πάντα να εισάγονται στην αρχή του προγράμματος οι επόμενες δύο γραμμές. LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; Τα CLK, RIGHT, LEFT, CLR αποτελούν τα σήματα εισόδου, ενώ το Ζ αποτελεί ένα σήμα εξόδου. Το σήμα εξόδου δηλώνεται με την μορφή STD_LOGIC_VECTOR (6 DOWNTO 1),που αποτελεί μια σειρά έξι μεμονωμένων δυαδικών ψηφίων, καθένα από τα οποία αποτελεί ένα ανεξάρτητο σήμα, με το ψηφίο d 6 ως περισσότερο σημαντικό ψηφίο και το ψηφίο d 1 ως λιγότερο σημαντικό ψηφίο. Η σειρά αυτή δεν αποτελεί δυαδικό αριθμό οκτώ ψηφίων. Αναφέρεται σε μεμονωμένα ψηφία, όπως για παράδειγμα, τα ψηφία μιας πόρτας εισόδου ή εξόδου. Κάθε επιμέρους ψηφίο μπορεί να οριστεί ως [ονομασία σήματος(αριθμός ψηφίου)]. ENTITY car IS PORT (CLK, RIGHT, LEFT, CLR :IN STD_LOGIC; Z :OUT STD_LOGIC_VECTOR (6 DOWNTO 1)); END car; Η εσωτερική δομή της μονάδας γίνεται με τη δήλωση ARCHITECTURE. Η λέξη κλειδί TYPE ακολουθούμενη από το αντικείμενο δεδομένων STATE_TYPE χρησιμοποιείται για να δηλώσει ονόματα καταστάσεων στα ακολουθιακά κυκλώματα. Αυτή η μορφή δήλωσης σήματος ονομάζεται απαριθημένοςτύπος (enumerated type) και επιτρέπει στον χρήστη να αποφασίσει για όλες τις δυνατές τιμές που μπορούν να πάρουν τα δεδομένα. Η SIGNAL ακολουθείται πάντα από το όνομα και τον τύπο του σήματος. Στην προκειμένη περίπτωση από την επόμενη κατάσταση NEXTSTATE και παίρνει τις τιμές που έχουν δηλωθεί στο STATE_TYPE. ARCHITECTURE circuit OF car IS TYPE STATE_TYPE IS (IDLE, L1, L2, L3, R1, R2, R3,LR3); SIGNAL NEXTSTATE :STATE_TYPE; Οι μοναδικές ακολουθιακές (sequential) εντολές που εκτελούνται σειριακά από το μεταφραστή είναι αυτές που βρίσκονται φωλιασμένες μέσα σε μια εντολή τύπου PROCESS, η οποία όμως με τη σειρά της αποτελεί μια σύγχρονη εντολή Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 80

83 Πτυχιακή Εργασία καθώς το τελικό της αποτέλεσμα εκτελείται παράλληλα με τις άλλες σύγχρονες εντολές από το μεταφραστή. Επίσης, η χρήση της λέξης PROCESS έγινε για να επιτρέψει την χρήση των εντολών IF και ELSE, προκειμένου να δημιουργηθεί η προτεραιότητα με την οποία επηρεάζουν την λειτουργία του κυκλώματος οι είσοδοί του. BEGIN PROCESS (CLR, CLK) BEGIN IF CLR='0' THEN NEXTSTATE<=IDLE; ELSIF (CLK='1' AND CLK'EVENT) THEN Ακολουθεί ο τρόπος που γίνεται η προτεραιότητα των εισόδων. Για να επιτευχθεί η προτεραιότητα χρησιμοποιείται η δήλωση αφιέρωσης σήματος υπό συνθήκη δια μέσου των εντολών WHEN και ELSE. Αν η συνθήκη μετά την εντολή WHEN δεν είναι αληθινή, η εντολή ELSE παραπέμπει στην επόμενη πρόταση κ.ο.κ. μέχρι που να βρεθεί αληθινή συνθήκη. Η ακολουθιακή μορφή που έχει η διαδικασία δήλωσης αφιέρωσης σήματος υπό συνθήκη επιτρέπει με βάση την σειρά αναγραφής και άρα εκτέλεσης των δηλώσεων. Η διαδικασία είναι ίδια για όλες τις υπορουτίνες, που ακολουθούνται για τον έλεγχο των εισόδων (RIGHT και LEFT) που βρίσκονται μέσα στην CASE. CASE NEXTSTATE IS WHEN IDLE=> IF (RIGHT ='0') AND (LEFT ='1') THEN NEXTSTATE<=L1; ELSIF (RIGHT ='1') AND (LEFT ='0') THEN NEXTSTATE<=R1; ELSIF (RIGHT ='1') AND (LEFT ='1') THEN NEXTSTATE<=LR3; ELSE NEXTSTATE<=IDLE; END CASE; Ακολουθείται η διαδικασία ελέγχου των εξόδων με βάση τον πίνακα αληθείας. Και τέλος, κλείνει πρώτα η διαδικασία PROCESS και μετά όλο το πρόγραμμα. CASE NEXTSTATE IS WHEN IDLE => Z<="000000"; WHEN L1 => Z<="100000"; WHEN L2 => Z<="110000"; WHEN L3 => Z<="111000"; WHEN R1 => Z<="000001"; WHEN R2 => Z<="000011"; WHEN R3 => Z<="000111"; Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 81

84 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής WHEN END CASE; END PROCESS; END circuit; LR3 => Z<="111111"; Εφαρμογή 2: Κύκλωμα Ελέγχου Φωτεινών Σηματοδοτών 1 η Περίπτωση: Κύκλωμα Φωτεινών Σηματοδοτών Σε μια Διασταύρωση Κατά Τη Διάρκεια Της Ημέρας. Να σχεδιαστεί ένα ψηφιακό σύστημα ελέγχου, που θα ελέγχει τους φωτεινούς σηματοδότες κυκλοφορίας σε μια διασταύρωση κατά την διάρκεια της ημέρας. Η κυκλοφορία της διασταύρωσης θα ελέγχεται από έναν τροχονόμο, ο οποίος θα έχει μια συσκευή, όπου θα πατάει ένα διακόπτη ώθησης (push button) που θα απενεργοποιεί τα φανάρια. Τα φανάρια θα ανάβουν σταθερά πορτοκαλί. Όταν δεν υπάρχει ο τροχονόμος τότε οι σηματοδότες θα λειτουργούν κανονικά ανά ένα παλμό. Αυτό σημαίνει ότι, όταν τα αυτοκίνητα θα κινούνται στο δρόμο ΑΔ (Ανατολή Δύση), οι αντίστοιχοι σηματοδότες θα είναι πράσινοι και οι σηματοδότες του δρόμου ΒΝ (Βοράς Νότος) κόκκινοι και το αντίστροφο. Όταν είναι να γίνει η εναλλαγή από πράσινο σε κόκκινο τότε θα περνάει από την κατάσταση του πορτοκαλί. Διαδικασία Σχεδίασης: Από την εκφώνηση συμπεραίνεται ότι θα έχουμε τρεις φωτεινούς σηματοδότες συνολικά για την υλοποίηση της άσκησης, οι οποίοι θα αντιστοιχούν στην κόκκινη, πορτοκαλί και πράσινη ένδειξη των φαναριών. Ο τρόπος που απεικονίζεται είναι ο παρακάτω (Σχήμα ). Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 82

85 Πτυχιακή Εργασία Βορράς Ανατολή Tree Δύση Νότος Σχήμα : Απεικόνιση της διασταύρωσης κατά τη διάρκεια της ημέρας. Για την κατανόηση του συστήματος πρέπει να καθορίσουμε τις εισόδους. Στην προκειμένη περίπτωση έχουμε μόνο τον διακόπτη του τροχονόμου και τον παλμό που παίρνει από το clock. Η είσοδος που θα έχουμε είναι η Χ, όπου όταν είναι σε κατάσταση 0, τότε οι σηματοδότες θα λειτουργούν κανονικά. Όταν, όμως, είναι σε κατάσταση 1 σημαίνει ότι ο τροχονόμος έχει πατήσει τον διακόπτη από την συσκευή, με αποτέλεσμα οι σηματοδότες να ανάβουν σταθερά πορτοκαλί. Στο σημείο αυτό ακολουθεί το διάγραμμα καταστάσεων (Σχήμα ), το οποίο αναπαριστά όλες τις πιθανές περιπτώσεις που μπορεί να δημιουργηθούν με βάση των παραπάνω. Το διάγραμμα καταστάσεων μπορεί να χρησιμοποιηθεί για να ορίσει τη λειτουργία ενός ακολουθιακού κυκλώματος. Επίσης, χρησιμοποιείται για να παραστήσει τη συνολική λειτουργία του κυκλώματος. Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 83

86 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής X=0 K 0 K 1 X=1 X=0 X=1 X=0 K 4 X=0 X=1 X=1 X=1 K 3 X=0 K 2 Σχήμα : Διάγραμμα καταστάσεων. Από το παραπάνω διάγραμμα καταστάσεων μπορεί να συνταχθεί ο πίνακας καταστάσεων του συστήματος. Ο πίνακας καταστάσεων εκτός του ότι χρησιμοποιείται για να ορίσει τη λειτουργία ενός ακολουθιακού κυκλώματος, χρησιμοποιείται κυρίως για την σχεδίαση του κυκλώματος. Ο τρόπος με τον οποίο μπορεί να παρασταθεί ένα ακολουθιακό κύκλωμα είναι το μοντέλο moore. Στη περίπτωση αυτή οι γραμμές του πίνακα καταστάσεων αντιστοιχούν στις παρούσες καταστάσεις ενώ οι στήλες στους συνδυασμούς των εισόδων. Οι καταχωρήσεις που θα υπάρχουν στον πίνακα είναι οι επόμενες καταστάσεις που σχετίζονται με το συνδυασμό των εισόδων και των παρουσών καταστάσεων. Τέλος υπάρχει μια στήλη που δείχνει τη κατάσταση της εξόδου για τη κάθε γραμμή παρούσας κατάστασης. Πίνακας Πίνακας καταστάσεων (Μοντέλο moore) Παρούσα Κατάσταση Είσοδος X Έξοδοι QA QB QC X = 0 X= 1 Z1 Z2 Z3 K 0 K 1 K K 1 K 2 K K 2 K 3 K K 3 K 0 K K 4 K 0 K X X X X X X X X X X X X X X X X X X X X X X X X Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 84

87 Πτυχιακή Εργασία X X X X X X X X X X X X Για να παρασταθούν οι καταστάσεις K 0, K 1, K 2, K 3, και K 4 απαιτούνται τρεις μεταβλητές κατάστασης Q A Q B Q C. Άρα, απαιτούνται και τρία flip - flop. Στη συγκεκριμένη περίπτωση χρησιμοποιούμε D flip - flop, τα D A, D B, και D C. Ο τρόπος που εκχωρούνται οι δυαδικοί συνδυασμοί στις καταστάσεις ενός κυκλώματος, επηρεάζει την πολυπλοκότητα του συνδυαστικού μέρους. Στη συνέχεια θα δείξουμε πως απεικονίζονται οι έξοδοι του συστήματος στις καταστάσεις K 0, K 1, K 2, K 3, και K 4 των αντίστοιχων δρόμων της διασταύρωσης: K 0 : Ζ1 1 - NSGreen K 1 : Ζ1 0 - NSGreen K 2 : Ζ1 1 - EWGreen Ζ2 0 - NSYellow Ζ2 1 - NSYellow Ζ2 0 - EWYellow Ζ3 1 - EWRed Ζ3 1 - EWRed Ζ3 1 - NSRed K 3 : Ζ1 0 - EWGreen Ζ2 1 EWYellow Ζ3 1 - NSRed K 4 : Ζ1 1 - NSYellow Ζ2 1 - EWYellow Ζ3 0 -.EWGreen Σύμφωνα με τις παραπάνω εκχωρήσεις στις μεταβλητές κατάστασης Q A Q B Q C, ο πίνακας καταστάσεων του συστήματος μετατρέπεται, όπως φαίνεται στον πίνακα : Πίνακας Πίνακας Μεταβάσεων του αναγνωριστή Παρούσα Κατάσταση Είσοδος X Έξοδοι QA QB QC X = 0 X= 1 Z1 Z2 Z X X X X X X X X X X X X X X X X X X X X X X X X X X X Ο παραπάνω πίνακας μπορεί να πάρει την μορφή του πίνακα Μεταβάσεων : Πίνακας Μεταβάσεων Πρωτεύουσα Παρούσα Επόμενη Πρωτεύουσα Δεκαδικός Είσοδος Κατάσταση Κατασταση Έξοδος X Q A Q B Q C Q A Q B Q C Z 1 Z 2 Z Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 85

88 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Στον πίνακα μεταβάσεων βλέπουμε τις επόμενες καταστάσεις των D flip - flop για κάθε συνδυασμό παρούσας κατάστασης εισόδου. Η τιμή της εισόδου διέγερσης είναι ίδια με την τιμή της επόμενης κατάστασης ενός D flip flop. Οι τιμές στον πίνακα μεταβάσεων δίνουν τις απαιτούμενες διεγέρσεις των D flip flop, όπως απεικονίζονται στον πίνακα διεγέρσεων : Πίνακας Διεγέρσεων Πρωτεύουσες Παρούσα Επόμενη Δευτερεύουσα Πρωτεύουσα Δεκαδικός Είσοδοι Κατάσταση Κατασταση Έξοδος Έξοδος X Q A Q B Q C Q A Q B Q C D A D B D C Z 1 Z 2 Z Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Για τη δημιουργία του ακολουθιακού κυκλώματος του συστήματος που επιθυμούμε να υλοποιήσουμε απαιτείται η εύρεση των ελάχιστων συναρτήσεων των πρωτευουσών και δευτερευουσών εξόδων. Αυτό επιτυγχάνεται με τους χάρτες Karnaugh. Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 86

89 Πτυχιακή Εργασία XQ A Q B Q C XQ A Q B Q C X X X X X X X X X X X X 0 D A = X D B = X Q B Q C + X Q B Q C = X (Q B + Q C ) XQ A00 XQ A Q B Q C Q B Q C X X X X X X X X X X X X 1 D C = X Q A Q C Z 1 = Q C XQ A Q B Q C XQ A Q B Q C X X X X X X X X X X X X 1 Z 2 = Q A + Q C Z 3 = Q A Παρακάτω απεικονίζεται το ακολουθιακό κύκλωμα που προκύπτει από τις ελάχιστες συναρτήσεις που έχουν διεξαχθεί από τους πίνακες Karnaugh (Σχήμα ). Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 87

90 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Σχήμα : Ακολουθιακό Κύκλωμα. Εισαγωγή σχεδίασης δια μέσου κώδικα VHDL: Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 88

91 Πτυχιακή Εργασία Η άσκηση θα υλοποιηθεί με δύο τρόπους. Ο πρώτος τρόπος υλοποιείται με τη βοήθεια των ελάχιστων συναρτήσεων που έχουν εξαχθεί από τους πίνακες Karnaugh, που δημιουργήθηκαν παραπάνω. Ενώ ο δεύτερος τρόπος υλοποιείται με την βοήθεια των πινάκων αληθείας. 1 ος Τρόπος: Υλοποίηση με τις εξισώσεις. LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; LIBRARY ALTERA; USE ALTERA.MAXPLUS2.ALL; ENTITY daylights1 IS PORT (CLK, TROXONOMOS, CLRN :IN STD_LOGIC; Z1, Z2, Z3 :OUT STD_LOGIC); END daylights1; ARCHITECTURE circuit OF daylights1 IS SIGNAL CLR, CK, DA, DB, DC, QA, QB, QC, HIGH :STD_LOGIC; BEGIN HIGH<='1'; CK<=CLK; CLR<=CLRN; DA<= TROXONOMOS; DB<=(NOT TROXONOMOS AND NOT QB AND QC) OR (NOT TROXONOMOS AND QB AND NOT QC); DC<=(NOT TROXONOMOS AND NOT QA AND NOT QC); FFC:DFF PORT MAP (D=>DC, CLK=>CK, CLRN=>CLR, PRN=>HIGH, Q=>QC); FFB:DFF PORT MAP (D=>DB, CLK=>CK, CLRN=>CLR, PRN=>HIGH, Q=>QB); FFA:DFF PORT MAP (D=>DA, CLK=>CK, CLRN=>CLR, PRN=>HIGH, Q=>QA); Z1<= Z2<= Z3<= (NOT QC); (QA OR QC); (NOT QA); Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 89

92 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής END circuit; Το αποτέλεσμα της προσομοίωσης του παραπάνω προγράμματος φαίνεται στο σχήμα Σχήμα : Αποτελέσματα προσομοίωσης. Στη συνέχεια έχουμε την απεικόνιση του Edit Sympol (Σχήμα ). Είναι ένας τρόπος αναπαράστασης της λειτουργικής σχεδίασης των εισόδων και εξόδων, όπως φαίνεται παρακάτω: Σχήμα : Απεικόνιση λειτουργικής σχεδίασης. 2 ος Τρόπος: Υλοποίηση με τους πίνακες αληθείας. Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 90

93 Πτυχιακή Εργασία LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY daylights IS PORT (CLK, RESET, TROXONOMOS : IN STD_LOGIC; Z : OUT STD_LOGIC_VECTOR(3 DOWNTO 1)); END ENTITY daylights; ARCHITECTURE circuit OF daylights IS TYPE STATE_TYPE IS (K0, K1, K2, K3, K4); SIGNAL NEXTSTATE : STATE_TYPE; BEGIN SEQ:PROCESS (CLK, RESET) IS BEGIN IF (RESET = '0') THEN NEXTSTATE <= K0; ELSIF(CLK='1' AND CLK 'EVENT) THEN CASE NEXTSTATE IS WHEN K0 => IF TROXONOMOS ='0' THEN NEXTSTATE<=K1; ELSE NEXTSTATE<=K4; WHEN K1 => IF TROXONOMOS ='0' THEN NEXTSTATE<=K2; ELSE NEXTSTATE<=K4; WHEN K2 => IF TROXONOMOS ='0' THEN NEXTSTATE<=K3; ELSE NEXTSTATE<=K4; WHEN K3 => IF TROXONOMOS ='0' THEN NEXTSTATE<=K0; ELSE NEXTSTATE<=K4; WHEN K4 => IF TROXONOMOS ='0' Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 91

94 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής END CASE; THEN NEXTSTATE<=K0; ELSE NEXTSTATE<=K4; CASE NEXTSTATE IS WHEN K0 =>Z<="101"; WHEN K1 =>Z<="011"; WHEN K2 =>Z<="101"; WHEN K3 =>Z<="011"; WHEN K4 =>Z<="110"; END CASE; END PROCESS; END circuit; Το αποτέλεσμα της προσομοίωσης του παραπάνω προγράμματος φαίνεται στο σχήμα Σχήμα : Αποτελέσματα προσομοίωσης. Η προσομοίωση που δημιουργήθηκε από το Waveform Editor του MAXPLUS II είναι ένας τρόπος για να παρουσιαστούν όλες οι περιπτώσεις που παίρνουν οι είσοδοι (LEFT RIGHT). Ακόμα αποτελεί έναν τρόπο για να διαπιστώσουμε εάν ο κώδικας που έχει υλοποιηθεί, θα δώσει τις σωστές αλλά και τις αντίστοιχες τιμές στα LED σύμφωνα με τις απαιτήσεις και τις προδιαγραφές του συστήματος. Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 92

95 Πτυχιακή Εργασία Σχολιασμός Κώδικα 1 ος Τρόπος: Υλοποίηση με τις εξισώσεις. Όταν η γλώσσα VHDL έγινε βιομηχανικό πρότυπο της IEEE 1164 Standard, δημιουργήθηκαν παράλληλα και κάποιες άλλες μορφές σήματος, οι οποίες όταν πρόκειται να χρησιμοποιηθούν θα πρέπει πάντα να εισάγονται στην αρχή του προγράμματος οι επόμενες δύο γραμμές. Εισάγονται επίσης για να επιτρέψουν τη χρήση μορφής σήματος STANDARD LOGIC. LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; Όταν επιθυμείται η χρήση των μακροσυναρτήσεων στο πρόγραμμα, τότε θα πρέπει να εισάγονται οι παρακάτω δύο γραμμές. Έτσι επιτρέπεται η πρόσβασή στις βιβλιοθήκες της ALTERA, που εμπεριέχουν τη βιβλιοθήκη των μακροσυναρτήσεων (macrofunctions) στη διεύθυνση c:\maxplus2\max2lib\mf. Μια μακροσυνάρτηση είναι ένα πρόγραμμα σε γλώσσα VHDL που μιμείται τη λειτουργία ενός κλασικού ολοκληρωμένου κυκλώματος τεχνολογίας TTL, μεσαίας βαθμίδας ολοκλήρωσης με όλες τις εισόδους και εξόδους του. LIBRARY ALTERA; USE ALTERA.MAXPLUS2.ALL; Το ENTITY ορίζεται ως το όνομα της αυτοτελούς μονάδος καθώς και οι είσοδοι και έξοδοι της, με τη δεσμευμένη λέξη PORT. Τα CLK, TROXONOMOS, CLRN αποτελούν τα σήματα εισόδου, ενώ τα Z1, Z2, Z3 αποτελούν τα σήματα εξόδου. Η κατεύθυνσή τους προσδιορίζεται με τη χρήση των λ εξεων IN και OUT. Με τη μορφή σήματος STD_LOGIC μπορούν να οριστούν σήματα και άλλων επιπλέον λογικών καταστάσεων. ENTITY daylights1 IS PORT (CLK, TROXONOMOS, CLRN :IN STD_LOGIC; Z1, Z2, Z3 :OUT STD_LOGIC); END daylights1; Με τη δήλωση ARCHITECTURE ορίζεται η εσωτερική δομή της μονάδας. Η λέξη κλειδί SIGNAL δηλώνει δεδομένα σημάτων που κινούνται στα καλώδια του κυκλώματος. Η SIGNAL ακολουθείται πάντα από το όνομα και τον τύπο του σήματος. Στην προκειμένη περίπτωση τα ονόματα των σημάτων που δηλώνονται είναι CK, DA, DB, DC, QA, QB, QC, HIGH. Στην συνέχεια ξεκινάει η υλοποίηση του κυρίως προγράμματος, μετά γίνεται η αρχικοποίηση των σημάτων HIGH και CK με τον τελεστή ανάθεσης σήματος (<=). Επίσης, γίνεται υλοποίηση των εισόδων των Flip Flop DA, DB, DC μέσω των εξισώσεων που προέκυψαν από τους πίνακες Karnaugh. Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 93

96 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής ARCHITECTURE circuit OF daylights1 IS SIGNAL CLR, CK, DA, DB, DC, QA, QB, QC, HIGH :STD_LOGIC; BEGIN HIGH<='1'; CK<=CLK; CLR<=CLRN; DA<= TROXONOMOS; DB<=(NOT TROXONOMOS AND NOT QB AND QC) OR (NOT TROXONOMOS AND QB AND NOT QC); DC<=(NOT TROXONOMOS AND NOT QA AND NOT QC); Για να συνδέσουμε το στιγμιότυπο με τα υπόλοιπα κυκλώματα χρησιμοποιούμε τη λέξη κλειδί PORT MAP. Υποδεικνύει, δηλαδή, ποια σήματα θα συνδεθούν στις εισόδους και τις εξόδους ενός D Flip-Flop. Από τις εξισώσεις που έχουν υλοποιηθεί βάση των πινάκων Karnaugh προκύπτει ο παρακάτω τρόπος προγραμματισμού για τις εξόδους. FFC:DFF PORT MAP (D=>DC, CLK=>CK, CLRN=>CLR, PRN=>HIGH, Q=>QC); FFB:DFF PORT MAP (D=>DB, CLK=>CK, CLRN=>CLR, PRN=>HIGH, Q=>QB); FFA:DFF PORT MAP (D=>DA, CLK=>CK, CLRN=>CLR, PRN=>HIGH, Q=>QA); Z1<=(NOT QC); Z2<=(QA OR QC); Z3<=(NOT QA); END circuit; Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 94

97 Πτυχιακή Εργασία 2 ος τρόπος: Υλοποίηση με τους πίνακες αληθείας. Όταν πρόκειται να χρησιμοποιηθεί η μορφή σήματος STANDARD LOGIC, που είναι συμβατή με τις υπόλοιπες λειτουργίες των βιβλιοθηκών της ALTERA, θα πρέπει πάντα να εισάγονται στην αρχή του προγράμματος οι επόμενες δύο γραμμές. LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; Τα CLK, RESET, TROXONOMOS αποτελούν τα σήματα εισόδου, ενώ το Ζ αποτελεί ένα σήμα εξόδου. Το σήμα εξόδου δηλώνεται με την μορφή STD_LOGIC_VECTOR (3 DOWNTO 1), που αποτελεί μια σειρά τεσσάρων μεμονωμένων δυαδικών ψηφίων, καθένα από τα οποία αποτελεί ένα ανεξάρτητο σήμα, με το ψηφίο d 3 ως περισσότερο σημαντικό ψηφίο και το ψηφίο d 1 ως λιγότερο σημαντικό ψηφίο. ENTITY daylights IS PORT (CLK, RESET, TROXONOMOS : IN STD_LOGIC; Z : OUT STD_LOGIC_VECTOR(3 DOWNTO 1)); END ENTITY daylights; Με τη δήλωση ARCHITECTURE γίνεται η εσωτερική δομή της μονάδας. Η λέξη κλειδί TYPE ακολουθούμενη από το αντικείμενο δεδομένων STATE_TYPE χρησιμοποιείται για να δηλώσει ονόματα καταστάσεων στα ακολουθιακά κυκλώματα. Αυτή η μορφή δήλωσης σήματος δίνει τη δυνατότητα στον χρήστη να πάρει την απόφαση για το ποιες θα είναι όλες οι δυνατές τιμές για τα δεδομένα και ονομάζεται enumerated τύπος. Η SIGNAL ακολουθείται πάντα από το όνομα και τον τύπο του σήματος. Στην προκειμένη περίπτωση από την επόμενη κατάσταση NEXTSTATE και παίρνει τις τιμές που έχουν δηλωθεί στο STATE_TYPE. ARCHITECTURE circuit OF daylights IS TYPE STATE_TYPE IS (K0, K1, K2, K3, K4); SIGNAL NEXTSTATE : STATE_TYPE; Μέσα σε μια εντολή PROCESS βρίσκονται φωλιασμένες μοναδικές ακολουθιακές (sequential) εντολές που εκτελούνται σειριακά από το μεταφραστή. Η εντολή αυτή αποτελεί μια σύγχρονη εντολή καθώς το τελικό της αποτέλεσμα εκτελείται παράλληλα με τις άλλες σύγχρονες εντολές από το μεταφραστή. Επίσης, η χρήση της λέξης PROCESS έγινε για να επιτρέψει την χρήση των εντολών IF και ELSE, προκειμένου να δημιουργηθεί η προτεραιότητα με την οποία επηρεάζουν την λειτουργία του κυκλώματος οι είσοδοί του. BEGIN SEQ:PROCESS (CLK, RESET) IS BEGIN IF (RESET = '0') THEN Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 95

98 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής NEXTSTATE <= K0; ELSIF(CLK='1' AND CLK 'EVENT) THEN Ακολουθεί ο τρόπος που γίνεται η προτεραιότητα των εισόδων. Για να επιτευχθεί η προτεραιότητα χρησιμοποιείται η δήλωση αφιέρωσης σήματος υπό συνθήκη δια μέσου των εντολών WHEN και ELSE. Αν η συνθήκη μετά την εντολή WHEN δεν είναι αληθινή, η εντολή ELSE παραπέμπει στην επόμενη πρόταση κ.ο.κ. μέχρι που να βρεθεί αληθινή συνθήκη. Η ακολουθιακή μορφή που έχει η διαδικασία δήλωσης αφιέρωσης σήματος υπό συνθήκη επιτρέπει με βάση την σειρά αναγραφής και άρα εκτέλεσης των δηλώσεων. Η διαδικασία είναι ίδια για όλες τις υπορουτίνες, που ακολουθούνται για τον έλεγχο των εισόδων (RIGHT και LEFT) που βρίσκονται μέσα στην CASE. Παρακάτω παρουσιάζεται μόνο η κατάσταση K0 καθώς ακολουθείται η ίδια διαδικασία και για τις υπόλοιπες. WHEN K0 => IF TROXONOMOS ='0' THEN NEXTSTATE<=K1; ELSE NEXTSTATE<=K4; END CASE; Ακολουθείται η διαδικασία ελέγχου των εξόδων με βάση τον πίνακα αληθείας. Και τέλος, κλείνει πρώτα η διαδικασία PROCESS και μετά όλο το πρόγραμμα. CASE NEXTSTATE IS WHEN K0 =>Z<="101"; WHEN K1 =>Z<="011"; WHEN K2 =>Z<="101"; WHEN K3 =>Z<="011"; WHEN K4 =>Z<="110"; END CASE; END PROCESS; END circuit; Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 96

99 Πτυχιακή Εργασία 2 η Περίπτωση: Κύκλωμα Ρύθμισης Φωτεινών Σηματοδοτών Σε Μια Διασταύρωση Κατά Τη Διάρκεια Της Νύχτας. Να σχεδιαστεί ένα ψηφιακό σύστημα ελέγχου, που θα ελέγχει τους φωτεινούς σηματοδότες κυκλοφορίας σε μια διασταύρωση κατά τη διάρκεια της νύχτας. Η κυκλοφορία της διασταύρωσης θα ελέγχεται από έναν αισθητήρα, που θα βρίσκεται σε κάποια απόσταση από τα φανάρια. Μόλις πατηθεί από ένα αυτοκίνητο τότε αυτόματα το φανάρι θα πάρει την αμέσως επόμενη κατάσταση. Όταν δεν πατηθεί ο αισθητήρας τότε οι σηματοδότες θα λειτουργούν κανονικά ανά ένα παλμό. Αυτό σημαίνει ότι, προσπαθούμε να έχουμε οποιαδήποτε στιγμή αυτοκίνητο στον δρόμο. Διαδικασία Σχεδίασης: Από την εκφώνηση συμπεραίνεται ότι θα έχουμε τρεις φωτεινούς σηματοδότες συνολικά για την υλοποίηση της άσκησης, οι οποίοι θα αντιστοιχούν στην κόκκινη, πορτοκαλί και πράσινη ένδειξη των φαναριών αλλά και έναν αισθητήρα που θα υπάρχει καθοδόν των δρόμων. Ο τρόπος που απεικονίζεται είναι ο παρακάτω (Σχήμα ). Βορράς Αισθητήρας Ανατολή Tree Δύση Νότος Σχήμα : Απεικόνιση διασταύρωσης κατά τη διάρκεια της νύχτας. Για την κατανόηση του συστήματος πρέπει να καθορίσουμε τις εισόδους. Στην προκειμένη περίπτωση έχουμε μόνο τον αισθητήρα και τον παλμό που παίρνει από το clock. Η είσοδος που θα έχουμε είναι η Χ, όπου όταν είναι σε κατάσταση 0 τότε οι σηματοδότες θα λειτουργούν κανονικά. Όταν, όμως, είναι σε κατάσταση 1 σημαίνει ότι ο αισθητήρας ΒΝ έχει πατηθεί με αποτέλεσμα οι σηματοδότες να πάνε αυτόματα στην επόμενη κατάσταση. Παραδείγματος χάριν αν στον δρόμο ΑΔ (Ανατολή Δύση) ο φωτεινός σηματοδότης είναι κόκκινος και πατηθεί ο αισθητήρας Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 97

100 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής τότε ο φωτεινός σηματοδότης θα αλλάξει και θα γίνει πράσινος. Ενώ στον δρόμο ΒΝ (Βορράς Νότος) θα είναι πράσινο και μετά θα αλλάξει και θα πάει στην πορτοκαλί ένδειξη. Στο σημείο αυτό ακολουθεί το διάγραμμα καταστάσεων (Σχήμα ), το οποίο αναπαριστά όλες τις πιθανές περιπτώσεις που μπορεί να δημιουργηθούν με βάση των παραπάνω. Το διάγραμμα καταστάσεων μπορεί να χρησιμοποιηθεί για να ορίσει τη λειτουργία ενός ακολουθιακού κυκλώματος. Επίσης, χρησιμοποιείται για να παραστήσει τη συνολική λειτουργία του κυκλώματος. X=0 ή 1 K 0 K 1 X=0 ή 1 X=0 ή 1 K 3 K 2 X=0 ή 1 Σχήμα : Διάγραμμα καταστάσεων. Από το παραπάνω διάγραμμα καταστάσεων μπορεί να συνταχθεί ο πίνακας καταστάσεων του συστήματος. Ο πίνακας καταστάσεων χρησιμοποιείται για να ορίσει τη λειτουργία ενός ακολουθιακού κυκλώματος, αλλά επίσης χρησιμοποιείται κυρίως για την σχεδίαση του κυκλώματος. Ο τρόπος με τον οποίο μπορεί να παρασταθεί ένα ακολουθιακό κύκλωμα είναι το μοντέλο moore. Στη περίπτωση αυτή οι γραμμές του πίνακα καταστάσεων αντιστοιχούν στις παρούσες καταστάσεις ενώ οι στήλες στους συνδυασμούς των εισόδων. Οι καταχωρήσεις που θα υπάρχουν στον πίνακα είναι οι επόμενες καταστάσεις που σχετίζονται με το συνδυασμό των εισόδων και των παρουσών καταστάσεων. Τέλος υπάρχει μια στήλη που δείχνει τη κατάσταση της εξόδου για τη κάθε γραμμή παρούσας κατάστασης. Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 98

101 Πτυχιακή Εργασία Πίνακας Πίνακας καταστάσεων (Μοντέλο moore) Παρούσα Κατάσταση Είσοδος X Έξοδοι QA QB QC X = 0 X= 1 Z1 Z2 Z3 K 0 K 1 K K 1 K 2 K K 2 K 3 K K 3 K 0 K X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X Για να παρασταθούν οι καταστάσεις K 0, K 1, K 2, και K 3 απαιτούνται τρεις μεταβλητές κατάστασης Q A Q B Q C. Άρα, απαιτούνται και τρία flip - flop. Στη συγκεκριμένη περίπτωση χρησιμοποιούμε D flip - flop, τα D A, D B, και D C. Ο τρόπος που εκχωρούνται οι δυαδικοί συνδυασμοί στις καταστάσεις ενός κυκλώματος, επηρεάζει την πολυπλοκότητα του συνδυαστικού μέρους. Στη συνέχεια θα δείξουμε πως απεικονίζονται οι έξοδοι του συστήματος στις καταστάσεις K 0, K 1, K 2 και K 3 των αντίστοιχων δρόμων της διασταύρωσης: K 0 : Ζ1 1 - NSGreen K 1 : Ζ1 0 - NSGreen K 2 : Ζ1 1 - EWGreen Ζ2 0 - NSYellow Ζ2 1 - NSYellow Ζ2 0 - EWYellow Ζ3 1 - EWRed Ζ3 1 - EWRed Ζ3 1 - NSRed K 3 : Ζ1 1 - NSRed Ζ2 1 - EWYellow Ζ3 0 - EWGreen Σύμφωνα με τις παραπάνω εκχωρήσεις στις μεταβλητές κατάστασης Q A Q B Q C, ο πίνακας καταστάσεων του συστήματος μετατρέπεται όπως φαίνεται στον πίνακα : Πίνακας Πίνακας Μεταβάσεων του αναγνωριστή Παρούσα Κατάσταση Είσοδος X Έξοδοι QA QB QC X = 0 X= 1 Z1 Z2 Z X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 99

102 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Ο παραπάνω πίνακας μπορεί να πάρει την μορφή του πίνακα Μεταβάσεων : Πίνακας Μεταβάσεων Πρωτεύουσα Παρούσα Επόμενη Πρωτεύουσα Δεκαδικός Είσοδος Κατάσταση Κατασταση Έξοδος X Q A Q B Q C Q A Q B Q C Z 1 Z 2 Z Χ Χ Χ X X X Χ Χ Χ X X X Χ Χ Χ X X X Χ Χ Χ X X X Χ Χ Χ X X X Χ Χ Χ X X X Χ Χ Χ X X X Χ Χ Χ X X X Στον πίνακα μεταβάσεων βλέπουμε τις επόμενες καταστάσεις των D flip - flop για κάθε συνδυασμό παρούσας κατάστασης εισόδου. Η τιμή της εισόδου διέγερσης είναι ίδια με την τιμή της επόμενης κατάστασης ενός D flip flop. Οι τιμές στον πίνακα μεταβάσεων δίνουν τις απαιτούμενες διεγέρσεις των D flip flop, όπως απεικονίζονται στον πίνακα διεγέρσεων Πίνακας Διεγέρσεων Πρωτεύουσες Παρούσα Επόμενη Δευτερεύουσα Πρωτεύουσα Δεκαδικός Είσοδοι Κατάσταση Κατασταση Έξοδος Έξοδος X Q A Q B Q C Q A Q B Q C D A D B D C Z 1 Z 2 Z Χ Χ Χ Χ Χ Χ X X X Χ Χ Χ Χ Χ Χ X X X Χ Χ Χ Χ Χ Χ X X X Χ Χ Χ Χ Χ Χ X X X Χ Χ Χ Χ Χ Χ X X X Χ Χ Χ Χ Χ Χ X X X Χ Χ Χ Χ Χ Χ X X X Χ Χ Χ Χ Χ Χ X X X Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 100

103 Πτυχιακή Εργασία Για τη δημιουργία του ακολουθιακού κυκλώματος του συστήματος που επιθυμούμε να υλοποιήσουμε απαιτείται η εύρεση των ελάχιστων συναρτήσεων των πρωτευουσών και δευτερευουσών εξόδων. Αυτό επιτυγχάνεται με τους χάρτες Karnaugh. XQ A Q B Q C XQ A Q B Q C X X X X X X X X X X X X X X X X 1 D A = Q A D B = Q B Q C + Q B Q C = (Q B + Q C ) XQ A00 XQ A Q B Q C Q B Q X X 1 C 00 1 X X X X X X X X X X X X X X 1 D C = Q C Z 1 = Q B + Q C XQ A Q B Q C XQ A Q B Q C X X X X X X X X X X X X X X X X 1 Z 2 = Q C Z 3 = Q B + Q C Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 101

104 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Παρακάτω απεικονίζεται το ακολουθιακό κύκλωμα που προκύπτει από τις ελάχιστες συναρτήσεις που διεξαχθήκαν από τους πίνακες Karnaugh (Σχήμα ). Σχήμα : Ακολουθιακό Κύκλωμα. Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 102

105 Πτυχιακή Εργασία Εισαγωγή σχεδίασης δια μέσου κώδικα VHDL: Η άσκηση θα υλοποιηθεί με δύο τρόπους. Ο πρώτος τρόπος υλοποιείται με τη βοήθεια των ελάχιστων συναρτήσεων που έχουν εξαχθεί από τους πίνακες Karnaugh, που δημιουργήθηκαν παραπάνω. Ενώ ο δεύτερος τρόπος υλοποιείται με την βοήθεια των πινάκων αληθείας. 1 ος Τρόπος: Υλοποίηση με τις εξισώσεις. LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; LIBRARY ALTERA; USE ALTERA.MAXPLUS2.ALL; ENTITY nightlights1 IS PORT (CLK, AIS8HTHRAS, CLRN :IN STD_LOGIC; Z1, Z2, Z3 :OUT STD_LOGIC); END nightlights1; ARCHITECTURE circuit OF nightlights1 IS SIGNAL CLR, CK, DA, DB, DC, QA, QB, QC, HIGH :STD_LOGIC; BEGIN HIGH<='1'; CK<=CLK; CLR<=CLRN; DA<=QA; DB<=(QB XOR QC); DC<=NOT QC; FFC:DFF PORT MAP (D=>DC, CLK=>CK, CLRN=>CLR, PRN=>HIGH, Q=>QC); FFB:DFF PORT MAP (D=>DB, CLK=>CK, CLRN=>CLR, PRN=>HIGH, Q=>QB); FFA:DFF PORT MAP (D=>DA, CLK=>CK, CLRN=>CLR, PRN=>HIGH, Q=>QA); Z1<=(QB OR NOT QC); Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 103

106 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Z2<=(QC); Z3<=(NOT QB OR NOT QC); END circuit; Το αποτέλεσμα της προσομοίωσης του παραπάνω προγράμματος φαίνεται στο Σχήμα Σχήμα : Αποτελέσματα προσομοίωσης. Ακολουθεί και η απεικόνιση του Edit Sympol (Σχήμα ), που αποτελεί ένα τρόπο αναπαράστασης της λειτουργικής σχεδίασης των εισόδων και εξόδων, όπως φαίνεται παρακάτω: Σχήμα : Απεικόνιση λειτουργικής σχεδίασης. Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 104

107 Πτυχιακή Εργασία 2 ος Τρόπος: Υλοποίηση με τους πίνακες αληθείας. LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY nightlights IS PORT (CLK, RESET, AIS8HTHRAS : IN STD_LOGIC; Z : OUT STD_LOGIC_VECTOR(3 DOWNTO 1)); END ENTITY nightlights; ARCHITECTURE circuit OF nightlights IS TYPE STATE_TYPE IS (K0, K1, K2, K3); SIGNAL NEXTSTATE : STATE_TYPE; BEGIN PROCESS (CLK, RESET) IS BEGIN IF (RESET = '0') THEN NEXTSTATE <= K0; ELSIF(CLK='1' AND CLK 'EVENT) THEN CASE NEXTSTATE IS WHEN K0 => IF X='0' THEN NEXTSTATE<=K1 ; ELSE NEXTSTATE<=K1; WHEN K1 => IF X='0' THEN NEXTSTATE<=K2 ; ELSE NEXTSTATE<=K2; WHEN K2 => IF X='0' THEN NEXTSTATE<=K3 ; ELSE NEXTSTATE<=K3; WHEN K3 => IF X='0' THEN NEXTSTATE<=K0 ; ELSE NEXTSTATE<=K0; END CASE; Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 105

108 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής CASE NEXTSTATE IS WHEN K0 =>Z<="101"; WHEN K1 =>Z<="011"; WHEN K2 =>Z<="101"; WHEN K3 =>Z<="011"; END CASE; END PROCESS; END circuit; Το αποτέλεσμα της προσομοίωσης του παραπάνω προγράμματος φαίνεται στο Σχήμα Σχήμα : Αποτελέσματα προσομοίωσης. Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 106

109 Πτυχιακή Εργασία Σχολιασμός Κώδικα 1 ος Τρόπος: Υλοποίηση με τις εξισώσεις. Όπως έχει αναφερθεί, η γλώσσα VHDL έγινε βιομηχανικό πρότυπο της IEEE 1164 Standard. Για το λόγο αυτό όταν πρόκειται να χρησιμοποιηθεί η μορφή σήματος STANDARD LOGIC όπως επίσης και οι βιβλιοθήκες της ALTERA που εμπεριέχουν τη βιβλιοθήκη των μακροσυναρτήσεων θα πρέπει να εισάγονται στην αρχή του προγράμματος οι επόμενες τέσσερις γραμμές. LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; LIBRARY ALTERA; USE ALTERA.MAXPLUS2.ALL; Το ENTITY ορίζεται ως το όνομα της αυτοτελούς μονάδος καθώς και οι είσοδοι και έξοδοι της, με τη δεσμευμένη λέξη PORT. Με τα λεκτικά IN και OUT προσδιορίζεται η κατεύθυνσή των σημάτων εισόδου, CLK, AIS8HTHRAS, CLRN και εξόδου, Z1, Z2, Z3. ENTITY nightlights1 IS PORT (CLK, AIS8HTHRAS, CLRN :IN STD_LOGIC; Z1, Z2, Z3 :OUT STD_LOGIC); END nightlights1; Για να οριστεί η εσωτερική δομή της μονάδας χρησιμοποιούμε την εντολή ARCHITECTURE ενώ για να δείξουμε δεδομένα σημάτων που κινούνται στα καλώδια του κυκλώματος, τη λέξη κλειδί SIGNAL. Η SIGNAL ακολουθείται πάντα από το όνομα και τον τύπο του σήματος, που στη περίπτωσή μας είναι τα CK, DA, DB, DC, QA, QB, QC, HIGH. Στην συνέχεια ξεκινάει η υλοποίηση του κυρίως προγράμματος, μετά γίνεται η αρχικοποίηση των σημάτων HIGH και CK με τον τελεστή ανάθεσης σήματος (<=). Επίσης, γίνεται υλοποίηση των εισόδων των Flip Flop DA, DB, DC μέσω των εξισώσεων που προέκυψαν από τους πίνακες Karnaugh. ARCHITECTURE circuit OF nightlights1 IS SIGNAL CLR, CK, DA, DB, DC, QA, QB, QC, HIGH :STD_LOGIC; BEGIN HIGH<='1'; CK<=CLK; CLR<=CLRN; DA<=QA; DB<=(QB XOR QC); DC<=NOT QC; Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 107

110 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Στη συνέχεια πραγματοποιείται η σύνδεση του στιγμιότυπου με τα υπόλοιπα κυκλώματα χρησιμοποιώντας τη λέξη κλειδί PORT MAP. Υποδεικνύει, δηλαδή, ποια σήματα θα συνδεθούν στις εισόδους και τις εξόδους ενός D Flip-Flop. Από τις εξισώσεις που έχουν υλοποιηθεί βάση των πινάκων Karnaugh προκύπτει ο παρακάτω τρόπος προγραμματισμού για τις εξόδους. FFC:DFF PORT MAP (D=>DC, CLK=>CK, CLRN=>CLR, PRN=>HIGH, Q=>QC); FFB:DFF PORT MAP (D=>DB, CLK=>CK, CLRN=>CLR, PRN=>HIGH, Q=>QB); FFA:DFF PORT MAP (D=>DA, CLK=>CK, CLRN=>CLR, PRN=>HIGH, Q=>QA); Z1<=(QB OR NOT QC); Z2<=(QC); Z3<=(NOT QB OR NOT QC); Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 108

111 Πτυχιακή Εργασία 2 ος Τρόπος: Υλοποίηση με τους πίνακες αληθείας. Η ARCHITECTURE αποτελεί την εσωτερική δομή της μονάδας. Το STATE_TYPE χρησιμοποιείται για να δηλώσει ονόματα καταστάσεων στα ακολουθιακά κυκλώματα. Στην προκειμένη περίπτωση έχουμε τις καταστάσεις K0, K1, K2, K3. Η SIGNAL ακολουθείται πάντα από το όνομα και τον τύπο του σήματος. Ακολουθούν οι ακολουθιακές εντολές που είναι φωλιασμένες στην λέξη κλειδί PRO- CESS. Και τέλος η διαδικασία προτεραιότητας των εισόδων δια μέσου των εντολών WHEN και ELSE. Ενδεικτικά παρακάτω παρουσιάζεται η κατάσταση K0. ARCHITECTURE circuit OF nightlights IS TYPE STATE_TYPE IS (K0, K1, K2, K3); SIGNAL NEXTSTATE : STATE_TYPE; BEGIN PROCESS (CLK, RESET) IS BEGIN IF (RESET = '0') THEN NEXTSTATE <= K0; ELSIF(CLK='1' AND CLK 'EVENT) THEN CASE NEXTSTATE IS WHEN K0 => IF X='0' THEN NEXTSTATE<=K1 ; ELSE NEXTSTATE<=K1; END CASE; Ακολουθείται η διαδικασία ελέγχου των εξόδων με βάση τον πίνακα αληθείας. Και τέλος, κλείνει πρώτα η διαδικασία PROCESS και μετά όλο το πρόγραμμα. CASE NEXTSTATE IS WHEN K0 =>Z<="101"; WHEN K1 =>Z<="011"; WHEN K2 =>Z<="101"; WHEN K3 =>Z<="011"; END CASE; END PROCESS; END circuit; Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 109

112 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής 3 η Περίπτωση: Κύκλωμα Ρύθμισης Φωτεινών Σηματοδοτών Σε Μια Διασταύρωση Κατά Τη Διάρκεια Της Ημέρας Αλλά Και Της Νύχτας. Να σχεδιαστεί ένα ψηφιακό σύστημα ελέγχου, που θα ελέγχει τους φωτεινούς σηματοδότες κυκλοφορίας σε μια διασταύρωση όλο το εικοσιτετράωρο. Την μέρα η κυκλοφορία της διασταύρωσης θα ελέγχεται από έναν τροχονόμο, ο οποίος θα έχει μια συσκευή, όπου θα πατάει ένα διακόπτη ώθησης (push button) που θα απενεργοποιεί τα φανάρια. Τότε τα φανάρια θα ανάβουν σταθερά πορτοκαλί. Όταν δεν υπάρχει ο τροχονόμος τότε οι σηματοδότες θα λειτουργούν κανονικά ανά ένα παλμό. Αυτό σημαίνει ότι, όταν τα αυτοκίνητα θα κινούνται στο δρόμο ΑΔ (Ανατολή Δύση), οι αντίστοιχοι σηματοδότες θα είναι πράσινοι και οι σηματοδότες του δρόμου ΒΝ (Βοράς Νότος) κόκκινοι και το αντίστροφο. Όταν είναι να γίνει η εναλλαγή από πράσινο σε κόκκινο τότε θα περνάει από την κατάσταση του πορτοκαλί. Κατά τη διάρκεια της νύχτας τα φανάρια θα λειτουργούν όπως και την μέρα, όταν δεν υπάρχει τροχονόμος. Η διαφορά θα είναι ότι πριν τους σηματοδότες θα υπάρχει στο δρόμο ένας αισθητήρας, πού μόλις περάσει ένα αμάξι θα ενεργοποιηθεί. Οι σηματοδότες θα πάρουν αμέσως την επόμενη κατάσταση. Για παράδειγμα, αν στον δρόμο αυτόν ο σηματοδότης είναι πράσινος και πατηθεί ο διακόπτης, θα ανάψει πορτοκαλί και στη συνέχεια κόκκινο. Ακόμα, η διάρκεια που θα κρατάει το πορτοκαλί θα είναι δύο δευτερόλεπτα, ενώ η διάρκεια που θα κρατάει η κόκκινη και πράσινη ένδειξη θα είναι έξι δευτερόλεπτα. Διαδικασία Σχεδίασης: Από την εκφώνηση συμπεραίνεται ότι θα έχουμε τρεις φωτεινούς σηματοδότες συνολικά για κάθε δρόμο της διασταύρωσης, οι οποίοι θα αντιστοιχούν στην κόκκινη, πορτοκαλί και πράσινη ένδειξη των φαναριών. Ο τρόπος που απεικονίζεται είναι ο παρακάτω (Σχήμα ). Βορράς Ανατολή Αισθητήρας Αισθητήρας Δύση Νότος Σχήμα : Απεικόνιση των σηματοδοτών μιας διασταύρωσης. Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 110

113 Πτυχιακή Εργασία Για την κατανόηση του συστήματος πρέπει να καθορίσουμε τις εισόδους. Έχουμε δύο διακόπτες X και X1. Με τον X καθορίζουμε αν τα φανάρια θα λειτουργούν την μέρα ή την νύχτα. Δηλαδή αν X=0, τότε τα φανάρια θα λειτουργούν κατά τη διάρκεια της μέρας, ενώ αν X=1, τότε θα λειτουργούν κατά τη διάρκεια της νύχτας. Ο διακόπτης X1 καθορίζει αντίστοιχα τον τροχονόμο την ημέρα και τον αισθητήρα την νύχτα. Κατά τη διάρκεια της μέρας (X=0), αν ο τροχονόμος έχει πατήσει τον διακόπτη από την συσκευή (X1=1) τότε οι σηματοδότες θα ανάβουν σταθερά πορτοκαλί. Ενώ κατά τη διάρκεια της νύχτας (X=1), αν ένα αμάξι ενεργοποιήσει τον αισθητήρα οι σηματοδότες θα αλλάξουν κατάσταση και θα πάνε στην επόμενη. Στο σημείο αυτό ακολουθεί το διάγραμμα καταστάσεων (Σχήμα ), το οποίο αναπαριστά όλες τις πιθανές περιπτώσεις που μπορεί να δημιουργηθούν με βάση των παραπάνω. Το διάγραμμα καταστάσεων μπορεί να χρησιμοποιηθεί για να ορίσει τη λειτουργία ενός ακολουθιακού κυκλώματος. X=00,10,11 K 0 K 1 X=01 X=00 X=01 X=00,10,11 K 4 X=00,10,11 X=01 X=01 X=01 K 3 X=00,10,11 K 2 Σχήμα : Διάγραμμα καταστάσεων. Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 111

114 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Από το παραπάνω διάγραμμα καταστάσεων μπορεί να συνταχθεί ο πίνακας καταστάσεων του συστήματος. Ο πίνακας καταστάσεων εκτός του ότι χρησιμοποιείται για να ορίσει τη λειτουργία ενός ακολουθιακού κυκλώματος, χρησιμοποιείται κυρίως για την σχεδίαση του κυκλώματος. Ο τρόπος με τον οποίο μπορεί να παρασταθεί ένα ακολουθιακό κύκλωμα είναι το μοντέλο moore. Στη περίπτωση αυτή οι γραμμές του πίνακα καταστάσεων αντιστοιχούν στις παρούσες καταστάσεις ενώ οι στήλες στους συνδυασμούς των εισόδων. Οι καταχωρήσεις που θα υπάρχουν στον πίνακα είναι οι επόμενες καταστάσεις που σχετίζονται με το συνδυασμό των εισόδων και των παρουσών καταστάσεων. Τέλος υπάρχει μια στήλη που δείχνει τη κατάσταση της εξόδου για τη κάθε γραμμή παρούσας κατάστασης. Πίνακας Πίνακας καταστάσεων (Μοντέλο moore) Παρ.Κατ. Είσοδος X Έξοδοι X Q A Q B Q 1 X 2 X 1 X 2 X 1 X 2 X 1 X 2 C Z 1 Z 2 Z 3 Z 4 Z 5 Z 6 Z 7 Z 8 Z 9 Z 10 Z 11 Z 12 K 0 K 1 K 4 K 1 K K 1 K 2 K 4 K 2 K K 2 K 3 K 4 K 3 K K 3 K 0 K 4 K 0 K K 4 K 0 K 4 K 0 K XXX XXX XXX XXX XXX Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ XXX XXX XXX XXX XXX Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ XXX XXX XXX XXX XXX Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Για να παρασταθούν οι καταστάσεις K 0, K 1, K 2, K 3, και K 4 απαιτούνται κανονικά τέσσερις μεταβλητές Q A Q B Q C Q D και τέσσερα flip flop ώστε να υλοποιηθούν οι δώδεκα έξοδοι που αντιστοιχούν σε τρια LED (κόκκινο, πορτοκαλί και πράσινο) για τον κάθε ορίζοντα. Οι σηματοδότες του Βορρά θα ενεργοποιούνται με τον ίδιο τρόπο με του Νότου. Το ίδιο συμβαίνει και για την Ανατολή και Δύση. Γι αυτό, δε χρειάζεται να πάρουμε τέταρτο flip flop, καθώς θα παίρνουμε τις ίδιες εισόδους για δύο εξόδους (π.χ. Z 1 και Z 4 ). Άρα, απαιτούνται τρία flip flop και τρεις μεταβλητές Q A Q B Q C. Στη συγκεκριμένη περίπτωση χρησιμοποιούμε D flip - flop, οπότε τα D A, D B, και D C. Ο τρόπος που εκχωρούνται οι δυαδικοί συνδυασμοί στις καταστάσεις ενός κυκλώματος, επηρεάζει την πολυπλοκότητα του συνδυαστικού μέρους. Στη συνέχεια θα δείξουμε πως θα εκχωρήσουμε τις μεταβλητές Q A Q B Q C στις καταστάσεις K 0, K 1, K 2, K 3, και K 4 : K 0 : Q A 0 K 1 : Q A 0 K 2 : Q A 0 K 3 : Q A 0 K 4 : Q A 1 Q B 0 Q B 0 Q B 1 Q B 1 Q B 0 Q C 0 Q C 1 Q C 0 Q C 1 Q C 0 Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 112

115 Πτυχιακή Εργασία Σύμφωνα με τις παραπάνω εκχωρήσεις στις μεταβλητές κατάστασης Q A Q B Q C, ο πίνακας καταστάσεων του συστήματος μετατρέπεται όπως φαίνεται στον πίνακα : Πίνακας Πίνακας Μεταβάσεων του αναγνωριστή Παρ.Κατ. Είσοδος X Έξοδοι X Q A Q B Q 1 X 2 X 1 X 2 X 1 X 2 X 1 X 2 C Z 1 Z 2 Z 3 Z 4 Z 5 Z 6 Z 7 Z 8 Z 9 Z 10 Z 11 Z XXX XXX XXX XXX XXX Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ XXX XXX XXX XXX XXX Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ XXX XXX XXX XXX XXX Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Ο παραπάνω πίνακας μπορεί να πάρει την μορφή του πίνακα Μεταβάσεων : Πίνακας Μεταβάσεων Πρωτ. Δεκ. Παρ. Κατ. Επόμενη Κατ. Πρωτεύουσα Έξοδος Είσ X 1 X 2 Q A Q B Q C Q A Q B Q C Z 1 Z 2 Z 3 Z 4 Z 5 Z 6 Z 7 Z 8 Z 9 Z 10 Z 11 Z Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ 6 00 Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ 7 00 Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 113

116 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Στον πίνακα μεταβάσεων βλέπουμε τις επόμενες καταστάσεις των D flip - flop για κάθε συνδυασμό παρούσας κατάστασης εισόδου. Η τιμή της εισόδου διέγερσης είναι ίδια με την τιμή της επόμενης κατάστασης ενός D flip flop. Οι τιμές στον πίνακα μεταβάσεων δίνουν τις απαιτούμενες διεγέρσεις των D flip flop, όπως απεικονίζονται στον πίνακα διεγέρσεων : Δε κ Πρωτ Είσ. Παρ. Κατ. X 1X 2 Q A Q B Q C Q A + Επόμενη Κατ. Q B + Q C + Πίνακας Διεγέρσεων Δευτερεύουσ ες Έξοδοι Πρωτεύουσες Έξοδοι D A D B D C Z 1 Z 2 Z 3 Z 4 Z 5 Z 6 Z 7 Z 8 Z 9 Z 10 Z 11 Z Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Χ Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 114

117 Πτυχιακή Εργασία Για τη δημιουργία του ακολουθιακού κυκλώματος του συστήματος που επιθυμούμε να υλοποιήσουμε απαιτείται η εύρεση των ελάχιστων συναρτήσεων των πρωτευουσών και δευτερευουσών εξόδων. Αυτό επιτυγχάνεται με τους χάρτες Karnaugh. X 1 = 0 X 1 = 1 X 2 Q A X 2 Q A Q B Q C Q B Q C X X X X X X X X X X X X 0 D A = X 1 X 2 X X 2 Q 1 =0 X A00 X 2 Q 1 =1 A Q B Q C Q B Q C X X X X X X X X X X X X 1 D B = X 1 X 2 Q B Q C + X 1 X 2 Q B Q C + X 1 Q B Q C + X 1 Q B Q C = X 1 X 2 ( Q B Q C + Q B Q C ) + X 1 ( Q B Q C + Q B Q C ) = X 1 X 2 (Q B + Q C ) + X 1 (Q B + Q C ) X X 2 Q 1 = 0 X 1 = 1 A X 2 Q A00 Q B Q C Q B Q C X X X X X X X X X X X X 1 D C = X 1 X 2 Q A Q C + X 1 Q A Q C Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 115

118 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής X X 2 Q 1 = 0 X 1 = 1 A X 2 Q A00 Q B Q C Q B Q C X X X X X X X X X X X X 0 Z 1 = X 1 Q A Q B Q C + X 1 Q A Q B Q C = Q A Q B Q C ( X 1 + X 1 ) = Q A Q B Q C X X 2 Q 1 = 0 X 1 = 1 A X 2 Q A00 Q B Q C Q B Q C X X X X X X X X X X X X 0 Z 2 = X 1 Q A + X 1 Q B Q C + X 1 Q A + X 1 Q B Q C = Q A ( X 1 +X 1 ) + Q B Q C ( X 1 + X 1 ) = Q A + Q B Q C X X 2 Q 1 = 0 X 1 = 1 A X 2 Q A00 Q B Q C Q B Q C X X X X X X X X X X X X 1 Z 3 = X 1 Q B + X 1 Q B = QB ( X 1 + X 1 ) = Q B Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 116

119 Πτυχιακή Εργασία X X 2 Q 1 = 0 X 1 = 1 A X 2 Q A00 Q B Q C Q B Q C X X X X X X X X X X X X 0 Z 4 = X 1 Q A Q B Q C + X 1 Q A Q B Q C = Q A Q B Q C ( X 1 + X 1 ) = Q A Q B Q C X X 2 Q 1 = 0 X 1 = 1 A X 2 Q A00 Q B Q C Q B Q C X X X X X X X X X X X X 0 Z 5 = X 1 Q A + X 1 Q B Q C + X 1 Q A + X 1 Q B Q C = Q A ( X 1 +X 1 ) + Q B Q C ( X 1 + X 1 ) = Q A + Q B Q C X X 2 Q 1 = 0 X 1 = 1 A X 2 Q A00 Q B Q C Q B Q C X X X X X X X X X X X X 1 Z 6 = X 1 Q B + X 1 Q B = QB ( X 1 + X 1 ) = Q B Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 117

120 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής X X 2 Q 1 = 0 X 1 = 1 A X 2 Q A00 Q B Q C Q B Q C X X X X X X X X X X X X 1 Z 7 = X 1 Q B Q C + X 1 Q B Q C = Q B Q C ( X 1 + X 1 ) = Q B Q C X X 2 Q 1 = 0 X 1 = 1 A X 2 Q A00 Q B Q C Q B Q C X X X X X X X X X X X X 0 Z 8 = X 1 Q A + X 1 Q B Q C + X 1 Q A + X 1 Q B Q C = Q A ( X 1 + X 1 ) + Q B Q C ( X 1 + X 1 ) = Q A + Q B Q C X X 2 Q 1 = 0 X 1 = 1 A X 2 Q A00 Q B Q C Q B Q C X X X X X X X X X X X X 0 Z 9 = X 1 Q A Q B + X 1 Q A Q B = Q A Q B ( X 1 + X 1 ) = Q A Q B Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 118

121 Πτυχιακή Εργασία X X 2 Q 1 = 0 X 1 = 1 A X 2 Q A00 Q B Q C Q B Q C X X X X X X X X X X X X 1 Z 10 = X 1 Q B Q C + X 1 Q B Q C = Q B Q C ( X 1 + X 1 ) = Q B Q C X X 2 Q 1 = 0 X 1 = 1 A X 2 Q A00 Q B Q C Q B Q C X X X X X X X X X X X X 0 Z 11 = X 1 Q A + X 1 Q B Q C + X 1 Q A + X 1 Q B Q C = Q A ( X 1 + X 1 ) + Q B Q C ( X 1 + X 1 ) = Q A + Q B Q C X X 2 Q 1 = 0 X 1 = 1 A X 2 Q A00 Q B Q C Q B Q C X X X X X X X X X X X X 0 Z 12 = X 1 Q A Q B + X 1 Q A Q B = Q A Q B ( X 1 + X 1 ) = Q A Q B Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 119

122 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Εισαγωγή σχεδίασης δια μέσου κώδικα VHDL: Η άσκηση θα υλοποιηθεί με τρεις τρόπους. Ο πρώτος τρόπος υλοποιείται με τη βοήθεια των ελάχιστων συναρτήσεων που έχουν εξαχθεί από τους πίνακες Karnaugh, που δημιουργήθηκαν παραπάνω. Ενώ οι άλλοι δύο τρόποι υλοποιείται με την βοήθεια των πινάκων αληθείας. 1 ος Τρόπος: Υλοποίηση με τις εξισώσεις. LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; LIBRARY ALTERA; USE ALTERA.MAXPLUS2.ALL; ENTITY daynightlights1 IS PORT (CLK, X, X1, CLRN :IN STD_LOGIC; Z1, Z2, Z3, Z4, Z5, Z6, Z7, Z8, Z9, Z10, Z11, Z12 :OUT STD_LOGIC); END daynightlights1; ARCHITECTURE circuit OF daynightlights1 IS SIGNAL CLR, CK, DA, DB, DC, QA, QB, QC, HIGH :STD_LOGIC; BEGIN HIGH<='1'; CK<=CLK; CLR<=CLRN; DA<=(NOT X AND X1); DB<=(NOT X AND NOT X1 AND NOT QB AND QC) OR (NOT X AND NOT X1 AND QB AND NOT QC) OR (X AND NOT QB AND QC) OR (X AND QB AND NOT QC); DC<=(NOT X AND NOT X1 AND NOT QA AND NOT QC) OR (X AND NOT QA AND NOT QC); FFC:DFF PORT MAP (D=>DC, CLK=>CK, CLRN=>CLR, PRN=>HIGH, Q=>QC); Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 120

123 Πτυχιακή Εργασία FFB:DFF PORT MAP (D=>DB, CLK=>CK, CLRN=>CLR, PRN=>HIGH, Q=>QB); FFA:DFF PORT MAP (D=>DA, CLK=>CK, CLRN=>CLR, PRN=>HIGH, Q=>QA); Z1<= (NOT QA AND NOT QB AND NOT QC) ; Z2<= (QA OR (NOT QB AND QC)); Z3<= (QB); Z4<= (NOT QA AND NOT QB AND NOT QC) ; Z5<= (QA OR (NOT QB AND QC)); Z6<= (QB); Z7<= (QB AND NOT QC); Z8<= (QA OR (QB AND QC)); Z9<= (NOT QA AND NOT QB); Z10<= (QB AND NOT QC); Z11<= (QA OR (QB AND QC)); Z12<= (NOT QA AND NOT QB); END circuit; Το αποτέλεσμα της προσομοίωσης του παραπάνω προγράμματος φαίνεται στο σχήμα Σχήμα : Αποτελέσματα προσομοίωσης. Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 121

124 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής 2 ος Τρόπος: Υλοποίηση με τους πίνακες αληθείας. LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY daynightlights IS PORT (CLK, RESET, X, X1 : IN STD_LOGIC; Z : OUT STD_LOGIC_VECTOR(12 DOWNTO 1); END ENTITY daynightlights; ARCHITECTURE circuit OF daynightlights IS TYPE STATE_TYPE IS (K0, K1, K2, K3, K4); SIGNAL NEXTSTATE : STATE_TYPE; BEGIN PROCESS (CLK,RESET) IS BEGIN IF (RESET = '0') THEN NEXTSTATE<= K0; ELSIF(CLK='1' AND CLK 'EVENT)THEN CASE NEXTSTATE IS WHEN K0 => IF (X='0') AND (X1='0') THEN NEXTSTATE<= K1 ; ELSIF (X='0') AND (X1='1') THEN NEXTSTATE<=K4 ; ELSIF (X='1') AND (X1='0') THEN NEXTSTATE<=K1 ; ELSIF (X='1') AND (X1='1') THEN NEXTSTATE<=K1 ; WHEN K1 => IF (X='0') AND (X1='0') THEN NEXTSTATE<=K2; ELSIF (X='0') AND (X1='1') THEN NEXTSTATE<=K4; ELSIF (X='1') AND (X1='0') THEN NEXTSTATE<=K2; ELSIF (X='1') AND (X1='1') THEN NEXTSTATE<=K2; WHEN K2 => IF (X='0') AND (X1='0') THEN NEXTSTATE<=K3; ELSIF (X='0') AND (X1='1') Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 122

125 Πτυχιακή Εργασία THEN NEXTSTATE<=K4; ELSIF (X='1') AND (X1='0') THEN NEXTSTATE<=K3; ELSIF (X='1') AND (X1='1') THEN NEXTSTATE<=K3; WHEN K3 => IF (X='0') AND (X1='0') THEN NEXTSTATE<=K0; ELSIF (X='0') AND (X1='1') THEN NEXTSTATE<=K4; ELSIF (X='1') AND (X1='0') THEN NEXTSTATE<=K0; ELSIF (X='1') AND (X1='1') THEN NEXTSTATE<=K0; WHEN K4 => IF (X='0') AND (X1='0') THEN NEXTSTATE<=K0; ELSIF (X='0') AND (X1='1') THEN NEXTSTATE<=K4; ELSIF (X='1') AND (X1='0') THEN NEXTSTATE<=K0; ELSIF (X='1') AND (X1='1') THEN NEXTSTATE<=K0; END CASE; CASE NEXTSTATE IS WHEN K0 =>Z<=" "; WHEN K1 =>Z<=" "; WHEN K2 =>Z<=" "; WHEN K3 =>Z<=" "; WHEN K4 =>Z<=" "; END CASE; END PROCESS; END circuit; Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 123

126 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Το αποτέλεσμα της προσομοίωσης του παραπάνω προγράμματος φαίνεται στο σχήμα Σχήμα : Αποτελέσματα προσομοίωσης. Η προσομοίωση που δημιουργήθηκε από το Waveform Editor του MAXPLUS II είναι ένας τρόπος για να παρουσιαστούν όλες οι περιπτώσεις που παίρνουν οι είσοδοι (Χ Χ1). Ακόμα αποτελεί έναν τρόπο για να διαπιστώσουμε εάν ο κώδικας που έχει υλοποιηθεί, θα δώσει τις σωστές αλλά και τις αντίστοιχες τιμές στα LED σύμφωνα με τις απαιτήσεις και τις προδιαγραφές του συστήματος. Στη συνέχεια έχουμε την απεικόνιση του Edit Sympol (Σχήμα ). Είναι ένας τρόπος αναπαράστασης της λειτουργικής σχεδίασης των εισόδων και εξόδων, όπως φαίνεται παρακάτω: Σχήμα : Απεικόνιση λειτουργικής σχεδίασης. Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 124

127 Πτυχιακή Εργασία 3 ος Τρόπος: Υλοποίηση με τους πίνακες αληθείας --Διαφοροποίηση. Ο τρόπος προγραμματισμού που ακολουθεί είναι μια διαφοροποίηση του προηγούμενου κώδικα των φωτεινών σηματοδοτών κατά τη διάρκεια της μέρας και της νύχτας. Χρησιμοποιείται για να μπορέσουμε να πάρουμε τους παλμούς για το κόκκινο πράσινο και πορτοκαλί. Δηλαδή, το κόκκινο και το πράσινο να διαρκούν το ίδιο (δηλ. να έχουν τον ίδιο παλμό), αλλά και τα δύο (κόκκινο πράσινο) να έχουν μεγαλύτερη διάρκεια (παλμό) από το πορτοκαλί. LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY daynightlights2 IS PORT (CLK, RESET, X, X1 : IN STD_LOGIC; NGREEN, NRED, NYELLOW, SGREEN, SYELLOW, SRED, EGREEN, EYELLOW, ERED, WGREEN, WYELLOW, WRED : OUT STD_LOGIC); END ENTITY daynightlights2; ARCHITECTURE behavioral OF daynightlights2 IS TYPE STATE_TYPE IS (K0, K1, K2, K3, K4); SIGNAL NEXTSTATE : STATE_TYPE; SIGNAL COUNT : INTEGER RANGE 0 TO 10; BEGIN PROCESS (CLK,RESET) IS BEGIN IF (RESET = '0') THEN NEXTSTATE<= K0; NRED<='1'; NYELLOW<='0'; NGREEN<='0'; SRED<='1'; SYELLOW<='0'; SGREEN<='0'; ERED<='0'; EYELLOW<='0'; EGREEN<='1'; WRED<='0'; WYELLOW<='0'; WGREEN<='1'; COUNT<=0; ELSIF(CLK='1' AND CLK 'EVENT)THEN Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 125

128 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής CASE NEXTSTATE IS WHEN K0 => IF (X='0') AND (X1='0') THEN IF(COUNT=5) THEN COUNT<=0; NEXTSTATE<= K1 ; ELSE COUNT<=COUNT+1; NRED<='1'; NYELLOW<='0'; NGREEN<='0'; SRED<='1'; SYELLOW<='0'; SGREEN<='0'; ERED<='0'; EYELLOW<='0'; EGREEN<='1'; WRED<='0'; WYELLOW<='0'; WGREEN<='1'; ELSIF (X='0') AND (X1='1') THEN NRED<='0'; NYELLOW<='1'; NGREEN<='0'; SRED<='0'; SYELLOW<='1'; SGREEN<='0'; ERED<='0'; EYELLOW<='1'; EGREEN<='0'; WRED<='0'; WYELLOW<='1'; WGREEN<='0'; COUNT<=0; NEXTSTATE<= K4 ; ELSIF (X='1') AND (X1='0') THEN IF(COUNT=5) THEN COUNT<=0; NEXTSTATE<= K1 ; ELSE COUNT<=COUNT+1; NRED<='1'; NYELLOW<='0'; NGREEN<='0'; SRED<='1'; SYELLOW<='0'; SGREEN<='0'; ERED<='0'; EYELLOW<='0'; Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 126

129 Πτυχιακή Εργασία EGREEN<='1'; WRED<='0'; WYELLOW<='0'; WGREEN<='1'; ELSIF (X='1') AND (X1='1') THEN NRED<='1'; NYELLOW<='0'; NGREEN<='0'; SRED<='1'; SYELLOW<='0'; SGREEN<='0'; ERED<='0'; EYELLOW<='0'; EGREEN<='1'; WRED<='0'; WYELLOW<='0'; WGREEN<='1'; COUNT<=0; NEXTSTATE<=K1; WHEN K1 => IF (X='0') AND (X1='0') THEN IF(COUNT=1) THEN COUNT<=0; NEXTSTATE<= K2 ; ELSE COUNT<=COUNT+1; NRED<='1'; NYELLOW<='0'; NGREEN<='0'; SRED<='1'; SYELLOW<='0'; SGREEN<='0'; ERED<='0'; EYELLOW<='1'; EGREEN<='0'; WRED<='0'; WYELLOW<='1'; WGREEN<='0'; ELSIF (X='0') AND (X1='1') THEN NRED<='0'; NYELLOW<='1'; NGREEN<='0'; SRED<='0'; SYELLOW<='1'; SGREEN<='0'; ERED<='0'; Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 127

130 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής EYELLOW<='1'; EGREEN<='0'; WRED<='0'; WYELLOW<='1'; WGREEN<='0'; COUNT<=0; NEXTSTATE<= K4 ; ELSIF (X='1') AND (X1='0') THEN IF(COUNT=1) THEN COUNT<=0; NEXTSTATE<= K2 ; ELSE COUNT<=COUNT+1; NRED<='1'; NYELLOW<='0'; NGREEN<='0'; SRED<='1'; SYELLOW<='0'; SGREEN<='0'; ERED<='0'; EYELLOW<='1'; EGREEN<='0'; WRED<='0'; WYELLOW<='1'; WGREEN<='0'; ELSIF (X='1') AND (X1='1') THEN NRED<='1'; NYELLOW<='0'; NGREEN<='0'; SRED<='1'; SYELLOW<='0'; SGREEN<='0'; ERED<='0'; EYELLOW<='1'; EGREEN<='0'; WRED<='0'; WYELLOW<='1'; WGREEN<='0'; COUNT<=0; NEXTSTATE<= K2 ; WHEN K2 => IF (X='0') AND (X1='0') THEN IF(COUNT=5) THEN COUNT<=0; NEXTSTATE<= K3 ; ELSE COUNT<=COUNT+1; Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 128

131 Πτυχιακή Εργασία NRED<='0'; NYELLOW<='0'; NGREEN<='1'; SRED<='0'; SYELLOW<='0'; SGREEN<='1'; ERED<='1'; EYELLOW<='0'; EGREEN<='0'; WRED<='1'; WYELLOW<='0'; WGREEN<='0'; ELSIF (X='0') AND (X1='1') THEN NRED<='0'; NYELLOW<='1'; NGREEN<='0'; SRED<='0'; SYELLOW<='1'; SGREEN<='0'; ERED<='0'; EYELLOW<='1'; EGREEN<='0'; WRED<='0'; WYELLOW<='1'; WGREEN<='0'; COUNT<=0; NEXTSTATE<= K4 ; ELSIF (X='1') AND (X1='0')THEN IF(COUNT=5) THEN COUNT<=0; NEXTSTATE<= K3 ; ELSE COUNT<=COUNT+1; NRED<='0'; NYELLOW<='0'; NGREEN<='1'; SRED<='0'; SYELLOW<='0'; SGREEN<='1'; ERED<='1'; EYELLOW<='0'; EGREEN<='0'; WRED<='1'; WYELLOW<='0'; WGREEN<='0'; ELSIF (X='1') AND (X1='1') THEN NRED<='0'; NYELLOW<='0'; NGREEN<='1'; Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 129

132 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής SRED<='0'; SYELLOW<='0'; SGREEN<='1'; ERED<='1'; EYELLOW<='0'; EGREEN<='0'; WRED<='1'; WYELLOW<='0'; WGREEN<='0'; COUNT<=0; NEXTSTATE<= K3; WHEN K3 => IF (X='0') AND (X1='0') THEN IF(COUNT=1) THEN COUNT<=0; NEXTSTATE<= K0 ; ELSE COUNT<=COUNT+1; NRED<='0'; NYELLOW<='1'; NGREEN<='0'; SRED<='0'; SYELLOW<='1'; SGREEN<='0'; ERED<='1'; EYELLOW<='0'; EGREEN<='0'; WRED<='1'; WYELLOW<='0'; WGREEN<='0'; ELSIF (X='0') AND (X1='1') THEN NRED<='0'; NYELLOW<='1'; NGREEN<='0'; SRED<='0'; SYELLOW<='1'; SGREEN<='0'; ERED<='0'; EYELLOW<='1'; EGREEN<='0'; WRED<='0'; WYELLOW<='1'; WGREEN<='0'; COUNT<=0; NEXTSTATE<= K4 ; ELSIF (X='1') AND (X1='0') THEN IF(COUNT=1) THEN Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 130

133 Πτυχιακή Εργασία COUNT<=0; NEXTSTATE<= K0 ; ELSE COUNT<=COUNT+1; NRED<='0'; NYELLOW<='1'; NGREEN<='0'; SRED<='0'; SYELLOW<='1'; SGREEN<='0'; ERED<='1'; EYELLOW<='0'; EGREEN<='0'; WRED<='1'; WYELLOW<='0'; WGREEN<='0'; ELSIF (X='1') AND (X1='1') THEN NRED<='0'; NYELLOW<='1'; NGREEN<='0'; SRED<='0'; SYELLOW<='1'; SGREEN<='0'; ERED<='1'; EYELLOW<='0'; EGREEN<='0'; WRED<='1'; WYELLOW<='0'; WGREEN<='0'; COUNT<=0; NEXTSTATE<= K0; WHEN K4 => IF (X='0') AND (X1='0') THEN NRED<='0'; NYELLOW<='1'; NGREEN<='0'; SRED<='0'; SYELLOW<='1'; SGREEN<='0'; ERED<='0'; EYELLOW<='1'; EGREEN<='0'; WRED<='0'; WYELLOW<='1'; WGREEN<='0'; COUNT<=0; NEXTSTATE<=K0; Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 131

134 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής END CASE; END PROCESS; END behavioral; ELSIF (X='0') AND (X1='1') THEN NRED<='0'; NYELLOW<='1'; NGREEN<='0'; SRED<='0'; SYELLOW<='1'; SGREEN<='0'; ERED<='0'; EYELLOW<='1'; EGREEN<='0'; WRED<='0'; WYELLOW<='1'; WGREEN<='0'; COUNT<=0; NEXTSTATE<=K4; ELSIF (X='1') AND (X1='0') THEN NRED<='0'; NYELLOW<='1'; NGREEN<='0'; SRED<='0'; SYELLOW<='1'; SGREEN<='0'; ERED<='0'; EYELLOW<='1'; EGREEN<='0'; WRED<='0'; WYELLOW<='1'; WGREEN<='0'; COUNT<=0; NEXTSTATE<=K0; ELSIF (X='1') AND (X1='1') THEN NRED<='0'; NYELLOW<='1'; NGREEN<='0'; SRED<='0'; SYELLOW<='1'; SGREEN<='0'; ERED<='0'; EYELLOW<='1'; EGREEN<='0'; WRED<='0'; WYELLOW<='1'; WGREEN<='0'; COUNT<=0; NEXTSTATE<=K0; Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 132

135 Πτυχιακή Εργασία Το αποτέλεσμα της προσομοίωσης του παραπάνω προγράμματος φαίνονται παρακάτω (Σχήμα και Σχήμα ). Κάνουμε την προσομοίωση για την μέρα Για Χ=0 Σχήμα : Αποτελέσματα προσομοίωσης. Για Χ=1 Σχήμα : Αποτελέσματα προσομοίωσης. Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 133

136 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Στην προσομοίωση που απεικονίστηκε παραπάνω διαπιστώνουμε ότι στο Σχήμα φαίνεται η λειτουργία των φαναριών κατά την διάρκεια της ημέρας. Βλέπουμε δηλαδή ότι τα φανάρια λειτουργούν κανονικά ενώ όταν το Χ1 (τροχονόμος) πάρει την τιμή 1, τότε όλα τα φανάρια γίνονται πορτοκαλί. Στο Σχήμα φαίνεται η λειτουργία των φαναριών κατά την διάρκεια της νύχτας. Βλέπουμε δηλαδή ότι τα φανάρια λειτουργούν κανονικά ενώ όταν το Χ1 (αισθητήρας) πάρει την τιμή 1, τότε πηγαίνει στην επόμενη κατάσταση. Ακολουθεί η απεικόνιση του Edit Sympol (Σχήμα ). Αποτελεί έναν τρόπο αναπαράστασης της λειτουργικής σχεδίασης των εισόδων και εξόδων, όπως απεικονίζεται παρακάτω: Σχήμα : Απεικόνιση της λειτουργικής σχεδίασης. Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 134

137 Πτυχιακή Εργασία Σχολιασμός Κώδικα 1 ος Τρόπος: Υλοποίηση με τις εξισώσεις. Για τη σχεδίαση και αποθήκευση, μέσω του μεταγλωττιστή (compiler), ενός project χρησιμοποιείται η βιβλιοθήκη (library). Μια βιβλιοθήκη work, δημιουργείται αυτόματα από τον compiler αλλά δεν περιλαμβάνει όλες τις πληροφορίες που είναι απαραίτητες για ένα συγκεκριμένο project. Η γλώσσα VHDL μετατράπηκε σε βιομηχανικό πρότυπο της IEEE 1164 Standard. Έτσι δημιουργήθηκαν παράλληλα και κάποιες άλλες μορφές σήματος, που όταν πρόκειται να χρησιμοποιηθούν θα πρέπει πάντα να εισάγονται στην αρχή του προγράμματος οι επόμενες δύο γραμμές. Επιπλέον οι γραμμές αυτές χρησιμοποιούνται για να επιτρέψουν τη χρήση μορφής σήματος STANDARD LOG- IC, που είναι συμβατή με τις υπόλοιπες λειτουργίες των βιβλιοθηκών της ALTERA. LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; Όταν χρησιμοποιούμε μακροσυναρτήσεις πρέπει πάντα να προσθέτονται στο πρόγραμμα οι επόμενες δύο γραμμές, ώστε να έχουμε πρόσβαση στις βιβλιοθήκες της ALTERA, που εμπεριέχουν τη βιβλιοθήκη των μακροσυναρτήσεων (macrofunctions) στη διεύθυνση c:\maxplus2\max2lib\mf. Μια μακροσυνάρτηση είναι ένα πρόγραμμα σε γλώσσα VHDL που μιμείται τη λειτουργία ενός κλασικού ολοκληρωμένου κυκλώματος τεχνολογίας TTL, μεσαίας βαθμίδας ολοκλήρωσης με όλες τις εισόδους και εξόδους του. Η χρήση αυτών των μακροσυναρτήσεων γίνεται είτε επιλέγοντας το σύμβολό της από τη λίστα της βιβλιοθήκης, όταν η εισαγωγή προγράμματος γίνεται διαμέσου σχηματικού διαγράμματος, είτε επιλέγοντας την αντίστοιχη συνιστώσα (COMPONENT) ως α_(κωδικός συνιστώσας), όταν η εισαγωγή γίνεται δια μέσου κώδικα VHDL. Τα σήματα εισόδου-εξόδου της συνιστώσας παίρνονται επιλέγοντας «Help», «Old-Style Macrofunctions» και τη συνιστώσα που πρόκειται να εισαχθεί στο πρόγραμμα. LIBRARY ALTERA; USE ALTERA.MAXPLUS2.ALL; Το ENTITY ορίζεται ως το όνομα της αυτοτελούς μονάδος καθώς και οι είσοδοι και έξοδοι της (Με τη δεσμευμένη λέξη port). Τα CLK, Χ, Χ1, CLRN αποτελούν τα σήματα εισόδου, ενώ τα Z1, Z2, Z3, Z4, Z5, Z6, Z7, Z8, Z9, Z10, Z11, Z12 αποτελούν τα σήματα εξόδου. Με τα λεκτικά IN και OUT προσδιορίζουμε την κατεύθυνσή τους. Με τη μορφή σήματος STD_LOGIC μπορούν να οριστούν σήματα και άλλων επιπλέον λογικών καταστάσεων όπως, για παράδειγμα, υψηλής σύνθετης αντίστασης (High Z) Z, αδιάφορης κατάστασης -, και άλλων λιγότερο συνήθων μορφών. ENTITY daynightlights1 IS PORT (CLK, X, X1, CLRN :IN STD_LOGIC; Z1, Z2, Z3, Z4, Z5, Z6, Z7, Z8, Z9, Z10, Z11, Z12 :OUT STD_LOGIC); END daynightlights1; Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 135

138 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Για να οριστεί η εσωτερική δομή της μονάδας χρησιμοποιούμε την δήλωση ARCHITECTURE. Τα σήματα (εισόδου - εξόδου) πηγάζουν από τη δήλωση EN- TITY που έχει προηγηθεί. Η ARCHITECTURE μπορεί να περιλαμβάνει, επίσης, τα σήματα και τις δηλώσεις που είναι τοπικά (local). Η λέξη κλειδί SIGNAL δηλώνει δεδομένα σημάτων που κινούνται στα καλώδια του κυκλώματος. Οι δηλώσεις σημάτων μπορούν να γίνουν είτε μέσα στη δήλωση οντότητας, είτε στην περιοχή δηλώσεων της αρχιτεκτονικής, είτε στο τμήμα δηλώσεων ενός πακέτου. Η SIGNAL ακολουθείται πάντα από το όνομα και τον τύπο του σήματος. Στην προκειμένη περίπτωση τα ονόματα των σημάτων που δηλώνονται είναι CLR, CK, DA, DB, DC, QA, QB, QC, HIGH. ARCHITECTURE circuit OF daynightlights1 IS SIGNAL CLR, CK, DA, DB, DC, QA, QB, QC, HIGH :STD_LOGIC; Στην συνέχεια ξεκινάει η υλοποίηση του κυρίως προγράμματος και γίνεται αρχικοποίηση των σημάτων HIGH, CK, CLR με τον τελεστή ανάθεσης σήματος (<=). BEGIN HIGH<='1'; CK<=CLK; CLR<=CLRN; Οι εξισώσεις που προέκυψαν από τους πίνακες Karnaugh υλοποιούν παρακάτω τις εισόδους των Flip Flop DA, DB, DC. DA<=(NOT X AND X1); DB<=(NOT X AND NOT X1 AND NOT QB AND QC) OR (NOT X AND NOT X1 AND QB AND NOT QC) OR (X AND NOT QB AND QC) OR (X AND QB AND NOT QC); DC<=(NOT X AND NOT X1 AND NOT QA AND NOT QC) OR (X AND NOT QA AND NOT QC); Με λέξη κλειδί PORT MAP, η οποία ακολουθείται από μια λίστα που δείχνει τα σήματα που συνδέονται στις γραμμές της συνιστώσας, γίνεται η σύνδεση του στιγμιότυπου με τα υπόλοιπα κυκλώματα Όταν τα σήματα αναφέρονται με την ίδια σειρά που αναφέρονται και οι ακίδες της συνιστώσας, τότε γίνεται λόγος για συσχέτιση θέσης. Όταν τα σήματα δεν αναφέρονται με την ίδια σειρά, που αναφέρονται και οι ακίδες της συνιστώσας και η αντιστοίχηση γίνεται σήμα προς ακίδα με το όνομά τους (ακίδα συνιστώσας=>σήμα κυκλώματος), τότε γίνεται λόγος για συσχέτιση ονόματος. Αυτή η μορφή προγραμματισμού κατά την οποία χρησιμοποιούνται υποκυκλώματα, που διασυνδέονται μεταξύ τους προκειμένου να δημιουργηθεί ένα νέο κύκλωμα, ονομάζεται δομημένο ύφος προγραμματισμού (structural style of programming). Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 136

139 Πτυχιακή Εργασία FFC:DFF PORT MAP (D=>DC, CLK=>CK, CLRN=>CLR, PRN=>HIGH,Q=>QC); FFB:DFF PORT MAP (D=>DB, CLK=>CK, CLRN=>CLR, PRN=>HIGH, Q=>QB); FFA:DFF PORT MAP (D=>DA, CLK=>CK, CLRN=>CLR, PRN=>HIGH, Q=>QA); Με βάση πάλι τις εξισώσεις από τους πίνακες Karnaugh υλοποιούνται οι έξοδοι του συστήματος και έχουμε και το τέλος του προγράμματος. Z1<= (NOT QA AND NOT QB AND NOT QC) ; Z2<= (QA OR (NOT QB AND QC)); Z3<= (QB); Z4<= (NOT QA AND NOT QB AND NOT QC) ; Z5<= (QA OR (NOT QB AND QC)); Z6<= (QB); Z7<= (QB AND NOT QC); Z8<= (QA OR (QB AND QC)); Z9<= (NOT QA AND NOT QB); Z10<= (QB AND NOT QC); Z11<= (QA OR (QB AND QC)); Z12<= (NOT QA AND NOT QB); END circuit; Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 137

140 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής 2 ος Τρόπος: Υλοποίηση με τους πίνακες αληθείας. Όταν πρόκειται να χρησιμοποιηθεί η μορφή σήματος STANDARD LOGIC, που είναι συμβατή με τις υπόλοιπες λειτουργίες των βιβλιοθηκών της ALTERA, θα πρέπει πάντα να εισάγονται στην αρχή του προγράμματος οι επόμενες δύο γραμμές. LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; Τα CLK, RESET, Χ, Χ1 αποτελούν τα σήματα εισόδου, ενώ το Ζ αποτελεί ένα σήμα εξόδου. Το σήμα εξόδου δηλώνεται με την μορφή STD_LOGIC_VECTOR (12 DOWNTO 1),που αποτελεί μια σειρά δώδεκα μεμονωμένων δυαδικών ψηφίων, καθένα από τα οποία αποτελεί ένα ανεξάρτητο σήμα, με το ψηφίο d 12 ως περισσότερο σημαντικό ψηφίο και το ψηφίο d 1 ως λιγότερο σημαντικό ψηφίο. Η σειρά αυτή δεν αποτελεί δυαδικό αριθμό οκτώ ψηφίων. Κάθε επιμέρους ψηφίο μπορεί να οριστεί ως [ονομασία σήματος(αριθμός ψηφίου)]. ENTITY daynightlights IS PORT (CLK, RESET, X, X1 : IN STD_LOGIC; Z : OUT STD_LOGIC_VECTOR(12 DOWNTO 1); END ENTITY daynightlights; Η εσωτερική δομή της μονάδας γίνεται με τη δήλωση ARCHITECTURE. Η λέξη κλειδί TYPE χρησιμοποιείται για να δηλώσει ονόματα καταστάσεων στα ακολουθιακά κυκλώματα και ακολουθείται από το αντικείμενο δεδομένων STATE_TYPE. Αυτή η μορφή δήλωσης σήματος ονομάζεται enumerated τύπος και επιτρέπει στον χρήστη να αποφασίσει για όλες τις δυνατές τιμές που μπορούν να πάρουν τα δεδομένα. Η SIGNAL ακολουθείται πάντα από το όνομα και τον τύπο του σήματος. Στην προκειμένη περίπτωση από την επόμενη κατάσταση NEXTSTATE και παίρνει τις τιμές που έχουν δηλωθεί στο STATE_TYPE (K0, K1, K2, K3, K4). ARCHITECTURE circuit OF daynightlights IS TYPE STATE_TYPE IS (K0, K1, K2, K3, K4); SIGNAL NEXTSTATE : STATE_TYPE; Η εντολή τύπου PROCESS, αποτελεί μια σύγχρονη εντολή. Οι μοναδικές ακολουθιακές (sequential) εντολές που εκτελούνται σειριακά από το μεταφραστή είναι αυτές που βρίσκονται φωλιασμένες μέσα σε μια εντολή.το τελικό της αποτέλεσμα εκτελείται παράλληλα με τις άλλες σύγχρονες εντολές από το μεταφραστή. Επίσης, η χρήση της λέξης PROCESS έγινε για να επιτρέψει την χρήση των εντολών IF και ELSE, προκειμένου να δημιουργηθεί η προτεραιότητα με την οποία επηρεάζουν την λειτουργία του κυκλώματος οι είσοδοί του. BEGIN PROCESS (CLK,RESET) IS BEGIN Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 138

141 Πτυχιακή Εργασία IF (RESET = '0') THEN NEXTSTATE<= K0; ELSIF(CLK='1' AND CLK 'EVENT)THEN Ακολουθεί ο τρόπος που γίνεται η προτεραιότητα των εισόδων. Για να επιτευχθεί η προτεραιότητα χρησιμοποιείται η δήλωση αφιέρωσης σήματος υπό συνθήκη δια μέσου των εντολών WHEN και ELSE. Αν η συνθήκη μετά την εντολή WHEN δεν είναι αληθινή, η εντολή ELSE παραπέμπει στην επόμενη πρόταση κ.ο.κ. μέχρι που να βρεθεί αληθινή συνθήκη. Η ακολουθιακή μορφή που έχει η διαδικασία δήλωσης αφιέρωσης σήματος υπό συνθήκη επιτρέπει με βάση την σειρά αναγραφής και άρα εκτέλεσης των δηλώσεων. Η διαδικασία είναι ίδια για όλες τις υπορουτίνες, που ακολουθούνται για τον έλεγχο των εισόδων (Χ και Χ1) που βρίσκονται μέσα στην CASE. Παρακάτω θα παρουσιαστεί μόνο η διαδικασία της κατάστασης K0. CASE NEXTSTATE IS WHEN K0 => IF (X ='0') AND (X1 ='0') THEN NEXTSTATE<= K1 ; ELSIF (X ='0') AND (X1 ='1') THEN NEXTSTATE<=K4 ; ELSIF (X ='1') AND (X1 ='0') THEN NEXTSTATE<=K1 ; ELSIF (X ='1') AND (X1 ='1') THEN NEXTSTATE<=K1 ; END CASE; Με βάση τον πίνακα αληθείας συντάσσεται η διαδικασία ελέγχου των εξόδων. Και τέλος, κλείνει πρώτα η διαδικασία PROCESS και μετά όλο το πρόγραμμα. CASE NEXTSTATE IS WHEN K0 =>Z<=" "; WHEN K1 =>Z<=" "; WHEN K2 =>Z<=" "; WHEN K3 =>Z<=" "; WHEN K4 =>Z<=" "; END CASE; END PROCESS; END circuit; Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 139

142 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής 3 ος Τρόπος: Υλοποίηση με τους πίνακες αληθείας --Διαφοροποίηση. Εκτός από τις βιβλιοθήκες που χρησιμοποιούμε παραπάνω και έχουν σχολιαστεί χρησιμοποιούμε και άλλες δύο. LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; Οι γραμμές που θα ακολουθήσουν αποτελούν δύο βιβλιοθήκες από τις οποίες η πρώτη αναφέρεται στις λογικές αριθμητικές πράξεις, που υπάρχουν στο πρόγραμμα. Ενώ η δεύτερη χρησιμοποιείται ώστε να μπορέσει να γίνει η χρήση το λέκτικό INTEGER, που αποτελεί τον τρόπο για να δηλωθεί ο μετρητής COUNT ως ακέραιος αριθμός. USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; Τα CLK, RESET, X, X1 αποτελούν σήματα εισόδου, ενώ τα NGREEN, NRED, NYELLOW, SGREEN, SYELLOW, SRED, EGREEN, EYELLOW, ERED, WGREEN, WYELLOW, WRED αποτελούν σήματα εξόδου. ENTITY daynightlights2 IS PORT (CLK, RESET, X, X1 : IN STD_LOGIC; NGREEN, NRED, NYELLOW, SGREEN, SYELLOW, SRED, EGREEN, EYELLOW, ERED, WGREEN, WYELLOW, WRED : OUT STD_LOGIC); END ENTITY daynightlights2; Η δήλωση ARCHITECTURE χρησιμοποιείται για να οριστεί η εσωτερική δομή της μονάδας. Τα σήματα (εισόδου - εξόδου) πηγάζουν από τη δήλωση ENTITY που έχει προηγηθεί. Οι δηλώσεις σημάτων μπορούν να γίνουν είτε μέσα στη δήλωση οντότητας, είτε στην περιοχή δηλώσεων της αρχιτεκτονικής, είτε στο τμήμα δηλώσεων ενός πακέτου. Η SIGNAL ακολουθείται πάντα από το όνομα και τον τύπο του σήματος. Η λέξη κλειδί TYPE χρησιμοποιείται για να δηλώσει ονόματα καταστάσεων στα ακολουθιακά κυκλώματα και ακολουθείται από το αντικείμενο δεδομένων STATE_TYPE. Στην προκειμένη περίπτωση από την επόμενη κατάσταση NEXTSTATE και παίρνει τις τιμές που έχουν δηλωθεί στο STATE_TYPE. Επίσης, δηλώνουμε ένα σήμα COUNT, όπου αποτελεί ένα μετρητή που θα μετράει από το 0 μέχρι το 10, ανάλογα με το πόσο θέλουμε να μετρήσουμε. ARCHITECTURE behavioral OF daynightlights2 IS TYPE STATE_TYPE IS (K0, K1, K2, K3, K4); SIGNAL NEXTSTATE : STATE_TYPE; SIGNAL COUNT : INTEGER RANGE 0 TO 10; Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 140

143 Πτυχιακή Εργασία Η εντολή τύπου PROCESS, αποτελεί μια σύγχρονη εντολή Οι μοναδικές ακολουθιακές (sequential) εντολές που εκτελούνται σειριακά από το μεταφραστή είναι αυτές που βρίσκονται φωλιασμένες μέσα σε μια εντολή. Το τελικό της αποτέλεσμα εκτελείται παράλληλα με τις άλλες σύγχρονες εντολές από το μεταφραστή. Επίσης, η χρήση της λέξης PROCESS έγινε για να επιτρέψει την χρήση των εντολών IF και ELSE, προκειμένου να δημιουργηθεί η προτεραιότητα με την οποία επηρεάζουν την λειτουργία του κυκλώματος οι είσοδοί του. BEGIN PROCESS (CLK,RESET) IS BEGIN IF (RESET = '0') THEN NEXTSTATE<= K0; NRED<='1'; NYELLOW<='0'; NGREEN<='0'; SRED<='1'; SYELLOW<='0'; SGREEN<='0'; ERED<='0'; EYELLOW<='0'; EGREEN<='1'; WRED<='0'; WYELLOW<='0'; WGREEN<='1'; COUNT<=0; ELSIF(CLK='1' AND CLK 'EVENT)THEN Ακολουθούν οι περιπτώσεις STATE_TYPE K0, K1,K2, K3, K4. Θα επεξηγηθεί μόνο η περίπτωση Κ0, όλες οι άλλες περιπτώσεις θα είναι ίδιες, το μόνο που θα αλλάζει θα είναι οι έξοδοι. Στην αρχή γίνεται ο έλεγχος του Χ, δηλαδή αν είναι μέρα ή νύχτα και μετά ο έλεγχος Χ1, δηλαδή αν θα πατήσει ο τροχονόμος το διακόπτη ή θα πατηθεί ο αισθητήρας. Στην συνέχεια γίνεται έλεγχος αν ο μετρητής είναι 5, αν είναι θα πηγαίνει στην επόμενη κατάσταση αλλιώς θα αυξάνεται ο μετρητής κατά 1 και θα παίρνει τις αντίστοιχες καταστάσεις. Γενικά, γίνεται έλεγχος όλων των πιθανών καταστάσεων των δύο διακοπτών Όταν τελείωνει ο έλεγχος τότε παίρνει τις αντίστοιχες εξόδους. CASE NEXTSTATE IS WHEN K0 => IF (X='0') AND (X1='0') THEN IF(COUNT=5) THEN COUNT<=0; NEXTSTATE<= K1 ; ELSE COUNT<=COUNT+1; NRED<='1'; NYELLOW<='0'; NGREEN<='0'; Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 141

144 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής SRED<='1'; SYELLOW<='0'; SGREEN<='0'; ERED<='0'; EYELLOW<='0'; EGREEN<='1'; WRED<='0'; WYELLOW<='0'; WGREEN<='1'; ELSIF (X='0') AND (X1='1') THEN NRED<='0'; NYELLOW<='1'; NGREEN<='0'; SRED<='0'; SYELLOW<='1'; SGREEN<='0'; ERED<='0'; EYELLOW<='1'; EGREEN<='0'; WRED<='0'; WYELLOW<='1'; WGREEN<='0'; COUNT<=0; NEXTSTATE<= K4 ; ELSIF (X='1') AND (X1='0') THEN IF(COUNT=5) THEN COUNT<=0; NEXTSTATE<= K1 ; ELSE COUNT<=COUNT+1; NRED<='1'; NYELLOW<='0'; NGREEN<='0'; SRED<='1'; SYELLOW<='0'; SGREEN<='0'; ERED<='0'; EYELLOW<='0'; EGREEN<='1'; WRED<='0'; WYELLOW<='0'; WGREEN<='1'; Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 142

145 Πτυχιακή Εργασία Εφαρμογή 3: Κύκλωμα Αυτόματου Πωλητή Αναψυκτικού 1 η Περίπτωση: 20λεπτα 10λεπτά 1 ποτό. Να σχεδιαστεί ένα ψηφιακό σύστημα ελέγχου, που θα ενεργοποιεί έναν αυτόματο πωλητή αναψυκτικού (vending machine). Το κάθε αναψυκτικό κοστίζει 40λεπτά. Οι είσοδοι του συστήματος είναι κέρματα των 20 και 10λεπτών, που θα εισάγονται με αντίστοιχους συνδυασμούς για την ενεργοποίηση του μηχανήματος και την εξαγωγή του αναψυκτικού. Κατά τη λειτουργία του μηχανήματος ενεργοποιούνται τέσσερις έξοδοι Z 0 (ready), Z 1 (dispense), Z 2 (ret), Z 3 (coin). Οι έξοδοι θα παίρνουν κατάσταση 1 στις εξής περιπτώσεις: Η Z 0 όταν είναι έτοιμο το μηχάνημα για την εισαγωγή των κερμάτων. Η Z 1 όταν έχουν τοποθετηθεί σωστά τα κέρματα στο μηχάνημα (να είναι δηλαδή συνολικά 40λεπτά) και θα γίνει η εξαγωγή του αναψυκτικού. Η Z 2 όταν θα γίνει λάθος εισαγωγή (να ξεπερνάνε τα 40λεπτά), τότε θα επιστρέφει όλα τα κέρματα. Η Z 3 όταν θα περιμένει να εισαχθεί κι άλλο κέρμα για τη συνέχιση της λειτουργίας του μηχανήματος. Διαδικασία Σχεδίασης: Στο Σχήμα , που θα ακολουθήσει παρουσιάζεται μια εικονική παρουσίαση των εισόδων και των εξόδων του αυτόματου πωλητή αναψυκτικού που προκύπτουν από τις προδιαγραφές και τις απαιτήσεις του συστήματος, για να γίνει κατανοητή η λειτουργία του μηχανήματος. Ζ 3 Είσοδος Χρημάτων X1-20λεπτά X 2-10λεπτά Ζ 0 Ζ 2 Έτοιμο Για Την Είσοδο Χρημάτων Επιστροφή Χρημάτων Ζ 1 Έξοδος Ποτού Σχήμα : Εικονική παρουσίαση. Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 143

146 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Με βάση το παραπάνω σχέδιο για τις εισόδους και τις εξόδους του συστήματος δημιουργείται το διάγραμμα καταστάσεων, όπως παρουσιάζεται στο Σχήμα και φαίνονται όλες οι πιθανές καταστάσεις που μπορούν να υπάρξουν A 00 B I C D F Σχήμα : Διάγραμμα καταστάσεων. Για διευκόλυνση στη σύνταξη των πινάκων της άσκησης θα αντικαταστήσουμε τις ονομασίες των εξόδων με μεταβλητές. Επομένως θα έχουμε: Z 0 = Ready Z 1 = Dispense Z 2 = Ret Z 3 = Coin Με βάση το διάγραμμα και λαμβάνοντας υπόψη τα Z 0, Z 1, Z 2, Z 3 συντάσσεται ο πίνακας καταστάσεων (μοντέλου moore): Πίνακας Πίνακας καταστάσεων (Μοντέλο moore) Παρούσα Κατάσταση Είσοδος Έξοδοι Q X 1 X 2 = 00 X 1 X 2 = 01 X 1 X 2 = 10 X 1 X 2 = 11 Z 0 Z 1 Z 2 Z 3 A A C D X X X B A X X X X X X X X X C C D F X X X D D F B X X X F F B I X X X I A X X X X X X X X X Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 144

147 Πτυχιακή Εργασία Για να παρασταθούν οι καταστάσεις A, B, C, D, F, I απαιτούνται τρεις μεταβλητές Q A Q B Q C. Άρα, απαιτούνται και τρία flip - flop. Στη συγκεκριμένη περίπτωση χρησιμοποιούμε D flip - flop, τα D Α, D Β, και D C. Ο τρόπος με τον οποίο εκχωρούνται δυαδικοί συνδυασμοί στις καταστάσεις ενός κυκλώματος, επηρεάζει την πολυπλοκότητα του συνδυαστικού μέρους του κυκλώματος. Στη συνέχεια θα δείξουμε πως θα εκχωρήσουμε τις μεταβλητές Q A Q B Q C στις καταστάσεις A, B, C, D, F, I : A: Q A 0 B: Q A 0 C: Q A 0 D: Q A 0 Q B 0 Q B 0 Q B 1 Q B 1 Q C 0 Q C 1 Q C 0 Q C 1 F: Q A 1 I: Q A 1 Q B 0 Q B 0 Q C 0 Q C 1 Σύμφωνα με τις παραπάνω εκχωρήσεις στις μεταβλητές Q A Q B Q C, ο πίνακας καταστάσεων του συστήματος μετατρέπεται όπως φαίνεται στον πίνακα : Πίνακας Πίνακας Μεταβάσεων του αναγνωριστή Παρούσα Κατάσταση Είσοδοι X 1 X 2 Έξοδοι Q A Q B Q C X 1 X 2 = 00 X 1 X 2 = 01 X 1 X 2 = 10 X 1 X 2 = 11 Z 0 Z 1 Z 2 Z X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 145

148 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Ο παραπάνω πίνακας καταστάσεων μπορεί να πάρει τη μορφή του πίνακα μεταβάσεων : Πίνακας Πίνακας μεταβάσεων Παρούσα κατάσταση Πρωτεύουσα είσοδος Επόμενη κατάσταση Πρωτεύουσες έξοδοι Q A Q B Q C X 1 X 2 Q + A Q + + B Q C Z 0 Z 1 Z 2 Z X X X 0 0 X X X X X X X X X X 0 0 X X X X X X X X X X X X X X X X 0 1 X X X X X X X X X X 0 1 X X X X X X X X X X X X X X X X 1 0 X X X X X X X X X X 1 0 X X X X X X X X X X X X X X X X X X X X X X X X X X X X 1 1 X X X X X X X X X X 1 1 X X X X X X X Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 146

149 Πτυχιακή Εργασία Στον πίνακα μεταβάσεων βλέπουμε τις επόμενες καταστάσεις των D flip-flop για κάθε συνδυασμό παρούσας κατάστασης-εισόδου. Η τιμή της εισόδου διέγερσης είναι ίδια με την τιμή της επόμενης κατάστασης ενός D flip-flop. Έτσι οι τιμές στον πίνακα μεταβάσεων δίνουν τις απαιτούμενες διεγέρσεις των D flip-flop, όπως φαίνονται στον πίνακα διεγέρσεων : Πίνακας Πίνακας διεγέρσεων Παρούσα κατάσταση Πρωτεύουσα είσοδος Επόμενη κατάσταση Δευτερεύουσες έξοδοι Πρωτεύουσες έξοδοι Q A Q B Q C X 1 X 2 Q + A Q + + B Q C D A D B D C Z 0 Z 1 Z 2 Z X X X 0 0 X X X X X X X X X X X X X 0 0 X X X X X X X X X X X X X X X X X X X X X X X X X 0 1 X X X X X X X X X X X X X 0 1 X X X X X X X X X X X X X X X X X X X X X X X X X 1 0 X X X X X X X X X X X X X 1 0 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 1 1 X X X X X X X X X X X X X 1 1 X X X X X X X X X X Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 147

150 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Στο επόμενο βήμα σχεδιάζονται οι πίνακες Karnaugh για τις πρωτεύουσες και δευτερεύουσες εξόδους, οι οποίοι συμπληρώνονται με βάση τον πίνακα διεγέρσεων και παίρνονται οι ελάχιστες συναρτήσεις. Q A =0 Q A =1 Q B Q C Q B Q C X 1 X X 1 X X X 01 0 X X X X 11 X X X X 11 X X X X 10 0 X X X X D A = Q A Q C X 2 + Q A Q B Q C X 1 + Q A Q C X 2 Q A =0 Q B Q C X 1 X Q A =1 Q B Q C X 1 X X X 01 1 X X X X 11 X X X X 11 X X X X 10 1 X X X X D B = Q A Q B X 1 X 2 + Q A Q C X 2 + Q A Q B X 1 Q A =0 Q A =1 Q B Q C Q B Q C X 1 X X 1 X X X 01 0 X X X X 11 X X X X 11 X X X X 10 1 X X X X D C = Q A Q B Q C X 2 + Q A Q B X 1 + Q A Q B Q C X 2 + Q A X 2 + Q A X 1 Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 148

151 Πτυχιακή Εργασία Q A =0 Q A =1 Q B Q C Q B Q C X 1 X X 1 X X X X X X X X X Z 0 = Q A Q B Q C Q A =0 Q A =1 Q B Q C Q B Q C X 1 X X 1 X X X X X X X X X Z 1 = Q A Q C Q B Q A =0 Q A =1 Q B Q C Q B Q C X 1 X X 1 X X X X X X X X X Z 2 = Q A Q C Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 149

152 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Q A =0 Q A =1 Q B Q C Q B Q C X 1 X X 1 X X X X X X X X X Z 3 = Q A Q C Q B + Q A Από τις ελάχιστες συναρτήσεις απεικονίζεται το παρακάτω ακολουθιακό κύκλωμα (Σχήμα ). Σχήμα : Ακολουθιακό κύκλωμα. Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 150

153 Πτυχιακή Εργασία Εισαγωγή σχεδίασης δια μέσου κώδικα VHDL: Η άσκηση θα υλοποιηθεί με δύο τρόπους. Ο πρώτος τρόπος υλοποιείται με τη βοήθεια των ελάχιστων συναρτήσεων που έχουν εξαχθεί από τους πίνακες Karnaugh, που δημιουργήθηκαν παραπάνω. Ενώ ο δεύτερος τρόπος υλοποιείται με την βοήθεια των πινάκων αληθείας. 1 ος Τρόπος: Υλοποίηση με τις εξισώσεις. LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; LIBRARY ALTERA; USE ALTERA.MAXPLUS2.ALL; ENTITY vending20101 IS PORT (CLK, TWENTY, TEN, CLR COIN, RET, DESPENSE, READY END vending20101; :IN STD_LOGIC; :OUT STD_LOGIC); ARCHITECTURE circuit OF vending20101 IS SIGNAL CK, DA, DB, DC, QA, QB, QC, HIGH :STD_LOGIC; BEGIN HIGH<='1'; CK<=CLK; DA<=(NOT QA AND QC AND TEN) OR (NOT QA AND QB AND NOT QC AND TWENTY) OR (QA AND NOT QC AND NOT TEN); DB<=(NOT QA AND QB AND NOT TWENTY AND NOT TEN) OR (NOT QA AND NOT QC AND TEN) OR (NOT QA AND NOT QB AND TWENTY); DC<=(NOT QA AND QB AND QC AND NOT TEN) OR (NOT QA AND NOT QB AND TWENTY) OR (NOT QA AND QB AND NOT QC AND TEN) OR (QA AND TEN) OR (QA AND TWENTY); FFC:DFF PORT MAP (D=>DC, CLK=>CK, CLRN=>CLR, PRN=>HIGH, Q=>QC); FFB:DFF PORT MAP (D=>DB, CLK=>CK, CLRN=>CLR, PRN=>HIGH, Q=>QB); Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 151

154 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής FFA:DFF PORT MAP (D=>DA, CLK=>CK, CLRN=>CLR, PRN=>HIGH, Q=>QA); READY<= DESPENSE<= RET<= COIN<= (NOT QA AND NOT QB AND NOT QC); (NOT QA AND NOT QB AND QC); (QA AND QC); (NOT QA AND QB) OR (QA AND NOT QC); END circuit; Το αποτέλεσμα της προσομοίωσης του παραπάνω προγράμματος φαίνεται στο σχήμα Σχήμα : Αποτελέσματα προσομοίωσης. Η προσομοίωση που δημιουργήθηκε από το Waveform Editor του MAXPLUS II είναι ένας τρόπος για να παρουσιαστούν μερικές εισαγωγές κερμάτων στον αυτόματο πωλητή αναψυκτικού. Ακόμα αποτελεί έναν τρόπο για να διαπιστώσουμε εάν ο κώδικας που έχει υλοποιηθεί, θα δώσει τις σωστές αλλά και τις αντίστοιχες τιμές σύμφωνα με τις απαιτήσεις και τις προδιαγραφές του συστήματος. Εκτός από την εικονική παρουσίαση που απεικονίστηκε παραπάνω (Σχήμα ) έχουμε και την απεικόνιση του Edit Sympol (Σχήμα ). Είναι ένας τρόπος αναπαράστασης της λειτουργικής σχεδίασης των εισόδων και εξόδων, όπως φαίνεται παρακάτω: Σχήμα : Απεικόνιση λειτουργικής σχεδίασης. Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 152

155 Πτυχιακή Εργασία 2 ος Τρόπος: Υλοποίηση με τους πίνακες αληθείας. LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY vending20101 IS PORT (CLOCK, RESET, TWENTY, TEN :IN STD_LOGIC; READY, DISPENSE, RET, COIN :OUT STD_LOGIC); END ENTITY vending20101; ARCHITECTURE asm OF vending20101 IS TYPE STATE_TYPE IS (A, B, C, D, F, I); SIGNAL PRESENT_STATE, NEXT_STATE : STATE_TYPE; BEGIN SEQ: PROCESS (CLOCK, RESET) IS BEGIN IF (RESET = '1') THEN PRESENT_STATE <= A; ELSIF (RISING_EDGE(CLOCK)) THEN PRESENT_STATE <= NEXT_STATE; END PROCESS SEQ; COM: PROCESS (TWENTY, TEN, PRESENT_STATE) IS BEGIN READY <= '0'; DISPENSE <= '0'; RET <= '0'; COIN <= '0'; CASE PRESENT_STATE IS WHEN A => READY <= '1'; IF (TWENTY = '1') THEN NEXT_STATE <= D; ELSIF (TEN = '1') THEN NEXT_STATE <= C; ELSE NEXT_STATE <= A; WHEN B => DISPENSE <= '1'; NEXT_STATE <= A; Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 153

156 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής WHEN C => COIN <= '1'; IF (TWENTY = '1') THEN NEXT_STATE <= F; ELSIF (TEN = '1') THEN NEXT_STATE <= D; ELSE NEXT_STATE <= C; WHEN D => COIN <= '1'; IF (TWENTY = '1') THEN NEXT_STATE <= B; ELSIF (TEN = '1') THEN NEXT_STATE <= F; ELSE NEXT_STATE <= D; WHEN F => COIN <= '1'; IF (TWENTY = '1') THEN NEXT_STATE <= I; ELSIF (TEN = '1') THEN NEXT_STATE <= B; ELSE NEXT_STATE <= F; WHEN I => RET <= '1'; NEXT_STATE <= A; END CASE; END PROCESS COM; END ARCHITECTURE asm; Το αποτέλεσμα της προσομοίωσης του παραπάνω προγράμματος φαίνεται στο Σχήμα Σχήμα : Αποτελέσματα προσομοίωσης. Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 154

157 Πτυχιακή Εργασία Σχολιασμός Κώδικα 1 ος Τρόπος: Υλοποίηση με τις εξισώσεις. Όπως αναφέρθηκε και σε προηγούμενη ενότητα, η γλώσσα VHDL έγινε βιομηχανικό πρότυπο της IEEE 1164 Standard, με αποτέλεσμα να δημιουργηθούν παράλληλα και κάποιες άλλες μορφές σήματος. Μια από τις μορφές σήματος είναι STANDARD LOGIC, που είναι συμβατή με τις υπόλοιπες λειτουργίες των βιβλιοθηκών της ALTERA. Όταν πρόκειται να χρησιμοποιηθεί αυτή η μορφή σήματος, θα πρέπει πάντα να εισάγονται στην αρχή του προγράμματος οι επόμενες δύο γραμμές. LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; Οι δύο γραμμές που θα ακολουθήσουν πρόκειται να χρησιμοποιηθούν για να επιτρέψουν την πρόσβασή στις βιβλιοθήκες της ALTERA, που εμπεριέχουν τη βιβλιοθήκη των μακροσυναρτήσεων (macrofunctions). LIBRARY ALTERA; USE ALTERA.MAXPLUS2.ALL; Το ENTITY ορίζεται ως το όνομα της αυτοτελούς μονάδος καθώς και οι είσοδοι και έξοδοι της, με τη δεσμευμένη λέξη PORT. Τα CLK, TWENTY, TEN, CLR αποτελούν τα σήματα εισόδου, ενώ τα COIN, RET, DESPENSE, READY αποτελούν τα σήματα εξόδου. Η κατεύθυνσή τους προσδιορίζεται με τη χρήση των λεκτικών IN και OUT. Με τη μορφή σήματος STD_LOGIC μπορούν να οριστούν σήματα και άλλων επιπλέον λογικών καταστάσεων. ENTITY vending20101 IS PORT (CLK, TWENTY, TEN, CLR COIN, RET, DESPENSE, READY END vending20101; :IN STD_LOGIC; :OUT STD_LOGIC); Με τη δήλωση ARCHITECTURE ορίζεται η εσωτερική δομή της μονάδας. Τα σήματα (εισόδου - εξόδου) πηγάζουν από τη δήλωση ENTITY που έχει προηγηθεί. Ακόμα, η ARCHITECTURE μπορεί να περιλαμβάνει, τα σήματα και τις δηλώσεις που είναι τοπικά κατ αναλογία με τις γνωστές γλώσσες υψηλού επιπέδου. Η λέξη κλειδί SIGNAL δηλώνει δεδομένα σημάτων που κινούνται στα καλώδια του κυκλώματος. Η SIGNAL ακολουθείται πάντα από το όνομα και τον τύπο του σήματος. Στην προκειμένη περίπτωση τα ονόματα των σημάτων που δηλώνονται είναι CK, DA, DB, DC, QA, QB, QC, HIGH. ARCHITECTURE circuit OF vending20101 IS SIGNAL CK, DA, DB, DC, QA, QB, QC, HIGH :STD_LOGIC; Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 155

158 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Στην συνέχεια ξεκινάει η υλοποίηση του κυρίως προγράμματος, γίνεται αρχικοποίηση των σημάτων HIGH και CK με τον τελεστή ανάθεσης σήματος (<=). Επίσης, γίνεται υλοποίηση των εισόδων των Flip Flop DA, DB, DC μέσω των εξισώσεων που προέκυψαν από τους πίνακες Karnaugh. BEGIN HIGH<='1'; CK<=CLK; DA<=(NOT QA AND QC AND TEN) OR (NOT QA AND QB AND NOT QC AND TWENTY) OR (QA AND NOT QC AND NOT TEN); DB<=(NOT QA AND QB AND NOT TWENTY AND NOT TEN) OR (NOT QA AND NOT QC AND TEN) OR (NOT QA AND NOT QB AND TWENTY); DC<=(NOT QA AND QB AND QC AND NOT TEN) OR (NOT QA AND NOT QB AND TWENTY) OR (NOT QA AND QB AND NOT QC AND TEN) OR (QA AND TEN) OR (QA AND TWENTY); Η σύνδεση του στιγμιότυπου με τα υπόλοιπα κυκλώματα γίνεται με τη χρήση της λέξης κλειδί PORT MAP ακολουθούμενης από μια λίστα που δείχνει τα σήματα που συνδέονται στις γραμμές (ακίδες) της συνιστώσας. Υποδεικνύει, δηλαδή, ποια σήματα θα αντιστοιχηθούν στις εισόδους και τις εξόδους ενός D Flip-Flop. FFC:DFF PORT MAP (D=>DC, CLK=>CK, CLRN=>CLR, PRN=>HIGH, Q=>QC); FFB:DFF PORT MAP (D=>DB, CLK=>CK, CLRN=>CLR, PRN=>HIGH, Q=>QB); FFA:DFF PORT MAP (D=>DA, CLK=>CK, CLRN=>CLR, PRN=>HIGH, Q=>QA); Από τις εξισώσεις που έχουν υλοποιηθεί βάση των πινάκων Karnaugh προκύπτει ο παρακάτω τρόπος προγραμματισμού για τις εξόδους. READY<= DESPENSE<= RET<= COIN<= (NOT QA AND NOT QB AND NOT QC); (NOT QA AND NOT QB AND QC); (QA AND QC); (NOT QA AND QB) OR (QA AND NOT QC); END circuit; Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 156

159 Πτυχιακή Εργασία 2 ος Τρόπος: Υλοποίηση με τους πίνακες αληθείας. Όταν πρόκειται να χρησιμοποιηθεί η μορφή σήματος STANDARD LOGIC, που είναι συμβατή με τις υπόλοιπες λειτουργίες των βιβλιοθηκών της ALTERA, θα πρέπει να εισάγονται στην αρχή του προγράμματος οι δύο γραμμές που ακολουθούν: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; Τα CLOCK, RESET, TWENTY, TEN αποτελούν τα σήματα εισόδου, που το διαπιστώνουμε από το :IN STD_LOGIC;. Ενώ το READY, DISPENSE, RET, COIN αποτελούν τα σήματα εξόδου, αφού αναφέρονται με :OUT STD_LOGIC;. ENTITY vending20101 IS PORT (CLOCK, RESET, TWENTY, TEN :IN STD_LOGIC; READY, DISPENSE, RET, COIN :OUT STD_LOGIC); END ENTITY vending20101; Η ARCHITECTURE αποτελεί την εσωτερική δομή της μονάδας. Ενώ η λέξη κλειδί TYPE, που ακολουθείται από το αντικείμενο δεδομένων STATE_TYPE. Το STATE_TYPE χρησιμοποιείται για να δηλώσει ονόματα καταστάσεων στα ακολουθιακά κυκλώματα. Στην προκειμένη περίπτωση έχουμε τις καταστάσεις A, B, C, D, F, I. Η SIGNAL ακολουθείται πάντα από το όνομα και τον τύπο του σήματος. ARCHITECTURE asm OF vending20101 IS TYPE STATE_TYPE IS (A, B, C, D, F, I); SIGNAL PRESENT_STATE, NEXT_STATE : STATE_TYPE; Μέσα στην εντολή PROCESS βρίσκονται φωλιασμένες ακολουθιακές εντολές, οι οποίες εκτελούνται σειριακά από το μεταφραστή. Η εντολή αυτή αποτελεί μια σύγχρονη εντολή καθώς το τελικό της αποτέλεσμα εκτελείται παράλληλα με τις άλλες σύγχρονες εντολές από το μεταφραστή. Ακόμα, η λέξη PROCESS χρησιμοποιείται για να επιτρέψει την χρήση των εντολών IF και ELSE, με αποτέλεσμα οι είσοδοι να επηρεάζουν την προτεραιότητα για τη λειτουργία του κυκλώματος. BEGIN SEQ: PROCESS (CLOCK, RESET) IS BEGIN IF (RESET = '1') THEN PRESENT_STATE <= A; ELSIF (RISING_EDGE(CLOCK)) THEN PRESENT_STATE <= NEXT_STATE; END PROCESS SEQ; Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 157

160 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Ακολουθεί η αρχικοποίηση των εξόδων αλλά και ο τρόπος που γίνεται η προτεραιότητα των εισόδων. Για να επιτευχθεί η προτεραιότητα χρησιμοποιείται η δήλωση αφιέρωσης σήματος υπό συνθήκη δια μέσου των εντολών WHEN και ELSE. Αν η συνθήκη μετά την εντολή WHEN δεν είναι αληθινή, η εντολή ELSE παραπέμπει στην επόμενη πρόταση κ.ο.κ. μέχρι που να βρεθεί αληθινή συνθήκη. Στην προκειμένη περίπτωση αναφέρεται μόνο για την κατάσταση A, η ίδια διαδικασία ακολουθείται και για τις υπόλοιπές καταστάσεις. Και τέλος, κλείνουν όλες οι διαδικασίες. COM: PROCESS (TWENTY, TEN, PRESENT_STATE) IS BEGIN READY <= '0'; DISPENSE <= '0'; RET <= '0'; COIN <= '0'; END CASE; END PROCESS COM; END ARCHITECTURE asm; CASE PRESENT_STATE IS WHEN A => READY <= '1'; IF (TWENTY = '1') THEN NEXT_STATE <= D; ELSIF (TEN = '1') THEN NEXT_STATE <= C; ELSE NEXT_STATE <= A; Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 158

161 Πτυχιακή Εργασία 2 η Περίπτωση: 50λεπτα 20 λεπτά 10λεπτά 1 ποτό. Να σχεδιαστεί ένα ψηφιακό σύστημα ελέγχου, που θα ενεργοποιεί έναν αυτόματο πωλητή αναψυκτικού (vending machine). Το κάθε αναψυκτικό κοστίζει 50λεπτά. Οι είσοδοι του συστήματος είναι κέρματα των 50, 20 και 10λεπτών, που θα εισάγονται με αντίστοιχους συνδυασμούς για την ενεργοποίηση του μηχανήματος και την εξαγωγή του αναψυκτικού. Κατά τη λειτουργία του μηχανήματος ενεργοποιούνται τεσσάρων έξοδοι Z 0 (ready), Z 1 (dispense), Z 2 (ret), Z 3 (coin). Διαδικασία Σχεδίασης: Στην εφαρμογή αυτή έχουμε μια προέκταση της προηγούμενης. Στη παρούσα άσκηση έχουμε έναν αυτόματο πωλητή αναψυκτικών, που το ποτό κοστίζει 50 λεπτά. Γι αυτό ο χρήστης έχει τη δυνατότητα να επιλέξει μεταξύ των 50, 20 και 10 λεπτών, όπου είναι οι είσοδοι του συστήματος. Στο Σχήμα που θα ακολουθήσει παρουσιάζεται μια εικονική παρουσίαση των εισόδων και των εξόδων του αυτόματου πωλητή αναψυκτικού που προκύπτουν από τις προδιαγραφές και τις απαιτήσεις του συστήματος. Ζ 3 Είσοδος Χρημάτων X1- X50λεπτά 2-20λεπτά X 3-10λεπτά Ζ 0 Ζ 2 Έτοιμο Για Την Είσοδο Χρημάτων Επιστροφή Χρημάτων Ζ 1 Έξοδος Ποτού Σχήμα : Εικονική παρουσίαση. Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 159

162 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Με βάση το παραπάνω σχέδιο για τις εισόδους και τις εξόδους του συστήματος δημιουργείται το διάγραμμα καταστάσεων, όπως παρουσιάζεται στο σχήμα και φαίνονται όλες οι πιθανές καταστάσεις που μπορούν να υπάρξουν. 000 A 000 G B 010 C F ,010 E 100 D Σχήμα : Διάγραμμα καταστάσεων. Για διευκόλυνση στη σύνταξη των πινάκων της άσκησης θα αντικαταστήσουμε τις ονομασίες των εξόδων με μεταβλητές. Επομένως θα έχουμε: Z 0 = Ready Z 1 = Dispense Z 2 = Ret Z 3 = Coin Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 160

163 Πτυχιακή Εργασία Με βάση το διάγραμμα και λαμβάνοντας υπόψη τα Z 0, Z 1, Z 2, Z 3 συντάσσεται ο πίνακας καταστάσεων (μοντέλου moore): Πίνακας Πίνακας καταστάσεων (μοντέλου moore) Παρούσα Κατάσταση Είσοδοι X 1 X 2 X 3 Έξοδοι X Q A Q B Q 1 X 2 X 3 X 1 X 2 X 3 X 1 X 2 X 3 X 1 X 2 X 3 X 1 X 2 X 3 X 1 X 2 X 3 X 1 X 2 X 3 X 1 X 2 X 3 C Z 0 Z 1 Z 2 Z 3 A A D C XXX B XXX XXX XXX B A XXX XXX XXX XXX XXX XXX XXX C C G F XXX E XXX XXX XXX D D C G XXX E XXX XXX XXX E A XXX XXX XXX XXX XXX XXX XXX F F B E XXX E XXX XXX XXX G G F B XXX E XXX XXX XXX H XXX XXX XXX XXX XXX XXX XXX XXX X X X X Για να παρασταθούν οι καταστάσεις A, B, C, D, E, F, G, H απαιτούνται τρεις μεταβλητές Q A Q B Q C. Άρα, απαιτούνται και τρία flip - flop. Στη συγκεκριμένη περίπτωση χρησιμοποιούμε D flip - flop, τα D2, D1, και D0. Ο τρόπος με τον οποίο εκχωρούνται δυαδικοί συνδυασμοί στις καταστάσεις ενός κυκλώματος, επηρεάζει την πολυπλοκότητα του συνδυαστικού μέρους του κυκλώματος. Στη συνέχεια θα δείξουμε πως θα εκχωρήσουμε τις μεταβλητές Q A Q B Q C στις καταστάσεις A, B, C, D, E, F, G, H: A: Q A 0 B: Q A 0 C: Q A 0 D: Q A 0 Q B 0 Q B 0 Q B 1 Q B 1 Q C 0 Q C 1 Q C 0 Q C 1 E: Q A 1 F: Q A 1 G: Q A 1 H: Q A 1 Q B 0 Q B 0 Q B 1 Q B 1 Q C 0 Q C 1 Q C 0 Q C 1 Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 161

164 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Σύμφωνα με τις παραπάνω εκχωρήσεις στις μεταβλητές Q A Q B Q C, ο πίνακας καταστάσεων του συστήματος μετατρέπεται όπως φαίνεται στον πίνακα : Πίνακας Πίνακας καταστάσεων Παρούσα Κατάσταση Είσοδοι X 1 X 2 X 3 Έξοδοι X Q A Q B Q 1 X 2 X 3 X 1 X 2 X 3 X 1 X 2 X 3 X 1 X 2 X 3 X 1 X 2 X 3 X 1 X 2 X 3 X 1 X 2 X 3 X 1 X 2 X 3 C Z 0 Z 1 Z 2 Z XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX XXX X X X X Ο παραπάνω πίνακας καταστάσεων μπορεί να πάρει τη μορφή του πίνακα μεταβάσεων : Πίνακας Πίνακας μεταβάσεων Δεκ. Πρωτεύουσα Παρούσα Επόμενη Πρωτεύουσες Είσοδος Κατάσταση Κατάσταση Έξοδοι X 1 X 2 X 3 Q A Q B Q C Q + Α Q + + Β Q C Z 0 Z 1 Z 2 3 Z XXX X X X X XXX XXX XXX X X X X XXX XXX XXX X X X X XXX XXX XXX XXX XXX Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 162

165 Πτυχιακή Εργασία XXX XXX XXX X X X X XXX XXX XXX X X X X XXX XXX XXX XXX XXX XXX XXX XXX X X X X XXX XXX XXX XXX XXX XXX XXX XXX X X X X XXX XXX XXX XXX XXX XXX XXX XXX X X X X Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 163

166 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Στον πίνακα μεταβάσεων βλέπουμε τις επόμενες καταστάσεις των D flip-flop για κάθε συνδυασμό παρούσας κατάστασης-εισόδου. Η τιμή της εισόδου διέγερσης είναι ίδια με την τιμή της επόμενης κατάστασης ενός D flip-flop. Έτσι οι τιμές στον πίνακα μεταβάσεων δίνουν τις απαιτούμενες διεγέρσεις των D flip-flop, όπως φαίνονται στον πίνακα διεγέρσεων : Πίνακας Πίνακας διεγέρσεων Δεκ. Πρωτεύουσα Παρούσα Επόμενη Δευτερεύουσες Πρωτεύουσες Είσοδος Κατάσταση Κατάσταση Είσοδοι Έξοδοι X 1 X 2 X 3 Q A Q B Q C Q + Α Q + + Β Q C D Α D B D C Z 0 Z 1 Z 2 3 Z X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 164

167 Πτυχιακή Εργασία X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X Στο επόμενο βήμα σχεδιάζονται οι πίνακες Karnaugh για τις πρωτεύουσες και δευτερεύουσες εξόδους, οι οποίοι συμπληρώνονται με βάση τον πίνακα διεγέρσεων και παίρνονται οι ελάχιστες συναρτήσεις. X 3 Q A X 1 =0 Q B Q C X 0 X 3 Q A X 1 =1 Q B Q C X X X X 2 = X 01 X 1 X X 11 0 X X X X X X X X 3 Q A Q B Q C X X X X 3 Q A Q B Q C X X X X X 2 =1 01 X 1 X X 01 X X X X 11 1 X X X 11 X X X X X X 10 X X X X D A = X 1 X 2 X 3 Q A Q C + X 1 X 2 Q A Q B + X 1 X 2 X 3 Q B Q C + X 1 X 2 Q C + X 1 X 2 Q A Q B +X 1 X 2 Q C + X 1 X 2 Q B Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 165

168 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής X 3 Q A X 1 =0 Q B Q C X 1 X 3 Q A X 1 =1 Q B Q C X X X X 2 = X 01 X 0 X X 11 1 X X X X X X X X 3 Q A Q B Q C X X X X 3 Q A Q B Q C X X X X X 2 =1 01 X 0 X X 01 X X X X 11 1 X X X 11 X X X X X X 10 X X X X D B = X 1 X 2 X 3 Q A + X 1 X 2 X 3 Q B + X 1 X 2 Q B Q C + X 1 X 2 Q B Q C X 3 Q A X 1 =0 Q B Q C X 1 X 3 Q A X 1 =1 Q B Q C X X X X 2 = X 01 X 0 X X 11 1 X X X X X X X X 3 Q A Q B Q C X X X X 3 Q A Q B Q C X X X X X 2 =1 01 X 0 X X 01 X X X X 11 0 X X X 11 X X X X X X 10 X X X X D C = X 1 X 2 X 3 Q B + X 1 X 2 Q A Q C + X 1 X 2 X 3 Q A + X 1 X 2 X 3 Q B Q C +X 1 X 2 Q B Q C + X 1 X 2 Q B Q C Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 166

169 Πτυχιακή Εργασία X 3 Q A X 1 =0 X 3 Q A X 1 =1 Q B Q C Q B Q C X 2 = X X X X X 3 Q A Q B Q C X 3 Q A Q B Q C X 2 = X X X 11 0 X X Z 0 = X 1 X 2 Q A Q B Q C + X 1 X 2 Q A Q B Q C + X 1 X 2 Q A Q B Q C + X 1 X 2 Q A Q B Q C X 3 Q A X 1 =0 Q B Q C X 3 Q A X 1 =1 Q B Q C X 2 = X X X X X 3 Q A Q B Q C X 3 Q A Q B Q C X 2 = X X X X Z 1 = X 1 X 2 Q A Q B Q C + X 1 X 2 Q A Q B Q C + X 1 X 2 Q A Q B Q C + X 1 X 2 Q A Q B Q C Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 167

170 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής X 3 Q A X 1 =0 Q B Q C X 3 Q A X 1 =1 Q B Q C X 2 = X X X X X 3 Q A Q B Q C X 3 Q A Q B Q C X 2 = X X X X Z 2 = X 1 X 2 Q A Q B Q C + X 1 X 2 Q A Q B Q C + X 1 X 2 Q A Q B Q C + X 1 X 2 Q A Q B Q C X 3 Q A X 1 =0 Q B Q C X 3 Q A X 1 =1 Q B Q C X 2 = X X X X X 3 Q A Q B Q C X 3 Q A Q B Q C X 2 = X X X X Z 3 = X 1 X 2 Q A Q C + X 1 X 2 Q B + X 1 X 2 Q A Q C + X 1 X 2 Q B + X 1 X 2 Q A Q C + X 1 X 2 Q B + X 1 X 2 Q A Q C + X 1 X 2 Q B Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 168

171 Πτυχιακή Εργασία Από τις ελάχιστες συναρτήσεις απεικονίζεται το παρακάτω ακολουθιακό κύκλωμα (Σχήμα ). Σχήμα : Ακολουθιακό κύκλωμα. Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 169

172 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Εισαγωγή σχεδίασης δια μέσου κώδικα VHDL: Η άσκηση θα υλοποιηθεί με δύο τρόπους. Ένας τρόπος είναι με τη βοήθεια των ελάχιστων συναρτήσεων που έχουν εξαχθεί από τους πίνακες Karnaugh που υλοποιήθηκαν παραπάνω. Ενώ ο άλλος τρόπος πραγματοποιείται με την βοήθεια των πινάκων αληθείας. 1 ος Τρόπος: Υλοποίηση με τις εξισώσεις. LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; LIBRARY ALTERA; USE ALTERA.MAXPLUS2.ALL; ENTITY vending IS PORT (CLK, FIFTY, TWENTY, TEN, CLR :IN STD_LOGIC; COIN, RET, DISPENSE, READY :OUT STD_LOGIC); END vending ; ARCHITECTURE circuit OF vending IS SIGNAL CK, DA, DB, DC, QA, QB, QC, HIGH :STD_LOGIC; BEGIN HIGH<='1'; CK<=CLK; DA<=(NOT FIFTY AND NOT TWENTY AND NOT TEN AND QA AND QC) OR (NOT FIFTY AND NOT TWENTY AND QA AND QB) OR (NOT FIFTY AND NOT TWENTY AND TEN AND QB AND NOT QC) OR (NOT FIFTY AND TWENTY AND QC) OR (NOT FIFTY AND TWENTY AND NOT QA AND QB) OR (FIFTY AND NOT TWENTY AND QC) OR (FIFTY AND NOT TWENTY AND QB); DB<=(NOT FIFTY AND NOT TWENTY AND TEN AND NOT QA) OR (NOT FIFTY AND NOT TWENTY AND NOT TEN AND QB) OR (NOT FIFTY AND TWENTY AND NOT QB AND NOT QC) OR (NOT FIFTY AND TWENTY AND QB AND QC); Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 170

173 Πτυχιακή Εργασία DC<=(NOT FIFTY AND NOT TWENTY AND TEN AND NOT QB) OR (NOT FIFTY AND NOT TWENTY AND QA AND QC) OR (NOT FIFTY AND NOT TWENTY AND TEN AND QA) OR (NOT FIFTY AND NOT TWENTY AND NOT TEN AND QB AND QC) OR (NOT FIFTY AND TWENTY AND QB AND NOT QC) OR (FIFTY AND NOT TWENTY AND NOT QB AND NOT QC); FFC:DFF PORT MAP (D=>DC, CLK=>CK, CLRN=>CLR, PRN=>HIGH, Q=>QC); FFB:DFF PORT MAP (D=>DB, CLK=>CK, CLRN=>CLR, PRN=>HIGH, Q=>QB); FFA:DFF PORT MAP (D=>DA, CLK=>CK, CLRN=>CLR, PRN=>HIGH, Q=>QA); READY <= (NOT FIFTY AND NOT TWENTY AND NOT QA AND NOT QB AND NOT QC) OR (NOT FIFTY AND TWENTY AND NOT QA AND NOT QB AND NOT QC) OR (FIFTY AND NOT TWENTY AND NOT QA AND NOT QB AND NOT QC) OR (FIFTY AND TWENTY AND NOT QA AND NOT QB AND NOT QC); DISPENSE<=(NOT FIFTY AND NOT TWENTY AND NOT QA AND NOT QB AND QC) OR (NOT FIFTY AND TWENTY AND NOT QA AND NOT QB AND QC) OR (FIFTY AND NOT TWENTY AND NOT QA AND NOT QB AND QC) OR (FIFTY AND TWENTY AND NOT QA AND NOT QB AND QC); RET<= (NOT FIFTY AND NOT TWENTY AND QA AND NOT QB AND NOT QC) OR (NOT FIFTY AND TWENTY AND QA AND NOT QB AND NOT QC) OR (FIFTY AND NOT TWENTY AND QA AND NOT QB AND NOT QC) OR (FIFTY AND TWENTY AND QA AND NOT QB Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 171

174 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής AND NOT QC); COIN<= (NOT FIFTY AND NOT TWENTY AND QA AND QC) OR (NOT FIFTY AND NOT TWENTY AND QB) OR (NOT FIFTY AND TWENTY AND QA AND QC) OR (NOT FIFTY AND TWENTY AND QB) OR (FIFTY AND NOT TWENTY AND QA AND QC) OR (FIFTY AND NOT TWENTY AND QB) OR (FIFTY AND TWENTY AND QA AND QC) OR (FIFTY AND TWENTY AND QB); END circuit; Το αποτέλεσμα της προσομοίωσης του παραπάνω προγράμματος φαίνεται στο σχήμα Σχήμα : Αποτελέσματα προσομοίωσης. Η προσομοίωση που δημιουργήθηκε από το Waveform Editor του MAXPLUS II είναι ένας τρόπος για να παρουσιαστούν μερικές εισαγωγές κερμάτων στον αυτόματο πωλητή αναψυκτικού. Ακολουθούν κάποιες περιπτώσεις που έχουν απεικονιστεί παραπάνω. Αυτές οι περιπτώσεις είναι με τη σειρά: 50 λεπτά 20 λεπτά - 20 λεπτά - 10 λεπτά 10 λεπτά - 10 λεπτά - 10 λεπτά - 10 λεπτά - 10 λεπτά 10 λεπτά - 10 λεπτά - 10 λεπτά 20 λεπτά 20 λεπτά - 50 λεπτά Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 172

175 Πτυχιακή Εργασία 2 ος Τρόπος: Υλοποίηση με τους πίνακες αληθείας. LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY vending if IS PORT (CLOCK, RESET, FIFTY, TWENTY, TEN : IN STD_LOGIC; READY, DISPENSE, RET, COIN : OUT STD_LOGIC); END ENTITY vending if; ARCHITECTURE asm OF vending if IS TYPE STATE_TYPE IS (A, B, C, D, E, F, G); SIGNAL PRESENT_STATE, NEXT_STATE : STATE_TYPE; BEGIN SEQ: PROCESS (CLOCK, RESET) IS BEGIN IF (RESET = '1') THEN PRESENT_STATE <= A; ELSIF (RISING_EDGE(CLOCK)) THEN PRESENT_STATE <= NEXT_STATE; END PROCESS SEQ; COM: PROCESS (FIFTY, TWENTY, TEN, PRESENT_STATE) IS BEGIN READY <= '0'; DISPENSE <= '0'; RET <= '0'; COIN <= '0'; CASE PRESENT_STATE IS WHEN A => READY <= '1'; IF (FIFTY = '1') THEN NEXT_STATE <= B; ELSIF (TWENTY = '1') THEN NEXT_STATE <= C; ELSIF (TEN = '1') THEN NEXT_STATE <= D; ELSE NEXT_STATE <= A; WHEN B => Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 173

176 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής DISPENSE <= '1'; NEXT_STATE <= A; WHEN C => COIN <= '1'; IF (FIFTY = '1') THEN NEXT_STATE <= E; ELSIF (TWENTY = '1') THEN NEXT_STATE <= F; ELSIF (TEN = '1') THEN NEXT_STATE <= G; ELSE NEXT_STATE <= C; WHEN D => COIN <= '1'; IF (FIFTY = '1') THEN NEXT_STATE <= E; ELSIF (TWENTY = '1') THEN NEXT_STATE <= G; ELSIF (TEN = '1') THEN NEXT_STATE <= C; ELSE NEXT_STATE <= D; WHEN E => RET <= '1'; NEXT_STATE <= A; WHEN F => COIN <= '1'; IF (FIFTY = '1') THEN NEXT_STATE <= E; ELSIF (TWENTY = '1') THEN NEXT_STATE <= E; ELSIF (TEN = '1') THEN NEXT_STATE <= B; ELSE NEXT_STATE <= F; WHEN G => COIN <= '1'; IF (FIFTY = '1') THEN NEXT_STATE <= E; ELSIF (TWENTY = '1') THEN NEXT_STATE <= B; ELSIF (TEN = '1') THEN NEXT_STATE <= F; ELSE NEXT_STATE <= G; Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 174

177 Πτυχιακή Εργασία END CASE; END PROCESS COM; END ARCHITECTURE asm; Το αποτέλεσμα προσομοίωσης του κώδικα φαίνεται στο Σχήμα Στη προσομοίωση παρουσιάζονται όλες οι περιπτώσεις που μπορούν να εκτελεστούν. Εδώ όμως θα δείξουμε ενδεικτικά μερικές από αυτές. Σχήμα : Αποτελέσματα προσομοίωσης. Οι περιπτώσεις που δείχνουμε παραπάνω είναι με τη σειρά: 50 λεπτά 20 λεπτά - 20 λεπτά - 10 λεπτά 10 λεπτά - 10 λεπτά - 10 λεπτά - 10 λεπτά - 10 λεπτά 10 λεπτά - 10 λεπτά - 10 λεπτά 20 λεπτά 20 λεπτά - 50 λεπτά Εκτός από την εικονική παρουσίαση που έχει απεικονιστεί παραπάνω (Σχήμα ) έχουμε και την απεικόνιση του Edit Sympol (Σχήμα ). Είναι ένας τρόπος που μπορεί να αναπαραστήσει τη λειτουργική σχεδίαση των εισόδων και εξόδων, που προέκυψαν από τις προδιαγραφές όπως φαίνεται παρακάτω: Σχήμα : Απεικόνιση λειτουργικής σχεδίασης. Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 175

178 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Σχολιασμός Κώδικα 1 ος Τρόπος: Υλοποίηση με τις εξισώσεις. Όπως αναφέρθηκε και σε προηγούμενη ενότητα, η γλώσσα VHDL έγινε βιομηχανικό πρότυπο της IEEE 1164 Standard. Όταν πρόκειται να χρησιμοποιηθεί η μορφή σήματος STANDARD LOGIC καθώς και οι βιβλιοθήκες της ALTERA που εμπεριέχουν τη βιβλιοθήκη των μακροσυναρτήσεων θα πρέπει να εισάγονται στην αρχή του προγράμματος οι επόμενες τέσσερις γραμμές. LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; LIBRARY ALTERA; USE ALTERA.MAXPLUS2.ALL; Το ENTITY ορίζεται ως το όνομα της αυτοτελούς μονάδος καθώς και οι είσοδοι και έξοδοι της, με τη δεσμευμένη λέξη PORT. Τα CLK, FIFTY, TWENTY, TEN, CLR αποτελούν τα σήματα εισόδου, ενώ τα COIN, RET, DISPENSE, READY αποτελούν τα σήματα εξόδου. Η κατεύθυνσή τους προσδιορίζεται με τη χρήση των λεκτικών IN και OUT. Με τη μορφή σήματος STD_LOGIC μπορούν να οριστούν σήματα και άλλων επιπλέον λογικών καταστάσεων ENTITY vending IS PORT (CLK, FIFTY, TWENTY, TEN, CLR :IN STD_LOGIC; COIN, RET, DISPENSE, READY :OUT STD_LOGIC); END vending ; Με τη δήλωση ARCHITECTURE ορίζεται η εσωτερική δομή της μονάδας. Η λέξη κλειδί SIGNAL δηλώνει δεδομένα σημάτων που κινούνται στα καλώδια του κυκλώματος. Η SIGNAL ακολουθείται πάντα από το όνομα και τον τύπο του σήματος. Στην προκειμένη περίπτωση τα ονόματα των σημάτων που δηλώνονται είναι CK, DA, DB, DC, QA, QB, QC, HIGH. Στην συνέχεια ξεκινάει η υλοποίηση του κυρίως προγράμματος, μετά γίνεται η αρχικοποίηση των σημάτων HIGH και CK με τον τελεστή ανάθεσης σήματος (<=). Επίσης, γίνεται υλοποίηση των εισόδων των Flip Flop DA, DB, DC μέσω των εξισώσεων που προέκυψαν από τους πίνακες Karnaugh. Στην προκειμένη περίπτωση επεξηγείται το DA Flip Flop. ARCHITECTURE circuit OF vending IS SIGNAL CK, DA, DB, DC, QA, QB, QC, HIGH :STD_LOGIC; BEGIN Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 176

179 Πτυχιακή Εργασία HIGH<='1'; CK<=CLK; DA<=(NOT FIFTY AND NOT TWENTY AND NOT TEN AND QA AND QC) OR (NOT FIFTY AND NOT TWENTY AND QA AND QB) OR (NOT FIFTY AND NOT TWENTY AND TEN AND QB AND NOT QC) OR (NOT FIFTY AND TWENTY AND QC) OR (NOT FIFTY AND TWENTY AND NOT QA AND QB) OR (FIFTY AND NOT TWENTY AND QC) OR (FIFTY AND NOT TWENTY AND QB); Η λέξη κλειδί PORT MAP χρησιμοποιείται για τη σύνδεση του στιγμιότυπου με τα υπόλοιπα κυκλώματα. Υποδεικνύει, δηλαδή, ποια σήματα θα συνδεθούν στις εισόδους και τις εξόδους ενός D Flip-Flop. Από τις εξισώσεις που έχουν υλοποιηθεί βάση των πινάκων Karnaugh προκύπτει ο παρακάτω τρόπος προγραμματισμού για τις εξόδους. Ενδεικτικά επεξηγείται η έξοδος READY. FFC:DFF PORT MAP (D=>DC, CLK=>CK, CLRN=>CLR, PRN=>HIGH, Q=>QC); FFB:DFF PORT MAP (D=>DB, CLK=>CK, CLRN=>CLR, PRN=>HIGH, Q=>QB); FFA:DFF PORT MAP (D=>DA, CLK=>CK, CLRN=>CLR, PRN=>HIGH, Q=>QA); READY <= (NOT FIFTY AND NOT TWENTY AND NOT QA AND NOT QB AND NOT QC) OR (NOT FIFTY AND TWENTY AND NOT QA AND NOT QB AND NOT QC) OR (FIFTY AND NOT TWENTY AND NOT QA AND NOT QB AND NOT QC) OR (FIFTY AND TWENTY AND NOT QA AND NOT QB AND NOT QC); Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 177

180 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής 2 ος Τρόπος: Υλοποίηση με τους πίνακες αληθείας. Η ARCHITECTURE αποτελεί την εσωτερική δομή της μονάδας. Ενώ η λέξη κλειδί TYPE, που ακολουθείται από το αντικείμενο δεδομένων STATE_TYPE. Το STATE_TYPE χρησιμοποιείται για να δηλώσει ονόματα καταστάσεων στα ακολουθιακά κυκλώματα. Στην προκειμένη περίπτωση έχουμε τις καταστάσεις A, B, C, D, E, F, G. Η SIGNAL ακολουθείται πάντα από το όνομα και τον τύπο του σήματος. Ακολουθούν οι ακολουθιακές εντολές που είναι φωλιασμένες στην λέξη κλειδί PROCESS. Και τέλος η διαδικασία προτεραιότητας των εισόδων. ARCHITECTURE asm OF vending if IS TYPE STATE_TYPE IS (A, B, C, D, E, F, G); SIGNAL PRESENT_STATE, NEXT_STATE : STATE_TYPE; BEGIN SEQ: PROCESS (CLOCK, RESET) IS BEGIN IF (RESET = '1') THEN PRESENT_STATE <= A; ELSIF (RISING_EDGE(CLOCK)) THEN PRESENT_STATE <= NEXT_STATE; END PROCESS SEQ; COM: PROCESS (FIFTY, TWENTY, TEN, PRESENT_STATE) IS BEGIN READY <= '0'; DISPENSE <= '0'; RET <= '0'; COIN <= '0'; CASE PRESENT_STATE IS WHEN A => READY <= '1'; IF (FIFTY = '1') THEN NEXT_STATE <= B; ELSIF (TWENTY = '1') THEN NEXT_STATE <= C; ELSIF (TEN = '1') THEN NEXT_STATE <= D; ELSE NEXT_STATE <= A; Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 178

181 Πτυχιακή Εργασία 3 η Περίπτωση: 50λεπτα 20 λεπτά 10λεπτά 1 ποτό Ρέστα. Να σχεδιαστεί ένα ψηφιακό σύστημα ελέγχου, που θα ενεργοποιεί έναν αυτόματο πωλητή αναψυκτικού (vending machine). Το κάθε αναψυκτικό κοστίζει 70λεπτά. Οι είσοδοι του συστήματος είναι κέρματα των 50, 20 και 10λεπτών, που θα εισάγονται με αντίστοιχους συνδυασμούς για την ενεργοποίηση του μηχανήματος και την εξαγωγή του αναψυκτικού. Επίσης, υπάρχει και μια είσοδος, η reset, η οποία όταν πατηθεί θα επιστρέφει όλα τα χρήματα που έχουν εισαχθεί στο μηχάνημα. Κατά τη λειτουργία του μηχανήματος ενεργοποιούνται έξι έξοδοι Z 1 (ready), Z 2 (coin), Z 3 (dispense), Z 4 (return), Z 5 (Return20), Z 6 (Return10). Διαδικασία Σχεδίασης: Στη παρούσα άσκηση έχουμε έναν αυτόματο πωλητή αναψυκτικών που το ποτό κοστίζει 70 λεπτά. Ο χρήστης έχει τη δυνατότητα να ρίξει στο μηχάνημα τριών ειδών κέρματα, 50, 20 και 10 λεπτά. Αν εισαχθούν ακριβώς τα χρήματα, τότε γίνεται η εξαγωγή του ποτού. Αν, για οποιονδήποτε λόγο, εισαχθούν με συνδυασμό που θα ξεπερνούν τα 70 λεπτά, επιστρέφονται τα ρέστα που πρέπει κάθε φορά. Αν για παράδειγμα βάλουμε 50 και 50 λεπτά, θα δοθούν ρέστα 30 λεπτά( λεπτά). Επίσης υπάρχει η δυνατότητα, με την επιλογή Reset, να επιστραφούν όλα τα χρήματα που εισάγει ο χρήστης. Αν ο χρήστης αλλάξει γνώμη και δεν θέλει να πάρει τελικά ποτό, πατώντας το Reset διακόπτεται η διαδικασία σε όποιο στάδιο και αν βρίσκεται εκείνη την στιγμή. Στην συνέχεια επιστρέφει στην αρχική κατάσταση (Ready) κάνοντας εξαγωγή όλων των κερμάτων. Στο Σχήμα που θα ακολουθήσει παρουσιάζεται ένα διάγραμμα βαθμίδας των εισόδων και των εξόδων του αυτόματου πωλητή αναψυκτικού, που προκύπτουν από τις προδιαγραφές και τις απαιτήσεις του συστήματος. Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 179

182 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Είσοδος Χρημάτων Res et X 1-50λεπτά X 2-20λεπτά X 3-10λεπτά X 4 Ζ 2 Ζ 1 Ζ 5 Ζ 6 Ζ 4 Ζ 3 Έτοιμο Για Την Είσοδο Χρημάτων Ρέστα 20 λεπτών Ρέστα 10 λεπτών Επιστροφή Χρημάτων Έξοδος Ποτού Σχήμα : Διάγραμμα βαθμίδας. Με βάση το παραπάνω διάγραμμα για τις εισόδους και τις εξόδους του συστήματος δημιουργείται ένα άλλο διάγραμμα, το διάγραμμα καταστάσεων, όπως παρουσιάζεται στο σχήμα Παρουσιάζονται όλες οι πιθανές καταστάσεις που μπορούν να υπάρξουν. Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 180

183 Πτυχιακή Εργασία , A L B H E 1000 C D F K G I J Σχήμα : Διάγραμμα καταστάσεων. Για διευκόλυνση στη σύνταξη των πινάκων της άσκησης θα αντικαταστήσουμε τις ονομασίες των εξόδων με μεταβλητές. Επομένως θα έχουμε: Z 1 = Ready Z 2 = Coin Z 3 = Dispense Z 4 = Ret Z 5 = Return20 Z 6 = Return10 Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 181

184 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Με βάση το διάγραμμα και λαμβάνοντας υπόψη τα Z 1, Z 2, Z 3, Z 4, Z 5, Z 6 συντάσσεται ο πίνακας καταστάσεων (μοντέλου moore). Πίνακας Πίνακας καταστάσεων(μοντέλο moore) Παρ. Κατ. Είσοδος X 1, X 2, X 3, X 4 Έξοδοι Q Z 1 Z 2 Z 3 Z 4 Z 5 Z 6 A A A D XXXX C XXXX XXXX XXXX B XXXX XXXX XXXX XXXX XXXX XXXX XXXX B B H K XXXX E XXXX XXXX XXXX L XXXX XXXX XXXX XXXX XXXX XXXX XXXX C C H G XXXX F XXXX XXXX XXXX E XXXX XXXX XXXX XXXX XXXX XXXX XXXX D D H C XXXX G XXXX XXXX XXXX K XXXX XXXX XXXX XXXX XXXX XXXX XXXX E A XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX F F H B XXXX K XXXX XXXX XXXX I XXXX XXXX XXXX XXXX XXXX XXXX XXXX G G H F XXXX B XXXX XXXX XXXX J XXXX XXXX XXXX XXXX XXXX XXXX XXXX H A XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX I A XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX J A XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX K K H E XXXX J XXXX XXXX XXXX I XXXX XXXX XXXX XXXX XXXX XXXX XXXX L A XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX M XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX X X X X X X N XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX X X X X X X O XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX X X X X X X P XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX X X X X X X Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 182

185 Πτυχιακή Εργασία Για να παρασταθούν οι καταστάσεις A, B, C, D, E, F, G, H, I, J, K, L απαιτούνται τέσσερις μεταβλητές Q A Q B Q C Q D Άρα, απαιτούνται και τέσσερα flip - flop. Στη συγκεκριμένη περίπτωση χρησιμοποιούμε D flip - flop, τα D A, D B, D C και D D. Ο τρόπος με τον οποίο εκχωρούνται δυαδικοί συνδυασμοί στις καταστάσεις ενός κυκλώματος, επηρεάζει την πολυπλοκότητα του συνδυαστικού μέρους του κυκλώματος. Στη συνέχεια θα δείξουμε πως θα εκχωρήσουμε τις μεταβλητές Q A Q B Q C., Q D στις καταστάσεις A, B, C, D, E, F, G, H, I, J, K, L: A: Q A 0 B: Q A 0 C: Q A 0 D: Q A 0 E: Q A 0 Q B 0 Q B 0 Q B 0 Q B 0 Q B 1 Q C 0 Q C 0 Q C 1 Q C 1 Q C 0 Q D 0 Q D 1 Q D 0 Q D 1 Q D 0 F: Q A 0 G: Q A 0 H: Q A 0 I: Q A 1 J: Q A 1 Q B 1 Q B 1 Q B 1 Q B 0 Q B 0 Q C 0 Q C 1 Q C 1 Q C 0 Q C 0 Q D 1 Q D 0 Q D 1 Q D 0 Q D 1 K: Q A 1 L: Q A 1 Q B 0 Q B 0 Q C 1 Q C 1 Q D 0 Q D 1 Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 183

186 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Σύμφωνα με τις παραπάνω εκχωρήσεις στις μεταβλητές Q A Q B Q C Q D, ο πίνακας καταστάσεων του συστήματος μετατρέπεται όπως φαίνεται στον πίνακα : Πίνακας Πίνακας καταστάσεων Παρ. Είσοδος X Κατ. 1, X 2, X 3, X 4 Έξοδοι Q Z 1 Z 2 Z 3 Z 4 Z 5 Z XXXX 0010 XXXX XXXX XXXX 0001 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX 0100 XXXX XXXX XXXX 1011 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX 0101 XXXX XXXX XXXX 0100 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX 0110 XXXX XXXX XXXX 1010 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX 1010 XXXX XXXX XXXX 1000 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX 0001 XXXX XXXX XXXX 1001 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX 1001 XXXX XXXX XXXX 1000 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX X X X X X X XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX X X X X X X XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX X X X X X X XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX X X X X X X Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 184

187 Πτυχιακή Εργασία Ο παραπάνω πίνακας καταστάσεων μπορεί να πάρει τη μορφή του πίνακα μεταβάσεων : Πίνακας Πίνακας μεταβάσεων Δεκ. Πρωτεύουσα Παρούσα Επόμενη Πρωτεύουσες είσοδος κατάσταση κατάσταση έξοδοι X 1 X 2 X 3 X 4 Q A Q B Q C Q D Q + A Q + B Q + + C Q D Z 1 Z 2 Z 3 Z 4 Z 5 Z X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 185

188 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 186

189 Πτυχιακή Εργασία X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 187

190 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 188

191 Πτυχιακή Εργασία X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 189

192 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Στον πίνακα μεταβάσεων βλέπουμε τις επόμενες καταστάσεις των D flip-flop για κάθε συνδυασμό παρούσας κατάστασης-εισόδου. Η τιμή της εισόδου διέγερσης είναι ίδια με την τιμή της επόμενης κατάστασης ενός D flip-flop. Έτσι οι τιμές στον πίνακα μεταβάσεων δίνουν τις απαιτούμενες διεγέρσεις των D flip-flop, όπως φαίνονται στον πίνακα διεγέρσεων : Πίνακας Πίνακας διεγέρσεων Δεκ. Πρωτεύουσα Παρούσα Επόμενη Δευτερεύουσες Πρωτεύουσες είσοδος κατάσταση κατάσταση έξοδοι έξοδοι X 1 X 2 X 3 X 4 Q A Q B Q C Q D Q + A Q + B Q + + C Q D D A D B D C D D Z 1 Z 2 Z 3 Z 4 Z 5 Z X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 190

193 Πτυχιακή Εργασία X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 191

194 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 192

195 Πτυχιακή Εργασία X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 193

196 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X Στο επόμενο βήμα σχεδιάζονται οι πίνακες Karnaugh για τις πρωτεύουσες και δευτερεύουσες εξόδους, οι οποίοι συμπληρώνονται με βάση τον πίνακα διεγέρσεων και παίρνονται οι ελάχιστες συναρτήσεις. Στην περίπτωσή μας όμως επειδή οι πρωτεύουσες είσοδοι και οι παρούσες καταστάσεις είναι οχτώ συνολικά, απαιτούνται δεκαέξι πίνακες Karnaugh για κάθε πρωτεύουσα είσοδο και δευτερεύουσα έξοδο. Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 194

197 Πτυχιακή Εργασία Εισαγωγή σχεδίασης δια μέσου κώδικα VHDL: Η εφαρμογή μας θα υλοποιηθεί με έναν τρόπο δια μέσου κώδικα VHDL. Ο τρόπος που θα προγραμματιστεί η εφαρμογή είναι με την βοήθεια των πινάκων αληθείας. 1 ος Τρόπος: Υλοποίηση με τους πίνακες αληθείας. LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY vending r IS PORT (CLOCK, RESET, FIFTY, TWENTY, TEN:IN STD_LOGIC; READY,DISPENSE,RET,COIN,REST20,REST10 :OUT STD_LOGIC); END ENTITY vending r; ARCHITECTURE ASM OF vending r IS TYPE STATE_TYPE IS(A,B, C, D, E, F, G, H, I, J, K, L); SIGNAL PRESENT_STATE, NEXT_STATE : STATE_TYPE; BEGIN SEQ: PROCESS (CLOCK) IS BEGIN IF (RISING_EDGE(CLOCK)) THEN PRESENT_STATE <=NEXT_STATE ; END PROCESS SEQ; COM: PROCESS(RESET,FIFTY,TWENTY,TEN,PRESENT_STATE)IS BEGIN READY <= '0'; DISPENSE <= '0'; RET <= '0'; COIN <= '0'; REST20 <= '0'; REST10 <= '0'; CASE PRESENT_STATE IS WHEN A => READY <= '1'; IF (FIFTY = '0') THEN NEXT_STATE <= B; ELSIF (TWENTY = '1') THEN NEXT_STATE <= C; ELSIF (TEN = '1') THEN NEXT_STATE <= D; Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 195

198 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής ELSIF (RESET = '0') THEN NEXT_STATE <= A; ELSE NEXT_STATE <= A; WHEN B => COIN <= '1'; IF (FIFTY = '0') THEN NEXT_STATE <= L; ELSIF (TWENTY = '1') THEN NEXT_STATE <= E; ELSIF (TEN = '1') THEN NEXT_STATE <= K; ELSIF (RESET = '0') THEN NEXT_STATE <= H; ELSE NEXT_STATE <= B; WHEN C => COIN <= '1'; IF (FIFTY = '0') THEN NEXT_STATE <= E; ELSIF (TWENTY = '1') THEN NEXT_STATE <= F; ELSIF (TEN = '1') THEN NEXT_STATE <= G; ELSIF (RESET = '0') THEN NEXT_STATE <= H; ELSE NEXT_STATE <= C; WHEN D => COIN <= '1'; IF (FIFTY = '0') THEN NEXT_STATE <= K; ELSIF (TWENTY = '1') THEN NEXT_STATE <= G; ELSIF (TEN = '1') THEN NEXT_STATE <= C; ELSIF (RESET = '0') THEN NEXT_STATE <= H; ELSE NEXT_STATE <= D; WHEN E => DISPENSE <= '1'; NEXT_STATE <= A; WHEN F => COIN <= '1'; IF (FIFTY = '0') Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 196

199 Πτυχιακή Εργασία THEN NEXT_STATE <= I; ELSIF (TWENTY = '1') THEN NEXT_STATE <= K; ELSIF (TEN = '1') THEN NEXT_STATE <= B; ELSIF (RESET = '0') THEN NEXT_STATE <= H; ELSE NEXT_STATE <= F; WHEN G => COIN <= '1'; IF (FIFTY = '0') THEN NEXT_STATE <= J; ELSIF (TWENTY = '1') THEN NEXT_STATE <= B; ELSIF (TEN = '1') THEN NEXT_STATE <= F; ELSIF (RESET = '0') THEN NEXT_STATE <= H; ELSE NEXT_STATE <= G; WHEN H => RET <= '1'; NEXT_STATE <= A; WHEN I => DISPENSE <= '1'; REST20 <='1'; NEXT_STATE <= A; WHEN J => DISPENSE <= '1'; REST10 <='1'; NEXT_STATE <= A; WHEN K => COIN <= '1'; IF (FIFTY = '0') THEN NEXT_STATE <= I; ELSIF (TWENTY = '1') THEN NEXT_STATE <= J; ELSIF (TEN = '1') THEN NEXT_STATE <= E; ELSIF (RESET = '0') THEN NEXT_STATE <= H; ELSE NEXT_STATE <= K; WHEN L => DISPENSE <= '1'; Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 197

200 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής REST20 <= '1'; REST10 <='1'; NEXT_STATE <= A; END CASE; END PROCESS COM; END ARCHITECTURE ASM; Το αποτέλεσμα προσομοίωσης του κώδικα φαίνεται στο Σχήμα Η προσομοίωση που δημιουργήθηκε από το Waveform Editor του MAXPLUS II είναι ένας τρόπος για να παρουσιαστούν κάποιες καταστάσεις για την εισαγωγή κερμάτων στον αυτόματο πωλητή αναψυκτικού. Εδώ, όμως, θα δείξουμε ενδεικτικά μερικές από αυτές. Σχήμα : Αποτελέσματα προσομοίωσης. Οι περιπτώσεις που δείχνουμε παραπάνω είναι με τη σειρά: 50 λεπτά - 20 λεπτά 50 λεπτά - 10 λεπτά - 10 λεπτά 20 λεπτά - 20 λεπτά - 20 λεπτά - 10 λεπτά 50 λεπτά - 50 λεπτά 20 λεπτά - 20 λεπτά - 20 λεπτά - 20 λεπτά 20 λεπτά - 20 λεπτά - 50 λεπτά Reset = 1 Εκτός από το διάγραμμα βαθμίδας που έχει απεικονιστεί στο Σχήμα έχουμε και την απεικόνιση του Edit Sympol (Σχήμα ), το οποίο αποτελεί τρόπο που αναπαριστά τη λειτουργική σχεδίαση των εισόδων και εξόδων. Σχήμα : Απεικόνιση λειτουργικής σχεδίασης. Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 198

201 Πτυχιακή Εργασία Σχολιασμός Κώδικα 1 ος Τρόπος: Υλοποίηση με τους πίνακες αληθείας. Όπως έχει επεξηγηθεί και σε προηγούμενες εφαρμογές οι δύο πρώτες γραμμές πρέπει να γράφονται γιατί χρησιμοποιείται μια μορφή σήματος STANDARD LOGIC, που είναι συμβατή με τις υπόλοιπες λειτουργίες των βιβλιοθηκών της ALTERA. LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; Με τη δεσμευμένη λέξη PORT δηλώνονται οι είσοδοι και οι έξοδοι του κυκλώματος, όπου η λέξη PORT ακολουθείται από το ENTITY. Τα σήματα εισόδου είναι CLOCK, RESET, FIFTY, TWENTY, TEN, ενώ τα σήματα εξόδου είναι READY, DISPENSE, RET, COIN, REST20, REST10. ENTITY vending r IS PORT (CLOCK, RESET, FIFTY, TWENTY, TEN:IN STD_LOGIC; READY,DISPENSE,RET,COIN,REST20,REST10 :OUT STD_LOGIC); END ENTITY vending r; Με τη δήλωση ARCHITECTURE ορίζεται η εσωτερική δομή της μονάδας.η λέξη κλειδί TYPE, ακολουθείται από το αντικείμενο δεδομένων STATE_TYPE. Το STATE_TYPE χρησιμοποιείται για να δηλώσει ονόματα καταστάσεων στα ακολουθιακά κυκλώματα. Στην προκειμένη περίπτωση έχουμε τις καταστάσεις A, B, C, D, E, F, G, H, I, J, K, L. Η SIGNAL ακολουθείται πάντα από το όνομα και τον τύπο του σήματος. Επιπλέον, η εντολή PROCESS περιλαμβάνει φωλιασμένες ακολουθιακές εντολές, οι οποίες εκτελούνται σειριακά από το μεταφραστή. Η λέξη PROCESS χρησιμοποιείται για να επιτρέψει την χρήση των εντολών IF και ELSE. Ακολουθεί η αρχικοποίηση των εξόδων αλλά και ο τρόπος που γίνεται η προτεραιότητα των εισόδων με την χρήση των εντολών WHEN και ELSE. Ενδεικτικά επεξηγείται μόνο η κατάσταση Α του STATE_TYPE. ARCHITECTURE ASM OF vending r IS TYPE STATE_TYPE IS(A,B, C, D, E, F, G, H, I, J, K, L); SIGNAL PRESENT_STATE, NEXT_STATE : STATE_TYPE; BEGIN SEQ: PROCESS (CLOCK) IS BEGIN IF (RISING_EDGE(CLOCK)) THEN PRESENT_STATE <=NEXT_STATE ; END PROCESS SEQ; Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 199

202 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής COM: PROCESS(RESET,FIFTY,TWENTY,TEN,PRESENT_STATE)IS BEGIN READY <= '0'; DISPENSE <= '0'; RET <= '0'; COIN <= '0'; REST20 <= '0'; REST10 <= '0'; CASE PRESENT_STATE IS WHEN A => READY <= '1'; IF (FIFTY = '0') THEN NEXT_STATE <= B; ELSIF (TWENTY = '1') THEN NEXT_STATE <= C; ELSIF (TEN = '1') THEN NEXT_STATE <= D; ELSIF (RESET = '0') THEN NEXT_STATE <= A; ELSE NEXT_STATE <= A; Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 200

203 Πτυχιακή Εργασία 4 η Περίπτωση: 50λεπτα 20 λεπτά 10λεπτά 1 ποτό Ρέστα. Να σχεδιαστεί ένα ψηφιακό σύστημα ελέγχου, που θα ενεργοποιεί έναν αυτόματο πωλητή αναψυκτικού (vending machine). Το μηχάνημα θα εξάγει δύο είδη ποτών που το καθένα κοστίζει 70λεπτά. Οι είσοδοι του συστήματος είναι κέρματα των 50, 20 και 10λεπτών, που θα εισάγονται με αντίστοιχους συνδυασμούς για την ενεργοποίηση του μηχανήματος και την εξαγωγή του αναψυκτικού. Επίσης, υπάρχει η είσοδος reset, η οποία όταν πατηθεί θα επιστρέφει όλα τα χρήματα που έχουν εισαχθεί στο μηχάνημα. Και τέλος υπάρχει ένας διακόπτης, ο οποίος χρησιμοποιείται για την επιλογή του ποτού. Κατά τη λειτουργία του μηχανήματος ενεργοποιούνται εφτά έξοδοι Z 1 (ready), Z 2 (coin), Z 3 (dispensea), Z 4 (dispenseb), Z 5 (return), Z 6 (Resta20), Z 7 (Resta10). Διαδικασία Σχεδίασης: Στη παρούσα άσκηση έχουμε έναν αυτόματο πωλητή αναψυκτικών που διαθέτει 2 είδη ποτών. Το κάθε ποτό κοστίζει 70 λεπτά. Ο χρήστης κι εδώ έχει τη δυνατότητα να ρίξει στο μηχάνημα τριών ειδών κέρματα, 50, 20 και 10 λεπτά. Πριν εισαχθούν τα κέρματα, πατώντας έναν διακόπτη γίνεται η επιλογή του είδους ποτού που επιθυμεί ο χρήστης. Αν δοθούν ακριβώς τα χρήματα, τότε γίνεται η εξαγωγή του αντίστοιχου ποτού. Αν, για οποιονδήποτε λόγο, μπουν με συνδυασμό που θα ξεπερνούν τα 70 λεπτά, επιστρέφονται τα ρέστα που πρέπει κάθε φορά. Στην περίπτωση που θα βάλουμε δύο κέρματα των 50 λεπτών, θα πρέπει να δοθούν ρέστα 30 λεπτά( λεπτά). Τέλος υπάρχει η δυνατότητα, με την επιλογή Reset, να επιστραφούν όλα τα χρήματα που εισάγει ο χρήστης και να μην συνεχιστεί καμία διαδικασία. Αυτό μπορεί να συμβεί στην περίπτωση που αλλάξει γνώμη και δεν θέλει να πάρει τελικά κανένα ποτό ή αν θέλει να αλλάξει το είδος ποτού. Στο Σχήμα που θα ακολουθήσει παρουσιάζεται ένα διάγραμμα βαθμίδας των εισόδων και των εξόδων του αυτόματου πωλητή αναψυκτικού, που προκύπτουν από τις προδιαγραφές και τις απαιτήσεις του συστήματος. Είσοδος Χρημάτων Reset X 4 X 1-50λεπτά X 2-20λεπτά X 3-10λεπτά Ζ 2 Ζ 1 Ζ 7 Ζ 6 Ζ 5 Έτοιμο Για Την Είσοδο Χρημάτων Ρέστα 10 λεπτών Ρέστα 20 λεπτών Επιστροφή Χρημάτων Επιλογή Ποτού X 5 Ζ 3 Ζ 4 Έξοδος Ποτού A Έξοδος Ποτού B Σχήμα : Διάγραμμα βαθμίδας. Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 201

204 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Με βάση το παραπάνω σχέδιο για τις εισόδους και τις εξόδους του συστήματος δημιουργείται το διάγραμμα καταστάσεων, όπως παρουσιάζεται στο Σχήμα και φαίνονται όλες οι πιθανές καταστάσεις που μπορούν να υπάρξουν , 00001, , , P A 10000, I 01000, L H 00010, , , D 00000, , , , E C 00000, , , F 00010, , , , J K G 10000, , B 00100, , , , 00000, , M N O Σχήμα : Διάγραμμα καταστάσεων. Για διευκόλυνση στη σύνταξη των πινάκων της άσκησης θα αντικαταστήσουμε τις ονομασίες των εξόδων με μεταβλητές. Επομένως θα έχουμε: Z 1 = Ready Z 2 = Coin Z 3 = Dispense Α Z 4 = Dispense Β Z 5 = Return Z 6 = Resta20 Z 7 = Resta10 Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 202

205 Πτυχιακή Εργασία Με βάση το διάγραμμα και λαμβάνοντας υπόψη τα Z 1, Z 2, Z 3, Z 4, Z 5, Z 6, Z 7 συντάσσεται ο πίνακας καταστάσεων (μοντέλου moore): Πίνακας Πίνακας καταστάσεων(μοντέλο moore) Παρ. Κατ. Είσοδος X 1, X 2, X 3, X 4,X 5 Έξοδοι Q Z 1 Z 2 Z 3 Z 4 Z 5 Z 6 Z 7 A A B C D A A B C D H B B L E K H B P M K H C C E F G H C M F G H D D K G C H D K G C H E A XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX F F I K B H F N K B H G G J B F H G O B F H H A XXXXX XXXXX XXXXX XXXXX A XXXXX XXXXX XXXXX XXXXX I A XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX J A XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX K K I J E H K N O M H L A XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX M XXXXX XXXXX XXXXX XXXXX XXXXX A XXXXX XXXXX XXXXX XXXXX N XXXXX XXXXX XXXXX XXXXX XXXXX A XXXXX XXXXX XXXXX XXXXX O XXXXX XXXXX XXXXX XXXXX XXXXX A XXXXX XXXXX XXXXX XXXXX P XXXXX XXXXX XXXXX XXXXX XXXXX A XXXXX XXXXX XXXXX XXXXX Για τις εισόδους X 1, X 2, X 3, X 4,X 5 υπάρχουν κι άλλοι συνδυασμοί καταστάσεων οι οποίοι αντιστοιχούν στις παρούσες καταστάσεις Q. Οι συνδυασμοί αυτοί, όμως, είναι αδιάφοροι όροι κι έτσι δεν αναγράφονται στον πίνακα. Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 203

206 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Για να παρασταθούν οι καταστάσεις A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P απαιτούνται τέσσερις μεταβλητές Q A Q B Q C Q D Άρα, απαιτούνται και τέσσερα flip - flop. Στη συγκεκριμένη περίπτωση χρησιμοποιούμε D flip - flop, τα D A, D B, D C και D D. Ο τρόπος με τον οποίο εκχωρούνται δυαδικοί συνδυασμοί στις καταστάσεις ενός κυκλώματος, επηρεάζει την πολυπλοκότητα του συνδυαστικού μέρους του κυκλώματος. Στη συνέχεια θα δείξουμε πως θα εκχωρήσουμε τις μεταβλητές Q A Q B Q C.Q D στις καταστάσεις A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P: A: Q A 0 B: Q A 0 C: Q A 0 D: Q A 0 E: Q A 0 Q B 0 Q B 0 Q B 0 Q B 0 Q B 1 Q C 0 Q C 0 Q C 1 Q C 1 Q C 0 Q D 0 Q D 1 Q D 0 Q D 1 Q D 0 F: Q A 0 G: Q A 0 H: Q A 0 I: Q A 1 J: Q A 1 Q B 1 Q B 1 Q B 1 Q B 0 Q B 0 Q C 0 Q C 1 Q C 1 Q C 0 Q C 0 Q D 1 Q D 0 Q D 1 Q D 0 Q D 1 K: Q A 1 L: Q A 1 M: Q A 1 N: Q A 1 O: Q A 1 Q B 0 Q B 0 Q B 1 Q B 1 Q B 1 Q C 1 Q C 1 Q C 0 Q C 0 Q C 1 Q D 0 Q D 1 Q D 0 Q D 1 Q D 0 P: Q A 1 Q B 1 Q C 1 Q D 1 Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 204

207 Πτυχιακή Εργασία Σύμφωνα με τις παραπάνω εκχωρήσεις στις μεταβλητές Q A Q B Q C Q D, ο πίνακας καταστάσεων του συστήματος μετατρέπεται όπως φαίνεται στον πίνακα : Πίνακας Πίνακας καταστάσεων Παρ. Κατ. Είσοδος X 1, X 2, X 3, X 4,X 5 Έξοδοι Q A Q B Q C Q D Z 1 Z 2 Z 3 Z 4 Z 5 Z 6 Z XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX 0000 XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX 0000 XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX 0000 XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX 0000 XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX XXXXX 0000 XXXXX XXXXX XXXXX XXXXX Σχεδίαση Εφαρμογών Ψηφιακών Συστημάτων Με Τη Γλώσσα VHDL 205

208 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής Εισαγωγή σχεδίασης δια μέσου κώδικα VHDL: Ο τρόπος που θα υλοποιηθεί η εφαρμογή είναι δια μέσου κώδικα VHDLκαι θα προγραμματιστεί με την βοήθεια των πινάκων αληθείας. 1 ος Τρόπος: Υλοποίηση με τους πίνακες αληθείας. LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY vending r IS PORT(CLOCK, RESET, FIFTY, TWENTY, TEN, CAN :IN STD_LOGIC; READY,DISPENSEA,DISPENSEB,RET,COIN,REST20,REST10 :OUT STD_LOGIC); END ENTITY vending r; ARCHITECTURE asm OF vending r IS TYPE STATE_TYPE IS (A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P); SIGNAL PRESENT_STATE, NEXT_STATE : STATE_TYPE; BEGIN SEQ: PROCESS (CLOCK) IS BEGIN IF (RISING_EDGE(CLOCK)) THEN PRESENT_STATE <=NEXT_STATE ; END PROCESS SEQ; COM:PROCESS(RESET,FIFTY,TWENTY,TEN,CAN,PRESENT_STATE)IS BEGIN READY <= '0'; DISPENSEA <= '0'; DISPENSEB <= '0'; RET <= '0'; COIN <= '0'; REST20 <= '0'; REST10 <= '0'; CASE PRESENT_STATE IS WHEN A => READY <= '1'; IF (CAN= '0' OR CAN ='1')THEN IF (FIFTY = '1') Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 206

209 Πτυχιακή Εργασία THEN NEXT_STATE <= B; ELSIF (TWENTY = '1') THEN NEXT_STATE <= C; ELSIF (TEN = '1') THEN NEXT_STATE <= D; ELSIF (RESET = '0') THEN NEXT_STATE <= A; ELSE NEXT_STATE <= A; WHEN B => COIN <= '1'; IF (CAN= '0') THEN IF (FIFTY = '1') THEN NEXT_STATE <= L; ELSIF (TWENTY = '1') THEN NEXT_STATE <= E; ELSIF (TEN = '1') THEN NEXT_STATE <= K; ELSIF (RESET = '0') THEN NEXT_STATE <= H; ELSE NEXT_STATE <= B; ELSE IF (FIFTY = '1') THEN NEXT_STATE <= P; ELSIF (TWENTY = '1') THEN NEXT_STATE <= M; ELSIF (TEN = '1') THEN NEXT_STATE <= K; ELSIF (RESET = '0') THEN NEXT_STATE <= H; ELSE NEXT_STATE <= B; WHEN C => COIN <= '1'; IF (CAN= '0') THEN IF (FIFTY = '1') THEN NEXT_STATE <= E; ELSIF (TWENTY = '1') THEN NEXT_STATE <= F; ELSIF (TEN = '1') THEN NEXT_STATE <= G; ELSIF (RESET = '0') THEN NEXT_STATE <= H; ELSE NEXT_STATE <= C; ELSE Σχεδίαση Ψηφιακών Συστημάτων Με Γλώσσα VHDL 207

210 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής IF (FIFTY = '1') THEN NEXT_STATE <= M; ELSIF (TWENTY = '1') THEN NEXT_STATE <= F; ELSIF (TEN = '1') THEN NEXT_STATE <= G; ELSIF (RESET = '0') THEN NEXT_STATE <= H; ELSE NEXT_STATE <= C; WHEN D => COIN <= '1'; IF (CAN= '0') THEN IF (FIFTY = '1') THEN NEXT_STATE <= K; ELSIF (TWENTY = '1') THEN NEXT_STATE <= G; ELSIF (TEN = '1') THEN NEXT_STATE <= C; ELSIF (RESET = '0') THEN NEXT_STATE <= H; ELSE NEXT_STATE <= D; ELSE IF (FIFTY = '1') THEN NEXT_STATE <= K; ELSIF (TWENTY = '1') THEN NEXT_STATE <= G; ELSIF (TEN = '1') THEN NEXT_STATE <= C; ELSIF (RESET = '0') THEN NEXT_STATE <= H; ELSE NEXT_STATE <= D; WHEN E => DISPENSEA <= '1'; NEXT_STATE <= A; WHEN F => COIN <= '1'; IF (CAN= '0') THEN IF (FIFTY = '1') THEN NEXT_STATE <= I; ELSIF (TWENTY = '1') THEN NEXT_STATE <= K; ELSIF (TEN = '1') Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 208

211 Πτυχιακή Εργασία THEN NEXT_STATE <= B; ELSIF (RESET = '0') THEN NEXT_STATE <= H; ELSE NEXT_STATE <= F; ELSE IF (FIFTY = '1') THEN NEXT_STATE <= N; ELSIF (TWENTY = '1') THEN NEXT_STATE <= K; ELSIF (TEN = '1') THEN NEXT_STATE <= B; ELSIF (RESET = '0') THEN NEXT_STATE <= H; ELSE NEXT_STATE <= F; WHEN G => COIN <= '1'; IF (CAN= '0') THEN IF (FIFTY = '1') THEN NEXT_STATE <= J; ELSIF (TWENTY = '1') THEN NEXT_STATE <= B; ELSIF (TEN = '1') THEN NEXT_STATE <= F; ELSIF (RESET = '0') THEN NEXT_STATE <= H; ELSE NEXT_STATE <= G; ELSE IF (FIFTY = '1') THEN NEXT_STATE <= O; ELSIF (TWENTY = '1') THEN NEXT_STATE <= B; ELSIF (TEN = '1') THEN NEXT_STATE <= F; ELSIF (RESET = '0') THEN NEXT_STATE <= H; ELSE NEXT_STATE <= G; WHEN H => RET <= '1'; NEXT_STATE <= A; WHEN I => DISPENSEA <= '1'; Σχεδίαση Ψηφιακών Συστημάτων Με Γλώσσα VHDL 209

212 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής REST20 <='1'; NEXT_STATE <= A; WHEN J => DISPENSEA <= '1'; REST10 <='1'; NEXT_STATE <= A; WHEN K => COIN <= '1'; IF (CAN= '0') THEN IF (FIFTY = '1') THEN NEXT_STATE <= I; ELSIF (TWENTY = '1') THEN NEXT_STATE <= J; ELSIF (TEN = '1') THEN NEXT_STATE <= E; ELSIF (RESET = '0') THEN NEXT_STATE <= H; ELSE NEXT_STATE <= K; ELSE IF (FIFTY = '1') THEN NEXT_STATE <= N; ELSIF (TWENTY = '1') THEN NEXT_STATE <= O; ELSIF (TEN = '1') THEN NEXT_STATE <= F; ELSIF (RESET = '0') THEN NEXT_STATE <= H; ELSE NEXT_STATE <= K; WHEN L => DISPENSEA <= '1'; REST20 <= '1'; REST10 <='1'; NEXT_STATE <= A; WHEN M => DISPENSEB <= '1'; NEXT_STATE <= A; WHEN N => DISPENSEB <= '1'; REST20 <='1'; NEXT_STATE <= A; Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 210

213 Πτυχιακή Εργασία END CASE; END PROCESS COM; END ARCHITECTURE asm; WHEN O => DISPENSEB <= '1'; REST10 <='1'; NEXT_STATE <= A; WHEN P => DISPENSEB <= '1'; REST20 <= '1'; REST10 <='1'; NEXT_STATE <= A; Το αποτέλεσμα προσομοίωσης του κώδικα φαίνεται παρακάτω. Εδώ θα παρουσιάσουμε δύο διαφορετικά Waveform Editor. Το πρώτο παρουσιάζει τη διαδικασία που γίνεται όταν έχουμε επιλέξει το πρώτο ποτό (CAN = 0, Σχήμα ), ενώ το δεύτερο όταν επιλέγουμε το δεύτερο ποτό (CAN =1, Σχήμα ). Στη προσομοίωση παρουσιάζονται όλες οι περιπτώσεις που μπορούν να εκτελεστούν. Εδώ όμως θα δείξουμε ενδεικτικά μερικές από αυτές. CAN =0 Σχήμα : Αποτελέσματα προσομοίωσης. Οι περιπτώσεις που απεικονίζονται παραπάνω είναι με τη σειρά: 50 λεπτά - 20 λεπτά 50 λεπτά - 10 λεπτά - 10 λεπτά 20 λεπτά - 20 λεπτά - 20 λεπτά - 10 λεπτά 50 λεπτά - 50 λεπτά 20 λεπτά - 20 λεπτά - 20 λεπτά - 20 λεπτά 20 λεπτά - 20 λεπτά - 50 λεπτά Reset = 1 CAN = 0 Σχεδίαση Ψηφιακών Συστημάτων Με Γλώσσα VHDL 211

214 Τ.Ε.Ι Καβάλας Τμήμα Βιομηχανικής Πληροφορικής CAN = 1 Σχήμα : Αποτελέσματα προσομοίωσης. Οι περιπτώσεις που δείχνουμε παραπάνω είναι με τη σειρά: 50 λεπτά - 20 λεπτά 50 λεπτά - 10 λεπτά - 10 λεπτά 20 λεπτά - 20 λεπτά - 20 λεπτά - 10 λεπτά 50 λεπτά - 50 λεπτά 20 λεπτά - 20 λεπτά - 20 λεπτά - 20 λεπτά 20 λεπτά - 20 λεπτά - 50 λεπτά Reset = 1 CAN = 1 Εκτός από το διάγραμμα βαθμίδας που έχει απεικονιστεί στο Σχήμα έχουμε και την απεικόνιση του Edit Sympol (Σχήμα ), το οποίο αποτελεί τρόπο που αναπαριστά τη λειτουργική σχεδίαση των εισόδων και εξόδων. Σχήμα : Απεικόνιση λειτουργικής σχεδίασης. Αναστασόπουλος Νεκτάριος - Δαρλαγιάννη Ιφιγένεια - Πετρίδη Ειρήνη 212

Ενότητα 2. Γενικά Οργάνωση Ελέγχου (ΙΙ) Φύλλα Εργασίας Εκθέσεις Ελέγχων

Ενότητα 2. Γενικά Οργάνωση Ελέγχου (ΙΙ) Φύλλα Εργασίας Εκθέσεις Ελέγχων Ενότητα 2 Γενικά Οργάνωση Ελέγχου (ΙΙ) Φύλλα Εργασίας Εκθέσεις Ελέγχων Φύλλα Εργασίας (Γενικά) Με τον όρο "φύλλα εργασίας" εννοούµε, το σύνολο των φύλλων που περιέχουν όλο το αποδεικτικό υλικό, το οποίο

Διαβάστε περισσότερα

62 η ΣΥΝΟΔΟΣ ΠΡΥΤΑΝΕΩΝ & ΠΡΟΕΔΡΩΝ Δ.Ε. ΤΩΝ ΕΛΛΗΝΙΚΩΝ ΠΑΝΕΠΙΣΤΗΜΙΩΝ

62 η ΣΥΝΟΔΟΣ ΠΡΥΤΑΝΕΩΝ & ΠΡΟΕΔΡΩΝ Δ.Ε. ΤΩΝ ΕΛΛΗΝΙΚΩΝ ΠΑΝΕΠΙΣΤΗΜΙΩΝ 62 η ΣΥΝΟΔΟΣ ΠΡΥΤΑΝΕΩΝ & ΠΡΟΕΔΡΩΝ Δ.Ε. ΤΩΝ ΕΛΛΗΝΙΚΩΝ ΠΑΝΕΠΙΣΤΗΜΙΩΝ Τεχνολογικό Πολιτιστικό Πάρκο Λαυρίου του Ε.Μ.Π. 11 & 12 Δεκεµβρίου 2009, Λαύριο ΕΙΣΗΓΗΣΗ ΓΙΑ ΤΟ ΣΥΣΤΗΜΑ ΠΡΟΣΒΑΣΗΣ ΣΤΗΝ ΤΡΙΤΟΒΑΘΜΙΑ ΕΚΠΑΙΔΕΥΣΗ

Διαβάστε περισσότερα

Αξιολόγηση του εκπαιδευτικού έργου

Αξιολόγηση του εκπαιδευτικού έργου 16MANTAS:Layout 1 6/22/09 3:07 PM Page 195 Παναγιώτης Μαντάς, Παιδαγωγικό Ινστιτούτο Ζαχαρούλα Ταβουλάρη, Σχολική Σύµβουλος Π.Ε. Θεόδωρος αλαβίκας, Παιδαγωγικό Ινστιτούτο Περίληψη Η αξιολόγηση του εκπαιδευτικού

Διαβάστε περισσότερα

ΤΜΗΜΑ ΣΥΝΤΗΡΗΣΗΣ ΗΜΟΤΙΚΩΝ αριθ. Πρωτ. Προκ: 54141 & ΣΧΟΛΙΚΩΝ ΚΤΙΡΙΩΝ Κ.Α. 30-7331.055 για το 2015

ΤΜΗΜΑ ΣΥΝΤΗΡΗΣΗΣ ΗΜΟΤΙΚΩΝ αριθ. Πρωτ. Προκ: 54141 & ΣΧΟΛΙΚΩΝ ΚΤΙΡΙΩΝ Κ.Α. 30-7331.055 για το 2015 ΕΛΛΗΝΙΚΗ ΗΜΟΚΡΑΤΙΑ Ηράκλειο, 05/05/2015 ΗΜΟΣ ΗΡΑΚΛΕΙΟΥ «Προµήθεια Χρωµάτων» /ΝΣΗ ΣΥΝΤΗΡΗΣΗΣ & Έργο: Συντήρηση Σχολικών Κτιρίων ΑΥΤΕΠΙΣΤΑΣΙΑΣ A/θµιας & Β/θµιας Εκπαίδευσης. ΤΜΗΜΑ ΣΥΝΤΗΡΗΣΗΣ ΗΜΟΤΙΚΩΝ αριθ.

Διαβάστε περισσότερα

15PROC003313118 2015-11-16

15PROC003313118 2015-11-16 ΕΛΛΗΝΙΚΗ ΗΜΟΚΡΑΤΙΑ ΝΟΜΟΣ ΛΕΣΒΟΥ ΗΜΟΣ ΛΗΜΝΟΥ ΤΜΗΜΑ ΟΙΚ. ΥΠΗΡΕΣΙΩΝ ΓΡΑΦΕΙΟ ΠΡΟΜΗΘΕΙΩΝ Μύρινα, 13 Νοεµβρίου 2015 Αρ. Πρωτ. : 17043 ΙΑΚΗΡΥΞΗ Ο ΗΜΑΡΧΟΣ ΛΗΜΝΟΥ Έχοντας υπ όψη: 1. Τις διατάξεις: α. Των άρθρων

Διαβάστε περισσότερα

ΣΧΕΔΙΟ. ΝΟΜΟΣ. Δηµόσιες υπεραστικές οδικές µεταφορές επιβατών. Κεφ. Α - ΓΕΝΙΚΕΣ ΔΙΑΤΑΞΕΙΣ. Άρθρο 1 Σκοπός πεδίο εφαρµογής

ΣΧΕΔΙΟ. ΝΟΜΟΣ. Δηµόσιες υπεραστικές οδικές µεταφορές επιβατών. Κεφ. Α - ΓΕΝΙΚΕΣ ΔΙΑΤΑΞΕΙΣ. Άρθρο 1 Σκοπός πεδίο εφαρµογής ΣΧΕΔΙΟ ΝΟΜΟΣ. Δηµόσιες υπεραστικές οδικές µεταφορές επιβατών Κεφ. Α - ΓΕΝΙΚΕΣ ΔΙΑΤΑΞΕΙΣ Άρθρο 1 Σκοπός πεδίο εφαρµογής 1. Σκοπός του παρόντος νόµου είναι : α) η εξασφάλιση της συνεχούς προσφοράς δηµοσίων

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 7 ΣΥΜΠΕΡΑΣΜΑΤΑ ΚΑΙ ΠΡΟΤΑΣΕΙΣ

ΚΕΦΑΛΑΙΟ 7 ΣΥΜΠΕΡΑΣΜΑΤΑ ΚΑΙ ΠΡΟΤΑΣΕΙΣ ΚΕΦΑΛΑΙΟ 7 ΣΥΜΠΕΡΑΣΜΑΤΑ ΚΑΙ ΠΡΟΤΑΣΕΙΣ Με βάση το στόχο της εργασίας που ήταν να εντοπιστούν και να παρουσιαστούν οι ποσοτικές (διαφορές βαθµολογικής απόδοσης) και οι ποιοτικές διαφορές (που αφορούν στην

Διαβάστε περισσότερα

ΤΙΤΛΟΣ I ΕΥΡΩΠΑΪΚΑ ΣΧΟΛΕΙΑ

ΤΙΤΛΟΣ I ΕΥΡΩΠΑΪΚΑ ΣΧΟΛΕΙΑ ΣΥΜΒΑΣΗ ΣΧΕΤΙΚΑ ΜΕ ΤΟ ΚΑΤΑΣΤΑΤΙΚΟ ΤΩΝ ΕΥΡΩΠΑΪΚΩΝ ΣΧΟΛΕΙΩΝ ΠΡΟΟΙΜΙΟ ΤΑ ΥΨΗΛΑ ΣΥΜΒΑΛΛΟΜΕΝΑ ΜΕΡΗ, ΜΕΛΗ ΤΩΝ ΕΥΡΩΠΑΪΚΩΝ ΚΟΙΝΟΤΗΤΩΝ ΚΑΙ ΟΙ ΕΥΡΩΠΑΪΚΕΣ ΚΟΙΝΟΤΗΤΕΣ, στο εξής αποκαλούµενα «τα συµβαλλόµενα µέρη»,

Διαβάστε περισσότερα

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

ΙΚΑΙΟΛΟΓΗΤΙΚΑ ΓΙΑ ΤΗΝ ΜΕΤΕΓΓΡΑΦΗ ΕΛΛΗΝΑ ΠΟ ΟΣΦΑΙΡΙΣΤΗ ΙΚΑΙΟΛΟΓΗΤΙΚΑ ΓΙΑ ΤΗΝ ΜΕΤΕΓΓΡΑΦΗ ΕΛΛΗΝΑ ΠΟ ΟΣΦΑΙΡΙΣΤΗ Π Ε Ρ Ι Ο Ο Ι Κ Α Τ Α Θ Ε Σ Η Σ : 1/7/2015 31/10/2015 & 1/01/2016-28/02/2016 1. ΕΛΤΙΟ ΑΘΛΗΤΙΚΗΣ Ι ΙΟΤΗΤΑΣ ΠΟ /ΣΤΗ - Αν δεν το έχει στην κατοχή του,

Διαβάστε περισσότερα

ΕΘΝΙΚΗ ΣΧΟΛΗ ΗΜΟΣΙΑΣ ΙΟΙΚΗΣΗΣ ΜΑΘΗΜΑ: ΟΡΓΑΝΩΣΗ ΚΑΙ ΛΕΙΤΟΥΡΓΙΑ ΤΟΥ ΚΡΑΤΟΥΣ (ΣΥΝΤΑΓΜΑΤΙΚΟ ΙΚΑΙΟ)

ΕΘΝΙΚΗ ΣΧΟΛΗ ΗΜΟΣΙΑΣ ΙΟΙΚΗΣΗΣ ΜΑΘΗΜΑ: ΟΡΓΑΝΩΣΗ ΚΑΙ ΛΕΙΤΟΥΡΓΙΑ ΤΟΥ ΚΡΑΤΟΥΣ (ΣΥΝΤΑΓΜΑΤΙΚΟ ΙΚΑΙΟ) ΕΘΝΙΚΗ ΣΧΟΛΗ ΗΜΟΣΙΑΣ ΙΟΙΚΗΣΗΣ ΜΑΘΗΜΑ: ΟΡΓΑΝΩΣΗ ΚΑΙ ΛΕΙΤΟΥΡΓΙΑ ΤΟΥ ΚΡΑΤΟΥΣ (ΣΥΝΤΑΓΜΑΤΙΚΟ ΙΚΑΙΟ) ΠΡΟΤΕΙΝΟΜΕΝΗ ΕΡΩΤΗΣΗ Με τον όρο δικαίωµα εκφράζεται η εξουσία που παρέχεται από το σύστηµα δικαίου. Ποια είναι

Διαβάστε περισσότερα

ΕΛΤΡΑΚ Α.Ε. ΕΝ ΙΑΜΕΣΕΣ ΟΙΚΟΝΟΜΙΚΕΣ ΚΑΤΑΣΤΑΣΕΙΣ ΓΙΑ ΤΟ ΕΝΝΕΑΜΗΝΟ ΤΟΥ 2005 ΣΥΜΦΩΝΑ ΜΕ ΤΑ ΙΕΘΝΗ ΠΡΟΤΥΠΑ ΧΡΗΜΑΤΟΟΙΚΟΝΟΜΙΚΗΣ ΠΛΗΡΟΦΟΡΗΣΗΣ ( ΠΧΠ)

ΕΛΤΡΑΚ Α.Ε. ΕΝ ΙΑΜΕΣΕΣ ΟΙΚΟΝΟΜΙΚΕΣ ΚΑΤΑΣΤΑΣΕΙΣ ΓΙΑ ΤΟ ΕΝΝΕΑΜΗΝΟ ΤΟΥ 2005 ΣΥΜΦΩΝΑ ΜΕ ΤΑ ΙΕΘΝΗ ΠΡΟΤΥΠΑ ΧΡΗΜΑΤΟΟΙΚΟΝΟΜΙΚΗΣ ΠΛΗΡΟΦΟΡΗΣΗΣ ( ΠΧΠ) ΕΛΤΡΑΚ Α.Ε. ΕΝ ΙΑΜΕΣΕΣ ΟΙΚΟΝΟΜΙΚΕΣ ΚΑΤΑΣΤΑΣΕΙΣ ΓΙΑ ΤΟ ΕΝΝΕΑΜΗΝΟ ΤΟΥ 2005 ΣΥΜΦΩΝΑ ΜΕ ΤΑ ΙΕΘΝΗ ΠΡΟΤΥΠΑ ΧΡΗΜΑΤΟΟΙΚΟΝΟΜΙΚΗΣ ΠΛΗΡΟΦΟΡΗΣΗΣ ( ΠΧΠ) Βεβαιώνεται ότι οι συνηµµένες Ενδιάµεσες Εταιρικές και Ενοποιηµένες

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΡΟΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ «ΔΙΟΙΚΗΣΗ ΕΠΙΧΕΙΡΗΣΕΩΝ ΚΑΙ ΟΡΓΑΝΙΣΜΩΝ» Θ.Ε. ΔΕΟ 10 Βασικές Αρχές Δικαίου και Διοίκησης

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΡΟΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ «ΔΙΟΙΚΗΣΗ ΕΠΙΧΕΙΡΗΣΕΩΝ ΚΑΙ ΟΡΓΑΝΙΣΜΩΝ» Θ.Ε. ΔΕΟ 10 Βασικές Αρχές Δικαίου και Διοίκησης ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΡΟΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ «ΔΙΟΙΚΗΣΗ ΕΠΙΧΕΙΡΗΣΕΩΝ ΚΑΙ ΟΡΓΑΝΙΣΜΩΝ» Θ.Ε. ΔΕΟ 10 Βασικές Αρχές Δικαίου και Διοίκησης Τρίτη Γραπτή Εργασία στο Αστικό και Εργατικό Δίκαιο Ακαδημαϊκό

Διαβάστε περισσότερα

ΣΧΕ ΙΑΣΜΟΣ ΖΩΝΩΝ ΧΡΗΣΕΩΝ ΓΗΣ ΣΕ ΠΕΡΙΟΧΕΣ Γ.Π.Σ.

ΣΧΕ ΙΑΣΜΟΣ ΖΩΝΩΝ ΧΡΗΣΕΩΝ ΓΗΣ ΣΕ ΠΕΡΙΟΧΕΣ Γ.Π.Σ. ΤΕΧΝΙΚΟ ΕΠΙΜΕΛΗΤΗΡΙΟ ΕΛΛΑ ΟΣ ΤΜΗΜΑ ΚΕΝΤΡΙΚΗΣ ΜΑΚΕ ΟΝΙΑΣ ΣΧΕ ΙΑΣΜΟΣ ΖΩΝΩΝ ΧΡΗΣΕΩΝ ΓΗΣ ΣΕ ΠΕΡΙΟΧΕΣ Γ.Π.Σ. (Οµάδα Εργασίας σύµφωνα µε την 136/ 2005 απόφαση) Πρώτη Έκθεση Οµάδα Εργασίας: ΑΓΓΕΛΙ ΗΣ Ι. ΑΜ, πολεοδόµος

Διαβάστε περισσότερα

Η ΕΠΑΓΓΕΛΜΑΤΙΚΗ & ΕΠΙΧΕΙΡΗΜΑΤΙΚΗ ΔΡΑΣΤΗΡΙΟΠΟΙΗΣΗ ΤΩΝ ΕΛΛΗΝΩΝ ΤΗΣ ΔΙΑΣΠΟΡΑΣ ΜΕΤΑ ΤΟΝ Β ΠΑΓΚΟΣΜΙΟ ΠΟΛΕΜΟ ΚΑΙ Η ΕΠΙΔΡΑΣΗ ΤΗΣ ΣΤΟ ΕΘΝΙΚΟ ΚΕΝΤΡΟ

Η ΕΠΑΓΓΕΛΜΑΤΙΚΗ & ΕΠΙΧΕΙΡΗΜΑΤΙΚΗ ΔΡΑΣΤΗΡΙΟΠΟΙΗΣΗ ΤΩΝ ΕΛΛΗΝΩΝ ΤΗΣ ΔΙΑΣΠΟΡΑΣ ΜΕΤΑ ΤΟΝ Β ΠΑΓΚΟΣΜΙΟ ΠΟΛΕΜΟ ΚΑΙ Η ΕΠΙΔΡΑΣΗ ΤΗΣ ΣΤΟ ΕΘΝΙΚΟ ΚΕΝΤΡΟ ΤΕΧΝΟΛΟΓΙΚΌ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΑΒΑΛΑΣ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗ ΕΠΙΧΕΙΡΗΣΕΩΝ Η ΕΠΑΓΓΕΛΜΑΤΙΚΗ & ΕΠΙΧΕΙΡΗΜΑΤΙΚΗ ΔΡΑΣΤΗΡΙΟΠΟΙΗΣΗ ΤΩΝ ΕΛΛΗΝΩΝ ΤΗΣ ΔΙΑΣΠΟΡΑΣ ΜΕΤΑ ΤΟΝ Β ΠΑΓΚΟΣΜΙΟ ΠΟΛΕΜΟ

Διαβάστε περισσότερα

Ο ΠΡΟΕΔΡΟΣ ΤΗΣ ΒΟΥΛΗΣ ΤΩΝ ΕΛΛΗΝΩΝ. Άρθρο πρώτο.

Ο ΠΡΟΕΔΡΟΣ ΤΗΣ ΒΟΥΛΗΣ ΤΩΝ ΕΛΛΗΝΩΝ. Άρθρο πρώτο. ΝΟΜΟΣ: 1634/86 Κύρωση των πρωτοκόλλων 1980 «Για την προστασία της Μεσογείου θαλάσσης από τη ρύπανση από χερσαίες πηγές» και 1982 «περί των ειδικά προστατευομένων περιοχών της Μεσογείου» (ΦΕΚ 104/Α/18-07-86)

Διαβάστε περισσότερα

ΑΝΑΡΤΗΤΕΑ ΣΤΟ ΙΑ ΙΚΤΥΟ. ΕΛΛΗΝΙΚΗ ΗΜΟΚΡΑΤΙΑ ΝΟΜΟΣ ΗΜΑΘΙΑΣ ΗΜΟΣ ΑΛΕΞΑΝ ΡΕΙΑΣ Αλεξάνδρεια, 13-02-2012 Αριθµ. Πρωτ.: 4699

ΑΝΑΡΤΗΤΕΑ ΣΤΟ ΙΑ ΙΚΤΥΟ. ΕΛΛΗΝΙΚΗ ΗΜΟΚΡΑΤΙΑ ΝΟΜΟΣ ΗΜΑΘΙΑΣ ΗΜΟΣ ΑΛΕΞΑΝ ΡΕΙΑΣ Αλεξάνδρεια, 13-02-2012 Αριθµ. Πρωτ.: 4699 ΑΝΑΡΤΗΤΕΑ ΣΤΟ ΙΑ ΙΚΤΥΟ ΕΛΛΗΝΙΚΗ ΗΜΟΚΡΑΤΙΑ ΝΟΜΟΣ ΗΜΑΘΙΑΣ ΗΜΟΣ ΑΛΕΞΑΝ ΡΕΙΑΣ Αλεξάνδρεια, 13-02-2012 Αριθµ. Πρωτ.: 4699 ΑΝΑΚΟΙΝΩΣΗ Για την πρόσληψη προσωπικού µε σύµβαση εργασίας ιδιωτικού δικαίου ορισµένου

Διαβάστε περισσότερα

Έχοντας υπόψη: τη συνθήκη για την ίδρυση της Ευρωπαϊκής Κοινότητας, και ιδίως το άρθρο 175 παράγραφος 1, την πρόταση της Επιτροπής ( 1 ),

Έχοντας υπόψη: τη συνθήκη για την ίδρυση της Ευρωπαϊκής Κοινότητας, και ιδίως το άρθρο 175 παράγραφος 1, την πρόταση της Επιτροπής ( 1 ), L 197/30 EL Επίσηµη Εφηµερίδα των Ευρωπαϊκών Κοινοτήτων 21.7.2001 Ο ΗΓΙΑ 2001/42/ΕΚ ΤΟΥ ΕΥΡΩΠΑΪΚΟΥ ΚΟΙΝΟΒΟΥΛΙΟΥ ΚΑΙ ΤΟΥ ΣΥΜΒΟΥΛΙΟΥ της 27ης Ιουνίου 2001 σχετικά µε την εκτίµηση των περιβαλλοντικών επιπτώσεων

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2009 2010 ΟΔΗΓΟΣ ΣΠΟΥΔΩΝ ΤΜΗΜΑ ΓΕΩΠΟΝΙΑΣ ΦΥΤΙΚΗΣ ΠΑΡΑΓΩΓΗΣ ΚΑΙ ΑΓΡΟΤΙΚΟΥ ΠΕΡΙΒΑΛΛΟΝΤΟΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ Ν. Ιωνία, ΒΟΛΟΣ Τη συγκέντρωση της ύλης του και την επιμέλεια της έκδοσης είχε

Διαβάστε περισσότερα

ΒΙΟΛΟΓΙΑ ΓΕΝΙΚΗΣ ΠΑΙ ΕΙΑΣ 2010 ΕΚΦΩΝΗΣΕΙΣ

ΒΙΟΛΟΓΙΑ ΓΕΝΙΚΗΣ ΠΑΙ ΕΙΑΣ 2010 ΕΚΦΩΝΗΣΕΙΣ ΘΕΜΑ Α ΒΙΟΛΟΓΙΑ ΓΕΝΙΚΗΣ ΠΑΙ ΕΙΑΣ 2010 ΕΚΦΩΝΗΣΕΙΣ Να γράψετε στο τετράδιό σας τον αριθµό καθεµιάς από τις παρακάτω ηµιτελείς προτάσεις Α1 έως Α5 και δίπλα το γράµµα που αντιστοιχεί στη λέξη ή στη φράση,

Διαβάστε περισσότερα

ΙΝΤΕΑΛ ΣΥΣΤΗΜΑΤΑ ΤΡΑΠΕΖΙΚΩΝ-ΕΜΠΟΡΙΚΩΝ ΕΦΑΡΜΟΓΩΝ Α.Ε.Β.Ε.

ΙΝΤΕΑΛ ΣΥΣΤΗΜΑΤΑ ΤΡΑΠΕΖΙΚΩΝ-ΕΜΠΟΡΙΚΩΝ ΕΦΑΡΜΟΓΩΝ Α.Ε.Β.Ε. ΙΝΤΕΑΛ ΣΥΣΤΗΜΑΤΑ ΤΡΑΠΕΖΙΚΩΝ-ΕΜΠΟΡΙΚΩΝ ΕΦΑΡΜΟΓΩΝ Α.Ε.Β.Ε. Ετήσιες Οικονοµικές Καταστάσεις Της οικονοµικής χρήσεως από 1 η Ιανουαρίου έως 31η εκεµβρίου 2006 σύµφωνα µε τα ιεθνή Λογιστικά Πρότυπα Βεβαιώνεται

Διαβάστε περισσότερα

ΕΝΔΕΙΚΤΙΚΕΣ ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑΤΩΝ ΝΕΟΕΛΛΗΝΙΚΗΣ ΓΛΩΣΣΑΣ A1. Ο συγγραφέας ορίζει το φαινόμενο του ανθρωπισμού στη σύγχρονη εποχή. Αρχικά προσδιορίζει την

ΕΝΔΕΙΚΤΙΚΕΣ ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑΤΩΝ ΝΕΟΕΛΛΗΝΙΚΗΣ ΓΛΩΣΣΑΣ A1. Ο συγγραφέας ορίζει το φαινόμενο του ανθρωπισμού στη σύγχρονη εποχή. Αρχικά προσδιορίζει την ΕΝΔΕΙΚΤΙΚΕΣ ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑΤΩΝ ΝΕΟΕΛΛΗΝΙΚΗΣ ΓΛΩΣΣΑΣ A1. Ο συγγραφέας ορίζει το φαινόμενο του ανθρωπισμού στη σύγχρονη εποχή. Αρχικά προσδιορίζει την έννοια της ανθρωπιάς ως συμμετοχής στα προβλήματα των

Διαβάστε περισσότερα

ΑΠΟΣΠΑΣΜΑ. Από το υπ' αριθµ. 30/01-09-2015 Πρακτικό της Οικονοµικής Επιτροπής Ιονίων Νήσων

ΑΠΟΣΠΑΣΜΑ. Από το υπ' αριθµ. 30/01-09-2015 Πρακτικό της Οικονοµικής Επιτροπής Ιονίων Νήσων ΕΛΛΗΝΙΚΗ ΗΜΟΚΡΑΤΙΑ ΠΕΡΙΦΕΡΕΙΑ ΙΟΝΙΩΝ ΝΗΣΩΝ ΟΙΚΟΝΟΜΙΚΗ ΕΠΙΤΡΟΠΗ ΑΠΟΣΠΑΣΜΑ Από το υπ' αριθµ. 30/01-09-2015 Πρακτικό της Οικονοµικής Επιτροπής Ιονίων Νήσων Αριθµ. απόφασης 571-30/01-09-2015 ΠΕΡΙΛΗΨΗ: Έγκριση

Διαβάστε περισσότερα

Σέρρες 11.5.2015 Αριθ. Πρωτ.: 1387

Σέρρες 11.5.2015 Αριθ. Πρωτ.: 1387 ΕΛΛΗΝΙΚΗ ΗΜΟΚΡΑΤΙΑ TEΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΚΕΝΤΡΙΚΗΣ ΜΑΚΕ ΟΝΙΑΣ ΤΕΡΜΑ ΜΑΓΝΗΣΙΑΣ - 614 ΣΕΡΡΕΣ ΠΡΟΚΗΡΥΞΗ Σέρρες 11.5.015 Αριθ. Πρωτ.: 1387 ΠΡΟΣΛΗΨΗΣ ΕΠΙΣΤΗΜΟΝΙΚΩΝ ΣΥΝΕΡΓΑΤΩΝ, ΕΡΓΑΣΤΗΡΙΑΚΩΝ ΣΥΝΕΡΓΑΤΩΝ,

Διαβάστε περισσότερα

I.Επί της Αρχής του σχεδίου Νόµου: ΙΙ. Επί των άρθρων του σχεδίου Νόµου: ΕΙΣΗΓΗΤΙΚΗ ΕΚΘΕΣΗ

I.Επί της Αρχής του σχεδίου Νόµου: ΙΙ. Επί των άρθρων του σχεδίου Νόµου: ΕΙΣΗΓΗΤΙΚΗ ΕΚΘΕΣΗ ΕΙΣΗΓΗΤΙΚΗ ΕΚΘΕΣΗ στο σχέδιο νόµου «Πρωτοβάθµιο Εθνικό Δίκτυο Υγείας (Π.Ε.Δ.Υ.), αλλαγή σκοπού Ε.Ο.Π.Υ.Υ. και λοιπές διατάξεις» Προς τη Βουλή των Ελλήνων I.Επί της Αρχής του σχεδίου Νόµου: Με τις διατάξεις

Διαβάστε περισσότερα

ΚΟΙΝΟΠΟΙΗΣΗ : Ως συν/νος πίνακας ΘΕΜΑ : «Καταβολή Δωροσήμου Χριστουγέννων 2015 σε εργατοτεχνίτες οικοδόμους»

ΚΟΙΝΟΠΟΙΗΣΗ : Ως συν/νος πίνακας ΘΕΜΑ : «Καταβολή Δωροσήμου Χριστουγέννων 2015 σε εργατοτεχνίτες οικοδόμους» Αθήνα 7/12/2015 Δ Ι Ο Ι Κ Η Σ Η ΓΕΝ.Δ/ΝΣΕΙΣ : ΑΣΦΑΛΙΣΤΙΚΩΝ ΥΠΗΡΕΣΙΩΝ : ΟΙΚΟΝΟΜΟΤΕΧΝΙΚΩΝ ΥΠΗΡΕΣΙΩΝ : ΠΛΗΡΟΦΟΡΙΚΗΣ Δ/ΝΣΕΙΣ : ΑΣΦΑΛΙΣΗΣ ΕΣΟΔΩΝ : ΟΙΚΟΝΟΜΙΚΩΝ ΥΠΗΡΕΣΙΩΝ : ΕΦΑΡΜΟΓΩΝ Ταχ. Δ/νση : Αγ. Κων/νου

Διαβάστε περισσότερα

ΙΑΚΗΡΥΞΗ. Αριθµός-Α/Α Συστήµατος : 13142

ΙΑΚΗΡΥΞΗ. Αριθµός-Α/Α Συστήµατος : 13142 Αναρτητέα στο µητρώο ΕΛΛΗΝΙΚΗ ΗΜΟΚΡΑΤΙΑ ΠΕΡΙΦΕΡΕΙΑ ΠΕΛΟΠΟΝΝΗΣΟΥ ΠΕΡΙΦΕΡΕΙΑΚΗ ΕΝΟΤΗΤΑ ΜΕΣΣΗΝΙΑΣ ΓΕΝΙΚΗ /ΝΣΗ ΕΣΩΤΕΡΙΚΗΣ ΛΕΙΤΟΥΡΓΙΑΣ /ΝΣΗ ΙΟΙΚΗΤΙΚΟΥ-ΟΙΚΟΝΟΜΙΚΟΥ ΤΜΗΜΑ ΠΡΟΜΗΘΕΙΩΝ Καλαµάτα, 15 Ιουλίου 2015

Διαβάστε περισσότερα

ΠΕΡΙΕΧΟΜΕΝΑ ΕΙΣΑΓΩΓΙΚΟ ΣΗΜΕΙΩΜΑ 13 Α' ΜΕΡΟΣ ΑΠΟ ΤΟΝ ΠΟΛΕΜΟ ΤΟΥ 1897 ΣΤΟ ΓΟΥΔΙ

ΠΕΡΙΕΧΟΜΕΝΑ ΕΙΣΑΓΩΓΙΚΟ ΣΗΜΕΙΩΜΑ 13 Α' ΜΕΡΟΣ ΑΠΟ ΤΟΝ ΠΟΛΕΜΟ ΤΟΥ 1897 ΣΤΟ ΓΟΥΔΙ ΠΕΡΙΕΧΟΜΕΝΑ ΕΙΣΑΓΩΓΙΚΟ ΣΗΜΕΙΩΜΑ 13 Α' ΜΕΡΟΣ ΑΠΟ ΤΟΝ ΠΟΛΕΜΟ ΤΟΥ 1897 ΣΤΟ ΓΟΥΔΙ Του Βασίλη Γούναρη 19 1. Η ΔΙΑΧΕΙΡΙΣΗ ΤΗΣ ΗΤΤΑΣ ΤΟΥ 1897 21 η ηττα και η συνθηκολογηση οι συνεπειες της ηττας εξελιξεις και

Διαβάστε περισσότερα

ΕΠΙΤΡΟΠΗ ΕΘΝΙΚΗΣ ΑΜΥΝΑΣ ΚΑΙ ΕΞΩΤΕΡΙΚΩΝ ΥΠΟΘΕΣΕΩΝ ΝΟΜΟΣΧΕ ΙΟ. «Στρατολογία των Ελλήνων» Άρθρο 1 Υπόχρεοι σε στράτευση

ΕΠΙΤΡΟΠΗ ΕΘΝΙΚΗΣ ΑΜΥΝΑΣ ΚΑΙ ΕΞΩΤΕΡΙΚΩΝ ΥΠΟΘΕΣΕΩΝ ΝΟΜΟΣΧΕ ΙΟ. «Στρατολογία των Ελλήνων» Άρθρο 1 Υπόχρεοι σε στράτευση ΕΠΙΤΡΟΠΗ ΕΘΝΙΚΗΣ ΑΜΥΝΑΣ ΚΑΙ ΕΞΩΤΕΡΙΚΩΝ ΥΠΟΘΕΣΕΩΝ ΝΟΜΟΣΧΕ ΙΟ «Στρατολογία των Ελλήνων» Άρθρο 1 Υπόχρεοι σε στράτευση 1. Όλοι οι Έλληνες πολίτες, από την 1η Ιανουαρίου του έτους κατά το οποίο διανύουν το

Διαβάστε περισσότερα

ΑΝΑΡΤΗΤΕΑ ΣΤΟ ΙΑ ΙΚΤΥΟ ΕΛΛΗΝΙΚΗ ΗΜΟΚΡΑΤΙΑ ΝΟΜΟΣ ATTIKHΣ Αχαρνές, 15/10/2015 Φ.Π.Α. 23%: 9.337,54 Ι Α Κ Η Ρ Υ Ξ Η

ΑΝΑΡΤΗΤΕΑ ΣΤΟ ΙΑ ΙΚΤΥΟ ΕΛΛΗΝΙΚΗ ΗΜΟΚΡΑΤΙΑ ΝΟΜΟΣ ATTIKHΣ Αχαρνές, 15/10/2015 Φ.Π.Α. 23%: 9.337,54 Ι Α Κ Η Ρ Υ Ξ Η ΔΗΜΟΣ ΑΧΑΡΝΩΝ Σύστημα Διαχείρισης Ποιότητας ISO 9001 : 2008 ΑΝΑΡΤΗΤΕΑ ΣΤΟ ΙΑ ΙΚΤΥΟ ΕΛΛΗΝΙΚΗ ΗΜΟΚΡΑΤΙΑ ΝΟΜΟΣ ATTIKHΣ Αχαρνές, 15/10/2015 ΗΜΟΣ ΑΧΑΡΝΩΝ ιεύθυνση Οικονοµικών Υπηρεσιών Αριθµ. πρωτ.: 71817 Τµήµα

Διαβάστε περισσότερα

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

ΕΛΛΗΝΙΚΗ ΗΜΟΚΡΑΤΙΑ ΝΟΜΟΣ ΘΕΣΣΑΛΟΝΙΚΗΣ Ο ΗΜΑΡΧΟΣ ΘΕΣΣΑΛΟΝΙΚΗΣ /ΝΣΗ ΟΙΚΟΝΟΜΙΚΗΣ & ΤΑΜΕΙΑΚΗΣ ΙΑΧΕΙΡΙΣΗΣ ΤΜΗΜΑ ΠΡΟΚΗΡΥΞΕΩΝ & ΗΜΟΠΡΑΣΙΩΝ ΕΛΛΗΝΙΚΗ ΗΜΟΚΡΑΤΙΑ ΝΟΜΟΣ ΘΕΣΣΑΛΟΝΙΚΗΣ ΗΜΟΣ ΘΕΣΣΑΛΟΝΙΚΗΣ /ΝΣΗ ΟΙΚΟΝΟΜΙΚΗΣ & ΤΑΜΕΙΑΚΗΣ ΙΑΧΕΙΡΙΣΗΣ ΤΜΗΜΑ ΠΡΟΚΗΡΥΞΕΩΝ & ΗΜΟΠΡΑΣΙΩΝ Προµήθεια παιχνιδιών για την κάλυψη των αναγκών των ηµοτικών Παιδικών Σταθµών

Διαβάστε περισσότερα

A1. Να γράψετε στο τετράδιό σας την περίληψη του κειμένου που σας δόθηκε (100-120 λέξεις). Μονάδες 25

A1. Να γράψετε στο τετράδιό σας την περίληψη του κειμένου που σας δόθηκε (100-120 λέξεις). Μονάδες 25 ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΚΑΙ Δ ΤΑΞΗΣ ΕΣΠΕΡΙΝΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΚΑΙ ΕΠΑΛ (ΟΜΑΔΑ Β ) ΤΕΤΑΡΤΗ 28 ΜΑΪΟΥ 2014 - ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΝΕΟΕΛΛΗΝΙΚΗ ΓΛΩΣΣΑ ΓΕΝΙΚΗΣ ΠΑΙΔΕΙΑΣ ΚΕΙΜΕΝΟ Η «ανθρωπιά» είναι

Διαβάστε περισσότερα

Πολιτική Πρόταση για μια Προοδευτική Διέξοδο Από την Κρίση

Πολιτική Πρόταση για μια Προοδευτική Διέξοδο Από την Κρίση Πολιτική Πρόταση για μια Προοδευτική Διέξοδο Από την Κρίση ΑΘΗΝΑ, 09/04/12 ΕΙΣΑΓΩΓΗ Η χώρα διανύει την κρισιμότερη περίοδο μετά τη μεταπολίτευση. Δεν πρέπει να ζήσει σε καθεστώς χρεοκρατίας, ούτε όμως

Διαβάστε περισσότερα

2004-2006: Aύξηση φόρου εισοδήµατος, και µείωση µισθών

2004-2006: Aύξηση φόρου εισοδήµατος, και µείωση µισθών 2004-2006: Aύξηση φόρου εισοδήµατος, και µείωση µισθών Περίληψη Το Υπουργείο Οικονοµικών έχει κατορθώσει να µειώσει τους πραγµατικούς µας µισθούς, συνδυάζοντας την επίδραση των ακολούθων γεγονότων που

Διαβάστε περισσότερα

Η Αγορά Ηλεκτρικής Ενέργειας στην Κύπρο έχει οργανωθεί σε τομείς που υπόκεινται στις ακόλουθες ρυθμίσεις:

Η Αγορά Ηλεκτρικής Ενέργειας στην Κύπρο έχει οργανωθεί σε τομείς που υπόκεινται στις ακόλουθες ρυθμίσεις: ΡΥΘΜΙΣΤΙΚΗ ΑΡΧΗ ΕΝΕΡΓΕΙΑΣ ΚΥΠΡΟΥ ΔΗΛΩΣΗ ΡΥΘΜΙΣΤΙΚΗΣ ΠΡΑΚΤΙΚΗΣ ΚΑΙ ΠΡΟΣΧΕΔΙΟ ΜΕΘΟΔΟΛΟΓΙΑΣ ΔΙΑΤΙΜΗΣΕΩΝ ΗΛΕΚΤΡΙΣΜΟΥ Η ΡΑΕΚ θέτει και δημοσιεύει την παρούσα πρόταση ως προς τις αρχές και τη Μεθοδολογία που

Διαβάστε περισσότερα

ΑΝΑΚΟΙΝΩΣΗ υπ' αριθµ. ΣΟΧ 1/2015 για τη σύναψη ΣΥΜΒΑΣΗΣ ΕΡΓΑΣΙΑΣ ΟΡΙΣΜΕΝΟΥ ΧΡΟΝΟΥ

ΑΝΑΚΟΙΝΩΣΗ υπ' αριθµ. ΣΟΧ 1/2015 για τη σύναψη ΣΥΜΒΑΣΗΣ ΕΡΓΑΣΙΑΣ ΟΡΙΣΜΕΝΟΥ ΧΡΟΝΟΥ ΕΛΛΗΝΙΚΗ ΗΜΟΚΡΑΤΙΑ Ηράκλειο 14 / 10 / 2015 ΗΜΟΣ ΗΡΑΚΛΕΙΟΥ ΚΡΗΤΗΣ ΙΕΥΘΥΝΣΗ ΙΟΙΚΗΤΙΚΩΝ ΥΠΗΡΕΣΙΩΝ Αριθ. Πρωτ.: 138.737 ΑΓΙΟΥ ΤΙΤΟΥ 1 71202 ΤΜΗΜΑ: ΑΝΘΡΩΠΙΝΟΥ ΥΝΑΜΙΚΟΥ ΥΠΕΥΘΥΝΟΣ:ΚΑΤΣΑΡΑΚΗΣ ΚΩΝ/ΝΟΣ ΤΗΛΕΦΩΝΟ:

Διαβάστε περισσότερα

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΗΜΕΡΗΣΙΩΝ

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΗΜΕΡΗΣΙΩΝ ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΗΜΕΡΗΣΙΩΝ ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΚΑΙ ΕΠΑΛ (ΟΜΑΔΑ Β ) ΤΕΤΑΡΤΗ 20 ΜΑΪΟΥ 2015 - ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΒΙΟΛΟΓΙΑ ΓΕΝΙΚΗΣ ΠΑΙΔΕΙΑΣ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΠΕΝΤΕ (5)

Διαβάστε περισσότερα

Η ΜΠΑΡΤΣΑ ΓΙΟΡΤΑΖΕΙ ΤΗΝ ΑΝΟΔΟ ΚΑΙ ΠΑΕΙ ΔΥΝΑΤΑ ΓΙΑ ΝΤΑ ΣΙΛΒΑ

Η ΜΠΑΡΤΣΑ ΓΙΟΡΤΑΖΕΙ ΤΗΝ ΑΝΟΔΟ ΚΑΙ ΠΑΕΙ ΔΥΝΑΤΑ ΓΙΑ ΝΤΑ ΣΙΛΒΑ εβδομαδιαία αθλητική εφημερίδα Τρίτη 22 Μαΐου 2012 1,30 Αρ. φύλλου:66 www.korinhiaspors.gr Η ΜΠΑΡΤΣΑ ΓΙΟΡΤΑΖΕΙ ΤΗΝ ΑΝΟΔΟ ΚΑΙ ΠΑΕΙ ΔΥΝΑΤΑ ΓΙΑ ΝΤΑ ΣΙΛΒΑ Άρεσε ο βραζιλιάνος στόπερ στο φιλικό με Πανιώνιο.

Διαβάστε περισσότερα

ΜΕΛΕΤΗ. ΠΡΟΜΗΘΕΙΑΣ ΥΠΟΧΛΩΡΙΩΔΟΥΣ ΝΑΤΡΙΟΥ ΕΤΟΥΣ 2015-16 ΠΡΟΫΠΟΛΟΓΙΣΜΟΥ: 18.000,00 πλέον του αναλογούντος Φ.Π.Α.

ΜΕΛΕΤΗ. ΠΡΟΜΗΘΕΙΑΣ ΥΠΟΧΛΩΡΙΩΔΟΥΣ ΝΑΤΡΙΟΥ ΕΤΟΥΣ 2015-16 ΠΡΟΫΠΟΛΟΓΙΣΜΟΥ: 18.000,00 πλέον του αναλογούντος Φ.Π.Α. ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΑΠΟΚΕΝΤΡΩΜΕΝΗ ΔΙΟΙΚΗΣΗ ΜΑΚΕΔΟΝΙΑΣ ΘΡΑΚΗΣ ΠΕΡΙΦΕΡΕΙΑΚΗ ΕΝΟΤΗΤΑ ΘΕΣΣΑΛΟΝΙΚΗΣ ΔΗΜΟΤΙΚΗ ΕΠΙΧΕΙΡΗΣΗ ΥΔΡΕΥΣΗΣ ΑΠΟΧΕΤΕΥΣΗΣ ΘΕΡΜΗΣ ( Δ.Ε.Υ.Α.Θ. ) Προµήθεια: «ΠΡΟΜΗΘΕΙΑ ΥΠΟΧΛΩΡΙΩΔΟΥΣ ΝΑΤΡΙΟΥ

Διαβάστε περισσότερα

ΚΑΤΑΣΤΑΤΙΚΟ ΚΕΝΤΡΟΥ ΝΕΟΤΗΤΑΣ. ΙΔΡΥΣΗ Ιδρύεται Κέντρο Νεότητας µε την επωνυµία «Κέντρο Νεότητας... µε έδρα...

ΚΑΤΑΣΤΑΤΙΚΟ ΚΕΝΤΡΟΥ ΝΕΟΤΗΤΑΣ. ΙΔΡΥΣΗ Ιδρύεται Κέντρο Νεότητας µε την επωνυµία «Κέντρο Νεότητας... µε έδρα... ΚΑΤΑΣΤΑΤΙΚΟ ΚΕΝΤΡΟΥ ΝΕΟΤΗΤΑΣ ΑΡΘΡΟ 1 ΙΔΡΥΣΗ Ιδρύεται Κέντρο Νεότητας µε την επωνυµία «Κέντρο Νεότητας... µε έδρα... ΑΡΘΡΟ 2 Στο Καταστατικό αυτό «Κέντρο Νεότητας» σηµαίνει: «εθελοντική-κοινοτική οργάνωση

Διαβάστε περισσότερα

ΣΧΕΔΙΟ ΝΟΜΟΥ ΕΝΙΣΧΥΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΤΗΣ ΚΙΝΗΜΑΤΟΓΡΑΦΙΚΗΣ ΤΕΧΝΗΣ ΚΑΙ ΑΛΛΕΣ ΔΙΑΤΑΞΕΙΣ. Γενικές Αρχές και Ορισμοί. Άρθρο 1 Γενικές αρχές

ΣΧΕΔΙΟ ΝΟΜΟΥ ΕΝΙΣΧΥΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΤΗΣ ΚΙΝΗΜΑΤΟΓΡΑΦΙΚΗΣ ΤΕΧΝΗΣ ΚΑΙ ΑΛΛΕΣ ΔΙΑΤΑΞΕΙΣ. Γενικές Αρχές και Ορισμοί. Άρθρο 1 Γενικές αρχές ΣΧΕΔΙΟ ΝΟΜΟΥ ΕΝΙΣΧΥΣΗ ΚΑΙ ΑΝΑΠΤΥΞΗ ΤΗΣ ΚΙΝΗΜΑΤΟΓΡΑΦΙΚΗΣ ΤΕΧΝΗΣ ΚΑΙ ΑΛΛΕΣ ΔΙΑΤΑΞΕΙΣ 1 ΚΕΦΑΛΑΙΟ ΠΡΩΤΟ Γενικές Αρχές και Ορισμοί Άρθρο 1 Γενικές αρχές 1. Η ανάπτυξη της κινηματογραφικής τέχνης αποτελεί υποχρέωση

Διαβάστε περισσότερα

ΥΠΟΔΕΙΓΜΑ ΣΥΜΠΛΗΡΩΣΗΣ

ΥΠΟΔΕΙΓΜΑ ΣΥΜΠΛΗΡΩΣΗΣ Έντυπο Υπολογισμού Κενών-Πλεονασμάτων Σχολείου στο Σύστημα «Αθηνά» Γενικές Πληροφορίες ΓΥΜΝΑΣΙΩΝ Ωράριο Διευθυντή 5 δηλ. τόσο εμφανίζεται στην οθόνη με τα ωράρια στο Αθηνά Όνομα/τα Υποδιευθυντή/ών 1. Βασιλόπουλος

Διαβάστε περισσότερα

Δράση 1.2. Υλοτομία και προσδιορισμός ποσοτήτων υπολειμμάτων.

Δράση 1.2. Υλοτομία και προσδιορισμός ποσοτήτων υπολειμμάτων. 1 η ΤΕΧΝΙΚΗ ΕΚΘΕΣΗ ΕΡΓΟΥ 1 η φάση έργου (Περίοδος 25 Μαϊου έως 30 Σεπτεμβρίου 2014) Στη πρώτη φάση του έργου υλοποιήθηκαν τα παρακάτω: 1 ο Πακέτο εργασίας (Προσδιορισμός είδους και ποσοτήτων υπολειμμάτων

Διαβάστε περισσότερα

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

ΕΚΘΕΣΗ ΓΙΑ ΤΗΝ ΠΑΡΑΝΟΜΗ ΙΑΚΙΝΗΣΗ ΑΝΘΡΩΠΩΝ ΕΚΘΕΣΗ ΓΙΑ ΤΗΝ ΠΑΡΑΝΟΜΗ ΙΑΚΙΝΗΣΗ ΑΝΘΡΩΠΩΝ ηµοσιοποιείται από το Γραφείο Παρακολούθησης και Καταπολέµησης της Παράνοµης ιακίνησης Ανθρώπων 12 Ιουνίου 2007 ΕΙΣΑΓΩΓΗ Οι καταθέσεις των θυµάτων που περιλαµβάνονται

Διαβάστε περισσότερα

Τ.Ε.Ι. ΛΑΜΙΑΣ ΚΑΝΟΝΙΣΜΟΣ ΠΡΑΚΤΙΚΗΣ ΑΣΚΗΣΗΣ Ο ΗΓΟΣ ΠΡΑΚΤΙΚΗΣ ΑΣΚΗΣΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ

Τ.Ε.Ι. ΛΑΜΙΑΣ ΚΑΝΟΝΙΣΜΟΣ ΠΡΑΚΤΙΚΗΣ ΑΣΚΗΣΗΣ Ο ΗΓΟΣ ΠΡΑΚΤΙΚΗΣ ΑΣΚΗΣΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ Τ.Ε.Ι. ΛΑΜΙΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΝΟΝΙΣΜΟΣ ΠΡΑΚΤΙΚΗΣ ΑΣΚΗΣΗΣ Ο ΗΓΟΣ ΠΡΑΚΤΙΚΗΣ ΑΣΚΗΣΗΣ ΛΑΜΙΑ 2010 ΠΡΟΛΟΓΟΣ Η Πρακτική Άσκηση των φοιτητών του Τµήµατος

Διαβάστε περισσότερα

ΤΑ ΕΠΙΠΕΔΑ ΟΡΓΑΝΩΣΗΣ ΤΩΝ ΠΟΛΥΚΥΤΤΑΡΩΝ ΟΡΓΑΝΣΙΜΩΝ ΟΙ ΖΩΙΚΟΙ ΙΣΤΟΙ 2 ο ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ

ΤΑ ΕΠΙΠΕΔΑ ΟΡΓΑΝΩΣΗΣ ΤΩΝ ΠΟΛΥΚΥΤΤΑΡΩΝ ΟΡΓΑΝΣΙΜΩΝ ΟΙ ΖΩΙΚΟΙ ΙΣΤΟΙ 2 ο ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ ΤΑ ΕΠΙΠΕΔΑ ΟΡΓΑΝΩΣΗΣ ΤΩΝ ΠΟΛΥΚΥΤΤΑΡΩΝ ΟΡΓΑΝΣΙΜΩΝ ΟΙ ΖΩΙΚΟΙ ΙΣΤΟΙ 2 ο ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ ΤΑ ΟΝΟΜΑΤΑ ΤΩΝ ΜΑΘΗΤΩΝ ΤΗΣ ΟΜΑΔΑΣ ΣΑΣ:.. ΔΡΑΣΤΗΡΙΟΤΗΤΑ 1 η Οι ιστοί των οργάνων του πεπτικού συστήματος Α) Ένα σημαντικό

Διαβάστε περισσότερα

ΙΕΘΝΗΣ ΣΥΜΒΑΣΗ ΕΡΓΑΣΙΑΣ 183 «για την αναθεώρηση της (αναθεωρηµένης) σύµβασης για την προστασία της µητρότητας,»

ΙΕΘΝΗΣ ΣΥΜΒΑΣΗ ΕΡΓΑΣΙΑΣ 183 «για την αναθεώρηση της (αναθεωρηµένης) σύµβασης για την προστασία της µητρότητας,» ΙΕΘΝΗΣ ΣΥΜΒΑΣΗ ΕΡΓΑΣΙΑΣ 183 «για την αναθεώρηση της (αναθεωρηµένης) σύµβασης για την προστασία της µητρότητας,» Η γενική Συνδιάσκεψη της ιεθνούς Οργάνωσης Εργασίας, που συγκλήθηκε στη Γενεύη από το ιοικητικό

Διαβάστε περισσότερα

Α Π Ο Σ Π Α Σ Μ Α Από το Πρακτικό της 03ης Τακτικής Συνεδρίασης του ηµοτικού Συµβουλίου Σκοπέλου

Α Π Ο Σ Π Α Σ Μ Α Από το Πρακτικό της 03ης Τακτικής Συνεδρίασης του ηµοτικού Συµβουλίου Σκοπέλου ΕΛΛΗΝΙΚΗ ΗΜΟΚΡΑΤΙΑ ΝΟΜΟΣ ΜΑΓΝΗΣΙΑΣ ΗΜΟΣ ΣΚΟΠΕΛΟΥ Πληροφορίες: Σπυριδούλα Καρβέλη Τηλέφωνο: 2424350103 E-mail: dstech@otenet.gr ΑΝΑΡΤΗΤΕΑ ΣΤΟ ΙΑ ΙΚΤΥΟ ΑΡΙΘΜ. ΑΠΟΦ: 31 /2013 Α.Π. 1181 Α Π Ο Σ Π Α Σ Μ Α Από

Διαβάστε περισσότερα

ΑΡΧΙΤΕΚΤΟΝΙΚΟΥ ΣΧΕΔΙΑΣΜΟΥ & ΚΑΤΑΣΚΕΥΩΝ. ΥΠΟΧΡΕΩΤΙΚΟ ΜΑΘΗΜΑ: Διδακτικές ώρες 8 ΘΕΩΡΙΑΣ - ΘΕΜΑΤΟΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ ΣΥΝΘΕΣΗΣ - ΕΙΔΙΚΗ ΚΤΙΡΙΟΛΟΓΙΑ ΙΙ

ΑΡΧΙΤΕΚΤΟΝΙΚΟΥ ΣΧΕΔΙΑΣΜΟΥ & ΚΑΤΑΣΚΕΥΩΝ. ΥΠΟΧΡΕΩΤΙΚΟ ΜΑΘΗΜΑ: Διδακτικές ώρες 8 ΘΕΩΡΙΑΣ - ΘΕΜΑΤΟΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ ΣΥΝΘΕΣΗΣ - ΕΙΔΙΚΗ ΚΤΙΡΙΟΛΟΓΙΑ ΙΙ ΔΗΜΟΚΡΙΤΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΡΑΚΗΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΑΡΧΙΤΕΚΤΟΝΩΝ ΜΗΧΑΝΙΚΩΝ Δ.Π.Θ. - ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΟΜΕΑΣ ΙΙΙ: ΤΜΗΜΑ ΑΡΧΙΤΕΚΤΟΝΩΝ ΜΗΧΑΝΙΚΩΝ ΑΡΧΙΤΕΚΤΟΝΙΚΟΥ ΣΧΕΔΙΑΣΜΟΥ & ΚΑΤΑΣΚΕΥΩΝ 3 Ο ΕΤΟΣ 2013-2014.

Διαβάστε περισσότερα

«Πολιτιστικές διαδροµές στα µεταλλευτικά τοπία της Kύθνου»

«Πολιτιστικές διαδροµές στα µεταλλευτικά τοπία της Kύθνου» ΔΙΠΛΩΜΑΤΙΚΕΣ 2009-10 (15/2/2011 - πηγή www.greekarchitects.gr) «Πολιτιστικές διαδροµές στα µεταλλευτικά τοπία της Kύθνου» Φυσικό τοπίο - βιοµηχανική κληρονοµιά - ιστορική µνήµη. Φοιτητές: Βελουδάκη Χριστιάννα,

Διαβάστε περισσότερα

Άνθρωπος και οικοσυστήµατα

Άνθρωπος και οικοσυστήµατα ΤΡΙΤΟ ΚΕΦΛΙΟ Άνθρωπος και οικοσυστήµατα. Ερωτήσεις πολλαπλής επιλογής Επιλέξετε τη σωστή από τις παρακάτω προτάσεις, θέτοντάς την σε κύκλο. 1. Η ΜΕΘΟ ΟΛΟΓΙ ΠΡΟΣΤΣΙΣ ΤΟΥ ΠΕΡΙΛΛΟΝΤΟΣ καθορίζεται α) από τη

Διαβάστε περισσότερα

(05.02.2010) Τοµέας Εϖιµόρφωσης & Κατάρτισης

(05.02.2010) Τοµέας Εϖιµόρφωσης & Κατάρτισης Ε.Π. Εκπαίδευση και ια Βίου Μάθηση, ΕΣΠΑ (2007 2013) ΕΠΙΜΟΡΦΩΣΗ ΕΚΠΑΙ ΕΥΤΙΚΩΝ ΓΙΑ ΤΗΝ ΑΞΙΟΠΟΙΗΣΗ ΚΑΙ ΕΦΑΡΜΟΓΗ ΤΩΝ ΤΠΕ ΣΤΗ Ι ΑΚΤΙΚΗ ΠΡΑΞΗ Επιµορφωτικό υλικό για την επιµόρφωση των εκπαιδευτικών στα Κέντρα

Διαβάστε περισσότερα

ΥΠ.Ε.Π.Θ. / ΠΑΙ ΑΓΩΓΙΚΟ ΙΝΣΤΙΤΟΥΤΟ ΕΠΙΧΕΙΡΗΣΙΑΚΟ ΠΡΟΓΡΑΜΜΑ «ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ»

ΥΠ.Ε.Π.Θ. / ΠΑΙ ΑΓΩΓΙΚΟ ΙΝΣΤΙΤΟΥΤΟ ΕΠΙΧΕΙΡΗΣΙΑΚΟ ΠΡΟΓΡΑΜΜΑ «ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ» ΥΠ.Ε.Π.Θ. / ΠΑΙ ΑΓΩΓΙΚΟ ΙΝΣΤΙΤΟΥΤΟ ΕΠΙΧΕΙΡΗΣΙΑΚΟ ΠΡΟΓΡΑΜΜΑ «ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ» Γ ΚΟΙΝΟΤΙΚΟ ΠΛΑΙΣΙΟ ΣΤΗΡΙΞΗΣ ΕΡΓO ΣΥΓΧΡΗΜΑΤΟ ΟΤΟΥΜΕΝO ΚΑΤΑ 80% ΑΠΟ ΤΟ ΕΚΤ ΚΑΙ ΚΑΤΑ 20% ΑΠΟ ΕΘΝΙΚΟΥΣ ΠΟΡΟΥΣ «Ολοκληρωµένη

Διαβάστε περισσότερα

Π Ρ Ο Κ Η Ρ Υ Ξ Η ΓΙΑ ΤΗΝ ΠΡΟΣΛΗΨΗ ΔΙΔΑΚΤΙΚΟΥ ΠΡΟΣΩΠΙΚΟΥ ΜΕ ΩΡΙΑΙΑ ΑΠΟΖΗΜΙΩΣΗ. 2. Προσόντα Υποψηφίων - Θέσεις προς Κάλυψη

Π Ρ Ο Κ Η Ρ Υ Ξ Η ΓΙΑ ΤΗΝ ΠΡΟΣΛΗΨΗ ΔΙΔΑΚΤΙΚΟΥ ΠΡΟΣΩΠΙΚΟΥ ΜΕ ΩΡΙΑΙΑ ΑΠΟΖΗΜΙΩΣΗ. 2. Προσόντα Υποψηφίων - Θέσεις προς Κάλυψη ΓΕΩΓΡΑΦΙΚΗ ΥΠΗΡΕΣΙΑ ΣΤΡΑΤΟΥ ΔΝΣΗ ΓΕΩΓΡ. ΠΟΛ. & ΕΚΠΣΗΣ ΥΔΝΣΗ ΕΚΠΑΙΔΕΥΣΗΣ ΣΧΟΛΗ ΤΟΠΟΓΡΑΦΙΑΣ 16 Ιουλίου 2014 Π Ρ Ο Κ Η Ρ Υ Ξ Η ΓΙΑ ΤΗΝ ΠΡΟΣΛΗΨΗ ΔΙΔΑΚΤΙΚΟΥ ΠΡΟΣΩΠΙΚΟΥ ΜΕ ΩΡΙΑΙΑ ΑΠΟΖΗΜΙΩΣΗ 1. Γενικά Η Σχολή

Διαβάστε περισσότερα

Ο ΗΓΟΣ ΜΑΘΗΜΑΤΩΝ ΑΚΑ ΗΜΑΪΚΟΥ ΕΤΟΥΣ 2013-2014

Ο ΗΓΟΣ ΜΑΘΗΜΑΤΩΝ ΑΚΑ ΗΜΑΪΚΟΥ ΕΤΟΥΣ 2013-2014 Ο ΗΓΟΣ ΜΑΘΗΜΑΤΩΝ ΑΚΑ ΗΜΑΪΚΟΥ ΕΤΟΥΣ 201-201 1 ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ Φ.Π.Ψ. A. ιάρθρωση Προγράµµατος Μαθµατα Φιλοσοφίας: 7 ( υποχρεωτικά + 2 επιλεγόµενα) Μαθµατα Παιδαγωγικς: 8 ( υποχρεωτικά + επιλεγόµενα) Μαθµατα

Διαβάστε περισσότερα

Οι Αγώνες θα διεξαχθούν τόσο στο Σύγχρονο Θέατρο όσο και στο Αρχαίο

Οι Αγώνες θα διεξαχθούν τόσο στο Σύγχρονο Θέατρο όσο και στο Αρχαίο ΚΥΠΡΙΑΚΗ ΗΜΟΚΡΑΤΙΑ Υ.Π.Π 24.09.1.8 ΥΠΟΥΡΓΕΙΟ ΠΑΙ ΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΙΕΥΘΥΝΣΗ ΜΕΣΗΣ ΕΚΠΑΙ ΕΥΣΗΣ ιευθυντές/τριες Σχολείων Μέσης, Τεχνικής ηµόσιας και Ιδιωτικής Εκπαίδευσης 23 Σεπτεµβρίου 2013 Θέµα: Προκήρυξη

Διαβάστε περισσότερα

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

ΠΕΡΙΕΧΟΜΕΝΑ 1. ΤΟ ΔΙΑΘΕΜΑΤΙΚΟ ΕΝΙΑΙΟ ΠΛΑΙΣΙΟ ΠΡΟΓΡΑΜΜΑΤΩΝ ΣΠΟΥΔΩΝ ΓΙΑ ΜΑΘΗΤΕΣ ΜΕ ΕΙΔΙΚΕΣ ΕΚΠΑΙΔΕΥΤΙΚΕΣ ΑΝΑΓΚΕΣ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΕΛΛΗΝΙΚΗΣ ΝΟΗΜΑΤΙΚΗΣ ΓΛΩΣΣΑΣ ΓΙΑ ΤΗΝ ΥΠΟΧΡΕΩΤΙΚΗ ΕΚΠΑΙΔΕΥΣΗ ΠΕΡΙΕΧΟΜΕΝΑ ΕΙΣΑΓΩΓΙΚΟ ΣΗΜΕΙΩΜΑ ΠΕΡΙΛΗΨΗ ΕΙΣΑΓΩΓΗ 1. ΤΟ ΔΙΑΘΕΜΑΤΙΚΟ ΕΝΙΑΙΟ ΠΛΑΙΣΙΟ ΠΡΟΓΡΑΜΜΑΤΩΝ ΣΠΟΥΔΩΝ ΓΙΑ ΜΑΘΗΤΕΣ ΜΕ ΕΙΔΙΚΕΣ

Διαβάστε περισσότερα

Ο ΠΡΟΕ ΡΟΣ ΤΗΣ ΕΛΛΗΝΙΚΗΣ ΗΜΟΚΡΑΤΙΑΣ Εκδίδοµε τον ακόλουθο νόµο που ψήφισε η Βουλή:

Ο ΠΡΟΕ ΡΟΣ ΤΗΣ ΕΛΛΗΝΙΚΗΣ ΗΜΟΚΡΑΤΙΑΣ Εκδίδοµε τον ακόλουθο νόµο που ψήφισε η Βουλή: ΝΟΜΟΣ ΥΠ' ΑΡΙΘ.3084 (ΦΕΚ.318/Α /16-12-2002) Κύρωση της Σύµβασης µεταξύ της Ελληνικής ηµοκρατίας και της ηµοκρατίας της Σλοβενίας για την αποφυγή της διπλής φορολογίας αναφορικά µε τους φόρους εισοδήµατος

Διαβάστε περισσότερα

ΤΙΜΟΛΟΓΙΟ ΜΕΛΕΤΗΣ Τιµαριθµική 2012Γ

ΤΙΜΟΛΟΓΙΟ ΜΕΛΕΤΗΣ Τιµαριθµική 2012Γ ΕΛΛΗΝΙΚΗ ΗΜΟΚΡΑΤΙΑ ΠΕΡΙΦΕΡΕΙΑ ΠΕΛΟΠΟΝΝΗΣΟΥ ΕΡΓΟ : "ΑΝΑΠΛΑΣΗ ΠΗΓΩΝ ΠΕΡΙΟΧΗΣ ΜΑΝΝΑΣ ΓΕΝΙΚΗ ΙΕΥΘΥΝΣΗ ΑΝΑΠΤΥΞΙΑΚΟΥ ΠΡΟΓΡ/ΜΟΥ ΞΥΛΟΚΑΣΤΡΟΥ' ΥΠΟ ΟΜΩΝ & ΠΕΡΙΒΑΛΛΟΝΤΟΣ ΠΡΟΥΠΟΛΟΓΙΣΜΟΣ: 50.000,00 ΠΕΡΙΦΕΡΕΙΑΚΗ ΕΝΟΤΗΤΑ

Διαβάστε περισσότερα

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

ΑΝΩΝΥΜΗ ΤΕΧΝΙΚΗ ΕΤΑΙΡΕΙΑ ΕΤΗΣΙΟ ΕΛΤΙΟ ΑΝΩΝΥΜΗ ΤΕΧΝΙΚΗ ΕΤΑΙΡΕΙΑ ΕΤΗΣΙΟ ΕΛΤΙΟ ΣΥΜΦΩΝΑ ΜΕ ΤΙΣ ΙΑΤΑΞΕΙΣ ΤΗΣ ΑΠΟΦΑΣΗΣ 5/204/14.11.2000 του.σ. της ΕΠΙΤΡΟΠΗΣ ΚΕΦΑΛΑΙΑΓΟΡΑΣ ΟΠΩΣ ΙΣΧΥΕΙ ΓΙΑ ΤΗ ΧΡΗΣΗ 01.01.2004-31.12.2004 AΘΗΝΑ, ΙΟΥΝΙΟΣ 2005 1 ΠΕΡΙΕΧΟΜΕΝΑ

Διαβάστε περισσότερα

Έργο «Προµήθεια οργάνων. παιδικών χαρών».

Έργο «Προµήθεια οργάνων. παιδικών χαρών». ΕΛΛΗΝΙΚΗ ΗΜΟΚΡΑΤΙΑ ΑΠΟΚΕΝΤΡΩΜΕΝΗ ΙΟΙΚΗΣΗ ΜΑΚ.- ΘΡΑΚΗΣ ΝΟΜΟΣ ΕΒΡΟΥ ΗΜΟΣ ΑΛΕΞΑΝ ΡΟΥΠΟΛΗΣ ΙΕΥΘΥΝΣΗ ΠΕΡΙΒΑΛΛΟΝΤΟΣ & ΠΡΑΣΙΝΟΥ Αρ. Μελ. : 77 / 2013 ΑΠ84485 Έργο «Προµήθεια οργάνων παιδικών χαρών» Ι Α Κ Η Ρ Υ

Διαβάστε περισσότερα

ΟΡΓΑΝΙΣΜΟΣ ΕΛΛΗΝΙΚΩΝ. Αθήνα, 28/11/01 Αριθ. Πρωτ. : 16021 ΑΣΦΑΛΙΣΕΩΝ

ΟΡΓΑΝΙΣΜΟΣ ΕΛΛΗΝΙΚΩΝ. Αθήνα, 28/11/01 Αριθ. Πρωτ. : 16021 ΑΣΦΑΛΙΣΕΩΝ ΟΡΓΑΝΙΣΜΟΣ ΕΛΛΗΝΙΚΩΝ ΓΕΩΡΓΙΚΩΝ ΑΣΦΑΛΙΣΕΩΝ Αθήνα, 28/11/01 Αριθ. Πρωτ. : 16021 ιεύθυνση Εκτιµήσεων & Αποζηµιώσεων Πληροφορίες : Χ. Γάσπαρη Α. Συγγούνας Μεσογείων 45 11510 ΑΘΗΝΑ Τηλ : 010-7490449-441, fax

Διαβάστε περισσότερα

ΣΥΜΒΑΣΗ ΑΝΑΡΤΗΤΕΑ ΣΤΟ ΙΑ ΙΚΤΥΟ. Βαθµός Προτεραιότητας: «Κοινός» Χρόνος διατήρησης του εγγράφου: «ιηνεκές» Αχαρνές, 10/07

ΣΥΜΒΑΣΗ ΑΝΑΡΤΗΤΕΑ ΣΤΟ ΙΑ ΙΚΤΥΟ. Βαθµός Προτεραιότητας: «Κοινός» Χρόνος διατήρησης του εγγράφου: «ιηνεκές» Αχαρνές, 10/07 ΕΛΛΗΝΙΚΗ ΗΜΟΚΡΑΤΙΑ ΝΟΜΟΣ ΑΤΤΙΚΗΣ ΗΜΟΣ ΑΧΑΡΝΩΝ ΑΝΑΡΤΗΤΕΑ ΣΤΟ ΙΑ ΙΚΤΥΟ Βαθµός Προτεραιότητας: «Κοινός» Χρόνος διατήρησης του εγγράφου: «ιηνεκές» Αχαρνές, 10/07 07/20 /2014 Αριθ. πρωτ ρωτ.: 58326 ΣΥΜΒΑΣΗ

Διαβάστε περισσότερα

ΗΜΟΤΙΚΟΣ ΟΡΓΑΝΙΣΜΟΣ ΚΟΙΝΩΝΙΚΗΣ ΑΛΛΗΛΕΓΓΥΗΣ Γάζι 8.04.2014 ΠΡΟΣΤΑΣΙΑΣ ΚΑΙ ΠΑΙ ΕΙΑΣ Αρ.πρωτ. 541 ΜΑΛΕΒΙΖΙΟΥ.Ο.Κ.Α.Π.ΠΑ.Μ. νση: Ν.Καζαντζάκη 11, Τ.Κ. 71414 Ηράκλειο Πληροφορίες : Σµαργιανάκη Γεωργία Τηλέφωνο

Διαβάστε περισσότερα

Α Π Ο Σ Π Α Σ Μ Α από το πρακτικό της υπ αριθ. 22ης/2015 Συνεδρίασης της Επιτροπής Ποιότητας Ζωής

Α Π Ο Σ Π Α Σ Μ Α από το πρακτικό της υπ αριθ. 22ης/2015 Συνεδρίασης της Επιτροπής Ποιότητας Ζωής ΕΛΛΗΝΙΚΗ ΗΜΟΚΡΑΤΙΑ ΝΟΜΟΣ ΑΤΤΙΚΗΣ ΗΜΟΣ ΧΑΛΑΝ ΡΙΟΥ /ΝΣΗ ΙΟΙΚΗΤΙΚΩΝ ΥΠΗΡΕΣΙΩΝ ΚΑΙ ΑΝΑΠΤΥΞΗΣ ΑΝΘΡΩΠΙΝΟΥ ΥΝΑΜΙΚΟΥ ΤΜΗΜΑ ΥΠΟΣΤΗΡΙΞΗΣ ΗΜΟΤΙΚΩΝ ΟΡΓΑΝΩΝ ΑΡΜΟ ΙΑ: Κα ΣΟΦΙΑ ΗΛΙΑΚΟΠΟΥΛΟΥ ΤΗΛ.: 2132023905-908 Α Π Ο

Διαβάστε περισσότερα

ΠΡΑΚΤΙΚΑ ΣΥΝΕΔΡΙΑΣΗΣ ΔΙΟΙΚΗΤΙΚΟΥ ΣΥΜΒΟΥΛΙΟΥ. υπ αριθμόν 2

ΠΡΑΚΤΙΚΑ ΣΥΝΕΔΡΙΑΣΗΣ ΔΙΟΙΚΗΤΙΚΟΥ ΣΥΜΒΟΥΛΙΟΥ. υπ αριθμόν 2 ΠΡΑΚΤΙΚΑ ΣΥΝΕΔΡΙΑΣΗΣ ΔΙΟΙΚΗΤΙΚΟΥ ΣΥΜΒΟΥΛΙΟΥ υπ αριθμόν 2 Πρακτικά συνεδρίασης Διοικητικού Συμβουλίου του σωματείου, που εδρεύει στην Κόρινθο, με την επωνυμία «Σύλλογος Επιστημόνων Κοινωνικής Πολιτικής»

Διαβάστε περισσότερα

ΑΣΦΑΛΙΣΗ ΣΚΑΦΩΝ ΑΝΑΨΥΧΗΣ ΣΤΑΤΙΣΤΙΚΑ ΣΤΟΙΧΕΙΑ ΕΤΟΥΣ 2 0 0 7

ΑΣΦΑΛΙΣΗ ΣΚΑΦΩΝ ΑΝΑΨΥΧΗΣ ΣΤΑΤΙΣΤΙΚΑ ΣΤΟΙΧΕΙΑ ΕΤΟΥΣ 2 0 0 7 ΑΣΦΑΛΙΣΗ ΣΚΑΦΩΝ ΑΝΑΨΥΧΗΣ ΣΤΑΤΙΣΤΙΚΑ ΣΤΟΙΧΕΙΑ ΕΤΟΥΣ 2 0 0 7 1. Γ Ε Ν Ι Κ Α Η Επιτροπή Μεταφορών & Σκαφών της Ένωσης Ασφαλιστικών Εταιριών Ελλάδος στα πλαίσια της διαρκούς προσπάθειάς της για συνεχή παροχή

Διαβάστε περισσότερα

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

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΚΡΗΤΗΣ ΣΧΟΛΗ ΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΛΟΓΙΣΤΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΑΝΑΛΥΣΗ ΧΡΗΜΑΤΟΟΙΚΟΝΟΜΙΚΩΝ ΚΑΤΑΣΤΑΣΕΩΝ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΚΡΗΤΗΣ ΣΧΟΛΗ ΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΛΟΓΙΣΤΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΑΝΑΛΥΣΗ ΧΡΗΜΑΤΟΟΙΚΟΝΟΜΙΚΩΝ ΚΑΤΑΣΤΑΣΕΩΝ ΚΟΤΣΙΦΑΚΗΣ ΑΛΕΞΑΝ ΡΟΣ ΤΟΥΠΑΚΗ ΑΙΚΑΤΕΡΙΝΗ Εισηγητής: Μπαστάκης

Διαβάστε περισσότερα

ΠΡΟΪΟΝΤΩΝ» Ποσοστό στη.. του Μέτρου. Ποσό (σε ΕΥΡΩ)

ΠΡΟΪΟΝΤΩΝ» Ποσοστό στη.. του Μέτρου. Ποσό (σε ΕΥΡΩ) ΤΕΧΝΙΚΟ ΕΛΤΙΟ ΜΕΤΡΟΥ 7.12 : «EΠΕΝ ΥΣΕΙΣ ΓΙΑ ΤΗ ΒΕΛΤΙΩΣΗ ΤΗΣ ΑΝΤΑΓΩΝΙΣΤΙΚΟΤΗΤΑΣ ΤΩΝ ΕΠΙΧΕΙΡΗΣΕΩΝ ΠΡΩΤΗΣ ΜΕΤΑΠΟΙΗΣΗΣ ΚΑΙ ΕΜΠΟΡΙΑΣ ΓΕΩΡΓΙΚΩΝ ΠΡΟΪΟΝΤΩΝ» Α. ΤΑΥΤΟΤΗΤΑ ΜΕΤΡΟΥ Κ.Π.Σ. 2000-2006 ΕΠΙΧΕΙΡΗΣΙΑΚΟ ΠΡΟΓΡΑΜΜΑ

Διαβάστε περισσότερα

Δ Ι Α Κ Η Ρ Υ Ξ Η ΑΡΙΘΜ. 10/2015 ΠΡΟΧΕΙΡΟΥ ΜΕΙΟΔΟΤΙΚΟΥ ΔΙΑΓΩΝΙΣΜΟΥ

Δ Ι Α Κ Η Ρ Υ Ξ Η ΑΡΙΘΜ. 10/2015 ΠΡΟΧΕΙΡΟΥ ΜΕΙΟΔΟΤΙΚΟΥ ΔΙΑΓΩΝΙΣΜΟΥ Σέρρες, 05-11-2015 Αριθμ. Πρωτ.: 3397 Διεύθυνση Διοικητικού Οικονομικού Τμήμα Μισθοδοσίας, Αποζημιώσεων, Προμηθειών & Περιουσίας Δ/νση: Τέρμα Μαγνησίας, Τ.Κ. 621 24, Σέρρες Πληροφορίες: Μ. Μπάκα Τηλ.:

Διαβάστε περισσότερα

ΣΥΝΕΝΤΕΥΞΗ ΤΥΠΟΥ. Η ολοκληρωμένη προσέγγιση θα εφαρμοστεί με τα παρακάτω Εργαλεία

ΣΥΝΕΝΤΕΥΞΗ ΤΥΠΟΥ. Η ολοκληρωμένη προσέγγιση θα εφαρμοστεί με τα παρακάτω Εργαλεία ΣΥΝΕΝΤΕΥΞΗ ΤΥΠΟΥ ΕΙΣΑΓΩΓΗ Η κρίση υπερχρέωσης και οι πολιτικές δημοσιονομικής προσαρμογής ανέδειξαν τις διαρθρωτικές αδυναμίες της περιφερειακής οικονομίας και προκάλεσαν επιπτώσεις σε σχέση με την οικονομική

Διαβάστε περισσότερα

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

ΙΣΟΚΡΑΤΗΣ ΤΡΑΠΕΖΑ ΝΟΜΙΚΩΝ ΠΛΗΡΟΦΟΡΙΩΝ ΣΑ ΙΣΟΚΡΑΤΗΣ ΤΡΑΠΕΖΑ ΝΟΜΙΚΩΝ ΠΛΗΡΟΦΟΡΙΩΝ ΣΑ ΣΤΟΙΧΕΙΑ ΝΟΜΟΘΕΤΗΜΑΤΟΣ Είδος: ΝΟΜΟΣ Αριθµός: 1569 Έτος: 1985 ΦΕΚ: Α 183 19851025 Τέθηκε σε ισχύ: 25.10.1985 Ηµ.Υπογραφής: 21.10.1985 Τίτλος ιαµεσολάβηση στις συµβάσεις

Διαβάστε περισσότερα

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

ΙΝΣΤΙΤΟΥΤΟ ΠΑΙΔΑΓΩΓΙΚΩΝ ΕΡΕΥΝΩΝ ΜΕΛΕΤΩΝ ΔΙΔΑΣΚΑΛΙΚΗΣ ΟΜΟΣΠΟΝΔΙΑΣ ΕΛΛΑΔΑΣ 2/10 ΙΝΣΤΙΤΟΥΤΟ ΠΑΙΔΑΓΩΓΙΚΩΝ ΕΡΕΥΝΩΝ ΜΕΛΕΤΩΝ ΔΙΔΑΣΚΑΛΙΚΗΣ ΟΜΟΣΠΟΝΔΙΑΣ ΕΛΛΑΔΑΣ ΚEΝΤΡΟ ΜΕΛΕΤΩΝ & ΤΕΚΜΗΡΙΩΣΗΣ ΟΛΜΕ Αγαπητή/αγαπητέ Συνάδελφε, Το ΚΟΙΝΩΝΙΚΟ ΠΟΛΥΚΕΝΤΡΟ, Ινστιτούτο της ΑΔΕΔΥ, με τη συνεργασία

Διαβάστε περισσότερα

ΤΟ ΣΥΝΤΑΓΜΑ ΤΟΥ 1844. Εξώφυλλο του Συντάγµατος του 1844 (Βιβλιοθήκη Βουλής των

ΤΟ ΣΥΝΤΑΓΜΑ ΤΟΥ 1844. Εξώφυλλο του Συντάγµατος του 1844 (Βιβλιοθήκη Βουλής των ΤΟ ΣΥΝΤΑΓΜΑ ΤΟΥ 1844 Το Σύνταγµα του 1844 αποτελείται από 107 άρθρα, κατανεµηµένα στα εξής δώδεκα µέρη: Περί Θρησκείας, Περί του δηµοσίου δικαίου των Ελλήνων, Περί συντάξεως της πολιτείας, Περί του Βασιλέως,

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ FREDERICK

ΠΑΝΕΠΙΣΤΗΜΙΟ FREDERICK ΠΑΝΕΠΙΣΤΗΜΙΟ FREDERICK ΟΙ ΠΕΡΙ ΦΟΙΤΗΤΩΝ ΤΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟΥ FREDERICK ΕΣΩΤΕΡΙΚΟΙ ΚΑΝΟΝΙΣΜΟΙ του 2006 ΚΑΤΑΤΑΞΗ ΚΑΝΟΝΙΣΜΩΝ (Άρθρα 43-61 του Καταστατικού Χάρτη) ΚΑΤΑΤΑΞΗ ΚΑΝΟΝΙΣΜΩΝ Κανονισµός ΓΕΝΙΚΑ 1. Συνοπτικός

Διαβάστε περισσότερα

ΕΞ.ΕΠΕΙΓΟΝ -FAX. Αθήνα, 15 Οκτωβρίου 2014

ΕΞ.ΕΠΕΙΓΟΝ -FAX. Αθήνα, 15 Οκτωβρίου 2014 ΕΞ.ΕΠΕΙΓΟΝ -FAX ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΥΠΟΥΡΓΕΙΟ ΟΙΚΟΝΟΜΙΚΩΝ ΓΕΝΙΚΗ ΓΡΑΜΜΑΤΕΙΑ ΔΗΜΟΣΙΩΝ ΕΣΟΔΩΝ ΓΕΝΙΚΗ Δ/ΝΣΗ ΦΟΡΟΛΟΓΙΚΗΣ ΔΙΟΙΚΗΣΗΣ ΔΙΕΥΘΥΝΣΗ ΕΛΕΓΧΩΝ ΤMHMA Α Αθήνα, 15 Οκτωβρίου 2014 ΠΟΛ.:1228 ΠΡΟΣ: Ως Π.Δ.

Διαβάστε περισσότερα

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

ΕΞΑΙΡΕΤΙΚΑ ΕΠΕΙΓΟΝ ΑΝΑΡΤΗΤΕΑ ΣΤΟ ΔΙΑΔΙΚΤΥΟ Ε Λ Λ Η Ν Ι Κ Η Δ Η Μ Ο Κ Ρ Α Τ Ι Α ΥΠΟΥΡΓΕΙΟ ΕΣΩΤΕΡΙΚΩΝ Ελληνική ΑΔΑ: Β44ΡΝ-ΗΤΟ ΕΞΑΙΡΕΤΙΚΑ ΕΠΕΙΓΟΝ ΑΝΑΡΤΗΤΕΑ ΣΤΟ ΔΙΑΔΙΚΤΥΟ Ε Λ Λ Η Ν Ι Κ Η Δ Η Μ Ο Κ Ρ Α Τ Ι Α ΥΠΟΥΡΓΕΙΟ ΕΣΩΤΕΡΙΚΩΝ ΓΕΝΙΚΗ ΓΡΑΜΜΑΤΕΙΑ ΠΛΗΘΥΣΜΟΥ & ΚΟΙΝΩΝΙΚΗΣ ΣΥΝΟΧΗΣ ΓΕΝ. Δ/ΝΣΗ ΜΕΤΑΝΑΣΤΕΥΤΙΚΗΣ ΠΟΛΙΤΙΚΗΣ

Διαβάστε περισσότερα

ΠΡΟΣ: ΚΟΙΝ: ΘΕΜΑ: Ενηµερωτικό σηµείωµα για το πρόβληµα της παράνοµης υλοτοµίας και ειδικά αυτό της καυσοξύλευσης

ΠΡΟΣ: ΚΟΙΝ: ΘΕΜΑ: Ενηµερωτικό σηµείωµα για το πρόβληµα της παράνοµης υλοτοµίας και ειδικά αυτό της καυσοξύλευσης 1 Ιωάννης Κέκερης ασοπόνος Επίτιµος Πρόεδρος Ένωσης ασοπόνων Μακεδονίας Θράκης Μέλος.Σ. Πανελλήνιας Ένωσης ασοπόνων και ιαχειριστών Φυσικού Περιβάλλοντος ΠΡΟΣ: ΚΟΙΝ: Αρναία 16/12/2012 Κα Πρόεδρο Ειδικής

Διαβάστε περισσότερα

Κωδ. 001-002: Οι κωδικοί αυτοί συμπληρώνονται από την φορολογική διοίκηση. Κωδ. 003: Γράψτε τη Δ.Ο.Υ. της έδρας ή του κεντρικού της επιχείρησής σας.

Κωδ. 001-002: Οι κωδικοί αυτοί συμπληρώνονται από την φορολογική διοίκηση. Κωδ. 003: Γράψτε τη Δ.Ο.Υ. της έδρας ή του κεντρικού της επιχείρησής σας. Ι. Γενικά Με την ΑΓΓΔΕ ΠΟΛ 1198/2014 όπως τροποποιήθηκε με την ΑΓΓΔΕ ΠΟΛ 1049/2015 ορίστηκε ο τύπος και το περιεχόμενο της δήλωσης Φ.Π.Α. Με την παρούσα παρέχονται διευκρινίσεις για την ορθή συμπλήρωση

Διαβάστε περισσότερα

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

ΕΝΩΠΙΟΝ ΠΑΝΤΟΣ ΑΡΜΟΔΙΟΥ ΔΙΚΑΣΤΗΡΙΟΥ Η ΑΡΧΗΣ ΕΞΩΔΙΚΗ ΔΙΑΜΑΡΤΥΡΙΑ - ΠΡΟΣΚΛΗΣΗ ΕΝΩΠΙΟΝ ΠΑΝΤΟΣ ΑΡΜΟΔΙΟΥ ΔΙΚΑΣΤΗΡΙΟΥ Η ΑΡΧΗΣ ΕΞΩΔΙΚΗ ΔΙΑΜΑΡΤΥΡΙΑ - ΠΡΟΣΚΛΗΣΗ ΦΑΡΜΑΣΩΝΗ Κωνσταντίνου του Νικολάου, Σκηνoθέτη, νoμίμου εκπροσώπου της Θεατρικής Εταιρείας «ΣΚΑΡΑΒΑΙΟΙ» με έδρα την οδό Φρύνης,

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΣΧΟΛΗ ΕΠΙΣΤΗΜΩΝ ΔΙΟΙΚΗΣΗΣ ΤΜΗΜΑ ΝΑΥΤΙΛΙΑΣ ΚΑΙ ΕΠΙΧΕΙΡΗΜΑΤΙΚΩΝ ΥΠΗΡΕΣΙΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΣΧΟΛΗ ΕΠΙΣΤΗΜΩΝ ΔΙΟΙΚΗΣΗΣ ΤΜΗΜΑ ΝΑΥΤΙΛΙΑΣ ΚΑΙ ΕΠΙΧΕΙΡΗΜΑΤΙΚΩΝ ΥΠΗΡΕΣΙΩΝ Η ΙΣΤΟΡΙΑ ΤΗΣ ΕΛΛΗΝΙΚΗΣ ΑΛΙΕΙΑΣ ΚΑΤΑ ΤΗΝ ΤΕΛΕΥΤΑΙΑ ΔΕΚΑΕΤΙΑ ΤΟΥ 20ουΑΙΩΝΑ Διπλωματική Εργασία για το Προπτυχιακό

Διαβάστε περισσότερα

ΔΙΑΚΗΡΥΞΗ ΥΠ' ΑΡΙΘ. 49/2012

ΔΙΑΚΗΡΥΞΗ ΥΠ' ΑΡΙΘ. 49/2012 ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΥΠΟΥΡΓΕΙΟ ΥΓΕΙΑΣ ΚΑΙ ΚΟΙΝΩΝΙΚΗΣ ΑΛΛΗΛΕΓΓΥΗΣ ΔΙΑΣΥΝΔΕΟΜΕΝΑ ΝΟΣΟΚΟΜΕΙΑ ΠΑΝΕΠΙΣΤΗΜΙΑΚΟ ΓΕΝΙΚΟ ΝΟΣΟΚΟΜΕΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΧΕΠΑ ΝΟΣΟΚΟΜΕΙΟ ΕΙΔΙΚΩΝ ΠΑΘΗΣΕΩΝ ΘΕΣΣΑΛΟΝΙΚΗΣ ΔΙΑΚΗΡΥΞΗ ΥΠ' ΑΡΙΘ.

Διαβάστε περισσότερα

ΤΕΥΧΟΣ ΠΡΟΚΗΡΥΞΗΣ αριθμ. 15912/605/16-07-2009 ΔΗΜΟΣΙΟΥ ΑΝΟΙΚΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΓΙΑ ΤΗΝ ΑΝΑΚΗΡΥΞΗ ΑΝΑΔΟΧΟΥ ΓΙΑ ΤΗΝ ΥΛΟΠΟΙΗΣΗ ΤΟΥ ΕΡΓΟΥ

ΤΕΥΧΟΣ ΠΡΟΚΗΡΥΞΗΣ αριθμ. 15912/605/16-07-2009 ΔΗΜΟΣΙΟΥ ΑΝΟΙΚΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΓΙΑ ΤΗΝ ΑΝΑΚΗΡΥΞΗ ΑΝΑΔΟΧΟΥ ΓΙΑ ΤΗΝ ΥΛΟΠΟΙΗΣΗ ΤΟΥ ΕΡΓΟΥ ΕΘΝΙΚΟ ΣΤΡΑΤΗΓΙΚΟ ΠΛΑΙΣΙΟ ΑΝΑΦΟΡΑΣ (2007-2013) ΕΠΙΧΕΙΡΗΣΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΑΝΤΑΓΩΝΙΣΤΙΚΟΤΗΤΑ-ΕΠΙΧΕΙΡΗΜΑΤΙΚΟΤΗΤΑ αριθμ. 15912/605/16-07-2009 ΔΗΜΟΣΙΟΥ ΑΝΟΙΚΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΓΙΑ ΤΗΝ ΑΝΑΚΗΡΥΞΗ ΑΝΑΔΟΧΟΥ ΓΙΑ ΤΗΝ

Διαβάστε περισσότερα

Ο Δ Η Γ Ο Σ Π Ρ Α Κ Τ Ι Κ Η Σ Α Σ Κ Η Σ Η Σ

Ο Δ Η Γ Ο Σ Π Ρ Α Κ Τ Ι Κ Η Σ Α Σ Κ Η Σ Η Σ Τ.Ε.Ι. ΗΠΕΙΡΟΥ ΤΜΗΜΑ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ Ο Δ Η Γ Ο Σ Π Ρ Α Κ Τ Ι Κ Η Σ Α Σ Κ Η Σ Η Σ ΠΕΡΙΕΧΟΜΕΝΑ 1. ΕΙΣΑΓΩΓΗ... 3 2. ΣΚΟΠΟΣ ΤΗΣ ΠΡΑΚΤΙΚΗΣ ΑΣΚΗΣΗΣ..3 3. ΧΡΟΝΙΚΕΣ ΠΕΡΙΟΔΟΙ ΚΑΙ ΚΑΝΟΝΕΣ

Διαβάστε περισσότερα

ΜΑΘΗΜΑΤΙΚΑ ΣΤ ΔΗΜΟΤΙΚΟΥ ΑΣΚΗΣΕΙΣ ΓΝΩΣΕΩΝ ΔΕΞΙΟΤΗΤΩΝ. λίτρα νερό. Πόσο νερό χρειάζεται ακόμα για να γεμίσει το δοχείο;

ΜΑΘΗΜΑΤΙΚΑ ΣΤ ΔΗΜΟΤΙΚΟΥ ΑΣΚΗΣΕΙΣ ΓΝΩΣΕΩΝ ΔΕΞΙΟΤΗΤΩΝ. λίτρα νερό. Πόσο νερό χρειάζεται ακόμα για να γεμίσει το δοχείο; 1. Οι μαθητές ενός σχολείου είναι περισσότεροι από 283 και λιγότεροι από 293. Είναι δυνατό να παραταχθούν σε τριάδες ή πεντάδες χωρίς να περισσεύει κανένας. Πόσοι είναι οι μαθητές του σχολείου αυτού; 2.

Διαβάστε περισσότερα

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

ΣΤΑΘΜΟΙ ΤΟΥ ΜΕΤΡΟ - - ΑΤΤΙΚΗ - ΣΕΠΟΛΙΑ - ΑΓ. ΑΝΤΩΝΙΟΣ - - ΠΟΛΕΟΔΟΜΙΚΗ ΑΝΑΛΥΣΗ - ΕΠΙΠΤΩΣΕΙΣ 1 Τ.Ε.Ι. ΠΕΙΡΑΙΑ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΠΟΛΙΤΙΚΩΝ ΔΟΜΙΚΩΝ ΕΡΓΩΝ ΣΤΑΘΜΟΙ ΤΟΥ ΜΕΤΡΟ - - ΑΤΤΙΚΗ - ΣΕΠΟΛΙΑ - ΑΓ. ΑΝΤΩΝΙΟΣ - - ΠΟΛΕΟΔΟΜΙΚΗ ΑΝΑΛΥΣΗ - ΕΠΙΠΤΩΣΕΙΣ Πτυχιακή Εργασία ΛΟΥΛΑΔΑΚΗ ΑΙΚΑΤΕΡΙΝΗ

Διαβάστε περισσότερα

ΣΧΕΔΙΟ ΠΡΟΤΑΣΕΩΝ ΣΥΛΛΟΓΟΥ ΓΟΝΕΩΝ & ΚΗΔΕΜΟΝΩΝ ΕΠΙ ΤΟΥ ΠΡΟΣΧΕΔΙΟΥ ΤΟΥ ΕΣΩΤΕΡΙΚΟΥ ΚΑΝΟΝΙΣΜΟΥ ΛΕΙΤΟΥΡΓΙΑΣ ΤΟΥ 1 ου ΓΥΜΝΑΣΙΟΥ ΜΑΡΚΟΠΟΥΛΟΥ ΣΗΜΕΙΩΣΗ

ΣΧΕΔΙΟ ΠΡΟΤΑΣΕΩΝ ΣΥΛΛΟΓΟΥ ΓΟΝΕΩΝ & ΚΗΔΕΜΟΝΩΝ ΕΠΙ ΤΟΥ ΠΡΟΣΧΕΔΙΟΥ ΤΟΥ ΕΣΩΤΕΡΙΚΟΥ ΚΑΝΟΝΙΣΜΟΥ ΛΕΙΤΟΥΡΓΙΑΣ ΤΟΥ 1 ου ΓΥΜΝΑΣΙΟΥ ΜΑΡΚΟΠΟΥΛΟΥ ΣΗΜΕΙΩΣΗ ΣΧΕΔΙΟ ΠΡΟΤΑΣΕΩΝ ΣΥΛΛΟΓΟΥ ΓΟΝΕΩΝ & ΚΗΔΕΜΟΝΩΝ ΕΠΙ ΤΟΥ ΠΡΟΣΧΕΔΙΟΥ ΤΟΥ ΕΣΩΤΕΡΙΚΟΥ ΚΑΝΟΝΙΣΜΟΥ ΛΕΙΤΟΥΡΓΙΑΣ ΤΟΥ 1 ου ΓΥΜΝΑΣΙΟΥ ΜΑΡΚΟΠΟΥΛΟΥ ΣΗΜΕΙΩΣΗ 02/03/2015 Με "μαύρα" γράμματα είναι το Σχέδιο Κανονισμού Καθηγητών,

Διαβάστε περισσότερα

ΔΙΚΗΓΟΡΙΚΟΣ ΣΥΛΛΟΓΟΣ ΠΡΑΚΤΙΚΟΣ ΟΔΗΓΟΣ. προς χρήση των Δικαστικών Αντιπροσώπων των Βουλευτικών Εκλογών της 17 ης ΙΟΥΝΙΟΥ 2012

ΔΙΚΗΓΟΡΙΚΟΣ ΣΥΛΛΟΓΟΣ ΠΡΑΚΤΙΚΟΣ ΟΔΗΓΟΣ. προς χρήση των Δικαστικών Αντιπροσώπων των Βουλευτικών Εκλογών της 17 ης ΙΟΥΝΙΟΥ 2012 ΔΙΚΗΓΟΡΙΚΟΣ ΣΥΛΛΟΓΟΣ ΑΘΗΝΩΝ ΠΡΑΚΤΙΚΟΣ ΟΔΗΓΟΣ προς χρήση των Δικαστικών Αντιπροσώπων των Βουλευτικών Εκλογών της 17 ης ΙΟΥΝΙΟΥ 2012 Σύνταξη ΣΠΥΡΟΣ Π. ΛΑΛΑΣ Δικηγόρος Αθηνών ΑΘΗΝΑ, ΜΑΪΟΣ 2012 2 ΠΡΟΛΟΓΙΚΟ

Διαβάστε περισσότερα

ΘΕΜΑ: «Παραθεριστικοί Οικοδοµικοί Συνεταιρισµοί. Μελέτη Περίπτωσης του «Βραχόκηπου» ήµου Γουβών Ηρακλείου Κρήτης»

ΘΕΜΑ: «Παραθεριστικοί Οικοδοµικοί Συνεταιρισµοί. Μελέτη Περίπτωσης του «Βραχόκηπου» ήµου Γουβών Ηρακλείου Κρήτης» ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΠΜΣ: ΑΡΧΙΤΕΚΤΟΝΙΚΗ - ΣΧΕ ΙΑΣΜΟΣ ΤΟΥ ΧΩΡΟΥ ΚΑΤΕΥΘΥΝΣΗ: ΠΟΛΕΟ ΟΜΙΑ ΧΩΡΟΤΑΞΙΑ ΜΑΘΗΜΑ: ΥΝΑΜΙΚΗ ΤΩΝ ΧΩΡΙΚΩΝ ΟΜΩΝ ΚΑΙ ΤΩΝ ΧΡΗΣΕΩΝ ΓΗΣ ΚΑΙ ΣΥΓΧΡΟΝΕΣ ΠΡΑΚΤΙΚΕΣ ΣΧΕ ΙΑΣΜΟΥ Ι ΑΣΚΟΝΤΕΣ:

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΕΣ ΑΛΥΚΕΣ Α.Ε.

ΕΛΛΗΝΙΚΕΣ ΑΛΥΚΕΣ Α.Ε. ΕΛΛΗΝΙΚΕΣ ΑΛΥΚΕΣ Α.Ε. Δ Ι Α Κ Η Ρ Υ Ξ Η ΑΝΟΙΚΤΟΥ ΜΕΙΟΔΟΤΙΚΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΓΙΑ ΤΗΝ ΑΝΑΘΕΣΗ ΤΩΝ ΧΕΡΣAIΩΝ ΜΕΤΑΦΟΡΩΝ ΑΛΑΤΟΣ Η εταιρία «ΕΛΛΗΝΙΚΕΣ ΑΛΥΚΕΣ Α.Ε.» προκηρύσσει δημόσιο ανοιχτό μειοδοτικό διαγωνισμό,

Διαβάστε περισσότερα

Του Σταύρου Ν. PhD Ψυχολόγου Αθλητικού Ψυχολόγου

Του Σταύρου Ν. PhD Ψυχολόγου Αθλητικού Ψυχολόγου Του Σταύρου Ν. PhD Ψυχολόγου Αθλητικού Ψυχολόγου Η σχέση και η αλληλεπίδραση των αθλητών, των προπονητών και των γονιών αποτελεί μια αναπόσπαστη διαδικασία στην αθλητική ανάπτυξη του παιδιού. Η αλληλεπίδραση

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ. ΚΟΙΝΩΦΕΛΗΣ ΕΠΙΧΕΙΡΗΣΗ ΔΗΜΟΥ ΘΕΣΣΑΛΟΝΙΚΗΣ Κ.Ε.ΔΗ.Θ. Μ.ΚΑΛΛΑΣ 23, Τ.Κ. 54655 ΤΗΛ. 2313318235 FAX 2310318334 E mail : mail@deekme.

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ. ΚΟΙΝΩΦΕΛΗΣ ΕΠΙΧΕΙΡΗΣΗ ΔΗΜΟΥ ΘΕΣΣΑΛΟΝΙΚΗΣ Κ.Ε.ΔΗ.Θ. Μ.ΚΑΛΛΑΣ 23, Τ.Κ. 54655 ΤΗΛ. 2313318235 FAX 2310318334 E mail : mail@deekme. ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΚΟΙΝΩΦΕΛΗΣ ΕΠΙΧΕΙΡΗΣΗ ΔΗΜΟΥ ΘΕΣΣΑΛΟΝΙΚΗΣ Κ.Ε.ΔΗ.Θ. Μ.ΚΑΛΛΑΣ 23, Τ.Κ. 54655 ΤΗΛ. 2313318235 FAX 2310318334 E mail : mail@deekme.gr Θεσσαλονίκη : 10/11/2015 Αρ.Πρωτ. 26309 ΘΕΜΑ: Ανακαίνιση

Διαβάστε περισσότερα

Ι Σ Ο Κ Ρ Α Τ Η Σ ΤΡΑΠΕΖΑ ΝΟΜΙΚΩΝ ΠΛΗΡΟΦΟΡΙΩΝ Δ.Σ.Α.

Ι Σ Ο Κ Ρ Α Τ Η Σ ΤΡΑΠΕΖΑ ΝΟΜΙΚΩΝ ΠΛΗΡΟΦΟΡΙΩΝ Δ.Σ.Α. Ι Σ Ο Κ Ρ Α Τ Η Σ ΤΡΑΠΕΖΑ ΝΟΜΙΚΩΝ ΠΛΗΡΟΦΟΡΙΩΝ Δ.Σ.Α. Το κείμενο παρατίθεται ακριβώς όπως δημοσιεύθηκε στο Φ.Ε.Κ. ΤΕΥΧΟΣ Α'/194/23-8-2002 ΠΡΟΕΔΡΙΚΟ ΔΙΑΤΑΓΜΑ ΥΠ' ΑΡΙΘ. 208 Εκπαιδευτές Υποψηφίων Οδηγών, Σχολές

Διαβάστε περισσότερα

Πληροφορίες Εγγράφου Πληροφορίες Εγγράφου Έργο Εµπειρογνωµοσύνη για τον ν.3979/2011 Τίτλος Εγγράφου Ηµεροµηνί 29 Ιουνίου 2013 α Αναφορά Παραδοτέο 1 ιαβάθµιση Εσωτερική Εµπιστευτικ ηµόσιο Χρήση ό Αρ. Σελίδων/

Διαβάστε περισσότερα

Ε.Ε. Π α ρ.ι(i), Α ρ.3646, 25/10/2002. ΤΗΣ ΕΠΙΣΗΜΗΣ ΕΦΗΜΕΡΙΔΑΣ ΤΗΣ ΔΗΜΟΚΡΑΤΙΑΣ Αρ. 3646 της 25ης ΟΚΤΩΒΡΙΟΥ 2002

Ε.Ε. Π α ρ.ι(i), Α ρ.3646, 25/10/2002. ΤΗΣ ΕΠΙΣΗΜΗΣ ΕΦΗΜΕΡΙΔΑΣ ΤΗΣ ΔΗΜΟΚΡΑΤΙΑΣ Αρ. 3646 της 25ης ΟΚΤΩΒΡΙΟΥ 2002 ΠΑΡΑΡΤΗΜΑ ΠΡΩΤΟ ΤΗΣ ΕΠΙΣΗΜΗΣ ΕΦΗΜΕΡΙΔΑΣ ΤΗΣ ΔΗΜΟΚΡΑΤΙΑΣ Αρ. 3646 της 25ης ΟΚΤΩΒΡΙΟΥ 2002 ΝΟΜΟΘΕΣΙΑ ΜΕΡΟΣ I Ο περί Σκύλων Νόμος του 2002, εκδίδεται με δημοσίευση στην Επίσημη Εφημερίδα της Κυπριακής Δημοκρατίας

Διαβάστε περισσότερα

Άνω Άκρο (ΙΙ) Ι. Γενικά

Άνω Άκρο (ΙΙ) Ι. Γενικά Άνω Άκρο (ΙΙ) Ι. Γενικά Α. Πήχης Ο πήσης (αντιβράχιο) Εκτείνεται από τον αγκώνα ως τον καρπό Ο σκελετός του αποτελείται από 2 οστά την κερκίδα & την ωλένη Μεταξύ των οστών αυτών εκτείνεται ο µεσόστεος

Διαβάστε περισσότερα

ΘΕΜΑ : «Ετήσιο ελτίο εδοµένων Μονάδων Υδατοκαλλιεργειών και Λιµνοθαλασσών»

ΘΕΜΑ : «Ετήσιο ελτίο εδοµένων Μονάδων Υδατοκαλλιεργειών και Λιµνοθαλασσών» ΕΛΛΗΝΙΚΗ ΗΜΟΚΡΑΤΙΑ ΥΠΟΥΡΓΕΙΟ ΑΓΡΟΤΙΚΗΣ ΑΝΑΠΤΥΞΗΣ ΚΑΙ ΤΡΟΦΙΜΩΝ ΓΕΝΙΚΗ /ΝΣΗ ΑΛΙΕΙΑΣ /ΝΣΗ Υ ΑΤ/ΓΕΙΩΝ & ΕΣΩΤΕΡΙΚΩΝ Υ ΑΤΩΝ ΤΜΗΜΑΤΑ 1 ο, 2 ο & 3 Ο... Ταχ. /νση : Πληροφορίες : Τηλέφωνα : Fax : Λ. Συγγρού 150

Διαβάστε περισσότερα

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

Ο ΑΝΤΙ ΗΜΑΡΧΟΣ ΣΚΟΠΕΛΟΥ ΑΝΑΡΤΗΤΕΑ ΣΤΟ ΙΑ ΙΚΤΥΟ ΕΛΛΗΝΙΚΗ ΗΜΟΚΡΑΤΙΑ Σκό ελος 29/07/2015 ΝΟΜΟΣ ΜΑΓΝΗΣΙΑΣ Αριθ. Πρωτ. 5605 ΗΜΟΣ ΣΚΟΠΕΛΟΥ ΓΡΑΦΕΙΟ ΗΜΑΡΧΟΥ Τ.Κ.37003 Σκό ελος Τηλ.24243-50101 ΙΑΚΗΡΥΞΗ ΗΜΟΠΡΑΣΙΑΣ ΓΙΑ ΤΗΝ ΕΚΜΙΣΘΩΣΗ ΚΟΙΝΟΧΡΗΣΤΟΥ

Διαβάστε περισσότερα

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

ΜΕΤΟΧΙΚΟ ΤΑΜΕΙΟ ΠΟΛΙΤΙΚΩΝ ΥΠΑΛΛΗΛΩΝ ΔΙΑΚΗΡΥΞΗ ΜΕΤΟΧΙΚΟ ΤΑΜΕΙΟ ΠΟΛΙΤΙΚΩΝ ΥΠΑΛΛΗΛΩΝ ΥΠΟΥΡΓΕΙΟ ΕΡΓΑΣΙΑΣ, ΚΟΙΝΩΝΙΚΗΣ ΑΣΦΑΛΙΣΗΣ & ΠΡΟΝΟΙΑΣ ΔΙΕΥΘΥΝΣΗ ΔΙΟΙΚΗΤΙΚΟΥ ΤΜΗΜΑ ΟΙΚΟΝΟΜΙΚΟΥ ΔΙΑΚΗΡΥΞΗ ΑΝΟΙΚΤΟΥ ΔΗΜΟΣΙΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΓΙΑ ΤΗΝ ΕΠΙΛΟΓΗ ΑΝΑΔΟΧΟΥ ΓΙΑ ΤΟ ΕΡΓΟ

Διαβάστε περισσότερα

& ../../.. 37, 151 80 :.. :... ... FAX :... & e-mail: :...

&  ../../..   37, 151 80   :.. :...  ...    FAX :... &  e-mail: :... Να διατηρηθεί µέχρι... ΕΛΛΗΝΙΚΗ ΗΜΟΚΡΑΤΙΑ Βαθµός Ασφαλείας ΥΠΟΥΡΓΕΙΟ ΕΘΝ.ΠΑΙ ΕΙΑΣ & ΘΡΗΣΚΕΥΜΑΤΩΝ ΕΝΙΑΙΟΣ ΙΟΙΚΗΤΙΚΟΣ ΤΟΜΕΑΣ Αθήνα../../.. Π/ΘΜΙΑΣ ΚΑΙ /ΘΜΙΑΣ ΕΚΠΑΙ ΕΥΣΗΣ /ΝΣΗ ΣΠΟΥ ΩΝ /ΘΜΙΑΣ ΕΚΠΑΙ ΕΥΣΗΣ Αριθ.

Διαβάστε περισσότερα

Νεοελληνική Γλώσσα. B Δημοτικού. Τίτλος: «Εκφράζω τα συναισθήματά μου»

Νεοελληνική Γλώσσα. B Δημοτικού. Τίτλος: «Εκφράζω τα συναισθήματά μου» Π.3.2.1 Εκπαιδευτικά σενάρια και μαθησιακές δραστηριότητες, σύμφωνα με συγκεκριμένες προδιαγραφές, που αντιστοιχούν σε 30 διδακτικές ώρες ανά τάξη Νεοελληνική Γλώσσα B Δημοτικού Τίτλος: «Εκφράζω τα συναισθήματά

Διαβάστε περισσότερα