Współczesne układy FPGA oferują konstruktorom tak duże zasoby logiczne, że możliwa jest implementacja w nich kompletnych mikrokontrolerów i mikroprocesorów oraz współpracujących z nimi cyfrowych bloków peryferyjnych. Jednym z najpopularniejszych mikroprocesorów przeznaczonym do implementacji w układach PLD (CPLD i FPGA) firmy Xilinx jest 8-bitowy PicoBlaze. Jest on dostępny w postaci IP core´a napisanego w dwóch najpopularniejszych językach opisu sprzętu: VHDL oraz Verilogu.
Czytelnicy dowiedzą się z książki w jaki sposób można implementować IP core´y (w obydwu wersjach: VHDL i Verilog) w układach FPGA, jak przygotować programy dla mikroprocesora zaimplementowanego w FPGA, jak symulować i testować jego działanie, jak konfigurować FPGA i jak optymalizować projekty implementowane w tych układach.
Książka jest przeznaczona dla studentów wyższych uczelni technicznych, konstruktorów urządzeń elektronicznych chcących poznać nowoczesne technologie projektowania i implementacji projektów cyfrowych, a także wszystkich elektroników chcących poszerzyć swoją wiedzę o zagadnienia ocierające się o awangardę współczesnej elektroniki.
SPIS TREŚCI:
Wprowadzenie 5
1. Pierwsze spotkanie z mikroprocesorem PicoBlaze 13
1.1. Co to jest PicoBlaze 14
1.1.1. Wyprowadzenia mikroprocesora PicoBlaze 16
1.1.2. Dołączenie pamięci programu 17
1.1.3. Opis plików źródłowych 17
1.2. Pierwszy projekt 20
1.3. Asembler 26
1.3.1. Opis programu kcpsm3.exe 26
1.3.2. Składnia programu asemblerowego 27
1.3.3. Lista rozkazów PicoBlaze 28
1.4. Symulacja 31
1.5. Implementacja 34
1.5.1. Podsumowanie implementacji projektu 45
1.5.2. Przeprowadzenie symulacji 46
1.6. Podsumowanie 48
2. Instrukcje mikroprocesora 49
2.1. PicoBlaze i wykonywanie instrukcji 50
2.1.1. Instrukcja LOAD 50
2.1.2. Instrukcja skoku JUMP 50
2.1.3. Podprogramy 51
2.1.4. Operacje logiczne 52
2.1.5. Przesunięcia 54
2.1.6. Podstawowe operacje arytmetyczne 55
2.2. Procedury operacji arytmetycznych 57
2.3. Dokładne odmierzanie czasu za pomocą programu w asemblerze 61
2.4. Symulator pBlaze IDE 63
2.4.1. Definiowanie portów 66
2.4.2. Przebieg symulacji 68
2.5. Podsumowanie 70
3. Porty wejścia i wyjścia 71
3.1. Instrukcje portów wejścia i wyjścia 72
3.2. Porty zewnętrzne 73
3.3. Implementacja portów w językach HDL 74
3.4. Obsługa styków mechanicznych poprzez porty 83
3.5. Testbench i symulacja 89
3.6. Weryfikacja poprawności opisu i wyników symulacji 93
3.7. Podsumowanie 96
4. Podręczna pamięć RAM 97
4.1. Instrukcje obsługi podręcznej pamięci RAM 98
4.2. Przykładowe zastosowania podręcznejpamięci RAM 99
4.2.1. Programowa realizacja stosu 99
4.2.2. Programowe realizacje tablicy typu "look up" 100
4.2.3. Realizacja pamięci kolejkowej FIFO 101
4.3. Podłączenie interfejsu UART do PicoBlaze 101
4.4. Wysyłanie komend do mikrokontrolera przez UART 110
4.5. Symulacja 126
4.6. Podsumowanie 132
5. Przerwania 133
5.1. Instrukcje obsługi przerwania 134
5.2. Przykładowa obsługa przerwania 136
5.2.1. Symulacje 145
5.2.2. Zastosowanie modułu licznika 146
5.3. Inne zastosowania przerwań 146
6. PicoBlaze i JTAG 147
6.1. Programowanie pamięci programu 148
6.1.1. Programowanie za pomocą interfejsu JTAG poleceniem użytkownika 150
6.1.2. Zmiana kodu programu PicoBlaze przez interfejs JTAG 155
6.2. Debugowanie PicoBlaze poprzez interfejs JTAG 157
6.3. Projekt własnego modułu JTAG 164
6.4. Pliki BSDL 174
6.5. Pliki SVF 176
6.5.1. Instrukcje w plikach w formacie SVF 177
6.5.2. Plik SVF do sprawdzenia zaprojektowanego interfejsu JTAG w PicoBlaze 181
6.5.3. Program iMPACT w trybie komend 181
6.6. Podsumowanie 182
7. Urządzenia peryferyjne 183
7.1. Obsługa wyświetlaczy 186
7.2. Obsługa interfejsu PS/2 195
7.3. Obsługa kart SD (MMC) poprzez interfejs SPI 205
7.4. Podsumowanie 212
8. Magistrala systemowa 213
8.1. Magistrala Wishbone 214
8.1.1. Rodzaje połączeń 214
8.1.2. Wyprowadzenia sygnałów 216
8.1.3. Cykle dostępowe 219
8.2. Interfejs I2C 220
8.2.1. Połączenie z PicoBlaze 220
8.2.2. Programowanie 225
8.3. Zewnętrzny zegar czasu rzeczywistego 229
8.4. Podsumowanie 234
9. Rozszerzenia 235
9.1. Zwiększanie pamięci podręcznej RAM 236
9.2. Połączenie dwóch procesorów PicoBlaze 239
9.3. Opcje kompilacji i syntezy PicoBlaze 245
9.4. Symulacja po syntezie 247
9.5. Podsumowanie 248
Dodatki 249
Dodatek A. Opis instrukcji asemblera PicoBlaze 250
Dodatek B. Zestawienie wyników implementacji projektów przedstawionych w książce 269
Bibliografia 272