Opis
Podręcznik opisujący projektowanie układów cyfrowych. Podano podstawy klasycznych metod projektowania prostych układów logicznych, sposoby projektowania złożonych układów w strukturach mikroprogramowalnych, z wykorzystaniem systemów mikroprocesorowych i z wykorzystaniem układów programowalnych, produkcję i wykorzystanie układów programowalnych CPLD i FPGA, programowe systemy wspomagania projektowania wraz z omówieniem poszczególnych etapów projektu, wybrane informacje dotyczące współczesnych języków opisu sprzętu (VHDL, Verilog i AHDL) oraz algorytmy realizacji projektu w strukturach FPGA. Ukoronowaniem wykładu jest opis trzech przykładów realizacji złożonych projektów cyfrowych (układu sterowania drukarką atramentową przeznaczoną do automatów sprzedających bilety komunikacyjne, prostego mikrokontrolera oraz szyfratora blokowego).
Książka jest polecana zarówno studentom, jak i inżynierom zajmującym się wykorzystaniem układów programowalnych w praktyce zawodowej.
Książka ani w całości, ani we fragmentach nie może być skanowana, kserowana, powielana bądź rozpowszechniana za pomocą urządzeń elektronicznych, mechanicznych, kopiujących, nagrywających i innych, w tym również nie może być umieszczana ani rozpowszechniana w postaci cyfrowej zarówno w Internecie, jak i w sieciach lokalnych bez pisemnej zgody posiadacza praw autorskich.
Spis treści
1. Wprowadzenie 9
2. Projektowanie układów prostych 12
2.1. Wprowadzenie 12
2.2. Projektowanie z bramek i przerzutników 13
2.2.1. Układy kombinacyjne 13
2.2.2. Układy sekwencyjne 18
2.3. Projektowanie układów z bloków funkcjonalnych 20
2.3.1. Projektowanie układów kombinacyjnych 20
2.3.2. Projektowanie układów sekwencyjnych 21
2.4. Opis układów w języku HDL 24
3. Podstawy projektowania układów złożonych 28
3.1. Wprowadzenie 28
3.2. Układy budowane z bloków funkcjonalnych 29
3.3. Układy mikroprogramowane 32
3.4. Układy mikroprocesorowe 40
4. Układy programowalne 45
4.1. Wstęp 45
4.2. Układy CPLD 47
4.2.1. Architektura układów CPLD 47
4.2.2. Przykładowa rodzina układów CPLD 48
4.3. Układy FPGA 49
4.3.1. Architektura układów FPGA 49
4.3.2. Przykładowe układy FPGA firmy ALTERA 54
4.3.3. Układy firmy Xilinx 58
4.3.4. Układy firmy Lattice 60
4.3.5. Układy Delta39K firmy Cypress 63
4.3.6. Układy AT6000 firmy Atmel 64
4.4. Konfigurowanie układów FPGA 66
5. Projektowanie urządzeń cyfrowych 69
5.1. Etapy procesu projektowania 69
5.1.1. Formalizacja opisu 69
5.1.2. Projekt koncepcyjny 70
5.1.3. Projekt techniczny 72
5.1.4. Budowa urządzenia i jego testowanie 73
5.1.5. Modyfikacje i ulepszanie 73
5.2. Porównanie metodologii projektowania 73
5.3. Projekt modułu FPGA 75
5.4. Przykład wykorzystania modułu FPGA 80
6. Systemy wspomagające projektowanie 83
6.1. Wprowadzenie 83
6.2. Proces projektowania 84
6.2.1. Wprowadzenie projektu 84
6.2.2. Synteza projektu 87
6.2.3. Programowanie układu 88
6.3. Wykorzystywanie systemów EDA 88
6.4. Wybrane narzędzia systemów EDA 89
6.5. Wykonanie projektu za pomocą systemu EDA 91
6.6. Przyspieszanie projektowania 103
7. Języki opisu sprzętu 105
7.1. Wprowadzenie 105
7.2. Język VHDL 106
7.2.1. Podstawowe struktury języka VHDL 106
7.2.2. Operatory arytmetyczne i logiczne 112
7.2.3. Instrukcje złożone 114
7.2.4. Projektowanie behawioralne i strukturalne 115
7.2.5. Tworzenie elementów bibliotecznych 117
7.3. Język AHDL 119
7.3.1. Podstawowe struktury języka 119
7.3.2. Instrukcje podstawienia 122
7.3.3. Instrukcje złożone 123
7.3.4. Tablice wartości 125
7.3.5. Opisy automatów 126
7.3.6. Projektowanie strukturalne 129
7.4. Język Verilog 131
7.4.1. Typy danych 132
7.4.2. Operatory logiczne i relacji 134
7.4.3. Przykłady projektów 136
7.5. Przykładowy projekt bloku funkcjonalnego 142
7.5.1. Projekt opisany w języku VHDL 142
7.5.2. Projekt opisany w języku AHDL 144
7.5.3. Projekt opisany w języku Verilog 146
8. Przykładowe projekty w języku VHDL 150
8.1. Układy kombinacyjne 150
8.1.1. Projektowanie multiplekserów 150
8.1.2. Projektowanie dekoderów 157
8.1.3. Projektowanie układów arytmetycznych 158
8.2. Układy sekwencyjne 162
8.2.1. Projektowanie przerzutników 162
8.2.2. Projektowanie rejestrów i liczników 166
8.2.3. Projektowanie automatów 170
8.3. Projektowanie pamięci 173
8.3.1. Projektowanie pamięci ROM 173
8.3.2. Projektowanie pamięci RAM 176
9. Testowanie projektów w układach FPGA 179
9.1. Wprowadzenie 179
9.2. Ścieżka krawędziowa 180
9.2.1. Wprowadzenie 180
9.2.2. Interfejs JTAG 182
9.2.3. Opis ścieżki krawędziowej w języku BSDL 184
9.3. Ścieżka cykliczna 187
9.3.1. Wprowadzenie 188
9.3.2. Przykładowa implementacja ścieżki cyklicznej 189
10. Projekt sterownika drukarki 196
10.1. Etap wstępny projektu 196
10.1.1. Wymagania inwestora 196
10.1.2. Założenia projektowe 197
10.1.3. Specyfikacja 199
10.2. Projekt koncepcyjny 199
10.2.1. Schemat blokowy 200
10.2.2. Projekt układu sterującego z CPLD 201
10.2.3. Projekt zawartości układu CPLD 202
11. Prosty mikrokontroler 211
11.1. Opis słowny zadania projektowego 211
11.2. Etap wstępny projektu 212
11.2.1. Wymagania inwestora 212
11.2.2. Założenia projektowe 212
11.3. Projekt koncepcyjny 213
11.4. Projekt techniczny 214
11.4.1. Moduł transmisji wejściowej 215
11.4.2. Moduł transmisji wyjściowej 218
11.4.3. Moduł pamięci RAM 221
11.4.4. Moduł pamięci ROM 222
11.4.5. Moduł rozszerzenia szyny systemowej 224
11.4.6. Moduł procesora CPU 226
11.4.7. Mikrokontroler 235
12. Szyfrator blokowy 239
12.1. Opis słowny zadania projektowego 239
12.2. Etap wstępny projektu 241
12.3. Projekt koncepcyjny 241
12.3.1. Wariant I 241
12.3.2. Wariant II 242
12.3.3. Wariant III 244
12.4. Wnioski 245
Bibliografia 246
Skorowidz 247