ΣΧΕΔΙΑΣΜΟΣ ΚΥΚΛΩΜΑΤΩΝ ΠΑΡΑΜΕΤΡΙΚΗΣ ΜΕΤΑΒΟΛΗΣ ΣΥΧΝΟΤΗΤΑΣ ΚΑΙ DUTY CYCLE ΠΑΛΜΟΥ ΜΕ ΧΡΗΣΗ ΤΗΣ ΓΛΩΣΣΑΣ VHDL
|
|
- Βηθανία Βουρδουμπάς
- 7 χρόνια πριν
- Προβολές:
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) ΧΑΡΗΣ ΘΕΟΧΑΡΙΔΗΣ Επίκουρος Καθηγητής, ΗΜΜΥ (ttheocharides@ucy.ac.cy) Περίληψη q Καταχωρητές Παράλληλης
Διαβάστε περισσότεραΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων. Καταχωρητές 1
ΗΜΥ-210: Σχεδιασμός Ψηφιακών Συστημάτων Καταχωρητές Διδάσκουσα: Μαρία Κ. Μιχαήλ Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Περίληψη Καταχωρητές Παράλληλης Φόρτωσης Καταχωρητές
Διαβάστε περισσότερα«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Συντρέχων Κώδικας
«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο 216-217 Συντρέχων Κώδικας Παρασκευάς Κίτσος http://diceslab.cied.teiwest.gr Επίκουρος Καθηγητής Tμήμα Μηχανικών Πληροφορικής ΤΕ E-mail: pkitsos@teimes.gr
Διαβάστε περισσότερα26-Nov-09. ΗΜΥ 210: Λογικός Σχεδιασμός, Χειμερινό Εξάμηνο Καταχωρητές 1. Διδάσκουσα: Μαρία Κ. Μιχαήλ
ΗΜΥ-210: Σχεδιασμός Ψηφιακών Συστημάτων Χειμερινό Εξάμηνο 2009 Καταχωρητές Διδάσκουσα: Μαρία Κ. Μιχαήλ Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Περίληψη Καταχωρητές Παράλληλης
Διαβάστε περισσότεραΕργαστήριο Αρχιτεκτονικής Υπολογιστών Ι. Εισαγωγή στη VHDL
Εργαστήριο Αρχιτεκτονικής Υπολογιστών Ι Εισαγωγή στη VHDL Εισαγωγή Very High Speed Integrated Circuits Hardware Description Language ιαφορές από γλώσσες προγραμματισμού: παράλληλη εκτέλεση εντολών προσδιορισμός
Διαβάστε περισσότεραΠερίληψη. ΗΜΥ-210: Λογικός Σχεδιασµός Εαρινό Εξάµηνο Παράδειγµα: Καταχωρητής 2-bit. Καταχωρητής 4-bit. Μνήµη Καταχωρητών
ΗΜΥ-210: Λογικός Σχεδιασµός Εαρινό Κεφάλαιο 7 i: Καταχωρητές Περίληψη Καταχωρητές Παράλληλης Φόρτωσης Καταχωρητές Ολίσθησης Σειριακή Φόρτωση Σειριακή Ολίσθηση Καταχωρητές Ολίσθησης Παράλληλης Φόρτωσης
Διαβάστε περισσότεραΚυκλωμάτων» Χειμερινό εξάμηνο
«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο 2016-2017 VHDL, Χαρακτηριστικά και τρόποι περιγραφής Δρ. Παρασκευάς Κίτσος Επίκουρος Καθηγητής Τμήμα Μηχανικών Πληροφορικής ΤΕ http://diceslab.cied.teiwest.gr
Διαβάστε περισσότεραΕισαγωγή στη γλώσσα περιγραφής υλικού VHDL. Γενικά χαρακτηριστικά, σύνταξη και τύποι. Ψηφιακή Σχεδίαση µε CAD ΙΙ - ιάλεξη 1 -
Εισαγωγή στη γλώσσα περιγραφής υλικού VHDL Γενικά χαρακτηριστικά, σύνταξη και τύποι Ψηφιακή Σχεδίαση µε CAD ΙΙ - ιάλεξη 1 - Περίγραµµα διάλεξης Τι είναι η VHDL? Πλεονεκτήµατα της VHDL στη σχεδίαση κυκλωµάτων
Διαβάστε περισσότεραΕργαστήριο Οργάνωσης Η/Υ. Δαδαλιάρης Αντώνιος
Εργαστήριο Οργάνωσης Η/Υ Δαδαλιάρης Αντώνιος dadaliaris@uth.gr Ρόλος των γλωσσών περιγραφής υλικού σε μια τυπική ροή σχεδίασης: Documentation Simulation Synthesis Οι γλώσσες περιγραφής υλικού μπορούν να
Διαβάστε περισσότεραΣχεδίαση Ψηφιακών Συστημάτων
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Σχεδίαση Ψηφιακών Συστημάτων Ενότητα 2: Βασικές Μονάδες Κυριάκης - Μπιτζάρος Ευστάθιος Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε. Άδειες
Διαβάστε περισσότεραΚυριάκης - Μπιτζάρος Ευστάθιος Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Ενότητα 3: Καταχωρητές - Απαριθμητές Κυριάκης - Μπιτζάρος Ευστάθιος Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό
Διαβάστε περισσότεραΕΙΣΑΓΩΓΙΚΟ ΕΓΧΕΙΡΙ ΙΟ ΓΙΑ ΣΧΕ ΙΑΣΜΟ ΜΕ ΧΡΗΣΗ ΤΗΣ ΓΛΩΣΣΑΣ VHDL
ΕΙΣΑΓΩΓΙΚΟ ΕΓΧΕΙΡΙ ΙΟ ΓΙΑ ΣΧΕ ΙΑΣΜΟ ΜΕ ΧΡΗΣΗ ΤΗΣ ΓΛΩΣΣΑΣ VHDL Προετοιµασία: Παπαδόπουλος Γιώργος Σούρδης Γιάννης Για το µάθηµα Οργάνωσης Υπολογιστών (ΑΡΥ301), 2002 ΕΙΣΑΓΩΓΗ ΣΤΗ STRUCTURAL VHDL Η VHDL είναι
Διαβάστε περισσότεραΕισαγωγή στη γλώσσα περιγραφής υλικού 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 Περιβάλλον Σχεδίασης Αναλυτής ιαχειριστής Βιβλιοθήκης Σχεδίασης Προσοµοιωτής Αντίστροφος Αναλυτής Βιβλιοθήκη Σχεδίασης
Διαβάστε περισσότερα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
«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο 2016-2017 Προχωρημένα Θέματα Σχεδιασμού με VHDL Παρασκευάς Κίτσος http://diceslab.cied.teiwest.gr Επίκουρος Καθηγητής Tμήμα Μηχανικών Πληροφορικής
Διαβάστε περισσότεραΑκολουθιακές εντολές. (Peter Ashenden, The Students Guide to VHDL)
Ακολουθιακές εντολές (Peter Ashenden, The Students Guide to VHDL) Εντολή If Τα βασικά χαρακτηριστικά της είναι τα εξής: Μπορεί να χρησιµοποιηθεί για τον έλεγχο µίας ή περισσοτέρων συνθηκών. Η πρώτη συνθήκη
Διαβάστε περισσότεραΕργαστήριο Οργάνωσης Η/Υ. Δαδαλιάρης Αντώνιος
Εργαστήριο Οργάνωσης Η/Υ Δαδαλιάρης Αντώνιος dadaliaris@uth.gr Συνδυαστικό Κυκλωμα: Το κύκλωμα του οποίου οι έξοδοι εξαρτώνται αποκλειστικά από τις τρέχουσες εισόδους του. Ακολουθιακό Κύκλωμα: Το κύκλωμα
Διαβάστε περισσότεραΗΜΥ211 Εργαστήριο Ψηφιακών Συστημάτων
ΗΜΥ211 Εργαστήριο Ψηφιακών Συστημάτων Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL Διδάσκων: Γιώργος Ζάγγουλος Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
Διαβάστε περισσότερα«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Συναρτήσεις, Διαδικασίες και Δομές Ελέγχου Λειτουργίας Κυκλωμάτων (testbenches)
«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο 2016-2017 Συναρτήσεις, Διαδικασίες και Δομές Ελέγχου Λειτουργίας Κυκλωμάτων (testbenches) Παρασκευάς Κίτσος http://diceslab.cied.teiwest.gr Επίκουρος
Διαβάστε περισσότερα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 ΧΑΡΗΣ ΘΕΟΧΑΡΙΔΗΣ Επίκουρος Καθηγητής, ΗΜΜΥ (ttheocharides@ucy.ac.cy)
Διαβάστε περισσότεραBehavioral & Mixed VHDL Architectures Finite State Machines in VHDL
ΗΜΥ211 Εργαστήριο Ψηφιακών Συστημάτων Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL Διδάσκoντες: Δρ. Αγαθοκλής Παπαδόπουλος και Δρ. Γιώργος Ζάγγουλος Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων
Διαβάστε περισσότεραΑΣΚΗΣΗ 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 (Structural Description) Μηχανές Πεπερασμένων Καταστάσεων
Διαβάστε περισσότεραVHDL Εισαγωγικές έννοιες
VHDL Εισαγωγικές έννοιες ρ. Κ. Καραφασούλης ckaraf@aegean.gr Σχεδίαση Αρχικά ψηφιακά κυκλώµατα µπορούν να σχεδιασθούν µε το κατάλληλο λογισµικό. Μεγαλύτερα κυκλώµατα µπορούν να σχεδιασθούν ιεραρχικά από
Διαβάστε περισσότερα«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Τύποι Δεδομένων και Τελεστές
«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο 2016-2017 Τύποι Δεδομένων και Τελεστές Δρ. Παρασκευάς Κίτσος Επίκουρος Καθηγητής Tμήμα Μηχανικών Πληροφορικής ΤΕ E-mail: pkitsos@teimes.gr Αντίρριο
Διαβάστε περισσότεραVHDL για Σχεδιασµό Ακολουθιακών Κυκλωµάτων
VHDL για Σχεδιασµό Ακολουθιακών Κυκλωµάτων Διδάσκουσα: Μαρία Κ. Μιχαήλ Πανεπιστήµιο Κύπρου Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών n VHDL Processes Περίληψη n Εντολές If-Then-Else και CASE
Διαβάστε περισσότεραΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων. VHDL για Ακολουθιακά Κυκλώματα 1
ΗΜΥ-210: Σχεδιασμός Ψηφιακών Συστημάτων VHDL για Σχεδιασμό Ακολουθιακών Κυκλωμάτων Διδάσκουσα: Μαρία Κ. Μιχαήλ Περίληψη VHDL Processes Εντολές If-Then Then-Else και CASE Περιγραφή Flip-Flop Flop με VHDL
Διαβάστε περισσότεραLibrary, package και subprograms
Library, package και subprograms Libraries Packages Subprograms Procedures Functions Overloading Αριθμητικά πακέτα Type conversion Shift operators Παράδειγμα Library - Package Ασκήσεις-Προβλήματα 12/8/2009
Διαβάστε περισσότεραΠεριγραφή Κυκλωμάτων με χρήση της VHDL. Καταχωρητές και χρονισμός με ρολόι
Περιγραφή Κυκλωμάτων με χρήση της VHDL Καταχωρητές και χρονισμός με ρολόι Οργάνωση Παρουσίασης Διεργασίες (κανόνες) Ακολουθιακές Δηλώσεις (Sequential Statements) Καταχωρητές και χρονισμός Συμπληρωματική
Διαβάστε περισσότεραΠΑΡΑΡΤΗΜΑ Β. Verification
ΠΑΡΑΡΤΗΜΑ Β Ροή Σχεδίασης και VHDL Ροή Σχεδίασης Πριν περάσουµε σε περιγραφή της γλώσσας VHDL είναι χρήσιµο να δούµε το περιβάλλον και τη ροή της σχεδίασης. Τα βήµατα µιας σχεδίασης βασισµένης σε VHDL
Διαβάστε περισσότεραΥπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).
Μνήμες Ένα από τα βασικά πλεονεκτήματα των ψηφιακών συστημάτων σε σχέση με τα αναλογικά, είναι η ευκολία αποθήκευσης μεγάλων ποσοτήτων πληροφοριών, είτε προσωρινά είτε μόνιμα Οι πληροφορίες αποθηκεύονται
Διαβάστε περισσότεραΣχεδίαση Ψηφιακών Συστημάτων
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Σχεδίαση Ψηφιακών Συστημάτων Ενότητα 6: Σύγχρονα Ακολουθιακά Κυκλώματα Κυριάκης Μπιτζάρος Ευστάθιος Τμήμα Ηλεκτρονικών Μηχανικών
Διαβάστε περισσότεραΕισαγωγή στη Γλώσσα VHDL
Εισαγωγή στη Γλώσσα VHDL Παράδειγμα and3 Entity και Architecture Entity Entity - Παραδείγματα Architecture VHDL simulation παραδείγματος and3 Παράδειγμα NAND VHDL simulation παραδείγματος nand Boolean
Διαβάστε περισσότεραΤΙΤΛΟΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΑΣΚΗΣΗΣ ΑΣΥΓΧΡΟΝΟΙ ΜΕΤΡΗΤΕΣ
ΣΧΟΛΗ ΑΣΠΑΙΤΕ ΤΜΗΜΑ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΗΛΕΚΤΡΟΛΟΓΙΑΣ ΕΡΓΑΣΤΗΡΙΟ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΘΕΩΡΗΤΙΚΟ ΜΕΡΟΣ ΤΙΤΛΟΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΑΣΚΗΣΗΣ ΑΣΥΓΧΡΟΝΟΙ ΜΕΤΡΗΤΕΣ 1) Οι απαριθμητές ή μετρητές (counters) είναι κυκλώματα που
Διαβάστε περισσότερα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 Εργαστήριο Ψηφιακών Συστημάτων Εισαγωγή στη VHDL Υλοποίηση στο Quartus Διδάσκων: Γιώργος Ζάγγουλος Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Ατζέντα 1. Στόχοι 3
Διαβάστε περισσότεραΠρόλογος Συμβολή σε ορισμένα σημεία του περιεχομένου είχαν οι διδάκτορες Γ. Οικονομάκος και Ισ. Σίδερης καθώς και οι μεταπτυχιακοί σπουδαστές Ι. Σιφναίος, Ε. Χανιωτάκης και Κ. Ασφής τους οποίους ευχαριστώ
Διαβάστε περισσότεραΕισαγωγή στη VHDL Υλοποίηση στο Quartus
ΗΜΥ211 Εργαστήριο Ψηφιακών Συστημάτων Εισαγωγή στη VHDL Υλοποίηση στο Quartus Διδάσκοντες: Δρ. Γιώργος Ζάγγουλος και Δρ. Παναγιώτα Μ. Δημοσθένους Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών
Διαβάστε περισσότεραΕλίνα Μακρή
Ελίνα Μακρή elmak@unipi.gr Μετατροπή Αριθμητικών Συστημάτων Πράξεις στα Αριθμητικά Συστήματα Σχεδίαση Ψηφιακών Κυκλωμάτων με Logism Άλγεβρα Boole Λογικές Πύλες (AND, OR, NOT, NAND, XOR) Flip Flops (D,
Διαβάστε περισσότεραΤΙΤΛΟΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΑΣΚΗΣΗΣ ΣΥΓΧΡΟΝΟΙ ΜΕΤΡΗΤΕΣ
ΣΧΟΛΗ ΑΣΠΑΙΤΕ ΤΜΗΜΑ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΗΛΕΚΤΡΟΛΟΓΙΑΣ ΕΡΓΑΣΤΗΡΙΟ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΘΕΩΡΗΤΙΚΟ ΜΕΡΟΣ ΤΙΤΛΟΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΑΣΚΗΣΗΣ ΣΥΓΧΡΟΝΟΙ ΜΕΤΡΗΤΕΣ 1) Οι σύγχρονοι μετρητές υλοποιούνται με Flip-Flop τύπου T
Διαβάστε περισσότεραΜελέτη και σχεδίαση µιας υποτυπώδους κεντρικής µονάδας επεξεργασίας στα 32 µπιτ.
ΤΕΙ ΚΡΗΤΗΣ / ΠΑΡΑΡΤΗΜΑ ΧΑΝΙΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΗΣ Μελέτη και σχεδίαση µιας υποτυπώδους κεντρικής µονάδας επεξεργασίας στα 32 µπιτ mode mode(0) ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Εµµανουήλ Καπαρού Επιβλέπων : ρ Μηχ Νικόλαος
Διαβάστε περισσότεραΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Σχεδίαση Ψηφιακών Συστημάτων. Ενότητα: ΚΑΤΑΧΩΡΗΤΕΣ - ΑΠΑΡΙΘΜΗΤΕΣ
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ᄃ Σχεδίαση Ψηφιακών Συστημάτων Ενότητα: ΚΑΤΑΧΩΡΗΤΕΣ - ΑΠΑΡΙΘΜΗΤΕΣ Κυριάκης - Μπιτζάρος Ευστάθιος Τμήμα Ηλεκτρονικών Μηχανικών
Διαβάστε περισσότεραΜία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής
Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής Βασισμένο σε μια εργασία των Καζαρλή, Καλόμοιρου, Μαστοροκώστα, Μπαλουκτσή, Καλαϊτζή, Βαλαή, Πετρίδη Εισαγωγή Η Εξελικτική Υπολογιστική
Διαβάστε περισσότεραΠτυχιακή Εργασία Σχεδίαση κυκλωμάτων επικοινωνίας με απλές οθόνες, με τη γλώσσα VHDL και υλοποίηση στις αναπτυξιακές πλακέτες LP-2900 και DE2.
ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΕΝΤΡΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Τ.Ε. Πτυχιακή Εργασία Σχεδίαση κυκλωμάτων επικοινωνίας με απλές οθόνες, με τη γλώσσα VHDL και υλοποίηση στις αναπτυξιακές
Διαβάστε περισσότεραΚυκλωμάτων» Χειμερινό εξάμηνο
«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο 2016-2017 Εισαγωγή στα Συστήματα Ολοκληρωμένων Κυκλωμάτων Δρ. Παρασκευάς Κίτσος Επίκουρος Καθηγητής http://diceslab.cied.teiwest.gr E-mail: pkitsos@teimes.gr
Διαβάστε περισσότεραΗΜΥ 210: Λογικός Σχεδιασµός, Εαρινό Εξάµηνο Ένα συνδυαστικό κύκλωµα µπορεί να περιγραφεί από: Φεβ-05. n-είσοδοι
ΗΜΥ 2: Λογικός Σχεδιασµός, Εαρινό Εξάµηνο 25 Φεβ-5 ΗΜΥ-2: Λογικός Σχεδιασµός Εαρινό Εξάµηνο 25 Κεφάλαιο 3 -i: Σχεδιασµός Συνδυαστικών Κυκλωµάτων Περίληψη Αρχές σχεδιασµού Ιεραρχία σχεδιασµού Σχεδιασµός
Διαβάστε περισσότεραΜοντέλα. χαρακτηριστικά χωρίς να συνοδεύεται από λεπτοµέρειες.
Γλώσσες Περιγραφής Μοντέλα Ένα µοντέλο ενός κυκλώµατος είναι µία αναπαράσταση που παρουσιάζει χαρακτηριστικά χωρίς να συνοδεύεται από λεπτοµέρειες. Τα τυπικά µοντέλα έχουν καλά ορισµένη σύνταξη. Τα αυτόµατα
Διαβάστε περισσότεραΠανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά. Καταχωρητές και Μετρητές 2. Επιμέλεια Διαφανειών: Δ.
Πανεπιστήμιο Πατρών Τμήμα Φυσικής Ψηφιακά Ηλεκτρονικά Καταχωρητές και Μετρητές Επιμέλεια Διαφανειών: Δ. Μπακάλης Πάτρα, Φεβρουάριος 2009 Εισαγωγή Καταχωρητής: είναι μία ομάδα από δυαδικά κύτταρα αποθήκευσης
Διαβάστε περισσότεραΕισαγωγή Η 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) Κατασκευάστε τον πίνακα
Άσκηση Δίδονται οι ακόλουθες κυματομορφές ρολογιού και εισόδου D που είναι κοινή σε ένα D latch και ένα D flip flop. Το latch είναι θετικά ενεργό, ενώ το ff θετικά ακμοπυροδοτούμενο. Σχεδιάστε τις κυματομορφές
Διαβάστε περισσότερα1 Περίληψη Η εργασία έγινε στα πλαίσια του μαθήματος των Ψηφιακών Ηλεκτρονικών Συστημάτων με σκοπό αρχικά την εκμάθηση της γλώσσας VHDL (Very High Spe
Εργασία στα Ψηφιακά Ηλεκτρονικά Συστήματα 2013-2014 Θέμα: Κατασκευή και Ανάλυση Μετρητή 4-bit και Πλήρους Αθροιστή σε περιβάλλον VHDL Ονοματεπώνυμο: Αλέξανδρος Γεώργιος Μουντογιαννάκης Σχολή: Τμήμα Επιστήμης
Διαβάστε περισσότεραΚ. ΕΥΣΤΑΘΙΟΥ, Γ. ΠΑΠΑΔΟΠΟΥΛΟΣ ΠΑΤΡΑ
ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ & ΥΠΟΛΟΓΙΣΤΩΝ ΨΗΦΙΑΚΑ ΟΛΟΚΛΗΡΩΜΕΝΑ ΚΥΚΛΩΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ ΣΗΜΕΙΩΣΕΙΣ ΑΠΑΡΙΘΜΗΤΕΣ Κ. ΕΥΣΤΑΘΙΟΥ, Γ. ΠΑΠΑΔΟΠΟΥΛΟΣ
Διαβάστε περισσότεραΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος...9 ΚΕΦ. 1. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΚΩΔΙΚΕΣ
ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος...9 ΚΕΦ. 1. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ - ΚΩΔΙΚΕΣ 1.1 Εισαγωγή...11 1.2 Τα κύρια αριθμητικά Συστήματα...12 1.3 Μετατροπή αριθμών μεταξύ των αριθμητικών συστημάτων...13 1.3.1 Μετατροπή ακέραιων
Διαβάστε περισσότεραΠαράδειγμα αντιστοίχισης κυκλώματος σε FPGA
Πανεπιστήμιο Κρήτης Τμήμα Επιστήμης Υπολογιστών Παράδειγμα αντιστοίχισης κυκλώματος σε FPGA Γιώργος Δημητρακόπουλος με τη βοήθεια του Βασίλη Παπαευσταθίου Στο παράδειγμα αυτό χρησιμοποιώντας μια πολύ μικρή
Διαβάστε περισσότεραΑσύγχρονοι Απαριθμητές. Διάλεξη 7
Ασύγχρονοι Απαριθμητές Διάλεξη 7 Δομή της διάλεξης Εισαγωγή στους Απαριθμητές Ασύγχρονος Δυαδικός Απαριθμητής Ασύγχρονος Δεκαδικός Απαριθμητής Ασύγχρονος Δεκαδικός Απαριθμητής με Latch Ασκήσεις 2 Ασύγχρονοι
Διαβάστε περισσότερα6 η Θεµατική Ενότητα : Σχεδίαση Συστηµάτων σε Επίπεδο Καταχωρητή
6 η Θεµατική Ενότητα : Σχεδίαση Συστηµάτων σε Επίπεδο Καταχωρητή Εισαγωγή Η σχεδίαση ενός ψηφιακού συστήµατος ως ακολουθιακή µηχανή είναι εξαιρετικά δύσκολη Τµηµατοποίηση σε υποσυστήµατα µε δοµικές µονάδες:
Διαβάστε περισσότεραΠανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά. Συνδυαστική Λογική. Επιμέλεια Διαφανειών: Δ.
Πανεπιστήμιο Πατρών Τμήμα Φυσικής Ψηφιακά Ηλεκτρονικά Συνδυαστική Λογική Επιμέλεια Διαφανειών: Δ. Μπακάλης Πάτρα, Φεβρουάριος 2009 Ψηφιακά Κυκλώματα Τα ψηφιακά κυκλώματα διακρίνονται σε συνδυαστικά (combinational)
Διαβάστε περισσότεραΠΕΡΙΕΧΟΜΕΝΑ ΠΕΡΙΕΧΟΜΕΝΑ.3 ΑΣΥΓΧΡΟΝΟΣ ΔYΑΔΙΚΟΣ ΑΠΑΡΙΘΜΗΤΗΣ.5 ΑΣΥΓΧΡΟΝΟΣ ΔΕΚΑΔΙΚΟΣ ΑΠΑΡΙΘΜΗΤΗΣ.7 ΑΣΥΓΧΡΟΝΟΣ ΔΕΚΑΔΙΚΟΣ ΑΠΑΡΙΘΜΗΤΗΣ ΜΕ LATCH.
ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ & ΥΠΟΛΟΓΙΣΤΩΝ ΨΗΦΙΑΚΑ ΟΛΟΚΛΗΡΩΜΕΝΑ ΚΥΚΛΩΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ ΣΗΜΕΙΩΣΕΙΣ ΑΠΑΡΙΘΜΗΤΕΣ Κ. ΕΥΣΤΑΘΙΟΥ, Γ. ΠΑΠΑΔΟΠΟΥΛΟΣ
Διαβάστε περισσότεραΕπιβεβαίωση ορθής λειτουργίας απλών ψηφιακών κυκλωμάτων
Επιβεβαίωση ορθής λειτουργίας απλών ψηφιακών κυκλωμάτων Δημήτρης Κωνσταντίνου, Γιώργος Δημητρακόπουλος Εφόσον έχουμε περιγράψει το κύκλωμά μας σε System Verilog θα πρέπει να βεβαιωθούμε πως λειτουργεί
Διαβάστε περισσότεραΠρόλογος...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.1 Εισαγωγή στα FLIP FLOP 3.1.1 Θεωρητικό Υπόβαθρο Τα σύγχρονα ακολουθιακά κυκλώματα με τα οποία θα ασχοληθούμε στο εργαστήριο των Ψηφιακών συστημάτων
Διαβάστε περισσότεραΚεφάλαιο 6. Σύγχρονα και ασύγχρονα ακολουθιακά κυκλώματα
Κεφάλαιο 6 Σύγχρονα και ασύγχρονα ακολουθιακά κυκλώματα 6.1 Εισαγωγή Η εκτέλεση διαδοχικών λειτουργιών απαιτεί τη δημιουργία κυκλωμάτων που μπορούν να αποθηκεύουν πληροφορίες, στα ενδιάμεσα στάδια των
Διαβάστε περισσότεραΠεριγραφή Κυκλωμάτων με χρήση της VHDL. Εισαγωγικές έννοιες για σχεδιασμό με τη VHDL
Περιγραφή Κυκλωμάτων με χρήση της VHDL Εισαγωγικές έννοιες για σχεδιασμό με τη VHDL Οργάνωση Παρουσίασης VHDL εισαγωγικές έννοιες Ροή και επίπεδα σχεδιασμού ψηφιακών κυκλωμάτων Μοντελοποίηση Καθυστερήσεων
Διαβάστε περισσότεραΕργαστήριο Εισαγωγής στη Σχεδίαση Συστημάτων VLSI
Ε.Μ.Π. - ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΡΓΑΣΤΗΡΙΟ ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗ ΣΧΕΔΙΑΣΗ ΣΥΣΤΗΜΑΤΩΝ VLSI
Διαβάστε περισσότεραΛΥΣΕΙΣ 3 ης ΓΡΑΠΤΗΣ ΕΡΓΑΣΙΑΣ
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΠΡΟΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΠΛΗΡΟΦΟΡΙΚΗ ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ ΕΡΓΑΣΤΗΡΙΟ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΛΥΣΕΙΣ 3 ης ΓΡΑΠΤΗΣ ΕΡΓΑΣΙΑΣ ΠΑΤΡΑ 2006 9.
Διαβάστε περισσότερα7.1 Θεωρητική εισαγωγή
ΨΗΦΙΑΚΑ ΚΥΚΛΩΜΑΤΑ - ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 7 ΑΚΟΛΟΥΘΙΑΚΑ ΚΥΚΛΩΜΑΤΑ ΜΑΝ ΑΛΩΤΕΣ FLIP FLOP Σκοπός: Η κατανόηση της λειτουργίας των βασικών ακολουθιακών κυκλωµάτων. Θα µελετηθούν συγκεκριµένα: ο µανδαλωτής (latch)
Διαβάστε περισσότεραΑΣΚΗΣΗ 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 ΕΡΩΤΗΣΕΙΣ ΜΕ ΤΙΣ ΑΝΤΙΣΤΟΙΧΕΣ ΑΠΑΝΤΗΣΕΙΣ ΓΙΑ ΤΟ ΜΑΘΗΜΑ ΨΗΦΙΑΚΑ ΚΥΚΛΩΜΑΤΑ 1) Να μετατρέψετε τον δεκαδικό αριθμό (60,25) 10, στον αντίστοιχο δυαδικό 11111,11 111001,01 111100,01 100111,1 111100,01 2)
Διαβάστε περισσότεραΣύγχρονοι Απαριθμητές. Διάλεξη 8
Σύγχρονοι Απαριθμητές Διάλεξη 8 Δομή της διάλεξης Εισαγωγή Σύγχρονος Δυαδικός Απαριθμητής Σύγχρονος Δεκαδικός Απαριθμητής Προγραμματιζόμενοι Απαριθμητές Ασκήσεις 2 Σύγχρονοι Απαριθμητές Εισαγωγή 3 Εισαγωγή
Διαβάστε περισσότεραΠανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ψηφιακή Σχεδίαση
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Ψηφιακή Σχεδίαση Ενότητα 9: Ελαχιστοποίηση και Κωδικοποίηση Καταστάσεων, Σχεδίαση με D flip-flop, Σχεδίαση με JK flip-flop, Σχεδίαση με T flip-flop Δρ. Μηνάς
Διαβάστε περισσότεραΕργαστηριακή Άσκηση 4: Ιεραρχική σχεδίαση και προσχεδιασμένοι πυρήνες
Εργαστηριακή Άσκηση 4: Ιεραρχική σχεδίαση και προσχεδιασμένοι πυρήνες Στην 4 η εργαστηριακή άσκηση θα ασχοληθούμε με την ιεραρχική σχεδίαση. Συγκεκριμένα θα μάθουμε να σχεδιάζουμε απλές οντότητες τις οποίες
Διαβάστε περισσότεραC D C D C D C D A B
Απλοποίηση µέσω Πίνακα Karnaugh: Παράδειγµα - 2 Στον παρακάτω πίνακα έχει ήδη γίνει το «βήμα- 1». Επομένως: Βήμα 2: Δεν υπάρχουν απομονωμένα κελιά. Βήμα 3: Στο ζεύγος (3,7) το κελί 3 γειτνιάζει μόνο με
Διαβάστε περισσότεραΠΛΗ10 Κεφάλαιο 2. ΠΛH10 Εισαγωγή στην Πληροφορική: Τόμος Α Κεφάλαιο: : Αριθμητική περιοχή της ALU 2.5: Κυκλώματα Υπολογιστών
ΠΛH10 Εισαγωγή στην Πληροφορική: Τόμος Α Κεφάλαιο: 2 2.3 : Αριθμητική περιοχή της ALU 2.5: Κυκλώματα Υπολογιστών Στόχοι Μαθήματος: Να γνωρίσετε τις βασικές αρχές αριθμητικής των Η/Υ. Ποια είναι τα κυκλώματα
Διαβάστε περισσότεραΠανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ψηφιακή Σχεδίαση
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Ψηφιακή Σχεδίαση Ενότητα 7: κωδικοποιητές, κωδικοποιητές προτεραιότητας, πολυπλέκτες, υλοποίηση συνάρτησης με πολυπλέκτη, αποπλέκτες, πύλη 3ιών καταστάσεων,
Διαβάστε περισσότεραΗ κανονική μορφή της συνάρτησης που υλοποιείται με τον προηγούμενο πίνακα αληθείας σε μορφή ελαχιστόρων είναι η Q = [A].
Κανονική μορφή συνάρτησης λογικής 5. Η κανονική μορφή μιας λογικής συνάρτησης (ΛΣ) ως άθροισμα ελαχιστόρων, από τον πίνακα αληθείας προκύπτει ως εξής: ) Παράγουμε ένα [A] όρων από την κάθε σειρά για την
Διαβάστε περισσότεραΤΙΤΛΟΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΑΣΚΗΣΗΣ ΚΑΤΑΧΩΡΗΤΕΣ ΟΛΙΣΘΗΤΕΣ
ΣΧΟΛΗ ΑΣΠΑΙΤΕ ΤΜΗΜΑ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΗΛΕΚΤΡΟΛΟΓΙΑΣ ΕΡΓΑΣΤΗΡΙΟ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΘΕΩΡΗΤΙΚΟ ΜΕΡΟΣ ΤΙΤΛΟΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΑΣΚΗΣΗΣ ΚΑΤΑΧΩΡΗΤΕΣ ΟΛΙΣΘΗΤΕΣ 1) Το παρακάτω κύκλωμα του σχήματος 1 είναι ένας καταχωρητής-ολισθητής
Διαβάστε περισσότεραK24 Ψηφιακά Ηλεκτρονικά 9: Flip-Flops
K24 Ψηφιακά Ηλεκτρονικά 9: TEI Πελοποννήσου Σχολή Τεχνολογικών Εφαρμογών Τμήμα Μηχανικών Πληροφορικής ΤΕ ΤΕΧΝΟΛΟΓΙΚΟ Περιεχόμενα 1 2 3 Γενικά Ύστερα από τη μελέτη συνδυαστικών ψηφιακών κυκλωμάτων, θα μελετήσουμε
Διαβάστε περισσότερα«Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο Διάλεξη 8 η : Μηχανές Πεπερασμένων Κaταστάσεων σε FPGAs
ΤΕΙ Δυτικής Ελλάδας Τμήμα Μηχανικών Πληροφορικής ΤΕ Εργαστήριο Σχεδίασης Ψηφιακών Ολοκληρωμένων Κυκλωμάτων και Συστημάτων «Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο 2016-2017 Διάλεξη 8 η :
Διαβάστε περισσότεραΑκολουθιακό κύκλωμα Η έξοδος του κυκλώματος εξαρτάται από τις τιμές εισόδου ΚΑΙ από την προηγούμενη κατάσταση του κυκλώματος
1 Συνδυαστικό κύκλωμα Η έξοδος του κυκλώματος εξαρτάται ΜΟΝΟ από τις εισόδους του Εάν γνωρίζουμε τις τιμές των εισόδων του κυκλώματος, τότε μπορούμε να προβλέψουμε ακριβώς τις εξόδους του Ακολουθιακό κύκλωμα
Διαβάστε περισσότεραΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων
ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων Χειμερινό Εξάμηνο 2018-2019 Ροή Σχεδίασης Κυκλωμάτων και Εργαλεία CAD ΗΥ220 - Βασίλης Παπαευσταθίου 1 Transistor: Δομική μονάδα κυκλωμάτων Τα ολοκληρωμένα κυκλώματα
Διαβάστε περισσότεραf(x, y, z) = y z + xz
Λύσεις θεμάτων Εξεταστικής Περιόδου Ιανουαρίου Φεβρουαρίου 27 ΘΕΜΑ Ο (2, μονάδες) Δίνεται η λογική συνάρτηση : f (, y, z ) = ( + y )(y + z ) + y z. Να συμπληρωθεί ο πίνακας αλήθειας της συνάρτησης. (,
Διαβάστε περισσότεραΜετρητής Ριπής ΛΟΓΙΚΗ ΣΧΕΔΙΑΣΗ. Αναφορά 9 ης. εργαστηριακής άσκησης: ΑΦΡΟΔΙΤΗ ΤΟΥΦΑ Α.Μ.:2024201100032
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΛΟΠΟΝΝΗΣΟΥ ΣΧΟΛΗ ΟΙΚΟΝΟΜΙΑΣ, ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΛΟΓΙΚΗ ΣΧΕΔΙΑΣΗ Αναφορά 9 ης εργαστηριακής άσκησης: Μετρητής Ριπής ΑΦΡΟΔΙΤΗ
Διαβάστε περισσότεραΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων
ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωμάτων Χειμερινό Εξάμηνο 2017-2018 Λογικές Πύλες, Στοιχεία Μνήμης, Συνδυαστική Λογική και Κυματομορφές ΗΥ220 - Βασίλης Παπαευσταθίου & Γιώργος Καλοκαιρινός 1 Τα βασικά της
Διαβάστε περισσότεραΗΥ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 μέρος Γ. Δημητρακόπουλος Το πρώτο σας κύκλωμα Τα ψηφιακά κυκλώματα είναι μια συλλογή από λογικές πύλες και ακολουθιακά στοιχεία αποθήκευσης (ή συγχρονισμού) όπως τα flip-flops.
Διαβάστε περισσότεραΛογική Σχεδίαση Ι - Εξεταστική Φεβρουαρίου 2013 Διάρκεια εξέτασης : 160 Ονοματεπώνυμο : Α. Μ. Έτος σπουδών:
Λογική Σχεδίαση Ι - Εξεταστική Φεβρουαρίου 23 Διάρκεια εξέτασης : 6 Ονοματεπώνυμο : Α. Μ. Έτος σπουδών: Θέμα (,5 μονάδες) Στις εισόδους του ακόλουθου κυκλώματος c b a εφαρμόζονται οι κάτωθι κυματομορφές.
Διαβάστε περισσότεραΣύνθετοι τύποι και λειτουργίες. (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.3) ΧΑΡΗΣ ΘΕΟΧΑΡΙΔΗΣ Επίκουρος Καθηγητής, ΗΜΜΥ (ttheocharides@ucy.ac.cy)
Διαβάστε περισσότερα