Spis treści
Transkrypt
Spis treści
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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 18 22 26 27 29 30 31 32 34 35 38 39 40 42 47 49 51 53 56 58 64 70 75 77 78 78 6 Spis treści 2.2.2. Układy iteracyjne z dwukierunkowym przepływem informacji między blokami 2.2.3. Układy kaskadowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.4. Układy kombinacyjne z zastosowaniem multiplekserów . . . . . . . . . . . . . 2.2.5. Układy kombinacyjne z zastosowaniem dekoderów . . . . . . . . . . . . . . . . 2.2.6. Demultipleksery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.7. Pamięć stała . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.8. Układy na zamówienie — ASIC . . . . . . . . . . . . . . . . . . . . . . . . . . Zadania projektowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 . 88 . 88 . 103 . 107 . 108 . 110 . 119 3. Układy synchroniczne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 3.1. Wprowadzenie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.1. Sformułowanie problemu . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.2. Stan układu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.3. Grafy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.4. Tablica przejść i wyjść . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.5. Kodowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.6. Przerzutnik typu D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.7. Tablice wzbudzeń przerzutników . . . . . . . . . . . . . . . . . . . . . . 3.1.8. Realizacja układu synchronicznego . . . . . . . . . . . . . . . . . . . . . 3.2. Podstawy teoretyczne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.1. Struktury automatów synchronicznych . . . . . . . . . . . . . . . . . . . . 3.2.2. Automat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.3. Równoważność stanów automatów zupełnych . . . . . . . . . . . . . . . . 3.2.4. Zgodność stanów automatów niezupełnych . . . . . . . . . . . . . . . . . 3.2.5. Formalizacja algorytmów minimalizacji automatów . . . . . . . . . . . . 3.2.6. Realizacja automatu minimalnego z zastosowaniem przerzutników typu D 3.2.7. Przerzutnik typu JK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.8. Realizacja automatu synchronicznego za pomocą przerzutników typu JK . 3.2.9. Częściowa równoważność automatów Moore’a i Mealy’ego . . . . . . . . 3.2.10. Układy bezwejściowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zadania projektowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 . 120 . 122 . 123 . 126 . 127 . 129 . 130 . 132 . 135 . 135 . 136 . 139 . 151 . 158 . 160 . 163 . 165 . 167 . 171 . 173 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 7 Spis treści 4.3.7. Wyścigi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.8. Przejścia cykliczne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.9. Zastosowanie hipersześcianów do kodowania stanów . . . . . . . . . . . . . . . . 4.3.10. Zakodowana tablica przejść i wyjść oraz realizacja automatu . . . . . . . . . . . 4.4. Alternatywna metoda minimalizacji układów asynchronicznych . . . . . . . . . . . . . . 4.4.1. Faza pierwsza — poszukiwanie zbiorów stanów pseudorównoważnych . . . . . . 4.4.2. Faza druga — poszukiwanie zbiorów stanów pseudozgodnych . . . . . . . . . . . 4.4.3. Przykład zastosowania alternatywnej procedury minimalizacji automatów asynchronicznych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5. Wybrane problemy projektowania układów asynchronicznych . . . . . . . . . . . . . . . 4.5.1. Przyporządkowanie stanów odcinkom wykresów czasowych . . . . . . . . . . . . 4.5.2. Metoda uzyskania funkcji przejść i wyjść układu . . . . . . . . . . . . . . . . . . 4.5.3. Statyczny przerzutnik typu RS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5.4. Wykorzystanie statycznych przerzutników typu RS do projektowania automatów asynchronicznych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5.5. Asynchroniczne automaty Mealy’ego . . . . . . . . . . . . . . . . . . . . . . . . 4.6. Metoda projektowania automatów asynchronicznych z zastosowaniem grafu stanu . . . . 4.6.1. Sformułowanie problemu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.6.2. Tworzenie grafu stanu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.6.3. Minimalizacja automatu i kodowanie jego stanów . . . . . . . . . . . . . . . . . 4.6.4. Realizacja automatu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zadania projektowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 . 195 . 196 . 199 . 201 . 203 . 204 . 206 . 209 . 209 . 213 . 216 . 219 . 221 . 227 . 227 . 229 . 233 . 235 . 237 5. Reprezentacja liczb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 5.1. 5.2. 5.3. 5.4. 5.5. 5.6. 5.7. 5.8. 5.9. Rys historyczny . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Pozycyjna reprezentacja liczb naturalnych . . . . . . . . . . . . . . . . . . Pozycyjna reprezentacja dodatnich liczb wymiernych . . . . . . . . . . . . Zamiana podstawy liczby . . . . . . . . . . . . . . . . . . . . . . . . . . . Dodawanie liczb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mnożenie liczb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mnożenie liczb przez ich podstawę . . . . . . . . . . . . . . . . . . . . . Dzielenie liczb przez ich podstawę . . . . . . . . . . . . . . . . . . . . . . Reprezentacja liczb ujemnych . . . . . . . . . . . . . . . . . . . . . . . . 5.9.1. Reprezentacja znak–moduł liczb ujemnych . . . . . . . . . . . . . 5.9.2. Przepełnienie w reprezentacji stałopozycyjnej . . . . . . . . . . . . 5.9.3. Reprezentacja uzupełnieniowa do podstawy pomniejszonej o jeden 5.9.4. Reprezentacja uzupełnieniowa do podstawy . . . . . . . . . . . . . Zadania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 . 243 . 245 . 246 . 249 . 250 . 252 . 253 . 254 . 254 . 257 . 258 . 265 . 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 8 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 . . . . . . . . . . . . . . . . . . . . Spis treści . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 . 287 . 289 . 289 . 295 . 301 7. Cyfrowe systemy sterowania oraz przetwarzania danych . . . . . . . . . . . . . . . . . . . . . . 302 7.1. Wprowadzenie i sformułowanie problemu . . . . . . . . . . . . . . . . . . . . . . 7.2. System i jego otoczenie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3. Algorytm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3.1. Algorytm komunikacji systemu projektowanego z systemem zewnętrznym 7.3.2. Algorytm mnożenia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.4. Układ operacyjny . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.5. Ulepszony algorytm mnożenia i wynikający z niego układ operacyjny . . . . . . 7.6. Struktura systemu cyfrowego . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.7. Sygnały sterujące układem operacyjnym . . . . . . . . . . . . . . . . . . . . . . 7.8. Sposoby transformacji sieci działań w graf stanu . . . . . . . . . . . . . . . . . . 7.9. Automat sterujący Moore’a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.9.1. Transformacja sieci działań w graf stanu . . . . . . . . . . . . . . . . . . 7.9.2. Realizacja minimalnego automatu sterującego . . . . . . . . . . . . . . . 7.9.3. Problemy z automatem Moore’a . . . . . . . . . . . . . . . . . . . . . . . 7.10. Automat sterujący Mealy’ego . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.10.1. Transformacja sieci działań w graf stanu . . . . . . . . . . . . . . . . . . 7.10.2. Realizacja minimalnego automatu sterującego . . . . . . . . . . . . . . . 7.10.3. Problemy z automatem Mealy’ego . . . . . . . . . . . . . . . . . . . . . . 7.11. Realizacja układu sterującego za pomocą rozdzielacza sterującego . . . . . . . . 7.11.1. Przekształcenie sieci działań w rozdzielacz sterujący . . . . . . . . . . . . 7.11.2. Rozdzielacz sterujący Moore’a . . . . . . . . . . . . . . . . . . . . . . . . 7.11.3. Rozdzielacz sterujący Mealy’ego . . . . . . . . . . . . . . . . . . . . . . 7.12. Inicjacja pracy układu sterującego . . . . . . . . . . . . . . . . . . . . . . . . . . 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 . 303 . 304 . 306 . 308 . 310 . 314 . 320 . 322 . 324 . 325 . 325 . 328 . 330 . 336 . 336 . 339 . 343 . 349 . 350 . 352 . 355 . 357 . 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 9 Spis treści 8.2.5. Przykład wykorzystania znakowanej 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 . . . . . . . . . . . . . . . . sieci . . . . . . . . . . . . . . . . . . . . . . . . . . . Petriego . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Skorowidz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442