x - Inf

Transkrypt

x - Inf
Logika układów cyfrowych
Algebra Boole’a (1847)
〈{0,1}, +, 〉
2
1
2
1
2
1
• dodawanie i mno enie (logiczne) – działania domkni te w {0,1}
x x ∈
⇒x +x ∈
x ⋅x ∈
2
2
1
1
x +x =x +x
2
2
1
2
1
• przemienno działa
x x ∈
⇒ x ⋅x = x ⋅x
1
• identyczno ci 0,1 – neutralne wzgl dem działa dwuargumentowych
x∈
⇒ x+ = x
x⋅ = x
© Janusz Biernat, 08-06-Logika.doc
1
1
2
1
= x +x ⋅ x +x
3
2
1
3
3
2
1
⇒ x + x ⋅x
2
3
2
1
x x x ∈
działa
⇒ x ⋅ x + x = x ⋅x + x ⋅x
1
3
2
1
• wzajemna rozdzielno
x x x ∈
3
• istnienie negacji (elementu przeciwnego)
x∈
⇒ ∃x ∈
⇒ x⋅x = ∧ x + x =
LUC – 1
Logika układów cyfrowych
Aksjomaty Huntingtona – formalna definicja algebr Boole’a (1907)
• domkni to
× 〉
3
2
1
〈U u u u
2
1
2
1
2
1
działa + i × w zbiorze U
x x ∈U ⇒ x + x ∈U x × x ∈U
• obecno
1
2
2
1
1
2
2
1
2
1
• przemienno
x x ∈U ⇒ x + x = x + x ∈U x × x = x × x ∈U
elementów neutralnych
∃∅ ∈ U ∀x ∈ U ⇒ x + ∅ = x
∃ℑ ∈ U ∀x ∈ U ⇒ x × ℑ = x
1
© Janusz Biernat, 08-06-Logika.doc
1
2
1
3
2
1
3
2
1
x x x ∈U ⇒ x + x × x = x + x × x + x
3
2
1
3
2
1
3
2
1
• wzajemna rozdzielno działa
x x x ∈U ⇒ x × x + x = x × x + x × x
3
1
1
• istnienie elementów przeciwnych
x ∈ U ⇒ ∃ x − ∈ U x × x − ∈ U ∧ ∃ −x ∈ U x + −x ∈ U
LUC – 2
Logika układów cyfrowych
Logika dwuwarto ciowa (1)
• negacja
x= ⇒x = ∧x= ⇒x =
•
x z
⇔x
∨z
•
x⋅z
⇔x
∧z
Wła ciwo ci – zasadnicze twierdzenia
•
x=x
•
x⋅x x
x x x
•
x⋅
x
•
x⋅ x z
x
x x z x
•
x ⋅ ( x + z) = x ⋅ z
x+x⋅z = x+ z
•
x⋅z + x⋅z = x
( x + z) ⋅ ( x + z ) = x
•
( x ⋅ y) ⋅ z = x ⋅ ( y ⋅ z)
( x + y) + z = x + ( y + z)
© Janusz Biernat, 08-06-Logika.doc
LUC – 3
Logika układów cyfrowych
Logika dwuwarto ciowa (2)
Prawa de’Morgana:
podstawowe
uogólnione
• negacja sumy
x+z = x⋅z
∑i =1 xi = ∏i =1 xi
• negacja iloczynu
x⋅z = x + z
i =n
i=n
i =n
i=n
∏i =1 xi = ∑i =1 xi
Suma wykluczaj ca (suma modulo 2)
x ⊕ z = x ⋅ z + x ⋅ z = ( x + z) ⋅ ( x + z ) = z ⊕ x
Wła ciwo ci
x⊕z = x⊕z = x⊕z
( x ⊕ y) ⊕ z = x ⊕ ( y ⊕ z)
x ⊕ x = 0,
x ⊕ x =1
x ⊕ 0 = x , x ⊕1 = x
x + z = x ⊕ z ⊕ ( x ⋅ z) = x ⊕ z + x ⋅ z
x ⊕ ( x + z) = x ⋅ z
x ⊕ ( x ⋅ z) = x ⋅ z
© Janusz Biernat, 08-06-Logika.doc
LUC – 4
Logika układów cyfrowych
Funkcje logiczne (1)
Tablica prawdy (truth table) – zbiór wszystkich par (x∈{0,1}n, f (x))
f ∈ F ⇔ ∀x = ( xn ,..., x2 , x1 ) ∈ {0,1}n : f ( x) = f ( xn ,..., x2 , x1 ) ∈ {0,1}
f ∈F ⇒ f ∈F
f , g ∈ F ⇒ ( f ⋅ g) ∈ F ∧ ( f + g) ∈ F ∧ f o g ∈ F
Funkcje monotoniczne
• pozytywnie
x f y ⇒ f (x) f f (y ) ⇔ ∀i : xi f yi ⇒ f (x | xi ) f f (y | yi )
AND ( x, z ) = x ⋅ z
OR( x, z ) = x + z
• negatywnie
x f y ⇒ f (x) p f (y ) ⇔ ∀i : xi p yi ⇒ f (x | xi ) p f (y | yi )
NAND ( x, z ) = x ⋅ z
NOR ( x, z ) = x + z
Funkcje niemonotoniczne dwóch zmiennych
XOR( x, z ) = x ⊕ z
© Janusz Biernat, 08-06-Logika.doc
EQV ( x, z ) = x ⊕ z
LUC – 5
Logika układów cyfrowych
Funkcje logiczne (2)
1
x x xi = ai
2
f x ai = f xn
Twierdzenie Shannona
f x = xi ⋅ f x
i
f x = xi + f x
i
+ xi ⋅ f x
i
⋅ xi + f x
i
( x ) a = x1−a a
x1 = x oraz x 0 = x
a
n
s
)
∏i= xs a
n
1
2
a a
i
1
2
1
x x = ∑ ∈ f an
2
f x = f xn
(
• postać dyzjunkcyjna (dis-junctio – rozłączam)
© Janusz Biernat, 08-06-Logika.doc
a
2
s
)
n
a a + ∑i = x s a
1
f an
i
1
n
2
1
x x =∏∈
2
f x = f xn
(
• postać koniunkcyjna (con-junctio –łączę)
LUC – 6
Logika układów cyfrowych
Funkcje logiczne (3)
Ró nica boolowska
d
f x =f x
dxi
jeśli d f x dxi
⊕f x
i
to f x
i
jeśli d f x dxi
i
to f x
i
s
i
)
− as i
(
1
= ∏i∈I ∑s∈S xs
)
f C x = f x = ∑i∈I ∏s∈S xs a
(
Funkcja komplementarna – negacja funkcji
i
i
i
s
)
= ∏i∈I ∑s∈S xs a
(
− as i
(
1
f D x = f x = ∑i∈I ∏s∈S xs
)
Funkcja dualna
i
i
System funkcjonalnie pełny
Zbiór funkcji, za których pomoc mo na wyrazi dowoln funkcj
{NOT, AND, OR}, {NAND}, {NOR}
© Janusz Biernat, 08-06-Logika.doc
LUC – 7
Logika układów cyfrowych
Minimalizacja funkcji logicznych
Min(i)termy (konstytuenty jedynki)
k
f x = ⇒ mi x =
i
s
1
2
• dyzjunkcyjna postać normalna (kanoniczna) funkcji
f x = f xn x x = ∑i mi x = ∑i ∏s xs a
)
k
(
2
xia ∈ m ⇔ mi x = ⇒ f x =
2
1
1
mi x = xia xia
f x = ⇒ Mi x =
s
i
1
2
• koniunkcyjna postać normalna (kanoniczna) funkcji
f x = f xn x x = ∏i M i x = ∏i ∑s xs a
)
k
(
+ xia ∈ M ⇔ M i x = ⇒ f x =
k
2
1
1
M i x = xia + xia
2
Max(i)termy (konstytuenty zera)
Metody minimalizacji
• tradycyjne – siatki Karnaugh, metoda Quine’a-Mc’Cluskey’a
• nowe – metoda ESPRESSO (heurystyczna redukcja wymiaru+ Q-McC)
© Janusz Biernat, 08-06-Logika.doc
LUC – 8
Logika układów cyfrowych
Bramki (funktory) logiczne proste
x
z
x ⋅z
x
z
x+z
x
z
x⊕z
x
z
x ⋅z
x
z
x+z
x
z
x⊕z
x
z
x ⋅z
x
z
x+z
x
x
© Janusz Biernat, 08-06-Logika.doc
2
1
2
1
2
1
2
1
Bramka wielowej ciowa – realizuj ca standardow funkcj m zmiennych
AND x x
xm = x ⋅ x ⋅ ⋅ xm , OR x x
xm = x + x + + x m
LUC – 9
Logika układów cyfrowych
Sieci logiczne
x
c=(x⊕y)⋅z+x⋅y
y
s=x⊕y⊕z
z
x0
x1
x=s⋅z⋅x0 +s⋅z⋅x1 +s⋅z⋅x2 +s⋅z⋅x3
x2
x3
z s
© Janusz Biernat, 08-06-Logika.doc
LUC – 10
Logika układów cyfrowych
Bramki (funktory) logiczne zło one
multiplekser i demultiplekser
s⋅x0+s⋅x1
x0
x1
s
=
© Janusz Biernat, 08-06-Logika.doc
s⋅x
s⋅x
x
s
=
LUC – 11
Logika układów cyfrowych
Bramki (funktory) logiczne zło one
x y
x y
AT = 1
A=2
T=2
g
p=x ⊕ y
c+
c–
AT = 1
AT = 1
AT = 1
g
c+
p=x+y
AT = 1
c–
AT = 1
AT = 1
AT = 1
A=2
T=2
s
s=x ⊕ y ⊕ z
c + =(x ⊕ y)c–+xy
A=7
Ts = 4
Tc = 4
A=2
T=2
s=x ⊕ y ⊕ z
c + =(x+y)c–+xy
s
A=7
Ts = 4
Tc = 3
sumator
© Janusz Biernat, 08-06-Logika.doc
LUC – 12
Logika układów cyfrowych
Elementy pami taj ce – przerzutniki
asynchroniczny przerzutnik RS
R
Q
S
Q
R
R
0
0
1
1
Q
Q
S
S Qt+1
0 Qt
1
1
0
0
1 —
synchroniczny przerzutnik D
D
C
© Janusz Biernat, 08-06-Logika.doc
Q
Q
D
C
Q
C D Qt+1
0 — Qt
1 0 0
1 1 1
LUC – 13
Logika układów cyfrowych
Rejestry
D0
D1
D2
Dn–1
WR
RD
Q0
Q1
Q2
Qn–1
Q0
Q1
Q2
Qn–1
RD
Din
Dout
C
rejestr równoległy i szeregowy
© Janusz Biernat, 08-06-Logika.doc
LUC – 14
Logika układów cyfrowych
Ocena zło ono ci układów cyfrowych (1)
Sterowalno i obci alno bramek – charakterystyki technologiczne
• liczba wej (fan-in) i obci alno wyj (drive)
Charakterystyki czas–rozmiar (time–area)
• standardowa jednostka rozmiaru A – rozmiar bramki prostej monotonicznej
• standardowa jednostka opó nienia T – opó nienie wnoszone przez bramk
prost monotoniczn (delay)
•
•
•
•
•
inwerter (NOT) – A = 0, T = 0
bramka prosta monotoniczna (AND, OR, NAND, NOR) – A = 1, T = 1
bramka prosta niemonotoniczna (XOR, XNOR) – A = 2, T = 2
multiplekser 2-wej ciowy – A = 2, T = 2
bramka monotoniczna m-wej ciowa – A = m –1, T =  log m
Szybko działania – układy sekwencyjne
• czas stabilizacji wyj cia (latency)
• najkrótszy cykl zmiany wej
© Janusz Biernat, 08-06-Logika.doc
LUC – 15
Logika układów cyfrowych
Ocena zło ono ci układów cyfrowych (2)
Sie logiczna
• rozmiar A – suma liczby bramek przeliczeniowych
• opó nienie T
• najdłu sza cie ka propagacji zmiany stanu od wej cia do najbardziej
odległego wyj cia
• najdłu sza cie ka propagacji zmiany stanu od wej cia do
wskazanego wyj cia – ró ne opó nienia do ró nych wyj
Inne charakterystyki
• w układach arytmetycznych – liczba przeliczeniowych bramek XOR
• w układach programowalnych – liczba uniwersalnych komórek LUT
(look-up table – programowalna matryca ROM do zakodowania tablicy
prawdy sieci logicznej o ustalonej liczbie wej i wyj )
© Janusz Biernat, 08-06-Logika.doc
LUC – 16
Logika układów cyfrowych
Funkcje rekursywne
x = x1| | x2| | x3| | … – zło enie wektorów zmiennych wej ciowych
{f1, f2, f3, … } – zbiór funkcji
Funkcje nierekursywne (non-recursive)
fi=fi(x)=fi(xi), i=1,2,3,…
Funkcje rekursywne (recursive)
fi = fi ( x ) = ϕi ( f1 ( x ), f2 ( x ), … fj ( x )) j = 1, 2, 3, … i – 1
Funkcje rekursywne skojarzone (recursive associative)
a) pojedyncze (szeregowe) f(x) = f (n)(xn, f (n–1)(xn–1, f (n–2)(xn–2, f (1)(x1)…)))
b) grupowe f(x) = f (n)(xn, … , xp, f (p)(xp–1, … , xr, f (r)(xr–1, f (k)( xk–1, … x1)…)))
Funkcje rekursywne nieskojarzone (recursive non-associative)
a) pojedyncze fk(x) = f (k)(xk, f (k–1)(xk–1, f (k–2)(xk–2, f (1)(x1)…)))
b) grupowe (wspólne funkcje cz ciowe dla ró nych wyj )
Problem prefiksowy – wyznaczanie funkcji rekursywnej skojarzonej
• – asocjacyjny operator binarny (suma, iloczyn, …)
yi = xi •yi–1 ,
y0 = x0
© Janusz Biernat, 08-06-Logika.doc
LUC – 17
Logika układów cyfrowych
Przesuni cia
metody
• rejestr przesuwny (shift register) –zmienny czas wykonania
• przesuwnik kaskadowy (barrel shifter) – stały czas wykonania
a)
x7
b)
xi+2 n
xi
xi−2 n
ShR
ShL
0 ShL-1
2
ShL-2
21
2 ShL-4
2
RS
MPX
( xi )
x6
x5
x4
x3
x2
x1
x0
0
MPX MPX MPX MPX MPX MPX MPX MPX
MPX MPX MPX MPX MPX MPX MPX MPX
MPX MPX MPX MPX MPX MPX MPX MPX
Przesuwnik kaskadowy: a) multiplekser b) schemat dla przesuni cia w lewo
Je li suma potrzebnej liczby przesuni w lewo i prawo nie jest du a
mo na realizowa tylko przesuni cia w jedn stron
© Janusz Biernat, 08-06-Logika.doc
LUC – 18
Logika układów cyfrowych
Nieco o technologii
Niektóre bramki logiczne (logic gate) maj bardzo prost realizacj CMOS,
w której wykorzystuje si bramki transmisyjne (pass-transistor gate)
Multiplekser 2-we
© Janusz Biernat, 08-06-Logika.doc
LUC – 19
Symboliczny opis układów cyfrowych
J zyki opisu sprz tu – HDL
HDL – Hardware Description Language
Podstawowe elementy opisu:
jednostka (entity) – „czarna skrzynka”, która ma wej cia i wyj cia
architektura (architecture) – opis wn trza jednostki,
strukturalny
behavioralny
J zyki VHDL, AHDL, VERILOG – ró ni si składni , semantyk , etc.
EDA (Electronic Design Automation)
Narz dzia automatyzacji projektowania elektroniki EDA, takie jak:
Virtex, Leonardo, Cadence, etc. akceptuj i generuj opis HDL
© Janusz Biernat, 08-06-Logika.doc
HDL– 1
Symboliczny opis układów cyfrowych
J zyki opisu sprz tu – HDL
x
g
x
g
y
c
y
c
entity blok
h
h
s
s
z
z
architecture bramki of blok
entity blok is
port (x,y,z:in bit; c,s:out bit, g,h:inout bit);
end entity blok;
architecture bramki of blok is
begin
g<=x and y;
h<=x xor y;
s<=z xor h;
c<=(z and h) or g;
end architecture bramki;
© Janusz Biernat, 08-06-Logika.doc
HDL– 2
Symboliczny opis układów cyfrowych
Sieciowy opis architektury (1)
definicja bramek
entity AND2 is
port (x,y:in bit; z:out bit);
end entity AND2;
architecture bramka of AND2 is
begin
z<=x and y;
end architecture bramka;
entity XOR2 is
port (x,y:in bit; z:out bit);
end entity XOR2;
architecture bramka of XOR2 is
begin
z<=x xor y;
end architecture bramka;
entity OR2 is
port (x,y:in bit; z:out bit);
end entity OR2;
architecture bramka of OR2 is
begin
z<=x or y;
end architecture bramka;
ś
definicja architektury
(struktura – opis działania)
ś
definicja jednostki
(wej cia, wyj cia, dwukierunkowe)
© Janusz Biernat, 08-06-Logika.doc
HDL– 3
Symboliczny opis układów cyfrowych
Sieciowy opis architektury (2)
architecture netlist of blok is
component AND2
port (a,b:in bit; z:out bit);
end component AND2;
component OR2
port (a,b:in bit; z:out bit);
end component OR2;
component XOR2
port (a,b:in bit; z:out bit);
end component XOR2;
signal g,h,r:bit;
begin
g1:XOR2 port map (x,y,h);
g2:AND2 port map (x,y,g);
g3:AND2 port map (z,h,r);
g4:OR2 port map (g,r,c);
g5:XOR2 port map (z,h,s);
end architecture netlist;
© Janusz Biernat, 08-06-Logika.doc
HDL– 4
Symboliczny opis układów cyfrowych
Sieciowy opis architektury (3)
definicja jednostki
entity XOR2 is
port (x,y:in bit; z:out bit);
end entity XOR2;
architecture bramka of XOR2 is
begin
z<=x xor y;
end architecture bramka;
składnik (component) – uniwersalny opis zdefiniowanej wcze niej jednostki
component XOR2
port (a,b:in bit; z:out bit);
end component XOR2;
instancja – konkretne odwzorowanie składnika danego typu w sieci
g1:XOR2 port map (x,y,h); – domniemane automatyczne
g1:XOR2 port map (y=>b,h=>z,x=>a); – domniemane jawne
albo z odwołaniem do biblioteki (work) i architektury (bramka)
g1:entity work.XOR2(bramka) port map (y=>b,h=>z,x=>a);
© Janusz Biernat, 08-06-Logika.doc
HDL– 5
Symboliczny opis układów cyfrowych
Sieciowy opis architektury (4)
© Janusz Biernat, 08-06-Logika.doc
HDL– 6
Symboliczny opis układów cyfrowych
J zyki opisu sprz tu – VERILOG
x
g
x
g
y
c
y
c
entity blok
h
h
s
s
z
z
architecture bramki of blok
entity blok is
port (x,y,z:in bit; c,s:out bit, g,h:inout bit);
end entity blok;
architecture bramki of blok is
begin
g<=x and y;
h<=x xor y;
s<=z xor h;
c<=(z and h) or g;
end architecture bramki;
© Janusz Biernat, 08-06-Logika.doc
HDL– 1