PicoBlaze. Mikroprocesor w FPGA.
Opis
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 51. Pierwsze spotkanie z mikroprocesorem PicoBlaze 131.1. Co to jest PicoBlaze 141.1.1. Wyprowadzenia mikroprocesora PicoBlaze 161.1.2. Dołączenie pamięci programu 171.1.3. Opis plików źródłowych 171.2. Pierwszy projekt 201.3. Asembler 261.3.1. Opis programu kcpsm3.exe 261.3.2. Składnia programu asemblerowego 271.3.3. Lista rozkazów PicoBlaze 281.4. Symulacja 311.5. Implementacja 341.5.1. Podsumowanie implementacji projektu 451.5.2. Przeprowadzenie symulacji 461.6. Podsumowanie 482. Instrukcje mikroprocesora 492.1. PicoBlaze i wykonywanie instrukcji 502.1.1. Instrukcja LOAD 502.1.2. Instrukcja skoku JUMP 502.1.3. Podprogramy 512.1.4. Operacje logiczne 522.1.5. Przesunięcia 542.1.6. Podstawowe operacje arytmetyczne 552.2. Procedury operacji arytmetycznych 572.3. Dokładne odmierzanie czasu za pomocą programu w asemblerze 612.4. Symulator pBlaze IDE 632.4.1. Definiowanie portów 662.4.2. Przebieg symulacji 682.5. Podsumowanie 703. Porty wejścia i wyjścia 713.1. Instrukcje portów wejścia i wyjścia 723.2. Porty zewnętrzne 733.3. Implementacja portów w językach HDL 743.4. Obsługa styków mechanicznych poprzez porty 833.5. Testbench i symulacja 893.6. Weryfikacja poprawności opisu i wyników symulacji 933.7. Podsumowanie 964. Podręczna pamięć RAM 974.1. Instrukcje obsługi podręcznej pamięci RAM 984.2. Przykładowe zastosowania podręcznejpamięci RAM 994.2.1. Programowa realizacja stosu 994.2.2. Programowe realizacje tablicy typu „look up” 1004.2.3. Realizacja pamięci kolejkowej FIFO 1014.3. Podłączenie interfejsu UART do PicoBlaze 1014.4. Wysyłanie komend do mikrokontrolera przez UART 1104.5. Symulacja 1264.6. Podsumowanie 1325. Przerwania 1335.1. Instrukcje obsługi przerwania 1345.2. Przykładowa obsługa przerwania 1365.2.1. Symulacje 1455.2.2. Zastosowanie modułu licznika 1465.3. Inne zastosowania przerwań 1466. PicoBlaze i JTAG 1476.1. Programowanie pamięci programu 1486.1.1. Programowanie za pomocą interfejsu JTAG poleceniem użytkownika 1506.1.2. Zmiana kodu programu PicoBlaze przez interfejs JTAG 1556.2. Debugowanie PicoBlaze poprzez interfejs JTAG 1576.3. Projekt własnego modułu JTAG 1646.4. Pliki BSDL 1746.5. Pliki SVF 1766.5.1. Instrukcje w plikach w formacie SVF 1776.5.2. Plik SVF do sprawdzenia zaprojektowanego interfejsu JTAG w PicoBlaze 1816.5.3. Program iMPACT w trybie komend 1816.6. Podsumowanie 1827. Urządzenia peryferyjne 1837.1. Obsługa wyświetlaczy 1867.2. Obsługa interfejsu PS/2 1957.3. Obsługa kart SD (MMC) poprzez interfejs SPI 2057.4. Podsumowanie 2128. Magistrala systemowa 2138.1. Magistrala Wishbone 2148.1.1. Rodzaje połączeń 2148.1.2. Wyprowadzenia sygnałów 2168.1.3. Cykle dostępowe 2198.2. Interfejs I2C 2208.2.1. Połączenie z PicoBlaze 2208.2.2. Programowanie 2258.3. Zewnętrzny zegar czasu rzeczywistego 2298.4. Podsumowanie 2349. Rozszerzenia 2359.1. Zwiększanie pamięci podręcznej RAM 2369.2. Połączenie dwóch procesorów PicoBlaze 2399.3. Opcje kompilacji i syntezy PicoBlaze 2459.4. Symulacja po syntezie 2479.5. Podsumowanie 248Dodatki 249Dodatek A. Opis instrukcji asemblera PicoBlaze 250Dodatek B. Zestawienie wyników implementacji pr
