Obsah knihy: |
|
1 | Úvod | 11 |
|
2 | Signály v číslicových systémech | 13 |
2.1 | Dvojstavové signály | 14 |
2.2 | Třístavové signály | 16 |
2.3 | Dynamické parametry číslicových signálů | 16 |
|
3 | Jazyk VHDL | 19 |
3.1 | Historie, současnost, budoucnost a vlastnosti jazyka VHDL | 20 |
3.2 | Použité formátování pro výpisy kódu a syntaxi jazyka VHDL | 23 |
3.3 | Komentáře a identifikátory | 24 |
3.4 | Zápis čísel, znaků a řetězců | 25 |
3.4.1 | Zápis čísel v dekadické soustavě | 25 |
3.4.2 | Zápis čísel v dalších soustavách | 25 |
3.4.3 | Zápis znaku | 26 |
3.4.4 | Zápis textových řetězců | 26 |
3.4.5 | Zápis bitových řetězců | 26 |
3.5 | Entita, architektura a další návrhové jednotky | 27 |
3.6 | Základní datové typy | 30 |
3.6.1 | Výčtový typ | 31 |
3.6.2 | Celočíselný typ | 32 |
3.6.3 | Fyzický typ | 33 |
3.6.4 | Typ s plovoucí řádovou čárkou | 34 |
3.6.5 | Typ pole | 35 |
3.6.6 | Typ záznam | 35 |
3.6.7 | Typ soubor | 36 |
3.7 | Operátory | 37 |
3.7.1 | Logické operátory | 37 |
3.7.2 | Relační operátory | 38 |
3.7.3 | Operátory posuvu | 38 |
3.7.4 | Sčítací operátory a operátor spojení | 39 |
3.7.5 | Znaménkové operátory | 40 |
3.7.6 | Násobící operátory | 40 |
3.7.7 | Různé operátory | 40 |
3.8 | Základní objekty | 41 |
3.8.1 | Konstanty | 41 |
3.8.2 | Signály | 41 |
3.8.3 | Proměnné | 42 |
3.8.4 | Aliasy | 42 |
3.8.5 | Soubory | 43 |
3.9 | Paralelní příkazy | 43 |
3.9.1 | Nepodmíněné přiřazení | 44 |
3.9.2 | Podmíněné přiřazení | 45 |
3.9.3 | Výběrové přiřazení | 46 |
3.9.4 | Proces | 47 |
3.9.5 | Generující příkaz | 48 |
3.9.6 | Použití komponenty | 49 |
3.9.7 | Volání procedury | 51 |
3.9.8 | Příkaz bloku | 51 |
3.9.9 | Příkaz assert | 51 |
3.10 | Sekvenční příkazy | 51 |
3.10.1 | Sekvenční přiřazení do proměnné | 52 |
3.10.2 | Sekvenční přiřazení do signálu | 52 |
3.10.3 | Příkaz wait | 53 |
3.10.4 | Příkaz if | 54 |
3.10.5 | Příkaz case | 54 |
3.10.6 | Příkaz loop | 55 |
3.10.7 | Příkaz next | 57 |
3.10.8 | Příkaz exit | 57 |
3.10.9 | Příkaz return | 57 |
3.10.10 | Příkaz null | 57 |
3.10.11 | Příkaz assert | 57 |
3.10.12 | Příkaz report | 58 |
3.10.13 | Procedury | 59 |
3.10.14 | Funkce | 59 |
3.11 | Atributy | 60 |
3.11.1 | Atributy typů | 60 |
3.11.2 | Atributy polí | 63 |
3.11.3 | Atributy signálů | 64 |
3.11.4 | Atributy pojmenovaných objektů | 66 |
3.11.5 | Uživatelem definované atributy | 67 |
3.12 | Knihovny a knihovní balíky | 67 |
3.12.1 | Knihovní balík std_logic_1164 | 69 |
3.12.2 | Knihovní balík numeric_std | 71 |
3.12.3 | Knihovna LPM | 72 |
3.12.4 | Uživatelské knihovny a knihovní balíky | 75 |
3.13 | Testovací prostředí pro ověřování funkčnosti navrženého systému | 77 |
3.14 | Seznam klíčových slov jazyka VHDL | 80 |
|
4 | Číslicové součástky a technologie | 81 |
4.1 | Vlastnosti číslicových součástek | 82 |
4.2 | Značení logických členů | 85 |
4.3 | Bipolární technologie | 85 |
4.4 | Unipolární technologie - CMOS | 89 |
4.5 | Technologie BiCMOS | 92 |
4.6 | Nevyužité vstupy číslicových součástek | 93 |
|
5 | Třístavové výstupy a otevřené kolektory | 95 |
5.1 | Obvody s třístavovými výstupy | 96 |
5.2 | Terminátory sběrnice | 98 |
5.3 | Výstupy s otevřenými kolektory | 100 |
|
6 | Kombinační obvody | 103 |
6.1 | Základní pravidla Booleovy algebry | 104 |
6.2 | Hlavní pravidla pro tvorbu a úpravy logických výrazů | 105 |
6.3 | Pravdivostní tabulka | 106 |
6.4 | Neurčené stavy | 108 |
6.5 | Minimalizace logické funkce | 109 |
6.6 | Skupinová minimalizace | 111 |
6.7 | Mapy a jejich použití | 112 |
6.8 | Návrh kombinačních obvodů | 116 |
6.9 | Využití multiplexorů | 120 |
6.10 | Využití členů EX-OR | 123 |
6.11 | Realizace kombinačních obvodů pamětí | 125 |
|
7 | Přechodné děje v kombinačních obvodech | 127 |
7.1 | Zpoždění signálů ze vstupů na výstupy | 128 |
7.2 | Hazardní stavy v kombinačních obvodech | 130 |
7.3 | Hledání hazardu pomocí map | 132 |
7.4 | Hledání hazardu z výrazu | 134 |
7.5 | Hazard při změně více než jedné proměnné | 135 |
7.6 | Potlačení falešného impulzu filtrem | 135 |
7.7 | Potlačení falešného impulzu registrem | 136 |
7.8 | Vliv úprav výrazu a obvodu na hazardy | 136 |
7.9 | Dynamický hazard | 137 |
|
8 | Základní funkční bloky | 139 |
8.1 | Dekodér | 140 |
8.2 | Multiplexor | 143 |
8.3 | Demultiplexor | 146 |
8.4 | Prioritní kodér | 148 |
8.5 | Číslicový komparátor | 150 |
8.6 | Sčítačka | 152 |
8.7 | Odčítačka | 154 |
8.8 | Převodník kódu | 156 |
8.9 | Asynchronní klopné obvody | 158 |
8.10 | Synchronní klopné obvody | 163 |
8.11 | Transformace klopných obvodů | 173 |
8.12 | Blokování klopných obvodů | 174 |
|
9 | Registry a čítače | 177 |
9.1 | Datové registry | 178 |
9.2 | Posuvné registry | 180 |
9.3 | Posuvné registry se zpětnou vazbou | 184 |
9.4 | Charakteristika čítačů | 188 |
9.5 | Asynchronní čítače | 190 |
9.6 | Synchronní čítače | 191 |
9.7 | Nulování a přednastavení čítače | 195 |
9.8 | Přenosy z čítače | 197 |
9.9 | Čítače „modulo M" | 199 |
|
10 | Sekvenční obvody | 203 |
10.1 | Přechodová a výstupní funkce | 204 |
10.2 | Popis pomocí grafu | 205 |
10.3 | Popis pomocí soustavy rovnic | 207 |
10.4 | Popis pomocí tabulek | 208 |
10.5 | Popis v některém programovacím jazyku | 208 |
10.6 | Obvodová realizace konečného automatu | 213 |
10.7 | Kódování stavů | 215 |
10.8 | Volba klopných obvodů | 217 |
10.9 | Návrh budicích funkcí | 217 |
10.10 | Časování signálů v synchronním sekvenčním obvodu | 219 |
10.11 | Nastavení počátečního stavu | 223 |
|
11 | Tvarovací a časovači obvody | 225 |
11.1 | Asynchronní časovači obvody | 226 |
11.2 | Synchronní časovači obvody | 230 |
11.3 | Impulzní šířkový modulátor | 234 |
|
12 | Paměti | 237 |
12.1 | Rozdělení pamětí | 238 |
12.2 | Důležité parametry pamětí | 238 |
12.3 | Paměti paralelní a sériové | 239 |
12.4 | Vnitřní uspořádání paměti s adresovým výběrem | 240 |
12.5 | Statické paměti RAM | 243 |
12.6 | Dynamické paměti RAM | 245 |
12.7 | Synchronní dynamické paměti RAM | 250 |
12.8 | Synchronní dynamické paměti DDR | 254 |
12.9 | Permanentní paměti | 255 |
12.10 | Dvojbránová paměť | 261 |
12.11 | Paměť fronty | 266 |
|
13 | Programovatelné logické obvody | 271 |
13.1 | Historie programovatelných logických obvodů | 272 |
13.2 | Jednoduché programovatelné logické obvody (SPLD) | 277 |
13.3 | Komplexní programovatelné logické obvody (CPLD) | 279 |
13.4 | Programovatelná logická pole (FPGA) | 283 |
13.5 | Základní dynamické parametry PLD | 288 |
|
14 | Mikroprogprogramový automat | 289 |
14.1 | Základní obvody mikroprogramového automatu | 290 |
14.2 | Obvody pro modifikaci adres | 292 |
14.3 | Obvody pro vyhodnocení podmínek přechodu | 296 |
14.4 | Nastavení počáteční adresy | 298 |
14.5 | Časování signálů mikroprogramového automatu | 299 |
14.6 | Dynamické výstupy | 301 |
14.7 | Pomocné obvody | 301 |
14.8 | Použití mikroprogramového automatu | 303 |
|
15 | Návrh rozsáhlých systémů | 305 |
15.1 | Synchronizace vnitřních obvodů systému | 307 |
15.2 | Časování vstupních signálů | 309 |
15.3 | Korespondenční provoz | 310 |
15.4 | Zřetězené zpracování | 312 |
15.5 | Systémy RTL | 314 |
15.6 | Návrh číslicového obvodu při použití RTL popisu | 320 |
|
| Literatura | 323 |
| Seznam zkratek a anglických termínů | 327 |
| Příloha: zjednodušená syntaxe jazyka VHDL | 331 |
| Rejstřík | 341 |