Содержание книги "Логическое проектирование и верификация систем на SystemVerilog
"
Предисловие: об этой книге
Предисловие от издательства
Контекст: проектирование на уровне регистровых передач
Благодарности
Глава 1. Введение
1.1. Приступая к работе
1.2. Моделирование цифровых систем
1.3. Иерархия модулей
1.4. Тестовое окружение для модуля mux
1.5. Резюме
1.6. Задачи и упражнения
Часть I. МОДЕЛИ УРОВНЯ РЕГИСТРОВЫХ ПЕРЕДАЧ
Глава 2. Комбинационные схемы
2.1. Моделирование комбинационных схем
2.2. Использование операторов assign и always_comb
2.3. Основы разработки тестового окружения
2.4. Параметризованные модули
2.5. Спецификация портов
2.6. Основные типы данных
2.7. Множественные драйверы
2.8. Задачи и упражнения
Глава 3. Конечные автоматы
3.1. D-триггер
3.2. Основы проектирования конечных автоматов
3.3. Явный стиль описания конечных автоматов
3.4. Логическая оптимизация
3.5. Тестовые окружения для конечных автоматов
3.6. Задачи и упражнения
Глава 4. Предположение о синхронности
4.1. Основные предположения: доверяй, но проверяй
4.2. Предположения о временных характеристиках
4.3. Домены синхронизации
4.4. Логическая оптимизация: коррекция временных характеристик
4.5. Правила проектирования синхронных систем
Часть II. АППАРАТНЫЕ ПОТОКИ
Глава 5. Аппаратные потоки (конечные автоматы с трактом данных)
5.1. Аппаратные потоки
5.2. Временные характеристики автоматов Мура и Мили
5.3. Компоненты тракта данных
5.4. Тестовые окружения для аппаратных потоков
5.5. Задачи и упражнения
Глава 6. Интерфейсы
6.1. Взаимодействующие аппаратные потоки
6.2. Синхронные взаимодействия между потоками
6.3. Пример шины SimpleBus
6.4. Асинхронные взаимодействия между потоками
6.5. Интерфейсы в SystemVerilog
6.6. Задачи и упражнения
Часть III. ТЕСТОВЫЕ ОКРУЖЕНИЯ
Глава 7. Введение в тестовые окружения
7.1. Организация тестового окружения
7.2. Программы тестового окружения
7.3. Тестовые окружения для конечных автоматов
7.4. Тестовые окружения для аппаратных потоков
7.5. Использование случайных значений
7.6. Полезные конструкции
7.7. Отладка с использованием процедур ввода-вывода
7.8. Задачи и упражнения
Глава 8. Параллельные тестовые окружения
8.1. Процессы
8.2. Пример и общая схема тестирования
8.3. Протоколы взаимодействия
8.4. Организация тестового окружения
8.5. Конструкции параллельного программирования
Глава 9. Утверждения и последовательности
9.1. Предварительные сведения
9.2. Введение в параллельные утверждения
9.3. Последовательности с диапазонами и повторениями
9.4. Вычисления внутри последовательностей
9.5. Функции работы с сэмплированными значениями
9.6. Задачи и упражнения
Глава 10. Функциональное покрытие
10.1. План верификации
10.2. Группы покрытия и точки покрытия
10.3. Покрытие переходов и перекрестное покрытие
10.4. Вычисление уровня покрытия
10.5. Задачи и упражнения
Часть IV. ДЕТАЛИ, ДЕТАЛИ, ДЕТАЛИ
Глава 11. Процедурные модели
11.1. Операторы процессов
11.2. Оператор if-else и условная операция
11.3. Оператор case и его разновидности
11.4. Циклы
11.5. Подпрограммы: функции и процедуры
11.6. Таблица операций
Глава 12. Структурные модели
12.1. Вентильные примитивы
12.2. Цепи
12.3. Выбор части и конкатенация
12.4. Модули, порты и экземпляры модулей
12.5. Генерация моделей
Глава 13. Массивы
13.1. Массивы
13.2. Динамические массивы
13.3. Строки
13.4. Очереди
13.5. Ассоциативные массивы
Глава 14. Работа симулятора
14.1. События, слоты времени и списки событий
14.2. Цикл симуляции
14.3. Основной и реагирующий этапы
14.4. Блок-схема работы симулятора
Предметный указатель