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

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

Download "ΣΧΕΔΙΑΣΜΟΣ ΚΥΚΛΩΜΑΤΩΝ ΠΑΡΑΜΕΤΡΙΚΗΣ ΜΕΤΑΒΟΛΗΣ ΣΥΧΝΟΤΗΤΑΣ ΚΑΙ DUTY CYCLE ΠΑΛΜΟΥ ΜΕ ΧΡΗΣΗ ΤΗΣ ΓΛΩΣΣΑΣ VHDL"

Transcript

1 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΚΑΙ ΗΛ. ΥΠΟΛΟΓΙΣΤΩΝ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΣΧΕΔΙΑΣΜΟΣ ΚΥΚΛΩΜΑΤΩΝ ΠΑΡΑΜΕΤΡΙΚΗΣ ΜΕΤΑΒΟΛΗΣ ΣΥΧΝΟΤΗΤΑΣ ΚΑΙ DUTY CYCLE ΠΑΛΜΟΥ ΜΕ ΧΡΗΣΗ ΤΗΣ ΓΛΩΣΣΑΣ VHDL ΑΞΙΩΤΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ ΑΕΜ ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ : ΣΠΥΡΙΔΩΝ ΝΙΚΟΛΑΪΔΗΣ ΟΚΤΩΒΡΙΟΣ 2016

2 Περιεχόμενα Περίληψη 4 ΚΕΦΑΛΑΙΟ Σχετικά με τη VHDL FPGAs Δομή της VHDL 9 ΚΕΦΑΛΑΙΟ Συντρέχων και ακολουθιακός κώδικας Συνδυαστική λογική Ακολουθιακή λογική Διεργασίες ακολουθιακού κώδικα Συχνά χρησιμοποιούμενες ακολουθιακές εντολές Εντολή IF Εντολή LOOP Συστατικό στοιχείο Εντολή GENERATE GENERIC Προσομοίωση (Test Bench) Βασικά λογικά κυκλώματα που χρησιμοποιήθηκαν Πύλη AND Πύλη OR Πύλη XOR Αποκωδικοποιητής (Decoder) Πολυπλέκτης (Multiplexer) Μετρητής (counter) Μετρητής με παράλληλη φόρτωση Σύνθεση (Synthesis) 22 1

3 ΚΕΦΑΛΑΙΟ Παραμετρική μεταβολή συχνότητας και duty cycle του ρολογιού Κύκλωμα παραμετρικής μεταβολής συχνότητας και duty cycle του ρολογιού Υλοποίηση κυκλώματος με χρήση counter χωρίς παράλληλη φόρτωση Υλοποίηση κυκλώματος με χρήση counter με παράλληλη φόρτωση 26 ΚΕΦΑΛΑΙΟ Κώδικας για το κύκλωμα με τον απλό counter Κώδικας counter με χρήση adder Κώδικας counter με D Flip-Flop Κώδικας για το κύκλωμα ισότητας Κώδικας για αποκωδικοποιητή Κώδικας για το σήμα μετά τις OR Έξοδος κυκλώματος (Έξοδος πολυπλέκτη) Τελική μορφή προγράμματος Κώδικας για κύκλωμα με counter με παράλληλη φόρτωση Κώδικας counter με παράλληλη φόρτωση Τελική μορφή προγράμματος Παραμετροποίηση κυκλωμάτων Παραμετροποίηση πολυπλέκτη (Multiplexer) Παραμετροποίηση του κυκλώματος με μετρητή με παράλληλη φόρτωση 41 ΚΕΦΑΛΑΙΟ Σύνταξη κώδικα προσομοίωσης κυκλώματος με απλό counter Σύνταξη κώδικα προσομοίωσης κυκλώματος με counter με παράλληλη φόρτωση Προσομοιώσεις 47 ΚΕΦΑΛΑΙΟ

4 6.1 Σύγκριση κυκλωμάτων ως προς τις απαιτήσεις χώρου και hardware Σύγκριση κυκλωμάτων ως προς το όριο μέγιστης συχνότητας λειτουργίας 54 ΚΕΦΑΛΑΙΟ Συμπεράσματα 55 Βιβλιογραφία Αναφορές 56 3

5 ΠΕΡΙΛΗΨΗ Σε αυτήν την εργασία πρωταρχικός στόχος ήταν ο σχεδιασμός κυκλωμάτων για την παραμετρική μεταβολή της συχνότητας τετραγωνικού παλμού ρολογιού, καθώς και της παραμετρικής μεταβολής του duty cycle με χρήση της γλώσσας VHDL. Στη συνέχεια, επεκταθήκαμε παραπέρα και τέθηκε νέος στόχος πέρα από την σχεδιασμό τους. Ο επιπλέον στόχος αφορά στην παραμετροποίηση του κώδικα των κυκλωμάτων για την αναβάθμιση του, ώστε να βελτιώσει την χρηστικότητά του και να προσδώσει στον κώδικα ευελιξία και δυνατότητα επαναχρησιμοποίησης. Στην εργασία παρουσιάζονται τρεις κώδικες που αντιστοιχούν σε τρεις υλοποιήσεις κυκλωμάτων με την ίδια λειτουργία. Ένα πρόγραμμα με απλό μετρητή που υλοποιείται με χρήση αθροιστή, ένα πρόγραμμα με επίσης απλό μετρητή που υλοποιείται με D Flip- Flop και χρήση της εντολής GENERATE και ένα πρόγραμμα με χρήση μετρητή με παράλληλη φόρτωση. Τελικός στόχος της εργασίας είναι η εύρεση της βέλτιστης υλοποίησης όσον αφορά στον χώρο που δεσμεύει το κύκλωμα μέσα σε ένα FPGA και τη μέγιστη συχνότητα λειτουργίας. Με χρήση της δυνατότητας synthesis του προγράμματος του ISE, όπου και συντάχθηκε ο κώδικας, δόθηκαν στοιχεία για την διαπίστωση του βέλτιστου κυκλώματος. 4

6 ABSTRACT The main goal of this paper is the design of a circuit that will parametrically change the frequency of a digital pulse, as well as the parametrical change of its duty cycle using the VHDL language. While designing them our goal changed. Our new goal was set so we would make the code parametric as well. This way the code would be upgraded considering its reusability and flexibility. This paper shows three deferent codes correspond to three deferent implementations. The first code uses a simple counter that is implemented with the use of an adder, the second also uses a simple counter however it is implemented with D Flip-Flops and by using the GENERATE statement and lastly a code using a counter with parallel load. The final goal of the paper is to figure out the best implementation considering the space that is needed in order to implement each circuit in an FPGA as well as the maximum frequency that each circuit is can perform. Using the application synthesis that the program ISE offers, the program where the code was written, we took data to figure the best implementation. 5

7 Πολλά ευχαριστώ στον κ. Σπυρίδωνα Νικολαΐδη για την ευκαιρία που μου έδωσε να εκπονήσω την συγκριμένη εργασία καθώς και την αμέριστη συμπαράσταση και βοήθεια του. Πολλά ευχαριστώ στην οικογένεια μου και στους φίλους μου για την πολυετή στήριξη κατά τις σπουδές μου. 6

8 ΚΕΦΑΛΑΙΟ Σχετικά με την VHDL H VHDL είναι γλώσσα περιγραφής υλικού (Hardware Description Language). Περιγράφει τη συμπεριφορά ενός ηλεκτρονικού κυκλώματος ή συστήματος, του οποίου η φυσική μορφή μπορεί να υλοποιηθεί. Τα αρχικά VHDL σημαίνουν VHSIC (Very High speed Integrated Circuits) Hardware Description Language. Το πρότυπο πάνω στο οποίο βασίστηκε η VHDL κατασκευάστηκε τη δεκαετία του Η VHDL έχει σαν αντικείμενο τον σχεδιασμό του κυκλώματος (synthesis) καθώς και την προσομοίωσή του (simulation). Τέλος, αντίθετα με τις περισσότερες γλώσσες προγραμματισμού, οι εντολές της VHDL είναι συντρέχουσες και όχι ακολουθιακές. 1.2 FPGAs Ένα από τα βασικότερα χαρακτηριστικά πλεονεκτήματα για τη χρήση της VHDL είναι ότι η VHDL είναι πρότυπη, τεχνολογικά ανεξάρτητη γλώσσα, επομένως είναι επαναχρησιμοποιήσιμη. Μία από τις άμεσες εφαρμογές της VHDL είναι τα FPGAs (Field Programmable Gate Array /Επιτόπου Προγραμματιζόμενοι Πίνακες Πυλών). Τα FPGAs περιέχουν πλήθος ενσωματωμένων τμημάτων, όπως ενσωματωμένους πολλαπλασιαστές, απαριθμητές, καταχωρητές μνήμης και μονάδες ψηφιακής επεξεργασίας συστήματος (DSP). Τα συγκεκριμένα τμήματα είναι εξαιρετικά βελτιωμένα στους τομείς του χώρου και του χρόνου, εκτέλεσης μιας λειτουργίας και γι αυτόν το λόγο διευκολύνουν την εκτέλεση αριθμητικών συναρτήσεων. Η συσκευή αποτελείται από μια μήτρα από διαμορφώσιμα λογικά τμήματα (Configurable Logic Blocks, CLB), τα οποία διασυνδέονται με έναν πίνακα από μήτρες διακοπτών. Κάθε CLB αποτελείται από λογικά κελιά (slices, LE ALM). Ένα τυπικό λογικό κελί αποτελείται από 4-input LUT, από έναν πλήρη αθροιστή και ένα D-Flip Flop όπως φαίνεται στο παρακάτω σχήμα: 7

9 Σχήμα 1-Λογικό Κελί Η δομή των λογικών κελιών που έχουν την παραπάνω μορφή φαίνεται στη συνέχεια: Σχήμα 2-Δομή λογικών κελιών Τέλος, παρακάτω φαίνεται η όψη ενός FPGA της Xilinx: 8

10 Σχήμα 3-FPGA της Xilinx 1.3 Δομή της VHDL Οι βασικές ενότητες της δομής του αυτόνομου τμήματος του κώδικά της VHDL είναι οι εξής τρείς: 1. Ενότητα δήλωσης των βιβλιοθηκών στην οποία δηλώνονται οι βιβλιοθήκες που πρόκειται να χρησιμοποιηθούν στον σχεδιασμό. 2. Ενότητα Entity που καθορίζει τις επαφές εισόδου και εξόδου του κυκλώματος. 3. Architecture που αποτελεί το κύριο μέρος του κώδικα όπου γίνεται η περιγραφή του αλγορίθμου με τη χρήση της γλώσσας. 9

11 Σχήμα 4-Δομή της VHDL 10

12 ΚΕΦΑΛΑΙΟ Συντρέχων και ακολουθιακός κώδικας Η VHDL είναι γλώσσα που εν γένει συντάσσει συντρέχοντα κώδικα, δηλαδή παράλληλο. Αυτός ο κανόνας μπορεί να παρακαμφθεί με την εισαγωγή μιας διεργασίας (Process), συνάρτησης (Function) ή διαδικασίας (Procedure) και ο κώδικας να γίνει ακολουθιακός, δηλαδή σειριακός. Και σε αυτή την περίπτωση όμως το τμήμα του κώδικα που εκτελείται ακολουθιακά, θα είναι συντρέχον ως προς τον υπόλοιπο κώδικα. Ο συντρέχων κώδικας ονομάζεται και κώδικας ροής δεδομένων (dataflow code) ενώ ο ακολουθιακός ονομάζεται και κώδικας συμπεριφοράς (behavioral). Με την χρήση συντρέχοντα κώδικα μπορούμε να περιγράψουμε μόνο συνδυαστικά λογικά κυκλώματα ενώ με τη χρήση ακολουθιακού κώδικα μπορούμε κατά κύριο λόγο να περιγράψουμε ακολουθιακά λογικά κυκλώματα αλλά και συνδυαστικά λογικά κυκλώματα. o Συνδυαστική λογική Συνδυαστική λογική έχουμε όταν η έξοδος του κυκλώματος εξαρτάται αποκλειστικά από τις τρέχουσες εισόδους. Για αυτό το λόγο δεν απαιτείται χρήση μνήμης και μπορεί να υλοποιηθεί με χρήση συμβατικών λογικών πυλών. o Ακολουθιακή λογική Ακολουθιακή λογική έχουμε όταν η έξοδος εξαρτάται από προηγούμενες εισόδους. Για τον λόγο αυτό απαιτείται η χρήση στοιχείων μνήμης τα οποία και θα είναι συνδεδεμένα με έναν βρόγχο ανάδρασης με το μπλοκ της συνδυαστικής λογικής έτσι ώστε οι αποθηκευμένες καταστάσεις να επηρεάζουν την έξοδο του κυκλώματος. 11

13 Σχήμα 5 (α) συνδυαστική λογική, (β) ακολουθιακή λογική 2.2 Διεργασίες ακολουθιακού κώδικα Τα τμήματα του κώδικα της VHDL εκτελούνται ακολουθιακά μονάχα αν αποτελούν διεργασία, συνάρτηση ή διαδικασία. Στη συγκεκριμένη εργασία τα ακολουθιακά τμήματα του κώδικα συντάσσονται με διεργασίες (process). Η διεργασία χαρακτηρίζεται κυρίως από την ύπαρξη εντολών που προορίζονται για ακολουθιακό κώδικα, όπως η IF, WAIT, CASE και LOOP καθώς από την ύπαρξη μιας λίστας ευαισθησίας. Η διεργασία πρέπει να βρίσκεται στον κύριο κώδικα και εκτελείται κάθε φορά που αλλάζει η τιμή κάποιου σήματος από την λίστα ευαισθησίας. Η σύνταξη μιας διεργασίας έχει την παρακάτω μορφή: Στην παραπάνω σύνταξη χρησιμοποιούνται μεταβλητές (VARIABLES) και όχι σήματα (SIGNALS) όπως στον κώδικα, εκτός της PROCESS. Οι μεταβλητές δηλώνονται στο δηλωτικό μέρος της διεργασίας και οι αρχικές τιμές τους δεν είναι 12

14 συνθέσιμες, αλλά λαμβάνονται υπόψιν μόνο στις προσομοιώσεις. Η χρήση των ετικετών είναι προαιρετική, και μπορούμε να τους δώσουμε οποιαδήποτε λέξη μη δεσμευμένη από την VHDL. Για την σωστή λειτουργία του ακολουθιακού κυκλώματος απαιτείται η χρήση ενός σήματος χρονισμού (clock). Συνηθίζεται η χρήση της ιδιότητας EVENT για την ανίχνευση της αλλαγής του σήματος του ρολογιού. Για παράδειγμα, αν το clock είναι σήμα στην λίστα ευαισθησίας τότε η εντολή clock EVENT επιστρέφει τιμή TRUE (ΑΛΗΘΗΣ) όταν συμβαίνει αλλαγή στο clock. Η αλλαγή του clock είναι ακμοπυροδότητη (είτε στην ανερχόμενη είτε στην κατερχόμενη ακμή). 2.3 Συχνά χρησιμοποιούμενες ακολουθιακές εντολές o Εντολή IF: Η εντολή IF προορίζεται για ακολουθιακό κώδικα και χρησιμοποιείται μέσα σε μια διεργασία, συνάρτηση ή διαδικασία. Αν και η ύπαρξη της εντολής IF μπορεί να οδηγήσει στην δημιουργία μη απαραίτητου κωδικοποιητή προτεραιότητας, το εργαλείο σύνθεσης θα βελτιστοποιήσει το κύκλωμα και θα αποφύγει το επιπλέον υλικό. Η σύνταξη της IF φαίνεται παρακάτω: o 2.3.2Εντολή LOOP: Η εντολή LOOP είναι πολύ χρήσιμη όταν ένα τμήμα του κώδικα θα πρέπει να χρησιμοποιηθεί πολλές φορές. Όπως και η εντολή IF χρησιμοποιείται αποκλειστικά και μόνο μέσα σε μια διεργασία, συνάρτησης ή διαδικασία, δηλαδή αποκλειστικά και μόνο σε ακολουθιακό κώδικα. Η σύνταξη της εντολής LOOP εξαρτάται από το αν θέλουμε να εισάγουμε κάποια συνθήκη ή να βάλουμε τον βρόγχο να επαναληφθεί για κάποιο συγκεκριμένο αριθμό φορών. Θα έχουμε λοιπόν: 13

15 2.4 Συστατικό στοιχείο Το συστατικό στοιχείο (component) είναι τμήμα ενός συμβατικού κώδικα. Η δήλωση ενός τέτοιου κώδικα με τη μορφή συστατικού στοιχείου καθιστά την χρησιμοποίηση του μέσα σε ένα άλλο κύκλωμα, και επιτρέπει την δόμηση ιεραρχικών σχεδιασμών. Επίσης η χρήση του συστατικού στοιχείου μας επιτρέπει να διαμερίσουμε τον κώδικα οπότε να έχουμε την δυνατότητα κοινοχρησίας του αλλά και να τον επαναχρησιμοποιήσουμε. Συστατικά στοιχεία γίνονται συνήθως συχνά χρησιμοποιούμενα κυκλώματα, όπως πύλες AND, FLIP-FLOP, FULLADDERS κλπ. τα οποία μπορούν να τοποθετηθούν σε μια βιβλιοθήκη και να χρησιμοποιούνται κατά κόρον χωρίς να χρειάζεται να ξαναγραφτούν. Η σύνταξη ενός component είναι η εξής: Για να χρησιμοποιήσουμε ένα στοιχείο, δηλαδή για να δημιουργήσουμε στιγμιότυπο, θα πρέπει πρώτα να το δηλώσουμε, όπως φαίνεται στη παραπάνω σύνταξη. Δημιουργία στιγμιότυπου συστατικού στοιχείου γίνεται με τη παρακάτω σύνταξη: Η σύνταξη της δήλωσης είναι σαν μια δήλωση ενότητας ENTITY, δηλαδή καθορίζουμε το όνομα της κάθε θύρας, την κατάστασή της (IN/OUT κλπ.) καθώς και τον τύπο δεδομένων. Για να δημιουργήσουμε στιγμιότυπο συστατικού στοιχείου απαιτείται μια ετικέτα ακολουθούμενη από το όνομα του συστατικού στοιχείου και την εντολή PORT MAP. Η λίστα θυρών είναι μια λίστα που σχετίζει τις θύρες του συγκεκριμένου κυκλώματος με τις θύρες του προσχεδιασμένου στοιχείου, του οποίου δημιουργούμε 14

16 στιγμιότυπο. Η σχέτιση αυτή μπορεί να γίνει είτε ονομαστικά (nominal mapping) είτε με βάση τη θέση (positional mapping). 2.5 Εντολή GENERATE Η GENERATE είναι μία ακόμη συντρέχουσα εντολή. Είναι εφάμιλλη της ακολουθιακής εντολής LOOP με την έννοια ότι επιτρέπει σε ένα τμήμα του κώδικα να επαναληφθεί για ένα συγκεκριμένο αριθμό επαναλήψεων, ώστε να παράγει ορισμένες περιπτώσεις από την ίδια εργασία. Η κύρια δομή της είναι η FOR/GENERATE, με την μορφή που φαίνεται παρακάτω. Πρέπει να σημειωθεί ότι η GENERATE πρέπει να έχει ετικέτα. [ετικέτα]:for [ταυτοποιητής] ΙΝ εύρος GENERATE [Συντρέχουσες εντολές] END GENERATE; Επιπλέον υπάρχει και η μορφή IF/GENERATE. Σε αυτή την περίπτωση το ELSE δεν είναι συντακτικά δεκτό. Η IF/GENERATE μπορεί να εμφολευθεί μέσα σε μια FOR/GENERATE όπως και το αντίστροφο. Η εμφολευμένη IF/GENERATE έχει την εξής μορφή: [ετικέτα1]:for [ταυτοποιητής] ΙΝ εύρος GENERATE.. [ετικέτα2]:if [συνθήκη] GENERATE [Συντρέχουσες εντολές] END GENERATE;.. END GENERATE; 2.6 GENERIC H GENERIC είναι ένας τρόπος να ορισθεί μία γενικευμένη παράμετρος (η οποία είναι σταθερά και μπορεί να τροποποιηθεί και να προσαρμοστεί με ευκολία σε 15

17 διαφορετικές εφαρμογές). Σκοπός της GENERIC είναι να προσδώσει στον κώδικα ευελιξία και δυνατότητα επαναχρησιμοποίησης. Η GENERIC δηλώνεται στην ENTITY. Η σύνταξή της φαίνεται παρακάτω: GENERIC ([όνομα_παραμέτρου] : [τύπος_παραμέτρου] :=[τιμή_παραμέτρου]); 2.7 Προσομοίωση (Test Bench) Η προσομοίωση του κυκλώματος γίνεται με την δημιουργία ενός αρχείου Test Bench. Ένα αρχείο Test Bench, είναι ένα πρόγραμμα που λέει στον προσομοιωτή τι τιμές να δώσει στις εισόδους και τι τιμές αναμένονται στις εξόδους για αυτές τις εισόδους. Η χρήση δομών όπως οι βρόχοι (λούπες) διευκολύνει την επαναληπτική δοκιμή ενός μεγάλου αριθμού εισόδων. Το ISE παρέχει μια έτοιμη φόρμα ενός τέτοιου προγράμματος με τη δημιουργία κάθε αρχείου Test Bench, χωρίς αυτό να σημαίνει ότι ένα τέτοιου είδους αρχείο είναι απαραίτητο. 2.8 Βασικά λογικά κυκλώματα που χρησιμοποιήθηκαν Τα κύρια λογικά κυκλώματα που χρησιμοποιήθηκαν για την περιγραφή των κυκλωμάτων είναι η πύλες AND, OR, XNOR, ο αποκωδικοποιητής (DECODER), ο πολυπλέκτης (MULTIPLEXER), ο μετρητής (COUNTER) και ο μετρητής με παράλληλη φόρτωση. o Πύλη AND Η πύλη and είναι από τις βασικότερες και πολυχρησιμοποιημένες μονάδες στα ψηφιακά κυκλώματα. Η πύλη and συμπεριφέρεται σύμφωνα με τον παρακάτω πίνακα αληθείας: Ενώ το σύμβολο της πύλης είναι: Πίνακας 1-Πίνακας αληθείας πύλης AND Είσοδος Έξοδος Α Β OUTPUT

18 Σχήμα 6 o Πύλη OR Η πύλη OR είναι επίσης βασική πύλη με πίνακα αληθείας: Και σύμβολο: Πίνακας 2-Πίνακας αληθείας πύλης OR Είσοδος Έξοδος Α Β OUTPUT Σχήμα 7 o Πύλη XOR H πύλη XOR μπορεί να παραχθεί με συνδυασμό των παραπάνω πυλών και έχει πίνακα αληθείας Πίνακας 3-Πίνακας αληθείας πύλης XOR Είσοδος Έξοδος Α Β OUTPUT

19 o Αποκωδικοποιητής (Decoder) Ο αποκωδικοποιητής είναι ένα συνδυαστικό κύκλωμα που μετατρέπει κωδικοποιημένη δυαδική πληροφορία, η οποία έρχεται σε n γραμμές εισόδου, σε ισοδύναμη πληροφορία που τοποθετείται σε διακριτές γραμμές εξόδου, των οποίων το πλήθος μπορεί να είναι μέχρι 2 n. Εάν στην κωδικοποιημένη πληροφορία των n bit δεν χρησιμοποιούνται κάποιοι από τους πιθανούς συνδυασμούς των τιμών των n bit, ο αποκωδικοποιητής μπορεί ν έχει λιγότερες από 2 n εξόδους. Ο πίνακας αληθείας του αποκωδικοποιητή είναι: Πίνακας 4-Πίνακας αληθείας Decoder Είσοδοι Εξοδοι Α Β D3 D2 D1 D Το κύκλωμα σε επίπεδο πυλών ενός αποκωδικοποιητή φαίνεται παρακάτω. Σχήμα 8-Decoder 18

20 o Πολυπλέκτης (Multiplexer) Ο πολυπλέκτης είναι ένα συνδυαστικό κύκλωμα το οποίο επιλέγει δυαδική πληροφορία που έρχεται σε μια από πολλές γραμμές εισόδου και την κατευθύνει σε μια και μόνο γραμμή εξόδου. Η επιλογή μιας συγκεκριμένης γραμμής εισόδου ελέγχεται από ένα σύνολο από γραμμές επιλογής. Κανονικά, υπάρχουν 2 n γραμμές εισόδου και n γραμμές επιλογής, των οποίων οι συνδυασμοί τιμών καθορίζουν την είσοδο που επιλέγεται. Ο πίνακας λειτουργίας του πολυπλέκτη φαίνεται παρακάτω: Πίνακας 5-Πίνακας αληθείας Multiplexer Είσοδος Έξοδος A B f 0 0 C0 0 1 C1 1 0 C2 1 1 C3 Ενώ το κύκλωμα σε επίπεδο πυλών φαίνεται στo παρακάτω σχήμα: 19

21 Σχήμα 9-Multiplexer o Μετρητής (Counter) Ένας καταχωρητής ο οποίος περνάει από μια προκαθορισμένη ακολουθία καταστάσεων μετά την εφαρμογή παλμών εισόδου αποκαλείται μετρητής (counter). Οι παλμοί εισόδου μπορούν να είναι παλμοί ρολογιού ή να προέρχονται από κάποια εξωτερική πηγή και να εμφανίζονται σε τακτικά χρονικά διαστήματα ή τυχαία. Η ακολουθία των καταστάσεων μπορεί να ακολουθεί τη φυσική αρίθμηση ή οποιαδήποτε άλλη ακολουθία καταστάσεων. Ένας μετρητής που ακολουθεί τη δυαδική αρίθμηση αποκαλείται δυαδικός μετρητής. Ένας δυαδικός μετρητής των n bit αποτελείται από n flip-flop και μπορεί να μετρήσει δυαδικά από το 0 έως το 2 n -1. Η δομή ενός μετρητή φαίνεται στο παρακάτω σχήμα: 20

22 Σχήμα 10-Μετρητής (Counter) o Μετρητής με παράλληλη φόρτωση Συχνά, οι μετρητές που χρησιμοποιούνται στα ψηφιακά συστήματα απαιτούν δυνατότητα παράλληλης φόρτωσης ενός αρχικού δυαδικού αριθμού στον μετρητή, πριν από τη λειτουργία της μέτρησης. Στο σχήμα 11 παρουσιάζεται το λογικό διάγραμμα ενός καταχωρητή των 4 bit, ο οποίος έχει δυνατότητα παράλληλης φόρτωσης και μπορεί να λειτουργεί ως μετρητής. Η είσοδος ελέγχου φόρτωσης. Όταν λαμβάνει τιμή 1, απενεργοποιεί τη λειτουργία της μέτρησης και επιτρέπει τη μεταφορά δεδομένων από τις τέσσερις εισόδους δεδομένων στα τέσσερα flip-flop. Εάν και οι δύο είσοδοι ελέγχου είναι 0, οι παλμοί του ρολογιού δεν μεταβάλλουν την κατάσταση του καταχωρητή. 21

23 Σχήμα 11-Μετρητής με παράλληλη φόρτωση 2.9 Σύνθεση (Synthesis) H σύνθεση μεταφράζει μια διαδικασία, από την περιγραφή του hardware σε υψηλό επίπεδο, σε βελτιστοποιημένη εφαρμογή σε χαμηλότερου επιπέδου θεώρηση. Η συγκεκριμένη διαδικασία μπορεί να γίνει είτε από προγραμματιστή είτε από πρόγραμμα. Η λογική σύνθεση περιλαμβάνει συνδυαστικά και ακολουθιακά κυκλώματα. Με τη διαδικασία της σύνθεσης η VHDL μας παρουσιάζει τον αριθμό των στοιχείων που χρησιμοποιούνται σε μια υλοποίηση ενός κυκλώματος όπως και τη μέγιστη συχνότητα που μπορεί να λειτουργήσει αυτό. Με αυτό τον τρόπο μπορούμε να συγκρίνουμε υλοποιήσεις αλγορίθμων που εκτελούν ίδιες διαδικασίες και να επιλέξουμε την βέλτιστη όσον αφορά τις απαιτήσεις σε hardware άρα και χώρο αλλά και όσον αφορά την μέγιστη δυνατή συχνότητα λειτουργίας του κυκλώματος. 22

24 ΚΕΦΑΛΑΙΟ Παραμετρική μεταβολή συχνότητας και duty cycle του ρολογιού Από τα κυριότερα ζητούμενα της συγκεκριμένης εργασίας είναι η κατασκευή κυκλωμάτων που θα μεταβάλουν την συχνότητα και το duty cycle ενός δεδομένου παλμού παραμετρικά, δηλαδή ανάλογα με τις τιμές που θα δίνονται στις εισόδους του κυκλώματος. Τα παραπάνω κυκλώματα θα πρέπει να έχουν τρεις εισόδους και μία έξοδο. Η μία είσοδος θα ορίζει πόσοι παλμοί, δηλαδή πόσες περίοδοι θα είναι η νέα περίοδος. Η δεύτερη θα ορίζει το duty cycle, δηλαδή για πόσους παλμούς ρολογιού ο νέος παλμός θα είναι λογικό 0 και πότε θα παίρνει την τιμή λογικό 1.Έτσι, λοιπόν, οι δύο πρώτες είσοδοι θα ορίζουν τις δύο παραμέτρους του κυκλώματος. Η τρίτη είσοδος προφανώς θα πρέπει να είναι ο παλμός του ρολογιού (clock). Τέλος, η μοναδική έξοδος θα είναι το ζητούμενο σήμα. Η παραπάνω διαδικασία πραγματοποιήθηκε με, κατά βάση, δύο διαφορετικά κυκλώματα, το ένα εκ των οποίων κατά τη διαδικασία της σύνταξης του κώδικα κατασκευάζεται με 2 παραλλαγές. Τέλος, τα κυκλώματα κατασκευάζονται, αρχικά, έτσι ώστε να είναι 32 bits, να μπορεί δηλαδή να αυξηθεί η περίοδος του εισερχόμενου παλμού μέχρι και 32 φορές. 3.2 Κυκλώματα παραμετρικής μεταβολής συχνότητας και duty cycle του ρολογιού o Υλοποίηση κυκλώματος με χρήση counter χωρίς παράλληλη φόρτωση Το συγκεκριμένο κύκλωμα αποτελείται από 1 απλό δυαδικό μετρητή, 1 αποκωδικοποιητή 5x32, 31 πύλες OR, 1 πολυπλέκτη, 5 πύλες XNOR, 1 πύλη AND. Το σχηματικό του κυκλώματος φαίνεται στην επόμενη σελίδα. 23

25 Εικόνα 12-Κύκλωμα παραμετρικής μεταβολής περιόδου και duty cycle (1) 24

26 Το κύκλωμα χωρίζεται σε δύο βασικά κυκλώματα μετά τον μετρητή. Αυτό που ορίζει σε πόσους παλμούς θα γίνει reset στον μετρητή και αυτό που θα ορίζει σε πόσους παλμούς η έξοδος θα πάρει την τιμή λογικό 1. Πιο αναλυτικά, ο μετρητής παίρνει στην είσοδό του ένα clock. Η 5-bit έξοδός του αυξάνει κατά ένα κάθε φορά που λαμβάνει έναν παλμό. Η έξοδος του μετρητή στη συνέχεια κατευθύνεται στα δύο κυκλώματα. Το πρώτο κύκλωμα είναι ένα κύκλωμα ισότητας. Το συγκεκριμένο κύκλωμα αποτελείται από πύλες XNOR τόσες όσες και οι έξοδοι του counter και μία πύλη AND με την παρακάτω συνδεσμολογία. Σχήμα 13-Κύκλωμα ισότητας Το κύκλωμα θα έχει στην έξοδο λογικό 1 μόνο όταν το κάθε bit της μίας εισόδου είναι ίσο με αυτό της άλλης. Κατ επέκταση όταν ο 5-bit αριθμός της εξόδου του counter είναι ίσος με αυτόν που εισάγεται στη είσοδο period του κυκλώματος. Στην συνέχεια η έξοδος της πύλης AND συνδέεται με το reset του μετρητή. Επομένως η λειτουργία του κάτω μέρους του κυκλώματος, καθορίζει ανάλογα με την είσοδο period, σε πόσους παλμούς του ρολογιού θα επιβληθεί reset στον μετρητή ώστε η έξοδος του τελευταίου να μηδενιστεί και να αρχίσει να μετράει ξανά από το 0. Με αυτό τον τρόπο ορίζουμε μια περίοδο στην διαδικασία που θα κάνει το υπόλοιπο κύκλωμα, η οποία επαναλαμβάνεται αυτόματα. Παράλληλα με αυτή τη διαδικασία η έξοδος του μετρητή οδηγείται στην είσοδο του αποκωδικοποιητή. Ανάλογα με την είσοδο, λοιπόν, του αποκωδικοποιητή ενεργοποιείται και μία από τις εξόδους του. Πρώτα ενεργοποιείται η έξοδος που βρίσκεται κάτω στο σχήμα με την ένδειξη 0. Στην συνέχεια όταν αυξηθεί η μέτρηση του counter κατά ένα, το σήμα θα ανέβει στην αμέσως παραπάνω έξοδο του decoder. Με την ίδια λογική όσο αυξάνεται η 5-bit είσοδος του αποκωδικοποιητή, τόσο το σήμα ανεβαίνει προς τα πάνω, με ρυθμό που επιβάλλεται από το ρολόι. Για τη συμπεριφορά του κυκλώματος μετά τις OR, ξεκινάμε από πάνω προς τα κάτω. Εδώ το κάθε bit θα είναι ενεργό από τη στιγμή που θα ενεργοποιηθεί για πρώτη φορά, όταν δηλαδή η αντίστοιχη έξοδος του αποκωδικοποιητή ενεργοποιηθεί, και θα συνεχίσει να είναι ενεργό αφού η συνδεσμολογία είναι τέτοια που το κάθε bit είναι 25

27 συνδεδεμένο με OR με όλες τις παραπάνω εξόδους του decoder. H συνδεσμολογία των OR φαίνεται παρακάτω: Σχήμα 14-Συνδεσμολογία OR Τέλος ο πολυπλέκτης διαλέγει ανάλογα με την είσοδο που δίνεται (percent), ποιο από τα bits που συζητήθηκαν παραπάνω θα διαλέξει. Πρακτικά διαλέγει σε πόσους παλμούς το σήμα εξόδου θα είναι ενεργό. Έτσι ορίζοντας τον αριθμό των παλμών της νέας περιόδου και τον αριθμό των παλμών μετά από τους οποίους θα έχουμε ενεργή έξοδο, μπορούμε να μεταβάλουμε με τις δύο εισόδους την περίοδο και το duty cycle του ρολογιού. o Υλοποίηση κυκλώματος με χρήση counter με παράλληλη φόρτωση Στο δεύτερο κύκλωμα χρησιμοποιείται μετρητής με παράλληλη φόρτωση. Όπως έχει αναφερθεί το κύκλωμα σε επίπεδο πυλών του counter με παράλληλη φόρτωση είναι σαφώς πολυπλοκότερο σε σχέση με αυτό του απλού counter. Αυτή η πολυπλοκότητα, όμως, προσφέρει περισσότερες δυνατότητες. Είναι αναμενόμενο, λοιπόν, το κύκλωμα που θα ακολουθεί τον μετρητή να είναι απλούστερο από αυτό του προηγούμενου κυκλώματος. To δεύτερο κύκλωμα αποτελείται από: 1 counter με παράλληλη φόρτωση, 5 πύλες XNOR, 1 πύλη AND. To κύκλωμα φαίνεται παρακάτω: 26

28 Σχήμα 15-Κύκλωμα παραμετρικής μεταβολής περιόδου και duty cycle (2) Για τη λειτουργία του παραπάνω κυκλώματος οι είσοδοι για τον έλεγχο της εξόδου είναι διαφορετικές. Επίσης ο μετρητής και, κατ επέκταση, το κύκλωμα ισότητας θα πρέπει να είναι 6-bits για να έχει τις ίδιες δυνατότητες με το πρώτο κύκλωμα του οποίου ο μετρητής και το κύκλωμα ισότητας αντίστοιχα έχουν 5-bits. Να δούμε σε αυτό το σημείο τη λειτουργία του παραπάνω κυκλώματος. Το 6 ο bit του μετρητή όταν αυτός μετράει ξεκινώντας από το 0 θα παραμένει 0 για διάστημα 32 παλμών του ρολογιού και θα γίνεται 1 για τους επόμενους 32 παλμούς. Με τις δύο εισόδους τώρα ελέγχουμε από ποια τιμή ξεκινάει η μέτρηση και σε ποια τιμή θα ξεκινήσει η διαδικασία ξανά από την αρχή. Επομένως η τιμή που μπαίνει στην είσοδο percent είναι η διαφορά του 32 με τον αριθμό των παλμών κατά τους οποίους θέλουμε το bit της εξόδου outp να παραμένει 0. Στη συνέχεια η είσοδος period ορίζει την νέα περίοδο συνυπολογίζοντας και την τιμή 27

29 που δίνεται στην είσοδο percent. Πρακτικά είναι το άθροισμα της περιόδου που θέλουμε συν την τιμή percent. 28

30 ΚΕΦΑΛΑΙΟ 4 Σε αυτό το κεφάλαιο παρουσιάζεται κώδικας για την περιγραφή των παραπάνω κυκλωμάτων στη γλώσσα VHDL στο πρόγραμμα ISE της Xilinx. 4.1 Κώδικας για το κύκλωμα με τον απλό counter Όπως αναφέρθηκε και στο προηγούμενο κεφάλαιο το ζητούμενο της εργασίας είναι η σύγκριση υλοποιήσεων διαφορετικών κυκλωμάτων που κάνουν την ίδια δουλειά. Γι αυτό το λόγο το κύκλωμα με τον απλό μετρητή έχει δύο παραλλαγές. Συγκεκριμένα ο κώδικας για τον μετρητή του κυκλώματος γράφεται στην μία περίπτωση περιγράφοντας το κύκλωμα με τα D Flip-Flops και στην άλλη περίπτωση σε πιο υψηλό επίπεδο με τη χρήση ADDER. o Κώδικας counter με χρήση adder Ο κώδικας σε αυτή την περίπτωση είναι απλός επειδή η σύνταξη του κώδικα του counter γίνεται σε υψηλό επίπεδο προγραμματισμού. Ο κώδικας συγκεκριμένα είναι: process(clk,reset,fort,period) variable outp1 : std_logic_vector (5 downto 0); begin if (reset='1') then outp1:=fort; elsif (period=outp1) then outp1:=fort; elsif (clk' event and clk='1') then outp1:=outp1+"000001"; if (outp1="111111") then outp1:="000000"; end if; end if; end process; Η εντολή If είναι ακολουθιακή εντολή, πράγμα που μας επιβάλει να την συντάξουμε μέσα σε process. Η έξοδος του counter δεν είναι και η έξοδος του κυκλώματος πράγμα που σημαίνει ότι η έξοδος του πρώτου θα είναι variable. H εμφωλευμένη if συντάσσεται ώστε να ορίζεται ο πορεία του προγράμματος εάν ο μετρητής φτάσει στο άνω όριο της μέτρησής του. o Κώδικας counter με D Flip-Flop Ο κώδικας για counter με D flip-flop είναι χαμηλότερου επιπέδου σε σχέση με αυτόν με τον adder. Είναι αναμενόμενο να είναι εκτενέστερος και πολυπλοκότερος. Για την σύνταξή του χρησιμοποιούμε την εντολή GENERATE. Συγκεκριμένα συντάσσουμε αρχικά σε ένα component τον κώδικα που περιγράφει τη συμπεριφορά ενός D flip-flop. 29

31 Στη συνέχεια με τη χρήση της εντολής GENERATE παράγουμε τα D flip-flop 5 φορές με την κατάλληλη συνδεσμολογία. Η συνδεσμολογία φαίνεται στο σχήμα 10 στο δεύτερο κεφάλαιο. Ο κώδικας για το D flip-flop είναι ο εξής: library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity d_ff is Port ( clk : in STD_LOGIC; reset : in std_logic; d : in STD_LOGIC; q : out STD_LOGIC; nq : out STD_LOGIC); end d_ff; architecture Behavioral of d_ff is begin d_ffp:process (clk,reset) begin if reset='1' then q<='0'; nq<='1'; elsif clk='1' and clk'event and reset='0' then q<=d; nq<=not d; end if; end process; end Behavioral; Ο παραπάνω κώδικας εισάγεται ως component στον κώδικα του counter μέσα στην generate ώστε τελικά ο κώδικας του counter να πάρει τη μορφή: library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity counter_generate_comp is Port ( clock : in STD_LOGIC; reset : in std_logic; 30

32 q : out STD_LOGIC_VECTOR (4 downto 0)); end counter_generate_comp; architecture Behavioral of counter_generate_comp is signal s: std_logic_vector (5 downto 0); begin s(0)<=clock; gen: for i in 0 to 4 generate d_ff_1:entity work.d_ff PORT MAP( reset => reset, clk => s(i), d => s(i+1), q =>q(i), nq => s(i+1) ); end generate; end Behavioral; Ο παραπάνω κώδικας είναι για counter 5-bit, ώστε το κύκλωμά μας να είναι 32-bit. Μέσα στην GENERATE εισάγουμε τον component του D flip-flop και αντιστοιχούμε τις εισόδους και εξόδους του flip-flop με τους ακροδέκτες του υπόλοιπου κυκλώματος όπως φαίνεται στο σχήμα 10. o Κώδικας για το κύκλωμα ισότητας Προγραμματίζοντας στην VHDL ζητούμενο είναι ο προγραμματισμός να γίνεται σε όσο το δυνατό υψηλότερο επίπεδο. Επομένως το κύκλωμα ισότητας θα προγραμματιστεί χρησιμοποιώντας τους τελεστές που έχει στη βιβλιοθήκη της η γλώσσα και μπορούμε να χρησιμοποιήσουμε. Τον τελεστή ισότητας = θα τον χρησιμοποιήσουμε σε μια if για να ορίσουμε την συνθήκη που όταν θα είναι αληθής θα επιβάλει στον μετρητή reset όπως φαίνεται από κύκλωμα. Ο κώδικας επομένως θα είναι ο εξής: if (count=period) then reset1:='0'; else reset1:='1'; end if; o Κώδικας για αποκωδικοποιητή 31

33 Ο κωδικοποιητής είναι 5x32 και ο κώδικάς του είναι επίσης απλός και είναι εύκολο να βρεθεί στη βιβλιογραφία. Η μορφή του φαίνεται παρακάτω: for i in 4 downto 0 loop if (count(i)='1') then sel1:=2*sel1+1; else sel1:=2*sel1; end if; end loop; dec1(sel1):='1' Στη συνέχεια ακολουθούν τα bit μετά τις OR o Κώδικας για το σήμα μετά τις OR Στον κώδικα το όνομα της μεταβλητής που επιλέχθηκε για την έξοδο των OR είναι dec2 και είναι μία μεταβλητή 32-bit. Το τριακοστό δεύτερο bit της μεταβλητής ταυτίζεται με αυτό του dec1 της εξόδου του αποκωδικοποιητή και αυτό το γράφουμε στην αρχή του προγράμματος. Η έξοδος κάθε OR είναι η αντίστοιχη έξοδος του αποκωδικοποιητή, OR η ακριβώς επόμενη έξοδος. Αυτό ισχύει για τις 31 OR και επειδή είναι ακριβώς η ίδια συνθήκη χρησιμοποιούμε την εντολή for. dec2(31):=dec1(31); for i in 30 downto 0 loop dec2(i):=dec2(i+1) or dec1(i); end loop; o Έξοδος κυκλώματος ( Έξοδος πολυπλέκτη) Η έξοδος του πολυπλέκτη είναι και η έξοδος του κυκλώματος. Ο πολυπλέκτης όπως και τα προηγούμενα στοιχεία του κυκλώματος προγραμματίζεται και αυτός σε υψηλό επίπεδο. Από τη στιγμή που το κύκλωμα είναι πεπερασμένο ( 32-bit) η έξοδος του πολυπλέκτη θα προγραμματιστεί όπως προτείνεται από την βιβλιογραφία, δηλαδή με χρήση της εντολής CASE/WHEN. Η σύνταξη της εντολής είναι απλή και φαίνεται παρακάτω: case percent is when "00000"=> outp<=dec2(0); when "00001"=> outp<=dec2(1); when "00010"=> outp<=dec2(2); when "00011"=> outp<=dec2(3); when "00100"=> outp<=dec2(4); when "00101"=> outp<=dec2(5); 32

34 when "00110"=> outp<=dec2(6); when "00111"=> outp<=dec2(7); when "01000"=> outp<=dec2(8); when "01001"=> outp<=dec2(9); when "01010"=> outp<=dec2(10); when "01011"=> outp<=dec2(11); when "01100"=> outp<=dec2(12); when "01101"=> outp<=dec2(13); when "01110"=> outp<=dec2(14); when "01111"=> outp<=dec2(15); when "10000"=> outp<=dec2(16); when "10001"=> outp<=dec2(17); when "10010"=> outp<=dec2(18); when "10011"=> outp<=dec2(19); when "10100"=> outp<=dec2(20); when "10101"=> outp<=dec2(21); when "10110"=> outp<=dec2(22); when "10111"=> outp<=dec2(23); when "11000"=> outp<=dec2(24); when "11001"=> outp<=dec2(25); when "11010"=> outp<=dec2(26); when "11011"=> outp<=dec2(27); when "11100"=> outp<=dec2(28); when "11101"=> outp<=dec2(29); when "11110"=> outp<=dec2(30); when "11111"=> outp<=dec1(31); when others=> null; end case; o Τελική μορφή του προγράμματος Τελευταίο βήμα για τη σύνταξη του κώδικα είναι η ένωση των παραπάνω κομματιών για την υλοποίηση του κυκλώματος. Στον κώδικα επίσης έχουν προστεθεί ορισμένες επιπλέον έξοδοι μετά από κάθε στοιχείο του κυκλώματος ώστε να μπορούμε να τεστάρουμε τη συμπεριφορά του στην πορεία προς την έξοδο library IEEE; use IEEE.STD_LOGIC_1164.ALL; use ieee.std_logic_unsigned.all; entity parametriki_metaboli is Port ( clk : in STD_LOGIC; 33

35 reset : in STD_LOGIC; period : in STD_LOGIC_VECTOR (4 downto 0);--Arithmos palmon pou tha apoteloun thn nea periodo percent : in STD_LOGIC_VECTOR (4 downto 0);--Arithmos palmon pometa ton opoio tha exw energh thn exodo outpcntr : out std_logic_vector (4 downto 0);--Eksodos gia test leitougias tou counter outpdec1 : out std_logic_vector (31 downto 0);--Eksodos gia test leitourgias tou decoder reset2 : out std_logic;--eksodos gia test leitourgias tou automatou reset outp : out STD_LOGIC); end parametriki_metaboli; architecture Behavioral of parametriki_metaboli is begin process(clk, reset, period, percent) variable count : std_logic_vector (4 downto 0);--exodos counter variable dec1 : std_logic_vector(31 downto 0);--exodos decoder variable sel1 : integer range 0 to 31; --arithmos eksodou counter variable reset1 : std_logic;--automato reset variable dec2 : std_logic_vector (31 downto 0);--eksodos ton or meta ton decoder begin dec1:= (others=>'0'); sel1:= 0; reset2<=reset1; if (reset='1' or reset1='1') then--arxh Coutner count:="00000"; elsif (reset1='0' and clk' event and clk='1') then count:="00000"; elsif (clk' event and clk='1' and reset1='0') then count:=count+"00001"; if (count="11111") then count:="00000"; end if; end if;--telos Counter outpcntr<=count;--test coutner for i in 4 downto 0 loop--arxh decoder if (count(i)='1') then sel1:=2*sel1+1; else sel1:=2*sel1; end if; 34

36 end loop; dec1(sel1):='1';--telos decoder outpdec1<=dec1;--test decoder dec2(31):=dec1(31);--o dec1(31) den exei or ara tautizetai me to dec2(31) for i in 30 downto 0 loop--arxh eksodou twn or dec2(i):=dec2(i+1) or dec1(i); end loop;-- Telos eksodou twn or case percent is--arxh eksodou mux when "00000"=> outp<=dec2(0); when "00001"=> outp<=dec2(1); when "00010"=> outp<=dec2(2); when "00011"=> outp<=dec2(3); when "00100"=> outp<=dec2(4); when "00101"=> outp<=dec2(5); when "00110"=> outp<=dec2(6); when "00111"=> outp<=dec2(7); when "01000"=> outp<=dec2(8); when "01001"=> outp<=dec2(9); when "01010"=> outp<=dec2(10); when "01011"=> outp<=dec2(11); when "01100"=> outp<=dec2(12); when "01101"=> outp<=dec2(13); when "01110"=> outp<=dec2(14); when "01111"=> outp<=dec2(15); when "10000"=> outp<=dec2(16); when "10001"=> outp<=dec2(17); when "10010"=> outp<=dec2(18); when "10011"=> outp<=dec2(19); when "10100"=> outp<=dec2(20); when "10101"=> outp<=dec2(21); when "10110"=> outp<=dec2(22); when "10111"=> outp<=dec2(23); when "11000"=> outp<=dec2(24); when "11001"=> outp<=dec2(25); when "11010"=> outp<=dec2(26); when "11011"=> outp<=dec2(27); when "11100"=> outp<=dec2(28); when "11101"=> outp<=dec2(29); when "11110"=> outp<=dec2(30); when "11111"=> outp<=dec1(31); when others=> null; end case;--telos eksodou mux 35

37 end process ; end Behavioral; if (count=period) then--arxh automatou reset reset1:='1'; else reset1:='0'; end if;--telos automatou reset Όμοιος και με τον παραπάνω είναι ο κώδικας που χρησιμοποιεί για μετρητή αυτόν με την GENERATE, αντικαθιστώντας το κομμάτι του μετρητή στον κώδικα, με τον αντίστοιχο με αυτόν που συντάσσεται με την εντολή GENERATE. 4.2 Κώδικας για το κύκλωμα με counter με παράλληλη φόρτωση Ο μετρητής με παράλληλη φόρτωση είναι πολυπλοκότερο στοιχείο από τον απλό. Επομένως, όπως διευκρινίστηκε για το σχηματικό του κυκλώματος, ο κώδικας για την υλοποίηση του κυκλώματος θα είναι αντίστοιχα απλούστερος από τον πρώτο. Όπως φαίνεται και από το σχήμα 15 το κύκλωμα αποτελείται από έναν μετρητή με παράλληλη φόρτωση και ένα κύκλωμα ισότητας. Το κύκλωμα ισότητας παρουσιάστηκε αναλυτικά στο προηγούμενο κύκλωμα. Ο κώδικας για τον μετρητή είναι όμοιος με αυτόν που παρουσιάστηκε προηγουμένως, με ορισμένες διαφορές. o Κώδικας counter με παράλληλη φόρτωση process(clk,reset,fort,period) constant constant1 : std_logic_vector (5 downto 0) := (others=>'1'); variable outp1 : std_logic_vector (5 downto 0); begin if (reset='1') then outp1:=fort; elsif (period=outp1) then outp1:=fort; elsif (clk' event and clk='1') then outp1:=outp1+'1'; if (outp1=constant1) then outp1:=(others=>'0'); end if; end if; end process; 36

38 o Τελική μορφή προγράμματος Για να ολοκληρωθεί το πρόγραμμα χρειάζεται απλά να προσθέσουμε στον κώδικα το κύκλωμα ισότητας. Η τελική μορφή είναι: library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity parametriki_parallili is generic (n: integer :=6); Port ( clk : in STD_LOGIC; reset : in STD_LOGIC; fort : in STD_LOGIC_VECTOR (n-1 downto 0); period : in STD_LOGIC_VECTOR (n-1 downto 0); count : out STD_LOGIC_VECTOR (n-1 downto 0); outp : out STD_LOGIC); end parametriki_parallili; architecture Behavioral of parametriki_parallili is begin process(clk,reset,fort,period) constant constant1 : std_logic_vector (5 downto 0) := (others=>'1'); variable outp1 : std_logic_vector (5 downto 0); begin if (reset='1') then--arxh Coutner outp1:=fort; elsif (period=outp1) then outp1:=fort; elsif (clk' event and clk='1') then outp1:=outp1+'1'; if (outp1=constant1) then outp1:=(others=>'0'); end if; end if;--telos Counter count<=outp1; outp<=outp1(5); end process; end Behavioral; 37

39 4.3 Παραμετροποίηση κυκλωμάτων Επόμενο βήμα στην εργασία είναι η αναβάθμιση της χρηστικότητας του κυκλώματος με την παραμετροποίησή του. Για την παραμετροποίηση θα χρησιμοποιήσουμε την εντολή GENERIC πού όπως έχει αναφερθεί και στην παράγραφο 2.6, σκοπός της είναι να προσδώσει στον κώδικα ευελιξία και δυνατότητα επαναχρησιμοποίησης. Μετά τη χρήση της GΕNERIC το κύκλωμα θα είναι όχι πια 32-bit αλλά n-bit. Ο αριθμός n ορίζεται στην αρχή του κώδικα πριν την ENTITY όπως έχουμε ήδη δει στην σύνταξη της εντολής. Στον κώδικα του πρώτου κυκλώματος με τον απλό μετρητή θα χρειαστεί να γίνουν ορισμένες μετατροπές λόγω του multiplexer. Ο κώδικας του multiplexer έχει συνταχθεί με CASE/WHEN χρησιμοποιώντας 32 WHEN. Οι 32 αυτές εντολές πρέπει να γραφτούν μία- μία και δεν μπορούν να μπουν σε μία FOR καθώς δεν το επιτρέπει η γλώσσα. Το τελευταίο αυτό στοιχείο εμποδίζει την παραμετροποίηση του multiplexer. Επομένως ο κώδικας του πολυπλέκτη πρέπει να ξαναγραφεί με διαφορετικό τρόπο έτσι ώστε να είναι ανεξάρτητος από τον αριθμό των bits. o Παραμετροποίηση πολυπλέκτη (multiplexer) Για την σύνταξη του εναλλακτικού κώδικα του πολυπλέκτη, χρησιμοποιείται η βιβλιοθήκη ieee.std_logic_unsigned. Η συγκεκριμένη βιβλιοθήκη μας επιτρέπει ανάμεσα σε άλλα, την χρήση της εντολής conv_integer(x). Σκοπός της εντολής αυτής είναι η μετατροπή ενός δυαδικού αριθμού σε δεκαδικό. Στην περίπτωσή μας, μάς βοηθάει ώστε να συμπυκνώσουμε τις 32 WHEN σε μια γραμμή κώδικα με τον εξής τρόπο: outp<=dec2(conv_integer(percent)); o Παραμετροποίηση του κώδικα του κυκλώματος με απλό counter H διαδικασία παραμετροποίησης του κώδικα, πέρα από το κομμάτι του πολυπλέκτη που συζητήθηκε παραπάνω, είναι απλή διαδικασία με απλή εφαρμογή της εντολής GENERIC. Μετά την εφαρμογή αντικαθιστούμε τις 5-bit μεταβλητές και εισόδους με n- bit και τις 32-bit μεταβλητές και εισόδους με 2**n-bit. Ο τελεστής ** στην γλώσσα είναι ο τελεστή ύψωσης σε δύναμη, δηλαδή 2**n είναι 2 n. Επιπρόσθετα, στα σημεία του κώδικα που προσδίδονται τιμές στις μεταβλητές οι οποίες είναι οι ακραίες ( και ) θα πρέπει να αντικατασταθούν με την εντολή (others => 0 ) και (others=> 1 ). Η μορφή του κώδικα μετά τις τροποποιήσεις είναι η παρακάτω: library IEEE; use IEEE.STD_LOGIC_1164.ALL; use ieee.std_logic_unsigned.all; 38

40 entity param is generic (n: integer :=5); port ( clk : in STD_LOGIC; reset : in STD_LOGIC; period : in STD_LOGIC_VECTOR (n-1 downto 0);--Arithmos palmon pou tha apoteloun thn nea periodo percent : in STD_LOGIC_VECTOR (n-1 downto 0);--Arithmos palmon pometa ton opoio tha exw energh thn exodo outpcntr : out std_logic_vector (n-1 downto 0);--Eksodos gia test leitougias tou counter outpdec1 : out std_logic_vector (2**n-1 downto 0);--Eksodos gia test leitourgias tou decoder reset2 : out std_logic;--eksodos gia test leitourgias tou automatou reset outp : out STD_LOGIC); end param; architecture Behavioral of param is signal s: std_logic_vector (n downto 0); signal count: std_logic_vector (n-1 downto 0); signal reset3: std_logic; begin s(0)<=clk; gen: for i in 0 to n-1 generate d_ff_1:entity work.d_ff PORT MAP( reset => reset3, rreset => reset, clk => s(i), d => s(i+1), q =>count(i), nq => s(i+1) ); end generate; process(clk, reset, period, percent, count, reset3) -- variable count : std_logic_vector (n-1 downto 0);--exodos counter variable dec1 : std_logic_vector(2**n-1 downto 0);--exodos decoder variable sel1 : integer range 0 to 2**n-1; --arithmos eksodou counter variable reset1 : std_logic;--automato reset 39

41 variable dec2 : std_logic_vector (2**n-1 downto 0);--eksodos ton or meta ton decoder constant constant1 : std_logic_vector (n downto 0) := (others=>'0'); begin dec1:= (others=>'0'); sel1:= 0; dec2(31) outpcntr<=count;--test coutner for i in n-1 downto 0 loop--arxh decoder if (count(i)='1') then sel1:=2*sel1+1; else sel1:=2*sel1; end if; end loop; dec1(sel1):='1';--telos decoder outpdec1<=dec1;--test decoder dec2(2**n-1):=dec1(2**n-1);--o dec1(31) den exei or ara tautizetai me to for i in 2**n-2 downto 0 loop--arxh eksodou twn or dec2(i):=dec2(i+1) or dec1(i); end loop; outp<=dec2(conv_integer(percent)); if (count=period) then--arxh automatou reset reset1:='1'; else reset1:='0'; end if;--telos automatou reset reset2<=reset1; reset3<=reset1; end process ; end Behavioral; 40

42 o Παραμετροποίηση κώδικα του κυκλώματος με μετρητή με παράλληλη φόρτωση Η διαδικασία παραμετροποίησης του δεύτερου κώδικα είναι όμοια με την προηγούμενη. Πρέπει απλά να προσθέσουμε ότι στις συνθήκες της IF δεν γίνεται να έχουμε ισότητα με (others=> 1 ). Για να παρακάμψουμε αυτό το εμπόδιο ορίζουμε μία σταθερά constant και της προσδίδουμε την τιμή (others=> 1 ). Το πρόγραμμα μπορεί να τρέξει, όταν στη συνθήκη βάλουμε την σταθερά μας. Η τελική του μορφή είναι η παρακάτω: library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity parametriki_parallili is generic (n: integer :=6); Port ( clk : in STD_LOGIC; reset : in STD_LOGIC; fort : in STD_LOGIC_VECTOR (n-1 downto 0); period : in STD_LOGIC_VECTOR (n-1 downto 0); count : out STD_LOGIC_VECTOR (n-1 downto 0); outp : out STD_LOGIC); end parametriki_parallili; architecture Behavioral of parametriki_parallili is begin process(clk,reset,fort,period) constant constant1 : std_logic_vector (n-1 downto 0) := (others=>'1'); variable outp1 : std_logic_vector (n-1 downto 0); begin if (reset='1') then--arxh Coutner outp1:=fort; elsif (period=outp1) then outp1:=fort; elsif (clk' event and clk='1') then outp1:=outp1+'1'; if (outp1=constant1) then outp1:=(others=>'0'); end if; end if;--telos Counter count<=outp1; 41

43 outp<=outp1(n-1); end process; end Behavioral; 42

44 ΚΕΑΛΑΙΟ 5 Για την προσομοίωση, θα δημιουργηθεί ένα αρχείο Test Bench. Στα Test Bench δεν δηλώνονται καθόλου θύρες στο κομμάτι της entity. Αυτό είναι λογικό αφού η μονάδα δε θα έχει επικοινωνία με το περιβάλλον, δεν παίρνει εισόδους από κάπου ούτε βγάζει εξόδους. Ξεκινώντας στην ενότητα αρχιτεκτονικής, πριν το Begin, δηλώνεται η μονάδα που πρόκειται να προσομοιωθεί. Στη συνέχεια δηλώνονται τα απαραίτητα σήματα που θα συνδεθούν στις θύρες του συστατικού στοιχείου. Για τη δημιουργία ρολογιού ορίζεται αυτόματα από το πρόγραμμα, σε μία process, μια σταθερά χρόνου «clock_period» και της αναθέτουμε μία τιμή χρόνου η οποία θα είναι και η περίοδος του ρολογιού. Στη συνέχεια επιβάλουμε η είσοδος clock να είναι 0 για το μισό αυτής της περιόδου και 1 για το υπόλοιπο ώστε να δημιουργηθεί συμμετρικός τετραγωνικός παλμός. 5.1 Σύνταξη κώδικα προσομοίωσης κυκλώματος με απλό counter Για να γίνεi η προσομοίωση θα πρέπει στην process stim_proc αρχικά να επιβάλουμε την τιμή λογικό 1 στο reset για ένα χρονικό διάστημα ώστε να μηδενιστεί η έξοδος του μετρητή. Έπειτα από αυτό το χρονικό διάστημα που ορίζεται με την εντολή wait for 100 ns δίνουμε στο reset την τιμή 0 για να ξεκινήσει η διαδικασία μέτρησης από το μετρητή. Τέλος, δίνουμε τιμές στις δύο εισόδους που έχουν μείνει, ανάλογα με το αποτέλεσμα που θέλουμε να προκύψει από το κύκλωμα. H μορφή του behavior για τον κώδικα του μετρητή με GENERATE και με IF είναι ίδια. Επομένως έχουμε για τα δύο προγράμματα. LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY parametriki_metaboli_1_tb IS END parametriki_metaboli_1_tb; ARCHITECTURE behavior OF parametriki_metaboli_1_tb IS COMPONENT parametriki_metaboli_1 PORT( clk : IN std_logic; reset : IN std_logic; period : IN std_logic_vector(4 downto 0); percent : IN std_logic_vector(4 downto 0); outpcntr : OUT std_logic_vector(4 downto 0); 43

45 outpdec1 : OUT std_logic_vector(31 downto 0); reset2 : OUT std_logic; outp : OUT std_logic ); END COMPONENT; --Inputs signal clk : std_logic := '0'; signal reset : std_logic := '0'; signal period : std_logic_vector(4 downto 0) := (others => '0'); signal percent : std_logic_vector(4 downto 0) := (others => '0'); --Outputs signal outpcntr : std_logic_vector(4 downto 0); signal outpdec1 : std_logic_vector(31 downto 0); signal reset2 : std_logic; signal outp : std_logic; -- Clock period definitions constant clk_period : time := 10 ns; BEGIN -- Instantiate the Unit Under Test (UUT) uut: parametriki_metaboli_1 PORT MAP ( clk => clk, reset => reset, period => period, percent => percent, outpcntr => outpcntr, outpdec1 => outpdec1, reset2 => reset2, outp => outp ); -- Clock process definitions clk_process :process begin clk <= '0'; wait for clk_period/2; clk <= '1'; wait for clk_period/2; 44

46 end process; -- Stimulus process stim_proc: process begin -- hold reset state for 100 ns. reset<='1'; wait for 100 ns; --wait for clk_period*10; reset<='0'; -- insert stimulus here period<="00111"; percent<="00100"; wait; end process; END; 5.2 Σύνταξη κώδικα προσομοίωσης κυκλώματος με counter με παράλληλη φόρτωση Η σύνταξη του κώδικα για το κύκλωμα με τον μετρητή με παράλληλη φόρτωση είναι ίδια με αυτή που περιγράφεται στην παράγραφο 5.3 με μόνη διαφορά την ανάθεση τιμών στις δύο παραμέτρους που μεταβάλουν την έξοδο. Για να έχουμε ίδιο αποτέλεσμα στην έξοδο με το προηγούμενο κύκλωμα θα πρέπει να αναθέσουμε διαφορετικές τιμές στις εισόδους στο Test Bench. Ο κώδικας σε αυτή την περίπτωση θα είναι: LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY parametriki_paralili_f_tb IS END parametriki_paralili_f_tb; ARCHITECTURE behavior OF parametriki_paralili_f_tb IS -- Component Declaration for the Unit Under Test (UUT) COMPONENT parametriki_parallili 45

47 PORT( clk : IN std_logic; reset : IN std_logic; fort : IN std_logic_vector(5 downto 0); period : IN std_logic_vector(5 downto 0); count : OUT std_logic_vector(5 downto 0); outp : OUT std_logic ); END COMPONENT; --Inputs signal clk : std_logic := '0'; signal reset : std_logic := '0'; signal fort : std_logic_vector(5 downto 0) := (others => '0'); signal period : std_logic_vector(5 downto 0) := (others => '0'); --Outputs signal count : std_logic_vector(5 downto 0); signal outp : std_logic; -- Clock period definitions constant clk_period : time := 10 ns; BEGIN -- Instantiate the Unit Under Test (UUT) uut: parametriki_parallili PORT MAP ( clk => clk, reset => reset, fort => fort, period => period, count => count, outp => outp ); -- Clock process definitions clk_process :process begin clk <= '0'; wait for clk_period/2; clk <= '1'; wait for clk_period/2; 46

48 end process; -- Stimulus process stim_proc: process begin -- hold reset state for 100 ns. reset<='1'; wait for 100 ns; reset<='0'; period<="101101"; fort<="001111"; -- wait for clk_period*10; wait; end process; END; 5.3 Προσομοιώσεις Για να τεστάρουμε τις δυνατότητες του κώδικα και του κυκλώματος δώσαμε διάφορες τιμές στις εισόδους και λάβαμε τις εξόδους την τελική και τις διάφορες εξόδους που έχουμε για τεστ -. Επιλέξαμε ορισμένες τυχαίες τιμές και ακραίες ώστε να δούμε την συμπεριφορά του κυκλώματος στα όριά του. Επίσης δώσαμε και τιμές συγκεκριμένες ώστε ο παλμός να βγει συμμετρικός, δηλαδή με duty cycle 50%. Τα τεστ γίνονται για 32-bit κύκλωμα. Τα αποτελέσματα που πήραμε είναι: Σχήμα 16 (Περίοδος:x8, duty cycle:50%) 47

49 Σχήμα 17 (Περίοδος:x16, duty cycle:50%) Σχήμα 18 (Περίοδος:x30, duty cycle:50%) 48

50 Σχήμα 19 (Περίοδος:x20, duty cycle:75%) Σχήμα 20 (Περίοδος:x20, duty cycle:25%) Η παρακάτω εικόνα έχει την μέγιστη δυνατή περίοδο για 32-bit κύκλωμα και το ελάχιστο δυνατό duty cycle 3%: 49

51 Σχήμα 21 (Περίοδος:x31, duty cycle:3%) Η επόμενη εικόνα έχει τη μέγιστη δυνατή περίοδο για 32-bit κύκλωμα και το μέγιστο δυνατό duty cycle 97%. Σχήμα 22 (Περίοδος:x31, duty cycle:97%) Και οι τρεις υλοποιήσεις, δίνουν γενικά τα ίδια αποτελέσματα. Το μόνο μειονέκτημα που έχει το κύκλωμα με την παράλληλη φόρτωση είναι ότι μετά το επιβαλλόμενο reset στην αρχή της διαδικασίας ο μετρητής πρέπει να μετρήσει την πρώτη φορά από το 0 και όχι από την τιμή που του δίνεται να φορτώσει. Επομένως έχουμε μια καθυστέρηση στην 50

52 ανταπόκριση του αποτελέσματος κατά 32 παλμούς του ρολογιού. Έπειτα το πρόγραμμα ανταποκρίνεται κανονικά. Παρακάτω φαίνεται ενδεικτικά μία προσομοίωση του κυκλώματος με παράλληλη φόρτωση: Σχήμα 22-(Καθυστέρηση απόκρισης κυκλώματος με παράλληλη φόρτωση) Τέλος, πρέπει να επισημάνουμε ένα σταθερό σφάλμα που παρατηρείται σε όλα τα τεστ λόγω αδυναμίας προσομοίωσης του προγράμματος. Στην πραγματικότητα το αυτόματο reset γίνεται για απειροελάχιστο χρονικό διάστημα καθώς η ίδια του η δράση, όταν δηλαδή αυτό γίνει 1, αναιρεί την τιμή του και την κάνει 0. Αυτό στο Test Bench δεν μπορεί να προσομοιωθεί καθώς το ελάχιστο χρονικό διάστημα που μπορεί να δεχθεί το πρόγραμμα είναι μισή περίοδος ρολογιού όπως φαίνεται και στο παρακάτω σχήμα Σχήμα 23-Σφάλμα λόγω reset 51

53 Από τη στιγμή που το reset διαρκεί μισό clock περισσότερο, η διάρκεια κατά την οποία ο παλμός στην έξοδο βρίσκεται στο 0, κρατάει επίσης μισό clock περισσότερο. Το σφάλμα γίνεται πιο μεγάλο όσο μειώνεται η περίοδος και το duty cycle παίρνει ακραίες τιμή, δηλαδή όσο πλησιάζει στο 0 και 100%. Αυτό το σφάλμα μπορεί να λυθεί αλγοριθμικά ώστε να παίρνουμε μια καλή εικόνα στην προσομοίωση. Το κύκλωμα όμως λειτουργεί στην πραγματικότητα κανονικά και αυτός είναι ο σκοπός της εργασίας. 52

54 ΚΕΦΑΛΑΙΟ 6 H σύγκριση των κυκλωμάτων γίνεται σε δύο τομείς. Πρώτα, στον χώρο που δεσμεύει η κάθε υλοποίηση στο FPGA και κατ επέκταση και οι απαιτήσεις του σε hardware, και έπειτα, η μέγιστη συχνότητα για την οποία το κάθε κύκλωμα μπορεί να λειτουργεί. 6.1 Σύγκριση κυκλωμάτων για απαιτήσεις χώρου και hardware Κάνοντας σύνθεση στα τρία προγράμματα προκύπτουν τρεις πίνακες με τις απαιτήσεις του κάθε κυκλώματος. H σύγκριση γίνεται πάνω στα απαιτούμενα slices, τα flip-flops, τα LUTs και τα IOBs. Να δούμε όμως τι είναι όλα αυτά. Οι λογικοί πόροι είναι πόροι σε ένα FPGA που μπορούν να εκτελέσουν λογικές πράξεις. Οι λογικοί πόροι είναι ομαδοποιημένοι σε slices ώστε να δημιουργούν διαμορφώσιμα λογικά blocks. Ένα slice περιέχει έναν αριθμό από LUTs, flip-flops και multiplexers. Ένα LUT είναι μία συλλογή από λογικές πύλες συνδεδεμένες με το FPGA. Τα LUTs αποθηκεύουν μία προκαθορισμένη λίστα από outputs για κάθε συνδυασμό από inputs και παρέχουν ένα γρήγορο τρόπο για να ανακτήσει το output από μία λογική πράξη. Το flip-flop είναι ένα κύκλωμα που στην έξοδό του μπορεί να έχει δύο σταθερές καταστάσεις και αντιπροσωπεύει ένα bit. Ο multiplexer, όπως έχουμε ήδη αναφέρει, είναι ένα κύκλωμα που επιλέγει ανάμεσα σε δύο ή περισσότερες εισόδους και μεταφέρει στην έξοδο την επιλεγμένη είσοδο. Τα IO blocks είναι ειδικά λογικά blocks στην περιφέρεια της συσκευής για εξωτερικές συνδέσεις. Οι πίνακες φαίνονται παρακάτω: Κύκλωμα με counter με παράλληλη φόρτωση ΠΙΝΑΚΑΣ 4 53

55 Κύκλωμα με απλό counter με χρήση εντολής generate ΠΙΝΑΚΑΣ 5 Κύκλωμα με απλό counter με χρήση adder ΠΙΝΑΚΑΣ Σύγκριση κυκλωμάτων για όριο μέγιστης συχνότητας λειτουργίας Οι μέγιστες συχνότητες του κάθε κυκλώματος όπως δίνονται από το σύνθεση του προγράμματος είναι 1. Κύκλωμα με counter με παράλληλη φόρτωση : 199,045 MHz 2. Κύκλωμα με απλό counter με χρήση εντολής generate : 400,320 MHz 3. Κύκλωμα με απλό counter με χρήση adder : 312,449 MHz 54

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

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Ακολουθιακός Κώδικας «Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο 2016-2017 Ακολουθιακός Κώδικας Παρασκευάς Κίτσος http://diceslab.cied.teiwest.gr Επίκουρος Καθηγητής Tμήμα Μηχανικών Πληροφορικής ΤΕ E-mail: pkitsos@teimes.gr

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

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

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Μηχανές Πεπερασμένων Καταστάσεων «Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο 2016-2017 Μηχανές Πεπερασμένων Καταστάσεων Παρασκευάς Κίτσος http://diceslab.cied.teiwest.gr Επίκουρος Καθηγητής Tμήμα Μηχανικών Πληροφορικής ΤΕ

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

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

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

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

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

ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων. Καταχωρητές 1 ΗΜΥ-210: Σχεδιασμός Ψηφιακών Συστημάτων Καταχωρητές Διδάσκουσα: Μαρία Κ. Μιχαήλ Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Περίληψη Καταχωρητές Παράλληλης Φόρτωσης Καταχωρητές

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

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

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Συντρέχων Κώδικας «Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο 216-217 Συντρέχων Κώδικας Παρασκευάς Κίτσος http://diceslab.cied.teiwest.gr Επίκουρος Καθηγητής Tμήμα Μηχανικών Πληροφορικής ΤΕ E-mail: pkitsos@teimes.gr

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

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

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

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

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

Εργαστήριο Αρχιτεκτονικής Υπολογιστών Ι. Εισαγωγή στη VHDL Εργαστήριο Αρχιτεκτονικής Υπολογιστών Ι Εισαγωγή στη VHDL Εισαγωγή Very High Speed Integrated Circuits Hardware Description Language ιαφορές από γλώσσες προγραμματισμού: παράλληλη εκτέλεση εντολών προσδιορισμός

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

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

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

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

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

Κυκλωμάτων» Χειμερινό εξάμηνο «Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο 2016-2017 VHDL, Χαρακτηριστικά και τρόποι περιγραφής Δρ. Παρασκευάς Κίτσος Επίκουρος Καθηγητής Τμήμα Μηχανικών Πληροφορικής ΤΕ http://diceslab.cied.teiwest.gr

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

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

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

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

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

Εργαστήριο Οργάνωσης Η/Υ. Δαδαλιάρης Αντώνιος Εργαστήριο Οργάνωσης Η/Υ Δαδαλιάρης Αντώνιος dadaliaris@uth.gr Ρόλος των γλωσσών περιγραφής υλικού σε μια τυπική ροή σχεδίασης: Documentation Simulation Synthesis Οι γλώσσες περιγραφής υλικού μπορούν να

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

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

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

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

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

Κυριάκης - Μπιτζάρος Ευστάθιος Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε. ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Ενότητα 3: Καταχωρητές - Απαριθμητές Κυριάκης - Μπιτζάρος Ευστάθιος Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

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

ΕΙΣΑΓΩΓΙΚΟ ΕΓΧΕΙΡΙ ΙΟ ΓΙΑ ΣΧΕ ΙΑΣΜΟ ΜΕ ΧΡΗΣΗ ΤΗΣ ΓΛΩΣΣΑΣ VHDL ΕΙΣΑΓΩΓΙΚΟ ΕΓΧΕΙΡΙ ΙΟ ΓΙΑ ΣΧΕ ΙΑΣΜΟ ΜΕ ΧΡΗΣΗ ΤΗΣ ΓΛΩΣΣΑΣ VHDL Προετοιµασία: Παπαδόπουλος Γιώργος Σούρδης Γιάννης Για το µάθηµα Οργάνωσης Υπολογιστών (ΑΡΥ301), 2002 ΕΙΣΑΓΩΓΗ ΣΤΗ STRUCTURAL VHDL Η VHDL είναι

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

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

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

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

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

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Πακέτα και Συστατικά Στοιχεία (Υποκυκλώματα) «Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο 2016-2017 Πακέτα και Συστατικά Στοιχεία (Υποκυκλώματα) Παρασκευάς Κίτσος http://diceslab.cied.teiwest.gr Επίκουρος Καθηγητής Tμήμα Μηχανικών Πληροφορικής

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

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

Προσοµοίωση Συστηµάτων µε VHDL. (Peter Ashenden, The Students Guide to VHDL) Προσοµοίωση Συστηµάτων µε VHDL (Peter Ashenden, The Students Guide to VHDL) Κώδικας VHDL Περιβάλλον Σχεδίασης Αναλυτής ιαχειριστής Βιβλιοθήκης Σχεδίασης Προσοµοιωτής Αντίστροφος Αναλυτής Βιβλιοθήκη Σχεδίασης

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

Structural VHDL. Structural VHDL

Structural VHDL. Structural VHDL Structural VHDL Παράδειγμα Multiplexer Component Component specification Port map command Unconnected outputs Unconnected inputs Generic map command Generate command Configuration Παράδειγμα 4-bit Adder

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

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

Εργαστήριο Οργάνωσης Η/Υ. Δαδαλιάρης Αντώνιος Εργαστήριο Οργάνωσης Η/Υ Δαδαλιάρης Αντώνιος dadaliaris@uth.gr Χρησιμοποιούμε τις μηχανές πεπερασμένων καταστάσεων (finite state machines FSMs) για την μοντελοποίηση της συμπεριφοράς ενός κυκλώματος, η

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

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

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

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

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

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Προχωρημένα Θέματα Σχεδιασμού με VHDL «Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο 2016-2017 Προχωρημένα Θέματα Σχεδιασμού με VHDL Παρασκευάς Κίτσος http://diceslab.cied.teiwest.gr Επίκουρος Καθηγητής Tμήμα Μηχανικών Πληροφορικής

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

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

Ακολουθιακές εντολές. (Peter Ashenden, The Students Guide to VHDL) Ακολουθιακές εντολές (Peter Ashenden, The Students Guide to VHDL) Εντολή If Τα βασικά χαρακτηριστικά της είναι τα εξής: Μπορεί να χρησιµοποιηθεί για τον έλεγχο µίας ή περισσοτέρων συνθηκών. Η πρώτη συνθήκη

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

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

Εργαστήριο Οργάνωσης Η/Υ. Δαδαλιάρης Αντώνιος Εργαστήριο Οργάνωσης Η/Υ Δαδαλιάρης Αντώνιος dadaliaris@uth.gr Συνδυαστικό Κυκλωμα: Το κύκλωμα του οποίου οι έξοδοι εξαρτώνται αποκλειστικά από τις τρέχουσες εισόδους του. Ακολουθιακό Κύκλωμα: Το κύκλωμα

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

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

ΗΜΥ211 Εργαστήριο Ψηφιακών Συστημάτων ΗΜΥ211 Εργαστήριο Ψηφιακών Συστημάτων Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL Διδάσκων: Γιώργος Ζάγγουλος Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

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

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

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Συναρτήσεις, Διαδικασίες και Δομές Ελέγχου Λειτουργίας Κυκλωμάτων (testbenches) «Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο 2016-2017 Συναρτήσεις, Διαδικασίες και Δομές Ελέγχου Λειτουργίας Κυκλωμάτων (testbenches) Παρασκευάς Κίτσος http://diceslab.cied.teiwest.gr Επίκουρος

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

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL ΗΜΥ211 Εργαστήριο Ψηφιακών Συστημάτων Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL Διδάσκoντες: Δρ. Γιώργος Ζάγγουλοςκαι Δρ. Παναγιώτα Δημοσθένους Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων

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

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

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

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

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL ΗΜΥ211 Εργαστήριο Ψηφιακών Συστημάτων Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL Διδάσκoντες: Δρ. Αγαθοκλής Παπαδόπουλος και Δρ. Γιώργος Ζάγγουλος Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων

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

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

ΑΣΚΗΣΗ 2: Σχεδίαση και προσομοίωση κυκλωμάτων καταχωρητών και μετρητών ΑΣΚΗΣΗ 2: Σχεδίαση και προσομοίωση κυκλωμάτων καταχωρητών και μετρητών Θέμα Β.1: Απλός καταχωρητής 1 bit (D Flip-Flop) preset D D Q Q clk clear Σχήμα 2.1: D Flip-Flop με εισόδους preset και clear Με τη

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

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

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

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

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

VHDL Εισαγωγικές έννοιες VHDL Εισαγωγικές έννοιες ρ. Κ. Καραφασούλης ckaraf@aegean.gr Σχεδίαση Αρχικά ψηφιακά κυκλώµατα µπορούν να σχεδιασθούν µε το κατάλληλο λογισµικό. Μεγαλύτερα κυκλώµατα µπορούν να σχεδιασθούν ιεραρχικά από

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

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

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Τύποι Δεδομένων και Τελεστές «Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο 2016-2017 Τύποι Δεδομένων και Τελεστές Δρ. Παρασκευάς Κίτσος Επίκουρος Καθηγητής Tμήμα Μηχανικών Πληροφορικής ΤΕ E-mail: pkitsos@teimes.gr Αντίρριο

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

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

VHDL για Σχεδιασµό Ακολουθιακών Κυκλωµάτων VHDL για Σχεδιασµό Ακολουθιακών Κυκλωµάτων Διδάσκουσα: Μαρία Κ. Μιχαήλ Πανεπιστήµιο Κύπρου Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών n VHDL Processes Περίληψη n Εντολές If-Then-Else και CASE

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

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

ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων. VHDL για Ακολουθιακά Κυκλώματα 1 ΗΜΥ-210: Σχεδιασμός Ψηφιακών Συστημάτων VHDL για Σχεδιασμό Ακολουθιακών Κυκλωμάτων Διδάσκουσα: Μαρία Κ. Μιχαήλ Περίληψη VHDL Processes Εντολές If-Then Then-Else και CASE Περιγραφή Flip-Flop Flop με VHDL

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

Library, package και subprograms

Library, package και subprograms Library, package και subprograms Libraries Packages Subprograms Procedures Functions Overloading Αριθμητικά πακέτα Type conversion Shift operators Παράδειγμα Library - Package Ασκήσεις-Προβλήματα 12/8/2009

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

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

Περιγραφή Κυκλωμάτων με χρήση της VHDL. Καταχωρητές και χρονισμός με ρολόι Περιγραφή Κυκλωμάτων με χρήση της VHDL Καταχωρητές και χρονισμός με ρολόι Οργάνωση Παρουσίασης Διεργασίες (κανόνες) Ακολουθιακές Δηλώσεις (Sequential Statements) Καταχωρητές και χρονισμός Συμπληρωματική

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

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

ΠΑΡΑΡΤΗΜΑ Β. Verification ΠΑΡΑΡΤΗΜΑ Β Ροή Σχεδίασης και VHDL Ροή Σχεδίασης Πριν περάσουµε σε περιγραφή της γλώσσας VHDL είναι χρήσιµο να δούµε το περιβάλλον και τη ροή της σχεδίασης. Τα βήµατα µιας σχεδίασης βασισµένης σε VHDL

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

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

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

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

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

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

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

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

Εισαγωγή στη Γλώσσα VHDL Εισαγωγή στη Γλώσσα VHDL Παράδειγμα and3 Entity και Architecture Entity Entity - Παραδείγματα Architecture VHDL simulation παραδείγματος and3 Παράδειγμα NAND VHDL simulation παραδείγματος nand Boolean

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

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

ΤΙΤΛΟΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΑΣΚΗΣΗΣ ΑΣΥΓΧΡΟΝΟΙ ΜΕΤΡΗΤΕΣ ΣΧΟΛΗ ΑΣΠΑΙΤΕ ΤΜΗΜΑ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΗΛΕΚΤΡΟΛΟΓΙΑΣ ΕΡΓΑΣΤΗΡΙΟ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΘΕΩΡΗΤΙΚΟ ΜΕΡΟΣ ΤΙΤΛΟΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΑΣΚΗΣΗΣ ΑΣΥΓΧΡΟΝΟΙ ΜΕΤΡΗΤΕΣ 1) Οι απαριθμητές ή μετρητές (counters) είναι κυκλώματα που

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

VHDL Introduction. Subtitle

VHDL Introduction. Subtitle VHDL Introduction Subtitle Getting Started VHDL means Very Hard Difficult Language That s a lie!!! τα αρχικά VHDL είναι συντομογραφία του VHSIC Hardware Description Language, ενώ το VHSIC αντιπροσωπεύει

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

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

ΗΜΥ211 Εργαστήριο Ψηφιακών Συστημάτων ΗΜΥ211 Εργαστήριο Ψηφιακών Συστημάτων Εισαγωγή στη VHDL Υλοποίηση στο Quartus Διδάσκων: Γιώργος Ζάγγουλος Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Ατζέντα 1. Στόχοι 3

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

Πρόλογος Συμβολή σε ορισμένα σημεία του περιεχομένου είχαν οι διδάκτορες Γ. Οικονομάκος και Ισ. Σίδερης καθώς και οι μεταπτυχιακοί σπουδαστές Ι. Σιφναίος, Ε. Χανιωτάκης και Κ. Ασφής τους οποίους ευχαριστώ

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

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

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

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

Ελίνα Μακρή

Ελίνα Μακρή Ελίνα Μακρή elmak@unipi.gr Μετατροπή Αριθμητικών Συστημάτων Πράξεις στα Αριθμητικά Συστήματα Σχεδίαση Ψηφιακών Κυκλωμάτων με Logism Άλγεβρα Boole Λογικές Πύλες (AND, OR, NOT, NAND, XOR) Flip Flops (D,

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

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

ΤΙΤΛΟΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΑΣΚΗΣΗΣ ΣΥΓΧΡΟΝΟΙ ΜΕΤΡΗΤΕΣ ΣΧΟΛΗ ΑΣΠΑΙΤΕ ΤΜΗΜΑ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΗΛΕΚΤΡΟΛΟΓΙΑΣ ΕΡΓΑΣΤΗΡΙΟ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΘΕΩΡΗΤΙΚΟ ΜΕΡΟΣ ΤΙΤΛΟΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΑΣΚΗΣΗΣ ΣΥΓΧΡΟΝΟΙ ΜΕΤΡΗΤΕΣ 1) Οι σύγχρονοι μετρητές υλοποιούνται με Flip-Flop τύπου T

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

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

Μελέτη και σχεδίαση µιας υποτυπώδους κεντρικής µονάδας επεξεργασίας στα 32 µπιτ. ΤΕΙ ΚΡΗΤΗΣ / ΠΑΡΑΡΤΗΜΑ ΧΑΝΙΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΗΣ Μελέτη και σχεδίαση µιας υποτυπώδους κεντρικής µονάδας επεξεργασίας στα 32 µπιτ mode mode(0) ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Εµµανουήλ Καπαρού Επιβλέπων : ρ Μηχ Νικόλαος

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

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

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

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

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

Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής Βασισμένο σε μια εργασία των Καζαρλή, Καλόμοιρου, Μαστοροκώστα, Μπαλουκτσή, Καλαϊτζή, Βαλαή, Πετρίδη Εισαγωγή Η Εξελικτική Υπολογιστική

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

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

Πτυχιακή Εργασία Σχεδίαση κυκλωμάτων επικοινωνίας με απλές οθόνες, με τη γλώσσα VHDL και υλοποίηση στις αναπτυξιακές πλακέτες LP-2900 και DE2. ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΕΝΤΡΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Τ.Ε. Πτυχιακή Εργασία Σχεδίαση κυκλωμάτων επικοινωνίας με απλές οθόνες, με τη γλώσσα VHDL και υλοποίηση στις αναπτυξιακές

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

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

Κυκλωμάτων» Χειμερινό εξάμηνο «Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο 2016-2017 Εισαγωγή στα Συστήματα Ολοκληρωμένων Κυκλωμάτων Δρ. Παρασκευάς Κίτσος Επίκουρος Καθηγητής http://diceslab.cied.teiwest.gr E-mail: pkitsos@teimes.gr

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

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

ΗΜΥ 210: Λογικός Σχεδιασµός, Εαρινό Εξάµηνο Ένα συνδυαστικό κύκλωµα µπορεί να περιγραφεί από: Φεβ-05. n-είσοδοι ΗΜΥ 2: Λογικός Σχεδιασµός, Εαρινό Εξάµηνο 25 Φεβ-5 ΗΜΥ-2: Λογικός Σχεδιασµός Εαρινό Εξάµηνο 25 Κεφάλαιο 3 -i: Σχεδιασµός Συνδυαστικών Κυκλωµάτων Περίληψη Αρχές σχεδιασµού Ιεραρχία σχεδιασµού Σχεδιασµός

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

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

Μοντέλα. χαρακτηριστικά χωρίς να συνοδεύεται από λεπτοµέρειες. Γλώσσες Περιγραφής Μοντέλα Ένα µοντέλο ενός κυκλώµατος είναι µία αναπαράσταση που παρουσιάζει χαρακτηριστικά χωρίς να συνοδεύεται από λεπτοµέρειες. Τα τυπικά µοντέλα έχουν καλά ορισµένη σύνταξη. Τα αυτόµατα

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

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

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

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

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

Εισαγωγή Η VHDL υποστηρίζει τους εξής τρείς βασικούς και διαφορετικούς τρόπους περιγραφής VHDL Εισαγωγή Η VHDL υποστηρίζει τους εξής τρείς βασικούς και διαφορετικούς τρόπους περιγραφής Structural (Δομική) Dataflow (Ροής δεδομένων) Behavioral (Συμπεριφοράς) Η VDHL χρησιμοποιείται για την περιγραφή

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ Κ. Δεμέστιχας Εργαστήριο Πληροφορικής Γεωπονικό Πανεπιστήμιο Αθηνών Επικοινωνία μέσω e-mail: cdemest@aua.gr, cdemest@cn.ntua.gr 1 5. ΑΛΓΕΒΡΑ BOOLE ΛΟΓΙΚΗ ΣΧΕΔΙΑΣΗ ΜΕΡΟΣ Β 2 Επαναληπτική

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

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

Άσκηση 3 Ένα νέο είδος flip flop έχει τον ακόλουθο πίνακα αληθείας : I 1 I 0 Q (t+1) Q (t) 1 0 ~Q (t) Κατασκευάστε τον πίνακα Άσκηση Δίδονται οι ακόλουθες κυματομορφές ρολογιού και εισόδου D που είναι κοινή σε ένα D latch και ένα D flip flop. Το latch είναι θετικά ενεργό, ενώ το ff θετικά ακμοπυροδοτούμενο. Σχεδιάστε τις κυματομορφές

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

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

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

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

Κ. ΕΥΣΤΑΘΙΟΥ, Γ. ΠΑΠΑΔΟΠΟΥΛΟΣ ΠΑΤΡΑ

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

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

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

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος...9 ΚΕΦ. 1. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΚΩΔΙΚΕΣ ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος...9 ΚΕΦ. 1. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΚΩΔΙΚΕΣ 1.1 Εισαγωγή...11 1.2 Τα κύρια αριθμητικά Συστήματα...12 1.3 Μετατροπή αριθμών μεταξύ των αριθμητικών συστημάτων...13 1.3.1 Μετατροπή ακέραιων

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

Παράδειγμα αντιστοίχισης κυκλώματος σε FPGA

Παράδειγμα αντιστοίχισης κυκλώματος σε FPGA Πανεπιστήμιο Κρήτης Τμήμα Επιστήμης Υπολογιστών Παράδειγμα αντιστοίχισης κυκλώματος σε FPGA Γιώργος Δημητρακόπουλος με τη βοήθεια του Βασίλη Παπαευσταθίου Στο παράδειγμα αυτό χρησιμοποιώντας μια πολύ μικρή

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

Ασύγχρονοι Απαριθμητές. Διάλεξη 7

Ασύγχρονοι Απαριθμητές. Διάλεξη 7 Ασύγχρονοι Απαριθμητές Διάλεξη 7 Δομή της διάλεξης Εισαγωγή στους Απαριθμητές Ασύγχρονος Δυαδικός Απαριθμητής Ασύγχρονος Δεκαδικός Απαριθμητής Ασύγχρονος Δεκαδικός Απαριθμητής με Latch Ασκήσεις 2 Ασύγχρονοι

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

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

6 η Θεµατική Ενότητα : Σχεδίαση Συστηµάτων σε Επίπεδο Καταχωρητή 6 η Θεµατική Ενότητα : Σχεδίαση Συστηµάτων σε Επίπεδο Καταχωρητή Εισαγωγή Η σχεδίαση ενός ψηφιακού συστήµατος ως ακολουθιακή µηχανή είναι εξαιρετικά δύσκολη Τµηµατοποίηση σε υποσυστήµατα µε δοµικές µονάδες:

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

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

Πανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά. Συνδυαστική Λογική. Επιμέλεια Διαφανειών: Δ. Πανεπιστήμιο Πατρών Τμήμα Φυσικής Ψηφιακά Ηλεκτρονικά Συνδυαστική Λογική Επιμέλεια Διαφανειών: Δ. Μπακάλης Πάτρα, Φεβρουάριος 2009 Ψηφιακά Κυκλώματα Τα ψηφιακά κυκλώματα διακρίνονται σε συνδυαστικά (combinational)

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

ΠΕΡΙΕΧΟΜΕΝΑ ΠΕΡΙΕΧΟΜΕΝΑ.3 ΑΣΥΓΧΡΟΝΟΣ ΔYΑΔΙΚΟΣ ΑΠΑΡΙΘΜΗΤΗΣ.5 ΑΣΥΓΧΡΟΝΟΣ ΔΕΚΑΔΙΚΟΣ ΑΠΑΡΙΘΜΗΤΗΣ.7 ΑΣΥΓΧΡΟΝΟΣ ΔΕΚΑΔΙΚΟΣ ΑΠΑΡΙΘΜΗΤΗΣ ΜΕ LATCH.

ΠΕΡΙΕΧΟΜΕΝΑ ΠΕΡΙΕΧΟΜΕΝΑ.3 ΑΣΥΓΧΡΟΝΟΣ ΔYΑΔΙΚΟΣ ΑΠΑΡΙΘΜΗΤΗΣ.5 ΑΣΥΓΧΡΟΝΟΣ ΔΕΚΑΔΙΚΟΣ ΑΠΑΡΙΘΜΗΤΗΣ.7 ΑΣΥΓΧΡΟΝΟΣ ΔΕΚΑΔΙΚΟΣ ΑΠΑΡΙΘΜΗΤΗΣ ΜΕ LATCH. ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ & ΥΠΟΛΟΓΙΣΤΩΝ ΨΗΦΙΑΚΑ ΟΛΟΚΛΗΡΩΜΕΝΑ ΚΥΚΛΩΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ ΣΗΜΕΙΩΣΕΙΣ ΑΠΑΡΙΘΜΗΤΕΣ Κ. ΕΥΣΤΑΘΙΟΥ, Γ. ΠΑΠΑΔΟΠΟΥΛΟΣ

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

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

Επιβεβαίωση ορθής λειτουργίας απλών ψηφιακών κυκλωμάτων Επιβεβαίωση ορθής λειτουργίας απλών ψηφιακών κυκλωμάτων Δημήτρης Κωνσταντίνου, Γιώργος Δημητρακόπουλος Εφόσον έχουμε περιγράψει το κύκλωμά μας σε System Verilog θα πρέπει να βεβαιωθούμε πως λειτουργεί

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

Πρόλογος...13 I ΣΧΕ ΙΑΣΜΟΣ ΣΕ ΕΠΙΠΕ Ο ΚΥΚΛΩΜΑΤΟΣ Εισαγωγή... 19

Πρόλογος...13 I ΣΧΕ ΙΑΣΜΟΣ ΣΕ ΕΠΙΠΕ Ο ΚΥΚΛΩΜΑΤΟΣ Εισαγωγή... 19 Περιεχόµενα Πρόλογος...13 I ΣΧΕ ΙΑΣΜΟΣ ΣΕ ΕΠΙΠΕ Ο ΚΥΚΛΩΜΑΤΟΣ... 17 1 Εισαγωγή... 19 1.1 Σχετικά µε τη VHDL...19 1.2 Ροή σχεδιασµού...20 1.3 Εργαλεία EDA...21 1.4 Μεταγλώττιση από κώδικα VHDL σε κύκλωµα...22

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

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

Κεφάλαιο 3 ο Ακολουθιακά Κυκλώματα με ολοκληρωμένα ΤΤL Κεφάλαιο 3 ο Ακολουθιακά Κυκλώματα με ολοκληρωμένα ΤΤL 3.1 Εισαγωγή στα FLIP FLOP 3.1.1 Θεωρητικό Υπόβαθρο Τα σύγχρονα ακολουθιακά κυκλώματα με τα οποία θα ασχοληθούμε στο εργαστήριο των Ψηφιακών συστημάτων

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

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

Κεφάλαιο 6. Σύγχρονα και ασύγχρονα ακολουθιακά κυκλώματα Κεφάλαιο 6 Σύγχρονα και ασύγχρονα ακολουθιακά κυκλώματα 6.1 Εισαγωγή Η εκτέλεση διαδοχικών λειτουργιών απαιτεί τη δημιουργία κυκλωμάτων που μπορούν να αποθηκεύουν πληροφορίες, στα ενδιάμεσα στάδια των

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

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

Περιγραφή Κυκλωμάτων με χρήση της VHDL. Εισαγωγικές έννοιες για σχεδιασμό με τη VHDL Περιγραφή Κυκλωμάτων με χρήση της VHDL Εισαγωγικές έννοιες για σχεδιασμό με τη VHDL Οργάνωση Παρουσίασης VHDL εισαγωγικές έννοιες Ροή και επίπεδα σχεδιασμού ψηφιακών κυκλωμάτων Μοντελοποίηση Καθυστερήσεων

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

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

Εργαστήριο Εισαγωγής στη Σχεδίαση Συστημάτων VLSI Ε.Μ.Π. - ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΡΓΑΣΤΗΡΙΟ ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗ ΣΧΕΔΙΑΣΗ ΣΥΣΤΗΜΑΤΩΝ VLSI

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

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

ΛΥΣΕΙΣ 3 ης ΓΡΑΠΤΗΣ ΕΡΓΑΣΙΑΣ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΠΡΟΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΠΛΗΡΟΦΟΡΙΚΗ ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ ΕΡΓΑΣΤΗΡΙΟ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΛΥΣΕΙΣ 3 ης ΓΡΑΠΤΗΣ ΕΡΓΑΣΙΑΣ ΠΑΤΡΑ 2006 9.

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

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

7.1 Θεωρητική εισαγωγή ΨΗΦΙΑΚΑ ΚΥΚΛΩΜΑΤΑ - ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 7 ΑΚΟΛΟΥΘΙΑΚΑ ΚΥΚΛΩΜΑΤΑ ΜΑΝ ΑΛΩΤΕΣ FLIP FLOP Σκοπός: Η κατανόηση της λειτουργίας των βασικών ακολουθιακών κυκλωµάτων. Θα µελετηθούν συγκεκριµένα: ο µανδαλωτής (latch)

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

ΑΣΚΗΣΗ 9 ΑΣΥΓΧΡΟΝΟΙ ΜΕΤΡΗΤΕΣ (COUNTERS)

ΑΣΚΗΣΗ 9 ΑΣΥΓΧΡΟΝΟΙ ΜΕΤΡΗΤΕΣ (COUNTERS) ΑΣΚΗΣΗ 9 ΑΣΥΓΧΡΟΝΟΙ ΜΕΤΡΗΤΕΣ (COUNTERS) Αντικείμενο της άσκησης: H σχεδίαση και η χρήση ασύγχρονων απαριθμητών γεγονότων. Με τον όρο απαριθμητές ή μετρητές εννοούμε ένα ακολουθιακό κύκλωμα με FF, οι καταστάσεις

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

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

Εργαστήριο Οργάνωσης Η/Υ. Δαδαλιάρης Αντώνιος Εργαστήριο Οργάνωσης Η/Υ Δαδαλιάρης Αντώνιος dadaliaris@uth.gr Σχόλια: - - This is a single line comment - - There is no alternative way to write multi-line comments Αναγνωριστικά: Τα αναγνωριστικά

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

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

100 ΕΡΩΤΗΣΕΙΣ ΜΕ ΤΙΣ ΑΝΤΙΣΤΟΙΧΕΣ ΑΠΑΝΤΗΣΕΙΣ ΓΙΑ ΤΟ ΜΑΘΗΜΑ ΨΗΦΙΑΚΑ ΚΥΚΛΩΜΑΤΑ 100 ΕΡΩΤΗΣΕΙΣ ΜΕ ΤΙΣ ΑΝΤΙΣΤΟΙΧΕΣ ΑΠΑΝΤΗΣΕΙΣ ΓΙΑ ΤΟ ΜΑΘΗΜΑ ΨΗΦΙΑΚΑ ΚΥΚΛΩΜΑΤΑ 1) Να μετατρέψετε τον δεκαδικό αριθμό (60,25) 10, στον αντίστοιχο δυαδικό 11111,11 111001,01 111100,01 100111,1 111100,01 2)

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

Σύγχρονοι Απαριθμητές. Διάλεξη 8

Σύγχρονοι Απαριθμητές. Διάλεξη 8 Σύγχρονοι Απαριθμητές Διάλεξη 8 Δομή της διάλεξης Εισαγωγή Σύγχρονος Δυαδικός Απαριθμητής Σύγχρονος Δεκαδικός Απαριθμητής Προγραμματιζόμενοι Απαριθμητές Ασκήσεις 2 Σύγχρονοι Απαριθμητές Εισαγωγή 3 Εισαγωγή

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

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

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ψηφιακή Σχεδίαση Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Ψηφιακή Σχεδίαση Ενότητα 9: Ελαχιστοποίηση και Κωδικοποίηση Καταστάσεων, Σχεδίαση με D flip-flop, Σχεδίαση με JK flip-flop, Σχεδίαση με T flip-flop Δρ. Μηνάς

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

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

Εργαστηριακή Άσκηση 4: Ιεραρχική σχεδίαση και προσχεδιασμένοι πυρήνες Εργαστηριακή Άσκηση 4: Ιεραρχική σχεδίαση και προσχεδιασμένοι πυρήνες Στην 4 η εργαστηριακή άσκηση θα ασχοληθούμε με την ιεραρχική σχεδίαση. Συγκεκριμένα θα μάθουμε να σχεδιάζουμε απλές οντότητες τις οποίες

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

C D C D C D C D A B

C D C D C D C D A B Απλοποίηση µέσω Πίνακα Karnaugh: Παράδειγµα - 2 Στον παρακάτω πίνακα έχει ήδη γίνει το «βήμα- 1». Επομένως: Βήμα 2: Δεν υπάρχουν απομονωμένα κελιά. Βήμα 3: Στο ζεύγος (3,7) το κελί 3 γειτνιάζει μόνο με

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

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

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

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

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

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ψηφιακή Σχεδίαση Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Ψηφιακή Σχεδίαση Ενότητα 7: κωδικοποιητές, κωδικοποιητές προτεραιότητας, πολυπλέκτες, υλοποίηση συνάρτησης με πολυπλέκτη, αποπλέκτες, πύλη 3ιών καταστάσεων,

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

Η κανονική μορφή της συνάρτησης που υλοποιείται με τον προηγούμενο πίνακα αληθείας σε μορφή ελαχιστόρων είναι η Q = [A].

Η κανονική μορφή της συνάρτησης που υλοποιείται με τον προηγούμενο πίνακα αληθείας σε μορφή ελαχιστόρων είναι η Q = [A]. Κανονική μορφή συνάρτησης λογικής 5. Η κανονική μορφή μιας λογικής συνάρτησης (ΛΣ) ως άθροισμα ελαχιστόρων, από τον πίνακα αληθείας προκύπτει ως εξής: ) Παράγουμε ένα [A] όρων από την κάθε σειρά για την

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

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

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

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

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

K24 Ψηφιακά Ηλεκτρονικά 9: Flip-Flops K24 Ψηφιακά Ηλεκτρονικά 9: TEI Πελοποννήσου Σχολή Τεχνολογικών Εφαρμογών Τμήμα Μηχανικών Πληροφορικής ΤΕ ΤΕΧΝΟΛΟΓΙΚΟ Περιεχόμενα 1 2 3 Γενικά Ύστερα από τη μελέτη συνδυαστικών ψηφιακών κυκλωμάτων, θα μελετήσουμε

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

«Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο Διάλεξη 8 η : Μηχανές Πεπερασμένων Κaταστάσεων σε FPGAs

«Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο Διάλεξη 8 η : Μηχανές Πεπερασμένων Κaταστάσεων σε FPGAs ΤΕΙ Δυτικής Ελλάδας Τμήμα Μηχανικών Πληροφορικής ΤΕ Εργαστήριο Σχεδίασης Ψηφιακών Ολοκληρωμένων Κυκλωμάτων και Συστημάτων «Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο 2016-2017 Διάλεξη 8 η :

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

Ακολουθιακό κύκλωμα Η έξοδος του κυκλώματος εξαρτάται από τις τιμές εισόδου ΚΑΙ από την προηγούμενη κατάσταση του κυκλώματος

Ακολουθιακό κύκλωμα Η έξοδος του κυκλώματος εξαρτάται από τις τιμές εισόδου ΚΑΙ από την προηγούμενη κατάσταση του κυκλώματος 1 Συνδυαστικό κύκλωμα Η έξοδος του κυκλώματος εξαρτάται ΜΟΝΟ από τις εισόδους του Εάν γνωρίζουμε τις τιμές των εισόδων του κυκλώματος, τότε μπορούμε να προβλέψουμε ακριβώς τις εξόδους του Ακολουθιακό κύκλωμα

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

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

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων Χειμερινό Εξάμηνο 2018-2019 Ροή Σχεδίασης Κυκλωμάτων και Εργαλεία CAD ΗΥ220 - Βασίλης Παπαευσταθίου 1 Transistor: Δομική μονάδα κυκλωμάτων Τα ολοκληρωμένα κυκλώματα

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

f(x, y, z) = y z + xz

f(x, y, z) = y z + xz Λύσεις θεμάτων Εξεταστικής Περιόδου Ιανουαρίου Φεβρουαρίου 27 ΘΕΜΑ Ο (2, μονάδες) Δίνεται η λογική συνάρτηση : f (, y, z ) = ( + y )(y + z ) + y z. Να συμπληρωθεί ο πίνακας αλήθειας της συνάρτησης. (,

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

Μετρητής Ριπής ΛΟΓΙΚΗ ΣΧΕΔΙΑΣΗ. Αναφορά 9 ης. εργαστηριακής άσκησης: ΑΦΡΟΔΙΤΗ ΤΟΥΦΑ Α.Μ.:2024201100032

Μετρητής Ριπής ΛΟΓΙΚΗ ΣΧΕΔΙΑΣΗ. Αναφορά 9 ης. εργαστηριακής άσκησης: ΑΦΡΟΔΙΤΗ ΤΟΥΦΑ Α.Μ.:2024201100032 ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΛΟΠΟΝΝΗΣΟΥ ΣΧΟΛΗ ΟΙΚΟΝΟΜΙΑΣ, ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΛΟΓΙΚΗ ΣΧΕΔΙΑΣΗ Αναφορά 9 ης εργαστηριακής άσκησης: Μετρητής Ριπής ΑΦΡΟΔΙΤΗ

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

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

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων Χειμερινό Εξάμηνο 2017-2018 Λογικές Πύλες, Στοιχεία Μνήμης, Συνδυαστική Λογική και Κυματομορφές ΗΥ220 - Βασίλης Παπαευσταθίου & Γιώργος Καλοκαιρινός 1 Τα βασικά της

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

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

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων Χειμερινό Εξάμηνο 2017-2018 Ροή Σχεδίασης Κυκλωμάτων και Εργαλεία CAD ΗΥ220 - Γιώργος Καλοκαιρινός & Βασίλης Παπαευσταθίου 1 Transistor: Δομική μονάδα κυκλωμάτων Τα

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

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

Ενσωματωμένα Συστήματα Ενσωματωμένα Συστήματα Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ Νο 13 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών

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

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

Εισαγωγή στην πληροφορική Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Εισαγωγή στην πληροφορική Ενότητα 4: Ψηφιακή Λογική, Άλγεβρα Boole, Πίνακες Αλήθειας (Μέρος B) Αγγελίδης Παντελής Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

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

Τεχνικές σχεδιασμού μονοπατιών ολίσθησης

Τεχνικές σχεδιασμού μονοπατιών ολίσθησης Τεχνικές σχεδιασμού μονοπατιών ολίσθησης (Scan Path Design Techniques) Περίγραμμα παρουσίασης Προβλήματα ελέγχου ορθής λειτουργίας ακολουθιακών κυκλωμάτων Μονοπάτι ολίσθησης (scan path) Στοιχεία μνήμης

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

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

Σχεδίαση κυκλωμάτων με VHDL: 1o μέρος Σχεδίαση κυκλωμάτων με VHDL: 1o μέρος Γ. Δημητρακόπουλος Το πρώτο σας κύκλωμα Τα ψηφιακά κυκλώματα είναι μια συλλογή από λογικές πύλες και ακολουθιακά στοιχεία αποθήκευσης (ή συγχρονισμού) όπως τα flip-flops.

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

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

Λογική Σχεδίαση Ι - Εξεταστική Φεβρουαρίου 2013 Διάρκεια εξέτασης : 160 Ονοματεπώνυμο : Α. Μ. Έτος σπουδών: Λογική Σχεδίαση Ι - Εξεταστική Φεβρουαρίου 23 Διάρκεια εξέτασης : 6 Ονοματεπώνυμο : Α. Μ. Έτος σπουδών: Θέμα (,5 μονάδες) Στις εισόδους του ακόλουθου κυκλώματος c b a εφαρμόζονται οι κάτωθι κυματομορφές.

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

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

Σύνθετοι τύποι και λειτουργίες. (Peter Ashenden, The Students Guide to VHDL) Σύνθετοι τύποι και λειτουργίες (Peter Ashenden, The Students Guide to VHDL) Πίνακες Πίνακες: Αποτελούνται από στοιχεία του ίδιου τύπου. Μονοδιάστατοι Πίνακες type table1 is array (0 to 7) of std_logic;

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

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

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Χειµερινό Εξάµηνο 2016 ΔΙΑΛΕΞΗ 13: Διαδικασία Σχεδιασµού Ακολουθιακών Κυκλωµάτων (Κεφάλαιο 6. ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Χειµερινό Εξάµηνο 2016 ΔΙΑΛΕΞΗ 13: Διαδικασία Σχεδιασµού Ακολουθιακών Κυκλωµάτων (Κεφάλαιο 6.3) ΧΑΡΗΣ ΘΕΟΧΑΡΙΔΗΣ Επίκουρος Καθηγητής, ΗΜΜΥ (ttheocharides@ucy.ac.cy)

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