Lecture Notes (Updated April 2011)
-
Upload
apostolos-tsaoussis -
Category
Documents
-
view
185 -
download
0
Transcript of Lecture Notes (Updated April 2011)
ΣΧΕΔΙΑΣΗ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝΣΧΕΔΙΑΣΗ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ
Οικονομικό Πανεπιστήμιο ΑθηνώνΤμήμα Πληροφορικής
Εαρινό Εξάμηνο
Ψηφιακή Σχεδίαση1
Κεφάλαιο 1Κεφάλαιο 1
• Ιστορία των Η/Υ• Ολοκληρωμένα Κυκλώματα/ΣυστήματαΟλοκληρωμένα Κυκλώματα/Συστήματα• Από λυχνίες σε TransistorsΚύ λ Σ δί Ε λ ί• Κύκλος Σχεδίασης και Εργαλεία Αυτοματοποιημένης Σχεδίασης
• Σύνοψη μαθήματος
Ψηφιακή Σχεδίαση2
Βιογραφικό των ...Υπολογιστών• 1880-1940: Θεωρία (μαθηματικά) υπολογιστών
Λυχνία• 1946: ENIAC1 Η/Υ (Univ. of Pennsylvania, 20,000 λυχνίες)
• 1947: Ανακάλυψη του transistor (Bardeen, Brattain, Shockley)
Λυχνία(tube)
Ψηφιακή Σχεδίαση3
• 1951: ILIAC-Ι Η/Υ (Univ. of Illinois) Illiac-I
Βιογραφικό των ...Υπολογιστών
• 1953-54: η IBM αρχίζει να κατασκευάζει Η/Υ, δημιουργεί την Fortran γλώσσα προγραμματισμούγ ρ γρ μμ μ
• 1958: Ανακάλυψη ολοκληρωμένων (chip)
• 1962: Spacewar το πρώτο ηλεκτρονικό παιχνίδι
• 1969: Arpanet ο πρόδρομος του Internet(U i f C lif i L A l )(Univ. of California, Los Angeles)
• 1970: Νόμος του Moore
• 1971: Δημιουργία του UNIX (Univ. of California, Berkeley) Motherboard ολοκληρωμένων
Ψηφιακή Σχεδίαση4
Βιογραφικό των ...Υπολογιστών• 1976: Ο πρώτος Apple Η/Υ
• 1979: WordStar ο πρώτος επεξεργαστής κειμένου
Appleκειμένου
• 1981: Το πρώτο PC από την IBM
1985 Mi f Wi d 1• 1985: Microsoft Windows v.1
• 1988: Περισσότερα απο 1.000.000 transistors σε μικροεπεξαργαστή
• 1992: Δημιουργία του Mosaic (τώρα Netscape) IBM
• 2000: Νανοτεχνολογία και MEMS. H/Y με DNA και Κβαντικοί H/Y.
• 2006: Περισσότερα απο 1 000 000 000
Ψηφιακή Σχεδίαση5
• 2006: Περισσότερα απο 1.000.000.000transistors σε μικροεπεξαργαστή
Transistor
• Το transistor είναι ένας διακόπτης (ανοικτός ή κλειστός, 0 ή 1)ς ης ( ς ή ς, ή )
Ψηφιακή Σχεδίαση6
Ιστορια Η/Υ: Transistor
Ψηφιακή Σχεδίαση7
1956 Nobel Prize, Physics (J. Bardeen, W. Shockley, W. Brattain)
Ιστορια Η/Υ: Το πρώτο IC
Jack Kilby (Nov. 8, 1923- June 7, 2005) 2000 Nobel La reate Germani m 1T 1C 3R Oscillator 0 04 inch X 0 06 inch 1958
Ψηφιακή Σχεδίαση9
Laureate,Germanium,1T, 1C, 3R, Oscillator, 0.04 inch X 0.06 inch, 1958.
IC = Integrated Circuit (Ολοκληρωμένο Κύκλωμα)
Λογικές Πύλες (Logic Gates) • Χρησιμοποιώντας πολλά transistor φτιάχνουμε λογικές πύλες
• Σχεδιασμός πύλης NAND με 2 transistors (μώβ τετράγωνα):
transistor
Ψηφιακή Σχεδίαση12
Ολοκληρωμένα Κυκλώματα (VLSI)
Πολλές (>1000000) πύλες μαζί φτιάχνουν ολοκληρωμένα κυκλώματα (Very Large Scale of Integration) ή VLSI chips που χρησιμοποιούμε σε κάθε ηλεκτρική g g ) ή p χρη μ μ η ρ ήσυσκευή (mobile, TV, αυτοκίνητα, υπολογιστές, κλπ)
Ψηφιακή Σχεδίαση13
Ολοκληρωμένα Κυκλώματα IC (VLSI)Κατανάλωση Ισχύος (power consumption) System-on-Chip (SoC):
Ψηφιακή Σχεδίαση17
Ολοκληρωμένα Κυκλώματα IC (VLSI)Λόγω υψηλής κατανάλωσης, σε μοντέρνα ICs εισάγουμε μικράψυκτικά συστήματα (microcoolers)
Microcoolers
ψυκτικά συστήματα (microcoolers)
Microcoolers
Ψηφιακή Σχεδίαση18
Ολοκληρωμένα Κυκλώματα IC (VLSI)Επίδραση τριών microcooler στην θερμοκρασία ανά nm2
Ψηφιακή Σχεδίαση19
Νόμος του Moore (1970)μ ς ( )Ο αριθμός τωνtransistor στο ίδιο ΔΙΠΛΑΣΙΑΖΕΤΑΙ
...κάθε 2χρόνιαtransistor στο ίδιο
χώρο chip...ΔΙΠΛΑΣΙΑΖΕΤΑΙ χρόνια
Ψηφιακή Σχεδίαση20
Gordon Moore
Νόμος του Moore (1969)
Semiconductor Research Corporation:
1999 2001 2003 2006 2009 2012
Μήκος Transistor
0.14 μm 0.12μm 0.10μm 0.07μm= 70nm
0.05μm= 50nm
0.035μm= 35nm
Transistorανά cm2
14 εκατ. 16 εκατ. 24 εκατ. 40 εκατ. 64 εκατ. 100 εκατ.
Μέγεθος chip
800 mm2
850 mm2
900mm2
1000mm2
1100mm2
1300mm2
Ψηφιακή Σχεδίαση21
Ολοκληρωμένα Κυκλώματα (VLSI)
Για να ενώσουμε όλα αυτά τα transistors (>200000000 transistors), για να τα τροφοδοτήσουμε με ρεύμα κλπ χρησιμοποιούμε 6-8 επίπεδατα τροφοδοτήσουμε με ρεύμα, κλπ χρησιμοποιούμε 6-8 επίπεδα (“οδόστρωματα”) δρομολόγησης (interconnect) μεταλλικών καλωδίων.
Ψηφιακή Σχεδίαση25
Ολοκληρωμένα Κυκλώματα (VLSI)Τα καλώδια μεταξύ διαφορετικών επιπέδων συνδέονται μέσω vias (όπως η έξοδος στην Εθνική οδό)μ ( ς η ξ ς η ή )
Μέτταλο 1Μέτταλο 2
Μέτταλο 1
via
Ψηφιακή Σχεδίαση26
Ολοκληρωμένα Κυκλώματα (VLSI)
Το μήκος μετάλλου το 2008 θα ξεπεράσει τα 10km ανά chip (!)
24
100
24
10
m
Μήκος μετάλου(meters/chip)
0.81
Km (meters/chip)
01995 2000 2005 2010 2015
Year
Ψηφιακή Σχεδίαση27
Max Συνολικό Metal Length Interconnect ανά chip (Km)Year
Ολοκληρωμένα Κυκλώματα (VLSI)Πολλά ολοκληρωμένα VLSI μαζί παρασκευάζονται σε δίσκους πυριτίου (wafer) πριν «κοπούν» και συσκευαστούν σε chipsχρησιμοποιώντας πολύπλοκες φωτολιθογραφικές διαδικασίες.
Κάθε τετράγωνο είναι ένα ολοκληρωμένο VLSIμε δεκάδες εκατομύριαμε δεκάδες εκατομύριαtransistors
wafer
Ψηφιακή Σχεδίαση28
Ολοκληρωμένα Κυκλώματα (VLSI)
Τα εργοστάσια κατασκευής ολοκληρωμένων κοστίζουν δισεκ. €
Ψηφιακή Σχεδίαση29
Σχεδίαση των VLSI
• Για την σχεδίαση των VLSI χρησιμοποιούνται αυτοματοποιημέναη χ η χρη μ μ ημεργαλεία (Computer-Aided Design ή CAD) όπως:
• εργαλεία σύνθεσης προδιαγραφών (high level synthesis)• εργαλεία σύνθεσης προδιαγραφών (high level synthesis)• εργαλεία σύνθεσης σε επίπεδο λογικών πυλών (logic synthesis)• εργαλεία σύνθεσης σε επίπεδο transistor (physical synthesis)• εργαλεία ανάλυσης/προσομοίωσης/βελτιστοποίησης • χρόνου, χώρου και κατανάλωσης ισχύος
(timing, area and power analysis/simulation/optimization)( g, p y p )• εργαλεία επαλήθευσης (verification)• εργαλεία τεστ (Automated Test Pattern Generation (ATPG))• εργαλεία debugging
Ψηφιακή Σχεδίαση30
• εργαλεία debugging
Σχεδίαση των VLSIΤα CAD εργαλεία είναι ειδικά προγράμματα που συμπληρώνουν την ανθρώπινη
ίεμπειρία
ΣχηματικόΣχηματικό(schematic)
VSLICADμε το CAD
εργαλείο QuartusIIπου θα
χρησι/με σταεργαστήρια
Ψηφιακή Σχεδίαση31
εργαστήρια
Κύκλος (Ροή) Σχεδίασης VLSIΠροδιαγραφές (specification) σε Γλώσσες προγρα/σμού VHDL,
ARCHITECTURE Function of Example ISBEGIN
f <= ((x1 OR x2) AND x3);ς ρ γρ μ ,Verilog, SystemC, κλπ
f <= ((x1 OR x2) AND x3);END Example;
Σύνθεση και βελτιστοποίηση σε επίπεδο λογικών πυλών
x 1 x 2 x 3 f x 1 x 2 + ( ) x 3 ×=
Σύνθεση και βελτιστοποίηση
2V
INOUT
σε επίπεδο transistor
Ψηφιακή Σχεδίαση33
Κατασκευή chip (fabrication)
Κύκλος (Ροή) Σχεδίασης VLSI
Hi h L l S h i /O i i iHigh Level Synthesis/Optimizationεπαλήθευση(verification)
Logic Gate Synthesis/Optimization
επαλήθευση
Physical Synthesis/Optimization
επαλήθευση
Fabrication (chip)test
Ψηφιακή Σχεδίαση34
Κύκλος (Ροή) Σχεδίασης VLSI
• Τα πολύπλοκα αυτά συστήματα δεν σχεδιάζονται μονολιθικάαλλά ιεραρχικά σε διαφορετικά blocks και διάφορες βαθμίδες
• Καθώς προχωρούμε στον κύκλο σχεδίασης, χρειάζεται νας ρ χ ρ μ χ ης, χρ ζεπαληθεύσουμε το σχέδιο και να το προσομοιώσουμε για χρόνο και κατανάλωση ενέργειας απέναντι στις προδιαγραφές
• Τα περισσότερα προβλήματα του κύκλουσχεδίασης είναι «πολύ δύσκολα»(NP-Complete)
Ψηφιακή Σχεδίαση35
Microprocessor Heat Shield
Κύκλος (Ροή) Σχεδίασης VLSI
Partition
Design conceptA
Design one block Design one block
Partition B
C
ιεραρχικήσχεδίαση
Design interconnection between blocks
Functional simulation of complete system
Correct?
Physical mapping
No
Yes D
Timing simulation
Correct? No
Yes
Ψηφιακή Σχεδίαση36
Implementation
Η Αγορά Σήμερα ....ΕνσωματωμέναPC/MAC, κλπServers
892 862
1122
1000
1200Servers
488
892 862
600
800
290
93
488
114 135 129 131200
400
600
933
1143
1354
1294
1315
0
200
1998 1999 2000 2001 2002
Ψηφιακή Σχεδίαση37
Σύνοψη Μαθήματος• Λογικά κυκλώματα, συστήματα και Άλγεβρα Boole (Κεφ. 2)
• Τεχνολογίες υλοποίησης transistor (Κεφ. 3)
• Βελτιστοποίση με αδιάφορους όρους και πίνακες Karnaugh η μ φ ρ ς ρ ς ς g(Κεφ. 4)
• Παράσταση Αριθμών και κυκλώματα (Κεφ. 5)Παράσταση Αριθμών και κυκλώματα (Κεφ. 5)
• Δομικές βαθμίδες Συνδιαστικών Κυκλωμάτων (Κεφ. 6)
• Καταχωρητές και Ακολουθιακά κυκλώματα (Κεφ. 7 και 8)
Μ θ δ λ ί ύ VHDL (Π Α)
Ψηφιακή Σχεδίαση39
• Μεθοδολογία προγραμματισμού σε VHDL (Παρ. Α)
Κεφάλαιο Κεφάλαιο 22
• Μεταβλητές και Συναρτήσεις Μεταβλητών• Πίνακες ΑληθείαςΠίνακες Αληθείας• Άλγεβρα του Boole
Mi M• Minterms και Maxterms• Sum-of-Products και Products-of-Sums
Ψηφιακή Σχεδίαση42
Διακόπτες
10
S S
xPower supply
S L
x 1 = x 0 =
Δυο καταστάσεις ενός διακόπτη
x
Μπορεί κάποιος νασυνδυάσει διακόπτες
δ ήS
PowerS
L 1 AND 2για να δημιουργήσειλογικές συναρτήσεις
x1 LPowerSupply x2 LightL = x1 AND x2
(ή x1x2)
Sx1
LPowersupply S LightL = x1 OR x2(ή x1+x2)
Ψηφιακή Σχεδίαση43
supply Sx2
g(ή x1+x2)
Διακόπτες
S
x 1
L Power supply S Light
S
x 3L = (x1 OR x2) AND x3
supply S
x 2
3 (x1 + x2) x3
Sx LPower supply
R
L = NOT x = x’ = x S L pp y(αντιστροφή)
Ψηφιακή Σχεδίαση44
Πίνακες Αληθείας (Truth Tables)ς η ς ( )
Εκφράζουν τις τιμές εισόδου/εξόδου για τα κυκλώματα:
Είσοδοι Έξοδος
232
AND ORΜέγεθος Πίνακα Αληθείαςμε n μεταβλητές είναι 2n γραμμές
Ψηφιακή Σχεδίαση45
Αυξάνεται εκθετικά!
Λογικές Πήλεςx 1 x 2 x 1
x 2x 1 x 2 × x 1 x 2 … x n × × ×
x n
2
(a) AND πύλες
x 1 x 2
x 1 x 2 … x n + + + x 1 x2
x 1 x 2 +
x n
x 2
(b) OR πύλες
x x
(c) NOT πύλη
Ψηφιακή Σχεδίαση46
Λογικά ΚυκλώματαΔιαδοχικές λογικές πύλες σχηματίζουν λογικά κυκλώματαόπως στα κυκλώματα με διακόπτες:όπως στα κυκλώματα με διακόπτες:
S
x1 Sx 1 x 1
L Power supply S
x2
Light
S
x 3
x 2 x 3
F
x 2
F=L x 1
x 2
+ ( ) x 3
×=
Ψηφιακή Σχεδίαση47
Λογικά Κυκλώματαx 1
1 1 0 0 → → →
f1 1 0 1 → → →
0 0 1 1→ → →
A
x 2
f
0 0 0 1 → → →0 1 0 1 → → →
B
(a) Κύκλωμα για τη συνάρτηση f x 1
x 1
x 2
+ =
x 1
x 2
f x 1
x 2
, ( )
0 1 0 1
0 0 1 1
1 1 0 11 1 1
(b) Πίνακας Αληθείας f
Ψηφιακή Σχεδίαση48
Κυματομορφές Λογικών Κυκλώματων1 0
1
x 1
1 0
1 0
x 2
A
1 0
1 0
B
f 0 Χρόνος
(c) ∆ιάγραμμα χρονισμού (κυματομορφές)
1 1 0 0 → → →0 0 1 1→ → →
1 1 0 1 → → →0 1 0 1 → → → g
x 1
x 2
Ψηφιακή Σχεδίαση49
2
(d) Κύκλωμα συνάρτησης g x 1 x 2 + =
Ισοδυναμία Κυκλωμάτων
• Τα κυκλώματα (a) και (d) είναι ισοδύναμα:– Ίδια τιμή εξόδου για ίδιες τιμές εισόδουΊδια τιμή εξόδου για ίδιες τιμές εισόδου
Με ην Άλ εβρα Boole θα δια υ ώ ου ε• Με την Άλγεβρα Boole θα διατυπώσουμε τα μαθηματικά των πυλών και κυκλωμάτωνκυκλωμάτων....
Ψηφιακή Σχεδίαση50
Άλγεβρα BooleΑξιώματαΆλγεβρας Boole Θεωρήματα με μια Boolean
μεταβλητή X (X = 0 ή 1):
0 0 = 01 + 1 1
X 0 = 0X + 1 = 1
μεταβλητή X (X 0 ή 1):
1 + 1 = 11 1 = 10 + 0 =0
X + 1 = 1X 1 = XX X = X
0 1 = 1 0 = 01 + 0 = 0 + 1 = 1Αν X=0 τότε X’=1
X + X = XX X’ = 0X + X’ = 1Αν X 0 τότε X 1
Αν X=1 τότε X’=0X X 1X = X’’ = X
Ψηφιακή Σχεδίαση51
Απόδειξη?
Άλγεβρα BooleΙδιότητες μεταβλητών (variables):
XY = YX και X+Y = Y+X (Αντιμετάθεση)XY YX και X+Y Y+X (Αντιμετάθεση)X(YZ) = (XY)Z και X+(Y+Z)=(X+Y)+Z (Προσαιτεριστική)X(Y+Z) = XY + XZ (Επιμεριστική)X + XY = X (Απορρόφηση)XY+XY’=X και (X+Y) (X+Y’) = X (Συνδυασμού)(XY)’ = X’ + Y’(X+Y)’ = X’ Y’X + X’ Y X + Y X (X’ + Y) XY
Νόμοι DeMorgan
X + X’ Y = X + Y και X (X’ + Y) = XY
Αποδείξτε τις παραπάνω ισότητες με πίνακες αληθείας
Ψηφιακή Σχεδίαση52
ξ ς ρ η ς μ ς η ςΑποδείξτε (x1+x3)(x1’+x3’) = x1x3’+x1’x3
Άλγεβρα BooleΠαράδειγμα: Απόδειξη Νόμου De Morgan χρησιμοποιώντας την άλγεβρα του Booleτην άλγεβρα του Boole
Ψηφιακή Σχεδίαση53
Άλγεβρα BooleΗ άλγεβρα του Boole μας επιτρέπει αποδείξεις ισοδυναμίαςσυναρτήσεων ...συναρτήσεων ...
Παράδειγμα:
Αποδείξτε ότι x1 x3’ + x2’x3’ + x1x3 + x2’x3 = x1’x2’ + x1x2 + x1x2’
Αριστερό = x1x3’ + x1x3 + x2’x3’ + x2’x3= x1 (x3’+x3) + x2’ (x3’ + x3) = x1 1 + x2’ 1 = x1 + x2’
Δεξιό = x1’x2’ + x1 (x2 + x2’) = x1’ x2’ + x1 1 = x1’x2’ + x1 = x1 + x1’x2’ = x1 + x2’ … ίδιο με αριστερό!
Ψηφιακή Σχεδίαση54
Διαγράμματα VennΜια οπτική απεικόνιση των συναρτήσεων:
x x x x
(a) Constant 1 (b) Constant 0 (c) Variablex (d) x
x y x y x y
zx y
(e) (f) x y × x y +
z
(g) (h) x y z + x y
Ψηφιακή Σχεδίαση55
Διαγράμματα VennΑπόδειξη επιμεριστικής ιδιότητας (c) = (f) με διαγράμματα Venn:
x y
z
x y
z
x y x y
x x y (a) (d)
y
z
x y
z
x z y z + (b) (e)
x y
z
x y
z
Ψηφιακή Σχεδίαση56
x y x+ z x y z + ( ) (c) (f)
Σύνθεση με Πύλες AND, OR, NOTΠίνακας αληθείας Sum-of-Products Two level circuit
(άθροισμα γινομένων) (κύκλωμα δύο επιπέδων)
f(x1 x2)= x1x2+x1’x2’+x1’x2f(x1, x2) x1x2+x1 x2 +x1 x2
x 1 x 2
f
Ψηφιακή Σχεδίαση57(a) Canonical sum-of-products
Κόστος Υλοποίησης
Το «κόστος» μιας υλοποίησης σε μοντέρνες τεχνολογίεςείναι μια πολύπλοκη ποσότητα που εξαρτάται από πολλούςπαράγοντες όπως # πυλών, μέγεθος, ταχύτητα, κατανάλωσηενέργειας κλπργ ς
Στο μάθημα αυτό απλοποιούμε το κόστος ως εξής:
ΚΟΣΤΟΣ = # πυλών + # εισόδων αυτών των πυλών
Παράδειγμα:
το κύκλωμα της προηγούμενης σελίδας έχει κόστος 17
Ψηφιακή Σχεδίαση58
μ ης ρ ηγ μ ης ς χ ς
Σύνθεση με Πύλες AND, OR, NOTMidterm= γινόμενο που περιέχει όλες τις μεταβλητές (με ή
χωρίς συμπλήρωμα)χ ρ ς μ ήρ μ )Maxterm= άθροισμα που περιέχει όλες τις μεταβλητές.....
Παράδειγμα: minterms/maxterms συναρτήσεων με 3 μεταβλητές
RowNumber
Παράδειγμα: minterms/maxterms συναρτήσεων με 3 μεταβλητές
Ψηφιακή Σχεδίαση59
Σύνθεση με Πύλες AND, OR, NOTΠαράδειγμα: η συνάρτηση f είναι το AND όλων των minterm
που δίνουν λογικό 1 για την συνάρτηση
Sum-of-Products(άθροισμα γινομένων)
f(x1, x2, x3) = x1’x2’x3+x1x2’x3’+x1x2’x3+x1x2x3’
Σ( 1 4 5 6) = Σ (1 4 5 6)Ψηφιακή Σχεδίαση
60
= Σ(m1, m4, m5, m6) = Σm(1,4,5,6)
Απλοποίηση?
Σύνθεση με Πύλες AND, OR, NOTMaxterm: συμμετρική έννοια σε αυτή του minterm. Βρίσκουμε
το Sum-of-Product για τις τιμές 0 της συνάρτησης f καιγ ς μ ς ης ρ η ηςσυμπληρώνουμε το αποτέλεσμα για να βρούμε την f
Προη/νο Παράδειγμα:Προη/νο Παράδειγμα:
f ’(x1, x2, x3) = m0 + m2 + m3 + m71’ 2’ 3’ 1’ 2 3’ 1’ 2 3 1 2 3=x1’x2’x3’+x1’x2x3’+x1’x2x3+x1x2x3
Άρα: f = x1’x2’x3’+x1’x2x3’+x1’x2x3+x1x2x3 Product-of-sumsό ά
ρ
= M0 M2 M3 M7
= (x1+x2+x3) (x1+x2’+x3) (x1+x2’+x3’) (x1’+x2’+x3’)
(γινόμενο αθροισμάτων)
Ψηφιακή Σχεδίαση61
( ) ( ) ( ) ( )
= Π(Μ0, Μ2, Μ3, Μ7) = Π M(0,2,3,7)
ΠΑΡΑΔΕΙΓΜΑ 1Τρείς διακόπτες για την ίδια λάμπα σε ένα δωμάτιο:
Βήμα ΙΙ: Sum of Products
Βήμα Ι: Πίνακας Αληθείας
Βήμα ΙΙ: Sum-of-Products…
F = m1 + m2 + m4 + m7= x1’x2’x3 + x1’x2x3’+
+ x1x2’x3’+x1x2x3
ή …Product-of-Sums
F= M0 M3 M5 M6F M0 M3 M5 M6= (x1+x2+x3) (x1+x2’+x3’)
(x1’+x2+x3’)(x1’+x2’+x3)
Ψηφιακή Σχεδίαση62
ΠΑΡΑΔΕΙΓΜΑ 2
Πολυπλέκτης: Aν S=0 τότε f=x1, αλλιώς (αν S=1) f=x2
- ο πολυπλέκτης χρήσιμο εργαλείο ότανπερισσότερα από ένα σήματα μοιράζονταιτην ίδια γραμμή καλωδίωσης
f
s
x 1 0 0
f (s, x1, x2)sx1
x 2 1 1 x2
Σχηματικό σύμβολο πολυπλέκτη «Περιεκτικός» Πίνακας Αληθείας
Ψηφιακή Σχεδίαση65
Σχηματικό σύμβολο πολυπλέκτη «Περιεκτικός» Πίνακας Αληθείας
ΠΑΡΑΔΕΙΓΜΑ 2
0 0 0 0
s x1 x2 f (s, x1, x2)
0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 1 f
x 1
1 0 0 0 1 0 1 1 1 1 0 0
x 2s
1 1 1 1
(a) Truth table (b) Circuit
F(s, x1, x2) = s’x1x2’ + s’x1x2 + sx1x2 + sx1x2= s’x1(x2’ + x2) + s(x1’+x1)x2= s’x1 + sx2
Ψηφιακή Σχεδίαση66
s x1 + sx2
ΠΑΡΑΔΕΙΓΜΑ 3
f = m1 + m4 + m5 + m6 =
= x2’ x3 + x1x3’
δίνει το κύκλωμα δυοεπιπέδων του σχήματος (a)
x2x1x3
ff
x1x3
3
Ψηφιακή Σχεδίαση67(a) Βελτιστοποιημένο sum-of-products (b) Βελτιστοποιημένο product-of-sums
x1 x2
ΠΑΡΑΔΕΙΓΜΑ 4: VHDL
VHDL = Very High Description Language
Υπάρχουν και άλλες γλώσσες για να εκφράσουμεκυκλώματα/συστήματα: Verilog, SystemC, SpecC κλπμ ήμ g y p
Ένα πολύπλοκο σύστημα σχεδιάζεται ιεραρχικάιεραρχικά απόπίνακες αληθείας σχηματικές παραστάσεις κώδικα VHDLπίνακες αληθείας, σχηματικές παραστάσεις, κώδικα VHDLκαι μετά μεταφράζεται σε πύλες AND, OR και NOT Χρησιμοποιόντας αυτοματοποιημένα εργαλεία σύνθεσης(C Aid d D i (ή CAD) h i )(Computer-Aided Design (ή CAD) και synthesis)
Ψηφιακή Σχεδίαση68
CAD: Altera Quartus II
Λειτουργική Προσομοίση με κυματομορφές(functional simulation)
Ψηφιακή Σχεδίαση71
Ιεραρχική Σχεδίαση
Σύνθεση με Πύλες AND, OR, NOTDesign conception
DESIGN ENTRY
Truth table Truth table VHDLSchematic capture
Simple synthesisTranslation(see section 2.8.2) Translation
Merge
Boolean equations INITIAL SYNTHESIS TOOLS
Functional simulation
NoDesign correct?
Logic synthesis, physical design, timing simulation
No
Yes
Ψηφιακή Σχεδίαση72
(see section 4.12)
Κεφάλαιο Κεφάλαιο 44
• Ελαχιστοποίηση με Πίνακες Karnaugh • Αδιάφορα Ορισμένες Συναρτήσεις• Αδιάφορα Ορισμένες Συναρτήσεις• Σύνθεση με πύλες NAND και NOR• Multi-level Σύνθεση• Κυβική Αναπαράσταση Συναρτήσεωνβ ή ρ η ρ ή• Παραδείγματα σε VHDL
Ψηφιακή Σχεδίαση94
ΠΥΛΕΣ (και πάλι πύλες...)xy
fAND f = xy
xy
fNAND
f = xy = x’ + y’
xy
fOR f = x + y
xy
f
f
NOR f = x+y = x’y’
xy
fXOR f = xy’ + x’y = x + y
f ’ ’x
Ψηφιακή Σχεδίαση95
XNOR f = x’y’ + xy = x yxy
.
ΕΛΑΧΙΣΤΟΠΟΙΗΣΗ (κίνητρο)
f = x1’x2’x3’+x1’x2x3’+x1x2’x3’+x1x2x3’+x1x2’x3= x1’x2’x3’+x1’x2x3’+x1x2’x3’+x1x2x3’+x1x2’x3+x1x2’x3’
x1’x3’ x1x3’ x1x2’
x3’
Άρα η αρχική συνάρτηση ισοδυναμεί με f = x3’ + x1x2’ (!!!)Άρα η αρχική συνάρτηση ισοδυναμεί με f = x3 + x1x2 (!!!)
ΥΠΑΡΧΕΙ ΑΛΓΟΡΙΘΜΙΚΟΣ ΤΡΟΠΟΣ ΠΟΥ ΕΛΑΧΙΣΤΟΠΟΙΕΙ
Ψηφιακή Σχεδίαση96
ΜΙΑ ΣΥΝΑΡΤΗΣΗ; (καλύτερη απόδοση ισχύος, χρονισμού κλπ)
ΠΙΝΑΚΕΣ KARNAUGHΝΑΙ! - Πίνακες Karnaugh
Multi level Synthesis (factorization decomposition κλπ)- Multi-level Synthesis (factorization, decomposition κλπ)- Τεχνικές με κύβους (cube minimal cover)
x 2 0 1
x 1 x 2
0 0 m 0
x 1 minterm
0
1
m 0 m 2
m 3 m 1
0 1 1 0 1 1
m 1
m 3
m 2
(a) Πίνακας Αληθείας (b) Χάρτης Karnaugh
3
Πί K h 2 βλ ώ
Ψηφιακή Σχεδίαση97
Πίνακας Karnaugh 2 μεταβλητών
ΠΙΝΑΚΕΣ KARNAUGHΠΙΝΑΚΕΣ KARNAUGH
x 1 x 2
0 0
f1
x 1 x 2 0 1
x1x2’
0 1 1 0 1 1
101
1 0
1 1f x 2 x 1 + =
0
11 1 1
f
1 1 1
f=x1’x2’+x1’x2+x1x2=x1’x2’+x1’x2+x1’x2+x1x2=x1’(x2’+x2) + x2(x1+x1’)
Ψηφιακή Σχεδίαση98
( ) ( )=x1’+x2
ΠΙΝΑΚΕΣ KARNAUGH
x xx 2 x 3 x 1 x 1 x 2 x 3 00 01 11 10
0
0 0 0 1
m 0 m 1
0 0
m m m m0
1 1 0 1 1
1
m 3
m 2 0 0
m 0
m 1 m 3
m 2 m 6
m 7
m 4
m 5
(b) Karnaugh map0 0 0 1 1 0
1 1 1
m 4 m 5
Πίνακας Karnaugh 3 μεταβλητών
1 0 1 1
1 1 m 7
m 6
Ψηφιακή Σχεδίαση99
(a) Truth table
ΠΙΝΑΚΕΣ KARNAUGHΕλαχιστοποίηση της συνάρτησης από το προη/νο παράδειγμα:
f = x1’x2’x3’+x1’x2x3’+x1x2’x3’+x1x2x3’+x1x2’x3
x 2 x 3 x 1 f
0 0 0 1 1 0
0 0 0
101
x1x2x3 00 01 11 10
1 0 1 1
0 0
0 01
101
1 1
0 0
1 1
0 1 f x3 x1x2+=
0
10 0 0 1 1 0
1 1 1
111
Ψηφιακή Σχεδίαση100
1 0 1 1
1 1
10
ΠΙΝΑΚΕΣ KARNAUGH• Ποιά είναι η λογική;
x 2 x 3
0 00
x 1 f
1 m0Ανεξάρτητα από την τιμή τουx3 (0 ή 1) όταν x1=1 και x2=00 0
0 1 1 0
0 0 0
1 m00 m11 m2
x3 (0 ή 1), όταν x1=1 και x2=0τότε f=1. Άρα m4 & m5 = x1x2’
1 1 0 0 0 1
0 m31 m4 Με τον ίδιο τρόπο μπορούμε
0 1 1 0
1 1
1 m51 m6
να ελαχιστοποιήσουμε τουςminterms m0&m2&m4&m6
Ψηφιακή Σχεδίαση101
1 1 1 0 m7
ΠΙΝΑΚΕΣ KARNAUGHx 1 x 2 x 3 x 4 00 01 11 10
x 1
x1x2’x3’x4’00 01 11 10
00 m 0 m 4 m 12 m 8 x1x3’x4’
01
11x 4
m 1 m 5 m 13 m 9
m3 m7 m15 m11
x3’
11
10x 3
m 3
m 2 m 6
m 7 m 15
m 14
m 11
m 10 x3’x4’
x 2
Πί K h 4 βλ ώ
Ψηφιακή Σχεδίαση102
Πίνακας Karnaugh 4 μεταβλητών
ΠΙΝΑΚΕΣ KARNAUGHx 1 x 2 x 1 x 2 x 3 x 4
0
00 01 11 10
0 0 0
0 0 1 1
00
01
x 3 x 4
0
00 01 11 10
0 0 0
0 0 1 1
00
01σφαιρικήδ
1 0 0 1
1 0 0 1
11
10
1 1 1 1
1 1 1 1
11
10
δομή τουΠ.Karnaugh!
x 1 x 2 x 3 x 4 00 01 11 10
x 1 x 2 x 3 x 4 00 01 11 10
f 1 x 2 x 3 x 1 x 3 x 4 + = f 2 x 3 x 1 x 4 + =
1
00 01 11 10
0 0 1
0 0 0 0
00
01
1
00 01 11 10
1 1 0
1 1 1 0
00
01
1 1 1 0
1 1 0 1
11
10
0 0 1 1
0 0 1 1
11
10
x x
Ψηφιακή Σχεδίαση103
f 3 x 2 x 4 x 1 x 3 x 2 x 3 x 4 + + = f 4 x 1 x 3 x 1 x 3 + + = x 1 x 2
x 2 x 3
or
ΠΙΝΑΚΕΣ KARNAUGHx 1 x 2 x 3 x 4 00 01 11 10
00
x 1 x 2 x 3 x 4 00 01 11 10
100
1 1
00
01
1
1 1
00
01
1 1
1 1
11
10
1 1
1 1
11
10
x 5 1 = x 5 0 =
f 1 x 1 x 3 x 1 x 3 x 4 x 1 x 2 x 3 x 5 + + =
Ψηφιακή Σχεδίαση104
Πίνακας Karnaugh 5 μεταβλητών
ΟΡΟΛΟΓΙΑx 1 x 2
x 3 00 01 11 10
1 1
1 1
0 0
1 0
0
1
x 1 x 2 x 3
literal (παράγοντας γινομένου)Implicant (όρος αληθείας)Prime implicant (πρώτος όρος αληθείας)p ( ρ ς ρ ς η ς)Essential prime implicant (ουσιαστικός πρώτος όρος αληθείας)Function cover (κάλυψη συνάρτησης)Cost of cover (κόστος κάλυψης συνάρτησης)
Ψηφιακή Σχεδίαση105
Cost of cover (κόστος κάλυψης συνάρτησης)
ΟΡΟΛΟΓΙΑx 1x 21 2
x 3
1 1 0 0
00 01 11 10
0
1 1 1 0 1
x 1 x 2 x 3 literal: x1, x1’, x2, x2’, x3, x3’
Implicant: γινόμενο που δίνει 1 (Παρ.: έχει 11 implicants)
Prime implicant: ο implicant που δεν περιέχει άλλο implicantμε λιγότερα literals (Παρ.: x1’ και x2x3)
Essential prime implicant: ο prime implicant που περιέχει mintermπου δεν περιέχει άλλος prime implicant (Παρ.: και οι δυο)
Cover: ένα ε α ό implicants ου καλύ ουν όλες ις
Ψηφιακή Σχεδίαση106
Cover: ένα σετ από implicants που καλύπτουν όλες τιςπεριπτώσεις που η συνάρτηση είναι 1
ΟΡΟΛΟΓΙΑΚόστος Υλοποίησης ενός κυκλώματος:
υπάρχουν πολλοί παράγοντες που καθορίζουν τοκόστος ενός κυκλώματος (ταχύτητα, κατανάλωση ενέργειας, χώρος υλοποίησης, κλπ)ενέργειας, χώρος υλοποίησης, κλπ)
Εμείς θα θεωρήσουμε ένα απλοποιημένο τρόπουπολογισμού του κόστους:υπολογισμού του κόστους:
Κόστος = # αριθμός πυλών + # αριθμός εισόδου πυλών
Παρ.: η συνάρτηση x1x2’ + x3x4’ έχει κόστος υλοποίησης = 9
Ψηφιακή Σχεδίαση107
ΑΛΓΟΡΙΘΜΙΚΗ ΕΛΑΧΙΣΤΟΠΟΙΗΣΗ ΜΕ ΠΙΝΑΚΕΣ KARNAUGHΜΕ ΠΙΝΑΚΕΣ KARNAUGH
Δεν υπάρχει «εύκολος» τρόπος που να ελαχιστοποιεί μιαά S f P d (SOP) ό όσυνάρτηση σε Sum-of-Products (SOP) με το μικρότερο κόστος
Το πρόβλημα είναι NP-Complete (3o έτος...)ρ β ημ p ( ς )
Χρησιμοποιούμε «ευριστικούς (heuristic)» αλγορίθμουςπου μπορεί μερικές φορές να μην δίνουν το βέλτιστο (optimal)που μπορεί μερικές φορές να μην δίνουν το βέλτιστο (optimal)αποτέλεσμα από άποψη κόστους.
Ο Πί K h β θ ύ ά β ίΟι Πίνακες Karnaugh μας βοηθούν γραφικά να βρίσκουμε prime implicants μιας συνάρτησης. Με αυτό το τρόπο μπορούμε να δημιουργούμε βελτιστοποιημένες υλοποιήσεις
Ψηφιακή Σχεδίαση108
μ ρ μ ημ ργ μ β ημ ς ή ςτης συνάρτησης με κυκλώματα
ΑΛΓΟΡΙΘΜΙΚΗ ΕΛΑΧΙΣΤΟΠΟΙΗΣΗ ΜΕ ΠΙΝΑΚΕΣ KARNAUGHΜΕ ΠΙΝΑΚΕΣ KARNAUGH
x 1 x 2 x 3 x 4 00 01 11 10
1
1 1 1 1 00
01
x 3 x 4
x 1 x 2 x 3 x3x4
1 11
10
x 1 x 2 x 4
1
1
x x2x
x 1 x 3 x 4
10 1
x 1x 2x 4
x 1 x 2 x 3
1 2 4 Δυο διαφορετικά covers:
f = x3’x4+x1x2x3’+x1x2’x4’+x1x3x4 ή
Ψηφιακή Σχεδίαση109
f = x3’x4’+ x1x2x4 +x1x2’x3 (καλύτερο κόστος)
ΕΛΑΧΙΣΤΟΠΟΙΗΣΗ Sum-of-ProductsΜε ίδιο σκεπτικό χρησιμοποιούμε τους Maxterms («0») του πίνακα Karnaugh για να ελαχιστοποιήσουμε μια συνάρτηση:x 1 x 2 x 3 00 01 11 10
( )
Ά
1 0
1
1 0 0
1 1 1 0
x 1 x 3 + ( ) x1x3 =
Άρα: f = (x1’ + x3) (x1’ + x2)
x 1 x 2+ ( )
Άσκηση Βρείτε το S-o-P της f και συμπληρώστε για ναπάρετε το παραπάνω (ίδιο) αποτέλεσμα!
1 2 ( )
Ψηφιακή Σχεδίαση110
πάρετε το παραπάνω (ίδιο) αποτέλεσμα!
Αδιάφοροι Όροι & Ελαχιστοποίηση
Ένα σύστημα με n εισόδους (inputs) και m εξόδους (outputs)έχει 2n πιθανά διανύσματα εισόδου και 2m διανύσματα εξόδου Ι/Οέχει 2 πιθανά διανύσματα εισόδου και 2 διανύσματα εξόδου Ι/Ο
Στην πραγματικότητα κανένα σύστημα συνήθως δεν εξασκείξ λ ά ( h ti ) όλ δ ύ Ι/Ο!«εξαντλητικά» (exhaustive) όλα τα διανύσματα Ι/Ο!
ΑΧΗ τιμή (Α=1, Β=1) δεν μπορεί ΑΧ
Υνα συμβεί με οποιοσδήποτε τιμές εισόδου στις μεταβλητέςΧ και Υ!Β Χ και Υ!
(Α=1, Β=1) είναι αδιάφορος όρος(d ’t )
Ψηφιακή Σχεδίαση111
(don’t care)
Αδιάφοροι Όροι & Ελαχιστοποίηση
Οι αδιάφοροι όροι (για τις αδιάφορα ορισμένες συναρτήσεις)δίνουν περισσότερες δυνατότητες σχεδίασης/ελαχιστοποίησηςδίνουν περισσότερες δυνατότητες σχεδίασης/ελαχιστοποίησης
x 1 x 2 x 3 x 4 00 01 11 103 4
0
00 01 11 10
1 d 0 00
x 2 x 30 1 d 0
0 0 d 0
01
11
2 3
1 1 d 1 10 x 3 x 4
Ψηφιακή Σχεδίαση112
(a) SOP implementation
Multi Output Κυκλώματα
Ίδια διαδικασία για κυκλώματα με πολλούς εξόδους: x 1 x 2 x 3 x 4 00 01 11 10
1- Πίνακας Karnaugh για κάθε έξοδο διαφορετικά
1 1
1 1
1 1
00
01
11
1
f1
x 2 x 3 x 4
2- Προσπαθούμε να «μοιράσουμε» τις πύλες x x
1 1 10
(a) Function f 1
f 1 x 1 x 3
x 1«μοιράσουμε» τις πύλεςμεταξύ των συναρτήσεωναπό διαφορετικές εξόδους
x 1 x 2 x 3 x 4 00 01 11 101 1
1 1
00
01
f 2
1 x 3
x 2 x 3 x 4
1 1 1
1 1
11
10
(b) Function F
4
(c) Combined circuit f 1 f 2 and
Ψηφιακή Σχεδίαση113
(b) Function F2
Multi Output Κυκλώματα
x 1 x 2 x 3 x 4 00 01 11 10x 1 x 2 x 3 x 4 00 01 11 10
1
1 1
00
01
11
1 1
1
1 1
1
00
01
11
1
1 1 f 3 x 1
x 1
x 4 κόστος
291 10
(a) Optimal realization of (b) Optimal realization off 3 f 4
x 1 x 2 x x
1 10
x 1 x 2 x x
x 1
x 2
x
x 4
x 3 x 4 00 01 11 10
1
00
01 1 1
x 3 x 4 00 01 11 10
1 1
00
01 1 f 4 x 4
x 3
x 2
x 2
κόστος23
(c) Optimal realization of f 3
1 1
1
11
10
1 1
1
11
10
1 1
and togetherf 4
x 4
Βέλτιστο με κόστος 23
23
Ψηφιακή Σχεδίαση114
μ ς
Κυκλώματα με Πύλες NAND/NORΣτο Κεφ.3 είδαμε ότι σε τεχνολογία CMOS οι πύλες AND/OR δημιουργούνται από πύλες NAND/NOR σε ακολουθία με NOT
Άρα οι NAND/NOR χρειάζονται περισσότερα transistorsΆρα συμφέρει να έχουμε κυκλώματα με NAND/NOR!
x 1 x 2
x 1
x 2
x 1 x 2
x 1 x 2 x 1 x 2 + = (a)
x 1 x 2
x 1
x 2
x 1 x 2
Ψηφιακή Σχεδίαση115
x 1 x 2 + x 1 x 2 = (b) Νόμος De Morgan
Κυκλώματα με Πύλες NAND/NOR
Παράδειγμα μετατροπής σε κύκλωμα NAND/NOR:
x 1 x2
x 1 x2x 2
x 3 x 4 x 5
x 2 x 3 x 4 x 55 5
xx 1 x 2 x 3 x 4
Ψηφιακή Σχεδίαση116
4 x 5
Multi-Level Synthesis
• Παρόλο που κυκλώματα δυο επιπέδων SOP και POS είναιδιαισθητικά εύκολα να τα καταλάβουμε στην πραγματικότηταδιαισθητικά εύκολα να τα καταλάβουμε, στην πραγματικότητασπάνια σχεδιάζουμε κυκλώματα δυο επιπέδων διότι έχουν:
- Μεγάλη κατανάλωση ισχύοςγ η η χ ς- Μεγάλη καθυστέρηση- Μεγάλο χώροΔύ λ λ θ ύ ά β βλ θή λώ- Δύσκολα να υλοποιηθούν με υπάρχων βιβλιοθήκες πυλών
• Για αυτό το λόγο, την δεκαετία του 1980 αναπτύχθηκε η γ , η χ η ησύνθεση σε πολλαπλά επίπεδα πυλών (multilevel synthesis)
- Η θεωρία πέρα από τα πλαίσια του μαθήματος και δεν θα
Ψηφιακή Σχεδίαση117
τη συζητήσουμε. Θα δούμε μόνο την ανάλυση κυκλωμάτωνπολλαπλών επιπέδων
Multi-Level SynthesisΓια να βρούμε την συνάρτηση που υλοποιεί ένα multi-levelκύκλωμα, ονοματίζουμε τις εσωτερικές γραμμές και βρίσκουμετις συναρτήσεις τους (η καθεμία σε σχέση με την άλλη):
x
x 2
x 1
x 3
P 3
P 1
P1 = x2x3P2 = x5+x6P3 = x1 + P1 = x1 +x2x3P4 = x4P2 = x4(x5+x6)
x 4
x 5
f 1
P 4
P
P4 = x4P2 = x4(x5+x6)P5 = P4 + x7 = x4(x5+x6)+x7f = P3P5 == (x1+x2x3)(x4(x5+x6)+x7)
x 6 x 7
P 5 P 2
(x1+x2x3)(x4(x5+x6)+x7)= x1x4x5+x1x4x6+x1x7++x2x3x4x5+x2x3x4x6+x2x3x7
Ψηφιακή Σχεδίαση118
Multi-Level Synthesisx 1 P 2
x 2 x 3
f
P 1 P 4
x 4
f
P 3
P1 = (x2x3)’x 5 P1 = (x2x3)’P2 = (x1P1)’ = x1’ P1’P3 = (x3x4)’ = x3’+x4’P4 = (P2+P3)’P4 (P2+P3)f = (P4+x5)’ == ………. == x1’x5’+x2x5’+x3’x5’+x4’x5’
Ψηφιακή Σχεδίαση119
Αναπαράσταση με ΚύβουςΟι πίνακες Karnaugh δίνουν μια γραφική αναπαράσταση μιαςσυνάρτησης. Οι κύβοι επιτρέπουν αλγεβρικές αλγοριθμικέςμεθόδους βελτιστοποίησης
- Οι Αλγεβρικές μέθοδοι είναι πέρα από τα πλαίσια του μαθήματος αλλά θα δούμε την αναπαράσταση με κύβουςμαθήματος αλλά θα δούμε την αναπαράσταση με κύβους
x 1
0 0
f
0
01 11x1 x 2
0 0 1 1
0 1 0 1
0 1 1 1
x 2 1x
1 1 1
00 10x 1
Ψηφιακή Σχεδίαση120Κύβος 2 Διαστάσεων/Μεταβλητών
Αναπαράσταση με Κύβους
f = Σ m(0, 2, 4, 5, 6)011 111
010 110 x10
x 2 001 1011x0 0x0
xx0
2
x1
x 3
001 101
10x x 1
000 100 x00
Ψηφιακή Σχεδίαση121
Κύβος 3 Διαστάσεων/Μεταβλητών
Αναπαράσταση με Κύβους
0110
f = Σ m(0, 2, 3, 6, 7, 8, 10, 15)
0 1
0011
0111 1111
0x1xx111
0011
0000 1000
10100010 x0x0
Ψηφιακή Σχεδίαση122
Κύβος 4 Διαστάσεων/Μεταβλητών
Αναφορά ΎληςΑναφορά Ύλης
• 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8
• 4.9• 4.11 και 4.12
Ψηφιακή Σχεδίαση123
Κεφάλαιο 5Κεφάλαιο 5
• Παράσταση Αριθμών– Signed numbers και Unsigned numbersSigned numbers και Unsigned numbers
• Μετατροπές Αριθμητικών ΣυστημάτωνΠρό θε η και Αφαίρε η• Πρόσθεση και Αφαίρεση
• Προσθετές, Αφαιρετές, Πολλαπλασιαστές
Ψηφιακή Σχεδίαση124
Μη Προσημασμένοι Αριθμοί
D = dn-1dn-2 … d1d0 = Σi=0..n-1 di * 10i d=0, 1, .., 9 Δεκαδικό
B = bn-1bn-2 … b1b0 = Σi=0..n-1 bi * 2i b=0, 1 Δυαδικό
H h h h Σ h * 16i h 0 1 9 A B F 16 δ ό
Π άδ 4552 4*103 + 5*102 + 5*101 + 2 * 100
H = hn-1hn-2 …h0 = Σi=0..n-1 hi * 16i h=0,1,…,9, A,B,.., F 16-δικό
Παράδειγμα: 4552 = 4*103 + 5*102 + 5*101 + 2 * 100
1011 = 1 * 23 + 0 * 22 + 1* 21 + 1 * 20
Κ = κn-1κn-2 … κ1κ0 = Σi=0 n-1 κi * ri r=0, 1, .., r-1
Γενικά, όταν η βάση είναι r:
Ψηφιακή Σχεδίαση125
n-1 n-2 1 0 i=0..n-1 i , , ,
Μετατροπές Αριθμητικών Συστημάτων
Μετατροπή σε δυαδικό:
Υπόλοιπο
least significant bitleast significant bit
most significant bitmost significant bit
Ψηφιακή Σχεδίαση126
Αποτέλεσμα
Πρόσθεση Μη Προσημασμένων Αριθμών
Η πρόσθεση γίνεται όπως στους δεκαδικούς αριθμούς καιμπορεί να δημιουργήσει κρατούμενα:μπορεί να δημιουργήσει κρατούμενα:
ΠΑΡΑΔΕΙΓΜΑ:
X x 4 x 3 x 2 x 1 x 0 =
Y+ y4y3y2y1y0=
15( ) 10
10( ) 10
0 1 1 1 1
0 1 0 1 0
κρατούμενα !
Y y 4 y 3 y 2 y 1 y 0 10( ) 100 1 0 1 0
1 1 1 0
S s 4 s 3 s 2 s 1 s 0 = 25( ) 101 1 0 0 1
Ψηφιακή Σχεδίαση127
Πρόσθεση Μη Προσημασμένων Αριθμών0 0 +
0 1 +
1 0 0 0
1 0 +
1 0
1 1 +
0 1
x y +
s c
Sum Carry
Sum Carry
(a) The four possible cases
Ημιαθροιστής s
0 1 1
c
0 0 0
x y
0 0 1
0 1 0
Ημιαθροιστής(Half-Adder):προσθέτει 2 bits
ί ύ 0 1 1 1
(b) Truth table Πίνακας Αληθείας
χωρίς κρατούμενο
x
y s
c
HAx
y s
c
Ψηφιακή Σχεδίαση128(c) Circuit (d) Graphical symbolΚύκλωμα Γραφικό Σύμβολο Half-Adder
Πρόσθεση Μη Προσημασμένων Αριθμών
Πως προσθέτουμε δυο n-bit αριθμούς X και Y ?
X = xn-1 xn-2 … x1 x0
Y = yn 1 yn 2 … y1 y0yn-1 yn-2 y1 y0
Αν φτιάξουμε ένα πίνακα Karnaugh χρειαζόμαστε 2nφ ξ μ g χρ ζ μγραμμές. Αυτό δεν είναι εφικτό για πρακτικές τιμές n(n=32 232 γραμμές !!)( γρ μμ ς )
ΙΔΕΑ Προσθέτουμε τους αριθμούς bit-by-bitx + y χρησιμοποιώντας half adders
Ψηφιακή Σχεδίαση129
xi + yi χρησιμοποιώντας half-adders
Πρόσθεση Μη Προσημασμένων Αριθμών00 01 11 10
x i y i c i Π ό θ δ
0 0 0
c i 1 +
0 0 0
0 0 1
0 1 0
c i x i y i 0
1
i
1
1
1
1
s i x i y i c i ⊕ ⊕ =
0 1 1
s i
Πρόσθεση δυοbits xi και yi με κρατούμενο: 0
1 0 1 1 1
0 0 1 1 1 1
1 1 0 0 1 1
0 1 0 1 0 1
00 01 11 10
0
1
x i y i c i
1
1 1 1
1 0 1 0 0 1
με κρατούμενο:
Πλήρης Αθροιστής(f ll adder) 1 1 1 1
c i 1 + x i y i x i c i y i c i + + = (a) Truth table
(b) Karnaugh maps
(full-adder)
x i y i
c i
x i
y i s i
FAc i+1
c i
c i 1 +
i+1
s i
Ψηφιακή Σχεδίαση130
(c) Circuit
i
Γραφικό διάγραμμαfull-adder
Πρόσθεση Μη Προσημασμένων Αριθμών
Διαφορετικός τρόπος πρόσθεσης δυο bits xi και yifull adder:
HAHAs
c
s c
c i x i y
c i 1+
s i
full-adder:
c y i i 1
(a) Γραφικό διάγραμμα
c i
x i y i
s i
i
c i 1 +
Ψηφιακή Σχεδίαση131(b) Κύκλωμα
Γιατί είναι σωστό???
Πρόσθεση Μη Προσημασμένων Αριθμών
Για την πρόσθεση δύο n-bit αριθμών, βάζουμε n full adders σε σειρά:
x n –1 y n 1 – x 1 y 1
c
x 0 y 0
FAc n c n 1 ” FAc 2 FAc 1
c 0
s n 1 – s 1 s 0
MSB position LSB position
Αθ ή Δ άδ Κ έ ( i l dd )- Αθροιστής Διάδοσης Κρατουμένου (ripple-carry adder):
Αν κάθε FA έχει delay Δt, τότε η συνολική καθυστέρηση είναι nΔt
Ψηφιακή Σχεδίαση132
- Θα δούμε αργότερα αθροιστές με μικρότερο delay
Αφαίρεση Μη Προσημασμένων Αριθμών
Είσοδος ΈξοδοςΑ Β κρατούμενο Α-Β0 0 0 00 1 1 1 Παράδειγμα:0 1 1 1 1 0 0 11 1 0 0
Παράδειγμα:
10010101 1 0 010100
01101100110110
Ψηφιακή Σχεδίαση133
ΠαράδειγμαΔοθέντος 8-bit αριθμού A=a7a6…a0 βρείτε τον αριθμό P = p9p8…p0 = 3A AP p9p8…p0 3A
1ος (μη βέλτιστος) τρόπος:x y y
a 7 A : a 0
x
Βρείτε 2Α = Α + Ακαι μετά το P = 2A + A
7 x 0 y 7 y 0
s 0 s 7
c 7
x
x 7 x 0 y 8 y 0 y 7 x 8
0
cs 0 s 8
c 8
P P PP 3A= :
Ψηφιακή Σχεδίαση134
P 9 P 8 P 0 P 3 A = :
Παράδειγμα
2ος (βέλτιστος) τρόπος:
Μετατοπίστε το Α αριστερά(left-shift) μια θέση και
a 7 A : a 0
προσθέστε Αx 1 x 0 y 8 y 0 y 7 x 8
s 0s 8c 8
0 0
0 8
P 9 P 8 P 0 P 3 A = :
Ψηφιακή Σχεδίαση135
Προσημασμένοι Αριθμοί
Στο δεκαδικό σύστημα το + ή – δηλώνει ένα θετικό/αρνητικόαριθμό.
Στους υπολογιστές έχουμε διαφορετικούς τρόπους ς γ ς χ μ φ ρ ς ρ ςαναπαράστασης προσημασμένων αριθμών:
Παράσταση Πρόσημου Μέτρου (Sign and Magnitude)- Παράσταση Πρόσημου-Μέτρου (Sign-and-Magnitude)- Παράσταση Συμπλήρωμα ως προς Ένα (1s Complement)- Παράσταση Συμπλήρωμα ως προς Δυο (2s ComplementΠαράσταση Συμπλήρωμα ως προς Δυο (2s Complement,χρησιμοποιείται περισσότερο στους Η/Υ)
Ψηφιακή Σχεδίαση136
Παράσταση Πρόσημου-Μέτρου
Χρησιμοποιούμε ένα επιπλέον MSB bit όπου0 δ λώ ( ) b b b- 0 δηλώνει + (συν)
- 1 δηλώνει – (μείον)bn 1– b1 b0
Παράδειγμα: 0110 = +61110 6
Μέτρο
MSB
(a) Μη προσημασμένος1110 = - 6 ( ) η ρ ημ μ ς
bn 1– b1 b0bn 2–
Μέτροπρόσημο
0 σημαίνει +MSB
Ψηφιακή Σχεδίαση137(b) Προσημασμένος
1 σημαίνει – MSB
Παράσταση 1s Complement
Δοθέντος θετικού n-bit αριθμού P, ο αρνητικός αριθμός K1 είναι
K1 = (2n-1) - P
Π άδ +4 0100 4 (24 1) 0100 1111 0100 1011Παράδειγμα: +4 = 0100, -4 = (24-1) - 0100 = 1111- 0100 = 1011+5 = 0101, -5 = (24-1) - 0101 = 1111- 0101 = 1010
Μεθοδολογία:Το 1s Complement είναι απλά το συμπλήρωμα bit-με-bitp μ ήρ μ μ
του αρχικού αριθμού!
Ψηφιακή Σχεδίαση138
Εύκολο να βρεθεί αλλά όχι «φιλικό» για Η/Υ πράξεις...
Παράσταση 2s ComplementΔοθέντος θετικού n-bit αριθμού P, ο αρνητικός αριθμός K1 είναι
K2 = 2n - PK2 2 P
Παράδ.: +4 = 0100, -4 = 24 - 0100 = 10000- 0100 = 1100+5 0101 5 24 0101 10000 0101 1011+5 = 0101, -5 = 24 - 0101 = 10000- 0101 = 1011
Μεθοδολογία: Αν K1 είναι το 1s Complement τότε:K1 = (2n-1) - P και K2 = K1 + 1
Ο αριθμός B=bn-1bn-2 … b1 b0 δηλώνει την δεκαδική τιμή
Ψηφιακή Σχεδίαση139
Value(B) = (-bn-1 2n-1) + (bn-2 2n-2) + … + (b1 21) + (b0 20)
Πρόσθεση Προσημασμένων Αριθμών
Π ά ήΠ ά ή έέΠαράσταση προσήμουΠαράσταση προσήμου--μέτρουμέτρου
Η διαδικασία είναι πολύπλοκη και απαιτεί αρκετό hardware (κυκλώματα) οπότε στην πράξη σπάνια χρησιμοποιείται
Ψηφιακή Σχεδίαση141
Πρόσθεση Προσημασμένων ΑριθμώνΠαράσταση Παράσταση 1s Complement1s Complement
Η διαδικασία μπορεί να δημιουργήσει κρατούμενο το οποίοΗ διαδικασία μπορεί να δημιουργήσει κρατούμενο το οποίο πρέπει να το προσθέσουμε για να πάρουμε το αποτέλεσμα.Για αυτό το λόγο δεν χρησιμοποιείται συχνά:
5( )5( )++
1 1 0 0
1 0 1 00 0 1 0
0 1 1 1
0 1 0 10 0 1 0 2+( )
5–( )
3-( )
+5+( )2+( )7+( )
+
1 0 1 00 1 0 1 5–( )5+( )++
0 1 1 11 1 0 1
0 0 1 01 1 0 1
11
11
( )
7–( )
+ 2–( )3+( )
+ 2–( )
Ψηφιακή Σχεδίαση142
0 0 1 1 1 0 0 0ΚΡΑΤΟΥΜΕΝΟ
Πρόσθεση Προσημασμένων ΑριθμώνΠαράσταση 2Παράσταση 2s Complements Complement
Η διαδικασία μπορεί να δημιουργήσει κρατούμενο το οποίο μ ρ ημ ργή ρ μαγνοούμε για να βρούμε το τελικό αποτέλεσμα. Χρησιμοποιείται συχνά:
++
1 1 0 1
1 0 1 10 0 1 0
0 1 1 1
0 1 0 10 0 1 0
5+( )2+( )
7+( )
+ 2+( )5–( )
3( )
+
1 1 0 10 1 1 17+( ) 3–( )
++
1 0 0 1
1 0 1 11 1 1 0
0 0 1 1
0 1 0 11 1 1 0
11
5+( )
3+( )
+ 2–( )5–( )
7–( )
+ 2–( )
Ψηφιακή Σχεδίαση143
1 0 0 10 0 1 1 11
αγνοούμε αγνοούμε
3( ) 7( )
Χαρακτηριστικά Πύλης XOR
XY
Z
• Όταν X = 0 τότε η έξοδος Z = Y’η ξ ς
• Όταν X = 1 τότε η έξοδος Z = Y
Ψηφιακή Σχεδίαση144
Υλικό για Πρόσθεση/Αφαίρεση2s Complement2s Complement
Η είσοδος Add/Sub διαλέγειξύ ό θ ( 0)
y 0 y 1 y n 1 –
Add ⁄ Sub control
μεταξύ πρόσθεσης (=0) καιαφαίρεσης (=1)
x 0 x 1 x n 1 –
control
cc n n -bit adder c 0
Ψηφιακή Σχεδίαση145
s 0 s 1 s n 1 –
Overflow (Υπερχείλιση)Μερικές φορές ο αριθμός των bit n που χρησιμοποιούμε δενείναι αρκετός να «χωρέσει» το αποτέλεσμα Τότε λέμε ότι έχειείναι αρκετός να «χωρέσει» το αποτέλεσμα. Τότε λέμε ότι έχειγίνει υπερχείλιση (overflow). Πρέπει να σχεδιάζουμε κυκλώματαπου μπορούν να διαγνώσουν περιπτώσεις overflow!
++
1 0 1 1
1 0 0 10 0 1 0
1 0 0 1
0 1 1 10 0 1 0
7+( )2+( )
9+( )
+ 2+( )7–( )
5–( )
+
overflow =1 0 1 11 0 0 19+( )c4 0=c3 1=
c4 0=c3 0=
5( ) overflow =c3 + c4
++1 0 0 11 1 1 0
0 1 1 11 1 1 0
7+( )+ 2–( )
7–( )+ 2–( )
όταν προ-σθέτουμε διαφορετικά ό
Ψηφιακή Σχεδίαση146
0 1 1 10 1 0 15+( ) 11c4 1=c3 1=
c4 1=c3 0=
9–( ) πρόσημα
Ταχείς ΑθροιστέςΕίδαμε πριν ότι ο full-adder έχει καθυστέρηση nΔt γιατί οτελευταίος FA χρειάζεται να περιμένει το κρατούμενοτελευταίος FA χρειάζεται να περιμένει το κρατούμενογια τα προηγούμενα n επίπεδα:
x n –1 y n 1 – x 1 y 1 x 0 y 0
FAc n c n 1 ” FAc 2 FAc 1
c 0
s n 1 – s 1 s 0
MSB position LSB positionMSB position LSB position
Μπορούμε να φτιάξουμε πιο γρήγορους αθροιστές;ΝΑΙ!Αν δη ιουργή ου ε κυκλώ α α ου υ ολογίζουν
Ψηφιακή Σχεδίαση147
ΝΑΙ!Αν δημιουργήσουμε κυκλώματα που υπολογίζουν το κρατούμενο νωρίτερα.
Ταχείς Αθροιστέςx i y i
0 0
c i 1 +
0 0
0 0
0 1
c i x i y i
00 01 11 10
0
1
i y i c i
1
1
1
1
0 1
s i ci+1 = xiyi + xici + yici
= xiyi + (xi+yi)ci0 0 1 0 1 1 1
0 0 0 1 1 1 1
0 1 1 0 0 1 1
1 0 1 0 1 0 1
s i x i y i c i ⊕ ⊕ =
00 01 11 10
0
x i y i c i
1
1 1 0 1 0 0 1
= gi + pici
όπου:1 1 1 1
c i 1 + x i y i x i c i y i c i + + = (a) Truth table
(b) Karnaugh maps
gi = xiyipi = xi + yi
c i
x i
y i s i ‘Αρα:c = g +p (g +p c )
c i 1 +
ci+1 = gi+pi(gi-1+pi-1ci-1)
= gi + pigi-1+pipi-1ci-1
Ψηφιακή Σχεδίαση148
(c) Circuit
Ταχείς Αθροιστές
ci+1 = xiyi + xici + yici
( )όπου:
= xiyi + (xi+yi)ci
= gi + pici
gi = xiyipi = xi + yi
‘Αρα: ci+1 = gi+pi(gi-1+pi-1ci-1) = gi + pigi-1+pipi-1ci-1
Αν γενικεύσουμε την διαδικασία τότε παρατηρούμε ότι:γ μ η ρ ηρ μ
ci+1 = gi + pigi-1 + pi pi-1gi-2 + … + pipi-1…p2p1g0+pipi-1…p1p0c0
Ψηφιακή Σχεδίαση149
Ταχείς Αθροιστέςx1 y1 x0 y0x 1 y 1 x 0 y 0
g 1 p 1 g 0 p 0
c 0 c 1 c 2
Stage 1 Stage 0
s 1
Stage 1
s 0
Stage 0
Δυο πρώτα επίπεδα από αθροιστή διάδοσης κρατουμένου
Ψηφιακή Σχεδίαση150
Δυο πρώτα επίπεδα από αθροιστή διάδοσης κρατουμένου(ripple-carry adder) καθυστέρηση 5 πύλες
Ταχείς Αθροιστέςx 1 y 1 x 0 y 0
g 1 p 1 g 0 p 0
c 2
c 0
c 1
s 1 s 0
Δυο πρώτα επίπεδα από αθροιστή πρόβλεψης κρατουμένου(carry lookahead adder) σύμφωνα με την εξίσωση που
Ψηφιακή Σχεδίαση151
(carry-lookahead adder) σύμφωνα με την εξίσωση πουείδαμε πριν καθυστέρηση 3 πύλες!
Ταχείς ΑθροιστέςΣε κάθε επίπεδο i, 0 <= i <n, το κρατούμενο ci μπορεί να υπολογιστεί με ένα S-o-P κύκλωμα δυο επιπέδων AND-OR
l k h d ddστον carry-lookahead adder
Όσο ο αριθμός των bit n μεγαλώνει, μεγαλώνει και το κύκλωμα του κρατουμένου. Ιεραρχική σχεδίαση carry-lookahead adders για μεγάλες τιμές του n με blocks από μικρότερους αθροιστές:
Block
x31 24– y31 24– x15 8– y15 8–
c8
x7 0– y7 0–
Block Block 32Blockc32 c24
s31 24
c16
s15 8 s7 0
c03Block
1Block
0 n = 32
4 block από 8 bit
Ψηφιακή Σχεδίαση152
s31 24– s15 8– s7 0–
CARRY-LOOKAHEADτο καθένα
Ταχείς ΑθροιστέςΟ προηγούμενος αθροιστής έχει καθυστέρηση λόγω των τεσσάρων επιπέδων blocks που είναι φτιαγμένος
Κυκλώματα διάδοσης (lookahead) κρατουμένου μπορούν να υπολογίσουμε το κρατούμενο μειώνοντας το delay όπως πριν!
Block
x 15 8 – y 15 8 – x 7 0 – y 7 0 –
3 Block1 Block0 c0
x 31 24– y 31 24–
Block 3 Block 1 Block 0 c 0
s 7 0 –
P 0 G 0 P 1 G 1 P 3 G 3
s 15 8 –s 31 24–
c 24
c 8c 16c 32
Ψηφιακή Σχεδίαση153lookahead 2ου επιπέδου
8 1632
Πολλαπλασιασμός
Για να πολλαπλασιάσουμε ένα δυαδικό αριθμό x2 απλάμετατοπίζουμε όλα τα bits αριστερά και εισάγουμε ένα 0στο πιο δεξιό bit (ολίσθηση στα αριστερά - left shift)
Αν B = bn-1bn-2…b1b0 τότε 2xB = bn-1bn-2…b1b00
και 2k x B = bn-1bn-2…b1b000…0k φορές
Ισχύει για signed και unsigned αριθμούς
k φορές
Ψηφιακή Σχεδίαση154
Παράδειγμα: B = 0101= 510 και 2xB = 1010 = 1010
Πολλαπλασιασμός
ΥΠΟΣΗΜΕΙΩΣΗ.....
Η διαίρεση γίνεται με τον αντίθετο τρόπο, δηλαδή ολίσθησηστα δεξιά εισάγοντας 0 ως το νέο (όχι το πρόσημο) MSBστα δεξιά εισάγοντας 0 ως το νέο (όχι το πρόσημο) MSB
Παράδειγμα:ρ γμ
Β = 01010 = 1010 B/2 = 00101= 510
Β = 11100 = -1210 B/2 = 10110 = -610
Ψηφιακή Σχεδίαση155
Πολλαπλασιασμός
M = m3m2m1m0
´1 1 1 01 0 1 1
Πολλαπλασιαστέος MΠολλαπλασιαστής Q
(14)(11)
Q = q3q2q1q0
P = p7p6…p1p01 1 1 0
1 1 1 00 0 0 0ΑΛΓΟΡΙΘΜΟΣ:ΑΛΓΟΡΙΘΜΟΣ:
1 1 1 0
1 0 0 1 1 0 1 0Γινόμενο Ρ (154)
P=0Αν q0 = 1 τότε P=P+Μ
Αν q1 =1 τότε P=P+2M…..κλπ....
Ψηφιακή Σχεδίαση156
Πολλαπλασιασμός
(11)Πολλαπλασιαστέος M
1 1 1 0(14)Πολλαπλασιαστής Q´
1 1 1 0
1 0 1 1
1 1 1 0+Μερικό γινόμενο 0
1 1 1 0+
1 0 1 0 10 0 0 0+
Μερικό γινόμενο 1
1 0 0 1 1 0 1 0Γινόμενο P (154)
0 1 0 1 01 1 1 0+
Μερικό γινόμενο 2
Ψηφιακή Σχεδίαση157
1 0 0 1 1 0 1 0Γινόμενο P (154)
Πολλαπλασιασμός
Το παράδειγμα πολλαπλασιασμού που είδαμε είναι γιαΤο παράδειγμα πολλαπλασιασμού που είδαμε είναι γιααριθμούς με αριθμό bit n=4 (το αποτέλεσμα μπορεί ναέχει μέχρι 8 bits)
Ο προηγούμενος πολλαπλασιαστής έχει (σχετικά) μικρήκαθυστέρηση αλλά για μεγάλες τιμές n (n>32) χρειάζεταιπολλές πύλες
Αργότερα θα σχεδιάσουμε γρήγορους πολλαπλασιαστέςΑργότερα θα σχεδιάσουμε γρήγορους πολλαπλασιαστές με μικρότερο αριθμό πυλών
Ψηφιακή Σχεδίαση160
Αναφορά ΎληςΑναφορά Ύλης
• 5.1, 5.2,• 5.3.1, 5.3.2, 5.3.3 , ,
(μόνο πρόσθεση), 5.3.5
• 5.4• 5.5• 5.6 (όχι το 5.6.2)• 5.7.2
Ψηφιακή Σχεδίαση161
Κεφάλαιο Κεφάλαιο 66
• Βασικές Δομές Συνδυαστικών Κυκλωμάτων:
– Πολυπλέκτες (multiplexers) και εφαρμογές τους– FPGAs (ξανά...)
– Αποκωδικοποιητές (decoders)
Κωδικοποιητές (encoders)– Κωδικοποιητές (encoders)
– Μετατροπές κωδικών
Ψηφιακή Σχεδίαση162
Πολυπλέκτης
Ο πολυπλέκτης (multiplexer ή MUX) έχει n γραμμές εισόδου ης ( p ή ) χ γρ μμ ςI=I0I1…In, μια γραμμή εξόδου O και μια γραμμή επιλογής S.
Ανάλογα με την τιμή της γραμμής επιλογής η τιμή τηςΑνάλογα με την τιμή της γραμμής επιλογής, η τιμή της κατάλληλης εισόδου εμφανίζετε στην έξοδο:
S=4 O=I4S=2 O=I2 κοκ...
Ο αριθμός των bit της γραμμής επιλογής S είναι logn (γιατι;;)Ο αριθμός των bit της γραμμής επιλογής S είναι logn (γιατι;;)
Ο πολυπλέκτης έχει πολλές εφαρμογές (υλοποίηση ή έ δ ύλ λ )
Ψηφιακή Σχεδίαση163
συναρτήσεων, γραμμές διαύλων κλπ)
Πολυπλέκτης
f
s
w0 00
fs
w02-to-1 multiplexer
(a) Γραφικό σύμβολο
fw1 1
(b) Πίνακας Αληθείας
01
w0
w1
2-to-1 multiplexer
Επιλέγει μεταξύ δυο γραμμών2-προς-1 MUX
w0
εισόδου W=w0w1
Η γραμμή επιλογής S είναι 1 bitfs
Η γραμμή επιλογής S είναι 1 bit.Στο Κεφ. 2 υπολογίσαμε ότι:
f = s’ w0 + sw1 w1
(c) Sum-of-products κύκλωμα
f s w0 + sw1
Ψηφιακή Σχεδίαση164
( ) p μ
Πολυπλέκτης
• Ουσιαστικά ο πολυπλέκτης υλοποιεί την εντολή λογισμικού ή γ μ
if s then w1 else w0
f
s
w0
w0
0
fs
w0w1 1 1 w1
Ψηφιακή Σχεδίαση165
Πολυπλέκτης4-to1 multiplexer
Επιλέγει μεταξύ τεσσάρων γραμμών εισόδου W=w0w1w 2 w3
Η γραμμή επιλογής S είναι 2 bit και έχουμε ότι:γρ μμή γής χ μ
f = 1’s0’w0+s1’s0w1+s1s0’w2+s1s0w3
s 1
w 0 00 w 0
s 0
0
f s 1
0
s 0
f w 1 01
0 w 1 w 2
w 3
10
11
0
1
1
1
0
1
w 2 w 3
Ψηφιακή Σχεδίαση166
(b) Πίνακας Αληθείας(a) Γραφικό Σύμβολο
ΠολυπλέκτηςΙΕΡΑΡΧΙΚΗ ΣΧΕΔΙΑΣΗ ΠΑΡΑΔΕΙΓΜΑ ΙΙΕΡΑΡΧΙΚΗ ΣΧΕΔΙΑΣΗ ΠΑΡΑΔΕΙΓΜΑ ΙΜπορούμε να σχεδιάσουμε τονΜπορούμε να σχεδιάσουμε τον4-to-1 MUX ιεραρχικά χρησι/ντας2-to-1 MUXes! 0
s 1
s
w 0 0
w 1 1
f 0
w 2
w0
1 Γιατί δουλεύει τοδιπλανό κύκλωμα;;
Ψηφιακή Σχεδίαση168
w 3 1
ΠολυπλέκτηςΙΕΡΑΡΧΙΚΗ ΣΧΕΔΙΑΣΗ ΙΕΡΑΡΧΙΚΗ ΣΧΕΔΙΑΣΗ ΠΑΡΑΔΕΙΓΜΑ ΙΙΠΑΡΑΔΕΙΓΜΑ ΙΙ
s 1
w 0
s 0
ΠΑΡΑΔΕΙΓΜΑ ΙΙΠΑΡΑΔΕΙΓΜΑ ΙΙΣχεδιασμός 16-to-1 MUX με 4-to-1 MUXes
w 3
με 4 to 1 MUXesw 4
w 7
s 3
s 2
f
w 8
w11
f
w 11
w 12
Ψηφιακή Σχεδίαση169
w 15
FPGAsΤα Field Programmable Logic Arrays (FPGAs) είναι κανονικέςδομές που χρησιμοποιούνται συχνά για πρωτοτυποποίησηδομές που χρησιμοποιούνται συχνά για πρωτοτυποποίησηκαι για κυκλώματα με μικρό αριθμό παραγωγής αγοράς
I/Oi
LUT
κανάλιαδρομολόγησης
προγραμματιζόμενοςδρομολογητής διακόπτης
pin
δρομολόγηση
Ψηφιακή Σχεδίαση170
Look-Up Table (LUT)
FPGAsΤα LUTs μπορούν να προγραμματιστούν για οποιαδήποτεσυνάρτηση n εισόδων (για μικρές τιμές του n=2, 3, 4 κλπ)
Οι διακόπτες συνδέουν τα LUTs με τη δρομολόγηση
Οι προγραμματιζόμενοι δρομολογητές συνδέουν τα διάφοραάλ ξύκανάλια μεταξύ τους
Προγραμματισμένοςδρομολογητής
Ψηφιακή Σχεδίαση171
FPGAsΔοθέντος σχεδίου ενός multi-level κυκλώματος, πρώτα γίνετεη απεικόνιση (placement) «κομματιών» πυλών του κυκλώματος στα LUTs και μετά προγραμματίζονται οι συνδέσεις τηςστα LUTs και μετά προγραμματίζονται οι συνδέσεις της δρομολόγησης (routing) της FPGA.
Το Quartus είναι CAD εργαλείο που αυτοματοποιεί την διαδικασία!Το Quartus είναι CAD εργαλείο που αυτοματοποιεί την διαδικασία!
multi-level
Κύκλος Σχεδίασης
multi-level synthesis
FPGA placement
Ψηφιακή Σχεδίαση172
FPGA routing
FPGAsΑΠΕΙΚΟΝΙΣΜΕΝΟ ΚΥΚΛΩΜΑ ΑΠΕΙΚΟΝΙΣΜΕΝΟ ΚΑΙ
(Αρχιτεκτονική FPGA) ΔΡΟΜΟΛΟΓΗΜΕΝΟ ΚΥΚΛΩΜΑ
Ψηφιακή Σχεδίαση173
FPGAs και ΠΟΛΥΠΛΕΚΤΕΣΠως μπορούμε να χρησιμοποιήσουμε πολυπλέκτες για να κατασκευάσουμε δρομολογητές;
προγραμματιζόμεναbits
Ψηφιακή Σχεδίαση174
ΜΕΤΑΓΩΓΕΙΣ και ΠΟΛΥΠΛΕΚΤΕΣ
N x K N x K ΜεταγωγέαςΜεταγωγέαςεπιτρέπει την σύνδεση N εισόδων σε K εξόδουςεπιτρέπει την σύνδεση N εισόδων σε K εξόδους
x 1 0
1
s
y 1
x y
s
x 2 0
1
s
y 2
x 1
x 2
y 1
y 2
2x2 μεταγωγέας Υλοποίηση με πολυπλέκτη
Ψηφιακή Σχεδίαση175
ΣΥΝΘΕΣΗ ΣΥΝΑΡΤΗΣΕΩΝ ΜΕ ΠΟΛΥΠΛΕΚΤΕΣ
Μπορούμε να χρησιμοποιήσουμε πολυπλέκτες για ναυλοποιήσουμε (συνθέσουμε) συναρτήσεις !
w 1
0 1
0 1
w 2
0 0 1
f w 1
0
w 2
(a) Σύνθεση με 4 to 1 multiplexer
f 1 1 1 0
0 1 1
1 0 1
1 0
(a) Σύνθεση με 4-to-1 multiplexer
00
f w 1
0
w 2 w 1
f w 1 0 1
0 0 1 1
1 0 1
0
1 0
f w 2
1 0 1
w 2 w 2
Ψηφιακή Σχεδίαση176
(b) Τροποποιημένος Truth Table (c) Κύκλωμα
ΣΥΝΘΕΣΗ ΣΥΝΑΡΤΗΣΕΩΝ ΜΕ ΠΟΛΥΠΛΕΚΤΕΣ
Άλλο παράδειγμα με 4x1 πολυπλέκτη (MUX)........
fw1 w2w1 w2 w3 f
w3
w300
011
101
0
1
0 00 11 01 1
0001
0000
w1
0
w2
1 1 11 1 10 00 11 0
011
0111
f
1
w3
1 1 11
(a) Τροποποιημένος Truth Table (b) Κύκλωμα
Ψηφιακή Σχεδίαση177
(a) Τροποποιημένος Truth Table
ΣΥΝΘΕΣΗ ΣΥΝΑΡΤΗΣΕΩΝ ΜΕ ΠΟΛΥΠΛΕΚΤΕΣ
Και άλλο παράδειγμα με 4x1 MUX που υλοποιεί συνάρτηση....
0 0 0
w 1 w 2 w 3 f
0
w 1
w 2
0 0 0 1 1 0 1 1
0 1 1 0
0 0 0 0 w 3
w 3
w 3
f
1 1 0 0 0 0 1 1 0
1 0 0
0 1 1 1
3
w3
w 3
1 1 1 1 w 3
(a) Τροποποιημένος Truth Table (b) Κύκλωμα
Ψηφιακή Σχεδίαση178
(a) Τροποποιημένος Truth Table
ΣΥΝΘΕΣΗ ΣΥΝΑΡΤΗΣΕΩΝ ΜΕ ΠΟΛΥΠΛΕΚΤΕΣ
...τελευταίο παράδειγμα.........
0 0 0
w 1 w 2 w 3 f
0 fw10 0 0 1 1 0 1 1
0 0 0 1
0 0 0 0
0 1
f w 1
w 2 w 3 w 2 w 3 +
w 3
w 1 w 2
0 0 0 1 1 0
0 1 1
1 1 1
f 3
1 1 1 1
(a) Τροποποιημένος Truth Table (b) Κύκλωμα
Ψηφιακή Σχεδίαση179
(a) Τροποποιημένος Truth Table
ΣΧΕΣΗ ΤΟΥ SHANNONΠως μπορούμε αλγοριθμικά να υλοποιήσουμε συναρτήσειςμε πολυπλέκτες?μ ς
Χρησιμοποιούμε την Σχέση του Shannon ανάγοντας μεταβλητές που γίνονται γραμμές επιλογής του πολυπλέκτη !μεταβλητές που γίνονται γραμμές επιλογής του πολυπλέκτη !
Σχέση του Shannon
f (w1, w2, … wn) = w1’ f(0, w2, …, wn) + w1 f (1, w2, …wn)
Προηγούμενο Παράδειγμα: f = w1’w2w3 + w1w2’w3 + w1w2w3’ + w1w2w3
[ = w1’ (w2w3) + w1 (w2’w3 + w2w3’ + w2w3) ]
Ψηφιακή Σχεδίαση180
[ = w1 (w2w3) + w1 (w2 w3 + w2w3 + w2w3) ]= w1’ (w2w3) + w1 (w2 + w3)
ΣΧΕΣΗ ΤΟΥ SHANNONw 1 Παράδειγμα:
f
w 2
w 3
f = w1’w3’ + w1w2 + w1w3
Υλοποίηση με 2-to-1 MUX(a) Using a 2-to-1 multiplexer
Υλοποίηση με 2 to 1 MUX(αναγωγή μιας μεταβλητής w1)
1’( 3’) + 1 ( 2+ 3)w 1
w 2
w 3
… = w1’(w3’) + w1 (w2+w3)
Υλοποίηση με 2-to-4 MUXf
1 (αναγωγή μεταβλητών w1, w2)
…= w1’w2’(w3’) + w1’w2(w3’)
Ψηφιακή Σχεδίαση181
(b) Using a 4-to-1 multiplexer… w1 w2 (w3 ) + w1 w2(w3 )
+ w1w2’(w3) + w1w2 (1)
Αποκωδικοποιητής (Decoder)
Στον αποκωδικοποιητή (decoder) η κάθε έξοδο αντιστοιχεί σεέ δ ό όδ ( i 0101 5 έξ δ λ ) άένα συνδιασμό εισόδων ( in=0101 5η έξοδο κλπ) και υπάρχειγραμμή ενεργοποίησης (enable).
0
w
nείσοδοι 2 n
έξοδοι
y 0 w
w n 1 –
EnΕνεργοποίηση(enable)
έξοδοιy 2 n 1 –
Ψηφιακή Σχεδίαση182
Αποκωδικοποιητής (Decoder)
Αποκωδικοποιητής 2Αποκωδικοποιητής 2xx44
w 1
w 0
y 0
0 0 1
y 0 w 1
0
w 0
1 1
En
01
y 1
10
y 2
00
y 3
00
w 0 y 0 w 1 y 1
y 1
0 1 1
1 0 1
x x
1
0
1 1
0 0 0 0
1 0 0 0
0 1 0 0
0 0 1 0
En
y 2 y 3
(b) Γραφικό
y 2
(a) Πίνακας Αληθείας(b) Γραφικό
Σύμβολο
(c) Κύκλωμα
y 3
En
Ψηφιακή Σχεδίαση183
Αποκωδικοποιητής (Decoder)
Αποκωδικοποιητής 3Αποκωδικοποιητής 3xx8 χρησιμοποιώντας δυο8 χρησιμοποιώντας δυοαποκωδικοποιητέςαποκωδικοποιητές 2x4 (2x4 (ιεραρχική σχεδίασηιεραρχική σχεδίαση))αποκωδικοποιητές αποκωδικοποιητές 2x4 (2x4 (ιεραρχική σχεδίασηιεραρχική σχεδίαση))
w2
w 0 y 0 y 1 y 2 y
w 0 y 0 w 1 y 1
y 2
w 1
2x42x4w 2 y 3 En y 3
w y yE w 0
En
y 0 w 1 y 1
y 2 y 3
y 4 y 5 y 6 y 7
En
2x42x4
Ψηφιακή Σχεδίαση184
En y3 y7
Αποκωδικοποιητής (Decoder)w 0 y 0
y 1 y 2 y3
w 0
En
y 0 w 1 y 1
y 2 y3
w 1 Ξανά μπορούμε ναΞανά μπορούμε ναχρησιμοποιήσουμεχρησιμοποιήσουμε y 3 En y 3
w 0 y 0 w 1 y 1
y 4 y 5
χρησιμοποιήσουμεχρησιμοποιήσουμειεραρχική σχεδίασηιεραρχική σχεδίασηγια να κάνουμε έναγια να κάνουμε ένα
δ ήδ ήw 2 En
1 y1 y 2 y 3
y5 y 6 y 7 w 0 y 0
w 1 y 1 y 2
w 3
αποκωδικοποιητήαποκωδικοποιητή44xx16 χρησιμοποιώντας 16 χρησιμοποιώντας δυο διαφορετικούςδυο διαφορετικούς
w 0
En
y 0 w 1 y 1
y 2 y 3
y 8 y 9 y 10y 11
En y 3 Enφ ρ ςφ ρ ς
αποκωδικοποιητές 2αποκωδικοποιητές 2xx44
w 0 y 0 w 1 y 1
y 2
y 12y 13y 14
Ψηφιακή Σχεδίαση185
Eny2 y 3
y14y 15
Αποκωδικοποιητής (Decoder)
Sel 1
Sel 0 0/1 0/1 0/1
Sel 2
1
υνση de
code
r
0/1 0/1 0/1
0/1 0/1 0/1 a 0
a 1 ∆ιεύθυ
m -to
-2 m
a m 1 –
Sel 2 m 1 – 0/1 0/1 0/1 Οι αποκωδικοποιητέςΟι αποκωδικοποιητέςείναι πολύ χρήσιμοιείναι πολύ χρήσιμοι
Read
είναι πολύ χρήσιμοιείναι πολύ χρήσιμοιγια την προσπέλασηγια την προσπέλασηγραμμών μνήμηςγραμμών μνήμηςROMROM στον Η/Υστον Η/Υ
Ψηφιακή Σχεδίαση186
d 0 d n 1 – d n 2 –DataROM ROM στον Η/Υστον Η/Υ
Kωδικοποιητής (Encoder)0 0 1
1 0
w 3 y 1
0
y 0
0 0
0
w 2
0 1
0
w 1
1 0
0
w 0
0 0
1 O δυαδικός κωδικοποιητής (encoder)δ ί λ ί 2n 1
1 0 1
0 1
1 0
0 0
0 0
πολλές γραμμέςd ’
κωδικοποιεί την πληροφορία 2n
εισόδων σε κώδικα μήκους n bit.
(b) Πίνακας Αληθείας
don’t care
2 n
i t
w 0 y 0 n t t
w 1
w 0
y0inputs
w 2 n 1 –y n 1 –
outputs y 0
w 2
w 3 y 1
Ψηφιακή Σχεδίαση187
(a) Γραφικό Σύμβολο (c) Κύκλωμα
Priority EncoderΣτον κωδικοποιητή προτεραιότητας (priority encoder) κάθεείσοδος έχει την δική του προτεραιότητα.είσοδος έχει την δική του προτεραιότητα.
Το w1 έχει μεγαλύτερη προτεραιότητα από το w0Το w2 έχει μεγαλύτερη προτεραιότητα από το w1 κοκ
w0 y1 y0 zw1w2w3
z=0 όταν όλες οιείσοδοι 0, αλλιώς 1
d00
01
d 011
1x
001
000
000
0
01
10
1 1 1
11
xxx
1xx
01x
001
Ψηφιακή Σχεδίαση188
x σημαίνει ότι «δεν μας ενδιαφέρει η τιμή του»
Priority Encoder
Μπορούμε να χρησι/με Πίνακες Karnaugh για να βρούμε τοκύκλωμα.......... ή απλά να χρησιμοποιήσουμε την λογική μας!
i0 = w3’w2’w1’w0i1 = w3’w2’w1i = w ’w
y0 = i1 + i3y1 = i2 + i3
i2 = w3 w2i3 = w3 z = i1 + i2 + i3 +i4
Ψηφιακή Σχεδίαση189
Μετατροπές ΚωδικώνΤο κύκλωμα “ανάβει” αριθμό 0...9 στο LED ανάλογα με τις τιμές των w0w1w2w3. Χρησιμοποιούμε τις τεχνικές Karnaugh
1
w 0 a
1
b
10
w 1
0
w 2
0
w 3
0
c
1
d
1
e
1
f
0
g
από το Κεφ.4 για να σχεδιάσουμε το κύκλωμα !
1 0 1 1
1 1 1
1
0 1
1 1
1
0 1
1 0 1
0
0
0 1 1
0
0
0 0 0
0
1
0 0 0
0
0
0 1 1
1
0
1 0
0
1 0
0 0 0
1
1
0 0
1
1 1 w 0
a
w1
b c
a
b f
1 0 1 0
0 1 1 0
1 1 1 0
0 0 0 1
1 1 1 1
0 1 1
0 1 1 1 1
1 0 1
1 0 1 0 1
1 0 1
1 1 1 0 1
c e
w 1 d w 2 w 3
e f g
g
d
1 0 0 1 1 1 1 1 0 1 1
6 γραμμές Karnaugh don’t care
Ψηφιακή Σχεδίαση190
(c) Πίνακας Αληθείας(a) Γραφικό Σύμβολο (β) LED επτά γραμμών
Κυκλώματα Σύγκρισης
Θέλουμε να συγκρίνουμε δυο αριθμούς. Ας πούμε ότι είναιμ γ ρ μ ρ μ ς ς μαριθμοί με 4 bit: a3a2a1a0 και b3b2b1b0.
Ας ορίσουμε ik = ( ak XOR bk)’ = ak XNOR bkς ρ μ k ( k k) k k
Τότε (eq = ίσο, gt = μεγαλύτερο, lt = μικρότερο):
AeqB = i3i2i1i0
AgtB = a3b3’+i3a2b2’+i3i2a1b1’+i3i2i1a0b0’g 3 3 3 2 2 3 2 1 1 3 2 1 0 0
AltB = (AeqB + AltB)’
Ψηφιακή Σχεδίαση191
Δίνει το κύκλωμα της επόμενης σελίδας...
Κυκλώματα Σύγκρισης
i 2
i 3
a 2
b 3
a 3
i 1
b 1
a 1
b 2
AeqB
i 0 b 0
a 0
AltB
AgtB
Ψηφιακή Σχεδίαση192
32 bit ALU
Μας ενδιαφέρει να χτίσουμε μια ALU 32 bits που να ς φ ρ χ μ μεκτελέι τις επόμενες αριθμητικές και λογικές πράξεις:
- προσθέτει (add)προσθέτει (add)- αφαιρεί (sub)- and- or- set on less than (slt #1 if rs < rt else 0)- ισότηταη
Ψηφιακή Σχεδίαση195
32 bit ALUΑναπαράσταση (abstraction) Πολυπλέκτη πολλών (32) γραμμών:
Select
Mu
Select
A31
C31Select
32A
ux
B31
C31
Mux
C32
32
B
AMux
B30
A30
C30...
Mu
A0
C0
...
Ψηφιακή Σχεδίαση197
ux
B0
C0
32 bit ALU• Η σχεδίαση δεν είναι εύκολη διαδικασία ....
– Δεν θέλουμε πύλες με πολλές εισόδους (fan-ins)μ ς μ ς ς ( )– Δεν θέλουμε μονοπάτια από πολλές πύλες (καθυστέρηση)– Εύκολο να τη καταλάβουμε !!!
• 1-bit ALU για πρόσθεση (full-adder που μελετήσαμε πριν):1 bit ALU για πρόσθεση (full adder που μελετήσαμε πριν):
cout = a b + a cin + b cin
CarryIn
a out in insum = a xor b xor cinSum
b
+FULL ADDER
• Πως να χτίσουμε 1-bit ALU για add, sub, and και or?• Πως να χτίσουμε ιεραρχικά την 32-bit ALU από αυτές του 1 bit?
CarryOut
Ψηφιακή Σχεδίαση199
ς χ μ ρ ρχ η ς
32 bit ALU
O p e ra t io nC a rry In
0a
C a rry In
OPERATION =
R e su lt1• 0 = and
• 1 = orb
21 or
• 2 = sumC a rry O u t
Ψηφιακή Σχεδίαση2001 bit ALU
32 bit ALUΠως εκτελούμε το a – b ?
Χ ύ 2 C l t t b + 1Χρησιμοποιούμε 2s Complement: not b + 1
Πως συμπληρώνουμε ένα bit?
Έξυπνη ιδέα ....
O peration
a
C arry InB invert
χρησιμοποιούμε τοCarryIn για ναπροσθέσουμε 1 !!
0
R esu lt1
προσθέσουμε 1 !!20
1
b
Ψηφιακή Σχεδίαση202
C arryO ut
32 bit ALUΜπορούμε να κάνουμε το ίδιο στο a και να πάρουμε το a NOR b !!
Binvert
a
CarryIn
OperationAinvert
a
01
0
1 Result
b2+
1
0
Ψηφιακή Σχεδίαση203CarryOut
32 bit ALU
Binvert CarryIn
OperationAinvertEντολή slt:
a0
1
01 if rs<rt else 0
Τσεκάρουμε (a b) αν
b
1
Result
0
Τσεκάρουμε (a-b), αν(a-b)<0 τότε a<b.
b2+
1
0
3Less
Xρησιμοποιούμε αυτή την κυψέλη γιατο τελευταίο bit της 3Less
Overflow
Set
Overflow
το τελευταίο bit τηςσειράς (σε κόκκινοοι αλλαγές hardware)
Ψηφιακή Σχεδίαση204
Overflowdetection
Overflow…
32 bit ALU
λBinvert CarryIn
OperationAinvert
… και αυτές τις κυψέλεςγια τα υπόλοιπα bits a
0
1
0
b
1
Result
0b2+
1
0
3Less
CarryOut
3
Ψηφιακή Σχεδίαση205
32 bit ALU
Εντολή ισότηταςa0
Operation
CarryIn
BnegateAinvert
a-b =0 a=ba0 CarryIn
ALU0Less
CarryOut
b0 Result0
a1 CarryInALU1Less
CarryOut
b1 Result1
0...
Zero
a2 CarryInALU2Less
CarryOut
b2 Result2
0
a31 CarryInALU31Less
b31
Result31
......
...
0 OverflowSet
CarryIn...
Ψηφιακή Σχεδίαση207
32 bit ALU
Binvert CarryIn
OperationAinvertΠΑΡΑΤΗΡΗΣΗ:Οι γραμμές operation
λ λέa
0
1
0του πολυπλέκτη καθορίζουν τηνλειτουργία της ALU !
b
1
2+
Result
00000 = and0001 = or
1
3Less
0001 or0010 = add0110 = sub0111 lt
CarryOut
0111 = slt1100 = NOR
Ψηφιακή Σχεδίαση208
32 bit ALUΠΡΑΞΗ OPCODE Operation Ainvert Binvert CarryIn
AND 000 00 0 0 0OR 001 01 0 0 0ADD 010 11 0 0 0ADD 010 11 0 0 0SUB 011 11 0 1 1NOR 100 11 1 1 0XOR 101 10 0 0 0Don’t Care 110 DC DC DC DCDon’t Care 111 DC DC DC DC
Ψηφιακή Σχεδίαση209
Κεφάλαιο Κεφάλαιο 77
• Ακολουθιακά κυκλώματα:
– Latches (μανδαλωτές) και Flip-Flops• SR Latch, D Latch,• D Flip-Flop, T Flip-flop, JK flip-flop
– Μετρητέςρη ς
– Καταχωρητές
Α λ θ ά λώ CAD λ ίΨηφιακή Σχεδίαση
210
– Ακολουθιακά κυκλώματα και CAD εργαλεία
Μανδαλωτής (Latch)
Η τιμή εξόδου των συνδυαστικών (combinational) κυκλωμάτων που έχουμε δει εξαρτάται απευθείας από τις τιμές εισόδων
Στα ακολουθιακά (sequential) κυκλώματα, χρησιμοποιούμεΣτα ακολουθιακά (sequential) κυκλώματα, χρησιμοποιούμε στοιχεία μνήμης που αποθηκεύουν τιμές. Το κύκλωμα προσομοιώνετε σε κύκλους χρόνου (cycles) και η τιμή εξόδουξ ά ό έ όδ ί ήεξαρτάται από τις τιμές εισόδων και τα στοιχεία μνήμης
(σε κάθε κύκλο)
A B στοιχείο μνήμης 1-bit(αλλά δεν είναι πρακτικό)
Ψηφιακή Σχεδίαση211
(αλλά δεν είναι πρακτικό)
Μανδαλωτής (Latch)Reset
Set Q
S R Qa Qb
0 00 1
0/11/00 1
QaR
χωρίς αλλαγήreset stateQ 0 1
1 01 1
0 11 00 0QbS
reset state
set state
( ) (β) ( )(α) (β) (γ)
Το Latch κρατά την προηγούμενη τιμή όταν S=R=0 αλλιώς ότανR=1τότε «μηδενίζεται» σε reset state.
S=1 και R=0 ονομάζεται set state
Ψηφιακή Σχεδίαση212
Μανδαλωτής (Latch)
Χρονοδιάγραμμα (χωρίς καθυστέρηση delay).Αρχικές συνθήκες: Q =0 και Q =1
1
t1 t2 t3 t4 t5 t6 t7 t8 t9 t10
Αρχικές συνθήκες: Qa=0 και Qb=1.
0
1
0
R
S0
1
0Qa ?
Χρόνος (time)
1
0Qb ?
Ψηφιακή Σχεδίαση213
Μανδαλωτής SR (SR Latch)Πολλές φορές μας ενδιαφέρει να μπορούμε να ενεργοποιήσουμεή όχι το σύστημα. Αυτό γίνετε με ένα ρολόι clock που λειτουργείή χ ημ γ μ ρ ργως enable του συστήματος (Clock=1 σύστημα ενεργοποιημένο).
Αυτό το στοιχείο μνήμης ονομάζετε SR Latchό ύ λ
R ′ R S R Clk Q t 1 + ( )
επόμενος κύκλοςρολογιού Q(t+1)
Q
Clock
x x 0 0 0 1 1 0
Q(t ) (χωρίς αλλαγή)
0 1
0 1 1 1
Q(t ) (χωρίςαλλαγή) S Q
Q
Clk
RQ
S S 1 1 1 x
Q R παρών κύκλοςρολογιού Q(t)
Ψηφιακή Σχεδίαση214
SR Latch Πίνακας Αληθείας Γραφικό Σύμβολο
Μανδαλωτής (Latch)
Χρονοδιάγραμμα SR Latch
1
R
Clk 0
1
0
Q
S 1
0
1
0?
Q
0
1
0
Time
?
Ψηφιακή Σχεδίαση215
Μανδαλωτής (Latch)
Μπορούμε να σχεδιάσουμε SR Latch μόνο με πύλες NAND πουάζ λ ό t i t !χρειάζονται λιγότερα transistors!
S Q
S R Clk Q t 1 + ( )
Clock
Q x x 0 0 0 1 1 0
Q(t ) (χωρίς αλλαγή)
0 1
0 1 1 1
Q(t ) (χωρίςαλλαγή)
R Q
1 1 1 x
Ψηφιακή Σχεδίαση216
SR Latch με NAND πύλες Πίνακας Αληθείας
Μανδαλωτής D (D Latch)
Το D Latch μπορεί και αποθηκεύει την τιμή data D στηνείσοδο του κυκλώματος Η τιμή του αλλάζει μόνο όταν τοείσοδο του κυκλώματος. Η τιμή του αλλάζει μόνο όταν το ρολόι Clock λαμβάνει την τιμή 1.
Q
S D (Data)
Clk D Q t 1 + ( )
R
Clock
Q
D Q
Q Clk
0 1 1
x 0 1
0 1
Q t ( )
R
D Latch Πίνακας Αληθείας Γραφικό Σύμβολο
Ψηφιακή Σχεδίαση217
μβ
Latches και DelayΗ τιμή του D που «κλειδώνεται» στο D Latch είναι αυτή κατά την διάρκεια που ο παλμός του ρολογιού αλλάζει από 1 σε 0
Η τιμή του D πρέπει να είναι σταθερή πριν (set-up time) και μετά(hold time) της αλλαγής του Clk 1 0.(hold time) της αλλαγής του Clk 1 0.
t su set up timesut h
Clk
hold time
D
Ψηφιακή Σχεδίαση219
Q
Flip-Flops
flipflip--flopflopή λ ή ό λ ή ά λλάζ ή άο ήχος της πλαστικής παντόφλας ή κάτι που αλλάζει τιμή συχνά
Τ D L t h λλάζ ή ξόδ Q λλάξ ήΤο D Latch αλλάζει την τιμή εξόδου Q αν αλλάξει η τιμή εισόδου D αν το Clock=1.
Χρειαζόμαστε στοιχεία μνήμης των οποίων η έξοδος Q αλλάζειτιμή μόνο μια φορά για κάθε κύκλο ρολογιού Clk=1 ανεξάρτητα από το πόσες φορές αλλάζει η είσοδος D.από το πόσες φορές αλλάζει η είσοδος D.
Το Master-Slave (Αφέντης-Σκλάβος) D Flip-Flop έχει αυτή την ιδιαιτερότητα
Ψηφιακή Σχεδίαση220
ιδιαιτερότητα.
Master-Slave D Flip-FlopΤο Qs «κλειδώνει» μόνο μια τιμή σε ένα κύκλο ρολογιού Clock:
D Q
Q
Master Slave
D
Clock
Q
Q
D Q
Q
Q m Q s
ClkClk
D Q
Q Clock Q Q Clk Clk Q
Master-Slave D Flip-Flop Γραφικό Σύμβολο
Clock
Master Slave D Flip Flop Γραφικό Σύμβολο
D
Q m
Q Q=
Ψηφιακή Σχεδίαση221
Q Q s =
Χρονοδιάγραμμα Master-Slave D FF
Edge Triggered D Flip-Flop
P31 Σε αντίθεση με το Master-Slave D flip-flop το
P15
2 Q
Master Slave D flip flop, τοedge-triggered (διέγερσημετώπου) D flip-flop αλλάζειό θ ή 0 1
Clock
5
6 Q
Q μόνο στην θετική 0 1 διέργεση
P2 6 3
Q
D Q
D P44 Q Clock
Ψηφιακή Σχεδίαση222
Κύκλωμα Γραφικό Σύμβολο
D Latches εναντίον D Flip-FlopTo latch αλλάζει τιμή εξόδου όταν Clk=1 (ευαισθησία στάθμης, edge triggered) ενώ το flip-flop στη διέγερση μετώπου (level sensitive).
D QD Q
triggered) ενώ το flip flop στη διέγερση μετώπου (level sensitive).
D Q
Q
D
Clock Q a
Q a
Clk
D
Clock latch
D Q
Q Q b
Q b
D
Q a
Q b
FF
D Q
Q Q c
Q c Q c
FF
Ψηφιακή Σχεδίαση223
Preset and Clear στα Flip-Flops
Πολλές φορές θέλουμε όλα τα flip-flops ενός κυκλώματος να ς φ ρ ς μ p p ς μ ςέχουν την ίδια 0 ή 1 τιμή
Χρησιμοποιούμε γραμμές preset (ενεργοποίησης) και reset ( ηδενι ού) ανεξάρ η ες α ό ο Clockreset (μηδενισμού), ανεξάρτητες από το Clock.
P t
D Q
Q
Preset
D
Clock Q
QClear
D Q
Clear
Clock QQ
Ψηφιακή Σχεδίαση224
T Flip-Flop
Το T flip-flop διατηρεί την τρέχουσα output κατάσταση ότανT 0 έ ό ί T 1T=0 και την αντιστρέφει όταν είναι T=1.
D Q
Q
Q
Q T
Clock
(a) Circuit
Ψηφιακή Σχεδίαση225
(a) Circuit
T Flip-Flop
T Q T Q t 1 + ( )
Q 0 1
Q t ( )
Q t ( )
Πίνακας Αληθείας Γραφικό Σύμβολο
Clock
T
Q
Ψηφιακή Σχεδίαση226
Χρονοδιάγραμμα T flip-flop
JK Flip-Flop
JD Q
Q
Q
QK
Clock
(a) Circuit
J Q
K
01
Q t 1+( )
Q t( )0
J
00
Q
1 000 111 Q t( )1
K
Ψηφιακή Σχεδίαση227
(b) Truth table (c) Graphical symbol
ΚΑΤΑΧΩΡΗΤΕΣ
Το κάθε flip-flop και latch αποθηκεύουν 1 bit πληροφορίας.
Όταν θέλουμε να αποθηκεύσουμε n bit πληροφορίαςχρησιμοποιούμε καταχωρητές
Οι καταχωρητές είναι συνήθως μια σειρά απο flip-flopsπου έχουν κοινό ωρολογιακό σύστημα.
Ψηφιακή Σχεδίαση228
ΚΑΤΑΧΩΡΗΤΕΣOut
t 0
t 1
1
0
0
1
0
0
0
0
0
0
Q 1 Q 2 Q 3 Q 4 = In
Ο καταχωρητής ολίσθησης 1
t 2
t 3
t
1
1
1
0
1
1
1
0
1
0
1
0
0
0
1
χ ρη ής η ης(shift register) μετατοπίζει (shifts)προς τα δεξιά (διαίρεση) ή προςτα αριστερά (πολλαπλασιασμός) t 4
t 5
t 6
1
0
0
1
1
0
1
1
1
0
1
1
1
0
1
τα αριστερά (πολλαπλασιασμός)
D Q D Q D Q D QIn OutQ 1 Q 2 Q 3 Q 4
t 7 0 0 0 1 1
D Q
Q Clock
D Q
Q
D Q
Q
D Q
Q
In Out
Ψηφιακή Σχεδίαση229
Δεξιός Ολισθητής
ΚΑΤΑΧΩΡΗΤΕΣ
Q3 Q2 Q1 Q0
Παράλληλη Έξοδος
Ο παράλληλος καταχωρητής
D Q
Q
D Q
Q
D Q
Q
D Q
Q
ρ η ς χ ρη ής(parallel-access shift register)έχει την δυνατότητα να μεταφέρειπαράλληλα n bit εισόδου:ρ η
• Shift/load = 0καταχωρητής ολίσθησης
• Shift/load = 1παράλληλο «φόρτωμα»
ClockΠαράλληλη ΕίσοδοςShift/LoadΣειριακή
ρ η φ ρ μτιμών εισόδου στουςκαταχωρητές
Ψηφιακή Σχεδίαση230
Παράλληλη ΕίσοδοςΕίσοδος
ΜΕΤΡΗΤΕΣ
Οι μετρητές (counters) είναι κυκλώματα που αυξάνουν (ήΟι μετρητές (counters) είναι κυκλώματα που αυξάνουν (ή μειώνουν) την τιμή τους κατά 1 (με κάποιο «σειριακό» τρόπο)
Χρήσιμα κυκλώματα για Η/Υ. Απαριθμούν χρονικά διαστήματα,ελέγχουν κομμάτια των εργασιών του Η/Υ κλπ
Ασύγχρονοι ή σύγχρονοι μετρητές
Ψηφιακή Σχεδίαση231
Ασύγχρονος Αύξοντας Μετρητής
T Q
Q Clock
T Q
Q
T Q
Q
1 Αύξοντας μετρητής μεT flip-flop (Q2Q1Q0):
Q 0 Q 1 Q 2
Clock
000 001 010 011 ...
Q 0
Q 1
Το ρολόι συνδέεται στατα Q outputs και έχει
1
Q 2
Count 0 1 2 3 4 5 6 7 0
μεγάλη καθυστέρηση
Ψηφιακή Σχεδίαση232
Count 0 1 2 3 4 5 6 7 0
Ασύγχρονος Φθίνοντας Μετρητής
T Q T Q T Q 1
Q Clock Q Q Φθίνοντας μετρητής μεT flip-flop (Q2Q1Q0):
Q 0 Q 1 Q 2
Clock
111 110 101 100 ...
Q 0
Q
Παρόμοια λειτουργίαόπως ο προηγούμενος
Q 1
Q 2
Ψηφιακή Σχεδίαση233
Count 0 7 6 5 4 3 2 1 0
Σύγχρονος Μετρητής
Ο ύ ύ έ έ άλΟι προηγούμενοι ασύγχρονοι καταχωρητές έχουν μεγάληκαθυστέρηση λόγω της διάδοσης ρολογιού.
Η καθυστέρηση μεγαλώνει όσο μεγαλώνει ο αριθμόςμέτρησης n των bits
Ο σύγχρονος μετρητής που θα δούμε είναι γρήγορος (ανεξάρτητα από τον αριθμό των bit n) διότι όλα τα flip-flops
δ ύ ό ίδ ύλ λ ύτροφοδοτούνται από το ίδιο κύλο ρολογιού
Ψηφιακή Σχεδίαση234
Σύγχρονος Μετρητής
0 0 0 0
Clock cycle Q 2 Q1 Q0 Q 1 αλλάζει
Q αλλάζει
Παρατηρώντας τηνλειτουργία ενός μετρητή:
0 11
1 0 1
1 2 3
0 04
0 0 0 1
Q 2 αλλάζειΤο Q0 αλλάζει σε κάθεκύκλο ρολογιού
00 1
0 1 0
4 5 6
1 17
11 1 1
Το Q1 μόνο όταν Q0 = 11 1 7 1 0 0 8 0Το Q2 μόνο όταν Q0=Q1=1
κοκ
Ψηφιακή Σχεδίαση235
...κοκ....
Σύγχρονος Μετρητής
T Q T Q T Q 1 T Q
Q Clock
Q Q
Q 0 Q 1 Q 2
Q
Q 3
Clock
Οι παραπάνωπαρατηρήσεις οδηγούνστην διπλανή
Q 0
Q 1
η ήκατασκευή σύγχρονουαύξοντα μετρητή:
Q 2
Q 3
Ψηφιακή Σχεδίαση236
Count 0 1 2 3 5 9 12 14 0 4 6 8 7 10 11 13 15 1
Σύγχρονος Μετρητής
Μπορούμε να έχουμε τον προηγούμενο μετρητή μεΜπορούμε να έχουμε τον προηγούμενο μετρητή μεγραμμές ενεργοποίησης (preset) και μηδενισμού (reset)
T Q
Q Clock
T Q
Q
Enable T Q
Q
T Q
Q
Clear
Ψηφιακή Σχεδίαση237
Μετρητής RING Για 4ρα bit, μετρά 1000 0100 0010 0001 1000 ....
Start
Q 0 Q 1 Q n 1 ”
set
D Q D Q D Q
Q Q Q
Clock
(a) An n -bit ring counter reset
Ψηφιακή Σχεδίαση238Q 0 Q 1 Q 2 Q 3
(a) An n -bit ring counter Μετρητής RING (με decoder) Q 0 Q 1 Q 2 Q 3
w 0 En
y 0
w 1
y 1 y 2 y 3
2-to-4 decoder
1
Clock
Two-bit up-counter
Q 1 Q 0 Clock
Start
Two bit up counter
Clear
Ψηφιακή Σχεδίαση239
(b) A four-bit ring counter
Μετρητής Johnson
Μετρά 0000 1000 1100 1110 1111 0111 0011 0001 ...
Q 0 Q 1 Q n 1 –
D Q D Q D QD Q
Q
D Q
Q
D Q
Q
Clock Reset
Ψηφιακή Σχεδίαση240
Αναφορά ΎληςΑναφορά Ύλης
• 7.1, 7.2, 7.3, 7.4, 7.5, 7.6• 7.8• 7.9.1, 7.9.2 (μόνο οι τρεις πρώτες σελίδες)
• 7.11.2, 7.11.3• 7.12• 7.13
Ψηφιακή Σχεδίαση241
ΚεφάλαιοΚεφάλαιο 88
• Σχεδίαση Ακολουθιακών Κυκλωμάτων• Μηχανές MooreΜηχανές Moore• Μηχανές MealyΠ ό VHDL• Προγραμματισμός με VHDL
Ψηφιακή Σχεδίαση242
Ακολουθιακή ΣχεδίασηΗ σχεδίαση ακολουθιακών κυκλωμάτων (sequential circuits)είναι πολύπλοκη σε σχέση με αυτή των συνδυαστικών κυκλωμάτων (combinational circuits) που είδαμε στα Κεφ. 2 & 4.
Δεν θα δούμε την θεωρία αλλά ένα παράδειγμα που μαςδίνει μια καλή γεύση του της διαδικασίας σχεδίασης
Combinational circuit Flip-flops Q
Είσοδος W
ΈξοδοςZ
Combinational circuit
ΓενικήΜορφή circuit
Clock
Q ΜορφήSequentialΚυκλώματος
Ψηφιακή Σχεδίαση243
Clock
Ακολουθιακή Σχεδίαση• Θα μελετήσουμε σύγχρονα ακολουθιακά κυκλώματα (υπάρχει δηλαδή ρολόι)κυκλώματα (υπάρχει δηλαδή ρολόι)
• Δεν θα μελετήσουμε ασύγχρονα....• Μηχανές Moore:
• Δεν υπάρχει η διακεκομμένη γραμμή στο προηγούμενο ήσχήμα
• Η έξοδος δεν εξαρτάται από την είσοδο
• Μηχανές Mealy• Μηχανές Mealy• Υπάρχει η διακεκομμένη γραμμή στο σχήμα• Η έξοδος εξαρτάται από την είσοδο
Ψηφιακή Σχεδίαση244
• Η έξοδος εξαρτάται από την είσοδο
Ακολουθιακή Σχεδίαση: Παράδειγμα 1ΠΡΟΔΙΑΓΡΑΦΕΣΠΡΟΔΙΑΓΡΑΦΕΣ
Θέλουμε να σχεδιάσουμε sequential κύκλωμα με μιαΘέλουμε να σχεδιάσουμε sequential κύκλωμα με μια είσοδο w και μια έξοδο z και γραμμή reset
Όλες οι αλλαγές του κυκλώματος να γίνονται στοΌλες οι αλλαγές του κυκλώματος να γίνονται στοθετικό μέτωπο του ρολογιού
• z=1 αν για τους δυο προηγούμενους παλμούς w=1• z=1 αν για τους δυο προηγούμενους παλμούς w=1• z=0 σε οποιαδήποτε άλλη περίπτωση•Προσοχή! Το z είναι 1 στο επόμενο κύκλο που w=1ρ χή μ
Κύκλος Ρολογιού: t 0 t 1 t 2 t 3 t 4 t 5 t 6 t 7 t 8 t 9 t 10w: 0 1 0 1 1 0 1 1 1 0 1
Ψηφιακή Σχεδίαση245
w: 0 1 0 1 1 0 1 1 1 0 1 z : 0 0 0 0 0 1 0 0 1 1 0
Ακολουθιακή Σχεδίαση: Παράδειγμα 1Reset
Δημιουργούμε ένα
B z 0 = ⁄ A z 0 = ⁄ w 0 =
w 1 =
w 0=
Δημιουργούμε έναΔιάγραμμα Καταστάσεων(state diagram) που έχειτρεις καταστάσεις (states) w 0 =
w 0 = w 1 =
τρεις καταστάσεις (states)A, B και C.
Η λ ί “A/ 0” ίC z 1 = ⁄
Η ορολογία “A/z=0” σημαίνει«στην κατάσταση A η τιμήτου z είναι 0”
w 1 = Τα βέλη δηλώνουν την νέακατάσταση σε σχέση με την
Δ ά Κ ά
Ψηφιακή Σχεδίαση246
τιμή εισόδου w και την παρούσα κατάσταση
Διάγραμμα Καταστάσεων
Ακολουθιακή Σχεδίαση: Παράδειγμα 1
Το προηγούμενο διάγραμμα μπορεί να εκφραστεί καιρ ηγ μ γρ μμ μ ρ φρμε ένα πίνακα καταστάσεων (state table)
Present Next state Outputstate 0 1 zstate w = 0 w = 1 z
A A B 0 B A C 0B A C 0 C A C 1
Ψηφιακή Σχεδίαση247
Ακολουθιακή Σχεδίαση: Παράδειγμα 1
Αφού έχουμε 3 καταστάσεις (states) θα χρησιμοποιήσουμε 2 μεταβλητές κατάστασης (state variable) για να τις2 μεταβλητές κατάστασης (state variable) για να τις κωδικοποιήσουμε:
y2y1
A 00A = 00B = 01 Κωδικοποίηση
C = 10
Χρειαζόμαστε 2 bits y2y1 για την παρούσα κατάσταση.
Για την επόμενη κατάσταση, θα ονομάζουμε τα
Ψηφιακή Σχεδίαση248
bits αυτά με κεφαλαία Y1Y2
Ακολουθιακή Σχεδίαση: Παράδειγμα 1
Χρησιμοποιώντας αυτή την κωδικοποίηση, ο πίνακας λ θ ί ί ξ ίαληθείας μπορεί να ξαναγραφεί ως:
Επόμενη κατάστασηΠαρούσα
Επόμενη κατάσταση
κατάσταση w = 0 w = 1 Έξοδος
z y 2 y 1 Y 2 Y 1 Y 2 Y 1
A 00 00 01 0 B 01 00 10 0B 01 00 10 0 C 10 00 10 1
11 dd dd d
Ψηφιακή Σχεδίαση249
don’t caresγιατί;;
Ακολουθιακή Σχεδίαση: Παράδειγμα 1Ο προη/νος πίνακας αληθείας μας επιτρέπει να γράψουμε πίνακεςKarnaugh για την επόμενη κατάσταση Y1Y2 σε σχέση με τις
w 00 01 11 10
y 2 y 1 Ignoring don't cares Using don't cares
1 2τωρινές καταστάσεις y1y2 και την είσοδο w του κυκλώματος:
w 00 01 11 100
1
0
1 0 Y 1 wy 1 y 2 =
d
d
0
0
0 Y 1 wy 1 y 2 =
g g g
w 00 01 11 100
1
0 d
1 d
y 2 y 1
Y 2 wy 1 y 2 wy 1 y 2 + = 0
0
0
1Y 2 wy1 wy 2 + =
w y y+( )=1 1 d 0 1
0 1 y 1 y 2
w y 1 y 2 + ( ) =
Ψηφιακή Σχεδίαση250
0
1
0
d z y 1 y 2 =
0
1 z y 2 =
Ακολουθιακή Σχεδίαση: Παράδειγμα 1
Οι υπολογισμοί από τουςπίνακες Karnaugh μας δίνουν το εξής D Q
Y 2 z
y 2
δίνουν το εξής ακολουθιακό κύκλωμα! Q
D Q Y 1
w y 1
Q
Clock
Ψηφιακή Σχεδίαση251
Clock Resetn
Ακολουθιακή Σχεδίαση: Παράδειγμα 1Κυματομορφή λειτουργίας με positive triggered flip-flops:
t 0 t 1 t 2 t 3 t 4 t 5 t 6 t 7 t 8 t 9 t 101 0
Clock
1
0
1
w
1
0
1
y 1
y20
y 2
1 z
Ψηφιακή Σχεδίαση252
0
Ακολουθιακή Σχεδίαση: Παράδειγμα 1USE ieee.std_logic_1164.all ;
ENTITY simple ISΚώδικας VHDL
ENTITY simple ISPORT ( Clock, Resetn, w : IN STD_LOGIC ;
z : OUT STD_LOGIC ) ;END simple ;
ΧρησιμοποιείTYPE για τις
ARCHITECTURE Behavior OF simple IS
TYPE State type IS (A B C) ;
γ ςκαταστάσεις
TYPE State_type IS (A, B, C) ;
SIGNAL y : State_type ;BEGIN
( l k )PROCESS ( Resetn, Clock )BEGIN
IF Resetn = '0' THENy <= A ;
Ψηφιακή Σχεδίαση253
y ;ELSIF (Clock'EVENT AND Clock = '1') THEN
con’t ...
Ακολουθιακή Σχεδίαση: Παράδειγμα 1CASE ISCASE y IS
WHEN A =>IF w = '0' THEN
y <= A ;ELSEELSE
y <= B ;END IF ;
WHEN B =>IF w = '0' THEN
y <= A ;ELSE
y <= C ;END IF ;
WHEN CWHEN C =>IF w = '0' THEN
y <= A ;ELSE
y <= C ;y <= C ;END IF ;
END CASE ;END IF ;
END PROCESS ;
Ψηφιακή Σχεδίαση254
;z <= '1' WHEN y = C ELSE '0' ;
END Behavior ;
Ακολουθιακή Σχεδίαση: Παράδειγμα 2Για το προηγούμενο παράδειγμα θα μπορούσαμε να χρησιμοποιήσουμε διαφορετική κωδικοποίηση καταστάσεων
y2y1
A = 00 Νέα Κωδικοποίηση
B = 01
C = 11 Τωρινό Επόμενο state
state w = 0 w = 1 Έξοδος
y 2 y 1 Y 2 Y 1 Y 2 Y 1 z
Μας δίνει το επόμενοA 00 00 01 0 B 01 00 11 0 C 11 00 11 1
10 dd dd d
ς μπίνακα αληθείας
Ψηφιακή Σχεδίαση255
10 dd dd d
Ακολουθιακή Σχεδίαση: Παράδειγμα 2
D Q Y 2
z y 2 Έχουμε εξισώσεις
Q Y1 = D1 = wY2 = D2 = wy1
Y 1w y 1
Z = y2
που μας δίνει ένα πιο D Q
Q
1
Clock
y1 που μας δίνει ένα πιοαπλοποιημένοκύκλωμα !
ResetnΆρα διαφορετική κωδικοποίηση δίνει πιο βέλτιστη λύση
Ψηφιακή Σχεδίαση256
η η β η η
Ακολουθιακή Σχεδίαση: Παράδειγμα 3
One hot encoding: χρησιμοποιεί ένα bit για κάθε κατάστασηOne hot encoding: χρησιμοποιεί ένα bit για κάθε κατάσταση
Αν Α, B, C = y3y2y1 = (001, 010, 100) τότε:Y ’Y1 = w’ Y2 = w y1Y3 = w y1’z = y3
Πολλές φορές (όχι εδώ...) το one hot encodingς φ ρ ς ( χ ) gδίνει μικρότερες συναρτήσεις
Ψηφιακή Σχεδίαση257
Ακολουθιακή Σχεδίαση
• Τα πρώτα τρία παραδείγματα ήταν μηχανέςΤα πρώτα τρία παραδείγματα ήταν μηχανές Moore– η έξοδος δεν εξαρτάται από την είσοδο στονη έξοδος δεν εξαρτάται από την είσοδο στον ίδιο κύκλο
• Στο επόμενο παράδειγμα δίνουμε μιαΣτο επόμενο παράδειγμα δίνουμε μια μηχανή Mealy
Ψηφιακή Σχεδίαση258
Ακολουθιακή Σχεδίαση: Παράδειγμα 4ΠΡΟΔΙΑΓΡΑΦΕΣΠΡΟΔΙΑΓΡΑΦΕΣ
Παρόμοιο με το παράδειγμα πριν αλλά το z δεν είναι 1 στονΠαρόμοιο με το παράδειγμα πριν, αλλά το z δεν είναι 1 στονεπόμενο κύκλο του w=1 αλλά στον δεύτερο μαζί με το w:
1 αν είναι ο δεύ ερος υνε ό ενος κύκλος ου 1• z=1 αν είναι ο δεύτερος συνεχόμενος κύκλος που w=1• z=0 σε οποιαδήποτε άλλη περίπτωση
Κύκλος Ρολογιού: t 0 t 1 t 2 t 3 t 4 t 5 t 6 t 7 t 8 t 9 t 10w: 0 1 0 1 1 0 1 1 1 0 1 z : 0 0 0 0 1 0 0 1 1 0 0
Ψηφιακή Σχεδίαση259
Διαφορετικέςαποκρίσεις με πριν
Ακολουθιακή Σχεδίαση: Παράδειγμα 4
Νέο διάγραμμα κατάστασης θέλει μόνο δύο καταστάσεις Α και Β προσέξτε τις αλλαγές στις μεταβάσεις που έχουν w/z σύμβολα- προσέξτε τις αλλαγές στις μεταβάσεις που έχουν w/z σύμβολα
Reset w 1 = z 0 = ⁄
A
w 0= z 0=⁄
w 1 = z 1 = ⁄ B w 0 = z 0 = ⁄
w 0 z 0 ⁄
Ψηφιακή Σχεδίαση260
Ακολουθιακή Σχεδίαση: Παράδειγμα 4σχεδιάζουμε όπως πριν.....
Present Next state Output z state w = 0 w = 1 w = 0 w = 1
A A B 0 0 B A B 0 1 … και παίρνουμε
Present Next state Outputstate w = 0 w = 1 w = 0 w = 1 Y = D = w
z = wyy Y Y z z
A 0 0 1 0 0 B 1 0 1 0 1
y
Ψηφιακή Σχεδίαση261
Ακολουθιακή Σχεδίαση: Παράδειγμα 4
D Qw
z Y
Clock
D Q
Q
w y
Resetn
t 0 t 1 t 2 t 3 t 4 t 5 t 6 t 7 t 8 t 9 t 101 0 1 0
Clock
w
1 0
1 0
y
z
Ψηφιακή Σχεδίαση262
0
Ακολουθιακή Σχεδίαση
Όπως είπαμε, η σχεδίαση ακολουθιακών (sequential)κυκλωμάτων είναι πιο πολύπλοκη από αυτή των συνδυαστικών (combinational).
Υπάρχουν δυο κατηγορίες ακολουθιακών κυκλωμάτων (καιδυο τύποι σχεδίασης) ανάλογα αν τα στοιχεία μνήμης διαθέτουν ρολόι ή όχι:
ΣύγχροναΑκολουθιακά Κυκλώματα (με ρολόι, Κεφ. 8)
ΑσύγχροναΑκολουθιακά Κυκλώματα (χωρίς ρολόι, Κεφ. 9)
Ψηφιακή Σχεδίαση263
Ακολουθιακή Σχεδίαση
• Τα ασύγχρονα ακολουθιακά δενΤα ασύγχρονα ακολουθιακά δεν χρησιμοποιούνται συχνά και δεν θα τα μελετήσουμεμελετήσουμε
• Πολύπλοκοι τρόποι σχεδίασης και έλλειψη CAD εργαλείωνCAD εργαλείων.
• Έχουν καλύτερη απόδοση και χαμηλότερη άλ έ !κατανάλωση ενέργειας !
Ψηφιακή Σχεδίαση264
ΠΑΡΑΔΕΙΓΜΑΤΑ ΣΧΕΔΙΑΣΗΣΠΑΡΑΔΕΙΓΜΑΤΑ ΣΧΕΔΙΑΣΗΣ
• Υλοποίηση διαύλου καταχωρητών
• Υλοποίηση απλού μικροεπεξεργαστή
• Υλοποίηση μετρητή αριθμού bits
• Αναφορά ύλης: 7 14 1 7 14 2 και 10 2 1 10 2 3
Ψηφιακή Σχεδίαση266
Αναφορά ύλης: 7.14.1, 7.14.2 και 10.2.1, 10.2.3
ΣΧΕΔΙΑΣΗ: Δίαυλος (bus)
• Ο δίαυλος (λεωφόρος, bus) επιτρέπει την μεταφορά δεδομένων μεταξύ διαφορετικών στοιχείων μνήμηςδεδομένων μεταξύ διαφορετικών στοιχείων μνήμης (καταχωρητές, RAM, σκληρός δίσκος, Ι/Ο, κλπ) και επεξεργαστήξ ργ ή
• Όπως κάθε σύστημα αποτελείτε από ένα datapath (που μεταφέρει τα δεδομένα) και ένα κύκλωμα ελέγχου (control circuit) πουκαθορίζει τα διάφορα στάδια της μεταφοράς
Θα δούμε και άλλη υλοποίηση του
Ψηφιακή Σχεδίαση267
διαύλου με FSM ακολουθιακές μηχανές.
ΣΧΕΔΙΑΣΗ: Δίαυλος (bus)Data
Extern
Bus
TA TH
Clock R 1 R 2 Rk DAT
PAT
R 1 in RkinR 1 out R 2 in R 2 out Rkout
TR
OL
CU
IT
Ψηφιακή Σχεδίαση268
Control circuit Function
CO
NT
CIR
C
ΣΧΕΔΙΑΣΗ: Δίαυλος (bus)
( ) bi θΚ καταχωρητές με Ν (ή n) bits ο καθέναςΆρα, ο δίαυλος (λεωφόρος, bus) έχει n καλώδια
Δεδομένα εισόδου (data) μετακινούνται στουςκαταχωρητές μέσω του διαύλου
Στο παράδειγμά μας, το control circuit εναλλάσσει (swaps) τα περιεχόμενα των καταχωρητών R1 και R2 σε τρια στάδια:
• R2 R3• R1 R2
R3 R1
Ψηφιακή Σχεδίαση269
• R3 R1
ΣΧΕΔΙΑΣΗ: Δίαυλος (bus)Βαθμίδα απομόνωσης τριών καταστάσεων (σελ. 173)(tri state device):
e
(tri-state device):
x f
x fe=0e x f
f
e=1
0 0 Z0 1 Z1 0 0 Z= high
Ψηφιακή Σχεδίαση270
x fe 11 0 0
1 1 1g
impedancestate
ΣΧΕΔΙΑΣΗ: Δίαυλος (bus)
Λεωφόρος (δίαυλος, bus) με 2 καταχωρητές 2-bit ο καθένας:
Ψηφιακή Σχεδίαση271
R1 R2
ΣΧΕΔΙΑΣΗ: Δίαυλος (bus)
Κύκλωμα ελέγχου (control circuit) με καταχωρητή ολίσθησης:Κύκλωμα ελέγχου (control circuit) με καταχωρητή ολίσθησης:
R 2 out R 3 in, R 1 out R 2 in, R 3 out R 1 in,
D Q
QCl k
D Q
Q
D Q
Q
w
Q Clock Q Q
Reset
Ψηφιακή Σχεδίαση272
Reset
ΣΧΕΔΙΑΣΗ: Δίαυλος (bus)LIBRARY ieee ;LIBRARY ieee ;USE ieee.std_logic_1164.all ;
ENTITY regn ISGENERIC ( N INTEGER 8 )GENERIC ( N : INTEGER := 8 ) ;PORT ( R : INSTD_LOGIC_VECTOR(N-1 DOWNTO 0) ;
Rin, Clock : IN STD LOGIC ;, _ ;Q : OUT
STD_LOGIC_VECTOR(N-1 DOWNTO 0) ) ;END regn ;
ARCHITECTURE Behavior OF regn ISBEGIN
PROCESSBEGIN
WAIT UNTIL Clock'EVENT AND Clock = '1' ;IF Rin = '1' THEN
Q <= R ;
Ψηφιακή Σχεδίαση273
Q <= R ;END IF ;
END PROCESS ;END Behavior ;
ΣΧΕΔΙΑΣΗ: Δίαυλος (bus)e
x f
LIBRARY ieee ;LIBRARY ieee ;USE ieee.std_logic_1164.all ;
ENTITY trin ISGENERIC ( N : INTEGER := 8 ) ;PORT ( X : IN STD_LOGIC_VECTOR(N-1 DOWNTO 0) ;
E : IN STD_LOGIC ;F : OUT STD LOGIC VECTOR(N-1 DOWNTO 0) ) ;F : OUT STD_LOGIC_VECTOR(N 1 DOWNTO 0) ) ;
END trin ;
ARCHITECTURE Behavior OF trin ISG
Ψηφιακή Σχεδίαση274
BEGINF <= (OTHERS => 'Z') WHEN E = '0' ELSE X ;
END Behavior ;
ΣΧΕΔΙΑΣΗ: Δίαυλος (bus)LIBRARY ieee ;USE ieee.std_logic_1164.all ;
ENTITY shiftr IS -- left-to-right shift register with async resetGENERIC ( K : INTEGER := 4 ) ;PORT ( Resetn, Clock, w : IN STD_LOGIC ;
Q : BUFFER STD_LOGIC_VECTOR(1 TO K) ) ;END shiftr ;
ARCHITECTURE Behavior OF shiftr ISBEGIN
R2out R3in R1out R2in R3out R1in
PROCESS ( Resetn, Clock )BEGIN
IF Resetn = '0' THENQ <= (OTHERS => '0') ;
D Q
QCl k
D Q
Q
D Q
Q
w
R 2 out R 3 in, R 1 out R 2 in, R 3 out R 1 in, ELSIF Clock'EVENT AND Clock = '1' THENGenbits: FOR i IN K DOWNTO 2 LOOP
Q(i) <= Q(i-1) ;END LOOP ;
Ψηφιακή Σχεδίαση275
Q Clock Q Q
Reset
Q(1) <= w ;END IF ;
END PROCESS ;END Behavior ;
ΣΧΕΔΙΑΣΗ: Δίαυλος (bus)LIBRARY ieee ;USE ieee.std_logic_1164.all ;
PACKAGE components ISCOMPONENT regn -- register
GENERIC ( N : INTEGER := 8 ) ;PORT ( R : IN STD_LOGIC_VECTOR(N-1 DOWNTO 0) ;
Rin, Clock : IN STD_LOGIC ;Q : OUT STD_LOGIC_VECTOR(N-1 DOWNTO 0) ) ;
END COMPONENT ;
COMPONENT shiftr -- left-to-right shift register with async resetGENERIC ( K : INTEGER := 4 ) ;PORT ( Resetn, Clock, w : IN STD_LOGIC ;
Q : BUFFER STD_LOGIC_VECTOR(1 TO K) ) ;END component ;
COMPONENT trin -- tri-state buffersGENERIC ( N : INTEGER := 8 ) ;PORT ( X : IN STD_LOGIC_VECTOR(N-1 DOWNTO 0) ;
Ψηφιακή Σχεδίαση276
E : IN STD_LOGIC ;F : OUT STD_LOGIC_VECTOR(N-1 DOWNTO 0) ) ;
END COMPONENT ;END components ;
ΣΧΕΔΙΑΣΗ: Δίαυλος (bus)
LIBRARY ieee ;USE ieee.std_logic_1164.all ;USE work.components.all ;
ENTITY swap ISPORT ( Data : IN STD_LOGIC_VECTOR(7 DOWNTO 0) ;
Resetn, w : IN STD_LOGIC ;Clock, Extern : IN STD LOGIC ;Clock, Extern : IN STD_LOGIC ;RinExt : IN STD_LOGIC_VECTOR(1 TO 3) ;BusWires : INOUT STD_LOGIC_VECTOR(7 DOWNTO 0) ) ;
END swap ;
Ψηφιακή Σχεδίαση277
ΣΧΕΔΙΑΣΗ: Δίαυλος (bus)
ARCHITECTURE Behavior OF swap ISSIGNAL Rin, Rout, Q : STD LOGIC VECTOR(1 TO 3) ;, , Q _ _ ( ) ;SIGNAL R1, R2, R3 : STD_LOGIC_VECTOR(7 DOWNTO 0) ;
BEGINcontrol: shiftr GENERIC MAP ( K => 3 )
PORT MAP ( Resetn, Clock, w, Q ) ;( , , , Q ) ;Rin(1) <= RinExt(1) OR Q(3) ;Rin(2) <= RinExt(2) OR Q(2) ;Rin(3) <= RinExt(3) OR Q(1) ;Rout(1) <= Q(2) ; Rout(2) <= Q(1) ; Rout(3) <= Q(3) ;( ) Q( ) ; ( ) Q( ) ; ( ) Q( ) ;
tri_ext: trin PORT MAP ( Data, Extern, BusWires ) ;reg1: regn PORT MAP ( BusWires, Rin(1), Clock, R1 ) ;reg2: regn PORT MAP ( BusWires, Rin(2), Clock, R2 ) ;g g ( ( ) )reg3: regn PORT MAP ( BusWires, Rin(3), Clock, R3 ) ;tri1: trin PORT MAP ( R1, Rout(1), BusWires ) ;tri2: trin PORT MAP ( R2, Rout(2), BusWires ) ;tri3: trin PORT MAP ( R3, Rout(3), BusWires ) ;
Ψηφιακή Σχεδίαση278
( ( ) )END Behavior ;
ΣΧΕΔΙΑΣΗ: ΜικροεπεξεργαστήςΟ μικροεπεξεργαστής (microprocessor) είναι το πιο βασικόκομμάτι ενός επεξεργαστή (Pentium, PowerPC, ARM κλπ)μμ ς ξ ργ ή ( , , )και εκτελεί δισεκατομμύρια «απλές εντολές» ανά δευτερόλεπτο
Το υλικό που ονομάζουμε μεταφραστής (compiler)Το υλικό που ονομάζουμε μεταφραστής (compiler)«μεταφράζει» τις εντολές γλώσσας ανώτατου επιπέδου(Java, C, C++, VHDL, κλπ) σε δεκάδες «απλές εντολές» που
λ ύ ά ξ ήεκτελούνται σειριακά στον μικροεπεξεργαστή
Οι καταχωρητές/δίαυλος αποτελούν το datapath ενώ το χ ρη ς ς pκύκλωμα ελέγχου ορίζει την σειριακή ακολουθία για τηνσωστή εκτέλεση των απλών εντολών
Ψηφιακή Σχεδίαση281
Στην προηγούμενη εικόνα, R0, R1, R2, R3, A και G είναικαταχωρητές Ν bits.
ΣΧΕΔΙΑΣΗ: Μικροεπεξεργαστήςρ ξ ργ ήςΟ μικροεπεξεργαστής θα εκτελεί τις επόμενες απλές εντολές:
Ψηφιακή Σχεδίαση282
όπου Rx και Ry είναι ένας από τους R0…R3 καταχωρητές.
ΣΧΕΔΙΑΣΗ: Μικροεπεξεργαστής
Η πρόσθεση/αφαίρεση θέλει 3 στάδια. Θα χρησι/ουμε έναν μετρητή και ένα αποκωδικοποιητή γιαΘα χρησι/ουμε έναν μετρητή και ένα αποκωδικοποιητή για το control circuit (κύκλωμα ελέγχου)
T T TT
y 0 y 1 y 2 y 3
T 1 T 2 T 3 T 0
idle mode(στάδιο
w 0 Enw 1
2-to-4 decoder«ηρεμίας»)
1
Q 1 Q 0Clock
Ψηφιακή Σχεδίαση283
Reset Up-counter
ClearΚύκλωμα I
ΣΧΕΔΙΑΣΗ: ΜικροεπεξεργαστήςX 0
y y y y
X 1 X 2 X 3 Y 0
y y y y
Y 1 Y 2 Y 3 I 0
y y y y
I 1 I 2 I 3
w 0 En
y 0
w 1
y 1 y 2 y 3
2-to-4 decoderw 0 En
y 0
w 1
y 1 y 2 y 3
2-to-4 decoderEn
y 0 y 1 y 2 y 3
2-to-4 decoderw 0 w 1
1 1 1
Clock F ti R i t f1 f0 εντολήFunction Register FRin
f f R R R R
f1 f0 εντολή
0 0 Load0 1 Move
Ψηφιακή Σχεδίαση284
f 1 f 0 Rx1 Rx0 Ry1 Ry0
Function
1 0 Add1 1 Sub
Κύκλωμα II
ΣΧΕΔΙΑΣΗ: Μικροεπεξεργαστήςclear = w’ T0 + Done και FRin = wT0
Για τις υπόλοιπες εντολές έχουμε ....
Ψηφιακή Σχεδίαση285
ΣΧΕΔΙΑΣΗ: ΜικροεπεξεργαστήςExtern = I0 T1
Done = (I0 + I1)T1 + (I2+I3) T3
Ain = (I2 + I3) T1Ain (I2 I3) T1
Gin = (I2 + I3) T2
μα II
I
Gout = (I2 + I3) T3
Κύκλω
AddSub = I3
R0in = (I0 + I1) T1 X0 + (I2 + I3) T3X0 παρόμοιες
Ψηφιακή Σχεδίαση286
0 ( 0 ) 0 ( 3) 3 0
R0out = I1T1Y0 + (I2 + I3) (T1X0 + T2Y0)
ρ μ ςεκφράσειςγια R1, R2
ΣΧΕΔΙΑΣΗ: Μικροεπεξεργαστής
Κύκλωμα I + Κύκλωμα II + Κύκλωμα III =ΚύκλωμαΕλέγχου(control circuit)( )
Διαβάστε την υλοποίηση σε VHDL από το βιβλίο (σελ 529-536) !!!από το βιβλίο (σελ. 529-536) !!!
Ψηφιακή Σχεδίαση287
ΣΧΕΔΙΑΣΗ: Μετρητής bits
• Θέλουμε να αποθηκεύσουμε (μετρήσουμε) σε έναν καταχωρητή Β τον αριθμό των 1 bit που περιέχει ένας καταχωρητής Α
B 0
Αλγόριθμος
B = 0 ; while A ≠ 0 do
if a 0 = 1 thenB = B + 1 ;B B + 1 ;
End if;Right-shift A ;
End while;
Ψηφιακή Σχεδίαση288
;
ΣΧΕΔΙΑΣΗ: Μετρητής bits
B 0 Load A
Reset
S1
Al ith i B 0 ←
s
Load A
0 0
1 s
AlgorithmicStateMachine s
S3
1
s
S2
Machine(ASM) για τονψευδοκώδικα
Done
1
Shift right A την προη/νηςσελίδας ...
B B 1 + ← 1
0
A 0 = ?
Ψηφιακή Σχεδίαση289
a 0 0
1
ΣΧΕΔΙΑΣΗ: Μετρητής bits0 Data
n log 2 n
L E Counter
w L E
Shift LBEBLA
EA
0
l kClock A
n
log 2 n
Υλικό για το ASMπου περιγράψαμε
B z a 0
ρ γρ ψ μ
LA/LB = loadEA/EB = enable
Ψηφιακή Σχεδίαση290
shift = ολισθητήςcounter = μετρητής
ΣΧΕΔΙΑΣΗ: Μετρητής bits
LB EB
Reset
S1
LB EB, EA
0 0
1 LA
0 1
Το παρών ASMδ ί
EA
s
S3
1
s LA
S2
D
κωδικοποιεί τοκύκλωμα ελέγχου(control circuit) για
EA
EB1
Done( ) γτο προηγούμενουλικό
EB z
0
0 Βοηθά για να γράψουμετην τελική VHDL( ό λίδ )
Ψηφιακή Σχεδίαση291
a 0 0
1
(επόμενη σελίδα)
ΣΧΕΔΙΑΣΗ: Μετρητής bitsLIBRARY ieee ;USE ieee.std_logic_1164.all ;LIBRARY work ;USE work.components.shiftrne ;p
ENTITY bitcount ISPORT(Clock, Resetn: IN STD_LOGIC ;LA, s: IN STD_LOGIC ;Data : IN STD LOGIC VECTOR(7 DOWNTO 0) ;Data : IN STD_LOGIC_VECTOR(7 DOWNTO 0) ;B : BUFFER INTEGER RANGE 0 to 8 ;Done : OUT STD_LOGIC ) ;
END bitcount ;
ARCHITECTURE Behavior OF bitcount ISTYPE State_type IS ( S1, S2, S3 ) ;SIGNAL y : State_type ;SIGNAL A : STD_LOGIC_VECTOR(7 DOWNTO 0) ;SIGNAL z, EA, LB, EB, low : STD LOGIC ;SIGNAL z, EA, LB, EB, low : STD_LOGIC ;
BEGINFSM_transitions: PROCESS ( Resetn, Clock )BEGIN
IF Resetn = '0' THENS1
Ψηφιακή Σχεδίαση292
y <= S1 ;… συνέχεια
ΣΧΕΔΙΑΣΗ: Μετρητής bitsELSIF (Clock'EVENT AND Clock = '1') THEN
CASE y ISWHEN S1 =>
IF s = '0' THEN y <= S1 ; ELSE y <= S2 ; END IF ;IF s = 0 THEN y <= S1 ; ELSE y <= S2 ; END IF ;WHEN S2 =>
IF z = '0' THEN y <= S2 ; ELSE y <= S3 ; END IF ;WHEN S3 =>
IF s = '1' THEN y <= S3 ; ELSE y <= S1 ; END IF ;IF s = 1 THEN y <= S3 ; ELSE y <= S1 ; END IF ;END CASE ;
END IF ;END PROCESS ;FSM outputs: PROCESS ( y s A(0) z )FSM_outputs: PROCESS ( y, s, A(0), z )BEGIN
EA <= '0' ; LB <= '0' ; EB <= '0' ; Done <= '0' ;CASE y IS
WHEN S1 =>WHEN S1 >LB <= '1' ; EB <= '1' ;IF s = '0' AND LA = '1' THEN EA <= '1' ; ELSE EA <= '0' ; END IF ;
WHEN S2 =>
Ψηφιακή Σχεδίαση293
WHEN S2 >EA <= '1' ;IF A(0) = '1' THEN EB <= '1' ; ELSE EB <= '0' ; END IF ;
… συνέχεια
ΣΧΕΔΙΑΣΗ: Μετρητής bitsWHEN S3 =>
Done <= '1' ;END CASE ;
END PROCESS ;-- The datapath circuit is described belowupcount: PROCESS ( Resetn, Clock )BEGIN
IF Resetn = '0' THEN0B <= 0 ;
ELSIF (Clock'EVENT AND Clock = '1') THENIF EB = '1' THEN
IF LB = '1' THENB <= 0 ;B <= 0 ;
ELSEB <= B + 1 ;
END IF ;END IF ;;
END IF;END PROCESS;low <= '0' ;ShiftA: shiftrne GENERIC MAP ( N => 8 )
Ψηφιακή Σχεδίαση294
PORT MAP ( Data, LA, EA, low, Clock, A ) ;z <= '1' WHEN A = "00000000" ELSE '0' ;
END Behavior ;
ΣΧΕΔΙΑΣΗ: Πολλαπλασιαστής• Είδαμε πως πολλαπλασιάζουμε δυο n-bit αριθμούς Α
x B στο Κεφ 5x B στο Κεφ 5.• Αν ο αριθμός n είναι μεγάλος, το κύκλωμα εκείνο δεν είναι αποδοτικό (πολύ hardware)είναι αποδοτικό (πολύ hardware)
Αλγόριθμος ΠολλαπλασιασμούP = 0 ; for i = 0 to n 1 do
if b i = 1 then–Multiplicand1
1 Multiplier10
01
11
´
Binary
1311´
Decimal
P = P + A ; end if; Left-shift A ;
d f
11011011
00001011
1313
143
Ψηφιακή Σχεδίαση295
end for;Product01 001111
ΣΧΕΔΙΑΣΗ: ΠολλαπλασιαστήςR t
AlgorithmicState P 0 ← Load A
Reset
S1
StateMachine(ASM) για τον s
Load A
0 0
1 s
Load B
( ) γψευδοκώδικατην προη/νηςσελίδας
S31
S2σελίδας ... Shift left A , Shift right B Done
P P A B 0 ?1
P P A + ← B 0 = ?
b0
0
Ψηφιακή Σχεδίαση296
b 0 0
1
ΣΧΕΔΙΑΣΗ: Πολλαπλασιαστής L L
0 DataA LA DataB LBn n n
Πολλαπλασιαστής L E
L E EA
A Cl k
B
EBShift-leftregister
Shift-right register
Απαραίτητο
Clock
+
2n n
hardwareSum
0 z b 0
+
2n 2n
DataP
Psel 1 0
2n
E RegisterEP
2n
Ψηφιακή Σχεδίαση297P
ΣΧΕΔΙΑΣΗ: ΠολλαπλασιαστήςAlgorithmicState
Reset
Psel 0= EP,S1
StateMachine(ASM) για τις
0
s0
1LA
EA
LB
EB
0
1
0
1
( ) γ ςγραμμές control του hardwareτην προη/νης
S3
01s
DS2
EAEB
P l 1 EAEBτην προη/νηςσελίδας ...
δ βάEP z
0
1
DonePsel 1= EAEB, ,
....να διαβάσετε τοκώδικα VHDL από το βιβλίο!!!!
b00
1
Ψηφιακή Σχεδίαση298
β β
ΚεφάλαιοΚεφάλαιο 1111
• Σύνοψη αυτοματοποιημένων τεχνικώνελέγχου ψηφιακών συστημάτων καιελέγχου ψηφιακών συστημάτων καικυκλωμάτων (Automated Test Pattern Generation)Generation)
• Ενσωματωμένος Αυτοματοποιημένος Έλεγχος
Ψηφιακή Σχεδίαση300
Έλεγχος Λογικών Κυκλωμάτων
Η κατασκευή (fabrication) μοντέρνων ολοκληρωμένων περιέχει εκατοντάδες εκατομμύρια transistors
Κατά την διάρκεια παραγωγής μπορούν να γίνουν σφάλματαΚατά την διάρκεια παραγωγής μπορούν να γίνουν σφάλματα(defects) όπως ένα transistor να είναι καμένο, μια γραμμή σύνδεσης να είναι σπασμένη κλπ.
Η διαδικασία ελέγχου λειτουργίας είναι μια χρονοβόρα διαδικασία όπου πολλά το κύκλωμα εξομοιώνεται γιαπολλά διανύσματα εισόδου/εξόδου με κατάλληλο hardwareελέγχου σφαλμάτων (design-for-testability).
Ψηφιακή Σχεδίαση301
Έλεγχος Λογικών Κυκλωμάτων
Ένα συνδυαστικό κύκλωμα με n εισόδους έχει 2n
πιθανές τιμές εισόδου/εξόδουπιθανές τιμές εισόδου/εξόδου
Για ένα ακολουθιακό κύκλωμα με m στοιχεία μνήμης οαριθμός αυτός είναι 2n+m
Αδύνατο να εξομοιώσουμε όλα αυτά τα διανύσματαακόμη και για μικρές τιμές των m και n (30, 40 κλπ) !!!!
Κατά την διάρκεια σχεδίασης χρησι/με αυτοματοποιημένεςΚατά την διάρκεια σχεδίασης χρησι/με αυτοματοποιημένεςCAD τεχνικές για να βρούμε διανύσματα «ποιότητας» με ταοποία αργότερα εξομοιώνουμε το chip
Δ δ ί A d T P G i (ATPG)
Ψηφιακή Σχεδίαση302
Διαδικασία Automated Test Pattern Generation (ATPG)
Έλεγχος Λογικών Κυκλωμάτων
Στο επίπεδο λογικού χρησιμοποιούμε «μοντέλα σφαλμάτων»(fault model) για να μοντελοποιήσουμε λάθη παραγωγής (defects)
stuck-at-0 (μόνιμα σε λογικό 0)/0
w
w/0
wstuck-at-1 (μόνιμα σε λογικό 1)
w/1
w
Ψηφιακή Σχεδίαση303
Έλεγχος Λογικών ΚυκλωμάτωνΠαράδειγμα κυκλώματος και σφαλμάτων που ανιχνεύουν τα διανύσματα
f
a
b
w 1
b
c d
w 2
w 3 Test Fault detected
w 1 w 2 w 3 a/0 a/1 b/0 b/1 c/0 c/1 d/0 d/1 f /0 f /1
000 √ √ √000 √ √ √
001 √ √ √ √
010 √ √ √ √
011 √ √ √ √√ √ √ √
100 √ √
101 √ √
110 √ √
Ψηφιακή Σχεδίαση304
√ √
111 √
Έλεγχος Λογικών Κυκλωμάτων
Όπως όταν πάμε στον γιατρόΌπως όταν πάμε στον γιατρό ....
.... ένα διάνυσμα που ανιχνεύει ένα λάθος σε ένα ελαττωματικό chip πρέπει να
A) να ευαισθητοποιεί (excite) το λάθος, και
B) να το διαδίδει (propagate) σε κάποια έξοδο (output) του chipB) να το διαδίδει (propagate) σε κάποια έξοδο (output) του chip
Ψηφιακή Σχεδίαση305
Automated Test Pattern GenerationX= don’t careA/B = τιμή σωστού/λάθος κυκλώματοςA/B τιμή σωστού/λάθος κυκλώματος
0XX
0 0/1 0 0/10X0...
11 1
...1 0/1
Ευαισθητοποίηση Διάδοση σε ouput
Ψηφιακή Σχεδίαση306
(fault excitation) (fault propagation)
Έλεγχος Λογικών Κυκλωμάτων
Αρχικό (σωστό) κύκλωμαΑρχικό (σωστό) κύκλωμαΑρχικό (σωστό) κύκλωμαΑρχικό (σωστό) κύκλωμα
bh
w1
w2
g
k
f
w3
ck
w4
Ψηφιακή Σχεδίαση307
Έλεγχος Λογικών ΚυκλωμάτωνD
1
Dw1w2
D
0
0
0
1
1
f
w3w4
D
1
1
Ανίχνευση λάθους Ανίχνευση λάθους b/0b/0Διανύσματαανίχνευσης
1
w1w2
1 D0
0
χ ηςεισόδου
f
w3w4
D
1 D0
D
Ψηφιακή Σχεδίαση308
w4 10
Ανίχνευση λάθους Ανίχνευση λάθους g/1g/1
Έλεγχος Λογικών Κυκλωμάτων
Η πολυπλοκότητα test ακολουθιακών κυκλωμάτων είναιπολύ δύσκολη λόγω των # των κύκλων που πρέπει ναπολύ δύσκολη λόγω των # των κύκλων που πρέπει ναεξομοιώσουμε που συνήθως είναι πολύ μεγάλος
Για αυτό το λόγο κατά την διάρκεια της σχεδίασης βάζουμεπαραπάνω hardware (scan-path= σάρωση διαδρομής) πουρ ( p ρ η ρ μής)μας επιτρέπει να διαβάζουμε/γράφουμε τις τιμές τωνστοιχείων μνήμης flip-flop
με αυτό το τρόπο τα flip-flops λειτουργούνσαν ψευδό-input/outputs !!
Ψηφιακή Σχεδίαση309
Έλεγχος Λογικών ΚυκλωμάτωνCombinational
circuit
z 1
z k
w 1
w n
Scan in= εισάγει τιμές
0 1
y 3 Y 3
Scan-out
DQ
Scan-in= εισάγει τιμέςσειριακά σταflip-flops
1
0y2 Y 2
D Q
Normal/Scan= 0 κανονικήλειτουργία 0
1 y 2 2
D Q λειτουργία.1 εισαγωγήbits με scan.
0 1
y 1 Y 1
D Q
Ψηφιακή Σχεδίαση310
Clock Scan-in Normal Scan⁄
Έλεγχος Λογικών ΚυκλωμάτωνΣτην διαδικασία αυτοματοποιημένου ελέγχου (build-inself-test) ένα 10-15% του chip αποτελείτε από ειδικάσχεδιασμένο hardware το οποίο παράγει διανύσματαεισόδου/εξόδου για να κάνει test το chip και αναλύει τιςαποκρίσεις αυτών των διανυσμάτων.αποκρίσεις αυτών των διανυσμάτων.
x 0
Γεννήτρια
p 0
Κύκλωμα Σ ήή ρ
ΔιανυσμάτωνΔοκιμής
Signaturex n 1 – p m 1 –
Κύκλωμα υπό έλεγχο
Συμπιεστής
Αναλυτής
Ψηφιακή Σχεδίαση311