Verilog: Курс лекций

Структура курса:
2. Лексические соглашения
2.1 Операторы
2.2 Пробелы и комментарии
2.3 Числа
2.4 Строки
2.5 Идентификаторы, ключевые слова, системные имена
2.5.1 Идентификаторы
2.5.2 Ключевые слова
2.5.3 Системные имена и директивы компилятора
3. Типы данных
3.1 Возможные состояния
3.2 Регистры и цепи
3.2.1 Цепи
3.2.2 Регистры
3.2.3 Объявление цепей и регистров
3.2.4 Примеры объявления цепей и регистров
3.3 Типы цепей
3.3.1 Типы wire и tri
3.3.2 Типы wand/triand и wor/trior
3.3.3 Тип trireg
3.3.4 Типы tri1, tri0, supply1, supply0
3.4 Элементы памяти
3.5 Переменные типов integer и time
3.6 Вещественные числа
3.6.1 Определение вещественных чисел
3.6.2 Операторы и вещественные числа
3.6.3 Преобразование вещественных чисел

3.7 Параметры
4. Выражения в языке Verilog
4.1 Операнды в выражениях языка Verilog
4.2 Операторы языка Verilog
4.2.1 Приоритет бинарных операций
4.2.2 Знаковые и беззнаковые числа в выражениях
4.2.3 Арифметические операции
4.2.4 Операции отношения
4.2.5 Операторы сравнения
4.2.6 Логические операции
4.2.7 Побитовые логические операции
4.2.8 Операторы редукции
4.2.9 Синтаксические ограничения
4.2.10 Операторы сдвига
4.2.11 Условный оператор
4.2.12 Конкатенация 4.3 Операнды
4.3.1 Битовая адресация цепей и регистров
4.3.2 Адресация элементов памяти
4.3.3 Строки
5. Иерархические структуры
5.1 Понятие иерархических структур
5.2 Модули
5.2.1 Формальный синтаксис
5.2.2 Объявление портов
5.2.3 Создание экземпляров модулей
5.2.4 Создание экземпляров примитивов
5.2.5 Процесс-блоки (always-блоки)
5.2.6 Блоки установки начальных состояний
5.2.7 Specify-блоки
5.2.8 Присвоение значений переменным
5.2.9 Объявление задач (процедур)
5.2.10 Объявление функций
5.3 Макромодули
5.4 Встроенные примитивы
5.4.1 Вентили типов and, nand, or, nor, xor, xnor
5.4.2 Вентили типов buf, not, bufif0, bufif1, notif0, notif1
5.5 Примитивы определяемые пользователем
5.5.1 Объявление примитивов разработчика
5.5.2 Пример реализации комбинационной логики
5.5.3 Пример реализации регистровой логики
5.6 «Черные» и «Белые» «ящики»
6. Поведенческое описание
6.1 Процедурные присвоения значений переменным
6.2 Оператор ветвления if
6.2.1 Синтаксис оператора if
6.2.2 Пример двоичного реверсивного счетчика
6.2.3 Влияние операторов блочного и внеблочного присвоения
6.2.4 Использование вложенных операторов if
6.3 Операторы выбора case, casex, casez
6.3.1 Синтаксис операторов case, casex, casez
6.3.2 Пример использования оператора case
6.3.3 Использование операторов casex и casez
6.4 Операторы цикла
6.4.1 Оператор for
6.4.2 Оператор repeat
6.4.3 Оператор while
6.4.4 Оператор forever
6.5 Оператор disable
6.6 Оператор wait
6.7 Последовательные и параллельные блоки
6.7.1 Последовательные блоки
6.7.2 Параллельные блоки
6.7.3 Иерархические имена переменных
7. Системные задачи и функции