Opis
W książce przedstawiono metody komputerowego projektowania układów cyfrowych za pomocą modeli opisanych w języku VHDL.
Po każdym rozdziale zamieszczono ćwiczenia do samodzielnego rozwiązania, a na końcu podano odpowiedzi do wybranych ćwiczeń.
Odbiorcy książki: pracownicy naukowi i studenci wydziałów informatyki, elektroniki, telekomunikacji, mechatroniki (automatyki) i elektrotechniki wyższych uczelni technicznych oraz inżynierowie zajmujący się projektowaniem układów cyfrowych.
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
PRZEDMOWA 9
Zmiany wprowadzone w drugim wydaniu 10
Układ książki 10 Jak korzystać z tej książki? 13
Zasoby WWW 14
Podziękowania 14
1. WPROWADZENIE 15
1.1. Nowoczesne układy cyfrowe 15
1.2. Technologia CMOS 20
1.3. Logika programowalna 26
1.4. Własności elektryczne 31
Podsumowanie 33
Literatura uzupełniająca 33
Ćwiczenia 34
2. PROJEKTOWANIE UKŁADÓW KOMBINACYJNYCH 35
2.1. Algebra Boole’a 35
2.2. Bramki logiczne 38
2.3. Projektowanie układów kombinacyjnych 39
2.4. Przebiegi czasowe 47
2.5. Kody liczbowe 49
Podsumowanie 53
Literatura uzupełniająca 53
Ćwiczenia 54
3. MODELOWANIA UKŁADÓW KOMBINACYJNYCH
W JĘZYKU VHDL 55
3.1. Jednostki i architektury 55
3.2. Identyfikatory, spacje i komentarze 57
3.3. Listy połączeń 58
3.4. Przypisania do sygnału 61
3.5. Klauzula generic 63
3.6. Stałe i porty niepodłączone 64
3.7. Jednostki testowe 65
3.8. Konfiguracje 66
Podsumowanie 68
Literatura uzupełniająca 69
Ćwiczenia 69
4. KOMBINACYJNE BLOKI FUNKCJONALNE 71
4.1. Bufory trójstanowe 71
4.2. Dekodery 77
4.3. Multipleksery 84
4.4. Kodery priorytetowe 86
4.5. Sumatory 90
4.6. Układy kontroli bitu parzystości 94
4.7. Jednostki testowe dla bloków kombinacyjnych 97
Podsumowanie 100
Literatura uzupełniająca 100
Ćwiczenia 100
5. PROJEKTOWANIE SYNCHRONICZNYCH UKŁADÓW SEKWENCYJNYCH 102
5.1. Synchroniczne systemy sekwencyjne 102
5.2. Modele synchronicznych systemów sekwencyjnych 103
5.3. Algorytmiczne automaty stanów 107
5.4. Synteza na podstawie diagramów ASM 112
5.5. Automaty stanów w VHDL 122
5.6. Jednostki testowe dla automatów stanów 133
Podsumowanie 136
Literatura uzupełniająca 136
Ćwiczenia 137
6. MODELE SEKWENCYJNYCH BLOKÓW LOGICZNYCH W JĘZYKU VHDL 140
6.1. Zatrzask 140
6.2. Przerzutniki synchroniczne 144
6.3. Przerzutniki typy JK i T 154
6.4. Rejestry i rejestry przesuwne 158
6.5. Liczniki 161
6.6. Pamięć 169
6.7. Sekwencyjne układy mnożące 174
6.8. Jednostki testowe dla bloków sekwencyjnych 176
Podsumowanie 180
Literatura uzupełniająca 181
Ćwiczenia 181
7. ZŁOŻONE SYSTEMY SEKWENCYJNE 183
7.1. Powiązane automaty stanów 183
7.2. Część sterująca i operacyjna systemu cyfrowego 187
7.3. Instrukcje 190
7.4. Prosty mikroprocesor 191
7.5. Model prostego mikroprocesora w języku VHDL 196
Podsumowanie 205
Literatura uzupełniająca 205
Ćwiczenia 206
8. SYMULACJA MODELI NAPISANYCH W JĘZYKU VHDL 207
8.1. Symulacja sterowana zdarzeniami 207
8.2. Symulacja modeli w języku VHDL 212
8.3. Cechy dobrego modelu w języku VHDL dla potrzeb symulacji 215
8.4. Operacje na plikach 216
Podsumowanie 218
Literatura uzupełniająca 218
Ćwiczenia 219
9. SPECYFIKACJA UKŁADÓW CYFROWYCH W JĘZYKU VHDL DLA POTRZEB SYNTEZY 220
9.1. Modelowanie układów cyfrowych w języku VHDL na poziomie RTL dla potrzeb syntezy 222
9.2. Ograniczenia w przypadku syntezy 235
9.3. Synteza modeli układów cyfrowych opisanych w języku VHDL z wykorzystaniem programowalnych struktur logicznych FPGA 239
9.4. Modelowanie układów cyfrowych w języku VHDL na poziomie zachowania dla potrzeb syntezy 243
9.5. Weryfikacja wyników syntezy 250
Podsumowanie 252
Literatura uzupełniająca 252
Ćwiczenia 252
10. TESTOWANIE SYSTEMÓW CYFROWYCH 256
10.1. Potrzeba testowania 256
10.2. Modele błędów 257
10.3. Generowanie wektorów testowych zorientowanych na błędy 259
10.4. Symulacja błędów 265
10.5. Symulacja błędów w języku VHDL 270
Podsumowanie 280
Literatura uzupełniająca 280
Ćwiczenia 280
11. PROJEKTOWANIE ZORIENTOWANE NA MOŻLIWOŚĆ TESTOWANIA 283
11.1. Usprawnianie metod testowania
typu ad hoc 284
11.2. Projektowanie strukturalne dla potrzeb testowania 285
11.3. Wbudowane samotestowanie 287
11.4. Testowanie krawędziowe (standard IEEE 1149.1) 297
Podsumowanie 305
Literatura uzupełniająca 306
Ćwiczenia 306
12. PROJEKTOWANIE ASYNCHRONICZNYCH UKŁADÓW SEKWENCYJNYCH 309
12.1. Układy asynchroniczne 309
12.2. Analiza układów asynchronicznych 313
12.3. Projektowanie asynchronicznych układów sekwencyjnych 317
12.4. Asynchroniczne automaty stanów 325
12.5. Czasy ustalania i podtrzymania a metastabilność 330
Podsumowanie 338
Literatura dodatkowa 338
Ćwiczenia 339
13. INTERFEJS ZE ŚWIATEM ANALOGOWYM 342
13.1. Przetworniki cyfrowo-analogowe 342
13.2. Przetwornik analogowo-cyfrowy 344
13.3. Język VHDL-AMS 347
13.4. Pętla synchronizacji fazowej 357
13.5. Symulatory języka VHDL-AMS 361
Podsumowanie 363
Dalsze publikacje 363
Ćwiczenia 363
DODATEK A. STANDARDY JĘZYKA VHDL 364
A.1. Język VHDL i powiązane z nim standardy 364
A.2. Różnice pomiędzy standardem 1076-2002 a 1076-1993 366
A.3. Różnice pomiędzy standardem 1076-1993 a 1076-1987 367
A.4. Język VHDL w roku 200x 368
DODATEK B. VERILOG 370
DODATEK C. PAKIETY ZE ZMIENNYMI DZIELONYMI 376
BIBLIOGRAFIA 382
ODPOWIEDZI DO WYBRANYCH PROBLEMÓW 384