Pracownia Komputerowa Jacka Skalmierskiego
autor: Włodzimierz Wrona
data_wydania: 2[zasłonięte]009-06 rok
ISBN: 978[zasłonięte][zasłonięte]07165
dział : Szkoła wyższa-akademickie
dane: B5 stron274
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