Spis treści Przedmowa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Wykaz oznaczeń . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1. Wstęp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.1. Układy cyfrowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.2. Krótki esej o projektowaniu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2. Układy kombinacyjne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.1. Podstawy projektowania układów kombinacyjnych . . . 2.1.1. Opis słowny problemu . . . . . . . . . . . . . . 2.1.2. Formalizacja opisu działania układu sterującego 2.1.3. Podstawowe bramki . . . . . . . . . . . . . . . . 2.1.4. Tworzenie schematu układu . . . . . . . . . . . 2.1.5. Algebraiczna minimalizacja wyrażeń logicznych 2.1.6. Ocena kosztu układu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 18 22 26 27 29 30 2.1.7. Redukcja liczby typów stosowanych bramek . . . . . . . . . . . . . . . . . . . . . 2.1.8. Bramki NAND i NOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.9. Systemy funkcjonalnie pełne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.10. Specyfikacja funkcji logicznych . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.11. Podstawy mnemotechnicznych sposobów minimalizacji funkcji logicznych . . . . . 2.1.12. Kod Graya . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.13. Tablice Karnaugha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.14. Minimalizacja funkcji logicznych za pomocą tablic Karnaugha . . . . . . . . . . . 2.1.15. Wartości nieokreślone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.16. Alternatywna Postać Normalna . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.17. Faktoryzacja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.18. Metoda zakazu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.19. Łączne zastosowanie metody zakazu i faktoryzacji . . . . . . . . . . . . . . . . . . 2.1.20. Koniunkcyjna Postać Normalna . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.21. Metoda Quine’a i McCluskeya . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.22. Hazard statyczny . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.23. Hazard dynamiczny . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.24. Bramki XOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2. Złożone układy kombinacyjne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.1. Układy iteracyjne z jednokierunkowym przepływem informacji między blokami . . 31 32 34 35 38 39 40 42 47 49 51 53 56 58 64 70 75 77 78 78 Spis treści6 6Spis treści 2.2.2. Układy iteracyjne z dwukierunkowym przepływem informacji między blokami . . 82 2.2.3. Układy kaskadowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 2.2.4. Układy kombinacyjne z zastosowaniem multiplekserów . . . . . . . . . . . . . . . 88 2.2.5. Układy kombinacyjne z zastosowaniem dekoderów . . . . . . . . . . . . . . . . . . 103 2.2.6. Demultipleksery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 2.2.7. Pamięć stała . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 2.2.8. Układy na zamówienie — ASIC . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 Zadania projektowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 3. Układy synchroniczne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 3.1. Wprowadzenie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 3.1.1. Sformułowanie problemu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 3.1.2. Stan układu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 3.1.3. Grafy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 3.1.4. Tablica przejść i wyjść . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 3.1.5. Kodowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 3.1.6. Przerzutnik typu D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 3.1.7. Tablice wzbudzeń przerzutników . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 3.1.8. Realizacja układu synchronicznego . . . . . . . . . . . . . . . . . . . . . . . . . . 132 3.2. Podstawy teoretyczne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 3.2.1. Struktury automatów synchronicznych . . . . . . . . . . . . . . . . . . . . . . . . . 135 3.2.2. Automat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 3.2.3. Równoważność stanów automatów zupełnych . . . . . . . . . . . . . . . . . . . . . 139 3.2.4. Zgodność stanów automatów niezupełnych . . . . . . . . . . . . . . . . . . . . . . 151 3.2.5. Formalizacja algorytmów minimalizacji automatów . . . . . . . . . . . . . . . . . 158 3.2.6. Realizacja automatu minimalnego z zastosowaniem przerzutników typu D . . . . . 160 3.2.7. Przerzutnik typu JK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 3.2.8. Realizacja automatu synchronicznego za pomocą przerzutników typu JK . . . . . . 165 3.2.9. Częściowa równoważność automatów Moore’a i Mealy’ego . . . . . . . . . . . . . 167 3.2.10. Układy bezwejściowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 Zadania projektowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 Spis treści7 7Spis treści 4. Układy asynchroniczne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 4.1. Wprowadzenie . . . . . . . . . . . . . . . . . . . . . 4.1.1. Sformułowanie problemu . . . . . . . . . . . . 4.1.2. Graf stanu oraz tablica przejść i wyjść układu 4.1.3. Zakodowana tablica przejść i wyjść układu . . 4.1.4. Realizacja układu . . . . . . . . . . . . . . . . 4.2. Podstawowe definicje . . . . . . . . . . . . . . . . . . 4.2.1. Automaty Moore’a i Mealy’ego . . . . . . . . 4.2.2. Stany stabilne i niestabilne . . . . . . . . . . . 4.2.3. Założenia projektowe . . . . . . . . . . . . . . 4.3. Podstawy projektowania układów asynchronicznych . 4.3.1. Wykresy czasowe . . . . . . . . . . . . . . . . 4.3.2. Przyporządkowanie stanów . . . . . . . . . . . 4.3.3. Pierwotna tablica przejść i wyjść . . . . . . . 4.3.4. Uzupełnianie brakującej informacji . . . . . . 4.3.5. Minimalizacja liczby stanów . . . . . . . . . . 4.3.6. Nieprawidłowe kodowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 . 175 . 177 . 179 . 179 . 180 . 180 . 181 . 182 . 183 . 184 . 184 . 185 . 187 . 189 . 191 Spis treści8 8Spis treści 4.3.7. Wyścigi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 4.3.8. Przejścia cykliczne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 4.3.9. Zastosowanie hipersześcianów do kodowania stanów . . . . . . . . . . . . . . . . . 196 4.3.10. Zakodowana tablica przejść i wyjść oraz realizacja automatu . . . . . . . . . . . . 199 4.4. Alternatywna metoda minimalizacji układów asynchronicznych . . . . . . . . . . . . . . . 201 4.4.1. Faza pierwsza — poszukiwanie zbiorów stanów pseudorównoważnych . . . . . . . 203 4.4.2. Faza druga — poszukiwanie zbiorów stanów pseudozgodnych . . . . . . . . . . . . 204 4.4.3. Przykład zastosowania alternatywnej procedury minimalizacji automatów asynchronicznych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 4.5. Wybrane problemy projektowania układów asynchronicznych . . . . . . . . . . . . . . . . 209 4.5.1. Przyporządkowanie stanów odcinkom wykresów czasowych . . . . . . . . . . . . . 209 4.5.2. Metoda uzyskania funkcji przejść i wyjść układu . . . . . . . . . . . . . . . . . . . 213 4.5.3. Statyczny przerzutnik typu RS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 4.5.4. Wykorzystanie statycznych przerzutników typu RS do projektowania automatów asynchronicznych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 4.5.5. Asynchroniczne automaty Mealy’ego . . . . . . . . . . . . . . . . . . . . . . . . . 221 4.6. Metoda projektowania automatów asynchronicznych z zastosowaniem grafu stanu . . . . . 227 4.6.1. Sformułowanie problemu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 4.6.2. Tworzenie grafu stanu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 4.6.3. Minimalizacja automatu i kodowanie jego stanów . . . . . . . . . . . . . . . . . . 233 4.6.4. Realizacja automatu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 Zadania projektowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 5. Reprezentacja liczb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 5.1. 5.2. 5.3. 5.4. 5.5. 5.6. 5.7. Rys historyczny . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 Pozycyjna reprezentacja liczb naturalnych . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 Pozycyjna reprezentacja dodatnich liczb wymiernych . . . . . . . . . . . . . . . . . . . . . 245 Zamiana podstawy liczby . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 Dodawanie liczb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 Mnożenie liczb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 Mnożenie liczb przez ich podstawę . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 Spis treści9 9Spis treści 5.8. Dzielenie liczb przez ich podstawę . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 5.9. Reprezentacja liczb ujemnych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 5.9.1. Reprezentacja znak–moduł liczb ujemnych . . . . . . . . . . . . . . . . . . . . . . 254 5.9.2. Przepełnienie w reprezentacji stałopozycyjnej . . . . . . . . . . . . . . . . . . . . . 257 5.9.3. Reprezentacja uzupełnieniowa do podstawy pomniejszonej o jeden . . . . . . . . . 258 5.9.4. Reprezentacja uzupełnieniowa do podstawy . . . . . . . . . . . . . . . . . . . . . . 265 Zadania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 6. Bloki funkcjonalne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 6.1. Wewnętrzna struktura bloków funkcjonalnych . . . 6.1.1. Sformułowanie problemu . . . . . . . . . . 6.1.2. Fazy projektu . . . . . . . . . . . . . . . . 6.1.3. Projekt części synchronicznej . . . . . . . 6.1.4. Projekt części asynchronicznej (statycznej) 6.1.5. Projekt części kombinacyjnej . . . . . . . 6.1.6. Schemat bloku funkcjonalnego . . . . . . 6.2. Typy wejść bloków funkcjonalnych . . . . . . . . 6.2.1. Operacje synchroniczne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 . 274 . 276 . 277 . 280 . 283 . 283 . 283 . 286 Spis treści1 1Spis treści 0 0 6.2.2. Operacje asynchroniczne statyczne . . . . 6.2.3. Operacje asynchroniczne dynamiczne . . . 6.3. Ogólny przegląd rodzajów bloków funkcjonalnych 6.3.1. Kombinacyjne bloki funkcjonalne . . . . . 6.3.2. Sekwencyjne bloki funkcjonalne . . . . . . Zadania projektowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 . 287 . 289 . 289 . 295 . 301 7. Cyfrowe systemy sterowania oraz przetwarzania danych . . . . . . . . . . . . . . . . . . . . . . 302 7.1. Wprowadzenie i sformułowanie problemu . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 7.2. System i jego otoczenie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 7.3. Algorytm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304 7.3.1. Algorytm komunikacji systemu projektowanego z systemem zewnętrznym . . . . . 306 7.3.2. Algorytm mnożenia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 7.4. Układ operacyjny . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310 7.5. Ulepszony algorytm mnożenia i wynikający z niego układ operacyjny . . . . . . . . . . . 314 7.6. Struktura systemu cyfrowego . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320 7.7. Sygnały sterujące układem operacyjnym . . . . . . . . . . . . . . . . . . . . . . . . . . . 322 7.8. Sposoby transformacji sieci działań w graf stanu . . . . . . . . . . . . . . . . . . . . . . . 324 7.9. Automat sterujący Moore’a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 7.9.1. Transformacja sieci działań w graf stanu . . . . . . . . . . . . . . . . . . . . . . . 325 7.9.2. Realizacja minimalnego automatu sterującego . . . . . . . . . . . . . . . . . . . . 328 7.9.3. Problemy z automatem Moore’a . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 7.10. Automat sterujący Mealy’ego . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336 7.10.1. Transformacja sieci działań w graf stanu . . . . . . . . . . . . . . . . . . . . . . . 336 7.10.2. Realizacja minimalnego automatu sterującego . . . . . . . . . . . . . . . . . . . . 339 7.10.3. Problemy z automatem Mealy’ego . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 7.11. Realizacja układu sterującego za pomocą rozdzielacza sterującego . . . . . . . . . . . . . 349 7.11.1. Przekształcenie sieci działań w rozdzielacz sterujący . . . . . . . . . . . . . . . . . 350 7.11.2. Rozdzielacz sterujący Moore’a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352 7.11.3. Rozdzielacz sterujący Mealy’ego . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 7.12. Inicjacja pracy układu sterującego . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357 Spis treści1 1Spis treści 1 1 7.13. Mikroprogramowane układy sterujące . . . . . . . . . . . 7.13.1. Mikroprogramowany automat sterujący Moore’a . 7.13.2. Mikroprogramowany automat sterujący Mealy’ego 7.13.3. Maszyny mikroprogramowane . . . . . . . . . . . 7.14. Szkic jeszcze jednego projektu . . . . . . . . . . . . . . . 7.14.1. Sformułowanie problemu . . . . . . . . . . . . . . 7.14.2. Układ operacyjny oraz sieć działań . . . . . . . . 7.14.3. Selektor priorytetowy . . . . . . . . . . . . . . . . 7.14.4. Analiza przepustowości generatora impulsów . . . Zadania projektowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360 . 361 . 369 . 377 . 379 . 379 . 382 . 386 . 387 . 388 8. Cyfrowe systemy współbieżne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392 8.1. Sformułowanie problemu . . . . . . . . . . . . . . 8.2. Sieci Petriego . . . . . . . . . . . . . . . . . . . . 8.2.1. Definicja sieci Petriego . . . . . . . . . . . 8.2.2. Znakowana sieć Petriego . . . . . . . . . . 8.2.3. Sposób działania znakowanej sieci Petriego 8.2.4. Jeszcze kilka przydatnych terminów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392 . 395 . 395 . 396 . 397 . 398 Spis treści1 1Spis treści 2 2 8.2.5. Przykład wykorzystania znakowanej sieci Petriego 8.2.6. Drzewo osiągalności . . . . . . . . . . . . . . . . 8.2.7. Rozszerzona sieć Petriego . . . . . . . . . . . . . 8.3. Sterownik systemu współbieżnego . . . . . . . . . . . . . 8.3.1. Stworzenie sieci Petriego . . . . . . . . . . . . . . 8.3.2. Analiza sieci Petriego . . . . . . . . . . . . . . . 8.3.3. Graf przejść automatu sterującego . . . . . . . . . 8.3.4. Automat sterujący . . . . . . . . . . . . . . . . . 8.3.5. Rozbudowa przedsiębiorstwa . . . . . . . . . . . . Zadanie projektowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399 . 402 . 403 . 404 . 404 . 410 . 412 . 414 . 418 . 421 9. Quo vadis? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422 Dodatek A. Algebry Boole’a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427 Dodatek B. Automaty a języki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429 Zadania projektowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435 Dodatek C. Krótki rys historyczny . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436 Literatura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440 Spis treści1 3 1Spis treści 3 Skorowidz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442