ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Χειµερινό Εξάµηνο 2016 ΔΙΑΛΕΞΗ 10: Συµπληρωµατική Διάλεξη Flip-Flops (Basics) και VHDL)

Σχετικά έγγραφα
VHDL. ΗΜΥ-210: Λογικός Σχεδιασµός, Εαρινό Εξάµηνο Απλό παράδειγµα: Entity. Μοντελοποίηση. Απλό παράδειγµα:αρχιτεκτονική. Στοιχεία γλώσσας VHDL

ΗΜΥ-210: Σχεδιασμός Ψηφιακών Συστημάτων, Χειμερινό Εξάμηνο Νοε-09. Διδάσκουσα: Μαρία Κ. Μιχαήλ

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

VHDL για Σχεδιασµό Συνδυαστικών και Ακολουθιακών Ψηφιακών Κυκλωµάτων

Σχεδιασμός Ψηφιακών Συστημάτων Χειμερινό Εξάμηνο VHDL (revisited)

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Χειµερινό Εξάµηνο 2016 Συµπληρωµατική ΔΙΑΛΕΞΗ 14: Περιγραφή Ακολουθιακών Κυκλωµάτων στη VHDL

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

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

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

Ακολουθιακά Κυκλώµατα. ΗΜΥ 210: Λογικός Σχεδιασµός, Εαρινό Εξάµηνο Ακολουθιακά Κυκλώµατα (συν.) Ακολουθιακή Λογική: Έννοια

ΗΜΥ 210: Σχεδιασμό Ψηφιακών Συστημάτων, Χειμερινό Εξάμηνο 2008

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

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

Αυγ-13 Ακολουθιακά Κυκλώματα: Μανδαλωτές και Flip-Flops. ΗΜΥ 210: Σχεδιασμό Ψηφιακών Συστημάτων, Χειμερινό Εξάμηνο 2009.

VHDL για Σχεδιασµό Ακολουθιακών Κυκλωµάτων

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

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

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

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

ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων. VHDL για Ακολουθιακά Κυκλώματα 1

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

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

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

ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων. Ακολουθιακά Κυκλώματα: Μανδαλωτές και Flip-Flops 1

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

Library, package και subprograms

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

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

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

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

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

Structural VHDL. Structural VHDL

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

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

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

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

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

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

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

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

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

Ελίνα Μακρή

VHDL Introduction. Subtitle

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

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

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων

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

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

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

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

ΑΣΚΗΣΗ 9. Tα Flip-Flop

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

Ακολουθιακές εντολές. (Peter Ashenden, The Students Guide to VHDL)

Ψηφιακή Σχεδίαση. Δρ. Μηνάς Δασυγένης Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών

Κυριάκης - Μπιτζάρος Ευστάθιος Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Συναρτήσεις, Διαδικασίες και Δομές Ελέγχου Λειτουργίας Κυκλωμάτων (testbenches)

Περιγραφή Κυκλωμάτων με χρήση της VHDL. Δομική περιγραφή και περιγραφή Μηχανών Πεπερασμένων Καταστάσεων

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

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ψηφιακή Σχεδίαση. Ενότητα 13: Εισαγωγή στην VHDL

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

ΑΣΚΗΣΗ 2: Σχεδίαση και προσομοίωση κυκλωμάτων καταχωρητών και μετρητών

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

Μοντελοποίηση Επιπέδου Πύλης. (Peter Ashenden, The Students Guide to VHDL)

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

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


ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

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

K24 Ψηφιακά Ηλεκτρονικά 9: Flip-Flops

Περίληψη. ΗΜΥ-210: Λογικός Σχεδιασµός Εαρινό Εξάµηνο Καθιερωµένα Γραφικά Σύµβολα. ΗΜΥ 210: Λογικός Σχεδιασµός, Εαρινό Εξάµηνο 2005

Ενότητα ΑΡΧΕΣ ΑΚΟΛΟΥΘΙΑΚΗΣ ΛΟΓΙΚΗΣ LATCHES & FLIP-FLOPS

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ (Τ.Ε.Ι.) ΚΡΗΤΗΣ Τµήµα Εφαρµοσµένης Πληροφορικής & Πολυµέσων. Ψηφιακή Σχεδίαση. Κεφάλαιο 5: Σύγχρονη Ακολουθιακή

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

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

Γλώσσα Περιγραφής Υλικού VHDL Μέρος Α: Σωστή Σύνθεση

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

Κεφάλαιο 6. Σύγχρονα και ασύγχρονα ακολουθιακά κυκλώματα

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

ΛΥΣΕΙΣ 3 ης ΓΡΑΠΤΗΣ ΕΡΓΑΣΙΑΣ

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Χειµερινό Εξάµηνο 2016 ΔΙΑΛΕΞΗ 18: Διαδικασία Σχεδίασης Ψηφιακών Συστηµάτων - Επανάληψη

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

HY330 Ψηφιακά Κυκλώματα - Εισαγωγή στα Συστήματα VLSI. 1 ΗΥ330 - Διάλεξη 7η - Ακολουθιακά Κυκλώματα

Οι Βιβλιοθήκες IEEE και παραδείγµατα functions

H γλώσσα περιγραφής κυκλωµάτων VHDL

Σύνθετοι τύποι και λειτουργίες. (Peter Ashenden, The Students Guide to VHDL)

Περίληψη. ΗΜΥ-210: Λογικός Σχεδιασµός Εαρινό Εξάµηνο Μετρητής Ριπής (Ripple Counter) Μετρητές (Counters) Μετρητής Ριπής (συν.

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

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

σύνθεση και απλοποίησή τους θεωρήµατα της άλγεβρας Boole, αξιώµατα του Huntington, κλπ.

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

Σχεδίαση κυκλωμάτων με VHDL: 1o μέρος

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

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

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

Κυκλώµατα. Εισαγωγή. Συνδυαστικό Κύκλωµα

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

Σχεδίαση CMOS Ψηφιακών Ολοκληρωμένων Κυκλωμάτων

Αρχιτεκτονικές Υπολογιστών

Transcript:

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Χειµερινό Εξάµηνο 2016 ΔΙΑΛΕΞΗ 10: Συµπληρωµατική Διάλεξη Flip-Flops (Basics) και VHDL) ΧΑΡΗΣ ΘΕΟΧΑΡΙΔΗΣ Επίκουρος Καθηγητής, ΗΜΜΥ (ttheocharides@ucy.ac.cy)

VHDL (Very high speed integrated circuits Hardware Description Language) q Γλώσσα προγραµµατισµού για την περιγραφή και προσοµοίωση υλικού (λογικών σχεδιασµών). q Επιχορηγήθηκε από ΙEEE και DoD (Department of Defense των ΗΠΑ) στις αρχές του 80. q Βασικά χαρακτηριστικά: Ιεραρχικός σχεδιασµός Περιγραφή Διασυνδέσεων και Συµπεριφοράς µε ακρίβεια (και ξεχωριστά) Περιγραφή συµπεριφοράς: αλγοριθµικά ή µε δοµικό (structural) τρόπο Μοντελοποίηση Χρονισµού (Timing) και Ταυτοχρονισµού (Concurrency) à Σχεδιασµοί µπορούν να προσοµοιωθούν µε ακρίβεια ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.2 Θεοχαρίδης, ΗΜΥ, 2016

Μοντελοποίηση q Μια πλήρης περιγραφή ενός στοιχείου (component) µε VHDL απαιτεί: Entity (Οντότητα) : καθορίζει τις διασυνδέσεις (interface) ενός στοιχείου (όνοµα, εισόδους, εξόδους). Architecture (Αρχιτεκτονική): καθορίζει την λειτουργία/συµπεριφορά (function) ενός στοιχείου. q Σε κάθε στοιχείο αντιστοιχεί ένα µόνο entity και τουλάχιστον ένα architecture (πολλαπλά architecture είναι δυνατά). ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.3 Θεοχαρίδης, ΗΜΥ, 2016

Απλό παράδειγµα: Entity entity My_Component is -- My_Component : όνοµα port (X,Y: in BIT; -- προδιαγραφές διασυνδέσεων Z: out BIT); end My_Component; Εντολή port καθορίζει εισόδους και εξόδους Σχόλια (comments) Λέξεις κλειδιά VHDL (keywords) Αναγνωριστικό (identifier) Λειτουργία θύρας (port mode) Τύπος δεδοµένων (data type) X Y My_Component Z ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.4 Θεοχαρίδης, ΗΜΥ, 2016

Απλό παράδειγµα:αρχιτεκτονική entity My_Component is -- My_Component : όνοµα Port (X,Y: in BIT; -- προδιαγραφές διασυνδέσεων Z: out BIT); end My_Component; Architecture My_Component_Arch of My_Component is begin Z <= 1 when X= 1 and Y= 0 else 0 ; end My_Component_Arch; Σχόλια (comments) Λέξεις κλειδιά VHDL (keywords) Αναγνωριστικό (identifier) Λειτουργία θύρας (port mode) Τύπος δεδοµένων (data type) Αντίστοιχη οντότητα (entity) Z = X Y ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.5 Θεοχαρίδης, ΗΜΥ, 2016

Άλλο Παράδειγµα: πύλη AND entity My_AND is -- My_AND : όνοµα Port (X,Y: in BIT; -- προδιαγραφές διασυνδέσεων Z: out BIT); end My_END; Architecture My_AND_Arch of My_AND is begin Z <= 1 when X= 1 and Y= 1 else 0 ; end My_AND_Arch; Σχόλια (comments) Λέξεις κλειδιά VHDL (keywords) Αναγνωριστικό (identifier) Λειτουργία θύρας (port mode) Τύπος δεδοµένων (data type) Z = X Y ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.6 Θεοχαρίδης, ΗΜΥ, 2016

Στοιχεία γλώσσας VHDL q Σχόλια (Comments) ξεκινούν µε --, ισχύουν µέχρι το τέλος της γραµµής q Δεσµευµένες Λέξεις (Keywords) π.χ. entity, port, is, in, out, end, architecture, begin, end, when, else, q Αναγνωριστικά (Identifiers) Μεταβλητές, ονόµατα στοιχείων, κτλ q Synthesizeable vs. NON-Synthesizeable Μπορεί η περιγραφή υλικού όντως να υλοποιηθεί (µέσω εργαλείων σύνθεσης) Επίσης κάποια στοιχεία ΔΕΝ ΥΛΟΠΟΙΟΥΝΤΑΙ σε υλικό µέσω των εργαλείων σύνθεσης η χρήση τους γίνεται για σκοπούς της δικής µας ευκολίας και για επαλήθευση. ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.7 Θεοχαρίδης, ΗΜΥ, 2016

Αναγνωριστικά (Identifiers) q Μπορούν να περιέχουν A-Z, a-z, 0-9, _ q Πρέπει να ξεκινούν µε γράµµα q Δεν µπορούν να τελειώσουν µε _ q Δεν µπορούν να περιέχουν 2 συνεχόµενες _ q Η VHDL είναι case-insensitive Sel, sel και SEL αναφέρονται στο ίδιο αντικείµενο ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.8 Θεοχαρίδης, ΗΜΥ, 2016

Παραδείγµατα Αναγνωριστικών q A2G έγκυρο q 8bit_counter άκυρο ξεκινά µε αριθµό q _NewValue q first# άκυρο ξεκινά µε _ άκυρο περιέχει µη-αποδεκτό χαρακτήρα ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.9 Θεοχαρίδης, ΗΜΥ, 2016

VHDL Αντικείµενα Δεδοµένων (Data Objects) q Σταθερές (Constants) q Μεταβλητές (Variables) q Σήµατα (Signals) q Αρχεία (Files*) * Δεν υποστηρίζονται από εργαλεία σύνθεσης ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.10 Θεοχαρίδης, ΗΜΥ, 2016

Χαρακτήρες και Συµβολοσειρές q Χαρακτήρες (Characters) A, 0, 1, $, x, * q Συµβολοσειρές (Strings) string of characters 00101101 0X110ZZ1 q Δυαδικές (Bit) Συµβολοσειρές B 011111010110 O 3726 X 7D6 ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.11 Θεοχαρίδης, ΗΜΥ, 2016

VHDL Τύποι Δεδοµένων (Data Types) q Scalar Integers Enumerated Reals (floating point)* q Composite (σύνθετοι) Arrays (πίνακες/διατάξεις) Records q Access (pointers -- δείκτες)* * Δεν υποστηρίζονται από εργαλεία σύνθεσης ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.12 Θεοχαρίδης, ΗΜΥ, 2016

Τύποι Δεδοµένων Scalar: Integer Μικρότερο εύρος για κάθε υλοποίηση, όπως καθορίζεται από σχετικό πρότυπο: - 2,147,483,647 + 2,147,483,647 Παράδειγµα: αναθέσεις σε µεταβλητή τύπου integer : ARCHITECTURE test_int OF test IS BEGIN PROCESS (X) VARIABLE a: INTEGER; BEGIN a := 1; -- OK a := -1; -- OK a := 1.0; -- άκυρο END PROCESS; END test_int; ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.13 Θεοχαρίδης, ΗΜΥ, 2016

Τύποι Δεδοµένων Scalar: Integer (συν.) q Μπορούµε επίσης να ορίσουµε integers µε µικρότερο εύρος (sub-ranges) Παραδείγµατα: type CountValue is range 0 to 15; type Twenties is range 20 to 29; type Thirties is range 39 downto 30; ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.14 Θεοχαρίδης, ΗΜΥ, 2016

Τύποι Δεδοµένων Scalar: Enumerated Ο χρήστης ορίζει τη λίστα πιθανών τιµών Παράδειγµα: TYPE binary IS ( ON, OFF );... κάποιες εντολές... ARCHITECTURE test_enum OF test IS BEGIN PROCESS (X) VARIABLE a: binary; BEGIN a := ON; -- OK... επιπρόσθετες εντολές... a := OFF; -- OK... επιπρόσθετες εντολές... END PROCESS; END test_enum; ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.15 Θεοχαρίδης, ΗΜΥ, 2016

Τύποι Δεδοµένων Scalar: Enumerated à Boolean type boolean is (false, true);... κάποιες εντολές... variable A,B,C: boolean;... κάποιες εντολές... C := not A C := A and B C := A or B C := A nand B C := A nor B C := A xor B C := A xnor B aντικείµενο (object) VHDL Τελεστής ανάθεσης για µεταβλητές ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.16 Θεοχαρίδης, ΗΜΥ, 2016

Τύποι Δεδοµένων Scalar: Enumerated à Bit type bit is ( 0, 1 );... κάποιες εντολές... signal x,y,z: bit;... κάποιες εντολές... x <= 0 ; y <= 1 ; z <= x and y; aντικείµενο (object) VHDL Τελεστής ανάθεσης για σήµατα ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.17 Θεοχαρίδης, ΗΜΥ, 2016

Τύποι Δεδοµένων Scalar: Enumerated à Standard Logic type std_logic is ( U, -- Uninitialized (µη-αρχικοποιηµένο) X -- Unknown (άγνωστο) 0 -- Zero (µηδέν) 1 ); -- One (ένα) n std_logic είναι µέρος του πακέτου ieee n Πακέτα (Packages): ήδη-µεταγλωττισµένος κώδικας VHDL που αποθηκεύεται σε βασικό κατάλογο (library) library IEEE; use IEEE.std_logic_1164.all; Πρέπει να περιλαµβάνεται στο κώδικά σας, πριν τη δήλωση τύπων δεδοµένων std_logic ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.18 Θεοχαρίδης, ΗΜΥ, 2016

Σύνθετοι Τύποι Δεδοµένων - (Composite Data Types) q Array (Πίνακες/Διατάξεις): Χρησιµοποιείται για οµαδοποίηση δεδοµένων του ιδίου τύπου σε ένα ενιαίο αντικείµενο VHDL Το εύρος µπορεί να είναι ακαθόριστο (=απεριόριστο) στη δήλωση (declaration) à καθορίζεται µόλις ο πίνακας χρησιµοποιηθεί Παράδειγµα: δήλωση πίνακα µίας-διάστασης (one-dimensional array (vector)) TYPE data_bus IS ARRAY(0 TO 31) OF BIT; VARIABLE X : data_bus; VARIABLE Y : BIT; 0... δείκτες στοιχείων... 31 0...τιµές στοιχείων πίνακα... 1 Y := X(12); -- το Y παίρνει την τιµή του στοιχείου µε δείκτη 12 του Χ ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.19 Θεοχαρίδης, ΗΜΥ, 2016

Αρχιτεκτονική Περιγραφή µε VHDL architecture name_arch of name is Signal assignments begin Ταυτόχρονες εντολές (concurrent statements) Process 1 Ταυτόχρονες εντολές (concurrent statements) Process 2 Ταυτόχρονες εντολές (concurrent statements) end name_arch; Το κάθε process περιέχει ακολουθιακές εντολές (sequential statements), αλλά όλα τα processes εκτελούνται ταυτόχρονα ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.20 Θεοχαρίδης, ΗΜΥ, 2016

VHDL Process P1: process (<sensitivity list>) <variable declarations> begin <sequential statements> end process P1; Μέσα σε ένα process: Προαιρετική σήµανση Ανάθεση µεταβλητών (variables) µε := και άµεση ενηµέρωση. Ανάθεση σηµάτων (signals) µε <= και η ενηµέρωση γίνετε στο τέλος του process. ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.21 Θεοχαρίδης, ΗΜΥ, 2016

Αρχιτεκτονική VHDL (συν.) n Στο κάθε entity (µοναδικό ανά στοιχείο) αντιστοιχεί τουλάχιστον µια περιγραφή αρχιτεκτονικής (architecture) n Υπάρχουν 3 τρόποι περιγραφής της αρχιτεκτονικής: n Structural (Δοµική): λεπτοµερής περιγραφή σε επίπεδο πυλών/βασικών στοιχείων n Data Flow (Ροή Δεδοµένων): περιγραφή βάση του τρόπου µεταφοράς δεδοµένων µεταξύ των στοιχείων/ σηµάτων n Behavioral (Συµπεριφορά): αλγοριθµική περιγραφή υψηλό επίπεδο χωρίς λεπτοµέρειες n Θα δούµε διάφορα παραδείγµατα ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.22 Θεοχαρίδης, ΗΜΥ, 2016

2-to-4 DEC σε VHDL: Διάγραµµα σε επίπεδο πυλών ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.23 Θεοχαρίδης, ΗΜΥ, 2016

2-to-4 DEC σε VHDL: Δήλωση Οντότητας (Entity Declaration) -- 2-to-4 Line Decoder: Structural VHDL Description library ieee, lcdf_vhdl; Εισαγόµενος κώδικας από βιβλιοθήκες use ieee.std_logic_1164.all, lcdf_vhdl.func_prims.all; entity decoder_2_to_4 is port(e_n, A0, A1: in std_logic; Είσοδοι & Έξοδοι D0_n, D1_n, D2_n, D3_n: out std_logic); end decoder_2_to_4; ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.24 Θεοχαρίδης, ΗΜΥ, 2016

2-to-4 DEC σε VHDL: Αρχιτεκτονική - Δοµική Περιγραφή Structural) architecture structural_1 of decoder_2_to_4 is component NOT1 port(in1: in std_logic; end component; out1: out std_logic); component NAND3 port(in1, in2, in3: in std_logic; out1: out std_logic); Δήλωση απαραίτητων component (διαθέσιµα από τις βιβλιοθήκες) end component; ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.25 Θεοχαρίδης, ΗΜΥ, 2016

2-to-4 DEC σε VHDL: Αρχιτεκτονική Δοµική Περιγραφή (Structural) (συν.) signal E, A0_n, A1_n: std_logic; begin g0: NOT1 port map (in1 => A0, out1 => A0_n); g1: NOT1 port map (in1 => A1, out1 => A1_n); g2: NOT1 port map (in1 => E_n, out1 => E); g3: NAND3 port map (in1 => A0_n, in2 => A1_n, in3 => E, out1 => D0_n); g4: NAND3 port map (in1 => A0, in2 => A1_n, in3 => E, out1 => D1_n); g5: NAND3 port map (in1 => A0_n, in2 => A1, in3 => E, out1 => D2_n); g6: NAND3 port map (in1 => A0, in2 => A1, in3 => E, out1 => D3_n); end structural_1; Τοπικά σήµατα ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.26 Θεοχαρίδης, ΗΜΥ, 2016

2-to-4 DEC σε VHDL: Αρχιτεκτονική Περιγραφή Ροής Δεδοµένων (Dataflow) architecture dataflow_1 of decoder_2_to_4 is signal E, A0_n, A1_n: std_logic; begin A0_n <= not A0; A1_n <= not A1; E <= not E_n; D0_n <= not (A0_n and A1_n and E); D1_n <= not (A0 and A1_n and E); D2_n <= not (A0_n and A1 and E); D3_n <= not (A0 and A1 and E); end dataflow_1; ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.27 Θεοχαρίδης, ΗΜΥ, 2016

Άλλο Παράδειγµα: n-bit 4-σε-1 MUX a(n-1:0) b(n-1 :0) c(n-1 :0) d(n-1 :0) n n n n n-bit 4-σε-1 MUX n y(n-1 :0) Sel y 00 a 01 b 10 c 11 d 2 Sel(1:0) ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.28 Θεοχαρίδης, ΗΜΥ, 2016

n-bit 4-σε-1 MUX: Δήλωση Οντότητας (Entity declaration) library IEEE; use IEEE.std_logic_1164.all; entity mux4g is generic(width:positive); port ( a: in STD_LOGIC_VECTOR (width-1 downto 0); b: in STD_LOGIC_VECTOR (width-1 downto 0); c: in STD_LOGIC_VECTOR (width-1 downto 0); d: in STD_LOGIC_VECTOR (width-1 downto 0); sel: in STD_LOGIC_VECTOR (1 downto 0); y: out STD_LOGIC_VECTOR (width-1 downto 0) ); end mux4g; ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.29 Θεοχαρίδης, ΗΜΥ, 2016

n-bit 4-σε-1 MUX: Αρχιτεκτονική: Περιγραφή Ροής Δεδοµένων µε χρήση εντολής CASE architecture mux4g_arch of mux4g is begin process (sel, a, b, c, d) begin case sel is when "00" => y <= a; when "01" => y <= b; when "10" => y <= c; when others => y <= d; end case; end process; end mux4g_arch; Sel y 00 a 01 b 10 c 11 d Η εντολή CASE πρέπει να περιέχει ΟΛΕΣ τις πιθανότητες τιµών. ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.30 Θεοχαρίδης, ΗΜΥ, 2016

Παράδειγµα απλής συνδυαστικής συνάρτησης: Περιγραφή Ροής Δεδοµένων library ieee; use ieee.std_logic_1164.all; entity func2 is port (x1,x2,x3: in std_logic; f: out std_logic ); end func2; architecture dataflow of func2 is begin f <= (not x1 and not x2 and x3) or (x1 and not x2 and not x3) or (x1 and not x2 and x3) or (x1 and x2 and not x3); end dataflow; ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.31 Θεοχαρίδης, ΗΜΥ, 2016

Ηµιαθροιστής q Πρόβληµα: Σχεδιάστε ένα ηµιαθροιστή 1-bit µε κρατούµενο (carry) και σήµα ενεργοποίησης (enable). q Προδιαγραφές Είσοδοι και έξοδοι είναι 1-bit Όταν το enable είναι 1, το αποτέλεσµα είναι η πρόσθεση x+y µε carry Έξοδοι 0 όταν το enable είναι 0 x y enable Ηµιαθροιστής carry result ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.32 Θεοχαρίδης, ΗΜΥ, 2016

Ηµιαθροιστής: Δήλωση Οντότητας q Η οντότητα περιγράφει τις διασυνδέσεις του component -- δηλώνονται θύρες (ports) εισόδων και εξόδων ENTITY half_adder IS PORT( x, y, enable: IN bit; carry, result: OUT bit); END half_adder; x y enable Ηµιαθροιστής carry result ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.33 Θεοχαρίδης, ΗΜΥ, 2016

Ηµιαθροιστής: Αρχιτεκτονική µε Περιγραφή Συµπεριφοράς (Behavioral) q Μπορούµε να χρησιµοποιήσουµε µια περιγραφή υψηλού επιπέδου για την συνάρτηση που υλοποιεί το κύκλωµα ARCHITECTURE half_adder_a of half_adder IS BEGIN PROCESS (x, y, enable) BEGIN IF enable = 1 THEN result <= x XOR y; carry <= x AND y; ELSE END IF; END PROCESS; END half_adder_a; Αυτό το µοντέλο µπορεί να προσοµοιωθεί έτσι ώστε να επαληθευτεί η σωστή λειτουργία του κυκλώµατος ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.34 Θεοχαρίδης, ΗΜΥ, 2016

Ηµιαθροιστής: Δοµική Περιγραφή Αρχιτεκτονικής (Structural) q Εναλλακτικά, µπορούµε να χρησιµοποιήσουµε µια δοµική περιγραφή (βάση διαθέσιµων components που έχουν ήδη δηλωθεί) x y enable carry result Αυτό το µοντέλο µπορεί επίσης να προσοµοιωθεί έτσι ώστε να επαληθευτεί η σωστή λειτουργία του κυκλώµατος ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.35 Θεοχαρίδης, ΗΜΥ, 2016

Ηµιαθροιστής: Δοµική Περιγραφή Αρχιτεκτονικής (συν.) ARCHITECTURE half_adder_c of half_adder_nty IS COMPONENT and2 PORT (in0, in1 : IN BIT; out0 : OUT BIT); END COMPONENT; COMPONENT and3 PORT (in0, in1, in2 : IN BIT; out0 : OUT BIT); END COMPONENT; COMPONENT xor2 PORT (in0, in1 : IN BIT; out0 : OUT BIT); END COMPONENT; FOR ALL : and2 USE ENTITY gate_lib.and2_nty(and2_a); FOR ALL : and3 USE ENTITY gate_lib.and3_nty(and3_a); FOR ALL : xor2 USE ENTITY gate_lib.xor2_nty(xor2_a); -- η περιγραφή συνεχίζεται στην επόµενη διαφάνεια ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.36 Θεοχαρίδης, ΗΜΥ, 2016

Ηµιαθροιστής: Δοµική Περιγραφή Αρχιτεκτονικής (συν.) -- συνεχιζόµενη περιγραφή half_adder_c SIGNAL xor_res : bit; -- εσωτερικό σήµα -- τα υπόλοιπα σήµατα έχουν ήδη δηλωθεί στο entity BEGIN A0 : and2 PORT MAP (enable, xor_res, result); A1 : and3 PORT MAP (x, y, enable, carry); X0 : xor2 PORT MAP (x, y, xor_res); END half_adder_c; ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.37 Θεοχαρίδης, ΗΜΥ, 2016

Ηµιαθροιστής: Αρχιτεκτονική µε Περιγραφή Ροής Δεδοµένων (Dataflow) q Μια τρίτη µέθοδος περιγραφής της αρχιτεκτονικής ενός component χρησιµοποιεί λογικές εξισώσεις για να αναπτύξει µια περιγραφή ροής δεδοµένων ARCHITECTURE half_adder_b of half_adder_nty IS BEGIN carry <= enable AND (x AND y); result <= enable AND (x XOR y); END half_adder_b; Ξανά: το µοντέλο αυτό µπορεί να προσοµοιωθεί σε αυτό το επίπεδο για να επιβεβαιωθούν οι λογικές εξισώσεις. ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.38 Θεοχαρίδης, ΗΜΥ, 2016

Παράδειγµα Αθροιστή 4ων-bit: Δήλωση Οντότητας -- Αθροιστής 4ων-bit library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity adder_4_b is port(b, A : in std_logic_vector(3 downto 0); C0 : in std_logic; S : out std_logic_vector(3 downto 0); C4 : out std_logic); end adder_4_b; ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.39 Θεοχαρίδης, ΗΜΥ, 2016

Αθροιστής 4ων-bit:Αρχιτεκτονική µε Περιγραφή Συµπεριφοράς (Behavioral) architecture behavioral of adder_4_b is signal sum : std_logic_vector(4 downto 0); begin Είναι πλήρης αθροιστής; sum <= ('0' & A) + ('0' & B) + ("0000" & C0); C4 <= sum(4); S <= sum(3 downto 0); end behavioral; 0A 3 A 2 A 1 A 0 0B 3 B 2 B 1 B 0 0000C 0 ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.40 Θεοχαρίδης, ΗΜΥ, 2016

Αθροιστής 1-bit:Αρχιτεκτονική µε Περιγραφή Ροής Δεδοµένων (Dataflow) library ieee; use ieee.std_logic_1164.all; entity fulladd is port (Cin, x, y: in std_logic; s, Cout: out std_logic); end fulladd; architecture logicfunc of fulladd is begin s <= x xor y xor Cin; Cout <= (x and y) or (Cin and x) or (Cin and y); end logicfunc; ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.41 Θεοχαρίδης, ΗΜΥ, 2016

Αθροιστής 4ων-bit: Δήλωση Οντότητας library ieee; use ieee.std_logic_1164.all; entity adder4 is -- s = x+y port ( Cin: in std_logic; x3,x2,x1,x0: in std_logic; y3,y2,y1,y0: in std_logic; s3,s2,s1,s0: out std_logic; Cout: out std_logic ); end adder4; ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.42 Θεοχαρίδης, ΗΜΥ, 2016

Αθροιστής 4ων-bit: Δοµική Περιγραφή Αρχιτεκτονικής (Structural) architecture structural of adder4 is signal c1,c2,c3: std_logic; component fulladd port (Cin,x,y: in std_logic; s,cout: out std_logic); end component; Ίδια σειρά όπως στη δήλωση του entity begin stage0: fulladd port map (Cin,x0,y0,s0,c1); stage1: fulladd port map (c1,x1,y1,s1,c2); stage2: fulladd port map (c2,x2,y2,s2,c3); Προσαρµοσµένη σειρά stage3: fulladd port map (Cin=>c3,Cout=>cout,x=>x3,y=>y3,s=>s3); end structural; ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.43 Θεοχαρίδης, ΗΜΥ, 2016

2-σε-1 MUX library ieee; use ieee.std_logic_1164.all; entity mux2to1 is port (d0,d1,s: in std_logic; y: out std_logic); end mux2to1; architecture behavioral of mux2to1 is begin with s select y <= d0 when 0, d1 when others; end behavioral; ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.44 Θεοχαρίδης, ΗΜΥ, 2016

Αποκωδικοποιητής 2-σε-4 library ieee; use ieee.std_logic_1164.all; entity dec2to4 is port (w: in std_logic_vector(1 downto 0); e: in std_logic; y: out std_logic_vector(0 to 3)); end dec2to4; ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.45 Θεοχαρίδης, ΗΜΥ, 2016

Αποκωδικοποιητής 2-σε-4 (συν.) architecture behavioral of dec2to4 is signal ew: std_logic_vector(2 downto 0); begin ew <= e & w; -- concatenation! with ew select y <= 1000 when 100, 0100 when 101, 0010 when 110, 0001 when 111, 0000 when others; end behavioral; ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.46 Θεοχαρίδης, ΗΜΥ, 2016

ΒΙΒΛΙΟΓΡΑΦΙΑ ΚΑΙ ΑΝΑΦΟΡΕΣ q Στην ιστοσελίδα υπάρχουν ΠΟΛΛΕΣ αναφορές για VHDL και γενικά για γλώσσες περιγραφής υλικού. q http://www.eng.ucy.ac.cy/theocharides/courses/ece210/useful.html ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.47 Θεοχαρίδης, ΗΜΥ, 2016

FLIP FLΟPS Σύντοµη εισαγωγή! ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.48 Θεοχαρίδης, ΗΜΥ, 2016

Αποθήκευση Καταστάσεως q Τι γίνεται αν η A ενωθεί µε την Y? q Συναρτήσεις: Y = B για S = 1 Y(t) εξαρτάται από Y(t 0.9) για S = 0 S B 0.2 0.4 0.4 Μονοπάτι ανάδρασης (feedback path) 0.5 Y B S S Y q Το συνδυαστικό κύκλωµα µετατράπηκε σε ακολουθιακό, αφού η συνάρτηση εξόδου εξαρτάται και από προηγούµενες τιµές εισόδων (όχι µόνο τις τρέχουσες τιµές) Y είναι η αποθηκεµένη τιµή στη σκιασµένη περιοχή ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.49 Θεοχαρίδης, ΗΜΥ, 2016

Αποθήκευση Καταστάσεως (συν.) q Παράδειγµα προσοµοίωσης: Οι τιµές εισόδων αλλάζουν µε την πάροδο του χρόνου. Οι αλλαγές σηµειώνονται κάθε 100 ns, έτσι ώστε καθυστερήσεις σε δέκατα του ns αγνοούνται. Χρόνος B S Y Σχόλια 1 0 0 Y θυµάται 0 1 1 1 Y = B όταν S = 1 1 0 1 Τώρα Y θυµάται B = 1 για S = 0 0 0 1 Καµία αλλαγή για Y όταν αλλάζει το B 0 1 0 Y = B όταν S = 1 0 0 0 Y θυµάται B = 0 για S = 0 1 0 0 Καµία αλλαγή για Y όταν αλλάζει το B q Y εκπροσωπεί την κατάσταση του κυκλώµατος, όχι απλά µια έξοδο! ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.50 Θεοχαρίδης, ΗΜΥ, 2016

Αποθήκευση Καταστάσεως (συν.) q q Θεωρείστε ότι τοποθετούµε ένα αντιστροφέα στο µονοπάτι ανάδρασης. Συµβαίνουν τα ακόλουθα: 1. Το κύκλωµα γίνεται ασταθή (unstable). 2. Για S = 0, το κύκλωµα γίνεται ταλαντωτής (oscillator). 3. Μπορεί να χρησιµοποιηθεί ως ένα «αδρό» ρολόι. S B 0.2 B S Y Σχόλια 0 1 0 Y = B όταν S = 1 1 1 1 1 0 1 Τώρα Y θυµάται B 1 0 0 Y, 1.1 ns αργότερα 1 0 1 Y, 1.1 ns αργότερα 1 0 0 Y, 1.1 ns αργότερα ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.51 Θεοχαρίδης, ΗΜΥ, 2016 0.4 0.4 0.5 0.2 Y

SR latch (από NOR) -- SR: set-reset, δισταθές στοιχείο µε 2 εισόδους. Προσέξτε την «ακαθόριστη» τιµή για S=R=1. -- Διαβάζοντας τη λογική: Q = (R+Q ) και Q = (S+Q) ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.52 Θεοχαρίδης, ΗΜΥ, 2016

R = S = 1?? q Ακαθόριστη έξοδος γιατί: Όταν S=R=1, τότε και οι 2 έξοδοι γίνονται 0. Εάν και οι 2 έξοδοι είναι 0, η κατάσταση του SR latch εξαρτάται από την είσοδο που παραµένει στην τιµή 1 για περισσότερο χρόνο, πριν γίνει 0. Άρα είναι όντως, ακαθόριστη κατάσταση à ΠΡΕΠΕΙ να αποφευχθεί. ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.53 Θεοχαρίδης, ΗΜΥ, 2016

S R Latch (από NAND) 0 1 S R Q Q 1 0 S R Q Q 0 0 0 1 1 0 1 1 1 0 Set X Y NAND 0 0 1 0 1 1 1 0 1 1 1 0 ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.54 Θεοχαρίδης, ΗΜΥ, 2016

S R Latch (από NAND) 1 1 S R Q Q 1 0 S R Q Q 0 0 0 1 1 0 1 1 1 0 Set 1 0 Hold X Y NAND 0 0 1 0 1 1 1 0 1 1 1 0 ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.55 Θεοχαρίδης, ΗΜΥ, 2016

S R Latch (από NAND) 1 0 S R Q Q 0 1 S R Q Q 0 0 0 1 1 0 1 1 1 0 Set 0 1 Reset 1 0 Hold X Y NAND 0 0 1 0 1 1 1 0 1 1 1 0 ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.56 Θεοχαρίδης, ΗΜΥ, 2016

S R Latch (από NAND) 1 1 S R Q Q 0 1 X Y NAND 0 0 1 0 1 1 1 0 1 1 1 0 S R Q Q 0 0 0 1 1 0 1 1 1 0 Set 0 1 Reset 1 0 Hold 0 1 Hold ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.57 Θεοχαρίδης, ΗΜΥ, 2016

S R Latch (από NAND) 0 0 S R Q Q 1 1 X Y NAND 0 0 1 0 1 1 1 0 1 1 1 0 S R Q Q 0 0 1 1 Disallowed 0 1 1 0 Set 1 0 0 1 Reset 1 1 1 0 Hold 0 1 Hold ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.58 Θεοχαρίδης, ΗΜΥ, 2016

SR Latches ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.59 Θεοχαρίδης, ΗΜΥ, 2016

Προσοµοίωση SR Latch ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.60 Θεοχαρίδης, ΗΜΥ, 2016

SR Latch µε σήµα Ελέγχου Το Latch είναι ευαίσθητο σε αλλαγές στις εισόδους ΜΟΝΟ όταν το C=1 Σηµαντικό στοιχείο, χρησιµοποιείται για σχεδιασµό άλλων latches και flip-flops Θεωρείται και ως flip-flop, άλλα όχι βάση του ορισµού του βιβλίου σας ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.61 Θεοχαρίδης, ΗΜΥ, 2016

SR Latch µε σήµα Ελέγχου (συν.) S C=CLK R S R Q Q S R CLK S R Q Q 0 0 1 1 1 Q 0 Q 0 Store 0 1 1 1 0 0 1 Reset 1 0 1 0 1 1 0 Set 1 1 1 0 0 1 1 Disallowed X X 0 1 1 Q 0 Q 0 Store ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.62 Θεοχαρίδης, ΗΜΥ, 2016

D Latch q Ένας τρόπος αποφυγής των ανεπιθύµητων ακαθόριστων καταστάσεων στο RS flip-flop, είναι η εξασφάλιση ότι οι είσοδοι S και R δεν θα πάρουν ποτέ την τιµή 1 ταυτόχρονα. Αυτό επιτυγχάνεται µε ένα SR-latch, όπου S=D και R=D à D-latch: ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.63 Θεοχαρίδης, ΗΜΥ, 2016

D Latch (συν.) D S S Q CLK R R Q D CLK Q Q 0 1 0 1 1 1 1 0 X 0 Q 0 Q 0 S R CLK Q Q 0 0 1 Q 0 Q 0 Store 0 1 1 0 1 Reset 1 0 1 1 0 Set 1 1 1 1 1 Disallowed X X 0 Q 0 Q 0 Store ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.64 Θεοχαρίδης, ΗΜΥ, 2016

Flip-Flops q Τα Latches είναι διαυγή (transparent) δηλ., οποιαδήποτε αλλαγή στην κατάσταση του latch είναι αντιληπτή και στις εξόδους (αν υπάρχει σήµα ελέγχου C, αυτό ισχύει κατά τη διάρκεια που C=1). q Αυτό προκαλεί προβλήµατα συγχρονισµού, αφού η κατάσταση ενός latch µπορεί να αλλάξει πολλαπλές φορές όταν C=1! q Λύση: Χρησιµοποιούµε latches για τη δηµιουργία των flip-flops που µπορούν να ανταποκριθούν (update) ΜΟΝΟ σε ΣΥΓΚΕΚΡΙΜΕΝΕΣ χρονικές στιγµές (όχι ανά πάσα στιγµή ή κατά τη διάρκεια ενός διαστήµατος). ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.65 Θεοχαρίδης, ΗΜΥ, 2016

Πυροδότηση (Triggering) Latch/FF q Ο µηχανισµός που επιτρέπει σε ένα στοιχείο µνήµης (latch ή FF) να αλλάξει κατάσταση q Τρόποι Πυροδότησης: latches FFs Ασύγχρονα, δηλ. εντελώς διαυγή (π.χ. SR-latch) Πυροδότηση-επιπέδου (level trigger, C=1) (π.χ. SR-latch ή D-latch µε σήµα ελέγχου C) Master-Slave (π.χ. SR-FF, D-FF) Πυροδότηση-ακµής: θετική ή αρνητική ακµή του C (rising or falling edge trigger, C= ή C= ) (π.χ. SR-FF, D-FF) ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.66 Θεοχαρίδης, ΗΜΥ, 2016

Εναλλακτικές λύσεις στην επιλογή FF q Τύποι FF: SR D JK q Τρόποι ενεργοποίησης (triggering): Master-Slave: χρησιµοποιεί πυροδότηση-επιπέδου αλλά µε 2 latches, έτσι ώστε η κατάσταση του FF αλλάζει µόνο µια φορά σε µία περίοδο του ρολογιού Ενεργοποίηση-ακµής: θετική ή αρνητική ακµή του C (rising or falling edge trigger, C= ή C= ) ΗΜΥ210 Δ10 VHDL και Flip-Flops Συµπληρωµατική Διάλεξη.67 Θεοχαρίδης, ΗΜΥ, 2016