Lecture Notes (Updated April 2011)

312
ΣΧΕΔΙΑΣΗ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΣΧΕΔΙΑΣΗ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Οικονομικό Πανεπιστήμιο Αθηνών Τμήμα Πληροφορικής Εαρινό Εξάμηνο Ψηφιακή Σχεδίαση 1

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)

Ιστορια Η/Υ: TransistorPoint Contact Semiconductor Amplifier

Ψηφιακή Σχεδίαση8

Ιστορια Η/Υ: Το πρώτο 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 (Ολοκληρωμένο Κύκλωμα)

Ιστορια Η/Υ: ICΤο 1961 Fairchild Flip Flop

Ψηφιακή Σχεδίαση10

Ιστορια Η/Υ: IC

Ψηφιακή Σχεδίαση11

1964, UA 702 1965, UA 709

Λογικές Πύλες (Logic Gates) • Χρησιμοποιώντας πολλά transistor φτιάχνουμε λογικές πύλες

• Σχεδιασμός πύλης NAND με 2 transistors (μώβ τετράγωνα):

transistor

Ψηφιακή Σχεδίαση12

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

Πολλές (>1000000) πύλες μαζί φτιάχνουν ολοκληρωμένα κυκλώματα (Very Large Scale of Integration) ή VLSI chips που χρησιμοποιούμε σε κάθε ηλεκτρική g g ) ή p χρη μ μ η ρ ήσυσκευή (mobile, TV, αυτοκίνητα, υπολογιστές, κλπ)

Ψηφιακή Σχεδίαση13

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

Μικροεπεξεργαστήςz990 της IBM

Ψηφιακή Σχεδίαση14

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

ΜικροεπεξεργαστήςPentium 4 της Intel

Ψηφιακή Σχεδίαση15

Intel Core Duo(2004)

Περισσότεροαπό 250 δισ.από 250 δισ.transistor!

Ψηφιακή Σχεδίαση16

Ολοκληρωμένα Κυκλώματα 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

Νόμος του Moore (1969)

Ψηφιακή Σχεδίαση22

Νόμος του Moore (1969)

Ψηφιακή Σχεδίαση23

Νόμος του Moore (1969)

Ψηφιακή Σχεδίαση24

Ολοκληρωμένα Κυκλώματα (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

εργαστήρια

Πλακέτα (board) DE-2Altera που χρησιμοποιήσουμε στην Αρχιτεκτονική Η/Υ (3ο έτος)

Ψηφιακή Σχεδίαση32

Κύκλος (Ροή) Σχεδίασης 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

Η Αγορά Σήμερα ....

Ψηφιακή Σχεδίαση38

Σύνοψη Μαθήματος• Λογικά κυκλώματα, συστήματα και Άλγεβρα Boole (Κεφ. 2)

• Τεχνολογίες υλοποίησης transistor (Κεφ. 3)

• Βελτιστοποίση με αδιάφορους όρους και πίνακες Karnaugh η μ φ ρ ς ρ ς ς g(Κεφ. 4)

• Παράσταση Αριθμών και κυκλώματα (Κεφ. 5)Παράσταση Αριθμών και κυκλώματα (Κεφ. 5)

• Δομικές βαθμίδες Συνδιαστικών Κυκλωμάτων (Κεφ. 6)

• Καταχωρητές και Ακολουθιακά κυκλώματα (Κεφ. 7 και 8)

Μ θ δ λ ί ύ VHDL (Π Α)

Ψηφιακή Σχεδίαση39

• Μεθοδολογία προγραμματισμού σε VHDL (Παρ. Α)

ΒΙΒΛΙΟΒΙΒΛΙΟΜΑΘΗΜΑΤΟΣ

Ψηφιακή Σχεδίαση40

Αναφορά ΎληςΑναφορά Ύλης

• Κεφάλαιο 1

Ψηφιακή Σχεδίαση41

Κεφάλαιο Κεφάλαιο 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

ΠΑΡΑΔΕΙΓΜΑ 1

f

x 1 x 2 x 3

(a) Sum-of-products υλοποίηση

Ψηφιακή Σχεδίαση63

ΠΑΡΑΔΕΙΓΜΑ 1

x 1

x 2

x 3

f

1

(b) Product-of-sums υλοποίηση

Ψηφιακή Σχεδίαση64

ΠΑΡΑΔΕΙΓΜΑ 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

ΠΑΡΑΔΕΙΓΜΑ 3: VHDLx1x2

f

x33

Ψηφιακή Σχεδίαση69

ΠΑΡΑΔΕΙΓΜΑ 4: VHDL

f

x 3 x 1

f

x 2

g

x4

Ψηφιακή Σχεδίαση70

x 4

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)

Αναφορά ΎληςΑναφορά Ύλης

• Κεφάλαιο 2

Ψηφιακή Σχεδίαση73

Ψηφιακή Σχεδίαση74

Ψηφιακή Σχεδίαση75

Ψηφιακή Σχεδίαση76

Ψηφιακή Σχεδίαση77

Ψηφιακή Σχεδίαση78

Ψηφιακή Σχεδίαση79

Ψηφιακή Σχεδίαση80

Ψηφιακή Σχεδίαση81

Ψηφιακή Σχεδίαση82

Ψηφιακή Σχεδίαση83

Ψηφιακή Σχεδίαση84

Ψηφιακή Σχεδίαση85

Ψηφιακή Σχεδίαση86

Ψηφιακή Σχεδίαση87

Ψηφιακή Σχεδίαση88

Ψηφιακή Σχεδίαση89

Ψηφιακή Σχεδίαση90

Ψηφιακή Σχεδίαση91

Ψηφιακή Σχεδίαση92

Αναφορά ΎληςΑναφορά Ύλης

Ψηφιακή Σχεδίαση93

Κεφάλαιο Κεφάλαιο 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)

Προσημασμένοι Αριθμοί

Ψηφιακή Σχεδίαση140

Πρόσθεση Προσημασμένων Αριθμών

Π ά ήΠ ά ή έέΠαράσταση προσήμουΠαράσταση προσήμου--μέτρουμέτρου

Η διαδικασία είναι πολύπλοκη και απαιτεί αρκετό 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)

Πολλαπλασιασμός

στοιχεία1η σειράς

στοιχεία 2ηςστοιχεία 2ης και 3ης σειράς

Ψηφιακή Σχεδίαση158

Πολλαπλασιασμός

Στοιχείο 1ης σειράς Στοιχείο 2ης και 3ης σειράς

Ψηφιακή Σχεδίαση159

Πολλαπλασιασμός

Το παράδειγμα πολλαπλασιασμού που είδαμε είναι γιαΤο παράδειγμα πολλαπλασιασμού που είδαμε είναι γιααριθμούς με αριθμό 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) Γραφικό Σύμβολο

Πολυπλέκτης

s 1

w 0

w

s 0

f

w 1

w 2

w 3

Κύκλωμα 4-προς-1 Πολυπλέκτη

Ψηφιακή Σχεδίαση167

ΠολυπλέκτηςΙΕΡΑΡΧΙΚΗ ΣΧΕΔΙΑΣΗ ΠΑΡΑΔΕΙΓΜΑ ΙΙΕΡΑΡΧΙΚΗ ΣΧΕΔΙΑΣΗ ΠΑΡΑΔΕΙΓΜΑ ΙΜπορούμε να σχεδιάσουμε τονΜπορούμε να σχεδιάσουμε τον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

Αναφορά ΎληςΑναφορά Ύλης

• 6.1• 6.2• 6.3• 6.4• 6.5• 6 66.6

Ψηφιακή Σχεδίαση193

Σχεδιασμός 32 bit ALU

(2o εργαστήριο)

Ψηφιακή Σχεδίαση194

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

Πολυπλέκτης (Mux, multiplexer):

If S=1 then C=B else C=A

S

CAB

Ψηφιακή Σχεδίαση196

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

Λογικό AND και OR

Operation

γ

0

Result

a

1

Result

b

Ψηφιακή Σχεδίαση198

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

Ψηφιακή Σχεδίαση20132 bit ALU (32 κόπιες, ιεραρχική σχεδίαση)

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

Ψηφιακή Σχεδίαση206Αρχιτεκτονική για 32 bit ALU με εντολή slt

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

μβ

Μανδαλωτής D (D Latch)

Χρονοδιάγραμμα D Latch

t 1 t 2 t 3 t 4

ClkClk

D

QQ

Ψηφιακή Σχεδίαση218

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

QQ

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

Αναφορά ΎληςΑναφορά Ύλης

• 8.1 (όχι Παρ 8.1)• 8.2• 8.3 (όχι Παρ. 8.4)

Ψηφιακή Σχεδίαση265

ΠΑΡΑΔΕΙΓΜΑΤΑ ΣΧΕΔΙΑΣΗΣΠΑΡΑΔΕΙΓΜΑΤΑ ΣΧΕΔΙΑΣΗΣ

• Υλοποίηση διαύλου καταχωρητών

• Υλοποίηση απλού μικροεπεξεργαστή

• Υλοποίηση μετρητή αριθμού 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 ;

ΣΧΕΔΙΑΣΗ: Δίαυλος (bus)

Ψηφιακή Σχεδίαση279

ΣΧΕΔΙΑΣΗ: Μικροεπεξεργαστής

Adder/Subtractor

Ψηφιακή Σχεδίαση280

ΣΧΕΔΙΑΣΗ: ΜικροεπεξεργαστήςΟ μικροεπεξεργαστής (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

β β

ΣΧΕΔΙΑΣΗ: Πολλαπλασιαστής

Ψηφιακή Σχεδίαση299

ΚεφάλαιοΚεφάλαιο 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

Αναφορά ΎληςΑναφορά Ύλης

• 11.1• 11.2• 11.3• 11.6• 11.7 (πρώτη σελίδα)

Ψηφιακή Σχεδίαση312