VERILOG. JĘZYK W PROJEKTOWANIU UKŁADÓW CYFROWYCH. autor: Włodzimierz Wrona Wydawnictwo Pracowni Komputerowej Jacka Skalmierskiego stron: 276 rok wydania: 2009 oprawa: miękka format: B5 ISBN:[zasłonięte]978-83716-52-6 Języki opisu sprzętu (ang. Hardware Description Language) są jedną z metod wprowadzania danych o projekcie do komputera, pozwalają definiować projekt układu cyfrowego w postaci tekstowej. Poprawność projektu może być następnie weryfikowana poprzez symulację. Języki HDL są używane do opisywania układów cyfrowych, takich jak podzespoły komputera, mikroprocesory, sterowniki itp. Historia języków opisu sprzętu ma ponad czterdzieści lat. W pierwszym okresie korzystano z nich najczęściej w ośrodkach projektowych większych firm, rzadko natomiast używał ich projektant-inżynier. Sytuacja ta zmienia się jednak stopniowo wraz z rozwojem technologii wytwarzania układów scalonych.
SPIS TREŚCI: 1. Wstęp 1.1. Wprowadzenie 1.2. Język Verilog 1.3. Pierwszy program 1.4. Struktura programu w języku Verilog 1.5. Zasady reprezentowania gramatyki języka Verilog 2. Podstawowe elementy języka 2.1. Komentarze i białe znaki 2.2. Liczby 2.3. Napisy czyli stałe tekstowe 2.4. Identyfikatory, słowa kluczowe i nazwy systemowe 2.5. Typy danych 3. Modelowanie behawioralne 3.1. Wstęp do modelowania behawioralnego 3.2. Proceduralne przypisanie 3.3. Ciągłe przypisanie proceduralne 3.4. Wyrażenia warunkowe if-else-if 3.5. Instrukcja przypadku 3.6. Instrukcja pętli 3.7. Proceduralne kontrolowanie czasu 3.8. Zdarzenia czułe na poziom sygnału instrukcja wait 3.9. Sterowanie czasem wewnątrz przypisania 3.10. Instrukcja bloku 3.11. Instrukcje initial i always 4. Opis strukturalny 4.1. Moduł 4.2. Porty 4.3. Konstrukcje bramkowe 4.4. Projektowanie na poziomie przełączników 4.5. Przypisanie ciągłe 5. Wyrażenia 5.1. Wyrażenia o wartościach stałych 5.2. Operatory 5.3. Operandy 5.4. Wyrażenia o różnych szerokościach bitowych 6. Zadania i funkcje 6.1. Zadania wyświetlania 6.2. Zadani monitorowania migotliwego 6.3. Zadania monitorowania ciągłego 6.4. Zadania wejścia-wyjścia dla plików 6.5. Zadania skalowania czasu 6.6. Zadania sterowania symulacją 6.7. Zadania kontroli czasowej 6.8. Zadania modelowania PLA 6.9. Zadania i funkcje analizy stochastycznej 6.10. Funkcje określania czasu symulacji 7. Dyrektywy 7.1. Dyrektywy 'celldefine' oraz 'endcelldefine' 7.2. Dyrektywa 'default_nettype' 7.3. Dyrektywy 'define' oraz 'undef' 7.4. Dyrektywy 'ifdef', 'else' oraz 'endif' 7.5. Dyrektywa 'include' 7.6. Dyrektywa 'resetall' 7.7. Dyrektywa 'timescale' 7.8. Dyrektywy 'unconnected_drive' oraz 'mounconnected_drive' 8. Prymitywy definiowane przez użytkownika 8.1. Definicja UDP 8.2. Kombinacyjne UDP 8.3. Sekwencyjne UDP wrażliwe na poziom sygnału 8.4. Sekwencyjne UDP czułe na zbocze sygnału 8.5. Inicjalizacja sekwencyjnych UDP 9. Przykłady projektów układów cyfrowych w języku Verilog 9.1. Rejestr równoległy z możliwością przesunięcia w lewo 9.2. Multiplekser 9.3. Komparator 9.4. Licznik asynchroniczny 9.5. Przerzutnik SR 9.6. Pamięć synchroniczna 10. Mnożenie i dzielenie zmiennoprzecinkowe w języku Verilog 10.1. Zmiennopozycyjna reprezentacja liczb 10.2. Mnożenie i dzielenie liczb zmiennoprzecinkowych 10.3. Przykład mnożenia dwóch liczb zmiennoprzecinkowych 10.4. Implementacja algorytmu mnożenia liczb zmiennoprzecinkowych w języku Verilog 10.5. Weryfikacja działania układu mnożenia liczb zmiennoprzecinkowych Dodatek A. Gramatyka języka Dodatek B. Kod układu mnożenia i dzielenia liczb zmiennoprzecinkowych w języku Verilog
|