ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΛΟΠΟΝΝΗΣΟΥ ΣΧΟΛΗ ΟΙΚΟΝΟΜΙΑΣ, ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΛΟΓΙΚΗ ΣΧΕΔΙΑΣΗ Αναφορά Όγδοης Εργαστηριακής Άσκησης: Αποκωδικοποιητής ΑΛΕΞΑΝΔΡΑΚΗΣ ΝΙΚΟΣ Α.Μ 2022201300006 Σελίδα 1 από 10
Χειμερινό εξάμηνο 2014-2015 Περιεχόμενα Στόχος... 3 Μεθοδολογία... 3 Λογικά Κυκλώματα... 3 Κυκλώματα προς έλεγχο... 6 Κώδικες κυκλωμάτων... 6 κώδικας ελέγχου... 7 Simulation... 8 Συμπεράσματα... 9 Σελίδα 2 από 10
Στόχος Στόχος της άσκησης είναι η υλοποίηση της συνάρτησης f(a,b,c)=(1,2,3,6,7) με χρήση δύο αποκωδικοποιητών 2 εισόδων και επίτρεψη. Μεθοδολογία Ως στόχος της άσκησης είναι η υλοποίηση της συνάρτησης f(a,b,c)=(1,2,3,6,7) με χρήση δύο αποκωδικοποιητών 2 εισόδων και επίτρεψη. Παρατηρούμε ότι η συνάρτηση έχει 3 εισόδους πράγμα που σημαίνει ότι για να υλοποιηθεί με αποκωδικοποιητές 2 εισόδων θα πρέπει να δημιουργηθούν δυο αποκωδικοποιητές δυο εισόδων οι οπoοι να είναι σε ένα κοινό κύκλωμα. Πιο αναλυτικά, αρχικά θα υλοποιήσουμε έναν αποκωδικοποιητή 2 εισόδων και με επίτρεψη ο οποίος παράγει 4 ελαχιστόρους, μιας και αυτή είναι η ιδιότητα ενός αποκωδικοποιητή. Στην συνέχεια υλοποιούμε ακόμα έναν αποκωδικοποιητή 2 εισόδων με επίτρεψη και βάζουμε τους δύο αποκωδικοποιητές σε ένα κοινό κύκλωμα. Μετά αφού έχουν προκύψει όλοι οι ελαχιστόροι της συνάρτησης, βλέπουμε ποιοι ελαχιστόροι δίνονται από την συνάρτηση σε μορφή αθροίσματος ελαχιστόρων και κοιτάμε σε ποιες εξόδους του αποκωδικοποιητή αντιστοιχούν και τους αθροίζουμε με μια πύλη OR.Στη συνέχεια υλοποιούμε τα λογικά κυκλώματα των παραπάνω και έπειτα τα κυκλώματα προς έλεγχο, κατασκευάζουμε τον κώδικα ελέγχου που θα χρησιμοποιηθούν στο synapticad για την προσομοίωση. Λογικά Κυκλώματα Λογικό κύκλωμα αποκωδικοποιητή 2 εισόδων με επίτρεψη: Το παρακάτω κύκλωμα περιγράφει τη λειτουργία ενός αποκωδικοποιητή 2 εισόδων Α,Β και επίτρεψη C. Τα s0,s1,s2,s3 Σελίδα 3 από 10
είναι οι έξοδοι του κυκλώματος δηλαδή οι ελαχιστόροι που προκύπτουν Το παραπάνω κύκλωμα μπορεί χάριν συντομίας και ευκολίας να παρασταθεί και έτσι : Τα A,B είναι οι είσοδοι, το C είναι η επίτρεψη και τα s0,s1,s2,s3 οι έξοδοι δηλαδή οι ελαχιστόροι. Υλοποίηση αποκωδικοποιητή 3 εισόδων με χρήση δύο αποκωδικοποιητών 2 εισόδων και επίτρεψη : Το παρακάτω κύκλωμα παρουσιάζει την υλοποίηση του αποκωδικοποιητή 3 εισόδων ή 3 σε 8 με χρήση 2 αποκωδικοποιητών και επίτρεψη. Οι είσοδοι είναι οι A,B και η επίτρεψη είναι το C. Τα s0,s1,s2,s3,s4,s5,s6,s7 αποτελούν τους εξόδους του αποκωδικοποιητή δηλαδή τους ελαχιστόρους. Σελίδα 4 από 10
s0=a b c s1=a bc s2=ab c s3=abc s4=a b c s5=a bc s6=ab c s7=abc Η συνάρτηση f(a,b,c)=σ(1,2,3,6,7)=a b c+a bc+a bc +abc+abc έχει ως εξόδους στο παραπάνω κύκλωμα τους ελαχιστόρους : a b c,a bc, a bc,abc,abc οι οποίοι είναι οι έξοδοι s0,s1,s3,s5,s7 τα οποία αθροίζουμε με μια πύλη OR ώστε να υλοποιηθεί η συνάρτηση. Λογικό κύκλωμα αποκωδικοποιητή υλοποίησης συνάρτησης με χρήση αποκωδικοποιητή: Το παρακάτω κύκλωμα παρουσιάζει την υλοποίηση του αποκωδικοποιητή 3 εισόδων ή 3 σε 8 με χρήση 2 αποκωδικοποιητών και επίτρεψη. Οι είσοδοι είναι οι A,B και η επίτρεψη είναι το C. Τα s0,s1,s2,s3,s4,s5,s6,s7 αποτελούν τους εξόδους του αποκωδικοποιητή δηλαδή τους ελαχιστόρους. Η τελευταία πύλη OR χρησιμοποιείται για την άθροιση των ελαχιστόρων που εμφανίζονται σε μορφή αθροίσματος ελαχιστόρων. Και τέλος η έξοδος f είναι το αποτέλεσμα της υλοποίησης της συνάρτησης. Σελίδα 5 από 10
Κυκλώματα προς έλεγχο Κύκλωμα προς έλεγχο αποκωδικοποιητή 2 εισόδων με επίτρεψη: Κύκλωμα προς έλεγχο υλοποίησης συνάρτησης με χρήση αποκωδικοποιητή: Κώδικες κυκλωμάτων Κώδικας κυκλώματος αποκωδικοποιητή ε εισόδων με επίτρεψη: module DEC(s0,s1,s2,s3,A,B,C); Σελίδα 6 από 10
input A,B,C; output s0,s1,s2,s3; wire not_a,not_b,not_c; not g1(not_a,a); not g2(not_b,b); not g3(not_c,c); and g4(s0,not_a,not_b,not_c); and g5(s1,not_a,b,not_c); and g6(s2,a,not_b,not_c); and g7(s3,a,b,not_c); endmodule Κώδικας κυκλώματος υλοποίησης συνάρτησης με αποκωδικοποιητή: module askhshe8(f,a,b,c); input A,B,C; output f; not g1(not_c,c); DEC DEC1(s0,s1,s2,s3,A,B,not_C); DEC DEC2(s4,s5,s6,s7,A,B,C); or g2(f,s0,s1,s3,s5,s7); endmodule κώδικας ελέγχου Ο κώδικας ελέγχου, είναι βασικό στοιχείο για την δημιουργία του πίνακα αληθείας της συνάρτησης καθώς συνδέεται άμεσα με τον κώδικα της συνάρτησης διότι δίνει όλες τις δυνατές τιμές που Σελίδα 7 από 10
μπορούν να πάρουν οι μεταβλητές εισόδου του αποκωδικοποιητή. Ο κώδικας είναι ο εξής: module askhshe8stimulus(); reg ina,inb,inc; wire F; askhshe8 uut(.a(ina),.b(inb),.c(inc),.f(f)); initial begin ina=0; inb=0; inc=0; #10 ina=0; inb=0; inc=1; #10 ina=0; inb=1; inc=0; #10 ina=0; inb=1; inc=1; #10 ina=1; inb=0; inc=0; #10 ina=1; inb=0; inc=1; #10 ina=1; inb=1; inc=0; #10 ina=1; inb=1; inc=1; #10 $finish; end endmodule ο παραπάνω κώδικας δίνει τις τιμές στις εισόδους της συνάρτησης προκειμένου να υλοποιηθεί η δοθείσα συνάρτηση. Simulation Σελίδα 8 από 10
Εδώ παρουσιάζεται το διάγραμμα από το τρέξιμο των αρχείων κώδικα των κυκλωμάτων μέσω του synapricad. Πιο συγκεκριμένα, οι γραμμές με ονόματα test.inα, test.inb και test.inc αποτελούν τις εισόδους του αποκωδικοποιητή και η γραμμή με όνομα f την έξοδο. Αναλυτικότερα η γραμμή με όνομα test.inc ονομάζεται είσοδος επίτρεψης και είναι η είσοδος η οποία ανάλογα με την τιμή που της αποδίδεται κάθε φορά ενεργοποιεί και τον αντίστοιχο αποκωδικοποιητή. Από το διάγραμμα αυτό παρατηρούμε ότι στην έξοδο, δηλαδή στην γραμμή με όνομα f, εμφανίζεται 1 μονάχα στα σημεία που αντιστοιχούν στους ελαχιστόρους που δίνονται από την συνάρτηση σε μορφή αθροίσματος ελαχιστόρων. Συμπεράσματα Ως στόχος της άσκησης ήταν η υλοποίηση της συνάρτησης f(a,b,c)=(1,2,3,6,7) με χρήση αποκωδικοποιητών δύο εισόδων και επίτρεψη. Αρχικά σχεδιάσαμε το κύκλωμα του αποκωδικοποιητή δυο εισόδων με επίτρεψη ο οποίος έχει ως έξοδο τους τέσσερις από τους οχτώ ελαχιστόρους που έχει μια συνάρτηση τριών εισόδων. Στη συνέχεια προκειμένου να προκύψουν και οι υπόλοιποι ελαχιστόροι δημιουργήσαμε ακόμα ένα αποκωδικοποιητή 2 εισόδων με επίτρεψη και δημιουργήσαμε έναν κύκλωμα το οποίο να περιλαμβάνει και τους δύο αποκωδικοποιητές. Έπειτα Σελίδα 9 από 10
αθροίζουμε τους εξόδους του αποκωδικοποιητή που αντιστοιχούν στους ελαχιστόρους που δίνονται. Κλείνοντας παρατηρούμε από το διάγραμμα ότι η έξοδος είναι ίση με 1 μονάχα στις τιμές που δίνονται από τη συνάρτηση. Σελίδα 10 από 10