Προπτυχιακός φοιτητής Σχολής Θετικών Επιστημών τμήματος Φυσικής ΑΠΘ

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

Download "Προπτυχιακός φοιτητής Σχολής Θετικών Επιστημών τμήματος Φυσικής ΑΠΘ"

Transcript

1 0

2 ... Μάλτας Νικόλαος Προπτυχιακός φοιτητής Σχολής Θετικών Επιστημών τμήματος Φυσικής ΑΠΘ Copyright Μάλτας Νικόλαος 2016 Με επιφύλαξη παντός δικαιώματος. All rights reserved. Απαγορεύεται η αντιγραφή, αποθήκευση και διανομή εξ' ολοκλήρου, ή τμήματος αυτής για εμπορικό σκοπό. Επιτρέπεται η ανατύπωση, αποθήκευση και διανομή για σκοπό μη κερδοσκοπικό, εκπαιδευτικής ή ερευνητικής φύσης, υπό την προϋπόθεση να αναφέρεται η πηγή προέλευσης και να διατηρείται το παρόν μήνυμα. Ερωτήματα που αφορούν τη χρήση της εργασίας για κερδοσκοπικό σκοπό, πρέπει να απευθύνονται προς το συγγραφέα. Οι απόψεις και τα συμπεράσματα που περιέχονται σε αυτό το έγγραφο εκφράζουν το συγγραφέα και δεν πρέπει να ερμηνευθεί ότι αντιπροσωπεύουν τις επίσημες θέσεις του Αριστοτελείου Πανεπιστημίου Θεσσαλονίκης. 1

3 Ευχαριστίες Θα ήθελα να ευχαριστήσω θερμά τον καθηγητή μου Σπυρίδων Νικολαΐδη και τον Δημήτριο Πορλιδά για τη συνεχή βοήθεια που μου παρείχαν τόσο για την ολοκλήρωση της εργασίας αυτής, όσο και για τις γνώσεις που μου μετέφεραν. Τέλος οφείλω πολλές ευχαριστίες στην οικογένεια και τους φίλους μου που με στήριξαν όλα αυτά τα χρόνια. 2

4 ΠΕΡΙΛΗΨΗ Σκοπός της πτυχιακής εργασίας αυτής ήταν η διερεύνηση της υλοποίηση μιας γεννήτριας ημιτονικού σήματος κάνοντας χρήση ψηφιακών κυκλωμάτων με διάφορους πιθανούς τρόπους και αναλύοντας παράλληλα τα πλεονεκτήματα και τα μειονεκτήματα του καθενός σε σύγκριση με τους υπόλοιπους. Προκειμένου να επιτευχθεί ο σκοπός αυτός, σχεδιάστηκαν 4 διαφορετικές αρχιτεκτονικές ψηφιακού κυκλώματος, για τις οποίες χρησιμοποιήθηκαν κυκλώματα πολλαπλασιαστών, πολυπλεκτών, αθροιστών, μετρητών (counters) και μνήμης. Η υλοποίηση επιλέχθηκε να γίνει σε 16 bits χρησιμοποιώντας προσεγγίσεις με πολυώνυμα έως και 7 ου βαθμού.τα κυκλώματα αυτά περιγράφθηκαν με τη γλώσσα περιγραφής υλικού VHDL και προσομοιώθηκαν σε FPGA μοντέλου Spartan 3Ε. Το βασικότερο εργαλείο λογισμικού που χρησιμοποιήθηκε ήταν το πακέτο ISE της Xilinx. Πιο συγκεκριμένα, η υλοποίηση δεν ήταν εφικτό αν γίνει αποκλειστικά με χρήση ψηφιακού κυκλώματος, καθώς η γεννήτρια ημιτονικού σήματος τάσης από τη φύση της απαιτεί την ύπαρξη ενός αναλογικού κυκλώματος για να υλοποιηθεί, πράγμα που καθιστά απαραίτητη προϋπόθεση τη χρήση ενός αναλογικού κυκλώματος μετατροπής ψηφιακής πληροφορίας σε αναλογική (digital to analog) στην έξοδο. Επομένως η υλοποίηση έγινε εν μέρει από ψηφιακό κύκλωμα και με προσθήκη ενός αναλογικού κυκλώματος στην έξοδο. Επίκεντρο της εργασίας αυτής είναι η σχεδίαση του ψηφιακού κυκλώματος, και οι διάφοροι τρόποι υλοποίησής του, λαμβάνοντας υπόψιν τα διάφορα πλεονεκτήματα της κάθε αρχιτεκτονικής. Σε κάθε περίπτωση, το ψηφιακό κύκλωμα προσεγγίζει με χρήση πολυωνύμων Taylor και Maclaurin στιγμιότυπα της κυματομορφής κωδικοποιημένα σε 16 bits και αυτή η πληροφορία μετατρέπεται σε αναλογική και εξέρχεται ως ημιτονικό σήμα τάσης. Εν τέλει, από τις διάφορες αρχιτεκτονικές που σχεδιάστηκαν και προσομοιώθηκαν διαπιστώθηκε πως πάντα θα υπάρχει ένα ποσοστό σφάλματος αντιστρόφως ανάλογο με την ποσότητα του υλικού (hardware) που επενδύθηκε. Επίσης οι χρονικές επιδόσεις του κυκλώματος σε κάθε περίπτωση ήταν καλύτερες για αρχιτεκτονικές που ήταν λιγότερο οικονομικές ως προς το υλικό (hardware) που επενδύθηκε. 3

5 4

6 ABSTRACT The main purpose of this thesis was the research on the implementation of a voltage source of sinusoidal signal by utilizing digital circuits in various methods and analyzing, in any case, the possible benefits and disadvantages of each architecture in comparison to the other ones. In order for this to be achieved, 4 different architectures for the same digital circuit were designed. For these architectures, certain multiplier, multiplexer, adder, counter and memory circuits were utilized. The whole implementation was chosen to happen in the length of 16 bits and the approximations were made with 7 th order Taylor series. The aforementioned circuits were described in the hardware description language VHDL and simulated with an FPGA whose model was Spartan 3E. The most important software instrument was the Xilinx ISE design Suite. More specifically, the implementation was not possible to happen exclusively with the utilization of a digital circuit, since the sinusoidal voltage signal source by its nature requires an analog circuit to function, which demanded the utilization of a digital to analog conversion circuit for the output. Thus, the implementation was made partially by a digital circuit and with an addition of an analog circuit to convert its output. However, the focal point of this thesis is the design of the digital circuit and the various options of its architecture, while taking into account the possible benefits of each architecture. In any case, the digital circuit approximates via Taylor or Maclaurin series the samples of the wave function encoded in a 16-bit-length output, which in turn is decoded and exits as a sinusoidal voltage waveform. Finally, throughout the architectures that were designed and simulated it was ascertained, that there will always be an error bracket percentage, which is inversely proportional to the amount of hardware that has been invested, thus making better circuits in matters of quality more expensive. It should also be noted, that the temporal performances of the circuit were better for less cost-efficient architectures. 5

7 ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ 1 ΕΙΣΑΓΩΓΗ Σχετικά με τις πηγές ημιτονικού σήματος Ψηφιακό Κύκλωμα Ταλαντωτή ΚΕΦΑΛΑΙΟ 2 ΘΕΩΡΗΤΙΚΟ ΥΠΟΒΑΘΡΟ - VHDL Δομή του Κώδικα Τύποι Δεδομένων Τελεστές και Χαρακτηριστικά δεδομένων Παράλληλος κώδικας Ακολουθιακός κώδικας Σήματα, μεταβλητές, σταθερές και παράμετροι Πακέτα βιβλιοθήκης και εξαρτήματα Συναρτήσεις και διαδικασίες ΚΕΦΑΛΑΙΟ 3 ΜΑΘΗΜΑΤΙΚΗ ΔΙΕΡΕΥΝΗΣΗ ΚΑΙ ΣΦΑΛΜΑΤΑ Ορισμός της συνάρτησης που θα εκτελεστεί Αριθμός bits της αναπαράστασης των αριθμών εντός της αρχιτεκτονικής Τάξη του πολυωνύμου για την προσέγγιση της συνάρτησης Ολικό σφάλμα από την προσέγγιση και την αναπαράσταση των τιμών της συνάρτησης Ορισμός ανάλυσης της κυματομορφής

8 ΚΕΦΑΛΑΙΟ 4 ΣΧΕΔΙΑΣΜΟΣ ΤΩΝ ΑΡΧΙΤΕΚΤΟΝΙΚΩΝ Αρχιτεκτονική Αρχιτεκτονική Αρχιτεκτονική Αρχιτεκτονική Αρχιτεκτονική Συμπεράσματα - Παρατηρήσεις ΠΑΡΑΡΤΗΜΑ ΚΩΔΙΚΑΣ VHDL Αρχιτεκτονική Επιμέρους κυκλώματα της Αρχιτεκτονικής Πολλαπλασιαστής Τελικός αθροιστής Μετρητής Μνήμη ROM Αρχιτεκτονική Επιμέρους κυκλώματα της Αρχιτεκτονικής Εξωτερικός Μετρητής Μνήμη ROM Εσωτερικός μετρητής Πολυπλέκτης Πολλαπλασιαστής Τελικός αθροιστής

9 Αρχιτεκτονική 3α Αρχιτεκτονική 3β Επιμέρους κυκλώματα των Αρχιτεκτονικών Μετρητής Μνήμη ROM Πολλαπλασιαστής Τελικός αθροιστής Αρχιτεκτονική Επιμέρους κυκλώματα της Αρχιτεκτονικής Εξωτερικός Μετρητής Μνήμη ROM Εσωτερικός Μετρητής Πολλαπλασιαστής Πολυπλέκτης Τελικός Αθροιστής ΑΡΧΙΤΕΚΤΟΝΙΚΗ Επιμέρους κυκλώματα της Αρχιτεκτονικής Μνήμη ROM Μετρητής ΒΙΒΛΙΟΓΡΑΦΙΑ

10 ΚΕΦΑΛΑΙΟ 1 ΕΙΣΑΓΩΓΗ 1.1. Σχετικά με τις πηγές ημιτονικού σήματος Οι πηγές ημιτονικού σήματος είναι ένα πολύ συνηθισμένο εργαλείο σε εργαστήρια ηλεκτρονικής, καθώς και σε οποιοδήποτε εργαστήριο κατασκευής/επιδιόρθωσης ηλεκτρονικών κυκλωμάτων ή για τη λειτουργία ραδιοφωνικών κεραίων. Πρόκειται για ένα εργαλείο γενικής χρήσης που οποιοσδήποτε ασχολείται με τη μελέτη κυκλωμάτων θα κληθεί κάποτε να χρησιμοποιήσει ή/και να σχεδιάσει. Κατά βάσιν ο σχεδιασμός τους και η υλοποίησή τους γίνεται με χρήση ταλαντωτών και αναλογικών οργάνων. Αυτό τους προσδίδει συγκεκριμένα κοινά χαρακτηριστικά και περιορισμούς ως προς τη λειτουργία τους. Μερικά από αυτά περιγράφονται παρακάτω: Συνήθως χρησιμοποιείται κάποιος ταλαντωτής RC για να παραχθεί ένα σχεδόν τέλειο ημιτονικό σήμα. Ο ταλαντωτής θα είναι είτε RC αν πρόκειται για σήμα κυκλικής συχνότητας κάτω του 1ΜHz, είτε LC σε συνδυασμό με τρανζίστορ αν πρόκειται για σήμα κυκλικής συχνότητας άνω του 1MHz. Αυτό είναι το κομμάτι του κυκλώματος που θα επιχειρηθεί να αντικατασταθεί με ψηφιακό κύκλωμα παρακάτω, καθώς αυτό καθορίζει ως επί το πλείστον τη λειτουργία του κυκλώματος προκαλώντας την ημιτονική διέγερση εντός της γεννήτριας. Το ημιτονικό σήμα που παράγεται στη συνέχεια μέσω μιας συνδεσμολογίας ενισχυτή (συνήθως τελεστικού ενισχυτή ή ενισχυτή ακόλουθου εκπομπού τρανζίστορ) μετατρέπεται στο τελικό ωφέλιμο σήμα που χρησιμοποιούμε. Αυτό το τμήμα του κυκλώματος θα διατηρήσουμε ίδιο και θα αποτελεί το αναλογικό τμήμα της πηγής μας, μιας και δεν είναι εφικτή η υλοποίηση ενός ψηφιακού κυκλώματος που να εκτελεί αυτή τη λειτουργία. Η τάση εκκίνησης της ταλάντωσης είναι θερμικός θόρυβος και προέρχεται από της τυχαίες θερμικές ταλαντώσεις ηλεκτρονίων εντός των αντιστάσεων R του 9

11 κυκλώματος του ταλαντωτή. Πρακτικά, η κάθε αντίσταση μπορεί να θεωρηθεί ως μία μικρή πηγή ac τάσης που ταλαντώνεται και παράγει όλες τις συχνότητες και αυτά τα σήματα θερμικού ηλεκτρονιακού θορύβου ενισχύουμε με κατάλληλο κύκλωμα περαιτέρω προκειμένου να λειτουργήσει η πηγή μας υπό τις ζητούμενες προδιαγραφές. Όσον αφορά το παραγόμενο σήμα, όντας ημιτονικό, είναι ένα περιοδικό ηλεκτρικό σήμα που χαρακτηρίζεται από σταθερή περίοδο Τ, συχνότητα f, κυκλική συχνότητα ω και μέγιστο πλάτος V 0. Πιο συγκεκριμένα περιγράφεται από τον τύπο: V V 0 sin( t) (1) Το παραγόμενο σήμα είναι πιο δύσκολο να παραχθεί ανάλογα με το πόση ακρίβεια θέλουμε να έχει. Αν για παράδειγμα πρόκειται να χρησιμοποιηθεί ως αναφορά για την μέτρηση παραμόρφωσης ενός σχεδόν ιδανικού τελεστικού ενισχυτή, όπου παρουσιάζει πολύ μικρές παραμορφώσεις, θα χρειαστούμε ένα πολύ καλό ημιτονικό σήμα, που θα ήταν καλό να προκύψει από ειδική συσκευή. 1.2 Ψηφιακό Κύκλωμα Ταλαντωτή Σχετικά με τους ταλαντωτές, όπως αναφέρθηκε και παραπάνω, για χαμηλές συχνότητες χρησιμοποιούνται ταλαντωτές RC και για υψηλές (άνω του 1 MHz) LC. ιδιαίτερα συνήθεις RC ταλαντωτές είναι η γέφυρα Wien που αποτελεί τη βιομηχανική τυποποίηση του RC ταλαντωτή και ο Ταλαντωτής διπλού Τ. Αντίστοιχα για τον LC ταλαντωτή πολύ συνηθισμένοι είναι ο ταλαντωτής Colpitts και o ταλαντωτής Armstrong ;ή διάφοροι κρυσταλλικοί ταλαντωτές όταν μας σημαντική είναι η ακρίβεια της συχνότητας της ταλάντωσης. Επίσης σημαντικό θα ήταν να τονιστεί ότι στις υψηλές συχνότητες το παραγόμενο σήμα βρίσκεται συχνοτικά εκτός της περιοχής ομαλής λειτουργίας του τελεστικού ενισχυτή, οπότε χρησιμοποιείται ενισχυτής τρανζίστορ BJT ή FEΤ. Παρακάτω παρατίθενται οι συνδεσμολογίες που αναφέρθηκαν παραπάνω. 10

12 Σχήμα (1.2.1) : Γέφυρα Wien. Σχήμα (1.2.2) : Ταλαντωτής Διπλού Τ. Σχήμα (1.2.3) : Ταλαντωτής Colpitts. Σχήμα (1.2.4) :Ταλαντωτής Armstrong. 11

13 Στην περίπτωσή μας, όπως αναφέρθηκε παραπάνω, θα επιχειρηθεί κυρίως η αντικατάσταση του τμήματος του ταλαντωτή της πηγής με ένα ψηφιακό κύκλωμα. Το παραγόμενο ημίτονο θα είναι όσο καλύτερο γίνεται προσπαθώντας παράλληλα να μη χρησιμοποιηθεί αλόγιστα μεγάλη ποσότητα υλικού (hardware), πράγμα που σε ένα πιθανό μελλοντικό μοντέλο θα επιβαρύνει το κόστος παραγωγής και θα το κάνει λιγότερο προσιτό προς τον καταναλωτή. Δεδομένου ότι στα ψηφιακά κυκλώματα το κόστος παραγωγής αλλά και ενεργειακής ανάγκης όλο και μειώνεται με την πάροδο του χρόνου και την ραγδαία ανάπτυξη της τεχνολογίας κατασκευής τους, πιθανότατα αργά ή γρήγορα να γίνει προτιμότερη η χρήση ενός ψηφιακού κυκλώματος ταλαντωτή έναντι ενός αναλογικού. Βασικότερο πλεονέκτημα των ψηφιακών έναντι των αναλογικών είναι πως η λειτουργία των αναλογικών επηρεάζεται από τις θερμοκρασιακές συνθήκες του χώρου που βρίσκονται. Ειδικά στην περίπτωση του ταλαντωτή, όπου η ταλάντωση του σήματος βασίζεται σε θερμοκρασιακό θόρυβο. Επίσης ένα σημαντικό πλεονέκτημα των ψηφιακών κυκλωμάτων έναντι των αναλογικών είναι η σχετική επιρρέπεια των αναλογικών σε θόρυβο από το περιβάλλον, στον οποίο τα ψηφιακά είναι μακράν πιο ανθεκτικά. Λαμβάνοντας υπόψιν αυτά και τη συνεχή μείωση κόστους και βελτίωση των ψηφιακών κυκλωμάτων η αντικατάσταση του μεγαλύτερου μέρους των αναλογικών κυκλωμάτων της καθημερινότητάς μας κρίνεται αναπόφευκτη (αν και εφόσον συνεχίσουν να ισχύουν οι παρούσες συνθήκες ανάπτυξης της τεχνολογίας παγκοσμίως). Τέλος, ένα τελευταίο πλεονέκτημα που αναμένεται να παρουσιάζει το κύκλωμα του ψηφιακού ταλαντωτή είναι η λειτουργία του σε μεγαλύτερο συχνοτικό εύρος έναντι των προκατόχων του. Γνωρίζοντας όμως πως ένα τμήμα του τελικού κυκλώματος θα παραμένει αναλογικό, το τελικό κύκλωμα αναμένεται να μην δύναται να εξάγει ημιτονικό σήμα οποιασδήποτε συχνότητας. Στην πηγή ημιτονικού σήματος που θα σχεδιαστεί, γενικός σκοπός μας είναι η εξαγόμενη κυματομορφή να παρουσιάζει σφάλμα μικρότερο του 0.1% ώστε να θεωρηθεί αποδεκτή. Για το λόγο αυτό θα γίνει μια μαθηματική διερεύνηση ούτως ώστε να παρατεθούν οι διάφορες δυνατότητες υλοποίησης του ψηφιακού κυκλώματος και το σφάλμα που αναλογεί σε κάθε επιλογή. Οι τελικές επιλογές ως προς τις προδιαγραφές του κυκλώματος θα έχουν γίνει με γνώμονα τη διατήρηση τις ποιότητας τη κυματομορφής κάτω από το προαναφερθέν όριο σφάλματος και χρησιμοποιώντας όσο είναι εφικτό λιγότερο υλικό για χαμηλότερο κόστος παραγωγής. 12

14 ΚΕΦΑΛΑΙΟ 2 ΘΕΩΡΗΤΙΚΟ ΥΠΟΒΑΘΡΟ - VHDL Η VHDL προέρχεται από το ακρωνύμιο VHSIC Hardware Description Language και το VHSIC με τη σειρά του από το ακρωνύμιο Very High Speed Integrated Circuits. Στα ελληνικά μεταφράζεται ως: "γλώσσα περιγραφής υλικού ολοκληρωμένων κυκλωμάτων πολύ υψηλής ταχύτητας". Χρησιμοποιείται, όπως υποδηλώνει και το όνομά της, για την περιγραφή και σχεδιασμό ολοκληρωμένων κυκλωμάτων και δίνει δυνατότητες σύνθεσης και προσομοίωσης για τα υπό περιγραφή κυκλώματα. Η γλώσσα αυτή προσφέρει πολύ μεγάλη ευκολία στο σχεδιασμό κυκλωμάτων με τις δυνατότητες αυτές που προσδίδει. Εφόσον έχει περιγραφεί ένα ολοκληρωμένο κύκλωμα στη γλώσσα αυτή, μπορεί ο κώδικας είτε να εισαχθεί σε ένα PLD (Programmable Logic Device) όπου θα προσομοιωθεί η λειτουργία του, είτε να σταλεί σε ένα εργοστάσιο για την παραγωγή ενός ASIC (Application Specific Integrated Circuit). Στην περίπτωσή μας, ο τελικός κώδικας που εξήχθη χρησιμοποιήθηκε για τον προγραμματισμό ενός PLD, που στην περίπτωσή μας ήταν ένα FPGA (Field Programmable Gate Arrays) της οικογένειας Spartan. Η VHDL όντας το βασικότερο εργαλείο στο σχεδιασμό του ολοκληρωμένου κυκλώματος που πραγματεύεται η εργασία αυτή, θα ήταν σημαντικό να αναλυθεί αρκετά και να εξηγηθεί ο τρόπος που χρησιμοποιήθηκε. Για το λόγο αυτό θα αφιερωθεί το κεφάλαιο αυτό στην επεξήγηση της χρήσης της. Η vhdl είναι μία γλώσσα που δημιουργήθηκε στα αγγλικά. Για το λόγο αυτό στο παρακάτω κεφάλαιο, καθώς και στην υπόλοιπη εργασία συχνά θα χρησιμοποιούνται αγγλικοί όροι όταν θα αναφερόμαστε σε ορολογία της vhdl. Η επιλογή αυτή κρίθηκε απαραίτητη προκειμένου να αναλυθεί σωστά η vhdl, δίχως να υπάρξουν παρερμηνείες ή/και ανασάφειες. 13

15 2.1. Δομή του Κώδικα Καταρχήν, σημαντικό είναι να ειπωθεί, πως σε αντίθεση με εκτελέσιμα προγράμματα υπολογιστή, όπου οι εντολές είναι ακολουθιακές, στη VHDL οι εντολές είναι παράλληλες. Επομένως είναι πιο σωστό να την αναφέρουμε σαν κώδικα αντί για γλώσσα προγραμματισμού. Οι εντολές είναι εφικτό να γραφούν ακολουθιακά μόνο εφόσον βρίσκονται μέσα σε process, function ή procedure. Ο κώδικας της VHDL λοιπόν έχει πολύ συγκεκριμένη δομή όταν περιγράφει διάφορες μονάδες κυκλωμάτων. Απαρτίζεται από 3 τμήματα: Library (βιβλιοθήκη) Entity (Οντότητα/ Μονάδα του κυκλώματος) Architecture (Αρχιτεκτονική της μονάδας του κυκλώματος) Σχήμα (2.1.1) Σχηματική αναπαράσταση της δομής της VHDL. Το τμήμα Library δηλώνει τα περιέχει πολλά πολύ συνηθισμένα τμήματα κώδικα που είναι απαραίτητα για τη λειτουργικότητα του κώδικα. Υπάρχουν κάποιες βιβλιοθήκες που είναι πολύ συνηθισμένες και δηλώνονται αυτόματα και κάποιες άλλες που χρειάζονται σε πολύ συγκεκριμένες περιπτώσεις. Επίσης δίνεται η δυνατότητα στο 14

16 χρήστη να ορίσει ο ίδιος δικές του βιβλιοθήκες για να χρησιμοποιεί πιο εύκολα μεγάλα τμήματα κώδικα και να μη χρειάζεται να τα ξαναγράφει διαρκώς. Αυτό γίνεται με χρήση των Packages μέσα στα οποία μπορούν να εισαχθούν functions, procedures και components. Η δήλωση βιβλιοθηκών γίνεται με χρήση της παρακάτω σύνταξης: LIBRARY library_name; USE library_name.package_name.package_parts; Τα 3 πιο συνηθισμένα πακέτα βιβλιοθηκών που χρειάζονται συνήθως είναι: ieee.std_logic_1164 standard.all work.all Κάποια πολύ χρήσιμα πακέτα τα οποία μπορεί να χρειαστούν περιστασιακά είναι : std_logic_arith. Δίνει δυνατότητα χρήσης προσημασμένων και μη προσημασμένων αριθμών στο δυαδικό (signed, unsigned), καθώς και δυνατότητα εκτέλεσης αριθμητικών πράξεων και σύγκρισης μεταξύ τους. Επίσης περιέχει συναρτήσεις μετατροπής δεδομένων από μια μορφή σε κάποια άλλη. (πχ από μη προσημασμένο σε ακέραιο) std_logic_signed. Περιέχει συναρτήσεις ούτως ώστε δεδομένα μορφής std_logic_vector να μπορούν να συμπεριφερθούν ως προσημασμένοι αριθμοί. std_logic_unsigned. Περιέχει συναρτήσεις ούτως ώστε δεδομένα μορφής std_logic_vector να μπορούν να συμπεριφερθούν ως μη προσημασμένοι αριθμοί. ieee.numeric_std. Δίνει δυνατότητα εκτέλεσης αριθμητικών πράξεων από μη προσημασμένους και προσημασμένους αριθμούς στο δυαδικό σύστημα. Κανονικά αριθμητικές πράξεις γίνονται μόνο από ακέραιους αριθμούς στο δεκαδικό. Το 2ο τμήμα του κώδικα είναι το τμήμα entity. Το τμήμα αυτό καθορίζει τα εξωτερικά χαρακτηριστικά του κυκλώματος και δίνει τη δυνατότητα δήλωσης των εισόδων/εξόδων του, καθώς και κάποιων μεταβλητών που ίσως χρειαστούν παρακάτω στον υπόλοιπο κώδικα. Στην ουσία περιγράφει το πώς θα φαίνεται εξωτερικά το 15

17 κύκλωμα στα υπόλοιπα εξαρτήματα (components) που θα συνδεθούν μαζί του. Ο κώδικάς του ακολουθεί την εξής σύνταξη: ENTITY entity_name IS (declarations) PORT ( name : mode type; name : mode type;...); END entity_name; Το signal_mode μπορεί να είναι είσοδος, έξοδος, και τα δύο, ή buffer (in, out, inout, buffer), ενώ το signal_type μπορεί αν είναι ένα από τα είδη σημάτων που θα αναφέρουμε παρακάτω. Εκτός από τους ακροδέκτες του κυκλώματος, στο entity γίνεται να δηλωθούν και μεταβλητές, όπως πχ generic που θα είναι ορατές και από τα υπόλοιπα τμήματα του κώδικα. Το τελευταίο τμήμα του κώδικα είναι το architecture, το οποίο αποτελεί την περιγραφή του εσωτερικού του κυκλώματος. Όλες οι λειτουργίες, οι αριθμητικές ή λογικές πράξεις και οι συναρτήσεις που εκτελεί το κύκλωμα καθορίζονται από αυτό το τμήμα. Η γενική σύνταξη του κώδικά του περιγράφεται παρακάτω. Όπως είναι λογικό, πρόκειται για το περιπλοκότερο τμήμα του κώδικα και ουσιαστικά σχεδόν όλη η υπόλοιπη θεωρία της vhdl ασχολείται με το πώς μπορεί να γραφεί αυτό το τμήμα: ARCHITECTURE name OF entity_name IS (declarations) BEGIN (code) END name; 16

18 2.2 Τύποι Δεδομένων Γενικά, προκειμένου να μπορέσει να εισαχθεί η πληροφορία σε ένα κύκλωμα και να υποστεί επεξεργασία πρέπει να κωδικοποιηθεί σε ένα τύπο δεδομένων. Ο κάθε τύπος δεδομένων έχει τα δικά του χαρακτηριστικά και μπορεί να υπαχθεί σε συγκεκριμένους τρόπους επεξεργασίας. Χαρακτηριστικό παράδειγμα αποτελεί το ότι ένας ακέραιος αριθμός μπορεί να εκφραστεί στο δεκαδικό σύστημα (τύπος integer), αλλά και στο δυαδικό σύστημα μόνο για θετικούς (τύπος unsigned). Η vhdl από μόνη της παρέχει κάποιους προκαθορισμένους τύπους δεδομένων για το χρήστη, αλλά δίνει και τη δυνατότητα ορισμού νέων τύπων, ώστε ο κάθε χρήστης να μπορεί να προσαρμόσει τον κώδικα στα προβλήματα και τις ανάγκες του. Αρχικά θα αναφερθούν οι προκαθορισμένοι τύποι δεδομένων και οι ιδιότητές τους. Τύπος BIT / BIT_VECTOR : Αποτελεί τον πιο απλό τρόπο κωδικοποίησης πληροφορίας. Όπως υποδηλώνει και το όνομά του, ορίζει ένα σήμα που μεταφέρει bits των οποίων οι δυνατές τιμές είναι λογικό 0 ή λογικό 1. Το σήμα μπορεί να οριστεί να είναι είτε βαθμωτό (bit), είτε διανυσματικό (bit_vector). Στην περίπτωση του βαθμωτού, πρέπει να οριστεί και ποια θα είναι τα msb (most significant bit) και lsb (least significant bit), αλλά και το μήκος του vector. Για το σκοπό αυτό ένα πιθανό port bit_vector δηλώνεται με τους εξής 2 τρόπους: x: IN BIT_VECTOR (7 DOWNTO 0); vector μήκους 8 bit με msb το πρώτο bit και lsb το τελευταίο bit. y: IN BIT_VECTOR (0 TO 15); vector μήκους 16 bit με msb το τελευταίο bit και lsb το πρώτο bit. Ο τρόπος δήλωσης των vectors είναι όμοιος και για τους υπόλοιπους τύπους σημάτων που μπορούν να είναι διανυσματικοί. 17

19 STD_LOGIC / STD_LOGIC_VECTOR : Αυτός ο τύπος δεδομένων αποτελεί ένα σύστημα λογικής της IEEE (Institute of Electrical and Electronics Engineers) που μπορεί να πάρει 8 δυνατές τιμές. Οι δυνατές τιμές είναι οι εξής: X : ισχυρή άγνωστη μεταβλητή 0 : ισχυρό low 1 : ισχυρό high Z : υψηλή αντίσταση (χρησιμοποιείται για τρισταθή buffers) W : Ασθενής άγνωστη μεταβλητή L : Ασθενές low Η : Ισχυρό high - : αδιάφορη τιμή Οι περισσότερες τιμές της λογικής αυτής προορίζονται μόνο για προσομοιώσεις. Τα 0, 1, και Ζ είναι τα μόνο που μπορούν να συντεθούν σε τελικό κύκλωμα. Στην περίπτωση που δύο σήματα STD_LOGIC καταλήγουν στον ίδιο κόμβο, η τελική τιμή του που παίρνει το εξερχόμενο σήμα καθορίζεται σύμφωνα με τον παρακάτω πίνακα. Ως επί το πλείστον αυτός ο τύπος χρησιμοποιείται για προσομοιώσεις λοιπόν και για τον εντοπισμό λαθών κατά τη σύνδεση εξόδων κυκλωμάτων. Επίσης σημαντικό είναι να αναφερθεί πως υπάρχει μια παραλλαγή του τύπου αυτού, η std_ulogic, η οποία εκτός από τις προηγούμενες δυνατές τιμές φέρει και την τιμή U : μη επιλυμένο. τα δεδομένα τύπου std_logic, αλλά το std_ulogic μπορούν να οριστούν και ως βαθμωτά, αλλά και ως διανυσματικά. 18

20 Σχήμα (2.2.1) Σύστημα τιμών STD_LOGIC BOOLEAN : Δεδομένα που υπάγονται μόνο σε λογικές πράξεις άλγεβρας Boole. Μόνο βαθμωτά και με 2 δυνατές τιμές : true, false. INTEGER : Με τον τύπο αυτό μπορούν να οριστούν ακέραιοι αριθμοί που περιγράφονται έως και με 32 bit (προσημασμένα, άρα και αρνητικοί). Άρα οι δυνατές τιμές είναι από έως NATURAL : Ομοίως με πριν, περιγράφονται μόνο φυσικοί αριθμοί έως REAL : Περιγράφονται πραγματικοί αριθμοί από έως Πολύ χρήσιμος τύπος δεδομένων για προσομοιώσεις, αλλά δε γίνεται να υλοποιηθεί η σύνθεσή του σε κύκλωμα. Προκειμένου να υλοποιηθούν κυκλώματα που επεξεργάζονται πραγματικούς αριθμούς πρέπει να εφαρμοστούν πολύ ειδικές αρχιτεκτονικές διαχείρισης fixed-point representation αριθμών (σταθερής υποδιαστολής) ή floating-point representation αριθμών (κινητής υποδιαστολής), όπου οι δεκαδικοί πολλαπλασιάζονται επί μία βάση ώστε να γίνουν πραγματικοί και να μπορούν να υποστούν αριθμητικές πράξεις από το σύστημα. SIGNED / UNSIGNED : Ο τύπος δεδομένων αυτός χρησιμοποιείται για να εκφράσει προσημασμένους ή μη προσημασμένους αριθμούς αντίστοιχα στο δυαδικό σύστημα. 19

21 Μπορούν να είναι μόνο διανυσματικά και παρά το γεγονός ότι μοιάζουν πολύ με τα bit και std_logic τύπου δεδομένα, έχουν το βασικό πλεονέκτημα ότι μπορούν να υποστούν αριθμητικές πράξεις όπως τα integer και natural, αφού στην ουσία αναπαριστούν αριθμούς. Πέραν των προκαθορισμένων τύπων όμως, όπως αναφέρθηκε και πιο πάνω, είναι εφικτή και η δήλωση και χρήση νέων τύπων από το χρήστη, προκειμένου ο κώδικας να είναι πιο ευέλικτος και προσαρμόσιμος σε κάθε περίπτωση. Η δήλωση αυτή είναι εφικτή μόνο στο τμήμα architectureτου κώδικα. Υπάρχουν 2 τρόποι να ορίσει κάποιος νέους τύπους δεδομένων στη vhdl. Εκτός από ορισμούς νέων τύπων δεδομένων, είναι εφικτός και ο ορισμός υποσυνόλων τύπων που είναι προκαθορισμένοι, ή ορισμένοι από το χρήστη. Ο πρώτος χρησιμοποιείται ακολουθεί την παρακάτω σύνταξη: TYPE name IS RANGE x TO y; SUBTYPE name IS predefined_type_name RANGE x TO y; Ο δεύτερος τρόπος ορίζει ξεχωριστά όλες τις τιμές μία προς μία: TYPE name IS ( x, z, w,...,y); SUBTYPE name IS ( x, z, w,...,y); Ένα παράδειγμα ορισμού νέων τύπων παρατίθεται παρακάτω : TYPE student_grade IS RANGE 0 TO 10; SUBTYPE student_grade_pass IS student_grade RANGE 5 TO 10; TYPE student_grade IS ( 0,1,2,3,4,5,6, 7, 8, 9, 10); SUBTYPE student_grade_pass IS student_grade (5, 6, 7, 8, 9, 10); 20

22 Εκτός των υπολοίπων, η vhdl δίνει και τη δυνατότητα ορισμού πινάκων μεταβλητών. Οι πίνακες μπορούν να έχουν θεωρητικά άπειρες διαστάσεις, πρακτικά συνθέσιμοι σε κύκλωμα όμως είναι οι μονοδιάστατοι και οι δισδιάστατοι πίνακες. Η πιο συνηθισμένη εφαρμογή τους απαντάται σε κυκλώματα καταχωρητών ή μνήμης γενικότερα, όπου ο καθορισμός των πινάκων τους γίνεται μέσω της ανάθεσής τους σε ένα signal, constant ή variable εντός του τμήματος architecture του κώδικα. Η δήλωσή τους ακολουθεί την παρακάτω σύναξη: TYPE array_name IS ARRAY (horizontal_length, vertical_length ) OF data_type; SIGNAL signal_name : array_name [:= initial_value]; Προκειμένου να ανατεθούν τιμές και να γίνει διαχείρισή τους πρέπει να ανατεθούν σε κάποιο signal, constant ή variable. Στην σύνταξη που περιγράφηκε παραπάνω τυχαία επιλέχθηκε το πρώτο. Οι δηλώσεις των διαστάσεων ενός πίνακα γίνονται όμοια με τη δήλωση διαστάσεων των vectors. Ο καθορισμός ενός port στο τμήμα του entity δεν είναι εφικτός με την παραπάνω διαδικασία, διότι δεν γίνεται να οριστούν νέοι τύποι δεδομένων στο τμήμα αυτό. Προκειμένου να δύναται να τεθεί ένα port ως πίνακας, πρέπει να δηλωθεί ο τύπος του πίνακα σε package εντός του τμήματος library. Τέλος, η vhdl δίνει δυνατότητες μετατροπής δεδομένων από μία μορφή σε μια άλλη, προκειμένου να διευκολύνει το χρήστη να εκτελέσει αριθμητικές και λογικές πράξεις μεταξύ τύπων δεδομένων που δεν είναι συμβατοί με τις εν λόγω πράξεις. Αυτό μπορεί να γίνει με 2 τρόπους: Είτε ορίζοντας μία συνάρτηση σε package εντός του τμήματος library η οποία θα κάνει αυτήν ακριβώς τη διαδικασία της μετατροπής που θέλουμε, είτε επικαλούμενοι μία προϋπάρχουσα συνάρτηση που μετατρέπει δεδομένα από έναν τύπο σε έναν άλλο. Αυτή η διαδικασία είναι εφικτή με τις παρακάτω εντολές: to_integer(x) to_unsigned(x, y) to_signed(x,y) to_std_logic_vector(x,y) 21

23 Οι εντολές αυτές μετατρέπουν τη μεταβλητή x σε μια άλλη του τύπου που περιέχεται στον ορισμό τους μήκους y (αν το τελικό είναι vector). Οι μετατροπές επιτρέπονται μεταξύ unsigned, signed, std_logic και integer. Όσον αφορά τα 3 πρώτα, δεν πρόκειται για ολική μετατροπή τύπου, αλλά απλά για αλλαγή κάποιων ιδιοτήτων του vector. Στο παρακάτω σχήμα απεικονίζεται πιο αναλυτικά η δυνατότητα μετατροπής των διαφόρων τύπων και οι εντολές που το εκτελούν. Σχήμα (2.2.2) Μετατροπές δεδομένων. Αρι 2.3. Τελεστές και Χαρακτηριστικά δεδομένων Πριν ασχοληθούμε με τις διάφορες εντολές που χρησιμοποιούνται για την περιγραφή ενός κυκλώματος, είναι σημαντικό να γνωρίζουμε τους διάφορους τελεστές που εκτελούν τις πράξεις στη vhdl. Επίσης σημαντικά είναι τα διάφορα χαρακτηριστικά των δεδομένων που χρησιμοποιούνται, καθώς η επίκλησή τους είναι δυνατή μέσα στον κώδικα, πράγμα που διευκολύνει πολύ το χρήστη στην περιγραφή κυκλωμάτων. 22

24 Γενικά οι προκαθορισμένοι τελεστές της vhdl χωρίζονται σε κατηγορίες, ανάλογα με τη λειτουργία που εξυπηρετούν: Τελεστές ανάθεσης : Χρησιμοποιούνται για να αναθέτουν τιμές σε σήματα, σταθερές και μεταβλητές (signal, constant/ generic, variable). <= Χρησιμοποιείται για ανάθεση τιμών σε signal. := Χρησιμοποιείται για ανάθεση τιμών σε variable, constant και generic. Επίσης χρησιμοποιείται για τον ορισμό αρχικής τιμής. => Χρησιμοποιείται για την ανάθεση τιμών σε συγκεκριμένες θέσεις ενός vector, ή συντάσσεται με το others, μια δήλωση που συμπεριλαμβάνει όλες τις εναπομένουσες δυνατές τιμές που μπορεί να πάρει μια μεταβλητή. Αριθμητικοί τελεστές : Χρησιμοποιούνται για την εκτέλεση αριθμητικών πράξεων. Είναι συμβατοί με δεδομένα τύπου integer, natural, real, signed/unsigned (με τη δήλωση του package ieee.numeric_std στο τμήμα library) και με std_logic_vector (με τη δήλωση του package std_logic_signed / std_logic_unsigned στο τμήμα library). Είναι σημαντικό τα δεδομένα που συμμετέχουν σε αυτές τις πράξεις να είναι πάντοτε του ίδιου τύπου όμως. + Πρόσθεση - Αφαίρεση * Πολλαπλασιασμός / Διαίρεση ** Δύναμη mod λόγος rem υπόλοιπο διαίρεσης abs απόλυτη τιμή Δεν υπάρχουν περιορισμοί στη σύνθεση των πρώτων τριών. Η διαίρεση μπορεί να συντεθεί μόνο υπό συνθήκες, όπως διαίρεση μόνο με όρους που είναι δυνάμεις του 2 (πράγμα που στην ουσία αποτελεί πράξη μετατόπισης). Δυνάμεις μπορούν να είναι μόνο σταθερές τιμές σε βάση και εκθέτη. Τα τελευταία τρία δεν είναι εφικτό να συντεθούν. 23

25 Τελεστές σύγκρισης : Χρησιμοποιούνται για να εκτελούν συγκρίσεις. Οι ίδιοι κανόνες που ισχύουν για τα δεδομένα που συμμετέχουν σε αριθμητικές πράξεις, ισχύουν και εδώ. = Ισότητα /= Ανισότητα < Μικρότερο > Μεγαλύτερο <= Μικρότερο ή ίσο >= Μεγαλύτερο ή ίσο Τελεστές λογικών πράξεων: Χρησιμοποιούνται για την εκτέλεση λογικών πράξεων. Τα δεδομένα μπορούν να είναι τύπου bit και std_logic / std_ulogic (και vectors τους). not and or nand nor xor xnor Είναι σημαντικό να σημειωθεί πως ο τελεστής not έχει πάντα προτεραιότητα έναντι όλων των υπολοίπων. Τελεστές μετατόπισης : Χρησιμοποιούνται για αν μεταθέτουν τα δεδομένα σε vectors. Η πράξη αυτή είναι γνωστή και ως shift. sll shift προς αριστερά srl shift προς δεξιά 24

26 rol περιστροφή προς αριστερά ror περιστροφή προς δεξιά Σχετικά με τα χαρακτηριστικά των δεδομένων, πρόκειται για πληροφορίες όπως το μήκος των ψηφίων τους, την τιμή ενός συγκεκριμένου ψηφίου τους κλπ. Από τη vhdl δίνονται τρόποι επίκλησης τέτοιων χαρακτηριστικών και χρήσης τους σε πράξεις, ή συναρτήσεις. Οι προκαθορισμένες και συνθέσιμες επικλήσεις χαρακτηριστικών είναι οι ακόλουθες για ένα vector x οποιουδήποτε τύπου: x'low δίνει το στοιχείο στη χαμηλότερη θέση του vector x'high δίνει το στοιχείο στην υψηλότερη θέση του vector x'left δίνει το πιο αριστερό ψηφίο του vector x'right δίνει το πιο δεξί ψηφίο του vector x'length δίνει το νούμερο των ψηφίων του vector x'range δίνει τον ορισμό του μήκους του vector x'reverse_range δίνει τον αντεστραμμένο ορισμό του μήκους του vector Στην περίπτωση που κάποιο σήμα είναι δεδομένου αριθμητικού τύπου, τότε μπορούν να επικαλεστούν τα παρακάτω χαρακτηριστικά, τα οποία όμως δεν είναι συνθέσιμα: x'val(y) δίνει την τιμή στη θέση y x'pos(y) δίνε τη θέση της τιμής y x'leftof(y) δίνει την τιμή στη θέση αριστερά της τιμής y x'val(row,column) δίνει την τιμή στη θέση του πίνακα που ορίστηκε Όσον αφορά τα σήματα, είναι εφικτή η επίκληση των παρακάτω χαρακτηριστικών τους. Μόνο τα πρώτα 2 είναι συνθέσιμα από όσα θα αναφερθούν και το πρώτο είναι το πιο συνηθισμένο, καθώς χρησιμοποιείται πολύ συχνά για τον έλεγχο σημάτων ρολογιού. x'event δίνει 1 όταν αλλάζει η τιμή του x x'stable δίνει 1 όταν δε μεταβάλλεται η τιμή του x x'active δίνει 1 όταν το x είναι 1 x'quiet<t> δίνει 1 όταν το σήμα δε μεταβλήθηκε για t χρόνο x'last_event δίνει το χρόνο που πέρασε από την τελευταία μεταβολή του x x'last_active δίνει το χρόνο που πέρασε από την τελευταία φορά που το x ήταν 1 x'last_value δίνει την τιμή του x πριν την τελευταία μεταβολή 25

27 Τέλος, όπως και με τους τύπους σημάτων, δίνεται η δυνατότητα στο χρήστη να καθορίσει ο ίδιος δικούς του τελεστές και χαρακτηριστικά δεδομένων και σημάτων. Ο ορισμός νέων χαρακτηριστικών μπορεί να γίνει ακολουθώντας την παρακάτω σύνταξη: ATTRIBUTE name OF target_name : class IS value; O τύπος της τιμής value μπορεί να είναι οποιοσδήποτε από τους προαναφερθέντες, καθώς και το class οποιοδήποτε σήμα, μεταβλητή, παράμετρος ή σταθερά. Ο καθορισμός νέων τελεστών είναι πιο περίπλοκος και για να γίνει απαιτεί τη δημιουργία package, ή τη χρήση συνάρτησης function, που θα αναφερθεί παρακάτω Παράλληλος κώδικας Έχοντας πλέον εξηγήσει τις βασικές λειτουργίες και τη δομή της vhdl, γίνεται να προχωρήσουμε στους διάφορους τρόπους σχεδιασμού και περιγραφής κυκλωμάτων χρησιμοποιώντας εντολές. Καταρχήν o κώδικας της vhdl μπορεί να είναι είτε παράλληλος, είτε ακολουθιακός. Οι εντολές οι οποίες αντιστοιχούν σε παράλληλο κώδικα αναλύονται σε αυτό το κεφάλαιο, ενώ οι εντολές που επικαλούνται την ακολουθιακή λογική της vhdl θα αναλυθούν στο επόμενο κεφάλαιο. Η βασική διαφορά μεταξύ των 2 τύπων κώδικα, είναι πως ο παράλληλος μπορεί να περιγράψει μόνο συνδυαστικά κυκλώματα (κυκλώματα των οποίων η έξοδος βασίζεται αποκλειστικά στην τιμή της εισόδου). Η υλοποίηση κυκλωμάτων ακολουθιακής λογικής είναι εφικτή μόνο με ακολουθιακό κώδικα. Οι παράλληλος κώδικας συμπεριλαμβάνει οποιεσδήποτε απλές αναθέσεις τιμών σε σήματα, καθώς και τις εντολές when και generate. Επίσης είναι σημαντικό να αναφερθεί μια ειδική περίπτωση εντολής, που λέγεται block. Παρακάτω θα εξηγηθούν οι εντολές αυτές μία προς μία. 26

28 WHEN : Η εντολή when έχει 2 μορφές: την απλή και την επιλεκτική. Στην απλή μορφή της ακολουθείται η σύνταξη: x<= assignment WHEN condition ELSE assignment WHEN condition ELSE... assignment; ενώ στην επιλεκτική μορφή της: WITH variable SELECT x<= assignment WHEN value, assignment WHEN value,...; Στην επιλεκτική μορφή είναι σημαντικό να λαμβάνονται υπόψιν όλες οι πιθανές τιμές, της μεταβλητής που χρησιμοποιείται, ενώ η πρώτη δεν αφήνει τέτοια περιθώρια λάθους από μόνη της. Πολύ συνηθισμένη χρήση αυτών των εντολών απαντάται σε πολυπλέκτες. GENERATE : Αυτή η εντολή χρησιμοποιείται για τη δημιουργία βρόγχων και έχει και αυτή 2 μορφές, όπως η when. Η κανονική της μορφή ακολουθεί τη σύνταξη: label: FOR identifier IN range GENERATE (statements) END GENERATE; Η απλή μορφή αυτή επιτρέπει την επανάληψη μιας διαδικασίας τόσες φορές όσες θέσουμε εμείς με τον identifier που θα αυξάνεται κατά 1 κάθε φορά που θα ολοκληρώνεται η διαδικασία έως ότου φτάσει στο άνω όριο του range που θέσουμε 27

29 εμείς. Απαραίτητος είναι ο ορισμός label του βρόγχου για να γίνει αποδεκτή από τον κώδικα. Η μη κανονική μορφή της εντολής generate περιέχει και μια εντολή if μέσα στη σύνταξή της. Σημαντικό είναι να σημειωθεί πως το if εδώ είναι διαφορετικό από το ομώνυμό του που εμφανίζεται στις ακολουθιακές εντολές. Η σύνταξη της μη κανονικής μορφής του βρόγχου είναι λοιπόν: label1: FOR identifier IN range GENERATE... label2: IF condition GENERATE (statements) END GENERATE;... END GENERATE; Σημαντικό είναι να τονιστεί πως οι τιμές και τα όριο των identifiers των βρόγχων σε κάθε περίπτωση πρέπει να είναι στατικές τιμές και να μη μεταβάλλονται ή να ορίζονται από κάποια συνάρτηση. Αυτό ισχύει για όλες τις μορφές των βρόγχων στη vhdl, δηλαδή και για αυτές που θα συναντηθούν παρακάτω. BLOCK : Όπως και στις προηγούμενες εντολές, η εντολή block εμφανίζει 2 μορφές. Την απλή και την guarded. Στην απλή μορφή του, το block δίνει τη δυνατότητα διαχωρισμού του κώδικα σε επιμέρους λειτουργικά τμήματα προκειμένου να γίνει ο κώδικας πιο ευέλικτος και κατανοητός για το χρήστη, πράγμα ιδιαίτερα χρήσιμο στη διαχείριση πολύ μεγάλων τμημάτων κώδικα. Η σύνταξή του είναι η εξής: 28

30 label: BLOCK BEGIN (statements) [declarations] END BLOCK label; Επίσης είναι εφικτός ο ορισμός ενός block εντός ενός ήδη υπάρχοντος block. Στη ειδική μορφή του guarded bock, είναι εφικτή η δήλωση μιας επιμέρους λειτουργίας, η οποία θα εκτελείται μόνο εφόσον μια προϋπόθεση που καθορίζεται από το χρήστη είναι αληθής. Η σύνταξή του φαίνεται παρακάτω: label: BLOCK (guard condition) BEGIN [declarations] (statements) END BLOCK label; 2.5. Ακολουθιακός κώδικας Όπως αναφέρθηκε και προηγουμένως, η vhdl είναι αποτελείται από κυρίως παράλληλες λειτουργίες. Οι μόνες εξαιρέσεις είναι οι συναρτήσεις (functions), οι διεργασίες (processes) και οι διαδικασίες (procedures). Παρόλα αυτά τα τμήματα αυτά του κώδικα λειτουργούν παράλληλα με όλα τα υπόλοιπα που τα βλέπουν εξωτερικά και μπορούν να χρησιμοποιηθούν και για την περιγραφή συνδυαστικών κυκλωμάτων έναντι παράλληλου κώδικα. Οι εντολές που θα αναφερθούν σε αυτό το κεφάλαιο είναι όλες ακολουθιακές και για το λόγο αυτό επιτρέπεται η ύπαρξή τους μόνο εντός των τμημάτων κώδικα που φέρουν την ονομασία process, function και procedure. Οι 29

31 εντολές ακολουθιακού χαρακτήρα είναι οι if, wait, case και loop. Επίσης οι δηλώσεις μεταβλητών (variables) είναι εφικτές μόνο εντός των process, function και procedure, πράγμα που τις καθιστά ορατές μόνο προς τα τμήματα αυτά που εμπεριέχονται (σε αντίθεση με τα signals). PROCESS : Η process όντως ένα ακολουθιακό τμήμα χαρακτηρίζεται από τις ακολουθιακές εντολές που περιέχει και από τη λίστα ευαισθησίας της. Η λίστα αυτή εμπεριέχει τα σήματα τα οποία όποτε παρουσιάζουν μία μεταβολή, η process πρέπει να εκτελείται. Η σύνταξή της είναι η εξής: [label:] PROCESS (sensitivity list) BEGIN [VARIABLE name type [range] [:= initial_value];] (sequential code) END PROCESS [label]; Οι μεταβλητές (variables) πρέπει να ορίζονται εντός της process αν πρόκειται να χρησιμοποιηθούν, όπως φαίνεται και παραπάνω. Η αρχική τους τιμή δεν είναι συνθέσιμη, χρησιμοποιείται όμως για προσομοιώσεις. IF : Γενικά θεωρείται πως είναι μακράν η πιο συνηθισμένη εντολή της vhdl, καθώς υπάρχει μια τάση των χρηστών της να τη χρησιμοποιούν πολύ συχνά. Υπάρχουν όμως περιπτώσεις όπου η χρήση της εντολής αυτής δεν είναι η βέλτιστη λύση για την περιγραφή ενός κυκλώματος. Τα σύγχρονα προγράμματα σχεδίασης βελτιστοποιούν το σχεδιασμό κυκλωμάτων σε τέτοιες περιπτώσεις, όχι όμως πάντα. Η σύνταξή της είναι η εξής: 30

32 IF condition THEN assignments; ELSIF conditions THEN assignments;... ELSE assignments; END IF; WAIT : Ο τρόπος που λειτουργεί αυτή η εντολή θυμίζει κάπως την if. Πρέπει να τονιστεί όμως πως σε αντίθεση με τις υπόλοιπες ακολουθιακές εντολές, δε χρειάζεται να προστεθεί στη λίστα ευαισθησίας της process το σήμα που επηρεάζεται από τη wait. Υπάρχουν 3 μορφές της εντολής. Η σύνταξη της καθεμιάς απεικονίζονται παρακάτω: WAIT UNTIL signal_condition; Σε αυτή την περίπτωση η wait λειτουργεί μόνο με ένα σήμα, πράγμα που την κάνει καταλληλότερη για σύγχρονα κυκλώματα. Επίσης επειδή δεν αναφέρεται το σήμα που τη διεγείρει στη λίστα ευαισθησίας της process, πρέπει η εντολή αυτή να αναφέρεται πρώτη εντός της process που την περιέχει. WAIT ON signal1 [, signal2,...]; Η μορφή αυτή λειτουργεί με περισσότερα σήματα. Εδώ η process θα σταματήσει να λειτουργεί έως ότου κάποιο από τα σήματα που αναφέρονται αλλάξει. WAIT FOR time; Αυτή η εντολή προορίζεται μόνο για προσομοιώσεις. Η process σταματάει σε αυτό το σημείο έως ότου περάσει χρονικό διάστημα που ορίστηκε. CASE : Η εντολή αυτή είναι ισοδύναμη με πολλές εντολές if, αλλά μεταφράζεται διαφορετικά σε hardware σε κάποιες περιπτώσεις με παραπάνω από μία εναλλακτικές της ίδιας μεταβλητής (πχ σε έναν αποκωδικοποιητή, ή ένα πολυπλέκτη). Η σύνταξή της είναι η εξής: 31

33 CASE identifier IS WHEN value => assignments WHEN value => assignments... END CASE; Σημαντικό είναι, όπως και με την εντολή when, να ληφθούν υπόψιν όλες οι δυνατές τιμές της ελέγχουσας μεταβλητής της εντολής, ούτως ώστε να μην προκύψουν σφάλματα. LOOP : Όπως υπονοεί και το όνομά της, η εντολή αυτή χρησιμοποιείται για τη δημιουργία βρόγχων, όπου η λειτουργία ενός τμήματος κώδικα πρέπει να επαναληφθεί πολλές φορές. Υπάρχουν 4 εναλλακτικές μορφές αυτής της εντολής που απεικονίζονται παρακάτω: [label:] FOR identifier IN range LOOP (sequential statements) END LOOP [label]; [label:] WHILE condition LOOP (sequential statements) END LOOP [label]; [label:] EXIT [label] [WHEN condition]; [label:] NEXT [loop_label] [WHEN condition]; 32

34 Γενικά, όπως και με την εντολή generate τα identifiers μπορούν αν παίρνουν μονάχα στατικές τιμές και όχι τιμές που ορίζονται από συναρτήσεις. Η εντολή exit, όταν οι προϋποθέσεις της καλυφθούν, τερματίζει αυτόματα τον βρόγχο ακόμη και αν δεν έχει ολοκληρωθεί ο κύκλος του identifier του. Τέλος η εντολή next όταν καλυφθούν οι προϋποθέσεις της κάνει τον βρόγχο να προσπεράσει την ολοκλήρωση ενός κύκλου δίχως να τον πραγματοποιήσει Σήματα, μεταβλητές, σταθερές και παράμετροι. H vhdl παρέχει 2 τρόπους για τη διαχείριση μη στατικών τιμών, μέσω των σημάτων (signals) και των μεταβλητών (variables). Επίσης δίνεται η δυνατότητα καθορισμού σταθερών τιμών για όλο τον κώδικα μέσω των παραμέτρων (generics) και των σταθερών (constants). Όλα αυτά μπορούν αν είναι ορατά από οποιοδήποτε τμήμα του κώδικα αν τεθούν κατάλληλα, πλην των variables, τα οποία είναι ορατά μονάχα στο process που ορίστηκαν. GENERIC : Όπως προοιωνίζει και το όνομα, οι generics είναι σταθερές παράμετροι ορατές από όλο το σύστημα, αφού ορίζονται εντός του entity του κώδικα. Η σύνταξή τους είναι η εξής: GENERIC (name1 : type :=value; name2 : type := value;...); CONSTANT : Οι constants μπορούν να οριστούν εντός όλων των τμημάτων του κώδικα. Ανάλογα με το μέρος που θα οριστούν όμως, είναι ορατές σε διαφορετικά τμήματα του κώδικα. Αν οριστούν εντός του library σε κάποιο package, τότε είναι ορατές σε όλες τις entities που ακολουθούν. Αν οριστούν εντός ενός entity, είναι ορατές σε όλες τις architectures που ακολουθούν. Τέλος αν οριστούν εντός ενός architecture, είναι ορατές μόνο εντός της εν λόγω architecture. Οι constants ορίζονται ως εξής: 33

35 CONSTANT name : type :=value; SIGNAL : Τα signals εξυπηρετούν τη μετακίνηση των διαφόρων τιμών εντός και εκτός του κυκλώματος, καθώς και μεταξύ των διαφόρων εσωτερικών μονάδων του. Πιο απλοποιημένα, τα signals αντιπροσωπεύουν καλωδιώσεις και buses. Για παράδειγμα, όλα τα ports των entities αποτελούν signals από φυσικού τους. Η δήλωσή τους γίνεται ως εξής: SIGNAL name : type [range] [:= initial value]; Ομοίως με τις constants, και τα signals μπορούν να δηλωθούν σε όλα τα μέρη του κώδικα και είναι ορατά από τα υπόλοιπα, ανάλογα με το μέρος που θα δηλωθούν. όσον αφορά την ορατότητα, ισχύουν οι ίδιοι κανόνες με τις constants. Επίσης οι αρχικές τιμές που τίθενται στα signals, είναι μη συνθέσιμες και εξυπηρετούν μόνο τις προσομοιώσεις. VARIABLE : Σε αντίθεση με τα υπόλοιπα, οι variables αντιπροσωπεύουν μόνο τοπικές πληροφορίες και ορίζονται μονάχα εντός functions, processes και procedures. Οι τιμές τους δεν μπορούν να μεταφερθούν εκτός αυτών των ακολουθιακών τμημάτων κώδικα απευθείας, παρά μόνο μέσω της ανάθεσής τους σε κάποιο signal. Για τον ορισμό τους, ακολουθείται η παρακάτω σύνταξη: VARIABLE name : type [range] [:=initial value]; Εφόσον δηλωθούν, οι variables είναι ορατές μονάχα εντός του εν λόγω τμήματος ακολουθιακού κώδικα που ορίστηκαν. Ομοίως με τα προηγούμενα, οι αρχικές τιμές εξυπηρετούν μόνο τις προσομοιώσεις και είναι μη συνθέσιμες. 34

36 2.7. Πακέτα βιβλιοθήκης και εξαρτήματα Μέχρι στιγμής αναφέρθηκαν οι βασικές δυνατότητες κωδικοποίησης της περιγραφής ενός κυκλώματος από τη vhdl. Στις τελευταίες 2 υποενότητες θα αναφερθούν μερικές επιπλέον λεπτομέρειες, που είναι αρκετά σημαντικές για το σχεδιασμό κυκλωμάτων, αν και κάποιος θα μπορούσε να σχεδιάσει απλά κυκλώματα γνωρίζοντας απλώς όλα τα προηγούμενα. Στο συγκεκριμένο κεφάλαιο θα αναλυθούν τα πακέτα βιβλιοθήκης (packages) και τα εξαρτήματα (components). Αυτά όντας ολοκληρωμένα τμήματα κώδικα, μπορούν να δηλωθούν τόσο στο κυρίως μέρος του κώδικα, όσο και εντός της library. Ο βασικός τους σκοπός δεν είναι άλλος από το να οργανώνουν τον κώδικα σε λειτουργικές υπομονάδες και να βοηθούν το χρήστη να καταλαβαίνει καλύτερα τη λειτουργία του περιγραφόμενου κυκλώματος. PACKAGE : Όπως αναφέρθηκε και στην αρχή, τα packages είναι πολύ συνηθισμένα τμήματα κώδικα απαραίτητα για τη λειτουργικότητα του ίδιου του κώδικα. Συνήθως περιέχουν δηλώσεις components, functions και procedures. Εκτός αυτών, δύνανται να περιέχουν και δηλώσεις τύπων δεδομένων, signals, constants κλπ. H σύνταξή τους έχει ως εξής: PACKAGE name IS END name; (declarations) [PACKAGE BODY name IS END name;] (function and procedure descriptions) Παρατηρούμε πως το σύνολο της σύνταξης απαρτίζεται από 2 μέλη. Το πρώτο είναι υποχρεωτικό και περιέχει ορισμούς, ενώ το δεύτερο δεν είναι και περιέχει εκτελέσιμες λειτουργίες οι οποίες έχουν οριστεί στο προηγούμενο μέρος (αν υπάρχουν). Προφανώς και τα 2 μέλη πρέπει να έχουν το ίδιο όνομα. 35

37 COMPONENT : Τα components είναι απλώς ολοκληρωμένα τμήματα vhdl (δηλαδή library, entity και architecture). Η δήλωσή ενός τέτοιου τμήματος ως component μας δίνει τη δυνατότητα να το επικαλεστούμε εντός ενός άλλου ολοκληρωμένου τμήματος, πράγμα που μας δίνει τη δυνατότητα να κατασκευάσουμε ολοκληρωμένα κυκλώματα που αποτελούνται από πολλά μικρότερα επιμέρους ολοκληρωμένα κυκλώματα. Χαρακτηριστικό παράδειγμα αποτελεί η περιγραφή μιας αριθμητικής λογικής μονάδας. Η επίκληση ενός component εντός του κώδικα ενός κυκλώματος έχει 2 σκέλη. Πρώτα πρέπει να γίνει η δήλωσή του και έπειτα η διασύνδεσή του. Η σύνταξη της δήλωσής του είναι όμοια με αυτή της entity του εν λόγω component. Η διασύνδεσή του αποτελείται από μία ταμπέλα που τίθεται για να ξεχωρίζει το component από τα υπόλοιπα και από τη λίστα σύνδεσης των ακροδεκτών του. Η σύνταξη του καθορισμού ενός component απεικονίζεται παρακάτω: Δήλωση COMPONENT name IS PORT ( name1 : mode type; name2 : mode type;...); END COMPONENT; Διασύνδεση label: name PORT MAP (name1=>signal1, name2=>signal2,...); Τέλος τα components μπορούν να δηλωθούν εκτός του κυρίως σώματος κώδικα, δηλαδή εντός της library μέσω ενός package. 36

38 2.8. Συναρτήσεις και διαδικασίες Οι συναρτήσεις (functions) και οι διαδικασίες (procedures) θα μπορούσαν να χαρακτηριστούν και ως "υποπρογράμματα". Παρά τις πολλές τους ομοιότητες με την process, όντας και αυτές ακολουθιακός κώδικας, διαφέρουν στο γεγονός ότι οι processes χρησιμοποιούνται μόνον άμεσα εντός του κυρίου σώματος του κώδικα. Οι functions και procedures χρησιμοποιούνται κυρίως στο να αποθηκεύουν πολύ χρήσιμα και συνηθισμένα τμήματα κώδικα εντός των packages. Μπορούν όμως και χρησιμοποιηθούν και εντός του κυρίου κώδικα. FUNCTION : Ο σκοπός της εντολής αυτής είναι να δημιουργεί συναρτήσεις για την επίλυση προβλημάτων και αναγκών, όπως πχ η μετατροπή δεδομένων από έναν τύπο σε άλλον, ή οι αριθμητικές πράξεις μεταξύ μη συμβατών τύπων δεδομένων. Όντας εντολή ακολουθιακού κώδικα, μπορούν να χρησιμοποιηθούν εντός της όλες οι ακολουθιακές εντολές πλην της wait. Η λειτουργία της έχει 2 μέρη: Τον ορισμό της και την επίκλησή της εντός του κώδικα. Ορισμός της function: FUNCTION name [<parameter list>] RETURN data_type IS BEGIN END name; [declarations] (sequential statements) Επίκληση της function: Μια function μπορεί να επικαλεστεί ως μέρος μιας άλλης έκφρασης, όπως πχ με τις functions μετατροπής δεδομένων. 37

39 PROCEDURE : Η procedure είναι σχεδόν πανομοιότυπη με τη function και εξυπηρετεί τους ίδιους ακριβώς σκοπούς. Η μόνη διαφορά της είναι πως μπορεί να δώσει πάνω από μία τιμή σαν αποτέλεσμα. Ομοίως με τις functions, στις procedures όλες οι ακολουθιακές εντολές πλην της wait είναι συνθέσιμες και η λειτουργία τους έχει τα ίδια 2 μέρη. Ορισμός της procedure: PROCEDURE name [<parameter list>] IS BEGIN END name; [declarations] (sequential statements) Επίκληση της procedure: Σε αντίθεση με τις function, οι procedures αποτελούν αυτόνομες δηλώσεις και δεν μπορούν να επικαλεστούν εντός άλλων εντολών, ή αναθέσεων. Τέλος οφείλουν να τονιστούν κάποιοι περιορισμοί στη χρήση των 2 αυτών τμημάτων ακολουθιακού κώδικα. Εντός μιας function δεν είναι εφικτό να οριστούν signals ή components. Το ίδιο ισχύει και για την procedure, με τη διαφορά ότι γίνεται να οριστούν signals μόνον εφόσον η procedure ορίζεται εντός μιας architecture και όχι ενός package μιας library. Τέλος, οποιαδήποτε εντολή εντοπισμού ακμής κάποιου σήματος δεν είναι συνθέσιμη εντός μιας procedure, πράγμα που δεν ισχύει για τις functions (πλην της εντολής wait). Έχοντας θέσει πλέον το θεωρητικό υπόβαθρο για το σχεδιασμό του κυκλώματος που πραγματεύεται αυτή η εργασία, μπορούμε να προχωρήσουμε στην ανάλυση αυτής της διαδικασίας. Πλέον ο αναγνώστης θα πρέπει να κατέχει το απαραίτητο γνωστικό επίπεδο για να κατανοήσει την περιγραφή των αρχιτεκτονικών που περιγράφηκαν σε vhdl. 38

40 ΚΕΦΑΛΑΙΟ 3 ΜΑΘΗΜΑΤΙΚΗ ΔΙΕΡΕΥΝΗΣΗ ΚΑΙ ΣΦΑΛΜΑΤΑ Προτού ξεκινήσουμε να μιλάμε για αρχιτεκτονικές υλοποίησης ενός ψηφιακού κυκλώματος είναι πολύ σημαντικό να τεθούν οι προδιαγραφές που θέλουμε να πληροί. Για να αποφασιστούν αυτές οι προδιαγραφές όμως πρέπει να ληφθούν υπόψιν κάποιες παράμετροι, όπως η ποιότητα της κυματομορφής και το κόστος σε υλικό που θα απαιτείται. Στις παραμέτρους αυτές παίζουν ρόλο πολλοί παράγοντες, όπως πχ το πλήθος των bits που θα κωδικοποιείται η πληροφορία, ο τρόπος που θα προσεγγίζουμε μαθηματικά εντός του κυκλώματος το ημίτονο, η ανάλυση που θα έχει το εξαγόμενο σήμα, τα επιπλέον σφάλματα κατά τη διεκπεραίωση πράξεων εντός του κυκλώματος κλπ. Όλα αυτά πρέπει να ληφθούν υπόψιν και να αναλυθούν προτού προχωρήσουμε στο σχεδιασμό οποιουδήποτε ψηφιακού κυκλώματος και γι αυτό το κεφάλαιο αυτό θα αφοσιωθεί στη μελέτη αυτή. Για το λόγο αυτό, στην πρώτη υποενότητα θα οριστεί η συνάρτηση που θα πραγματοποιείται από το κύκλωμά μας, ενώ στις υπόλοιπες θα μελετώνται τα επιμέρους σφάλματα που εισάγονται στην έξοδο του ψηφιακού κυκλώματός μας λόγω των διαφόρων παραμέτρων που θα ορίσουμε εμείς για τη λειτουργία του. Δεδομένων των πολλών μεταβλητών που καθορίζουν την εισαγωγή του τελικού σφάλματος στης τελική τιμή της εξόδου κάθε φορά, κάθε φορά θα εξετάζονται μία προς μία ως προς το επιμέρους σφάλμα που εισάγουν, ενώ οι υπόλοιπες που δεν θα είναι υπό εξέταση θα ορίζονται σταθερές. Εφόσον ολοκληρωθεί αυτή η μαθηματική ανάλυση των παραμέτρων, θα μπορέσουμε να μεταβούμε στο στάδιο του σχεδιασμού των διαφόρων αρχιτεκτονικών του ψηφιακού μας κυκλώματος, με τις παραμέτρους που θα έχουν οριστεί σε αυτό το κεφάλαιο. 39

41 3.1. Ορισμός της συνάρτησης που θα εκτελεστεί. Η ζητούμενη συνάρτηση που θέλουμε να υλοποιεί το τελικό κύκλωμά μας δεν είναι άλλη από την f ( t) sin( t) (3.1) της οποίας η γραφική αναπαράσταση είναι όπως φαίνεται στο σχήμα Σχήμα (3.1.1) Ημιτονοειδής συνάρτηση. Όντας όμως τριγωνομετρική, μπορούμε να εκμεταλλευτούμε το γεγονός πως είναι κατοπτρική ως προς τον άξονα ψ. Πράγμα που θα μας μείωνε κατά πολύ την πολυπλοκότητα του κυκλώματος που θα την υλοποιήσει. Επομένως αντί να υλοποιήσουμε ένα κύκλωμα που θα έχει στην έξοδό του την sint από 0 έως 2π, το κύκλωμά μας χρειάζεται να δίνει έξοδο απλά το τμήμα από 0 έως π, το οποίο έπειτα με μια αλλαγή στο πρόσημο θα δίνει το άλλο μισό της κυματομορφής. Επομένως η συνάρτηση που χρειάζεται να υλοποιεί ο ταλαντωτής είναι αυτής της μορφής: Σχήμα (3.1.2) f(t) από 0 έως π. 40

42 Με τον τρόπο αυτό μειώνουμε τον αριθμό των δειγμάτων που θα χρειαζόμασταν για να σχηματίσουμε την κυματομορφή στα μισά και σαν αντίτιμο θα προσθέσουμε μία επιπλέον επεξεργαστική βαθμίδα στο κύκλωμά μας ώστε να δίνει αρνητικό πρόσημο στην τιμή της εξόδου προκειμένου να σχηματιστεί η αρνητική ημιπερίοδος. Παρατηρώντας τώρα τη συνάρτηση που θα υλοποιήσουμε, διαπιστώνουμε πως είναι συμμετρική και ως προς τον άξονα t=π/2. Αυτό μας δίνει τη δυνατότητα να σπάσουμε ξανά την υλοποιούμενη συνάρτηση στα 2, κερδίζοντας έτσι σε υλικό. Έτσι στην τελική χρειάζεται να υλοποιήσουμε μονάχα τη συνάρτηση sin(t) από 0 έως π/2, που αντιστοιχεί στο 1/4 της περιόδου της ολικής. Προκειμένου τώρα να αναπαραστήσουμε τα υπόλοιπα 3 τμήματά της, θα εισάγουμε μια διαφορά φάσης κάθε φορά εντός της κυματομορφής ώστε το τελικό αποτέλεσμα να είναι το ζητούμενο. Πιο συγκεκριμένα, για το πρώτο τέταρτο της κυματομορφής το κύκλωμα θα εκτελεί τη συνάρτηση f(t) κανονικά. Σχήμα (3.1.3) f(t) = sint, t є [0, π/2). 41

43 Στη συνέχεια για το δεύτερο τέταρτο θα εκτελεί την f(π/2+t): Σχήμα (3.1.4) f(π/2+t), t є [π/2, π). Για το τρίτο τέταρτο θα εκτελείται αυτή η f(π+t): Σχήμα (3.1.5) f(π+t), t є [π, 3π/2). 42

44 Και τέλος για το τελευταίο τέταρτο της συνάρτησης θα εκτελείται η συνάρτηση f(2π-t) : Σχήμα (3.1.6) f(3π/2 + t), t є [3π/2, 2π). Έχοντας πλέον ορίσει τη συνάρτηση που θέλουμε να εκτελεί το κύκλωμά μας, μπορούμε να προχωρήσουμε στο να λύσουμε το πρόβλημα του πώς θα την εκτελεί, μελετώντας τις διάφορες παραμέτρους που το καθορίζουν. Η συγκεκριμένη συνάρτηση όμως από τη φύση της δε δύναται να υλοποιηθεί εντός ενός ψηφιακού κυκλώματος αυτή καθαυτή. Ο λόγος είναι πως τα ψηφιακά κυκλώματα, όπως είδαμε και στο προηγούμενο κεφάλαιο, μπορούν να εκτελέσουν εκτός των λογικών πράξεων άλγεβρας Boole μονάχα πολύ απλές αριθμητικές πράξεις. Δηλαδή πράξεις πολλαπλασιασμού, άθροισης, αφαίρεσης και διαίρεσης υπό συνθήκες σταθερού διαιρέτη που είναι δύναμη του 2. Οι τριγωνομετρικές συναρτήσεις σε καμία περίπτωση δε γίνεται να υλοποιηθούν ακριβώς χρησιμοποιώντας μόνο αυτές τις αριθμητικές πράξεις. Αυτό το πρόβλημα μας αναγκάζει να στραφούμε σε άλλους τρόπους υπολογισμού μιας τιμής τριγωνομετρικής συνάρτησης, προσεγγίζοντας με κάποιο τρόπο τις διάφορες τιμές της. Η λύση στο πολύ μεγάλο αυτό εμπόδιο ήταν η προσέγγιση της τριγωνομετρικής συνάρτησης μέσω πολυωνυμικών συναρτήσεων Taylor και Maclaurin. Οι νέες αυτές συναρτήσεις, όντας πολυώνυμα, ήταν εφικτό να εκτελεστούν χρησιμοποιώντας μονάχα πράξεις πρόσθεσης, πολλαπλασιασμού και διαίρεσης, πράγμα που τις κατέστησε σχεδόν ιδανικές λύσεις στο πρόβλημά μας. 43

45 3.2. Αριθμός bits της αναπαράστασης των αριθμών εντός της αρχιτεκτονικής. Γνωρίζουμε από τις γενικές γνώσεις των ψηφιακών κυκλωμάτων, πως σε αντίθεση με τους ακεραίους, οι περισσότεροι δεκαδικοί αριθμοί δεν γίνεται ποτέ να αναπαρασταθούν ακριβώς με χρήση πεπερασμένου αριθμού bits. Αυτό μας προξενεί την ύπαρξη σφαλμάτων κατά την αναπαράστασή τους, τα οποία μειώνουμε με τη χρήση περισσότερων ψηφίων, αλλά ποτέ δεν εξαλείφουμε πλήρως. Έχοντας απαντήσει σε όλα τα προηγούμενα προβλήματα, είναι καιρός να προχωρήσουμε σε ένα ακόμη μεγάλο πρόβλημα: σε πόσα bits πρέπει να υλοποιηθεί μια αρχιτεκτονική μας ούτως ώστε η εξαγόμενη κυματομορφή να προσεγγίζει όσο καλύτερα γίνεται την πραγματική, δίχως να γίνεται αλόγιστη χρήση υλικού προκειμένου να επιτευχθεί μία απειροελάχιστη βελτίωση της κυματομορφής, η οποία ίσως και να μην είναι καν απαραίτητη; Για να γίνει πιο κατανοητό το πρόβλημα, ας θεωρήσουμε ένα υποθετικό σενάριο, όπου μπορούμε να κωδικοποιήσουμε την πληροφορία της κάθε τιμής της κυματομορφής μας σε άπειρο πλήθος bits. Στην περίπτωση αυτή θα έχουμε το ακριβές νούμερο της κάθε τιμής εξόδου με μηδενική απόκλιση από το τέλειο ημίτονο (θεωρούμε επίσης πως δεν υπάρχουν άλλα σφάλματα λόγω της προσέγγισης με τα πολυώνυμα Taylor ή άλλων αιτιών του ψηφιακού κυκλώματος). Είναι σημαντικό να θυμηθούμε, πως η έξοδος του ψηφιακού ταλαντωτή καταλήγει σε ένα αναλογικό κύκλωμα, το οποίο περιέχει χωρητικότητες, αντιστάτες και παρασιτικές αγωγιμότητες και χωρητικότητες, πράγμα που από μόνο του εισάγει ένα μικρό σφάλμα στην έξοδο του τελικού μας κυκλώματος. Επομένως ακόμα και αν μπορούσαμε να υλοποιήσουμε ένα τόσο κοστοβόρο κύκλωμα, θα κάναμε στην τελική μία "τρύπα στο νερό", διότι μετά τη "μετάφραση" της ψηφιακής πληροφορίας σε αναλογική εισάγεται ένα επιπλέον σφάλμα, το οποίο δεν είναι εφικτό να μηδενίσουμε. Ας δούμε όμως και ένα πιο πραγματικό σενάριο, στο οποίο δεν έχουμε άπειρο αριθμό bits και θέλουμε να απεικονίσουμε έναν αριθμό, ο οποίος δεν είναι εφικτό να αναπαρασταθεί πλήρως στο δυαδικό, τον 0.7. Θα επιχειρήσουμε να αναπαραστήσουμε τον αριθμό αυτό σε όλο και περισσότερα bits στο δυαδικό σύστημα και θα υπολογίζουμε κάθε φορά το σφάλμα που προέρχεται από την μη ακριβή 44

46 αναπαράστασή του συναρτήσει του αριθμού των ψηφίων της αναπαράστασής του κάθε φορά. Η ανάλυσή μας αυτή φαίνεται στον παρακάτω πίνακα: Μήκος σε bits 4 Αναπαράσταση του 0.7 στο δυαδικό Ο πραγματικά αναπαριστώμενος αριθμός Σφάλμα της αναπαράστα σης % Πίνακας (3.2.1) Από τον πίνακα παρατηρούμε αμέσως πως το σφάλμα στην αναπαράσταση του αριθμού αυτού μειώνεται δραματικά με την αύξηση του πλήθους των bits της αναπαράστασής του. Εκτός από αυτό όμως υπάρχει και κάτι ακόμα που παρατηρείται και προκειμένου να φανεί αρκετά ξεκάθαρα, απεικονίζουμε τα δεδομένα του πίνακα στην παρακάτω γραφική παράσταση. Στο σχήμα ( ) απεικονίζεται το σφάλμα συναρτήσει του πλήθους των bits και στον πίνακα (3.2.2.) απεικονίζεται η διαφορά σφάλματος μεταβαίνοντας από τη μία αναπαράσταση στην άλλη: 45

47 Σχήμα (3.2.1) Σφάλμα % συναρτήσει του πλήθους των bits της αναπαράστασης. Πίνακας (3.2.2) Μετάβαση Διαφορά σφάλματος % 4 σε σε σε σε σε Παρατηρούμε πλέον πολύ εύκολα, πως το σφάλμα δεν έχει κάποια γραμμική εξάρτηση με το πλήθος της bits της αναπαράστασης. Αντί αυτού, μειώνεται πολύ απότομα κατά την αύξηση των bits στην αρχή, αλλά μετά όσο περισσότερο αυξάνεται ο αριθμός των bits, το "κέρδος σφάλματός " μας γίνεται όλο και μικρότερο. Χαρακτηριστική απόδειξη αυτού είναι η σύγκριση μεταξύ της μετάβασης από τα 4 bits στα 8, όπου εμφανίζεται ένα αξιόλογο "κέρδος " 1.674%, και της μετάβασης από τα 32 στα 64 bits, όπου το "κέρδος", για διπλάσια bits ξανά, είναι της τάξης μεγέθους Για την υλοποίηση μιας 46

48 αρχιτεκτονικής 8 bit απαιτείται σχεδόν διπλάσιο υλικό από ό,τι για την υλοποίηση μιας αρχιτεκτονικής 4 bits και το ίδιο ισχύει για τη μετάβαση από τα 32 στα 64 bits. Σε κάθε περίπτωση. το υλικό που χρησιμοποιείται για στην υλοποίηση ενός κυκλώματος είναι μια επένδυση ώστε να πάρουμε καλύτερη ποιότητα. Αν το κέρδος μας σε ποιότητα δεν είναι αρκετό, τότε η επένδυση δεν αξίζει. Έχοντας αυτά κατά νου, καταλήγουμε στο συμπέρασμα, πως δεν ωφελεί να επενδύουμε αλόγιστα σε υλικό για καλύτερα αποτελέσματα, αλλά πρέπει να βρούμε μια χρυσή τομή, ώστε το αποτέλεσμα να είναι ικανοποιητικό, δίχως να σπαταλούμε άσκοπα υλικό αυξάνοντας το κόστος χωρίς ουσιαστική βελτίωση του τελικού κυκλώματος. Προκειμένου λοιπόν, να μπορέσουμε να τηρήσουμε τις προδιαγραφές που ορίσαμε πως θέλουμε στην αρχή (δηλαδή ολικό σφάλμα κάτω του 0.1%), επιλέξαμε η αναπαράσταση των αριθμών να γίνεται σε 16 bits για τις αρχιτεκτονικές μας, αφού το σφάλμα που εισάγεται σε αυτή την αναπαράσταση είναι 4x10-4 %, πολύ κάτω από το 0.1% που θέσαμε σαν όριο. Επόμενη αιτία εισαγωγής σφάλματος στις τιμές της εξόδου του ψηφιακού μας κυκλώματος είναι η πράξη του πολλαπλασιασμού. Κατά την πραγματοποίηση της προσέγγισης μέσω των πολυωνύμων Taylor και Μaclaurin, αναγκαστικά εκτελούνται και πράξεις πολλαπλασιασμού εντός του ψηφιακού κυκλώματός μας. Ο πολλαπλασιασμός στα ψηφιακά είναι μία πράξη που από τη φύση της εισάγει σφάλμα, διότι κατά την εκτέλεσή της, αν οι δύο αριθμοί που πολλαπλασιάζονται έχουν ο καθένας από n bits, τότε το γινόμενό τους εντός του κυκλώματος θα έχει m=2n bits. Επομένως πρέπει, προκειμένου να διατηρήσουμε την αρχιτεκτονική μας στα n bits, κάθε φορά που γίνεται πολλαπλασιασμός εντός του κυκλώματός μας να "απορρίπτονται" n bits. Αυτή η διαδικασία της απόρριψης εισάγει ένα ποσοστό σφάλματος στο κύκλωμά μας, ανάλογα πάντα με το πόσα bits έχει η αρχιτεκτονική μας. Αρχικά πρέπει να επιλέξουμε με ποιον τρόπο θα εκτελούμε την πράξη του πολλαπλασιασμού εντός του ψηφιακού κυκλώματός μας. Δύο τρόποι κρίθηκαν εφικτοί για την εκτέλεση της πράξης του πολλαπλασιασμού και εξετάστηκαν περαιτέρω, δεδομένου ότι όλοι οι αριθμοί που θα υπόκειντο στην πράξη του πολλαπλασιασμού θα είναι όλοι ίδιου μήκος σε bits. Η πρώτη λύση ήταν ο συμβατικός τρόπος πολλαπλασιασμού, όπου θα προέκυπταν 2n bits από 2 αριθμούς των n bits ο καθένας. Η δεύτερη λύση ήταν η αποφυγή περικοπής bits από το αποτέλεσμα, φροντίζοντας ώστε ο κάθε αριθμός να έχει n/2 bits πριν από την εισαγωγή του στο κύκλωμα του πολλαπλασιαστή, όπου θα εκτελέσει τη μαθηματική πράξη, ώστε το τελικό αποτέλεσμα να έχει n bits. Η καθεμία από τις 2 αυτές λύσεις θέτει κάποιους περιορισμούς στο πώς θα σχεδιάσουμε το κύκλωμά μας. 47

49 Η πρώτη για παράδειγμα απαιτεί πολύ σωστή διερεύνηση των διαφόρων γινομένων εντός του κυκλώματος, ώστε να μην προκύψει σε καμία περίπτωση υπερχείλιση κρατουμένων (overflow) κατά τον πολλαπλασιασμό και στη συνέχεια κατά την περικοπή των περιττών ψηφιών. Αυτό συνεπάγεται πως ανάλογα με το πλήθος των bits θα πρέπει να υπολογιστεί κατάλληλα η ανύψωση των διαφόρων τιμών ώστε να μείνουν εντός του ορίου των 16 bits που επιλέξαμε. Η δεύτερη μας θέτει περιορισμούς στο πόσο μικρό θα είναι το μήκος σε bits της αναπαράστασής μας εντός του κυκλώματος, καθώς αν αποφασίσουμε για παράδειγμα πως θα προσεγγίζουμε τις τιμές του ημιτόνου με ένα πολυώνυμο Taylor 4ου βαθμού, τότε αυτό συνεπάγεται 4 πολλαπλασιασμούς για να βγει η τελική τιμή στην έξοδο (3 για να υπολογιστεί το x 4 και άλλον ένα για τον συντελεστή του x 4 ). Αυτό σημαίνει πως ανάλογα την αρχιτεκτονική που θα επιλέξουμε, ο αριθμός που θα εισάγεται στο κύκλωμα θα πρέπει να έχει n/2 4 = n/16 ψηφία. Στην περίπτωσή μας όπου επιλέξαμε να υλοποιήσουμε την αρχιτεκτονική σε 16 bits, θα έπρεπε η αρχική μας είσοδος να έχει 1 ψηφίο! Άρα θα καταλήγαμε στο τέλος να έχουμε μονάχα το 1 ή το 0 σαν τιμή του x 4! Πράγμα που προφανώς θα έκανε το κύκλωμά μας μη ποιοτικό. Άρα στην περίπτωση που επιλεχθεί η δεύτερη διαδικασία εκτέλεσης πολλαπλασιασμών θα πρέπει να βρεθεί μία ιδανική αναλογία τάξης πολυωνύμου και πλήθος bits προκειμένου να λάβουμε ικανοποιητικά αποτελέσματα, πράγμα που ισχύει και για την πρώτη λύση (όπως θα δούμε παρακάτω), αλλά όχι τόσο έντονα. Προκειμένου να επιλέξουμε μεταξύ των 2 λύσεων εξετάσαμε την κάθε περίπτωση χωριστά και στη συνέχεια τις συγκρίναμε ως προς το σφάλμα που εισήγαγε η καθεμία στο τελικό αποτέλεσμα. Πιο συγκεκριμένα, χωρίσαμε το διάστημα από 0 έως π/2 σε 16 τιμές και για την καθεμία ξεχωριστά εκτελέσαμε την πράξη του πολλαπλασιασμού y=x 2 με καθέναν από τους 2 τρόπους που περιγράφηκαν παραπάνω. Στους παρακάτω πίνακες φαίνονται τα αποτελέσματα και στη γραφική παράσταση γίνεται μια καλύτερη απεικόνιση των αποτελεσμάτων μας, προκειμένου να γίνει καλύτερη η σύγκριση. Για τον υπολογισμό των σφαλμάτων του πίνακα (3.2.3) μετατρέψαμε τις διάφορες τιμές του x σε αριθμούς δυαδικής αναπαράστασης 32 bits και στη συνέχεια τα πολλαπλασιάσαμε με τον εαυτό τους στο δυαδικό, αποκόπτοντας τα επιπλέον ψηφία που προέκυψαν. Έπειτα το γινόμενο που προέκυψε το μετατρέψαμε ξανά σε δεκαδική αναπαράσταση και υπολογίσαμε το σφάλμα % με τον τύπο: ( y) 10 ( y) (3.2) ( y) 10 48

50 Όπου (y) 10 και (y) 2 οι αριθμοί που προήλθαν από πολλαπλασιασμό σε δεκαδικό και σε δυαδικό αντίστοιχα. Για τον υπολογισμό των σφαλμάτων του πίνακα (3.2.4) μετατρέψαμε τις τιμές του x σε δυαδικές 16 bits αυτή τη φορά και τις πολλαπλασιάσαμε στο δυαδικό, οπότε προέκυπταν 32 bits από τα οποία δεν αποκόπταμε κανένα. Το αποτέλεσμα μετατράπηκε ξανά σε δεκαδικό και μέσω του τύπου (3.2) υπολογίστηκε το ποσοστιαίο σφάλμα %. Πραγματική τιμή x Πραγματική τιμή x 2 εκτέλεση πολ/σμού με τον 1ο τρόπο σε Σφάλμα % Τιμή x έπειτα από 32 bits 0x(π/30) x(π/30) x(π/30) x(π/30) x(π/30) x(π/30) x(π/30) x(π/30) x(π/30) x(π/30) x(π/30) x(π/30) x(π/30) x(π/30) x(π/30) x(π/30) Πίνακας (3.2.3) Πραγματική τιμή x Πραγματική τιμή x 2 εκτέλεση πολ/σμού με τον 2ο τρόπο σε Σφάλμα % Τιμή x έπειτα από 32 bits 0x(π/30) x(π/30) x(π/30) x(π/30) x(π/30) x(π/30) x(π/30) x(π/30)

51 8 x(π/30) x(π/30) x(π/30) x(π/30) x(π/30) x(π/30) x(π/30) x(π/30) Πίνακας (3.2.4) Σχήμα (3.2.2) Σύγκριση των σφαλμάτων % των 2 τρόπων. Παρατηρούμε λοιπόν πως πολύ εμφανώς ο πρώτος τρόπος είναι καλύτερος από το δεύτερο. Σε κάθε τιμή που πήραμε ο πρώτος τρόπος δίνει λιγότερο ποσοστιαίο σφάλμα έναντι του δεύτερου, πράγμα που τον καθιστά σαφώς καλύτερο. Έχοντας αυτά υπόψιν, καταλήγουμε στο ότι οι πράξεις των πολλαπλασιασμών θα εκτελούνται με βάση τον πρώτο τρόπο και αναγκαστικά θα πρέπει να υποστούμε οποιουσδήποτε περιορισμούς εισάγει ο τρόπος αυτός. Πριν προχωρήσουμε όμως παρακάτω, θα ήταν σημαντικό να 50

52 τονίσουμε μια μικρή λεπτομέρεια που παρατηρείται με βάση τα δεδομένα των 2 πινάκων που παρατέθηκαν παραπάνω. Παρατηρούμε πως στον πίνακα (3.2.3) το ποσοστιαίο σφάλμα κυμαίνεται στην τάξη μεγέθους 10-8 με 10-9 και στον πίνακα (3.2.4) στην τάξη μεγέθους 10-2 με Συγκρίνοντας τα σφάλματα αυτά με του πίνακα (3.2.1) παρατηρούμε πως στις ίδιες τάξεις μεγέθους κυμαινόταν και το σφάλμα αναπαράστασης ενός αριθμού στα 32 bits και στα 16 bits αντίστοιχα, δηλαδή για το πλήθος των bits όπου αναπαραστάθηκε εξ αρχής η τιμή του x προτού γίνει η πράξη με οποιονδήποτε από τους 2 τρόπους. Πιο συγκεκριμένα, για τον πρώτο τρόπο αναπαραστάθηκε σε 32 bits και το ποσοστιαίο σφάλμα που προέκυψε είναι ανάλογο αυτού της αναπαράστασης ενός αριθμού σε 32 bits. Αντίστοιχα το ίδιο συμβαίνει και για το 2ο τρόπο, όπου το ποσοστιαίο σφάλμα που προκύπτει είναι ανάλογο αυτού της αναπαράστασης σε 16 bits. Αυτό μας προϊδεάζει για το ότι το σφάλμα που εισάγει η πράξη του πολλαπλασιασμού στο γινόμενο δεν είναι τόσο σημαντικό σε σύγκριση με αυτό που εισάγεται λόγω της αρχικής αναπαράστασης των αριθμών που πολλαπλασιάζονται. Παρά το γεγονός ότι εισάγεται μία διακύμανση στα ποσοστιαία σφάλματα της τάξης του 1% σε κάθε τιμή από 0 έως π/2, τη μεγαλύτερη επιρροή στην τελική τιμή του τελικού ποσοστιαίου σφάλματος την έχει η αναπαράσταση του αριθμού. Επομένως στην περίπτωση που γίνονται διαδοχικά πάνω από μία πολλαπλασιαστικές πράξεις η διακύμανση του τελικού σφάλματος θα παραμείνει κοντά σε αυτήν που εισάγει η αναπαράσταση των αρχικών τιμών του x. Προκειμένου να μελετήσουμε την εν λόγω διαπίστωση πιο εμπεριστατωμένα όμως, προχωρούμε στην παρακάτω διερεύνηση. Αυτή τη φορά θα μελετήσουμε τη διακύμανση του σφάλματος για διαφορετικές τιμές του x, κάθε φορά για διαφορετικό μήκος αναπαράστασης σε bits και για όλες τις δυνάμεις του x από την πρώτη έως την ένατη. Δηλαδή για διαδοχικές πράξεις πολλαπλασιασμού από μία έως οκτώ. Θα μπορούσαμε να διερευνήσουμε και για περισσότερους πολλαπλασιασμούς το τελικό εισαγόμενο σφάλμα, όμως δεν κρίθηκε απαραίτητο, καθώς δεν αναμένεται να χρειαστούν προσεγγίσεις με πολυώνυμα τάξεως άνω της ενάτης, διότι το κύκλωμά μας θα γίνει πολύ αργό και μη αποδοτικό. τα αποτελέσματα της διερεύνησής μας παρατίθενται στους πίνακες που ακολουθούν. Ο κάθε πίνακας παρουσιάζει το ποσοστιαίο σφάλμα για της διάφορες τιμές του x έπειτα από συγκεκριμένο αριθμό διαδοχικών πολλαπλασιασμών (1 έως 9) για μία συγκεκριμένη τιμή πλήθους bits στην αναπαράσταση των τιμών του x. Για τον υπολογισμό αυτών των σφαλμάτων εργαστήκαμε ομοίως με πριν. Μετατρέψαμε τις διάφορες τιμές του x σε δυαδικές σε n bits (n=8, 16, 24, 32, 64 αντίστοιχα) και εκτελέσαμε τους πολλαπλασιασμούς στο δυαδικό. Έπειτα μετατρέψαμε 51

53 τους αριθμούς ξανά στο δεκαδικό και μέσω του τύπου (3.2) υπολογίσαμε το επί τοις εκατό σφάλμα. Ποσοστιαίο % σφάλμα πολλαπλασιασμών για αναπαράσταση σε 8 bits X 2 X 3 X 4 X 5 X 6 X 7 X 8 X 9 π/ π/ π/ π/ π/ π/ π/ π/ π/ π/ Πίνακας (3.2.5) Ποσοστιαίο % σφάλμα πολλαπλασιασμών για αναπαράσταση σε 16 bits X 2 X 3 X 4 X 5 X 6 X 7 X 8 X 9 π/ π/ π/ π/ π/ π/ π/ π/ π/ π/ Πίνακας (3.2.6) 52

54 Ποσοστιαίο % σφάλμα πολλαπλασιασμών για αναπαράσταση σε 24 bits X 2 X 3 X 4 X 5 X 6 X 7 X 8 X 9 π/ π/ π/ π/ π/ π/ π/ π/ π/ π/ Πίνακας (3.2.7) π/20 2π/20 3π/20 4π/20 5π/20 6π/20 7π/20 8π/20 9π/20 Ποσοστιαίο % σφάλμα πολλαπλασιασμών για αναπαράσταση σε 32 bits X 2 X 3 X 4 X 5 X 6 X 7 X 8 X

55 π/2 636 Πίνακας (3.2.8) π/20 2π/20 3π/20 4π/20 5π/20 6π/20 7π/20 8π/20 9π/20 Ποσοστιαίο % σφάλμα πολλαπλασιασμών για αναπαράσταση σε 64 bits X 2 X 3 X 4 X 5 X 6 X 7 X 8 X π/ Πίνακας (3.2.9) Από τα δεδομένα των πινάκων, παρατηρούμε πως ως επί το πλείστον η διακύμανση του σφάλματος σε κάθε περίπτωση είναι σταθερή. Χωρίς να λαμβάνουμε υπόψιν το επί τοις εκατό σφάλμα στα π/2, όπου εμφανίζονται διαφορετικά σφάλματα σε σχέση με τα υπόλοιπα, προφανώς λόγω του συγκεκριμένου αριθμού, καταλήγουμε στο ότι τα διάφορα ποσοστιαία σφάλματα είναι: Ανάλογα του 10 0 % για την αναπαράσταση σε 8 bits Ανάλογα του % για την αναπαράσταση σε 16 bits Ανάλογα του % για την αναπαράσταση σε 24 bits Ανάλογα του % για την αναπαράσταση σε 32 bits Ανάλογα του % για την αναπαράσταση σε 64 bits 54

56 Πράγμα που επιβεβαιώνει όσα διατυπώθηκαν προηγουμένως. Δηλαδή ότι 1. όσο αυξάνονται τα ψηφία της αναπαράστασης, το σφάλμα μειώνεται, αλλά και το "κέρδος σφάλματος" από τη μία αναπαράσταση στην άλλη μειώνεται, όπως φαίνεται πολύ έντονα εδώ συγκρίνοντας την τάξη μεγέθους των σφαλμάτων σε 32 και σε 64 bits. 2. Η πράξη του πολλαπλασιασμού ελάχιστα επηρεάζει το τελικό σφάλμα (με εξαίρεση στα 64 bits) σε ένα ποσοστό ανάλογο του 1%. Η τάξη μεγέθους του σφάλματος λοιπόν ορίζεται κυρίως από το πλήθος ψηφίων της αναπαράστασής του στο δυαδικό. Τέλος παρατηρούμε ότι σχεδόν σε κάθε περίπτωση (ακόμη και για το π/2) το σφάλμα αυξάνεται ανάλογα με το πόσες πράξεις πολλαπλασιασμού έγιναν, πράγμα που μας υποψιάζει για το ότι ίσως οι μεγαλύτερες τάξεις πολυωνύμων παρά το ότι μαθηματικά προσεγγίζουν καλύτερα την τελική τιμή, ίσως να μην μειώνουν το τελικό σφάλμα αρκετά ώστε να δικαιολογήσουν το επιπλέον υλικό που θα επενδυθεί για αυτές, λόγω των επιπλέον πολλαπλασιαστικών πράξεων που απαιτούν. Προκειμένου να κατανοηθούν καλύτερα οι παραπάνω πίνακες, παρατίθενται παρακάτω οι γραφικές παραστάσεις της μέσης τιμής του σφάλματος για κάθε διαφορετική δυαδική αναπαράσταση συναρτήσει του αριθμού των πολλαπλασιασμών που υπέστη η κάθε τιμή του x. Προκειμένου να είναι ικανοποιητικά εμφανής η κάθε γραφική παράσταση, οι 2 πρώτες για τα 8 bits και 16 bits αντίστοιχα έγιναν ξεχωριστά από τις υπόλοιπες. Σχήμα (3.2.3) Μέση τιμή % σφάλματος για αναπαράσταση σε 8 bits. 55

57 Σχήμα (3.2.4) Μέση τιμή % σφάλματος για αναπαράσταση σε 16 bits. Σχήμα (3.2.5) Μέση τιμή % σφάλματος για αναπαραστάσεις σε 24, 32 και 64 bits. 56

58 Από τα σχήματα (3.2.3), (3.2.4) και (3.2.5) παρατηρούμε πως υφίσταται μια ξεκάθαρη γραμμική εξάρτηση μεταξύ της μέσης τιμής του ποσοστιαίου επί τοις εκατό σφάλματος και του αριθμού των διαδοχικών πολλαπλασιασμών που εκτελεί ένας αριθμός σε κάθε αναπαράσταση. Η επιρροή του ποσοστιαίου σφάλματος από τους πολλαπλασιασμούς όμως δεν αρκεί για να επικρατήσει αυτής του σφάλματος που εισάγεται από την αρχική αναπαράσταση του αριθμού που υπόκειται στους διαδοχικούς πολλαπλασιασμούς, τουλάχιστον όχι για τόσο μικρό πλήθος διαδοχικών πολλαπλασιασμών. Πιθανότατα για έναν αριθμό διαδοχικών πολλαπλασιασμών άνω του 50, το σφάλμα από τους πολλαπλασιασμούς να ήταν πολύ πιο σημαντικό και να προσέθετε πολύ μεγαλύτερο ποσοστό στο τελικό σφάλμα. Τέλος παρατηρούμε πως ενώ για τις πρώτες δύο γραφικές παραστάσεις χρειαζόμαστε διαφορετικά σχήματα για να αναπαρασταθούν ικανοποιητικά οι γραμμικές σχέσεις των σφαλμάτων, αυτό δεν ισχύει για τις υπόλοιπες τρεις. Αυτό συμβαίνει, διότι όπως τονίστηκε και προηγουμένως το "κέρδος σφάλματος" μειώνεται όσο μεταβαίνουμε σε όλο και ακριβέστερες αναπαραστάσεις με περισσότερο αριθμό bits. Ειδικά στις γραφικές παραστάσεις των 32 και 64 bits παρατηρούμε πως οι καμπύλες τους σχεδόν ταυτίζονται Τάξη του πολυωνύμου για την προσέγγιση της συνάρτησης. Όπως ειπώθηκε και προηγουμένως στην υποενότητα 3.1, η προσέγγιση του κάθε στιγμιότυπου της ημιτονικής συνάρτησης επιλέχθηκε να γίνει με χρήση πολυωνύμων Taylor και Maclaurin, καθώς η φύση των ψηφιακών κυκλωμάτων δεν τους επιτρέπει να αντιληφθούν πράξεις πέραν της πρόσθεσης, της αφαίρεσης και του πολλαπλασιασμού. Έχοντας λοιπόν αποφασίσει πως θα κινηθούμε με αυτό τον τρόπο για την προσέγγιση των τιμών της συνάρτησής μας, μένει να επιλέξουμε την τάξη των πολυωνύμων που θα χρησιμοποιήσουμε. Σύμφωνα λοιπόν με το θεώρημα Taylor, οποιαδήποτε παραγωγίσιμη συνάρτηση σε ένα σημείο x=α μπορεί να προσεγγιστεί με ένα πολυώνυμο το οποίο προκύπτει από τον τύπο: 57

59 f '( a) 2 f ''( a) f ( x) f ( a) ( x a) ( x a)... (3.3) 1! 2! Το πολυώνυμο αυτό ταυτίζεται με την συνάρτηση που θέλουμε να προσεγγίσουμε για x πολύ κοντά στο α και αποκλίνει όλο και περισσότερο από τις τιμές της συνάρτησης όσο το x απομακρύνεται από το σημείο α. Επίσης όσο μεγαλύτερη η τάξη του πολυωνύμου, τόσο καλύτερα γίνεται η προσέγγιση των διαφόρων τιμών της συνάρτησης από το πολυώνυμο Taylor. Στην ειδική περίπτωση που η προσέγγιση γίνεται στο σημείο x=α=0, τότε το πολυώνυμο ονομάζεται πολυώνυμο Maclaurin και είναι μία απλούστευση του τύπου του Taylor, ειδικά για τις τριγωνομετρικές συναρτήσεις το πολυώνυμο γίνεται να τροποποιηθεί ώστε να απλουστευθεί η μορφή του. Στην περίπτωση της f(x)=sinx το πολυώνυμο Maclaurin είναι της μορφής: 3 5 x x f ( x) sin( x) x... (3.4) 3! 5! Επομένως παρατηρούμε πως η πως η υλοποίηση του πολυωνύμου προσέγγισης στο σημείο x= 0 είναι πολύ πιο συμφέρουσα από την υλοποίησή του σε οποιοδήποτε άλλο σημείο από άποψη πράξεων, άρα και υλικού που θα επενδυθεί. Επομένως εκτός από την τάξη πολυωνύμου, παίζει ρόλο και το σημείο της προσέγγισης στο ισοζύγιο κόστους-ποιότητας του κυκλώματος που θέλουμε να υλοποιήσουμε. Προκειμένου να μπορέσουμε να συγκρίνουμε πρέπει να έχουμε μια πιο ολοκληρωμένη εικόνα του προβλήματός μας. Καταρχήν πρέπει να αποφασίσουμε για το ποιος από τους 2 τρόπους προσέγγισης είναι αποδοτικότερος και στη συνέχεια πρέπει να αποφασιστεί μέχρι τι τάξη αξίζει να είναι το πολυώνυμό μας προκειμένου να έχουμε κέρδος σε ποιότητα κυματομορφής. Για το λόγο αυτό θα γίνει διερεύνηση και ως προς τους 2 τρόπους προσέγγισης για τάξεις πολυωνύμων από 1 έως 9. Το γεγονός ότι η συνάρτησή μας δέχεται τιμές από 0 έως π/2 μειώνει πάρα πολύ το τελικό σφάλμα λόγω της προσέγγισης με πολυώνυμα, διότι το σφάλμα αυτό εξαρτάται άμεσα από την απόσταση της τιμής του x από το σημείο της προσέγγισης. Αν για παράδειγμα προσεγγίζαμε τη συνάρτησή μας στη μέση του πεδίου ορισμού της συνάρτησής μας πριν την τροποποίηση που της κάναμε στην υποενότητα 3.1, το σημείο προσέγγισης θα ήταν το x=π και το πεδίο ορισμού από 0 έως 2π. Επομένως η μέγιστη απόσταση από το σημείο x= π θα ήταν ±π. Τώρα εξαιτίας της τροποποίησης που διαπράξαμε, αν κάνουμε την προσέγγιση στο σημείο x=π/4, δηλαδή στη μέση του πεδίου ορισμού της τροποποιημένης συνάρτησης (το πεδίο ορισμού της είναι από 0 έως π/2), η μέγιστη απόσταση από το x=π/4 θα είναι ±π/4. Αμέσως βλέπουμε πως η μέγιστη απόσταση από το ιδανικό σημείο προσέγγισης 58

60 υποτετραπλασιάστηκε έπειτα από την τροποποίηση της συνάρτησής μας (και αυτός ήταν και ακόμη ένας λόγος που κάναμε την τροποποίηση εξ αρχής). Επομένως η τροποποίηση της συνάρτησης εκτός από τα οφέλη που παρουσίαζε προηγουμένως, βελτιστοποιεί και το σφάλμα του τρόπου προσέγγισης που επιλέξαμε. Έχοντας λοιπόν αυτά κατά νου, πλέον μπορούμε να προχωρήσουμε με τη διερεύνησή μας για το σφάλμα που συνεπάγεται το κάθε πολυώνυμο προσέγγισης συναρτήσει της τάξης του. Οι 2 περιπτώσεις πολυωνύμων που κρίθηκαν ιδανικότερες για να διερευνηθούν, ήταν οι εξής: Πολυώνυμο n τάξης (n από 1 έως 9) στο σημείο x=0 με μέγιστη απόσταση από το σημείο της προσέγγισης Δx=π/2, αλλά αναμένεται να έχει πολύ λιγότερο κόστος σε υλικό από ένα πολυώνυμο ίδιας τάξης σε οποιοδήποτε άλλο σημείο εντός του (0,π/2]. Πολυώνυμο n τάξης (n από 1 έως 9) στο σημείο x=π/4, δηλαδή στη μέση του πεδίου ορισμού της συνάρτησης που θέλουμε να προσεγγίσουμε, με μέγιστη απόσταση Δx=±π/4 από το σημείο προσέγγισης. Το επιμέρους σφάλμα που θα εισάγεται στο τελικό λόγω της προσέγγισης με πολυώνυμο αναμένεται να είναι χαμηλότερο από της πρώτης περίπτωσης, αλλά το κόστος υλοποίησης του κυκλώματος που θα εκτελεί τη συνάρτηση που θέλουμε αναμένεται να είναι μεγαλύτερο. Επομένως η διερεύνηση έγινε υπολογίζοντας κάθε φορά το μέγιστο σφάλμα για κάθε περίπτωση, δηλαδή υπολογίζοντας κάθε φορά την τιμή της συνάρτησής μας f(x) μέσω ενός πολυωνύμου n τάξης (n από 1 έως 9) και συγκρίνοντάς το με την πραγματική τιμή της f(x), υπολογίζοντας την ποσοστιαία απόκλιση της προσέγγισης με τον τύπο: f ( x) P( x) 100 f ( x) (3.5) Όπου f(x) η τιμή της πραγματικής συνάρτησης για τα διάφορα x εντός του πεδίου ορισμού [0,π/2] και P(x) η τιμή της προσέγγισης μέσω πολυωνύμου. Προκειμένου το σφάλμα που υπολογίζουμε κάθε φορά να είναι το μέγιστο, πήραμε τέτοιο x ώστε να έχει τη μέγιστη απόσταση από το σημείο όπου γίνεται κάθε φορά η προσέγγιση. Δηλαδή για την προσέγγιση με πολυώνυμο Maclaurin επιλέχθηκε το x=π/2 και για την προσέγγιση με πολυώνυμο Taylor επιλέχθηκαν 2 σημεία, τα x= 0 και x= π/2. Στους πίνακες που ακολουθούν παρατίθενται τα αποτελέσματα της διερεύνησης αυτής, καθώς και οι απαιτούμενες πράξεις για την υλοποίηση της κάθε περίπτωσης σε ψηφιακό κύκλωμα: 59

61 Πολυώνυμο Maclaurin Τάξη πολυωνύμου Μέγιστο σφάλμα % Αριθμός απαιτούμενων αθροίσεων Αριθμός απαιτούμενων πολ/σμών Πίνακας (3.3.1) Τάξη πολυωνύμου Μέγιστο σφάλμα % στο x= 0 Μέγιστο σφάλμα % στο x= π/2 Πολυώνυμο Taylor στο x=π/4 Μέση τιμή μέγιστου σφάλματος % Αριθμός απαιτούμενων αθροίσεων Αριθμός απαιτούμενων πολ/σμών Πίνακας (3.3.2) Προκειμένου να γίνει καλύτερη σύγκριση μεταξύ των μέγιστων σφαλμάτων των 2 τρόπων προσέγγισης, αλλά και της εξάρτησής τους από την τάξη του πολυωνύμου, απεικονίζουμε στις παρακάτω γραφικές παραστάσεις το μέγιστο ποσοστιαίο σφάλμα που εισάγει η προσέγγιση με πολυώνυμο Μaclaurin και τη μέση τιμή του μέγιστου ποσοστιαίου σφάλματος που εισάγεται μέσω της προσέγγισης πολυωνύμου Taylor στο x=π/4, αντίστοιχα στα σχήματα (3.3.1) και (3.3.2). Επίσης στα σχήματα (3.3.3) και (3.3.4) απεικονίζεται η εξάρτηση του πλήθους των πράξεων που απαιτούνται από την τάξη του πολυωνύμου της προσέγγισης, αντίστοιχα για Maclaurin και Taylor σε x=π/4. 60

62 Σχήμα (3.3.1) Ποσοστιαίο σφάλμα % συναρτήσει της τάξης του πολυωνύμου Maclaurin. Σχήμα (3.3.2) Μέση τιμή ποσοστιαίου σφάλματος % συναρτήσει της τάξης πολυωνύμου Taylor στο x=π/4. 61

63 Σχήμα (3.3.3) Εξάρτηση του πλήθους των απαιτούμενων πράξεων για την υλοποίηση του προσεγγιστικού πολυωνύμου Maclaurin από την τάξη του πολυωνύμου. Σχήμα (3.3.4) Εξάρτηση του πλήθους των απαιτούμενων πράξεων για την υλοποίηση του προσεγγιστικού πολυωνύμου Taylor στο x=π/4 από την τάξη του πολυωνύμου. 62

64 Παρατηρώντας τους πίνακες και τα σχήματα διαπιστώνουμε μία σχεδόν εκθετική μείωση του σφάλματος συναρτήσει της αύξησης της τάξης του προσεγγιστικού πολυωνύμου. Αυτό μας θυμίζει την περίπτωση του πλήθους των bits, όπου το "κέρδος σφάλματος" μειωνόταν όσο περισσότερο επενδύαμε σε υλικό. Αντίστοιχη περίπτωση παρατηρούμε και εδώ, μέσω αυτών των δύο γραφικών παραστάσεων, αφού μεγαλύτερη τάξη πολυωνύμου συνεπάγεται και περισσότερες πράξεις, που συνεπάγονται περισσότερο απαιτούμενο υλικό για την υλοποίηση του ψηφιακού κυκλώματος. Επιπροσθέτως, παρατηρούμε την ξεκάθαρη γραμμική αύξηση των απαιτούμενων πράξεων συναρτήσει της αύξησης της τάξης του κάθε πολυωνύμου. Στην περίπτωση του Taylor η κλίση της ευθείας είναι ίδια και για τους πολλαπλασιασμούς και για τις αθροίσεις, ενώ στην περίπτωση του Taylor η κλίση της ευθείας των πολλαπλασιασμών είναι μεγαλύτερη από αυτή των αθροίσεων. Τελικό μας συμπέρασμα από τη διερεύνηση αυτή είναι πως η προσέγγιση μέσω πολυωνύμου Maclaurin είναι καλύτερη και από άποψη ποιότητας, αλλά και από άποψη κόστους, καθώς σε κάθε περίπτωση για την ίδια τάξης πολυωνύμου η προσέγγιση μέσω πολυωνύμου Maclaurin απαιτεί λιγότερη επένδυση υλικού εισάγοντας ταυτόχρονα λιγότερο επιμέρους σφάλμα στο τελικό σφάλμα μας. Παρόλα αυτά την προσέγγιση μέσω πολυωνύμου Taylor θα την υλοποιήσουμε αργότερα, στο επόμενο κεφάλαιο, καθώς δεν παρουσιάζει μεγάλη διαφορά στο ποσοστιαίο σφάλμα της από την προσέγγιση μέσω πολυωνύμου Maclaurin και θεωρητικά είναι μία αρκετά αποδοτική λύση για το πρόβλημά μας. Ιδανική λύση παραμένει σαφώς η προσέγγιση μέσω πολυωνύμων Maclaurin. Έχοντας επιλύσει πλέον το ζήτημα του τρόπου της προσέγγισης μέσω πολυωνύμων της συνάρτησης που θέλουμε να υλοποιήσουμε, μένει να καθορίσουμε την τάξη του πολυωνύμου που θα χρησιμοποιηθεί. Από τους πίνακες (3.3.1) και (3.3.2) είναι εμφανές πως για να βρισκόμαστε κάτω από το όριο του 0.1% που ορίσαμε στην αρχή της εργασίας, πρέπει η τάξη του πολυωνύμου να είναι άνω του 7 και στις δύο περιπτώσεις των προσεγγίσεων, δίχως να λαμβάνονται υπόψιν τα υπόλοιπα επιμέρους σφάλματα. Υπάρχει όμως ένας πολύ σημαντικός παράγοντας που θέτει περιορισμούς στο πόσο μεγάλη τάξη πολυωνύμου γίνεται να χρησιμοποιήσουμε για την προσέγγιση και αυτός είναι το πλήθος των bits της αναπαράστασης που επιλέχθηκε στο προηγούμενο κεφάλαιο. Ο τρόπος με τον οποίο εξαρτάται το ένα από το άλλο θα εξηγηθεί παρακάτω. 63

65 Καταρχήν, όπως εξηγήθηκε και στο προηγούμενο κεφάλαιο, εντός του ψηφιακού κυκλώματος δεν είναι εφικτές οι πράξεις με μη ακεραίους αριθμούς. Προκειμένου να εκτελεσθούν πράξεις δεκαδικών, πρέπει να "ανυψωθούν" (scaled) μέσω του πολλαπλασιασμού με μία σταθερή βάση, τέτοια ώστε όλα τα δεκαδικά ψηφία που μας ενδιαφέρουν να περάσουν στο ακέραιο μέρος. Στη συνέχεια εκτελούνται κανονικά οι πράξεις και στο τέλος το αποτέλεσμα διαιρείται ξανά με τη ίδια σταθερή βάση που πολλαπλασιάστηκε στην αρχή. Έτσι το αποτέλεσμά μας είναι το ίδιο αναπαριστώντας τον αριθμούς σε τόσα ψηφία, όσα επιτρέπει η εκάστωτε αρχιτεκτονική. Αυτή η μέθοδος ονομάζεται αναπαράσταση σταθερής υποδιαστολής (fixed-point representation) και είναι πολύ διαδεδομένη για την εκτέλεση αριθμητικών πράξεων σε απλά ψηφιακά κυκλώματα. Η μέθοδος με την οποία θα λειτουργεί το κύκλωμά μας θα βασίζεται σε αυτή τη φιλοσοφία, με τη διαφορά ότι στο τέλος δεν θα γίνεται διαίρεση με τη σταθερή βάση ξανά. Αυτό θα συμβαίνει, διότι η συνάρτησή μας, όντας ημιτονική, δεν εμφανίζει διαφορά είτε βρίσκεται υπερυψωμένη από το 0, είτε όχι. Η εναλλασσόμενη συνιστώσα του σήματος γίνεται να απομονωθεί εύκολα με τη χρήση ενός πυκνωτή στην έξοδο, πράγμα που μας απαλλάσσει και από την ανάγκη ύπαρξης αρνητικών αριθμών στο κύκλωμά μας (για την αρνητική ημιπερίοδο του σήματος). Επομένως πλέον αρκεί να ορίσουμε τη βάση για την ανύψωση (scaling) των αριθμών μας κατάλληλα, ώστε να μην υπάρξει υπερχείλισή τους εκτός του περιθωρίου που μας δίνουν τα 16 bits. Με 16 bits μπορούμε να αναπαραστήσουμε αριθμούς από 0 έως 2 16 (65535). Από αυτούς τους αριθμούς, τους μισούς πρέπει να τους διαθέσουμε για τις αρνητικές τιμές, επομένως θέτουμε το υποτιθέμενο 0 μας στο 2 15 και έχουμε 2 15 τιμές περιθώριο επέκτασης για να ανυψώσουμε όλους τους θετικούς αριθμούς μας. Οι διάφορες τιμές του ημιτόνου κυμαίνονται από -1 έως 1, επομένως, έχοντας ως μέγιστο αριθμό για να αναπαραστήσουμε το π/2, που είναι μεταξύ 2 και 1 (1.57 περίπου), επιλέγουμε ως βάση ανύψωσης το 2 14 (16384), ούτως ώστε να έχουμε και ένα μικρό περιθώριο για να μη υπάρξει υπερχείλιση. Αυτό σημαίνει ότι θα πολλαπλασιάσουμε όλους τους αριθμούς που θα αναπαραστήσουμε με το πριν τους μετατρέψουμε στο δυαδικό, μεταξύ των οποίων εκτός από τις διάφορες τιμές του x και τις τιμές της εξόδου, θα συμπεριλαμβάνονται και οι τιμές των συντελεστών των διαφόρων δυνάμεων του x. Με τη διαίρεση αυτή του συνόλου των αριθμών που μας δίνονται από τα 16 bits μικραίνει κατά μία δύναμη το "πραγματικό" μήκος σε bits που θα αξιοποιηθεί για την αναπαράσταση των αριθμών μας εντός του ψηφιακού κυκλώματος. Δηλαδή, εφόσον το πρώτο bits θα αποτελεί το "πρόσημο" του κάθε αριθμού ώστε να διαχωρίζουμε τους θετικούς από τους αρνητικούς, αμέσως το αξιοποιήσιμο μήκος σε bits για την αναπαράσταση αριθμών γίνεται 15 bits, πράγμα που αλλοιώνει ελαφρώς την τιμή του επιμέρους εισαγόμενου σφάλματος που 64

66 υπολογίσαμε προηγουμένως. Επειδή όμως πρακτικά η διαφορά σφάλματος είναι αμελητέα μεταξύ αναπαραστάσεων σε 15 και 16 bits, δεν θα επεκταθούμε στο να υπολογίσουμε το νέο σφάλμα που προκύπτει. Τα πολυώνυμα λοιπόν που θα υλοποιήσουμε σε κάθε περίπτωση, αν επιλέγαμε να εφαρμόσουμε την προσέγγιση στη μέγιστη δυνατή της τάξη (Maclaurin και Taylor αντίστοιχα) θα ήταν τα εξής: P1 (x) 57x x x x x (3.6) P (x) (x - π/4) (x - π/4) (x - π/4) (x - π/4) (x - π/4) (x - π/4) (x - π/4) (x - π/4) (x - π/4) (3.7) Τα πολυώνυμα αυτά, μετά την ανύψωσή τους θα γίνουν ως εξής (συμπεριλαμβάνονται μονάχα τα ακέραια μέρη των συντελεστών, αφού τα υπόλοιπα δεν θα αναπαρασταθούν για να συμμετέχουν στις πράξεις): P1 (x) 0x x 2731x 137x 3x (3.8) P (x) (x - π/4) -5793(x - π/4) (x - π/4) (x - π/4) 5-16(x - π/4) (x - π/4) - 2(x - π/4) 7 3 0(x - π/4) 8 0(x - π/4) 9 (3.9) Παρατηρούμε, πως εξαιτίας της αναπαράστασης που επιλέξαμε, έχουμε μία περιορισμένη ακρίβεια στο τι δεκαδικούς αριθμούς μπορούμε να αναπαραστήσουμε. Για το λόγο αυτό οι συντελεστές των δυνάμεων x 8 και άνω δεν μπορούν να αναπαρασταθούν ως ακέραιοι, παρά την ανύψωση και την τροποποίηση των τιμών που κάναμε στο κύκλωμά μας, αφού οι συντελεστές των δυνάμεων αυτών είναι 0. Άρα δεν έχει νόημα να μιλάμε για πολυώνυμα 8ου και 9ου βαθμού αν δεν μπορούμε να αναπαραστήσουμε τους συντελεστές των δυνάμεων αυτών του x, πράγμα που μας ορίζει ένα άνω όριο στο τι τάξεως πολυώνυμα μπορούμε να χρησιμοποιήσουμε για την προσέγγιση των τιμών της συνάρτησης που θέλουμε να υλοποιήσουμε, και αυτό το όριο είναι η 7η τάξη, καθώς μέχρι εκεί οι αριθμοί των συντελεστών του πολυωνύμου που προκύπτουν είναι ακέραιοι μετά την ανύψωση. 65

67 Επιλέγουμε λοιπόν η προσέγγιση να γίνει με χρήση πολυωνύμων 7ου βαθμού, ώστε να επιτύχουμε μέγιστη δυνατή ποιότητα και να βρισκόμαστε κάτω από το όριο ποσοστιαίου σφάλματος που ορίσαμε στην αρχή. Επίσης επιλέγουμε να χρησιμοποιήσουμε και τους 2 τύπους πολυωνύμων για την προσέγγιση της ημιτονικής συνάρτησης, χωρίς αυτό να σημαίνει όμως πως και τα 2 είναι τα ιδανικά για το ισοζύγιο ποιότητας-κόστους. Ο λόγος που επιλέγουμε να υλοποιήσουμε αρχιτεκτονικές που θα χρησιμοποιούν πολυώνυμα Taylor για την προσέγγισή μας είναι ότι θέλουμε να επιχειρηθεί η υλοποίηση και πιο σύνθετων αρχιτεκτονικών, καθώς είναι εύκολη η υλοποίηση των απλούστερων εφόσον έχει επιτευχθεί αυτή των δυσκολότερων. Επίσης, θέλουμε να διερευνήσουμε την υλοποίηση του κυκλώματός μας με τον συγκεκριμένο τρόπο για την περίπτωση και μόνο που ίσως κριθεί προτιμότερος σε κάποια άλλη υλοποίηση, πιθανώς εκτός της εργασίας αυτής. Στο επόμενο κεφάλαιο σε πολλά σημεία του κώδικα, θα χρησιμοποιηθούν παράμετροι (generics) ώστε στην περίπτωση που χρειαστεί να γίνει κάποια αλλαγή ως προς το πλήθος των bits ή το βαθμό του πολυωνύμου, οι αλλαγές των αριθμητικών τιμών των κυκλωμάτων που εξαρτώνται από αυτές τις διάφορες παραμέτρους που ορίσαμε εδώ να γίνουν αυτόματα, με την αντικατάσταση των τιμών των generics Ολικό σφάλμα από την προσέγγιση και την αναπαράσταση των τιμών της συνάρτησης. Έχοντας σχεδόν ολοκληρώσει τη διερεύνηση ως προς το σφάλμα που θα εισάγεται στο τελικό αποτέλεσμα λόγω της λειτουργίας του ψηφιακού κυκλώματος, θεωρήθηκε απαραίτητο να διερευνηθεί το μέχρι στιγμής ολικό εισακτέο σφάλμα λόγω των πράξεων, της αναπαράστασης και της προσέγγισης εντός του κυκλώματος. για το λόγο αυτό υπολογίστηκε υπολογίζοντας κάθε φορά την ποσοστιαία απόκλιση του αριθμού που προέκυπτε από τον πραγματικό, για τιμές του x μεταξύ των 0 και π/2. Δηλαδή σε κάθε περίπτωση υπολογιζόταν το σφάλμα. Οι τιμές των n και m εξετάστηκαν μία προς μία ως προς την επιρροή τους στο σφάλμα και τώρα εξετάζονται ταυτόχρονα. Πιο αναλυτικά, σε κάθε περίπτωση επιλέχθηκαν 10 ισαπέχουσες τιμές του x από 0 έως π/2 και μετατράπηκαν σε δυαδικές αναπαραστάσεις n bits, με n διαφορετικό για κάθε πίνακα. Έπειτα εκτελέστηκαν οι πράξεις στο δυαδικό για την προσέγγιση μέσω του 66

68 πολυωνύμου και ο νέος αριθμός ξαναμετατρεπόταν στο δεκαδικό σύστημα για τη σύγκρισή του με την πραγματική τιμή της f(x) μέσω του τύπου : ( P( x)) n f ( x) 100 (3.10) f ( x) Όπου f(x) η ημιτονική συνάρτηση και (P(x)) n το προσεγγιστικό πολυώνυμο, αναπαράστασης n bits και m βαθμού (n=8, 16, 24, 32, 64 και m = 1 έως 7, διαφορετικά για κάθε περίπτωση). Τα αποτελέσματα της διερεύνησής μας απεικονίζονται στους παρακάτω πίνακες. 8 bits Τιμές του x Τάξη του πολυωνύμου Maclaurin sin(π/20) sin(2π/20) sin(3π/20) sin(4π/20) sin(5π/20) sin(6π/20) sin(7π/20) sin(8π/20) sin(9π/20) sin(π/2) Τιμές του x Πίνακας (3.4.1) 16 bits Τιμές του x Τάξη του πολυωνύμου Maclaurin sin(π/20) sin(2π/20) sin(3π/20) sin(4π/20) sin(5π/20) sin(6π/20) sin(7π/20) sin(8π/20) sin(9π/20) sin(π/2) Τιμές του x Πίνακας (3.4.2) 67

69 24 bits Τιμές του x Τάξη του πολυωνύμου Maclaurin sin(π/20) sin(2π/20) sin(3π/20) sin(4π/20) sin(5π/20) sin(6π/20) sin(7π/20) sin(8π/20) sin(9π/20) sin(π/2) Τιμές του x Πίνακας (3.4.3) 32 bits Τιμές του x Τάξη του πολυωνύμου Maclaurin sin(π/20) sin(2π/20) sin(3π/20) sin(4π/20) sin(5π/20) sin(6π/20) sin(7π/20) sin(8π/20) sin(9π/20) sin(π/2) Τιμές του x Πίνακας (3.4.4) 32 bits Τιμές του x Τάξη του πολυωνύμου Maclaurin sin(π/20) sin(2π/20) sin(3π/20) sin(4π/20) sin(5π/20) sin(6π/20) sin(7π/20) sin(8π/20) sin(9π/20) sin(π/2) Τιμές του x Πίνακας (3.4.5) 68

70 8 bits Τάξη του πολυωνύμου Taylor Τιμές του x sin(π/20) sin(2π/20) sin(3π/20) sin(4π/20) sin(5π/20) sin(6π/20) sin(7π/20) sin(8π/20) sin(9π/20) sin(π/2) Πίνακας (3.4.6) 16 bits Τάξη του πολυωνύμου Taylor Τιμές του x sin(π/20) sin(2π/20) sin(3π/20) sin(4π/20) sin(5π/20) sin(6π/20) sin(7π/20) sin(8π/20) sin(9π/20) sin(π/2) Πίνακας (3.4.7)

71 24 bits Τάξη του πολυωνύμου Taylor Τιμές του x sin(π/20) sin(2π/20) sin(3π/20) sin(4π/20) sin(5π/20) sin(6π/20) sin(7π/20) sin(8π/20) sin(9π/20) sin(π/2) Πίνακας (3.4.8) bits Τάξη του πολυωνύμου Taylor Τιμές του x sin(π/20) sin(2π/20) sin(3π/20) sin(4π/20) sin(5π/20) sin(6π/20) sin(7π/20) sin(8π/20)

72 sin(9π/20) sin(π/2) Πίνακας (3.4.9) 64 bits Τάξη του πολυωνύμου Taylor Τιμές του x sin(π/20) sin(2π/20) sin(3π/20) sin(4π/20) sin(5π/20) sin(6π/20) sin(7π/20) sin(8π/20) sin(9π/20) sin(π/2) Πίνακας (3.4.10) Προκειμένου να γίνουν πιο εμφανή τα συμπεράσματά μας από τους πίνακες, παρατίθενται οι παρακάτω γραφικές παραστάσεις, όπου για την καθεμία έχουμε υπολογίσει τη μέση τιμή του ποσοστιαίου σφάλματος και τη συσχετίζουμε με το μήκος αναπαράστασης και την τάξη του προσεγγιστικού πολυωνύμου, χωριστά κάθε φορά και για τους 2 τρόπους προσέγγισης (με Taylor ή Maclaurin): 71

73 Σχήμα (3.4.1) Εξάρτηση της μέσης τιμής του σφάλματος % από την τάξη του πολυωνύμου Maclaurin για τα διάφορα μήκη σε bits της αναπαράστασης. Σχήμα (3.4.2) Εξάρτηση της μέσης τιμής του σφάλματος % από το πλήθος των bits της αναπαράστασης για πολυώνυμο Taylor. 72

74 Σχήμα (3.4.1) Εξάρτηση της μέσης τιμής του σφάλματος % από το πλήθος των bits της αναπαράστασης για πολυώνυμο Maclaurin. Σχήμα (3.4.4) Εξάρτηση της μέσης τιμής του σφάλματος % από το πλήθος των bits της αναπαράστασης για πολυώνυμο Taylor. 73

75 Πλέον έχοντας μια πιο ολοκληρωμένη εικόνα από τα σχήματα και τους πίνακες που παρατέθηκαν, παρατηρούμε πως ξεκάθαρα πια το μεγαλύτερο ρόλο στο τελικό σφάλμα τον παίζει ο τρόπος με τον οποίο θα γίνει η μαθηματική προσέγγιση και όχι τόσο πολύ το μήκος της αναπαράστασης των αριθμών σε bits, με μια εξαίρεση για την περίπτωση των 8 bits μήκους, όπου οι τιμές του σφάλματος απέχουν πολύ από τις υπόλοιπες. Επομένως, συμπεραίνουμε πως είναι σημαντικότερο να γίνει επένδυση σε υλικό για καλύτερη μαθηματική προσέγγιση της κυματοσυνάρτησης που θέλουμε να υλοποιήσουμε, παρά για αύξηση του μήκους της αναπαράστασης. Με βάση τα σχήματα και τους πίνακες, προκειμένου να έχουμε το ιδανικό ισοζύγιο ποιότηταςκόστους για το κύκλωμά μας, θα πρέπει το κύκλωμά μας να σχεδιαστεί για 16 bits μήκος αναπαράστασης αριθμών και η μαθηματική προσέγγιση εντός του να γίνεται με πολυώνυμα 7ου βαθμού, είτε πρόκειται για Taylor, είτε για Maclaurin, προσέχοντας πάντα το τελικό μας σφάλμα να βρίσκεται κάτω του ορίου το 0.1 % που θέσαμε εξ αρχής Ορισμός ανάλυσης της κυματομορφής Έχοντας πλέον καταλήξει στο πώς και κατά πόσο επηρεάζουν το αποτέλεσμά μας οι παράμετροι που πρέπει να οριστούν κατάλληλα ώστε να έχουμε τα επιθυμητά αποτελέσματα, μένει μία τελική παράμετρος, την οποία δεν αναφέραμε καθόλου ως τώρα και παίζει μείζονα ρόλο στο πόσο καλή θα είναι η κυματομορφή μας. Η τελευταία αυτή παράμετρος είναι η ανάλυση της κυματομορφής που θα εξάγεται. Το ψηφιακό μας κύκλωμα έναντι των αναλογικών, φέρει ένα πολύ σημαντικό μειονέκτημα που φέρουν όλα τα ψηφιακά κυκλώματα έναντι των αναλογικών: η έξοδός του δεν είναι "συνεχής" όπως των αναλογικών, που εξάγουν θεωρητικά άπειρες τιμές ανά στιγμιότυπο (στην πραγματικότητα δεν ισχύει αυτό, καθώς γνωρίζουμε από τη φυσική πως όλα είναι κβαντισμένα στη φύση), αλλά μπορούν να εξάγουν ένα πεπερασμένο πλήθος τιμών ανά μονάδα χρόνου. Επομένως η τελική μορφή της συνάρτησης δεν θα είναι ένα συνεχές ημίτονο, αλλά μία "βαθμωτή συνάρτηση" που θα προσεγγίζει το ημίτονο σε κάθε περίπτωση, όπως φαίνεται στο παρακάτω σχήμα: 74

76 Σχήμα (3.5.1) Προσέγγιση της πραγματικής συνάρτησης από το ψηφιακό κύκλωμα. Η προσέγγιση αυτή αφήνει κάποια "κενά" στην τελική κυματομορφή, καθώς η τιμή της εξόδου θα παραμένει σταθερή έως ότου ολοκληρώσει ακόμη έναν κύκλο μηχανής το κύκλωμά μας για να δώσει την επόμενη τιμή. Οι ακμές που προκύπτουν, δεν μας απασχολούν πολύ, αφού μπορούν εύκολα να αφαιρεθούν με την προσθήκη ενός χαμηλοπερατού φίλτρου στο τελικό αναλογικό κύκλωμα της εξόδου. Αυτό που μας απασχολεί όμως προκειμένου να έχουμε ένα ικανοποιητικό αποτέλεσμα, είναι η μέση τιμή της κυματομορφής σε κάθε περίπτωση να μην απέχει υπερβολικά πολύ από την πραγματική. Μένει λοιπόν να καθορίσουμε πόσες τιμές χρειάζεται να εξάγει ανά μονάδα χρόνου το ψηφιακό μας κύκλωμα, προκειμένου το Δy που απεικονίζεται στο σχήμα να είναι τέτοιο, ώστε το ποσοστιαίο σφάλμα που εισάγεται λόγω της φύσης του ψηφιακού μας κυκλώματος να είναι κάτω από το όριο του 0.1% που τέθηκε εξ αρχής. Είναι σημαντικό όμως να μην έχουμε υπερβολικά μεγάλο αριθμό εξαγόμενων τιμών ανά μονάδα χρόνου, καθώς η κάθε τιμή αντιστοιχεί σε ένα κύκλο μηχανής για το κύκλωμά μας και η υπερβολικά μεγάλη ανάλυση συνεπάγεται πιο αργό κύκλωμα. Αν για παράδειγμα στο διάστημα [0, π/2] (δηλαδή για το 1/4 της συνολικής περιόδου) εξάγονται 10 τιμές από το κύκλωμά μας, ο χρόνος περιόδου του εξαγόμενου σήματος θα είναι : T 4 10 t (3.11) 0 75

77 Όπου t 0 ο χρόνος που θα χρειάζεται το κύκλωμά μας για την εκτέλεση ενός κύκλου και την εξαγωγή μίας τιμής. Άρα ανάλογα με την ποιότητα της ανάλυσης που θα ορίσουμε, θα καθοριστεί έμμεσα το συχνοτικό εύρος κυματομορφών που θα μπορεί να εξάγει το κύκλωμά μας. Όσο χαμηλότερης ποιότητας ανάλυση έχουμε, τόσο πιο υψηλές συχνότητες θα μπορούμε να εξάγουμε με το κύκλωμά μας, αφού η περίοδος θα γίνεται μικρότερη και είναι αντιστρόφως ανάλογη της συχνότητας. Επομένως, καλύτερες αναλύσεις θα συνεπάγονται καλύτερης ποιότητας κυματομορφές μεν, αλλά θα μικραίνουν το συχνοτικό εύρος των κυματομορφών που θα μπορούμε να εξάγουμε. Προκειμένου να επιλεγεί μία κατάλληλη τιμή ανάλυσης ώστε και τις ζητούμενες προδιαγραφές του κυκλώματός μας να διατηρήσουμε, αλλά και το συχνοτικό εύρος του τελικού μας κυκλώματος να μη ζημιώσουμε πολύ, προχωρήσαμε στην παρακάτω διερεύνηση. Κατά τη διερεύνηση αυτή, θεωρήσαμε κάποιες αναλύσεις που εξήγαγαν 2, 4, 8, 16 και 24 τιμές αντίστοιχα, ούτως ώστε να μπορέσουμε να οπτικοποιήσουμε κάπως την εξάρτηση της ποιότητας από την ανάλυση. Στη συνέχεια για κάθε φορά χωριστά, υπολογίζαμε την τιμή του Δy (όπως απεικονίζεται στο σχήμα (3.5.1)) και υπολογίζαμε το ποσοστιαίο % σφάλμα μέσω του τύπου: f ( t) P( t) 100 (3.12) f ( t) Όπου f(t) η πραγματική μας συνάρτηση και P(t) κάθε φορά η μέση τιμή των 2 σημείων αριστερά και δεξιά του Δy υπολογισμένο με μετατροπή και πράξεις εκτελεσμένες σε 16 bit δυαδική αναπαράσταση με προσέγγιση πολυωνύμου 7ου βαθμού (ώστε να ληφθούν υπόψιν και τα υπόλοιπα επιμέρους σφάλματα). Τα αποτελέσματα της διερεύνησής μας παρατίθενται παρακάτω: Ανάλυση 2 τιμών ανά Τ/4 Μέση τιμή μεταξύ των τιμών Ποσοστιαίο % σφάλμα Πίνακας (3.5.1) Ανάλυση 4 τιμών ανά Τ/4 Μέση τιμή μεταξύ των τιμών Ποσοστιαίο % σφάλμα 76

78 Πίνακας (3.5.2) Ανάλυση 8 τιμών ανά Τ/4 Μέση τιμή μεταξύ των τιμών Ποσοστιαίο % σφάλμα Πίνακας (3.5.3) Ανάλυση 16 τιμών ανά Τ/4 Μέση τιμή μεταξύ των τιμών Ποσοστιαίο % σφάλμα Πίνακας (3.5.4) Ανάλυση 24 τιμών ανά Τ/4 Μέση τιμή μεταξύ των τιμών Ποσοστιαίο % σφάλμα

79 Πίνακας (3.5.5) Παρακάτω παρατίθεται η γραφική παράσταση της μέσης τιμής του ποσοστιαίου σφάλματος συναρτήσει των διαφόρων αναλύσεων που διερευνήσαμε, προκειμένου να οπτικοποιηθεί η εξάρτηση του ενός από του άλλου: 78

80 Σχήμα (3.5.2) Εξάρτηση της μέσης τιμής του ποσοστιαίου σφάλματος από την επιλογή ανάλυσης του κυκλώματος. Παρατηρούμε πως η επένδυση σε καλύτερη ανάλυση αποδίδει όλο και λιγότερο "κέρδος ποιότητας" όσο αυξάνεται η ανάλυσή μας. Επομένως το να έχουμε ένα υποθετικό κύκλωμα με εξαιρετικά μεγάλη ανάλυση όχι μόνο δεν θα άξιζε την επένδυση προκειμένου να βελτιωθεί η ποιότητα του αποτελέσματος, αλλά θα περιόριζε υπερβολικά πολύ τη συχνοτική απόδοση του κυκλώματός μας. Επιλέξαμε λοιπόν την υλοποίηση του κυκλώματός μας σε ανάλυση 16 τιμών ανα Τ/4. Η επιλογή μας αυτή έγινε παρά το γεγονός ότι η μέση τιμή του σφάλματος είναι πολύ οριακά στο ανώτατο όριο που θέσαμε, αλλά λάβαμε υπόψιν το ότι θα προστεθεί και ένα χαμηλοπερατό φίλτρο στην έξοδο του ψηφιακού μας κυκλώματος, προκειμένου να αποκόπτονται έτσι οι ακμές της εξαγόμενης κυματομορφής και θα βελτιωθεί κατά ένα αρκετά μεγάλο παράγοντα η ποιότητα της κυματομορφής μας. 79

81 ΚΕΦΑΛΑΙΟ 4 ΣΧΕΔΙΑΣΜΟΣ ΤΩΝ ΑΡΧΙΤΕΚΤΟΝΙΚΩΝ Πλέον βρισκόμαστε στο σημείο όπου έχουμε καθορίσει τις απαραίτητες παραμέτρους για το σχεδιασμό του ψηφιακού κυκλώματός μας και μπορούμε να προχωρήσουμε στο τελικό στάδιο, όπου σχεδιαστεί το ψηφιακό κύκλωμα. Όπως ήταν αναμενόμενο και είχε προοιωνιστεί και προηγουμένως στην εργασία αυτή, σπάνια υπάρχει μονάχα μία λύση για ένα πρόβλημα. Επομένως καταλήξαμε σε 5 διαφορετικές αρχιτεκτονικές κατά το σχεδιασμό του τελικού ψηφιακού κυκλώματος, η καθεμία με τα δικά της προτερήματα και μειονεκτήματα. Στο κεφάλαιο αυτό θα γίνει αναφορά στην καθεμία ξεχωριστά και θα περιγραφεί ο τρόπος σχεδιασμού και η λειτουργία της. Επίσης θα περιγραφούν τα διάφορα χαρακτηριστικά της καθεμιάς και θα γίνει μία μικρή σύγκριση στο τέλος. Ο σχεδιασμός και η περιγραφή τους έγινε με χρήση VHDL, της οποίας το θεωρητικό υπόβαθρο εισήχθηκε στο κεφάλαιο 2. Τέλος ο κώδικας που χρησιμοποιήθηκε για την περιγραφή της καθεμίας αρχιτεκτονικής παρατίθεται στο τέλος της εργασίας αυτή εντός παραρτήματος. Το κύκλωμά μας λοιπόν φέρει τις εξής προδιαγραφές: Εκτελεί τη συνάρτηση f(t) = sin(t) προσεγγιστικά και με πεδίο ορισμού [0, π/2]. Οι αριθμοί στην έξοδο και εντός του αναπαριστώνται σε 16 bits, το ένα εκ των οποίων παίζει το ρόλο του πρόσημου. Προσεγγίζει τη συνάρτηση με πολυώνυμα 7ου βαθμού. Η ανάλυση της κυματομορφής που εξάγει είναι 16 τιμές ανά Τ/4 του ημιτόνου (δηλαδή 64 τιμές ανά περίοδο). Εμφανίζει τελικό σφάλμα μικρότερο του 0.1%. Σαν είσοδο θα έχει σε κάθε αρχιτεκτονική το σήμα του ρολογιού (clock) και το reset (ασύγχρονο reset) και στην έξοδο θα δίνει κωδικοποιημένες σε 16 bit τις διάφορες τιμές της συνάρτησης sin(t). Τα χαρακτηριστικά του εξαγόμενου σήματος, δηλαδή η συχνότητά του και το πλάτος του, θα εξαρτώνται αντίστοιχα από το σήμα του ρολογιού που θα 80

82 διεγείρει το κύκλωμά μας και από τις τιμές των αντιστάσεων του αναλογικού κυκλώματος που θα τεθεί στην έξοδό του, προκειμένου να μεταφραστεί η πληροφορία από ψηφιακή σε αναλογική. Σχηματικά, μπορεί να αναπαρασταθεί ως εξής: Σχήμα (4.0.1) Σχηματική αναπαράσταση του γενικού μοντέλου του κυκλώματος που θα υλοποιηθεί. Αριστερά φαίνονται οι είσοδοί του και δεξιά οι έξοδοί του. 81

83 4.1. Αρχιτεκτονική 1 Αυτή η αρχιτεκτονική αποτελεί την πιο απλή μέθοδο σχεδιασμού του κυκλώματός μας. Πρόκειται για την περίπτωση που η συνάρτηση θα προσεγγίζεται μέσω ενός πολυωνύμου Taylor και οι πράξεις θα γίνονται παράλληλα εντός του κυκλώματος. Προκειμένου να σχεδιαστεί αυτή η αρχιτεκτονική, ξεκινήσαμε από την πιο απλή μορφή της και σταδιακά βελτιώναμε συνέχεια τη μορφή της προκειμένου να εξοικονομήσουμε υλικό και να βελτιώσουμε τις χρονικές επιδόσεις της. Αρχικά ξεκινήσαμε από τη δομή που περιγράφεται στο παρακάτω σχήμα: Σχήμα (4.1.1) Αρχικό σχέδιο αρχιτεκτονικής 1. Με Input συμβολίζονται τα σήματα της εισόδου του κυκλώματος και με Output η έξοδός του. 82

84 Όπως παρατηρούμε, η πληροφορία εισέρχεται στην είσοδο και διαδοχικά εκτελούνται όλοι οι πολλαπλασιασμοί και εισέρχονται εντός ενός μεγάλου αθροιστή 7 σε 1 για να βγει το αποτέλεσμα. Από άποψη υλικού χρειάζεται 6 πολλαπλασιαστές και έναν αθροιστή των 16 bits για την υλοποίησή του χωρίς να λαμβάνουμε υπόψιν τα υπόλοιπα εξαρτήματα που θα χρειαστούν. Το κύκλωμα αυτό αν και απλό, γίνεται να βελτιωθεί κατά πολύ προς τη χρονική του απόκριση και καλύτερη χρήση του υλικού που περιέχει. Αυτό πρέπει να γίνει, διότι η μορφή του θέτει κάποιους περιορισμούς στη λειτουργία του κυκλώματος. Πιο συγκεκριμένα, προκειμένου να ολοκληρωθεί μία πράξη πολλαπλασιασμού εντός ενός πολλαπλασιαστή απαιτεί να παρέλθει ένα χρονικό διάστημα, καθώς οι πράξεις δεν γίνονται ακαριαία. Το χρονικό διάστημα αυτό θα το ονομάσουμε t mul και θα το αναφέρουμε έτσι από εδώ και στο εξής. Προκειμένου να ολοκληρωθεί ένας κύκλος του κυκλώματος αυτού, πρέπει για την ολοκλήρωση των πράξεων εντός του να παρέλθει ένα χρονικό διάστημα 6 t mul και ένα ακόμη χρονικό διάστημα t add που απαιτείται για την άθροιση των επιμέρους όρων του πολυωνύμου. Ο αθροιστής του σχήματος δεν είναι ένας κανονικός αθροιστής, αλλά εκτελεί κι άλλες πράξεις πέραν της άθροισης. Επειδή όμως είναι κοινός για τα περισσότερα κυκλώματά μας και ελάχιστα θα τον τροποποιούμε, θα ορίζουμε το χρονικό διάστημα που απαιτεί η ολοκλήρωση των πράξεων εντός του t add και δε θα μας απασχολεί ιδιαίτερα η τιμή του. Προκειμένου να έρθει η επόμενη τιμή λοιπόν, εντός των κυκλωμάτων του πολλαπλασιαστή, πρέπει πρώτα να ολοκληρωθούν οι πράξεις από την προηγούμενη και να εξέλθει η τελική τιμή. Άρα η περίοδος του ρολογιού που θα καθορίζει και την περίοδο του παλμού δεν μπορεί να είναι μικρότερη από το συνολικό χρόνο απόκρισης του κυκλώματος, ο οποίος θα είναι t 6t t t mul add misc (4.1) όπου t misc ορίζεται ο χρόνος που απαιτούν τα υπόλοιπα εξαρτήματα του κυκλώματος για να λειτουργήσουν. Τα χαρακτηριστικά αυτά του κυκλώματος το καθιστούν πολύ αναποτελεσματικό σε σύγκριση με αυτά που θα παρατεθούν παρακάτω. Παρόλα αυτά παρουσιάζεται ως αρχικό στάδιο της βελτιστοποιημένης εκδοχής του και για να δοθεί έμφαση στο τι περιορισμούς θέτει ο σχεδιασμός της κάθε αρχιτεκτονικής και πώς γίνεται να βελτιωθεί η καθεμιά. 83

85 Η βελτιστοποιημένη εκδοχή του λοιπόν έχει την παρακάτω δομή, όπως απεικονίζεται στο σχήμα (4.1.2): Σχήμα (4.1.2) Βελτιστοποιημένο σχέδιο αρχιτεκτονικής 1. Με Input συμβολίζονται τα σήματα εισόδου, με Output τα εξόδου και το κάθε νούμερο υποδεικνύει τη δύναμη του όρου που παράγει ο πολλαπλασιαστής. Στην περίπτωση αυτή τώρα, παρατηρούμε ότι η ποσότητα υλικού έχει παραμείνει ίδια, αλλά έχει αλλάξει πολύ η διασύνδεση των εξαρτημάτων του. Με μια καλύτερη παρατήρηση φαίνεται πως η μέγιστη διαδρομή που ακολουθεί η πληροφορία αφότου εισαχθεί στο δικτύωμα αυτό των πολλαπλασιαστών είναι μέσα από 3 πολλαπλασιαστές. τρεις διαδρομές συγκεκριμένα απαιτούν την εκτέλεση 3 πολλαπλασιασμών για να φτάσουν στον αθροιστή: η διαδρομή 2, 3, 5 η διαδρομή 2, 4, 6 και η διαδρομή 2, 4/3, 7 84

86 Αυτή η αλλαγή συνεπάγεται πως ο μέγιστος χρόνος που χρειάζεται να παρέλθει μέχρι να εισέλθει η επόμενη τιμή της εισόδου στο κύκλωμα είναι 3 t mul και 1 t add. Έχουμε καταφέρει επομένως να αυξήσουμε σημαντικά το μέγιστο όριο του συχνοτικού εύρους των παραγόμενων κυματομορφών με την τροποποίησή μας αυτή, σε σύγκριση με πριν. Έχοντας τώρα βελτιστοποιήσει το δικτύωμα των κυκλωμάτων που εκτελούν τις πράξεις εντός του κυκλώματός μας, μπορούμε να προχωρήσουμε στον περαιτέρω σχεδιασμό του υπόλοιπου κυκλώματός μας. Η τελική μορφή της αρχιτεκτονικής 1 απεικονίζεται στα παρακάτω σχήματα: Σχήμα (4.1.3) Σχηματική αναπαράσταση των κυκλωμάτων που ελέγχουν το σήμα εισόδου του κυκλώματος (Input). 85

87 Σχήμα (4.1.4) Σχηματική αναπαράσταση του δικτυώματος πολλαπλασιαστών του κυκλώματος, όπου γίνεται η επεξεργασία της πληροφορίας Input. Παρατηρούμε πως το κύκλωμα διαθέτει 2 τμήματα. Το ένα ελέγχεται αποκλειστικά από τα σήματα του ρολογιού και του reset και η λειτουργία τους αποσκοπεί στο να ελέγχεται η είσοδος της πληροφορίας εισόδου στο δεύτερο τμήμα του κυκλώματος. Το δεύτερο τμήμα του κυκλώματος καθοδηγούμενο από το πρώτο εκτελεί παράλληλα τις πράξεις και εξάγει το αποτέλεσμα στην έξοδό του λίγο πριν εισέλθει η επόμενη τιμή εισόδου στο δικτύωμα των πολλαπλασιαστών. Τα εξαρτήματα που απαρτίζουν το κύκλωμά μας είναι τα εξής: Ένας εξωτερικός μετρητής excounter. Ο μετρητής αυτός διευθυνσιοδοτεί το κύκλωμα της μνήμες ROM και διεγείρεται από το σήμα του ρολογιού. Είναι σχεδιασμένος έτσι ώστε να μετράει κανονικά από 1 έως 15 και στη συνέχεια αντίστροφα, από 14 έως 0 και ξεκινά ξανά από το 1 κανονικά μετά. Ο σκοπός του σχεδιασμού του είναι να δίνει διευθύνσεις στη ROM τέτοιες ώστε να παράγεται αρχικά το πρώτο τμήμα της συνάρτησης [0,π/2) και στη συνέχεια να εξέρχονται οι τιμές αντίστροφα από τη μνήμη ούτως ώστε να παραχθεί στο δικτύωμα η συνάρτηση f(t) για t στο διάστημα [π/2, π). με τον τρόπο αυτό υλοποιείται το πρώτο μισό της κυματομορφής εξοικονομώντας υλικό που θα απαιτούνταν για περαιτέρω θέσεις διευθύνσεων εντός της μνήμης ROM. Το εξάρτημα αυτό είναι κοινό για όλες τις αρχιτεκτονικές, οπότε δεν θα αναλύεται κάθε φορά. Μία μνήμη μόνο για ανάγνωση ROM. Η μνήμη αυτή δεν χρειάζεται να έχει 16 διευθύνσεις για όλες τις τιμές του t που θα εισέρχονται στο κύκλωμα. 86

88 Εκμεταλλευόμενοι το γεγονός ότι οι τιμές του t εντός του [0,π/2] απέχουν τακτά διαστήματα η μία από την άλλη, καταφέραμε μία βελτιστοποίησή της. Έχοντας αποθηκευμένη μόνο την τιμή του π/30 εντός της, η έξοδός της (Input) είναι κάθε φορά το γινόμενο της τιμής excount (δηλαδή της εξόδου του μετρητή excounter) και της τιμής του π/30. Με τον τρόπο αυτό αντικαθίσταται μία μνήμη ROM 16 θέσεων, 16 bits η καθεμία με ένα κύκλωμα πολλαπλασιαστή και μία αποθηκευμένη τιμή 16 bits, πράγμα που μειώνει κατά πολύ το κόστος υλικού μας. Για τυπικούς λόγους θα αναφερόμαστε στο εξάρτημα αυτό ως μνήμη ROM, αφού η λειτουργία της είναι παρόμοια με μιας ROM. Το εξάρτημα αυτό θα είναι όμοιο και στα υπόλοιπα κυκλώματα, οπότε δεν θα αναλύεται κάθε φορά, παρά μόνον θα αναφέρεται. 6 κυκλώματα πολλαπλασιαστών που εκτελούν τις πολλαπλασιαστικές πράξεις για την παραγωγή των διαφόρων όρων του πολυωνύμου. Η λειτουργία των κυκλωμάτων αυτών είναι σχετικά απλή. Παρόλα αυτά έπρεπε να εισαχθεί μία διόρθωση στη λειτουργία τους. Κατά την εκτέλεση μίας πράξης πολλαπλασιασμού, εισάγονται 2 αριθμοί εντός του κυκλώματος αυτού, οι οποίοι έχουν ανυψωθεί (πολλαπλασιαστεί) με μία βάση Μετά την εκτέλεση της πράξης όμως, το γινόμενο δεν είναι πλέον ανυψωμένο με τη βάση αυτή, αλλά με το τετράγωνό της, αφού η πράξη που εκτελείται είναι αυτή που φαίνεται παρακάτω: y (4.2) x x x1x2 όπου y το γινόμενο και x 1, x 2 οι παράγοντες. Επομένως προκύπτει μία διαρκής ανύψωση των αριθμών εντός του κυκλώματος και καταλήγουν στο τέλος να είναι υπερυψωμένοι κατά ν, όπου ν ο αριθμός τον πολλαπλασιασμών που υπέστησαν. Εξαιτίας αυτού του προβλήματος είναι αδύνατον να μην υπάρξει υπερχείλιση εντός του κυκλώματος, πράγμα που καταστρέφει εντελώς τη λειτουργία του κυκλώματος. Για το λόγο αυτό, κάθε φορά που ένας πολλαπλασιαστής εκτελεί τον πολλαπλασιασμό του, διαιρεί το γινόμενό του όσο ακόμα είναι σε μήκος 32 bits, εντός του, (δηλαδή πριν την αποκοπή των περιττών ψηφίων του) μία φορά με τη βάση 16384, ώστε το γινόμενο να παραμείνει ανυψωμένο στο ίδιο σημείο με πριν δίχως να υπάρξει υπερχείλιση ενδιάμεσα. Αυτό το κύκλωμα πολλαπλασιαστή είναι επίσης κοινό για όλες τις αρχιτεκτονικές που θα σχεδιάσουμε και δεν θα αναλύεται κάθε φορά. Τελευταίο είναι το κύκλωμα του "αθροιστή". Το κύκλωμα αυτό είναι το πιο σύνθετο, καθώς η λειτουργία του συμπεριλαμβάνει τον πολλαπλασιασμό των διαφόρων δυνάμεων του Input που εισέρχονται σε αυτόν με τους αντίστοιχους συντελεστές του πολυωνύμου και ταυτόχρονα τη διαίρεσή τους με τη βάση 87

89 16384 για να μην υπάρξει υπερχείλιση. Στη συνέχεια αθροίζει όλους τους επιμέρους όρους και τους αφαιρεί ή τους προσθέτει στο 2 15, μία τιμή που έχουμε θέσει ως πόλωση, προκειμένου να μπορούμε να παράγουμε και αρνητικές τιμές. Το αν θα αφαιρεθεί ή θα προστεθεί η τελική τιμή στην πόλωση καθορίζεται από το κύκλωμα του μετρητή excounter, το οποίο κάθε φορά που ολοκληρώνει ένα κύκλο (δηλαδή κάθε φορά που ολοκληρώνεται μισή περίοδος) αλλάζει το πρόσημο της πολικότητας, οπότε εναλλάξ θα αφαιρούνται και θα προστίθενται οι τελικές τιμές της ημιπεριόδου στην πόλωση. Προφανώς δεν παίζει ρόλο αν η πρώτη ημιπερίοδος προκύψει αρνητική ή θετική. Το εξάρτημα αυτό θα αλλάζει ελάχιστα από κύκλωμα σε κύκλωμα. Τυχών αλλαγές του θα αναφέρονται. Όλα αυτά τα εξαρτήματα που περιγράφηκαν εδώ, περιγράφηκαν σε VHDL και o και ο κώδικάς τους περιέχεται στο παράρτημα στο τέλος της εργασίας. Αυτό που είναι σημαντικό για αυτό το κύκλωμα είναι πως για την επεξεργασία και παραγωγή των τιμών της συνάρτησης χρειάζεται 6 πολλαπλασιαστές και 3 χρόνους πολλαπλασιασμού t mul για να ολοκληρώσει ένα κύκλο μηχανής και να εξάγει μία τιμή. Η αρχιτεκτονική αυτή αποτελεί την απλούστερη μορφή της προσέγγισης με πολυώνυμο Taylor. Ο σχεδιασμός της αναλύθηκε εκτενέστερα προκειμένου να γίνει κατανοητή η διαδικασία σχεδιασμού μιας αρχιτεκτονικής. Στις αρχιτεκτονικές που ακολουθούν δε θα επαναληφθεί η ίδια αυτή ανάλυση Αρχιτεκτονική 2 Στην αρχιτεκτονική αυτή θα επιχειρηθεί η μείωση του απαραίτητου υλικού για την υλοποίηση της προσέγγισης μέσω πολυωνύμων Taylor. Αυτό θα γίνει διότι, ένα εξάρτημα πολλαπλασιαστή, αν και απλό στη λειτουργία του, είναι εξαιρετικά σύνθετο σαν κύκλωμα και ακριβό ως προς το υλικό που απαιτεί. Αυτή η αρχιτεκτονική μειώνει 88

90 εξαιρετικά το πλήθος των πολλαπλασιαστών που απαιτούνται για την εκτέλεση των πράξεων εντός του κυκλώματος. Σαν συνέπεια όμως έχει ότι αυξάνει κατά πολύ το χρόνο εκτέλεση ενός κύκλου μηχανής, πράγμα που επιβαρύνει το συχνοτικό εύρος της παραγόμενης κυματομορφής. Με άλλα λόγια αποτελεί ένα χαρακτηριστικό παράδειγμα κέρδους σε κόστος με συνέπεια την επιβάρυνση των επιδόσεων ενός κυκλώματος. Η φιλοσοφία της αρχιτεκτονικής αυτής είναι πως οι πράξεις πλέον, αντί να γίνονται παράλληλα, γίνονται ακολουθιακά με χρήση μονάχα ενός εξαρτήματος πολλαπλασιαστή. Έτσι με τη χρήση ενός πολυπλέκτη, ενός επιπλέον κυκλώματος μετρητή και 7 θέσεων μνήμης RAM εντός του τελικού αθροιστή, καταφέρνουμε να ξεπεράσουμε την ανάγκη των 6 πολλαπλασιαστών για να εκτελεστούς οι πράξεις. Η σχηματική αναπαράσταση του κυκλώματός μας φαίνεται στα παρακάτω σχήματα: Σχήμα (4.2.1) Σχηματική αναπαράσταση του πρώτου τμήματος του κυκλώματος. 89

91 Σχήμα (4.2.2) Σχηματική αναπαράσταση του 2ου τμήματος του κυκλώματος. Ομοίως με την προηγούμενη αρχιτεκτονική, το κύκλωμά μας απαρτίζεται από 2 τμήματα. Το πρώτο ελέγχει την είσοδο της πληροφορίας και συντονίζει τη λειτουργία του υπόλοιπου κυκλώματος και το δεύτερο εκτελεί τις πράξεις για την εξαγωγή των τιμών της συνάρτησης. Η λειτουργία του πλέον είναι διαφορετική. Η πληροφορία εισόδου εισάγεται εντός του πολλαπλασιαστή και κάθε φορά που βγαίνει, αποθηκεύεται στη πρόσθετη μνήμη του αθροιστή, ενώ ταυτόχρονα αποστέλλεται στον πολυπλέκτη. Στον επόμενο κύκλο πολλαπλασιάζεται ξανά με το σήμα εισόδου και κατά την έξοδό του ξανααποθηκεύεται σε άλλη θέση μνήμης του αθροιστή και ξαναεισέρχεται στον πολυπλέκτη. Η διαδικασία αυτή επαναλαμβάνεται έως ότου παραχθούν όλες οι δυνάμεις της τιμής εισόδου, οπότε μέσο του σήματος ελέγχου control δίνεται σήμα στον αθροιστή να εκτελέσει την άθροιση των αποθηκευμένων τιμών. Επομένως απαιτούνται 6 κύκλοι μηχανής για την εξαγωγή μίας τιμής της κυματομορφής μας, πράγμα που σημαίνει πως το συχνοτικό εύρος υποεξαπλασιάζεται. Τα εξαρτήματα που το αποτελούν είναι: Ένα κύκλωμα μετρητή excounter για το συντονισμό της ROM, το οποίο όμως δεν διεγείρεται πλέον από το σήμα ρολογιού, αλλά από έναν άλλο μετρητή, τον incounter. Ένα κύκλωμα μνήμης ROM, που διευθυνσιοδοτείται από το μετρητή excounter. Ένα κύκλωμα μετρητή incounter. To εξάρτημα αυτό διεγείρεται από το σήμα ρολογιού και μετράει από το 0 έως το 6. Εξάγει 2 σήματα, το ένα είναι η τιμή της μέτρησής του incount και το άλλο είναι ένα σήμα ελέγχου control που χρησιμεύει στο συντονισμό του πολυπλέκτη και του τελικού αθροιστή με αυτό. 90

92 Ένα κύκλωμα πολλαπλασιαστή, πανομοιότυπο με πριν. Ένα κύκλωμα πολυπλέκτη. Το κύκλωμα αυτό επιλέγει ανάλογα με την τιμή του σήματος ελέγχου control αν κάθε φορά θα εισαχθεί στον πολλαπλασιαστή η είσοδος που δόθηκε από τη μνήμη, ή ο πολλαπλασιασμένος εαυτός της. Προφανώς η είσοδος επιλέγεται μόνο στον πρώτο κύκλο από τους 6 που απαιτούνται για την παραγωγή μίας τιμής της συνάρτησης και στους υπόλοιπους 5 εισάγεται το γινόμενο του πολλαπλασιαστή για να ξαναπολλαπλασιαστεί με την είσοδο και να δώσει την επόμενη δύναμη. Ένα κύκλωμα τελικού αθροιστή με ενσωματωμένη μνήμη αυτή τη φορά. Αυτή τη φορά το κύκλωμα αποθηκεύει το γινόμενο του πολλαπλασιαστή κάθε φορά που εισέρχεται σε αυτό στη διεύθυνση που καθορίζει το σήμα incount. Το σήμα ελέγχου control δίνει το έναυσμα στον αθροιστή να αθροίσει όλες τις τιμές που σύλλεξε κατά τη διάρκεια των 6 κύκλων μηχανής του κυκλώματός μας. Οι υπόλοιπες διαδικασίες που εκτελεί είναι όμοιες με πριν. Το κύκλωμα αυτό που υλοποιείται με την παρούσα αρχιτεκτονική απαιτεί για τη λειτουργία του σχετικά λιγότερο υλικό από αυτό της προηγούμενης, αλλά έχει πολύ πιο περιορισμένο συχνοτικό εύρος για την κυματομορφή του. Η διεκπεραίωση των πράξεων μίας τιμής της συνάρτησης απαιτεί 6 περιόδους ρολογιού που μπορούν να είναι μεγαλύτερες ή ίσες από ένα χρονικό διάστημα t mul Αρχιτεκτονική 3 Στην αρχιτεκτονική αυτή επιχειρείται η προσέγγιση της κυματομορφής μέσω πολυωνύμων Maclaurin με παράλληλη εκτέλεση πράξεων. Διαδικασία παρόμοια με αυτή της αρχιτεκτονικής 1. Στην αρχιτεκτονική αυτή όμως, θα διακρίνουμε 2 διαφοροποιήσεις. Στην πρώτη περίπτωση, το δικτύωμα των πολλαπλασιαστών είναι στημένο με τρόπο τέτοιο, ώστε να απαιτούνται 4 πολλαπλασιαστές για την επεξεργασία της πληροφορίας και ο απαιτούμενος χρόνος να είναι 4 t mul. στη δεύτερη παραλλαγή του, επιτυγχάνεται με τη χρήση ενός ακόμα πολλαπλασιαστή, να μειωθεί ο απαραίτητος χρόνος για την εξαγωγή του αποτελέσματος κατά 1 t mul.δηλαδή απαιτούνται 5 πολλαπλασιαστές, αλλά 3 t mul για την εκτέλεση των πράξεων εντός του. 91

93 Οι παρακάτω σχηματικές αναπαραστάσεις απεικονίζουν τη διαφοροποίηση ως προς το δικτύωμα της κάθε παραλλαγής: Σχήμα (4.3.1) Δικτύωμα πολλαπλασιαστών αρχιτεκτονικής 3α. Σχήμα (4.3.2) Δικτύωμα πολλαπλασιαστών αρχιτεκτονικής 3β. 92

94 Παρατηρούμε ότι στη δεύτερη περίπτωση, με την παρεμβολή ενός επιπλέον πολλαπλασιαστή για την παραγωγή του σήματος t 4 επιτυγχάνουμε την καλύτερη χρονική επίδοση του κυκλώματός μας. Μπορεί το κόστος του ενός επιπλέον πολλαπλασιαστή να μην αντισταθμίζεται από το κέρδος του 1 λιγότερο χρόνου πολλαπλασιασμού που επιτυγχάνεται. Παρόλα αυτά η παραλλαγή αυτή κρίθηκε άξια αναφοράς, καθώς η τελική επιλογή έγκειται στον κατασκευαστή του κυκλώματος, και όχι σε εμάς. Εδώ απλά γίνεται παράθεση των σχεδιαστικών δυνατοτήτων. Στη συνέχεια παρατίθενται οι σχηματικές αναπαραστάσεις των 2 παραλλαγών του κυκλώματος: Σχήμα (4.3.1) Πρώτο τμήμα της αρχιτεκτονικής 3α. 93

95 Σχήμα (4.3.2) Δεύτερο τμήμα της αρχιτεκτονικής 3α. Σχήμα (4.3.3) Πρώτο τμήμα της αρχιτεκτονικής 3β. 94

96 Σχήμα (4.3.4) Δεύτερο τμήμα της αρχιτεκτονικής 3β. Παρατηρούμε πως η αρχιτεκτονική αυτή εμφανίζει την ίδια δομή με την αρχιτεκτονική 1, με τη διαφορά ότι πλέον προσεγγίζει την συνάρτηση με χρήση πολυωνύμου Maclaurin. Και οι 2 παραλλαγές της αρχιτεκτονικής απαρτίζονται από τα εξής εξαρτήματα: Ένας μετρητής excounter. Όμοιο με αυτό της αρχιτεκτονικής 1. Μία μνήμη ROM. Κυκλώματα πολλαπλασιαστών 4 και 5 αντίστοιχα. Ένα κύκλωμα τελικού αθροιστή. Για τη διεκπεραίωση των πράξεων απαιτείται λιγότερο υλικό και χρόνος σε σύγκριση με τις προηγούμενες 2 αρχιτεκτονικές. 95

97 4.4. Αρχιτεκτονική 4 Αυτή είναι και η τελευταία αρχιτεκτονική μας. Στη συγκεκριμένη επιχειρήθηκε ακολουθιακή εκτέλεση των πράξεων της προσέγγισης της συνάρτησης με πολυώνυμο Maclaurin. Ομοίως με την αρχιτεκτονική 2, το κέρδος σε υλικό συνεπάγεται απώλεια σε χρονικές επιδόσεις του κυκλώματος. Στη συγκεκριμένη αρχιτεκτονική όμως, είναι απαραίτητα 2 κυκλώματα πολλαπλασιαστών αντί για 1, μαζί με τα επιπλέον κυκλώματα πολυπλέκτη, μετρητή και πρόσθετης μνήμης στον τελικό αθροιστή, πράγμα που την κάνει λιγότερο συμφέρουσα ως προς την αρχιτεκτονική 3, που απαιτεί τουλάχιστον 4 πολλαπλασιαστές. Το κέρδος μας σε υλικό λοιπόν για να εκτελέσουμε τις πράξεις ακολουθιακά σε μια προσέγγιση με πολυώνυμο Maclaurin μειώνεται πολύ σε σύγκριση με αυτό κατά την ακολουθιακή εκτέλεση των πράξεων σε προσέγγιση Taylor. Η σχηματική αναπαράσταση του κυκλώματος περιγράφεται στα παρακάτω σχήματα: Σχήμα (4.4.1) Πρώτο τμήμα της αρχιτεκτονικής 4. 96

98 Σχήμα (4.4.2) Δεύτερο τμήμα της αρχιτεκτονικής 4. Όπως ειπώθηκε και πριν, η δομή της είναι όμοια με της αρχιτεκτονικής 2. Η αρχιτεκτονική αυτή απαρτίζεται από τα παρακάτω εξαρτήματα: Ένας μετρητής excounter. Όμοιο με αυτό της αρχιτεκτονικής 1. Μία μνήμη ROM. Ένα κύκλωμα μετρητή incounter. 2 κυκλώματα πολλαπλασιαστών. Ένα κύκλωμα πολυπλέκτη. Ένα κύκλωμα τελικού αθροιστή με ενσωματωμένη μνήμη.\ Η απαιτήσεις σε υλικό είναι 2 κυκλώματα πολλαπλασιαστών έναντι χρονικής απόκρισης 3 περιόδων ρολογιού για τη διεκπεραίωση των πράξεων για την εξαγωγή μίας τιμής της κυματομορφής. 97

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

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

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

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. Γενικά χαρακτηριστικά, σύνταξη και τύποι. Ψηφιακή Σχεδίαση µε CAD ΙΙ - ιάλεξη 1 -

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

nkavv@physics.auth.gr

nkavv@physics.auth.gr Γλώσσες Περιγραφής Υλικού Εισαγωγή στην VHDL Νικόλαος Καββαδίας nkavv@physics.auth.gr 17 Μαρτίου 2009 Αντικείμενο του μαθήματος CST256: Γλώσσες Περιγραφής Υλικού Επιμέρους στόχοι του μαθήματος Σχεδιασμός

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Σύνθετοι τύποι και λειτουργίες. (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;

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

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

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

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

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

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

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

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

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

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

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

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

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή 1. Ηλεκτρονικός Υπολογιστής Ο Ηλεκτρονικός Υπολογιστής είναι μια συσκευή, μεγάλη ή μικρή, που επεξεργάζεται δεδομένα και εκτελεί την εργασία του σύμφωνα με τα παρακάτω

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

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL 8.1. Εισαγωγή ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PACAL Πως προέκυψε η γλώσσα προγραμματισμού Pascal και ποια είναι τα γενικά της χαρακτηριστικά; Σχεδιάστηκε από τον Ελβετό επιστήμονα της Πληροφορικής Nicklaus Wirth to

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

Pascal, απλοί τύποι, τελεστές και εκφράσεις

Pascal, απλοί τύποι, τελεστές και εκφράσεις Pascal, απλοί τύποι, τελεστές και εκφράσεις 15 Νοεμβρίου 2011 1 Γενικά Στην standard Pascal ορίζονται τέσσερις βασικοί τύποι μεταβλητών: integer: Παριστάνει ακέραιους αριθμούς από το -32768 μέχρι και το

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

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

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

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

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ντες: Δρ. Γιώργος Ζάγγουλοςκαι Δρ. Παναγιώτα Δημοσθένους Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων

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

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

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

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

Πράξεις με δυαδικούς αριθμούς

Πράξεις με δυαδικούς αριθμούς Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 25-6 Πράξεις με δυαδικούς αριθμούς (αριθμητικές πράξεις) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Πράξεις με δυαδικούς

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

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ντες: Δρ. Αγαθοκλής Παπαδόπουλος και Δρ. Γιώργος Ζάγγουλος Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων

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

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

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

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

! Εάν ο αριθμός διαθέτει περισσότερα bits, χρησιμοποιούμε μεγαλύτερες δυνάμεις του 2. ! Προσοχή στη θέση του περισσότερο σημαντικού bit!

! Εάν ο αριθμός διαθέτει περισσότερα bits, χρησιμοποιούμε μεγαλύτερες δυνάμεις του 2. ! Προσοχή στη θέση του περισσότερο σημαντικού bit! Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 25-6 Πράξεις με δυαδικούς αριθμούς (αριθμητικές ) http://di.ionio.gr/~mistral/tp/csintro/ Αριθμοί Πράξεις με δυαδικούς αριθμούς

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

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

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

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

Εισαγωγή στα Συστήματα Ψηφιακής Επεξεργασίας Σήματος

Εισαγωγή στα Συστήματα Ψηφιακής Επεξεργασίας Σήματος ΕΣ 08 Επεξεργαστές Ψηφιακών Σημάτων Εισαγωγή στα Συστήματα Ψηφιακής Επεξεργασίας Σήματος Κλήμης Νταλιάνης Λέκτορας Π.Δ.407/80 Τμήμα Επιστήμη και Τεχνολογίας Τηλεπικοινωνιών Πανεπιστήμιο Πελοποννήσου Αρχιτεκτονική

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

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

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

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

Περιεχόμενα. Πρώτο Κεφάλαιο. Εισαγωγή στα Ψηφιακά Συστήματα. Δεύτερο Κεφάλαιο. Αριθμητικά Συστήματα Κώδικες

Περιεχόμενα. Πρώτο Κεφάλαιο. Εισαγωγή στα Ψηφιακά Συστήματα. Δεύτερο Κεφάλαιο. Αριθμητικά Συστήματα Κώδικες Πρώτο Κεφάλαιο Εισαγωγή στα Ψηφιακά Συστήματα 1.1 Αναλογικά και Ψηφιακά Σήματα και Συστήματα... 1 1.2 Βασικά Ψηφιακά Κυκλώματα... 3 1.3 Ολοκληρωμένα κυκλώματα... 4 1.4 Τυπωμένα κυκλώματα... 7 1.5 Εργαλεία

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

Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II

Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 1 η Εργαστηριακή Άσκηση Εισαγωγή στη VHDL και στο εργαλείο Modelsim 1 Άδειες Χρήσης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons

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

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 4: Τελεστές Τελεστές: Τελεστής Ανάθεσης 2 Το σύμβολο της ανάθεσης είναι το = Προσοχή: το σύμβολο ελέγχου ισότητας είναι το ==. Η μορφή των προτάσεων ανάθεσης είναι:

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

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

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

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

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

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

Αναπαράσταση Δεδομένων. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Αναπαράσταση Δεδομένων. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Αναπαράσταση Δεδομένων ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Αναπαράσταση δεδομένων Κατάλληλη συμβολική αναπαράσταση δεδομένων, για απλοποίηση βασικών πράξεων, όπως πρόσθεση Πόσο εύκολο είναι

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

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

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

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

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

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

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

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

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

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

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

Μοντελοποίηση Επιπέδου Πύλης. (Peter Ashenden, The Students Guide to VHDL) Μοντελοποίηση Επιπέδου Πύλης (Peter Ashenden, The Students Guide to VHDL) Πολλαπλά Επίπεδα Τιµών Η κατάσταση µίας γραµµής δεν είναι πάντα 0 ή 1. ιαµάχες οδηγούν σε απροσδιοριστία. Χρήση πολλαπλών επιπέδων

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

Προγραμματισμός Ι (HY120)

Προγραμματισμός Ι (HY120) Προγραμματισμός Ι (HY120) #3 τελεστές 1 Σπύρος Λάλης Τελεστής ανάθεσης Το σύμβολο της ανάθεσης είναι το = προσοχή: το σύμβολο ελέγχου ισότητας είναι το == Η μορφή των προτάσεων = 1. Αποτιμάται

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07 Αριθμητική στο δυαδικό σύστημα (γενικά) Συμπληρωματικά για δυαδικό σύστημα Η πρόσθεση στηρίζεται στους κανόνες: 0 + 0 = 0, 0 + 1 = 1, 1

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

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

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

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

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 4: Τελεστές Τελεστές: Τελεστής Ανάθεσης 2 Το σύμβολο της ανάθεσης είναι το = Προσοχή: το σύμβολο ελέγχου ισότητας είναι το ==. Η μορφή των προτάσεων ανάθεσης είναι:

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

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

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

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

Σύστημα ψηφιακής επεξεργασίας ακουστικών σημάτων με χρήση προγραμματιζόμενων διατάξεων πυλών. Πτυχιακή Εργασία. Φοιτητής: ΤΣΟΥΛΑΣ ΧΡΗΣΤΟΣ

Σύστημα ψηφιακής επεξεργασίας ακουστικών σημάτων με χρήση προγραμματιζόμενων διατάξεων πυλών. Πτυχιακή Εργασία. Φοιτητής: ΤΣΟΥΛΑΣ ΧΡΗΣΤΟΣ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε. Σύστημα ψηφιακής επεξεργασίας ακουστικών σημάτων με χρήση προγραμματιζόμενων διατάξεων πυλών. Πτυχιακή Εργασία Φοιτητής:

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

Δυαδικό Σύστημα Αρίθμησης

Δυαδικό Σύστημα Αρίθμησης Δυαδικό Σύστημα Αρίθμησης Το δυαδικό σύστημα αρίθμησης χρησιμοποιεί δύο ψηφία. Το 0 και το 1. Τα ψηφία ενός αριθμού στο δυαδικό σύστημα αρίθμησης αντιστοιχίζονται σε δυνάμεις του 2. Μονάδες, δυάδες, τετράδες,

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

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία

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

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

Λογικός Σχεδιασµός και Σχεδιασµός Η/Υ. ΗΜΥ-210: Εαρινό Εξάµηνο Σκοπός του µαθήµατος. Ψηφιακά Συστήµατα. Περίληψη. Εύρος Τάσης (Voltage(

Λογικός Σχεδιασµός και Σχεδιασµός Η/Υ. ΗΜΥ-210: Εαρινό Εξάµηνο Σκοπός του µαθήµατος. Ψηφιακά Συστήµατα. Περίληψη. Εύρος Τάσης (Voltage( ΗΜΥ-210: Λογικός Σχεδιασµός Εαρινό Εξάµηνο 2005 Σκοπός του µαθήµατος Λογικός Σχεδιασµός και Σχεδιασµός Η/Υ Κεφάλαιο 1: Υπολογιστές και Πληροφορία (1.1-1.2) Βασικές έννοιες & εργαλεία που χρησιµοποιούνται

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

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

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

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

Προσοµοίωση Συστηµάτων µε 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 Περιβάλλον Σχεδίασης Αναλυτής ιαχειριστής Βιβλιοθήκης Σχεδίασης Προσοµοιωτής Αντίστροφος Αναλυτής Βιβλιοθήκη Σχεδίασης

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

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

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

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

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

FORTRAN και Αντικειμενοστραφής Προγραμματισμός FORTRAN και Αντικειμενοστραφής Προγραμματισμός Παραδόσεις Μαθήματος 2016 Δρ Γ Παπαλάμπρου Επίκουρος Καθηγητής ΕΜΠ georgepapalambrou@lmentuagr Εργαστήριο Ναυτικής Μηχανολογίας (Κτίριο Λ) Σχολή Ναυπηγών

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

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

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

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

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

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

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

Σκοπός. Αλγεβρικοί και Λογικοί Υπολογισμοί στη PASCAL

Σκοπός. Αλγεβρικοί και Λογικοί Υπολογισμοί στη PASCAL Αλγεβρικοί και Λογικοί Υπολογισμοί στη PASCAL Δυνατότητα ανάπτυξης, μεταγλώττισης και εκτέλεσης προγραμμάτων στη PASCAL. Κατανόηση της σύνταξης των προτάσεων της PASCAL. Κατανόηση της εντολής εξόδου για

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

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι. Αναπαράσταση αριθμών στο δυαδικό σύστημα. Δρ.

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι. Αναπαράσταση αριθμών στο δυαδικό σύστημα. Δρ. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας Πληροφορική Ι Αναπαράσταση αριθμών στο δυαδικό σύστημα Δρ. Γκόγκος Χρήστος Δεκαδικό σύστημα αρίθμησης Ελληνικό - Ρωμαϊκό Σύστημα αρίθμησης

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

3 ο Εργαστήριο Μεταβλητές, Τελεστές

3 ο Εργαστήριο Μεταβλητές, Τελεστές 3 ο Εργαστήριο Μεταβλητές, Τελεστές Μια μεταβλητή έχει ένα όνομα και ουσιαστικά είναι ένας δείκτης σε μια συγκεκριμένη θέση στη μνήμη του υπολογιστή. Στη θέση μνήμης στην οποία δείχνει μια μεταβλητή αποθηκεύονται

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

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

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

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

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

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

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

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Προβλήματα, αλγόριθμοι, ψευδοκώδικας Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι

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

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

Εισαγωγή στη γλώσσα VHDL (document version 1.2) Ιωάννης Α. Καλόµοιρος Εισαγωγή στη γλώσσα VHDL Τεχνολογικό Εκπαιδευτικό Ίδρυµα Σερρών, Τµήµα Πληροφορικής και Επικοινωνιών, 2012 Το σύγγραµµα αυτό προορίζεται αποκλειστικά για χρήση

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

Κ15 Ψηφιακή Λογική Σχεδίαση 2: Δυαδικό Σύστημα / Αναπαραστάσεις

Κ15 Ψηφιακή Λογική Σχεδίαση 2: Δυαδικό Σύστημα / Αναπαραστάσεις Κ15 Ψηφιακή Λογική Σχεδίαση 2: Δυαδικό Σύστημα / Αναπαραστάσεις Γιάννης Λιαπέρδος TEI Πελοποννήσου Σχολή Τεχνολογικών Εφαρμογών Τμήμα Μηχανικών Πληροφορικής ΤΕ Δυαδικό Σύστημα Αρίθμησης Περιεχόμενα 1 Δυαδικό

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

Εισαγωγή στην επιστήμη των υπολογιστών

Εισαγωγή στην επιστήμη των υπολογιστών Εισαγωγή στην επιστήμη των υπολογιστών Υπολογιστές και Δεδομένα Κεφάλαιο 3ο Αναπαράσταση Αριθμών www.di.uoa.gr/~organosi 1 Δεκαδικό και Δυαδικό Δεκαδικό σύστημα 2 3 Δεκαδικό και Δυαδικό Δυαδικό Σύστημα

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

Οργάνωση Υπολογιστών

Οργάνωση Υπολογιστών Οργάνωση Υπολογιστών Επιμέλεια: Γεώργιος Θεοδωρίδης, Επίκουρος Καθηγητής Ανδρέας Εμερετλής, Υποψήφιος Διδάκτορας Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών 1 Άδειες Χρήσης Το παρόν υλικό

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

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

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

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

Πρόγραμμα Επικαιροποίησης Γνώσεων Αποφοίτων ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ

Πρόγραμμα Επικαιροποίησης Γνώσεων Αποφοίτων ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ Πρόγραμμα Επικαιροποίησης Γνώσεων Αποφοίτων ΕΝΟΤΗΤΑ Μ1 ΨΗΦΙΑΚΑ ΗΛΕΚΤΡΟΝΙΚΑ Εκπαιδευτής: Γ. Π. ΠΑΤΣΗΣ, Επικ. Καθηγητής, Τμήμα Ηλεκτρονικών Μηχανικών, ΤΕΙ Αθήνας ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ 1. Ποια είναι η βάση

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

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

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

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

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

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

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

Συνδυαστικά Λογικά Κυκλώματα

Συνδυαστικά Λογικά Κυκλώματα Συνδυαστικά Λογικά Κυκλώματα Ένα συνδυαστικό λογικό κύκλωμα συντίθεται από λογικές πύλες, δέχεται εισόδους και παράγει μία ή περισσότερες εξόδους. Στα συνδυαστικά λογικά κυκλώματα οι έξοδοι σε κάθε χρονική

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

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Κεφάλαιο 3

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

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

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

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

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

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

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

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

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

VHDL. ΗΜΥ-210: Λογικός Σχεδιασµός, Εαρινό Εξάµηνο Απλό παράδειγµα: Entity. Μοντελοποίηση. Απλό παράδειγµα:αρχιτεκτονική. Στοιχεία γλώσσας VHDL ΗΜΥ-210: Λογικός Σχεδιασµός Εαρινό Εξάµηνο 2005 Κεφάλαιο 4 - iii: VHDL για Σχεδιασµό Συνδυαστικών Κυκλωµάτων Πανεπιστήµιο Κύπρου Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών VHDL Γλώσσα προγραµµατισµού

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

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Εισαγωγή στη Python Νικόλαος Ζ. Ζάχαρης Αναπληρωτής

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

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

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

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

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

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ ΣΤΑΘΕΡΕΣ είναι τα μεγέθη που δεν μεταβάλλονται κατά την εκτέλεση ενός αλγόριθμου. Εκτός από τις αριθμητικές σταθερές (7, 4, 3.5, 100 κλπ), τις λογικές σταθερές (αληθής και ψευδής)

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

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΝΑΠΤΥΞΗ ΚΑΙ ΣΧΕΔΙΑΣΗ ΛΟΓΙΣΜΙΚΟΥ Η γλώσσα προγραμματισμού C ΕΡΓΑΣΤΗΡΙΟ 3: Πίνακες, βρόχοι, συναρτήσεις 1 Ιουνίου 2017 Το σημερινό εργαστήριο

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

Ψηφιακά Συστήματα. 1. Συστήματα Αριθμών

Ψηφιακά Συστήματα. 1. Συστήματα Αριθμών Ψηφιακά Συστήματα 1. Συστήματα Αριθμών Βιβλιογραφία 1. Φανουράκης Κ., Πάτσης Γ., Τσακιρίδης Ο., Θεωρία και Ασκήσεις Ψηφιακών Ηλεκτρονικών, ΜΑΡΙΑ ΠΑΡΙΚΟΥ & ΣΙΑ ΕΠΕ, 2016. [59382199] 2. Floyd Thomas L.,

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

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

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

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

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

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

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

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

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

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

Αριθμητική Ανάλυση & Εφαρμογές

Αριθμητική Ανάλυση & Εφαρμογές Αριθμητική Ανάλυση & Εφαρμογές Διδάσκων: Δημήτριος Ι. Φωτιάδης Τμήμα Μηχανικών Επιστήμης Υλικών Ιωάννινα 2017-2018 Υπολογισμοί και Σφάλματα Παράσταση Πραγματικών Αριθμών Συστήματα Αριθμών Παράσταση Ακέραιου

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

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

Οι Βιβλιοθήκες IEEE και παραδείγµατα functions Οι Βιβλιοθήκες IEEE και παραδείγµατα functions Βιβλιοθήκες µε την Εντολή Library Η VHDL επιτρέπει βιβλιοθήκες που ορίζονται µε τηνεντολή: library LibraryName; Εδώ, ο µεταγλωτιστης µπορεί να βρεί διάφορα

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

Πράξεις με δυαδικούς αριθμούς

Πράξεις με δυαδικούς αριθμούς Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 25-6 Πράξεις με δυαδικούς αριθμούς (λογικές πράξεις) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Εκτέλεση πράξεων

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

Εισαγωγή στην επιστήμη των υπολογιστών. Πράξεις με μπιτ

Εισαγωγή στην επιστήμη των υπολογιστών. Πράξεις με μπιτ Εισαγωγή στην επιστήμη των υπολογιστών Πράξεις με μπιτ 1 Πράξεις με μπιτ 2 Αριθμητικές Πράξεις σε Ακέραιους Πρόσθεση, Αφαίρεση, Πολλαπλασιασμός, Διαίρεση 3 Πρόσθεση στη μορφή συμπληρώματος ως προς δύο

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

"My Binary Logic" Ένας προσομοιωτής λογικών πυλών στο Scratch

My Binary Logic Ένας προσομοιωτής λογικών πυλών στο Scratch "My Binary Logic" Ένας προσομοιωτής λογικών πυλών στο Scratch Καραγιάννη Ελένη 1, Καραγιαννάκη Μαρία-Ελένη 2, Βασιλειάδης Αθανάσιος 3, Κωστουλίδης Αναστάσιος-Συμεών 4, Μουτεβελίδης Ιωάννης-Παναγιώτης 5,

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

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

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

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

Ένα αναλογικό σήμα περιέχει άπειρες πιθανές τιμές. Για παράδειγμα ένας απλός ήχος αν τον βλέπαμε σε ένα παλμογράφο θα έμοιαζε με το παρακάτω:

Ένα αναλογικό σήμα περιέχει άπειρες πιθανές τιμές. Για παράδειγμα ένας απλός ήχος αν τον βλέπαμε σε ένα παλμογράφο θα έμοιαζε με το παρακάτω: Σημειώσεις Δικτύων Αναλογικά και ψηφιακά σήματα Ένα αναλογικό σήμα περιέχει άπειρες πιθανές τιμές. Για παράδειγμα ένας απλός ήχος αν τον βλέπαμε σε ένα παλμογράφο θα έμοιαζε με το παρακάτω: Χαρακτηριστικά

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

γρηγορότερα. Αν θέλουμε να μηδενίσουμε όλα τα υπόλοιπα bit μπορούμε να χρησιμοποιήσουμε την εντολή:

γρηγορότερα. Αν θέλουμε να μηδενίσουμε όλα τα υπόλοιπα bit μπορούμε να χρησιμοποιήσουμε την εντολή: A. Tips 1. Τοποθέτηση σημαίας ή bit ενός καταχωρητή ή μεταβλητής... 2 2. Καθάρισμα σημαίας ή bit ενός καταχωρητή ή μεταβλητής... 2 3. Σύγκριση μονοδιάστατων πινάκων (στο παράδειγμα 5 στοιχείων)... 2 4.

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

Κεφάλαιο 2 Η έννοια και η παράσταση της πληροφορίας στον ΗΥ. Εφ. Πληροφορικής Κεφ. 2 Καραμαούνας Πολύκαρπος 1

Κεφάλαιο 2 Η έννοια και η παράσταση της πληροφορίας στον ΗΥ. Εφ. Πληροφορικής Κεφ. 2 Καραμαούνας Πολύκαρπος 1 Κεφάλαιο 2 Η έννοια και η παράσταση της πληροφορίας στον ΗΥ Καραμαούνας Πολύκαρπος 1 2.1Η έννοια της πληροφορίας Δεδομένα Πληροφορία Καραμαούνας Πολύκαρπος 2 2.2 ΗΥ Το βασικό εργαλείο επεξεργασίας και

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

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

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

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