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

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

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

Transcript

1 Σχεδίαση κυκλωμάτων με VHDL: 1o μέρος Γ. Δημητρακόπουλος Το πρώτο σας κύκλωμα Τα ψηφιακά κυκλώματα είναι μια συλλογή από λογικές πύλες και ακολουθιακά στοιχεία αποθήκευσης (ή συγχρονισμού) όπως τα flip-flops. Αποτελούνται επίσης εξειδικευμένες μονάδες αποθήκευσης πληροφορίας όπως οι μνήμες τις οποίες θα πρέπει μεταχειριστούμε χωριστά από τα υπόλοιπα κυκλωματικά στοιχεία στην περίπτωση που περιγράφουμε τη λειτουργία των κυκλωμάτων με μια γλώσσα περιγραφής υλικού. Όπως και στην παρουσίαση των βασικών αρχών της ψηφιακής σχεδίασης θα ξεκινήσουμε από τα συνδυαστικά κυκλώματα και τον τρόπο περιγραφής τους και στη συνέχεια θα ασχοληθούμε με συνθετότερες δομές που μπορούν και θυμούνται προηγούμενες καταστάσεις λειτουργίας τους επαυξάνοντας ταυτόχρονα τις δυνατότητες που μας δίνει η VHDL στην περιγραφή των κυκλωμάτων. Ένα απλό παράδειγμα συνδυαστικής λογικής φαίνεται στο σχήμα που ακολουθεί. A <= (B and C) or (not D); Το κύκλωμα αποτελείται από 3 καλώδια εισόδου Β, C, και D και υπολογίζει μια έξοδο Α. H περιγραφή της λειτουργίας του κυκλώματος σε VHDL περιλαμβάνει απλές λογικές πράξεις and, or και not οι οποίες θα εφαρμόζονταν πάνω στα καλώδια των εισόδων για να υπολογίσουν μια νέα έξοδο. Στο παράδειγμα αυτό τα A, B, C και D είναι ονόματα των σημάτων (signal) της VHDL, τα οποία αντιστοιχούν σε απλά καλώδια στην πραγματικότητα. H ανάθεση στο σήμα Α γίνεται μέσω του τελεστή <= αφού πρώτα υπολογιστεί η λογική συνάρτηση που συνδέει τις τιμές των υπολοίπων σημάτων. Φυσικά όπως φαίνεται και στο παράδειγμα μας μπορούμε να χρησιμοποιήσουμε παρενθέσεις για να καθορίσουμε τη σειρά υπολογισμού των λογικών εκφράσεων, ενώ κάθε ανάθεση σε ένα σήμα ολοκληρώνεται με ένα ; στο τέλος της πρότασης. Κάθε φορά που κάποιο από τα σήματα στη δεξιά πλευρά της ανάθεσης <= αλλάξει τιμή, πχ το B, το C, ή το D, τότε υπολογίζεται αυτόματα μια νέα τιμή για το σήμα στην αριστερή πλευρά της ανάθεσης. Η λογική αυτή μας επιτρέπει να πούμε πως οι απευθείας αναθέσεις αυτές περιγράφουν τη λειτουργία μιας οποιαδήποτε συνδυαστικής λογικής. Η πιο απλή μορφή ανάθεσης είναι αυτή μιας σταθερής λογικής τιμής και γράφεται ως εξής: Α <= '1'; Η τιμή του λογικού 0 και 1 τοποθετείται μέσα σε μονά εισαγωγικά '0' και '1'. Για τα ψηφιακά κυκλώματα με περισσότερες από μία εξόδους χρησιμοποιούμε περισσότερες αναθέσεις, μία για κάθε έξοδο του κυκλώματος. Αυτό φαίνεται στο παρακάτω παράδειγμα του κυκλώματος του πλήρη αθροιστή, όπου tα σήματα στην έξοδο του κυκλώματος S και Co υπολογίζονται ως λογικές συναρτήσεις των εισόδων A, Β και Ci. S <= A xor B xor Ci; Co <= (A and B) or ((A xor B) and Ci); Δομή κάθε περιγραφής σε VHDL Όπως σε κάθε ψηφιακό κύκλωμα πέρα από την περιγραφή της λειτουργίας του πρέπει να είμαστε σε θέση να ορίσουμε με σαφήνεια τις εισόδους και τις εξόδους του καθώς και να του δώσουμε ένα όνομα που θα μας επιτρέπει να το ξεχωρίζουμε από τα υπόλοιπα. Έτσι η πλήρης περιγραφή σε VHDL του κυκλώματος του πλήρη αθροιστή φαίνεται παρακάτω: use IEEE.STD_LOGIC_1164.ALL; 1

2 entity fulladder is port(a, B: in std_logic; -- input bits for this stage Ci: in std_logic; -- carry into this stage S: out std_logic; -- sum bit Co: out std_logic -- carry out of this stage ); end fulladder; architecture logic of fulladder is S <= A xor B xor Ci; Co <= (A and B) or ((A xor B) and Ci); end logic; Η περιγραφή του πλήρη αθροιστή (full adder) αποτελείται από 3 μέρη. To πρώτο μέρος χρησιμεύει για τη δήλωση των βιβλιοθηκών (library) που χρησιμοποιούμε (2 πρώτες γραμμές του κώδικα), το δεύτερο μέρος (entity) περιγράφει το όνομα του κυκλώματος και τις πόρτες εισόδου και εξόδου του, ενώ το τρίτο μέρος (architecture) περιλαμβάνει την περιγραφή της λειτουργίας του. Η δομή αυτή θα χρησιμοποιηθεί σε κάθε κύκλωμα που θα περιγράψουμε στη συνέχεια. Για την πλειοψηφία των κυκλωμάτων το κομμάτι της δήλωσης των βιβλιοθηκών θα περιλαμβάνει πάντα τις δύο ίδιες γραμμές use IEEE.STD_LOGIC_1164.ALL; οι οποίες σημαίνουν πως στον κώδικα μας χρησιμοποιούμε την τυπική βιβλιοθήκη STD_LOGIC_1164 της ΙΕΕΕ και δανειζόμενοι από αυτή τους βασικούς τύπους καλωδίων και τους τελεστές που θέλουμε να εφαρμόσουμε πάνω στα σήματα μας. Στη συνέχεια δηλώνεται το όνομα του κυκλώματος μας χρησιμοποιώντας την ειδική λέξη entity. Κάθε δήλωση ξεκινά με τη γραμμή entity <όνομα> is και τελειώνει με τη δήλωση end <όνομα>; Οποιοδήποτε κύκλωμα και αν περιγράψουμε σε VHDL αν θέλουμε να έχει ένα δικό του όνομα και δικές του εισόδους και εξόδους πρέπει να δηλωθεί ως ένα entity. Για τον πλήρη αθροιστή διαλέξαμε το όνομα fullαdder. Μέσα στη δήλωση κάθε entity περιλαμβάνουμε μια λίστα με τις δηλώσεις των εισόδων και των εξόδων του κυκλώματος. Η λίστα αυτή εμπεριέχεται μέσα σε παρενθέσεις που ξεκινούν με την ειδική λέξη port. Για κάθε πόρτα του κυκλώματος μας πρέπει να δηλώσουμε το όνομα του σήματος που συνδέεται σε αυτήν μέσα στο κύκλωμα, αν πρόκειται για είσοδο ή έξοδο του κυκλώματος και τον τύπου του σήματος. Στο παράδειγμα μας ο πλήρης αθροιστής διαθέτει 2 εξόδους και 3 εισόδους εκ των οποίων η μία είναι το σήμα Α το οποίο είναι τύπου std_logic. Αυτό το καταλαβαίνουμε κοιτώντας τη δήλωση port (.; Ci : in std_logic; ); Για όλα τα κυκλώματα που θα σχεδιάσουμε στη συνέχεια θα διαλέξουμε ο τύπος των καλωδίων που θα χρησιμοποιήσουμε θα είναι πάντα std_logic. Ο τύπος std_logic αντιστοιχεί ουσιαστικά σε όλες τις τιμές που μπορεί να πάρει ένα καλώδιο στην πραγματικότητα και δεν είναι άλλες από το λογικό 0 το λογικό 1, απροσδιόριστες τιμές εξαιτίας λανθασμένης ή πολλαπλής οδηγήσής και μη οδηγούμενη τιμή (floating). Το σημαντικότερο μέρος της περιγραφής σε VHDL είναι ο ορισμός της αρχιτεκτονικής του entity που μόλις δηλώσαμε και αναφέρεται στην περιγραφή της λειτουργίας του. Στην περίπτωση μας το όνομα που διαλέξαμε για τη συμπεριφορά (architecture) του κυκλώματος fullαdder είναι logic (architecture logic of fulladder is) και αποτελείται από δύο αναθέσεις στα σήματα Χ. Υ που αποτελούν τις εξόδους του κυκλώματος μας. Για την πλήρη περιγραφή ενός κυκλώμάτος απαιτείται τόσο η δήλωση του entity όσο και η δήλωση του architecture του. Η μεν δήλωση του entity έχει να κάνει μόνο με το όνομα του κυκλώματος και τα ονόματα των σημάτων που συνδέονται στις πόρτες εισόδου και εξόδου του, ενώ η αρχιτεκτονική δηλώνει ακριβώς τη συμπεριφορά του κυκλώματος πάνω στα σήματα εισόδου. Για παράδειγμα κάθε φορά που δηλώνουμε ένα entity είναι σαν να σχεδιάζουμε ένα κενό κουτί με εισόδους και εξόδους όπως το φαίνεται στο σχήμα (αρχή επόμενης σελίδας). Με την περιγραφή της συμπεριφοράς του μέσω του μπλοκ architecture της VHDL είναι σαν να γεμίζουμε το άδειο κουτί με ένα λογικό διάγραμμα. Τέλος όπως και σε κάθε μορφή κώδικα έτσι και στη VHDL χρειαζόμαστε σχόλια τα οποία θα συνοδεύουν την περιγραφή του κυκλώματος κάνοντας την πιο ευανάγνωστη. Τα σχόλια ξεκινούν με δύο παύλες - και δε επηρεάζουν σε τίποτε την υπόλοιπη περιγραφή. Καλό είναι να βάζετε κατανοητά σχόλια στον κώδικα σας στα σημεία που απαιτούν περισσότερες διευκρινήσεις. 2

3 Στην περιγραφή του fullαdder που δείξαμε μέχρι στιγμής όλα τα σήματα του κυκλώματος είναι είτε είσοδοι είτε έξοδοι του κυκλώματος. Φυσικά μπορούμε να έχουμε χωριστά ονόματα και για τα εσωτερικά καλώδια (σήματα) του κυκλώματος μας. Για παράδειγμα θα μπορούσαμε να περιγράψουμε τη συμπεριφορά του πλήρη αθροιστή ως εξής: architecture struct of fulladder is signal X: std_logic; X <= A xor B; S <= X xor Ci; Co <= (A and B) or (X and Ci); end struct; Στην περίπτωση αυτή για την περιγραφή του πλήρη αθροιστή χρησιμοποιήσαμε ένα επιπλέον εσωτερικό καλώδιο Χ στο οποίο αναθέσαμε την τιμή του A xor Β. Στη συνέχεια χρησιμοποιήσαμε την τιμή αυτού του καλωδίου ώστε να υπολογίσουμε τις τιμές των σημάτων της εξόδου S και Co. Για να χρησιμοποιήσουμε το καλώδιο αυτό θα έπρεπε να το δηλώσουμε μέσα στο σώμα του architecture και πριν από την έναρξη της περιγραφής η οποία εσωκλείεται μεταξύ του και του end <όνομα αρχιτεκτονικής>. H δήλωση όλων των εσωτερικών σημάτων ακολουθεί πάντα την ίδια δομή signal <όνομα> : <τύπος>;, όπου για τον τύπο, όπως έχουμε πει επιλέγουμε πάντα τον std_logic. Οι απευθείας αναθέσεις στα σήματα Χ, S και Co πραγματοποιούνται ταυτόχρονα και στα 3 σήματα και το αποτέλεσμα τους είναι ανεξάρτητο από τη σειρά που έχουν τοποθετηθεί στον κώδικα. Για παράδειγμα οι δύο παρακάτω παραλλαγές X <= A xor B; S <= X xor Ci; Co <= (A and B) or (X and Ci); Co <= (A and B) or (X and Ci); X <= A xor B; S <= X xor Ci; θα είχαν ακριβώς το ίδιο αποτέλεσμα, εφόσον στις απευθείας αναθέσεις τις VHDL δεν υπάρχει η έννοια της σειριακής εκτέλεσης των εντολών όπως σε ένα πρόγραμμα. Μία απευθείας ανάθεση signalx <= <signals> αντιστοιχεί σε ένα κομμάτι ενός κυκλώματος με μία έξοδο. Το σήμα στην αριστερή πλευρά της ανάθεσης είναι η έξοδος του υποτιθέμενου κυκλώματος και τα σήματα στη δεξιά πλευρά οι είσοδοι του. Στο παράδειγμα μας το κύκλωμα που περιγράφουμε αποτελείται από 4 υποκυκλώματα τα οποία ενώνονται με καλώδια. Όταν ένα καλώδιο (όπως τα p1, p3) συμμετέχει τόσο στη δεξιά όσο και στην αριστερή πλευρά κάποιων αναθέσεων υπονοείται πως πρόκειται για ένα καλώδιο που ενώνει δύο υποκυκλώματα. Όπως και στα πραγματικά κυκλώματα λογικών πυλών έτσι και στη VHDL οι αναθέσεις υπολογίζονται εκ νέου κάθε φορά που τα σήματα (καλώδια) στη δεξιά πλευρά των αναθέσεων αλλάζουν τιμή ανεξάρτητα από τη σειρά που έχουν γραφεί στον κώδικα. Άλλωστε όταν ζωγραφίζουμε ένα κύκλωμα δεν παίζει ρόλο ούτε η σειρά με την οποία ζωγραφίσαμε τις πύλες στο χαρτί ούτε πια βάλαμε μπροστά και ποια πίσω αρκεί να τις συνδέσαμε σωστά με τα καλώδια που έχουμε στη διάθεση μας. Αυτό το χαρακτηριστικό είναι που διαφοροποιεί τις γλώσσες περιγραφής υλικού όπως η VHDL από τις γλώσσες 3

4 προγραμματισμού, όπως η C η Java. Στις γλώσσες προγραμματισμού κάθε ανάθεση σε μια μεταβλητή πραγματοποιείται μόνο μία φορά, ενώ διαδοχικές αναθέσεις ακολουθούν πιστά τη σειρά με την οποία είναι γραμμένες στον κώδικα. Η επανάληψη μιας ανάθεσης απαιτεί κάποια επαναληπτική δομή (for ή while). Απευθείας αναθέσεις υπό συνθήκη Οι λογικές σχέσεις not, and, or, xor αρκούν για να περιγράψουν τη λειτουργία ενός οποιοδήποτε συνδυαστικού κυκλώματος. Παρόλα αυτά, συνήθως χρησιμοποιούμε υπό-συνθήκη αναθέσεις οι οποίες κάνουν την περιγραφή πιο κατανοητή. Μια τέτοια ανάθεση υπό-συνθήκη στο σήμα d περιγράφεται στη VHDL ως εξής d <= '1' when a = b else b when c = '1' else not a; Το σήμα d παίρνει την τιμή του λογικού 1 όταν τα οι τιμές των σημάτων a και b είναι ίσες. Αν αυτό δεν ισχύει αλλά η τιμή του c είναι ίση με 1 τότε στο d ανατίθεται η τιμή του b. Αν τίποτε από αυτά δεν ικανοποιείται τότε το d παίρνει την αντίστροφη τιμή του a. Το πρώτο που πρέπει να παρατηρήσετε είναι πως ο έλεγχος της συνθήκης ισότητας στη VHDL γίνεται με τον απλό τελεστή ισότητας = και όχι με το διπλό == που ενδεχομένως να έχετε συνηθίσει από τις γλώσσες προγραμματισμού με συντακτικό όμοιο με της C. Οι υπο-συνθήκη αναθέσεις μας επιτρέπουν να περιγράψουμε με ένα κατανοητό τρόπο απευθείας τη λειτουργία της πολύπλεξης. Για παράδειγμα η αντιστοίχιση της πιο πάνω υπο-συνθήκη ανάθεσης σε κύκλωμα φαίνεται στο παρακάτω σχήμα. Το ισοδύναμο κύκλωμα αποτελείται από 2 εν σειρά πολυπλέκτες οι οποίοι καθορίζουν ποια από τις 3 επιλογές που έχουμε για την ανάθεση, δηλαδή το '1', το b ή το not a θα περάσει τελικά στο d. Ποιο από τα 3 πιθανά μονοπάτια θα ενεργοποιηθεί τελικά εξαρτάται από την ικανοποίηση η όχι των επιμέρους συνθηκών οι οποίες συνδέονται στη γραμμή επιλογής του κάθε πολυπλέκτη. Θεωρούμε πως όταν μια συνθήκη ικανοποιηθεί τότε η έξοδος του αντίστοιχου κυκλώματος που την υλοποιεί οδηγείται στο λογικό 1. Εφόσον όλα τα σήματα του κυκλώματος μας είναι του 1 δυαδικού ψηφίου τότε ο έλεγχος της ισότητας μπορεί να γίνει μέσω μιας πύλης XNOR. Κάθε υπό-συνθήκη ανάθεση ακολουθεί τη γενική δομή του παρακάτω σχήματος. x<= value1 when condition1 else value2 when condition2 else... else valuen Η υλοποίηση της υπο-συνθήκη ανάθεσης αντιστοιχεί σε μια σειριακή δομή από πολυπλέκτες. Η είσοδος επιλογής του κάθε πολυπλέκτη συνδέεται στο αντίστοιχο κύκλωμα ικανοποίησης της συνθήκης ελέγχου. Η είσοδος που αντιστοιχεί στην true εκδοχή της συνθήκης συνδέεται στην τιμή προς ανάθεση (valuek), ενώ η άλλη στην έξοδο του προηγούμενο πολυπλέκτη. Οι πολυπλέκτες που βρίσκονται πιο κοντά στην έξοδο είναι αυτοί που ελέγχουν τις συνθήκες πιο κοντά στην ανάθεση. Ο πιο απλός πολυπλέκτης 2 σε 1 θα γραφόταν ως εξής x <= a when s='1' else b; Αν και η περιγραφή που κάνουμε περιέχει απλές λογικές πράξεις και υπο-συνθήκη αναθέσεις, η αντιστοίχιση του κυκλώματος στο στάδιο της λογικής σύνθεσης μπορεί να οδηγήσει σε πολύ διαφορετικά κυκλώματα ανάλογα με το διαθέσιμη παλέτα από λογικές πύλες που έχουμε στη διάθεση μας και τους περιορισμούς σε ταχύτητα και εμβαδόν υλοποίησης που επιβάλουμε στο 4

5 εργαλείο λογικής σύνθεσης. Διάφορες ενναλακτικές υλοποιήσεις του ίδιου κυκλώματος φαίνονται στο σχήμα που ακολουθεί. Ομάδες καλωδίων από κοινού επεξεργασία Στην πραγματικότητα σε πολλές περιπτώσεις τα κυκλώματα μας καλούνται να επεξεργαστούν ταυτόχρονα ομάδες από καλώδια τα οποία αποτελούν μια φυσική οντότητα αρκετών δυαδικών ψηφίων. Κάθε τέτοιο σήμα είναι ουσιαστικά μια συλλογή από απλά σήματα std_logic του ενός δυαδικού ψηφίου και το ονομάζουμε std_logic_vector. Για παράδειγμα ένα σήμα Χ των 8 καλωδίων δηλώνεται ως εξής: signal X: std_logic_vector (7 downto 0); Μαζί με την δήλωση του τύπου (std_logic_vector) του σήματος Χ οφείλουμε να δηλώσουμε και το εύρος του. Δηλαδή το δείκτη της πρώτης και της τελευταίας θέσης του πίνακα, 7 downto 0. Η κωδική λέξη downto χρησιμεύει για δηλώσει πως οι δείκτες μειώνονται προς τα κάτω. Ισοδύναμα θα μπορούσαμε να δηλώσουμε το σήμα Χ ως std_logic_vector (0 to 7), χρησιμοποιώντας την κωδική λέξη to που σημαίνει αύξηση των δεικτών προς τα πάνω. Το σήμα X δεν είναι τίποτε άλλο από 8 παράλληλα καλώδια τύπου std_logic το καθένα. Μπορούμε να αναφερθούμε σε κάθε ένα από αυτά χρησιμοποιώντας παρενθέσεις και το δείκτη του κάθε καλωδίου. Για παράδειγμα το πρώτο καλώδιο είναι το Χ(0) ενώ το τελευταίο το X(7). Επίσης μπορούμε να αναφερθούμε απευθείας σε κάποιες συνεχόμενες υπο-ομάδες του Χ. Για παράδειγμα, μπορούμε να αναφερθούμε στα 4 καλώδια Χ(6), Χ(5), Χ(4) και Χ(3), ως X(6 downto 3). Οι αναθέσεις σε ομάδες καλωδίων τύπου std_logic_vector γίνονται ακριβώς όπως και στα απλά σήματα std_logic, με τη μόνη διαφορά ότι ο λογικός τελεστής που ενδεχομένως να συνοδεύει την ανάθεση εφαρμόζεται παράλληλα σε όλα τα δυαδικά ψηφία της ομάδας των καλωδίων. Για παράδειγμα, στο σήμα Χ των 8 δυαδικών ψηφίων που δηλώσαμε πιο πριν μπορούμε να αναθέσουμε μια σταθερή τιμή Χ <= ; Αυτή η απευθείας ανάθεση ισοδυναμεί με την ανάθεση σε ένα-ένα τα δυαδικά ψηφία του Χ των σταθερών τιμών Χ(7) <='0'; Χ(6) <='1'; Χ(5) <='0'; Χ(4) <='0'; Χ(3) <='1'; Χ(2) <='0'; Χ(1) <='1'; Χ(0) <='0'; Προσέξτε πως στην περίπτωση τις ανάθεσης σταθερής τιμής σε ομάδες καλωδίων χρησιμοποιούμε διπλά εισαγωγικά..., ενώ για την ανάθεση ενός δυαδικού ψηφίου μονά εισαγωγικά '1' ή '0'. Επίσης σε περίπτωση λογικών πράξεων μπορούμε να περιγράψουμε 8 παράλληλες AND πύλες χωρίς να χρειάζεται να περιγράψουμε τη λογική πράξη για κάθε ζεύγος από δυαδικά ψηφία χωριστά (Χ(0) <= not (Α(0) and B(0));... Χ(7) <= not=(α(7) 5

6 and B(7));) όπως φαίνεται στο σχήμα που ακολουθεί. Χ <= not (A and B); Σε αυτό το σημείο πρέπει να προσέξετε πως για να είναι η ανάθεση αυτή σωστή θα πρέπει το εύρος των εισόδων Α και Β να ταιριάζει με το εύρος του σήματος Χ. Δεν επιτρέπεται η λογική πράξη μεταξύ ενός std_logic_vector των 6 δυαδικών ψηφίων με ένα των 7 δυαδικών ψηφίων. Με την ίδια λογική μπορούμε να περιγράψουμε απευθείας αναθέσεις υπό συνθήκη σε ομάδες καλωδίων. Αυτό κάνουμε για ένα πολυλέκτη 2-σε-1 των 4 δυαδικών ψηφίων. use IEEE.STD_LOGIC_1164.ALL; entity mux_4bits is port ( A : in std_logic_vector(3 downto 0); B : in std_logic_vector(3 downto 0); sel : in std_logic; Z : out std_logic_vector(3 downto 0) ); end mux_4bits; architecture bh of mux_4bits is Χ <= Α when sel = '0' else B; end bh; Σε αυτό το παράδειγμα αξίζει να προσέξουμε δύο στοιχεία. Πρώτον οι ομάδες καλωδίων std_logic_vector μπορούν να χρησιμοποιηθούν ως είσοδοι και έξοδοι του κυκλώματος μας. Δεύτερον η συνθήκη sel='1' που ελέγχει την ανάθεση συνδέεται σε 4 παράλληλους 2-σε-1 πολυπλέκτες του ενός δυαδικού ψηφίου παράγοντας στην έξοδο μια 4μπιτη ποσότητα Χ. Ακόμη και στην περίπτωση που η συνθήκη περιέχει μια λογική πράξη, το αποτέλεσμα της πράξης αυτής μοιράζεται σε όλους του πολυπλέκτες, όπως στο παράδειγμα που ακολουθεί. Χ <= B when c= 1 or d= 1 else A; Επίσης η υπο-συνθήκη απευθείας αναθέσεις μπορούν να αφορούν σε χωριστά μέρη του ίδιου σήματος όπως στις δυο αναθέσεις που ακολουθούν. Χ(1 downto 0) <= 10 when sel='1' else 00 ; Χ(3 downto 2) <= 11 when sel='0' else 00 ; Στο σχηματισμό συνθηκών ελέγχου μπορούν να συμμετέχουν και ομάδες καλωδίων τύπου std_logic_vector, τόσο σε αναθέσεις που αφορούν πολλά δυαδικά ψηφία όσο και σε αναθέσεις που αφορούν ένα καλώδιο. Για παράδειγμα ένας αποκωδικοποιητής 2-σε-4 μπορεί πολύ εύκολα να περιγραφεί ως εξής: 6

7 use IEEE.STD_LOGIC_1164.ALL; entity decoder_2to4 is port( A : in std_logic_vector(1 downto 0); en : in std_logic; Z : out std_logic_vector (3 downto 0) ); end decoder_2to4; architecture bhv of decoder_2to4 is signal A _dec : std_logic_vector(3 downto 0); A_dec <= 0001 when A = 00 else 0010 when A = 01 else 0100 when A = 10 else 1000 when A = 11 else 0001 ; Z <= A_dec when en = '1' else 0000 ; End bhv; Στο παράδειγμα μας η έξοδος του αποκωδικοποιητή ελέγχεται ταυτόχρονα και από ένα σήμα επίτρεψης Enable. Στην περίπτωση που το σήμα αυτό έχει την τιμή '0' τότε όλα τα καλώδια του αποκωδικοποιητή οδηγούνται στο λογικό 0 μέσω της ανάθεσης... else 0000 ;. Αν εκτελέσετε όλες τις λογικές απλοποιήσεις που προκύπτουν από τις σταθερές τιμές στην είσοδο των πολυπλεκτών θα προκύψει η δομή του decoder που θυμάστε από την ψηφιακή σχεδίαση. Η τελευταία ανάθεση θα μπορούσε να είχε γραφεί και ως εξής: Z <= A_dec when en = '1' else (others=> 0 ); O τελεστής others εξυπηρετεί στην αντιγραφή του bit 0 σε όλες τις θέσεις του std_logic_vector Z. Με τον ίδιο ακριβώς τρόπο θα μπορούσαμε να είχαμε απλώσει την τιμή ενός καλωδίου σε όλο το εύρος μιας ομάδας καλωδίων. onebit <= '1';Ζ <= (others => onebit); Για το τέλος αφήσαμε τη σύμπτυξη (concatenate) δύο ή περισσότερων ομάδων καλωδίων σε μια μεγαλύτερη ομάδα επιτρέποντας έτσι την πιο αποτελεσματική διαχείριση και επεξεργασίας τους. z <= X(1 downto 0) & Y(2) & F(3 downto 2); -- 5 bits gathered on z. z(4)=x(1) and z(0)=f(2) y <= ('1', A(2 downto 0), '0'); -- MSB is 1, rest is A[2:0] and LSB is 0 w <= (0 =>'1', others =>'0'); -- LSB is '1', the others are '0' Με αυτό τον τρόπο και με τη χρήση πάλι απεθείας υπο-συνθήκη αναθέσεων μπορούμε να περιγράψουμε έναν ολισθητή συνδυαστικής λογικής. use IEEE.STD_LOGIC_1164.ALL; entity left_shifter is port( A : in std_logic_vector(7 downto 0); shift : in std_logic_vector(2 downto 0); Z : out std_logic_vector (7 downto 0)); end left_shifter; architecture bhv of left_shifter is Z <= (A(6 downto 0), '0') when shift = 001 else (A(5 downto 0), 00 ) when shift = 010 else (A(4 downto 0), 000 ) when shift = 011 else (A(3 downto 0), 0000 ) when shift = 100 else (A(2 downto 0), 0000 ) when shift = 101 else (A(1 downto 0), ) when shift = 110 else (A(0), ) when shift = 111 else A; End bhv; 7

8 Συνήθη λάθη Στην ενότητα αυτή θα παρουσιάσουμε τα 3 πιο συχνά λάθη που γίνονται από αρχάριους σχεδιαστές κατά την περιγραφή των κυκλωμάτων τους σε VHDL, ελπίζοντας πως θα γλιτώσετε από πολλές ώρες αποσφαλμάτωσης των σχεδιασμών σας ΛΑΘΟΣ 1: Περισσότερες από μία απευθείας ανάθεσεις στο ίδιο σήμα Στο παρακάτω παράδειγμα το σήμα y ανατίθεται περισσότερο από μια φορές με απευθείας ανάθεση. y <= a or c; y <= a and b; x <= y and d; Οι αναθέσεις αυτές αν και συντακτικά σωστές παρουσιάζουν ένα ουσιαστικό λάθος. Το κύκλωμα στο οποίο αντιστοιχούν αποτελείται από 2 AND πύλες και μια OR. Η μία ΟR πύλη συνδυάζει τις εισόδους a και b και παράγει το σήμα y. To ίδιο όμως ακριβώς προσπαθεί να παράγει και η AND πύλη που συνδυάζει τις εισόδους a και c. Το αποτέλεσμα αυτού του διπλού υπολογισμού του y μέσω απευθείας αναθέσεων οδηγεί σε ένα βραχυκύκλωμα πάνω στο καλώδιο y η τιμή του οποίου θα είναι άγνωστη στην περίπτωση που η πάνω και η κάτω πύλη προσπαθούν να το οδηγήσουν σε αντίθετες λογικές τιμές. Σε ένα σήμα μπορούμε να αναθέτουμε περισσότερες από μία τιμές μόνο μέσα σε process (2 ο μέρος της περιγραφής κυκλωμάτων με VHDL). ΛΑΘΟΣ 2: Επαναχρησιμοποίηση μιας εξόδου του κυκλώματος σε ανάθεση άλλου σήματος Το σφάλμα αυτό επιβάλλεται από τη γλώσσα VHDL και ενώ έχει αλλάξει στη VHDL 2008 τα εργαλεία λογικής σύνθεσης έχουν μόνο εν μέρει προσαρμοστεί. Μέχρι τότε πρέπει να το αντιμετωπίζουμε αποτελεσματικά πετυχαίνοντας εξαρχής σωστούς σχεδιασμούς. Ας δούμε το πρόβλημα αυτό μέσω ενός παραδείγματος. use IEEE.STD_LOGIC_1164.all; entity and23 is port(a, b, c: in STD_LOGIC; v, w: out STD_LOGIC); architecture synth of and23 is v <= a and b; w <= v and c; Στην περίπτωση αυτή, αν και το σήμα v είναι έξοδος του κυκλώματος χρησιμοποιήθηκε ταυτόχρονα στο δεξί μέρος της ανάθεσης του w, λειτούργησε δηλαδή ταυτόχρονα ως είσοδος. Η χρήση αυτή απαγορεύεται από τη VHDLκαι οδηγεί σε λάθος κατά την επεξεργασία του κυκλωμάτος. Για να αντιμετωπίσουμε αυτήν την περίπτωση αρκεί να δηλώσουμε επιπλέον ενδιάμεσα σήματα τα οποία θα αφορούν μόνο τα εσωτερικά καλώδια του κυκλώματος μας διαχωρίζοντας τα από τις εξόδους του. Η σωστή εκδοχή του ίδιου κυκλώματος περιγράφεται στο παράδειγμα που ακολουθεί. use IEEE.STD_LOGIC_1164.all; entity and23 is port(a, b, c: in STD_LOGIC; v, w: out STD_LOGIC); architecture synth of and23 is signal v_int: STD_LOGIC; v_int <= a and b; v <= v_int; w <= v_int and c; end synth; Αντί να χρησιμοποιήσουμε στην δεξιά πλευρά της ανάθεσης την έξοδο v, χρησιμοποιήσαμε το βοηθητικό σήμα v_int για να αναπαραστήσει το εσωτερικό καλώδιο του κυκλώματος το οποίο μπορεί με ασφάλεια να επαναχρησιμοποίηθεί για τη δημιούργία και άλλων εξόδων όπως του w. 8

9 Λαθος 3: Παράλειψη σε υπο-συνθήκη αναθέσεις όλων των ενναλακτικών y <= z when x= 01 ; y <= z when x= 01 else 0 ; Η υπό-συνθήκη απευθείας ανάθεση στ αριστερά προσπαθεί να περιγράψει συνδυαστική λογική η οποία δίνει στο σήμα y την τιμή του z όταν το x λάβει την τιμή 01. Η περιγραφή όμως αυτή ξεχνάει να δηλώσει ρητά ποια τιμή θα λάβει το y στην περίπτωση που το x λάβει μια διαφορετική τιμή. Η παράλειψη αυτή έχει ως αποτέλεσμα τη γέννηση ενός latch o οποίος «θυμάται» τις παλιές τιμές του y όταν το x είναι διαφορετικό από το 01. Η αποφυγή των latches απαιτεί να δηλώνουμε όλες τις δυνατές τιμές του μπορούν να λάβουν τα σήματα μας σε μια υπο-συνθήκη ανάθεση όπως φαίνεται στο διπλανό παράδειγμα. Tα σήματα ως αριθμοί Σε πολλές περιπτώσεις οι ομάδες καλωδίων, όπως τα std_logic_vector, δεν είναι απλά μια ομαδοποίηση ομοειδών σημάτων, αλλά περιγράφουν αριθμούς είτε θετικούς είτε αρνητικούς με τους οποίους θα θέλαμε να εκτελέσουμε αριθμητικές πράξεις. Με άλλα λόγια σε κάθε δυαδικό ψηφίο αντιστοιχεί και ένα αριθμητικό βάρος ανάλογα με τη θέση του και την δυαδική αναπαράσταση που χρησιμοποιούμε για τον αριθμό. Για παράδειγμα όταν στο σήμα Χ των 4 δυαδικών ψηφίων (std_logic_vector(3 downto 0)) αναθέτουμε την τιμή Χ <= 1010 αυτό μπορεί να σημαίνει είτε ότι το Χ περιγράφει τον αριθμό 10 είτε τον αριθμό -6 ανάλογα με την αναπαράσταση που έχουμε επιλέξει για τους 4μπιτους αριθμούς μας (unsigned και συμπλήρωμα ως προς 2 ή signed αντίστοιχα). Η VHDL, μέσω των βιβλιοθηκών που διαθέτει, επιτρέπει την εύκολη και ασφαλή περιγραφή των αριθμητικών πράξεων. Ο πιο απλός τρόπος που μπορείτε να χρησιμοποιήσετε, ώστε να αποφύγετε τις συνεχείς εναλλαγές μεταξύ διαφορετικών αριθμητικών τύπων είναι να υλοποιήσετε όλες τις αριθμητικές σας πράξεις απευθείας πάνω στον τύπο του std_logic_vector. Η πιο απλή περίπτωση περιλαμβάνει αριθμούς χωρίς πρόσημο (unsigned). Για να μπορέσουμε να χρησιμοποιήσουμε στους αριθμούς αυτούς, που περιγράφονται ως std_logic_vector, τους τελεστές αριθμητικών πράξεων +, - ή και αριθμητικών συγκρίσεων >, <, >=, <=, = αρκεί να χρησιμοποιήσουμε το πακέτο std_logic_unsigned όπως φαίνεται στο παράδειγμα που ακολουθεί. use IEEE.STD_LOGIC_1164.all; use ieee.std_logic_unsigned.all; entity test is port(a, b, c: in std_logic_vector(3 downto 0); x, y, z: out std_logic_vector(3 downto 0); res : out std_logic); architecture synth of and23 is x <= a + b + 2; y <= c + 1; z <= c 2; res <= '1' when a>b else '0'; end synth; Οι απευθείας αναθέσεις του παραδείγματος προσθέτουν, αφαιρούν και συγκρίνουν std_logic_vector(s) θεωρώντας πως αυτά περιγράφουν αριθμούς χωρίς πρόσημο τύπου unsigned των αντίστοιχων διαδικών ψηφίων που χρησιμοποιήσαμε στην 9

10 περιγραφή. Αυτήν την υπόθεση θα κάνει και το εργαλείο προσωμοίωσης και της λογικής σύνθεσης του σχεδιασμού μας. Αν τα αποτελέσματα δεν είναι τα ζητούμενα εξαιτίας μη επαρκούς ακρίβειας ή δυναμικής περιοχής (απαιτούμενο πλήθος από δυαδικά ψηφία) είναι πρόβλημα του σχεδιαστή και δε μπορεί να αντιμετωπιστεί αυτόματα. Για παράδειγμα η πρόσθεση y <= c + 1 του παραδείγματος θα δώσει στο y την τιμή 0000 όταν το c είναι ίσο με Αυτή η συμπεριφορά wrap around οφείλετε στο γεγονός πως το ζητούμενο αποτέλεσμα απαιτεί 5 δυαδικά ψηφία για να υπολογιστεί ενώ το y διαθέτει μόνο 4. Σε κάποιες εφαρμογές όπως στη σχεδίαση μετρητών (counter) η συμπεριφορά αυτή είναι επιθυμητή, ενώ σε κάποιες άλλες μπορεί να δώσει λαναθσμένα αποτελέσματα. use IEEE.STD_LOGIC_1164.all; use ieee.std_logic_unsigned.all; entity average_of_four is port(a, b, c, d : in std_logic_vector(3 downto 0); avg : out std_logic_vector(3 downto 0)) architecture synth of avg_of_four is -- We increase the bitwidth of the vectors for avoiding overflow signal sumab, sumcd : std_logic_vector(4 downto 0); signal sum : std_logic_vector(5 downto 0); sumab <= a + b; sumbc <= c + d; sum <= sumab + sumbc; -- average = sum/4. Division by 4 is equivalent to 2 positions -- right shift for unsigned numbers avg (3 downto 0) <= sum(5 downto 2); Στην περίπτωση που θέλετε να χρησιμοποιήσετε στην περιγραφή σας τόσο αριθμούς χωρίς πρόσημο (unsigned) όσο και προσημασμένους αριθμούς στην αναπαράσταστη συμπλήρωμα ως προς 2 (signed) τότε πρέπει να αντικαστήσετε το πακέτο ieee.std_logic_unsigned.all; από το ieee.std_logic_arith.all και να χρησιμοποιείτε συναρτήσεις επιλογής τύπου ώστε να περιγράψετε με σαφήνεια την αριθμητική αναπαράσταση που έχετε επιλέξει κάθε φορά. Κάτι τέτοιο φαίνεται στο παράδειγμα που ακολουθεί. library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; entity test is port(a, b, c: in std_logic_vector(3 downto 0); x, y, z: out std_logic_vector(3 downto 0); res : out std_logic); architecture synth of and23 is x <= unsigned(a) + unsigned(b) + 2; y <= signed(c) + 1; z <= signed(c) 2; res <= '1' when a>b else '0'; Στην περίπτωση που δε συμπεριλάβετε τις συναρτήσεις επιλογής τύπου signed () ή unsigned() τα εργαλεία προσωμοίωσης ή λογική σύνθεσης θα σας ειδοποιήσουν για το λάθος. Το ίδιο θα συμβεί και στην περίπτωση που επιχειρήσετε να κάνετε μια πράξη μεταξύ διαφορετικών τύπων, π.χ., x_mixed <= signed(s1_u) + unsigned (s1). Τέλος, τα σήματα std_logic_vector από τη στιγμή που τους προσδίδουμε αριθμητική σημασία μπορούν να χρησιμοποιηθούν ως δείκτες (διευθύνσεις) για την επιλογή από ένα σύνολο από δεδομένα επιτρέποντας μας να περιγράψουμε-σχεδιάσουμε αποκωδικοποιητές, πολυπλέκτες και άλλα κυκλώματα με ένα πολύ σύντομο τρόπο. Για παράδειγμα θέλουμε από ένα std_logic_vector(3 downto 0) με το όνομα data να επιλέξουμε εκείνα τα δεδομένα που βρίσκονται στη θέση που δηλώνει ένα 10

11 άλλο std_logic_vector (1 downto 0) των 2 δυαδικών ψηφίων με όνομα sel. Αυτό θα μπορούσε να γίνει μέσω της conv_integer() με δύο τρόπους ανάλογα με το πακέτο αριθημτικής αναπαράστασης που χρησιμοποιούμε. library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity mux4 is port(datain: in std_logic_vector(3 downto 0); sel : in std_logic_vector(1 downto 0); dataout: out std_logic); end mux4; architecture bhv of mux4 is dataout <= datain(conv_integer(sel)); end bhv; library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; entity mux4 is port(datain : in std_logic_vector(3 downto 0); sel: in std_logic_vector(1 downto 0); dataout: out std_logic); end mux4; architecture bhv of mux4 is dataout<=datain(conv_integer(unsigned(sel))); end bhv; H συνάρτηση conv_integer μετατρέπει το std_logic_vector sel σε έναν ακεραιο αριθμό, ο οποίος με τη σειρά του χρησιμοποιείται ως δείκτης στο διάνυσμα data. Ιεραρχία κατά τη σχεδίαση - υποκυκλώματα Κατά τη σχεδίαση σύνθετων κυκλωμάτων διαλέγουμε πολλές φορές να σχεδιάσουμε τα κυκλώματα μας ιεραρχικά χωρίζοντας το κύκλωμα μας σε υπο-κυκλώματα. Το τελικό κύκλωμα προκύπτει μετά από μια απλή σύνδεση με καλώδια των υποκυκλωμάτων που έχουμε σχεδιάσει. Πως όμως μπορούμε να επαναχρησιμοποιήσουμε έτοιμα κυκλώματα και να τα συνδέσουμε μεταξύ τους σε VHDL; Αυτό μπορούμε πολύ εύκολα να το μάθουμε χρησιμοποιώντας ως παράδειγμα ένα 4μπιτο αθροιστή τον οποίο θα κατασκευάσουμε συνδέοντας σε σειρά τους 4 πλήρεις αθροιστές. library ieee; use ieee.std_logic_1164.all; entity adder4 is port(a, B: in std_logic_vector(3 downto 0); Ci : in std_logic; S : out std_logic_vector(3 downto 0); Co : out std_logic); end adder4; architecture a1 of adder4 is -- local component declaration for fulladder component fulladder is port(a, B, Ci: in std_logic; S, Co: out std_logic); end component; -- internal signals signal C: std_logic_vector(3 downto 1); b0: fulladder port map(a(0),b(0),ci,s(0),c(1)); b1: fulladder port map(a(1),b(1),c(1),s(1),c(2)); b2: fulladder port map(a(2),b(2),c(2),s(2),c(3)); b3: fulladder port map(a(3),b(3),c(3),s(3),co); end a1; Στην περίπτωση αυτή το κύκλωμα μας adder4 δέχεται στην είσοδο του δύο σήματα A και Β των 4 δυαδικών ψηφίων και ένα κρατούμενο εισόδου Ci. Αφού το κύκλωμα ολοκληρώσει την πρόσθεση δίνει στην έξοδο του το άθροισμα Α + Β + Ci στην έξοδο S και το κρατούμενο εξόδου στην έξοδο Co. Στο κομμάτι της περιγραφής της συμπεριφοράς (architecture) του κυκλώματος παρατηρούμε ότι δε πραγματοποιούνται αναθέσεις σε κάποια από τα σήματα εξόδου αλλά οι τιμές των εξόδων προκύπτουν από την επαναχρησιμοποιήση 4 κυκλωμάτων πλήρων αθροιστών fulladder. Για να μπορέσουμε να χρησιμοποιήσουμε το υποκύκλωμα fulladder μέσα στην αρχιτεκτονική του adder4 πρέπει πρώτα να το δηλώσουμε ως component πριν την έναρξη της περιγραφής της αρχιτεκτονικής. 11

12 O ορισμός του component του fulladder καθορίζει τις εξωτερικές συνδέσεις του fulladder (3 είσοδοι και 2 έξοδοι) και επιτρέπει στη VHDL να ελέγξει ότι το component που θα χρησιμοποιήσουμε στο νέο μας κύκλωμα ταιριάζει επακριβώς με το κύκλωμα που ουσιαστικά το υλοποιεί, δηλαδή αυτό που σε ένα άλλο αρχείο έχουμε δηλώσει ως entity fulladder (παρατήρησε την αντίστοιχη δήλωση του entity αυτού στη σελίδα 2 αυτού του κειμένου). Για να χρησιμοποιήσουμε το component αυτό πρέπει να δημιουργήσουμε ενα στιγμιότυπο (instance) για κάθε ένα που θέλουμε να χρησιμοποιήσουμε και να συνδέσουμε τις εισόδους και τις εξόδους του στα αντίστοιχα καλώδια. Στο παράδειγμα μας χρησιμοποιούμε 4 φορές το υποκύκλωμα του fulladder, χρησιμοποιώντας 4 δηλώσεις της μορφής. b0: fulladder port map(a(0),b(0),ci,s(0),c(1)); Κάθε τέτοια δήλωση ενός υποκυκλώματος περιλαμβάνει ένα όνομα για το υποκύκλωμα ώστε να το ξεχωρίζουμε από τα υπόλοιπα (πχ b0), το όνομα του υποκυκλώματος που χρησιμοποioύμε (πχ fulladder) καθώς και την αντίστοιχηση των καλωδίων του adder4 (είσοδοι, έξοδοι και εσωτερικά σήματα) στις πόρτες του fulladder μέσω της λίστας αντιστοίχισης port map. Στο παράδειγμα μας η λίστα αντιστοίχισης των εισόδων και των εξόδων με εξωτερικά καλώδια γίνεται με βάση τη σειρά δήλωσης των ονομάτων των καλωδίων. Δηλαδή το καλώδιο εισόδου του adder4 A(0) συνδέεται στην είσοδο Α του fulladder όπως φαίνεται από το σχήμα Χ και από τη δήλωση του component fulladder. Αντίστοιχα, το σήμα Ci που είναι 4ο στη λίστα της δήλωση port map για το instance b0 συνδέεται με το 4ο σήμα του component fulladder που είναι η είσοδος C. H VHDL επιτρέπει επίσης τη σύνδεση των καλωδίων στις εισόδους και εξόδους κάθε υποκυκλώματος με βάση το όνομα της κάθε πόρτας εισόδου και εξόδου χωρίς να είναι αναγκαία η τήρηση της σειράς με την οποία δηλώθηκαν οι πόρτες στο component. Για παράδειγμα θα μπορούσαμε να γράψουμε: b0: fulladder port map(a=>a(0), B=>B(0), S=>S(0), Ci=>Ci, C0=>C(1)); Στο παράδειγμα αυτό φαίνεται σε ποια ακριβώς πόρτα συνδέονται τα σήματα του adder4 μέσω της αντιστοίχισης <όνομα πόρτας> => <όνομα σήματος>. Φυσικά σε κάθε περίπτωση πρέπει να προσέξετε ο τύπος της πόρτας στην οποία συνδέεται ένα εξωτερικό καλώδιο να ταιριάζει ακριβώς με τον τύπο του καλωδίου (ή ομάδας καλωδίων αντίστοιχα). Τι θα έπρεπε όμως να κάνουμε στην περίπτωση που θα θέλαμε να σχεδιάσουμε ένα 32μπιτο αθροιστή; Η επαναχρησιμοποίηση 32 πλήρων αθροιστών (fulladder) θα απαιτούσε τη δήλωση 32 υποκυκλώμάτων και τη σύνδεση 5x32 συνολικά καλωδίων, παρόλο που η συνδεσμολογία σε κάθε υποκυκλωμα ακολουθεί μια επαναληπτική δομή. Για να δείτε τη δομή των επαναλήψεων αρκεί να παρατηρήσετε τις συνδέσεις στα υποκυκλώματα b1 και b2 του adder4. O fulladder που βρίσκεται στη θέση i συνδέεται πάντα με τα καλώδια Α(i), Β(i), C(i) ενώ παράγει στην έξοδο του τα καλώδια S(i) και C(i+1) το οποίο θα χρησιμοποιηθεί ως είσοδος από το fulladder της επόμενης θέσης. Επομένως θα μας ήταν πολύ βολικό αν στη VHDL υπήρχε κάποιος τρόπος να δηλώναμε όσα υποκυκλώματα επιθυμούσαμε με έναν επαναληπτικό τρόπο χωρίς να χρειάζεται να δηλώνουμε το καθένα χωριστά. Ευτυχώς ο τρόπος αυτός υπάρχει και ονομάζεται επαναλήψεις γέννησης υποκυκλωμάτων (generate for loops). H δημιουργία του ίδιου αθροιστή των 4 δυαδικών ψηφίων μέσω τέτοιων επαναλήψεων φαίνεται στο παράδειγμα που ακολουθεί. library ieee; use ieee.std_logic_1164.all; entity adder4 is port(a, B: in std_logic_vector(3 downto 0); Ci : in std_logic; S : out std_logic_vector(3 downto 0); Co : out std_logic); end adder4; architecture a1 of adder4 is -- local component declaration for fulladder component fulladder port( A, B, Ci: in std_logic; S, Co: out std_logic ); end component; 12

13 -- internal signals signal C: std_logic_vector(3 downto 0); C(0) <= Ci; bgen: for i in 0 to 3 generate b: fulladder port map(a(i),b(i),c(i),s(i),c(i+1)); end generate; Co <= C(4); end a1; Η δήλωση των υποκυκλωμάτων περιέχεται μέσα σε μια επαναληπτική δομή τύπου for generate στην οποία είμαστε υποχρεωμένοι να δώσουμε ένα όνομα επανάληψης και να ορίσουμε μια μεταβλητή επανάληψης. Τη μεταβλητή δεν απαιτείται να την έχουμε δηλώσει κάπου πιο πριν. <nameofloop>: for <variable> in <limit range> generate... end generate; Αυτό που πρέπει να προσέξουμε είναι τά όρια των επαναλήψεων ΑΡΧΗ downto/tο TEΛΟΣ να είναι στατικά ορισμένα και να μην εξαρτώνται από τις τιμές άλλων σημάτων του κυκλώματος μας. Μην ξεχνάτε ότι ο ρόλος των επαναλήψεων for generate δεν είναι η υλοποίηση των επαναλήψεων ενός αλγορίθμου αλλά η εύκολη δημιουργία ενός συγκεκριμένου αριθμού υποκυκλωμάτων των οποίων το πλήθος και τον τρόπο που συνδέονται τον γνωρίζουμε εξαρχής. Τέλος παρατηρήστε πως στη δήλωση των υποκυκλωμάτων fulladder μέσα στην επανάληψη τύπου for generate χρησιμοποιήσαμε το ίδιο όνομα b. Αυτό δε μας ενοχλεί καθώς το εργαλείο λογικής σύνθεσης θα αντιληφθεί την επαναληπτική διαδικασία και θα δώσει ένα διαφορετικό όνομα σε κάθε υποκύκλωμα (πχ b_0, b_1, ανάλογα με την τιμή του δείκτη της επανάληψης που τα γέννησε). Διαπιστώνοντας τη χρησιμότητα αυτής της επαναληπτικής δήλωσης των υποκυκλωμάτων έρχεται στο νου μας η εξής επιθυμητή ιδιότητα για τις περιγραφές των κυκλωμάτων μας σε VHDL. Πως θα μπορούσαμε να είχαμε περιγράψει σε VHDL μόνο έναν αθροιστή και αλλάζοντας απλά την τιμή μιας μεταβλητής να μπορούσαμε να έχουμε στη διάθεση μας κατά περίπτωση ένα αθροιστή των 4 bits είτε ένα των 32 bits χωρίς να αλλάξουμε ξανά τον κώδικα μας. Κάτι τέτοιο μπορεί να γίνει μέσω της δήλωσης των generic μεταβλητών για το κύκλωμα μας όπως φαίνεται από την περιγραφή σε VHDL ενός αθροιστή των N δυαδικών ψηφίων ο οποίος εσωτερικά αποτελείται από Ν πλήρεις αθροιστές (fulladder). library ieee; use ieee.std_logic_1164.all; entity adder is generic (N:integer := 8); port(a, B: in std_logic_vector(n-1 downto 0); Ci : in std_logic; S : out std_logic_vector(n-1 downto 0); Co : out std_logic); end adder; architecture a1 of adder is -- local component declaration for fulladder component fulladder is port(a, B, Ci: in std_logic; S, Co: out std_logic); end component; signal C: std_logic_vector(n downto 0); C(0) <= Ci; bgen:for i in 0 to N-1 generate b: fulladder port map(a(i),b(i),c(i),s(i),c(i+1)); end generate; Co <= C(N); end a1; Στο παράδειγμα αυτό το μόνο που προσθέσαμε στον κώδικα μας και μας επέτρεψε να γενικεύσουμε τη λειτουργία του 13

14 κυκλώματος μας είναι η δήλωση generic (N: integer := 8); μεταξύ της δήλωσης του entity και της λίστας των εισόδων και εξόδων του. Η μεταβλητή Ν, της οποίας την τιμή δεν επιτρέπεται να αλλάξουμε, είναι ένας σταθερός ακέραιος αριθμός, με βασική τιμή το 8, και περιγράφει το πλήθος των δυαδικών ψηφίων του αθροιστή. Έτσι μπορούμε να τη χρησιμοποιήσουμε για να θέσουμε τα όρια για όλα τα σήματα εισόδου και εξόδου του adder, για τα εσωτερικά καλώδια του καθώς και για τα όρια της επανάληψης for generate. Έτσι δηλώνοντας τα όρια των σημάτων μας συναρτήσει του Ν std_logic_vector(n-1 downto 0) και αποφεύγοντας τη χρήση σταθερών ορίων, όπως std_logic_vector (3 downto 0), μπορούμε να περιγράψουμε αυθαίρετα μικρά ή μεγάλα κυκλώματα τα οποία ακολουθούν πάντα την ίδια δομή. Πως όμως θα χρησιμοποιούσαμε ως υποκύκλωμα την περιγραφή του παραμετροποιημένου adder; Με άλλα λόγια πως μπορώ να αναθέσω μια τιμή στην παράμετρο N του adder ανάλογα με την εφαρμογή που θέλω να τον χρησιμοποιήσω. Ας πάρουμε ως παράδειγμα τη σχεδίαση ενός κυκλώματος πρόσθεση και αφαίρεσης των 32 δυαδικών ψηφίων. Το κύκλωμα αυτό δέχεται ως είσοδο δύο αριθμούς Α και Β. Όταν operation='1' τότε το κύκλωμα τους προσθέτει δίνοντας στην έξοδο S το Α+Β, ενώ όταν οperation='0' τους αφαιρεί δίνοντας στην έξοδο το Α-Β. Για την εκτέλεση της αφαίρεσης η πράξη που εκτελεί είναι η Α + Bb+1. Το κύκλωμα πρόσθεση/αφαίρεσης χτίζεται γύρω το γενικό κύκλωμα αθροιστή (adder) που μόλις περιγράψαμε το οποίο ουσιαστικά εκτελεί την πράξη A + (op xor Β) + οp. Όπου το σήμα op τοποθετείται ως κρατούμενο εισόδου στον αθροιστή adder. Library ieee; use ieee.std_logic_1164.all; entity addersubtractor is port(a : in std_logic_vector(15 downto 0); B : in std_logic_vector(15 downto 0); op : in std_logic; S : out std_logic_vector(15 downto 0); Co : out std_logic ); end addersubtractor; architecture struct of addersubtractor is component adder generic(n: integer); port( A, B: in std_logic_vector(n-1 downto 0); ci : in std_logic; sum : out std_logic_vector(n-1 downto 0); cout: out std_logic); end component; signal Bx: std_logic_vector(15 downto 0); Bx <= B when operation='0' else not B; addx: adder generic map (N=> 15) port map (A => A, B=> Bx, S=>sum, Co=>cout, Ci=>operation); end struct; Για να μπορέσουμε να επαναχρησιμοποιήσουμε τον adder στο νέο κύκλωμα addersubtractor πρέπει πρώτα να τον δηλώσουμε ως διαθέσιμο component. Προσέξτε πως τώρα έχουμε συμπεριλάβει τη δήλωση του component και τη παράμετρο generic. Στη συνέχεια απλά δηλώνουμε τον adder ως ένα υποκύκλωμα με το όνομα addx. Τώρα μαζί με τη λίστα αντιστοίχισης port map είμαστε υποχρεωμένοι να συμπεριλάβουμε και μία τιμή για την παράμετρο N. addx: adder generic map (N=> 15) port map (A => A, B=> Bx, S=>sum, Co=>cout, Ci=>operation); Όπως βλέπετε αυτό συμβαίνει με τη δήλωση generic map (15) το οποίο αναθέτει στο Ν την τιμή 15.H αρχική τιμή 8 που δώσαμε στο N μέσα στο κύκλωμα του adder αγνοείται και αντικαθίσταται από τη νέα τιμή 15. Η αρχική τιμή θα έπαιζε ρόλο μόνο αν ξεχνούσαμε να δηλώσουμε μια τιμή στο Ν μέσω της αντιστοίχισης παραμέτρων generic map. 14

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Library, package και subprograms

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ψηφιακή Λογική και Σχεδίαση

Ψηφιακή Λογική και Σχεδίαση Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 26-7 Ψηφιακή Λογική και Σχεδίαση (σχεδίαση συνδυαστικών κυκλωμάτων) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Το τρανζίστορ

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

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

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

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

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

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

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ. ΜΑΘΗΜΑ 2 ο. ΑΛΓΕΒΡΑ Boole ΛΟΓΙΚΑ ΚΥΚΛΩΜΑΤΑ

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ. ΜΑΘΗΜΑ 2 ο. ΑΛΓΕΒΡΑ Boole ΛΟΓΙΚΑ ΚΥΚΛΩΜΑΤΑ ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ ΜΑΘΗΜΑ 2 ο ΑΛΓΕΒΡΑ Boole ΛΟΓΙΚΑ ΚΥΚΛΩΜΑΤΑ 2009-10 ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ 1 Άλγεβρα Βοοle η θεωρητική βάση των λογικών κυκλωμάτων Η άλγεβρα Βοοle ορίζεται επάνω στο σύνολο

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

i Το τρανζίστορ αυτό είναι τύπου NMOS. Υπάρχει και το συμπληρωματικό PMOS. ; Τι συμβαίνει στο τρανζίστορ PMOS; Το τρανζίστορ MOS(FET)

i Το τρανζίστορ αυτό είναι τύπου NMOS. Υπάρχει και το συμπληρωματικό PMOS. ; Τι συμβαίνει στο τρανζίστορ PMOS; Το τρανζίστορ MOS(FET) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 25-6 Το τρανζίστορ MOS(FET) πύλη (gate) Ψηφιακή και Σχεδίαση πηγή (source) καταβόθρα (drai) (σχεδίαση συνδυαστικών κυκλωμάτων) http://di.ioio.gr/~mistral/tp/comparch/

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ελίνα Μακρή

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

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

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

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

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

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι. Μάθημα 4 ο Πράξεις με bits. Δρ.

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι. Μάθημα 4 ο Πράξεις με bits. Δρ. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας Πληροφορική Ι Μάθημα 4 ο Πράξεις με bits Δρ. Γκόγκος Χρήστος Κατηγορίες πράξεων με bits Πράξεις με δυαδικά ψηφία Αριθμητικές πράξεις

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

Ψηφιακά Συστήματα. 6. Σχεδίαση Συνδυαστικών Κυκλωμάτων

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

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

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

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

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

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

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

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

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

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

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

Ενότητα 9 ΑΡΙΘΜΗΤΙΚΑ & ΛΟΓΙΚΑ ΚΥΚΛΩΜΑΤΑ

Ενότητα 9 ΑΡΙΘΜΗΤΙΚΑ & ΛΟΓΙΚΑ ΚΥΚΛΩΜΑΤΑ Ενότητα 9 ΑΡΙΘΜΗΤΙΚΑ & ΛΟΓΙΚΑ ΚΥΚΛΩΜΑΤΑ Γενικές Γραμμές Προσημασμένοι Ακέραιοι Δυαδικοί Αριθμοί Ημιαθροιστής - Ημιαφαιρέτης Πλήρης Αθροιστής - Πλήρης Αφαιρέτης Αθροιστής Διάδοσης Κρατούμενου Επαναληπτικές

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

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

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

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

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

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

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

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

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

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

Ψηφιακά Κυκλώματα (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Ψηφιακά Κυκλώματα (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Ψηφιακά Κυκλώματα ( ο μέρος) ΜΥΥ-6 Εισαγωγή στους Η/Υ και στην Πληροφορική Ψηφιακά κυκλώματα Οι δύο λογικές τιμές, αντιστοιχούν σε ηλεκτρικές τάσεις Υλοποιούνται με τρανζίστορ ή διόδους: ελεγχόμενοι διακόπτες

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ολοκληρωμένα Κυκλώματα

Ολοκληρωμένα Κυκλώματα Δημοκρίτειο Πανεπιστήμιο Θράκης Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Γ. Δημητρακόπουλος Ολοκληρωμένα Κυκλώματα Πρόοδος - Φθινόπωρο 2017 Θέμα 1 ο Σχεδιάστε το datapath για τον υπολογισμό

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

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

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

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

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

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

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

w x y Υλοποίηση της F(w,x,y,z) με πολυπλέκτη 8-σε-1

w x y Υλοποίηση της F(w,x,y,z) με πολυπλέκτη 8-σε-1 Άσκηση 1 Οι λύσεις απαντήσεις που προτείνονται είναι ενδεικτικές και θα πρέπει να προσθέσετε Α) Αρχικά σχεδιάζουμε τον πίνακα αληθείας της λογικής έκφρασης: w x y z x G1 =x y G2 =z w F = G1 G2 Είσοδοι

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

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

Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων VLSI II 3 η Εργαστηριακή Άσκηση Σχεδίαση και Υλοποίηση μίας ALU δύο εισόδων VHDL Εργαστήριο_2 2012-2013 1 Άδειες Χρήσης Το παρόν υλικό διατίθεται με τους όρους της άδειας

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

Αθροιστές. Ημιαθροιστής

Αθροιστές. Ημιαθροιστής Αθροιστές Η πιο βασική αριθμητική πράξη είναι η πρόσθεση. Για την πρόσθεση δύο δυαδικών ψηφίων υπάρχουν τέσσερις δυνατές περιπτώσεις: +=, +=, +=, +=. Οι τρεις πρώτες πράξεις δημιουργούν ένα άθροισμα που

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

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

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

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

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

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

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

ΘΕΜΑΤΑ & ΕΝΔΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ

ΘΕΜΑΤΑ & ΕΝΔΕΙΚΤΙΚΕΣ ΛΥΣΕΙΣ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Θεματική Ενότητα Ακαδημαϊκό Έτος 2010 2011 Ημερομηνία Εξέτασης Κυριακή 26.6.2011 Ώρα Έναρξης Εξέτασης

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

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

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

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

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

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

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

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

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

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

Γ2.1 Στοιχεία Αρχιτεκτονικής. Γ Λυκείου Κατεύθυνσης

Γ2.1 Στοιχεία Αρχιτεκτονικής. Γ Λυκείου Κατεύθυνσης Γ2.1 Στοιχεία Αρχιτεκτονικής Γ Λυκείου Κατεύθυνσης Ορισμός άλγεβρας Boole Η άλγεβρα Boole ορίζεται, ως μία αλγεβρική δομή A, όπου: (α) Το Α είναι ένα σύνολο στοιχείων που περιέχει δύο τουλάχιστον στοιχεία

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

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

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

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

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

HY430 Εργαστήριο Ψηφιακών Κυκλωμάτων. HY430 Εργαστήριο Ψηφιακών Κυκλωμάτων Διδάσκων: Χ. Σωτηρίου, Βοηθός: (θα ανακοινωθεί) http://inf-server.inf.uth.gr/courses/ce430/ 1 Περιεχόμενα Κυκλώματα Πρόσθεσης Half-adder Full-Adder Σειριακό Κρατούμενο

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

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων Γιάννης Λιαπέρδος TEI Πελοποννήσου Σχολή Τεχνολογικών Εφαρμογών Τμήμα Μηχανικών Πληροφορικής ΤΕ Η έννοια του συνδυαστικού

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

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

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

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

Ενότητα 7 ΑΠΟΚΩΔΙΚΟΠΟΙΗΤΕΣ - ΚΩΔΙΚΟΠΟΙΗΤΕΣ ΑΠΟΠΛΕΚΤΕΣ - ΠΟΛΥΠΛΕΚΤΕΣ

Ενότητα 7 ΑΠΟΚΩΔΙΚΟΠΟΙΗΤΕΣ - ΚΩΔΙΚΟΠΟΙΗΤΕΣ ΑΠΟΠΛΕΚΤΕΣ - ΠΟΛΥΠΛΕΚΤΕΣ Ενότητα 7 ΑΠΟΚΩΔΙΚΟΠΟΙΗΤΕΣ - ΚΩΔΙΚΟΠΟΙΗΤΕΣ ΑΠΟΠΛΕΚΤΕΣ - ΠΟΛΥΠΛΕΚΤΕΣ Γενικές Γραμμές Δυαδικοί Αριθμοί έναντι Δυαδικών Κωδίκων Δυαδικοί Αποκωδικοποιητές Υλοποίηση Συνδυαστικής Λογικής με Δυαδικό Αποκωδικοποιητή

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

9. OIΚΟΥΜΕΝΙΚΕΣ ΠΥΛΕΣ ΠΟΛΛΑΠΛΩΝ ΕΙΣΟ ΩΝ

9. OIΚΟΥΜΕΝΙΚΕΣ ΠΥΛΕΣ ΠΟΛΛΑΠΛΩΝ ΕΙΣΟ ΩΝ ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ 61 9. OIΚΟΥΜΕΝΙΚΕΣ ΠΥΛΕΣ ΠΟΛΛΑΠΛΩΝ ΕΙΣΟ ΩΝ I. Βασική Θεωρία Οι πύλες NAND και NOR ονομάζονται οικουμενικές πύλες (universal gates) γιατί κάθε συνδυαστικό κύκλωμα μπορεί να υλοποιηθεί

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

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

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

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

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

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

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

Ψευδοκώδικας. November 7, 2011

Ψευδοκώδικας. November 7, 2011 Ψευδοκώδικας November 7, 2011 Οι γλώσσες τύπου ψευδοκώδικα είναι ένας τρόπος περιγραφής αλγορίθμων. Δεν υπάρχει κανένας τυπικός ορισμός της έννοιας του ψευδοκώδικα όμως είναι κοινός τόπος ότι οποιαδήποτε

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

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

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

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

ΠΛΗ21 Κεφάλαιο 2. ΠΛΗ21 Ψηφιακά Συστήματα: Τόμος Α Κεφάλαιο: Παράσταση Προσημασμένων Αριθμών Συμπληρώματα

ΠΛΗ21 Κεφάλαιο 2. ΠΛΗ21 Ψηφιακά Συστήματα: Τόμος Α Κεφάλαιο: Παράσταση Προσημασμένων Αριθμών Συμπληρώματα Ψηφιακά Συστήματα: Τόμος Α Κεφάλαιο: 2 2.3.4 Παράσταση Προσημασμένων Αριθμών Συμπληρώματα Στόχοι του κεφαλαίου είναι να γνωρίσουμε: Τι είναι ένας Συμπλήρωμα ενός αριθμού πρακτικά Τι είναι Συμπλήρωμα ως

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

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

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

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

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

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

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

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

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

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

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

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

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

Μάθημα 5: Χαρακτηριστικά της Κ.Μ.Ε.

Μάθημα 5: Χαρακτηριστικά της Κ.Μ.Ε. Μάθημα 5: Χαρακτηριστικά της Κ.Μ.Ε. 5.1 Το ρολόι Κάθε μία από αυτές τις λειτουργίες της Κ.Μ.Ε. διαρκεί ένα μικρό χρονικό διάστημα. Για το συγχρονισμό των λειτουργιών αυτών, είναι απαραίτητο κάποιο ρολόι.

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

K24 Ψηφιακά Ηλεκτρονικά 6: Πολυπλέκτες/Αποπολυπλέκτες

K24 Ψηφιακά Ηλεκτρονικά 6: Πολυπλέκτες/Αποπολυπλέκτες K24 Ψηφιακά Ηλεκτρονικά 6: Πολυπλέκτες/Αποπολυπλέκτες TEI Πελοποννήσου Σχολή Τεχνολογικών Εφαρμογών Τμήμα Μηχανικών Πληροφορικής ΤΕ ΤΕΧΝΟΛΟΓΙΚΟ Περιεχόμενα 1 2 3 4 Λειτουργία Πολυπλέκτης (Mul plexer) Ο

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

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

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

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

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

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

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

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

Συνδυαστικά Κυκλώματα 3 Συνδυαστικά Κυκλώματα 3.1. ΣΥΝΔΥΑΣΤΙΚΗ Λ ΟΓΙΚΗ Συνδυαστικά κυκλώματα ονομάζονται τα ψηφιακά κυκλώματα των οποίων οι τιμές της εξόδου ή των εξόδων τους διαμορφώνονται αποκλειστικά, οποιαδήποτε στιγμή,

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

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

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

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

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

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

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

Περίληψη. ΗΜΥ 210: Λογικός Σχεδιασµός, Εαρινό Εξάµηνο 2005. υαδική Αφαίρεση. υαδική Αφαίρεση (συν.) Ακόµη ένα παράδειγµα Αφαίρεσης.

Περίληψη. ΗΜΥ 210: Λογικός Σχεδιασµός, Εαρινό Εξάµηνο 2005. υαδική Αφαίρεση. υαδική Αφαίρεση (συν.) Ακόµη ένα παράδειγµα Αφαίρεσης. ΗΜΥ-210: Λογικός Σχεδιασµός Εαρινό Εξάµηνο 2005 Κεφάλαιο 5 -ii: Αριθµητικές Συναρτήσεις και Κυκλώµατα Πανεπιστήµιο Κύπρου Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Αφαίρεση δυαδικών Περίληψη

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

Θέμα 1ο (3 μονάδες) Υλοποιήστε το ακoλουθιακό κύκλωμα που περιγράφεται από το κατωτέρω διάγραμμα

Θέμα 1ο (3 μονάδες) Υλοποιήστε το ακoλουθιακό κύκλωμα που περιγράφεται από το κατωτέρω διάγραμμα Ηλεκτρολόγοι Μηχανικοί ΕΜΠ Λογική Σχεδίαση Ψηφιακών Συστημάτων Διαγώνισμα επαναληπτικής εξέτασης 2016 Θέμα 1ο (3 μονάδες) Υλοποιήστε το ακoλουθιακό κύκλωμα που περιγράφεται από το κατωτέρω διάγραμμα καταστάσεων,

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

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

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

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

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

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

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

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

ΣΧΕΔΙΑΣΗ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΣΧΕΔΙΑΣΗ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΣΥΝΔΥΑΣΤΙΚΗ ΛΟΓΙΚΗ 2017, Δρ. Ηρακλής Σπηλιώτης Συνδυαστικά και ακολουθιακά κυκλώματα Τα λογικά κυκλώματα χωρίζονται σε συνδυαστικά (combinatorial) και ακολουθιακά (sequential).

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

ΒΑΣΙΚΕΣ ΑΡΧΕΣ ΨΗΦΙΑΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ. Κεφάλαιο 3

ΒΑΣΙΚΕΣ ΑΡΧΕΣ ΨΗΦΙΑΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ. Κεφάλαιο 3 ΒΑΣΙΚΕΣ ΑΡΧΕΣ ΨΗΦΙΑΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Κεφάλαιο 3 Δυαδική λογική Με τον όρο λογική πρόταση ή απλά πρόταση καλούμε κάθε φράση η οποία μπορεί να χαρακτηριστεί αληθής ή ψευδής με βάση το νόημα της. π.χ. Σήμερα

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

Αλγόριθμος. Αλγόριθμο ονομάζουμε τη σαφή και ακριβή περιγραφή μιας σειράς ξεχωριστών οδηγιών βημάτων με σκοπό την επίλυση ενός προβλήματος.

Αλγόριθμος. Αλγόριθμο ονομάζουμε τη σαφή και ακριβή περιγραφή μιας σειράς ξεχωριστών οδηγιών βημάτων με σκοπό την επίλυση ενός προβλήματος. Αλγόριθμος Αλγόριθμο ονομάζουμε τη σαφή και ακριβή περιγραφή μιας σειράς ξεχωριστών οδηγιών βημάτων με σκοπό την επίλυση ενός προβλήματος. Εντολές ή οδηγίες ονομάζονται τα βήματα που αποτελούν έναν αλγόριθμο.

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

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

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

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

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

ΕΡΓΑΣΤΗΡΙΟ ΗΛΕΚΤΡΟΝΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΕΡΓΑΣΤΗΡΙΟ ΗΛΕΚΤΡΟΝΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΨΗΦΙΑΚΑ ΟΛΟΚΛΗΡΩΜΕΝΑ ΗΛΕΚΤΡΟΝΙΚΑ ΚΑΙ ΣΥΣΤΗΜΑΤΑ ΟΜΑ Α Α Αριθµητική Λογική Μονάδα των 8-bit 1. Εισαγωγή Γενικά µια αριθµητική λογική µονάδα (ALU, Arithmetic Logic Unit)

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

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

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

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

Εκτέλεση πράξεων. Ψηφιακά Ηλεκτρονικά και Δυαδική Λογική. Πράξεις με δυαδικούς αριθμούς. Πράξεις με δυαδικούς αριθμούς

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

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

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

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

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

Ηλεκτρολόγοι Μηχανικοί ΕΜΠ Λογική Σχεδίαση Ψηφιακών Συστημάτων Διαγώνισμα κανονικής εξέτασης Θέμα 1ο (3 μονάδες)

Ηλεκτρολόγοι Μηχανικοί ΕΜΠ Λογική Σχεδίαση Ψηφιακών Συστημάτων Διαγώνισμα κανονικής εξέτασης Θέμα 1ο (3 μονάδες) Ηλεκτρολόγοι Μηχανικοί ΕΜΠ Λογική Σχεδίαση Ψηφιακών Συστημάτων Διαγώνισμα κανονικής εξέτασης 2016 Θέμα 1ο (3 μονάδες) Υλοποιήστε το ακoλουθιακό κύκλωμα που περιγράφεται από το ανωτέρω διάγραμμα καταστάσεων,

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

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

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

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

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων 2 Βασικές Εντολές 2.1. Εντολές Οι στην Java ακολουθούν το πρότυπο της γλώσσας C. Έτσι, κάθε εντολή που γράφουμε στη Java θα πρέπει να τελειώνει με το ερωτηματικό (;). Όπως και η C έτσι και η Java επιτρέπει

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