Основы языка проектирования цифровой аппаратуры Verilog

Учебное пособие.

В.В. Соловьев "Основы языка проектирования цифровой аппаратуры Verilog" Горячая линия-Телеком, 2014 год, 206 стр. (86,7 мб. pdf)

Язык Verilog (Verilog Hardware Description Language) используется, как язык моделирования и проектирования цифровой аппаратуры. В книге приводится описание основных элементов синтаксиса и широко распространенные конструкции языка имеющие практическое применение. Все описания конструкций языка Verilog сопровождаются примерами.

Приводимая информация не привязана к конкретной элементной базе или определенному программному инструменту проектирования. Это дает возможность использовать материал книги при создании проектов и на заказных СБИС и БМК, и на ПЛИС. Доступность и удобство использования языка Verilog отчасти связано со схожестью его синтаксиса с языком программирования С, который имеет похожий препроцессор, а также основные управляющие конструкции. В следствии этого Verilog имеет большие возможности при описании цифровых устройств и систем, как для конструирования, так и для создания моделей, от уровня транзисторов до сложных структурированных модулей.

Язык Verilog предоставляет также возможности для своего расширения. Для этого служит механизм определения пользовательских примитивов UDP и язык программирования интерфейса PLI. Книга рассчитана на разработчиков цифровых устройств, преподавателей, аспирантов и студентов вузов связанных с программной инженерией.
ISBN: 978-5-9912-0353-1

Оглавление книги.

Глава 1. Предварительное знакомство с языком Verilog
1.1. История языка Verilog
1.2. Первый проект на языке Verilog
1.2.1. Описание проекта
1.2.2. Моделирование проекта
1.3. Базовые элементы языка Verilog
1.3.1. Ключевые слова
1.3.2. Идентификаторы
1.3.3. Белые знаки
1.3.4. Комментарии
1.4. Сигналы, сети, драйверы
1.4.1. Логические значения
1.4.2. Логическая мощность (сила) сигналов
1.5. Числа
1.5.1. Представление целых чисел
1.5.2. Представление действительных чисел
1.6. Параллелизм языка Verilog

Глава 2. Модули
2.1. Определение модулей
2.2. Элементы модулей
2.3. Объявления портов
2.4. Экземпляры модулей
2.5. Параметры
2.6. Неявная передача значений параметров
2.7. Массивы экземпляров модулей
2.8. Иерархия модулей и иерархия имен
2.9. Области иерархии и области действия имен

Глава 3. Примитивы и библиотечные модули
3.1. Где можно найти готовое решение
3.2. Примитивы языка Verilog
3.3. Примитивы, определяемые пользователем.

Глава 4. Типы данных
4.1. Два класса типов данных
4.2. Сетевые типы данных
4.3. Значение сигнала сети
4.4. Типы данных переменные
4.5. Другие типы данных
4.5.1. Параметры
4.5.2. Локальные параметры
4.5.3. Параметры блока спецификации
4.5.4. Переменные генерации
4.5.5. Тип данных событие
4.5.6. Строки
4.6. Выбор битов и битовых полей
4.7. Выбор элементов массива и битовых полей элементов массива
4.8. Объявление памяти

Глава 5. Операции
5.1. Операции языка Verilog
5.2. Побитовые операции
5.3. Операции редукции
5.4. Логические операции
5.5. Операции отношения
5.6. Операции идентичности
5.7. Арифметические операции
5.8. Разносторонние операции
5.9. Выполнение операций
5.10. Приоритет операций
5.11. Размеры битовых выражений

Глава 6. Оператор непрерывного назначения assign
6.1. Присваивание значений в языке Verilog
6.2. Форматы оператора непрерывного назначения
6.3. Использование оператора непрерывного назначения

Глава 7. Процедурные операторы и блоки
7.1. Процедурные операторы initial и always, процедурные блок
7.2. Операторные скобки begin-and и fork-join
7.3. Именованные процедурные блоки
7.4. Формат процедурных блоков

Глава 8. Управление процедурным временем
8.1. Оператор задержки #
8.2. Оператор чувствительности @
8.3. Оператор ожидания wait
8.4. Список чувствительности
8.5. Список чувствительности в комбинационных схемах
8.6. Список чувствительности в последовательностных схемах

Глава 9. Операторы процедурного назначения
9.1. Общие положения
9.2. Оператор блокирующего назначения «=»
9.2.1. Формат
9.2.2. Управление временем
9.2.3. Внутренние задержки
9.2.4. Особенности синтеза
9.3. Оператор неблокирующего назначения
9.3.1. Формат
9.3.2. Управление временем
9.3.3. Внутренние задержки
9.3.4. Особенности синтеза
9.4. Управление временем в процедурных операторах назначения во время моделирования
9.5. Процедурные операторы assign и deassign
9.6. Процедурные операторы force и release

Глава 10. Операторы процедурного программирования
10.1. Общие положения
10.2. Оператор if-else
10.3. Оператор case
10.4. Операторы casez и casex
10.5. Оператор for
10.6. Оператор while
10.7. Оператор repeat
10.8. Оператор forever
10.9. Оператор disable
10.10. Пример использования операторов процедурного программирования
10.11. Различие между операторами wait и while

Глава 11. Атрибуты
11.1. Атрибуты языка Verilog
11.2. Атрибут fulLcase
11.3. Атрибут paralleLcase

Глава 12. Блок генерации
12.1. Блоки генерации языка Verilog
12.2. Формат блока генерации
12.3. Операторы генерации
12.3.1. Группа элементов генерации
12.3.2. Оператор if-else
12.3.3. Оператор case
12.3.4. Оператор fог

Глава 13. Задачи и функции
13.1. Задачи и функции языка Verilog
13.2. Автоматические и статические задачи и функции
13.3. Задачи
13.4. Функции
13.5. Константные функции
13.6. Сравнение функций и задач

Глава 14. Системные задачи и функции
14.1. Системные задачи и функции языка Verilog
14.2. Системные задачи для отображения текста
14.3. Системные задачи и функции для работы с файлами
14.3.1. Открытие и закрытие файлов
14.3.2. Вывод информации в файл
14.3.3. Другие функции работы с файлами
14.4. Другие системные задачи и функции
14.4.1. Управление процессом симуляции
14.4.2. Управление временем симуляции
14.4.3. Преобразование знаковых и беззнаковых величин
14.4.4. Запись и чтение в переменные и из строки символов
14.4.5. Загрузка содержимого памяти
14.4.6. Преобразование переменных типа геа1 в 64-битовый вектор
14.4.7. Функции для работы с командной строкой

Глава 15. Директивы компилятора
15.1. Директивы компилятора языка Verilog
15.2. Возврат к умалчиваемым значениям директив компилятора
15.3. Определение значения единицы времени
15.4. Макроопределения
15.5. Директивы условной компиляции
15.6. Включение файлов
15.7. Определение умалчиваемого типа цепей
15.8. Определение логических значений для неподсоединенных входов
15.9. Определение пользовательских библиотек

Глава 16. Блоки спецификаций
16.1. Блоки спецификаций языка Verilog
16.2. Формат блоков спецификаций
16.3. Обнаружение путей импульсов (сбоев)
16.4. Проверки временных ограничений

Глава 17. Конфигурация проекта
17.1. Конфигурации
17.2. Конфигурационные блоки
17.3. Файлы карты библиотеки
17.4. Примеры конфигурации проекта
17.4.1. Исходное описание проекта
17.4.2. Использование конфигурации, заданной в файле карты библиотек
17.4.3. Использование оператора default
17.4.4. Использование оператора cell
17.4.5. Использование оператора instance
17.4.6. Использование иерархической конфигурации

Глава 18. Синтезируемые конструкции языка Verilog
18.1. Общие положения
18.2. Конструкции языка Verilog, поддерживаемые пакетом
Quartus II фирмы Altera
Список технической литературы
Список сокращений
Предметный указатель

Скачать книгу бесплатно86,7 мб. pdf