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