Arhitectura sistemelor de calcul -...

19
- Prelegerea 5 - Funcţii şi circuite logice Facultatea de Matematică şi Informatică Universitatea din Bucureşti Ruxandra F. Olimid Arhitectura sistemelor de calcul

Transcript of Arhitectura sistemelor de calcul -...

Page 1: Arhitectura sistemelor de calcul - ruxandraolimid.weebly.comruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/asc_c_5.pdf · - Prelegerea 5 - Funcţii şicircuite logice Facultatea

- Prelegerea 5 -

Funcţii şi circuite logice

Facultatea de Matematică şi Informatică

Universitatea din Bucureşti

Ruxandra F. Olimid

Arhitectura sistemelor de calcul

Page 2: Arhitectura sistemelor de calcul - ruxandraolimid.weebly.comruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/asc_c_5.pdf · - Prelegerea 5 - Funcţii şicircuite logice Facultatea

Cuprins

1. Recapitulare1. Logica booleană

2. Operaţii de bază (NOT, OR, AND, XOR)

2. Funcţii logice (booleene)1. Forma normal disjunctivă (forma canonică)

2. Forma normal conjunctivă

3. Circuite combinaţionale1. Porţi

2. Reprezentarea funcţiilor logice

2/19

Page 3: Arhitectura sistemelor de calcul - ruxandraolimid.weebly.comruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/asc_c_5.pdf · - Prelegerea 5 - Funcţii şicircuite logice Facultatea

Logica booleană

Logică cu 2 valori de adevăr: True (1) si False (0)

Operații în logica booleană:

P NOT P

0 1

1 0

P Q P AND Q

0 0 0

0 1 0

1 0 0

1 1 1

P Q P OR Q

0 0 0

0 1 1

1 0 1

1 1 1

P Q P XOR Q

0 0 0

0 1 1

1 0 1

1 1 0

NOT (negația) AND (conjuncția) OR (disjuncția) XOR (disjuncția exclusivă)

3/19

Page 4: Arhitectura sistemelor de calcul - ruxandraolimid.weebly.comruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/asc_c_5.pdf · - Prelegerea 5 - Funcţii şicircuite logice Facultatea

Operația şi poarta NOT

P NOT P

0 1

1 0

Tabelul de adevăr Reprezentarea porții NOT

4/19

Page 5: Arhitectura sistemelor de calcul - ruxandraolimid.weebly.comruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/asc_c_5.pdf · - Prelegerea 5 - Funcţii şicircuite logice Facultatea

Operația şi poarta AND / NAND

Tabelul de adevăr Reprezentarea porților AND şi NAND

P Q P AND Q P NAND Q

0 0 0 1

0 1 0 1

1 0 0 1

1 1 1 0

Observaţi că AND realizează înmulţirea pe 1 bit

De aceea a AND b se reprezintă şi ca produsul ab

5/19

Page 6: Arhitectura sistemelor de calcul - ruxandraolimid.weebly.comruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/asc_c_5.pdf · - Prelegerea 5 - Funcţii şicircuite logice Facultatea

Operația şi poarta OR / NOR

Tabelul de adevăr Reprezentarea porților OR şi NOR

P Q P OR Q P NOR Q

0 0 0 1

0 1 1 0

1 0 1 0

1 1 1 0

a OR b se reprezintă şi ca suma a+b

6/19

Page 7: Arhitectura sistemelor de calcul - ruxandraolimid.weebly.comruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/asc_c_5.pdf · - Prelegerea 5 - Funcţii şicircuite logice Facultatea

Operația şi poarta XOR

Tabelul de adevăr Reprezentarea porții XOR

P Q P XOR Q

0 0 0

0 1 1

1 0 1

1 1 0

Observaţi că XOR realizează adunarea pe 1 bit (fără transport)

7/19

Page 8: Arhitectura sistemelor de calcul - ruxandraolimid.weebly.comruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/asc_c_5.pdf · - Prelegerea 5 - Funcţii şicircuite logice Facultatea

Funcţie booleană (funcţie logică)

O funcţie booleană (logică) o funcţie

În acest caz se spune că funcţia are m intrări şi n ieşiri

𝑓: {0,1}𝑚→ {0,1}𝑛

Funcţiile booleene pot fi reprezentate sub forma tabelelor de adevărîntrucât atât domeniul cât şi codomeniul acestora sunt finite

Există (2𝑛)2𝑚

funcţii logice cu m intrări şi n ieşiri

În general, dacă 𝑓: 𝐴 → 𝐵 , atunci există 𝑐𝑎𝑟𝑑(𝐵)𝑐𝑎𝑟𝑑(𝐴) funcţii 𝑓, unde 𝑐𝑎𝑟𝑑 𝐴 , 𝑐𝑎𝑟𝑑(𝐵) este cardinalul lui A, respectiv B

8/19

Page 9: Arhitectura sistemelor de calcul - ruxandraolimid.weebly.comruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/asc_c_5.pdf · - Prelegerea 5 - Funcţii şicircuite logice Facultatea

Funcţie booleană (funcţie logică)

Întrebare: Care este tabelul de adevăr pentru funcţia de mai jos?

𝑓: {0,1}3→ 0,1𝑓 𝑎, 𝑏, 𝑐 = 𝑎 𝑏 + 𝑐

Răspuns:𝑎 𝑏 𝑐 𝑏 𝑎 𝑏 𝑓

0 0 0 1 0 0

0 0 1 1 0 1

0 1 0 0 0 0

0 1 1 0 0 1

1 0 0 1 1 1

1 0 1 1 1 1

1 1 0 0 0 0

1 1 1 0 0 1 9/19

Page 10: Arhitectura sistemelor de calcul - ruxandraolimid.weebly.comruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/asc_c_5.pdf · - Prelegerea 5 - Funcţii şicircuite logice Facultatea

Funcţie booleană (funcţie logică)

Întrebare: Care este reprezentarea cu porţi a funcţiei de mai jos?

𝑓: {0,1}3→ 0,1𝑓 𝑎, 𝑏, 𝑐 = 𝑎 𝑏 + 𝑐

Răspuns:

Negaţia se reprezintă printr-o poartă NOT

Produsul se reprezintă printr-o poartă AND

Suma se reprezintă printr-o poartă OR

10/19

Page 11: Arhitectura sistemelor de calcul - ruxandraolimid.weebly.comruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/asc_c_5.pdf · - Prelegerea 5 - Funcţii şicircuite logice Facultatea

Funcţie booleană (funcţie logică)

Toate funcţiile booleene (logice)

pot fi construite prin operaţiile de bază (AND, OR, NOT), respectiv de porţile aferente

𝑓: {0,1}𝑚→ {0,1}𝑛

11/19

Page 12: Arhitectura sistemelor de calcul - ruxandraolimid.weebly.comruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/asc_c_5.pdf · - Prelegerea 5 - Funcţii şicircuite logice Facultatea

Forme normale

Fie funcţia booleană definită prin următorul tabel de adevăr:

Conform tabelului, funcţia ia valoarea 1 dacă şi numai dacă:

a=0 şi b=0 şi c=1sau

a=0 şi b=1 şi c=1sau

a=1 şi b=0 şi c=0sau

a=1 şi b=0 şi c=1sau

a=1 şi b=1 şi c=1

Exprimând matematic, se obţine forma canonică (FC) sau forma normal disjunctivă (FND):

𝑓 𝑎, 𝑏, 𝑐 = 𝑎 𝑏𝑐 + 𝑎𝑏𝑐 + a 𝑏 𝑐 + 𝑎 𝑏𝑐 + 𝑎𝑏𝑐

𝑎 𝑏 𝑐 𝑓(𝑎, 𝑏, 𝑐)

0 0 0 0

0 0 1 1

0 1 0 0

0 1 1 1

1 0 0 1

1 0 1 1

1 1 0 0

1 1 1 1

12/19

Page 13: Arhitectura sistemelor de calcul - ruxandraolimid.weebly.comruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/asc_c_5.pdf · - Prelegerea 5 - Funcţii şicircuite logice Facultatea

Forme normale

Forma canonică (FC) sau forma normal disjunctivă (FND):

𝑓 𝑎, 𝑏, 𝑐 = 𝑎 𝑏𝑐 + 𝑎𝑏𝑐 + 𝑎 𝑏 𝑐 + 𝑎 𝑏𝑐 + 𝑎𝑏𝑐

Forma canonică se obţine uşor din tabela de adevăr astfel:

fiecărei valori 1 pe care o ia funcţia îicorespunde un termen în sumă(disjuncţie);

un termen este produsul (conjuncţia) literalilor în care aceştia apar negaţi dacăle corespunde 0 sau nu dacă le corespunde 1

𝑎 𝑏 𝑐 𝑓(𝑎, 𝑏, 𝑐)

0 0 0 0

0 0 1 1

0 1 0 0

0 1 1 1

1 0 0 1

1 0 1 1

1 1 0 0

1 1 1 1

13/19

Page 14: Arhitectura sistemelor de calcul - ruxandraolimid.weebly.comruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/asc_c_5.pdf · - Prelegerea 5 - Funcţii şicircuite logice Facultatea

Forme normale

Forma normal conjunctivă (FNC):

𝑓 𝑎, 𝑏, 𝑐 = (𝑎 + 𝑏 + 𝑐)(𝑎 + 𝑏 + 𝑐)( 𝑎 + 𝑏 + 𝑐)

FNC se obţine uşor din tabela de adevărastfel:

fiecărei valori 0 pe care o ia funcţia îicorespunde un termen în produs(conjuncţie);

un termen este suma (disjuncţia) literalilor în care aceştia apar negaţi dacăle corespunde 1 sau nu dacă le corespunde 0

𝑎 𝑏 𝑐 𝑓(𝑎, 𝑏, 𝑐)

0 0 0 0

0 0 1 1

0 1 0 0

0 1 1 1

1 0 0 1

1 0 1 1

1 1 0 0

1 1 1 1

14/19

Page 15: Arhitectura sistemelor de calcul - ruxandraolimid.weebly.comruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/asc_c_5.pdf · - Prelegerea 5 - Funcţii şicircuite logice Facultatea

Forme normale

Întrebare: Cum se reprezintă cu ajutorul porţilor logice FND obţinută?

𝑓 𝑎, 𝑏, 𝑐 = 𝑎 𝑏𝑐 + 𝑎𝑏𝑐 + 𝑎 𝑏 𝑐 + 𝑎 𝑏𝑐 + 𝑎𝑏𝑐

Răspuns:

15/19

Page 16: Arhitectura sistemelor de calcul - ruxandraolimid.weebly.comruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/asc_c_5.pdf · - Prelegerea 5 - Funcţii şicircuite logice Facultatea

Forme normale

Întrebare: Cum se reprezintă cu ajutorul porţilor logice FNC obţinută?

𝑓 𝑎, 𝑏, 𝑐 = (𝑎 + 𝑏 + 𝑐)(𝑎 + 𝑏 + 𝑐)( 𝑎 + 𝑏 + 𝑐)

Răspuns:

16/19

Page 17: Arhitectura sistemelor de calcul - ruxandraolimid.weebly.comruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/asc_c_5.pdf · - Prelegerea 5 - Funcţii şicircuite logice Facultatea

Forme normale

Forma normal disjunctivă (FND) este unică, făcând abstracţie de o permutare a termenilor sau a factorilor (datorită comutativităţii sumei şiprodusului)

Deci, 2 expresii logice sunt echivalente dacă au aceeaşi formă normal disjunctivă FND

Este deci util să avem un algoritm de aducere a unui funcţii la FND

Vom folosi intens FND la crearea circuitelor logice

17/19

Page 18: Arhitectura sistemelor de calcul - ruxandraolimid.weebly.comruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/asc_c_5.pdf · - Prelegerea 5 - Funcţii şicircuite logice Facultatea

Forme normale

Pas 1: Se scrie expresia / funcţia ca sumă de termeni

Pas 2: Se elimină produsele care se repetă

Pas 3: Se examinează fiecare produs. Dacă este minterm, se trece la următorul. Dacă nu, se completează prin înmulţire cu (𝑥 + 𝑥) pentruvariabilele care lipsesc

Pas 4: Se efectuează calculele şi se elimină termenii redundanţi

Aducerea funcţiilor la forma normal disjunctivă

18/19

Page 19: Arhitectura sistemelor de calcul - ruxandraolimid.weebly.comruxandraolimid.weebly.com/uploads/2/0/1/0/20109229/asc_c_5.pdf · - Prelegerea 5 - Funcţii şicircuite logice Facultatea

Forme normale

Pas 1: Se scrie expresia / funcţia ca sumă de termeni

Pas 2: Se elimină produsele care se repetă

Pas 3: Se examinează fiecare produs. Dacă este minterm, se trece la următorul. Dacă nu, se completează prin înmulţire cu (𝑥 + 𝑥) pentruvariabilele care lipsesc

Pas 4: Se efectuează calculele şi se elimină termenii redundanţi

Aducerea funcţiei 𝑓 𝑎, 𝑏, 𝑐 = 𝑎 + 𝑏 𝑏 + 𝑐 la FND:

𝑓 𝑎, 𝑏, 𝑐 = 𝑎 + 𝑏 𝑐

𝑓 𝑎, 𝑏, 𝑐 = 𝑎(𝑏 + 𝑏)(𝑐 + 𝑐) + (𝑎 + 𝑎)𝑏 𝑐

𝑓 𝑎, 𝑏, 𝑐 = 𝑎𝑏𝑐 + 𝑎𝑏 𝑐 + 𝑎 𝑏𝑐 +a 𝑏 𝑐 + 𝑎𝑏 𝑐

19/19