Языки описания схем
Актуальность информации: осенний семестр 2023/2024 учебного года.
Обязательный курс для студентов группы 518мк_дус. Курс проводит Подымов В.В.
Содержание
Материалы занятий
Лекции
Блок 1. Организационные вопросы.
Блок 2. Вспоминаем дискретную математику: булевы функции, булевы формулы, схемы из функциональных элементов.
Блок 3. Как устроена цифровая аппаратура. Немного физики: как схемы из функциональных элементов связаны с реальным миром.
Блок 4. Логические вентили. Комбинационные схемы.
Блок 5. Вспоминаем дискретную математику: схемы из функциональных элементов с задержкой.
Блок 6. Комбинационные схемы с обратной связью. Основные триггеры.
Блок 7. Ещё несколько слов о сигналах: активный уровень, передний фронт, задний фронт, такт.
Блок 8. Ещё несколько слов о триггерах: синхронные триггеры, асинхронные триггеры, типичные входы триггеров.
Блок 9. Последовательные схемы.
Блок 10. Шины. Регистры. Уровень регистровых передач (RTL).
Блок 11. Verilog: общие вступительные слова.
Блок 12. Verilog: несхемный "Hello, World!".
Блок 13. Verilog: схемный "Hello, World!".
Блок 14. Verilog: схемный "Hello, World!" с картинками (диаграммами сигналов).
Блок 15. Verilog: логические значения.
Блок 16. Verilog: арифметическая трактовка значений, знаковость типов и значений, расширение и сужение шин.
Блок 17. Verilog: константы.
Блок 18. Verilog: комбинационные выражения и операции.
Блок 19. Verilog: примеры комбинационных схем с непрерывным присваиванием.
Блок 20. Verilog: как на самом деле устроена симуляция.
Блок 21. Verilog: основные виды процессов.
Блок 22. Verilog: основные процедурные команды и использование задержек.
Блок 23. Verilog: поддерживаемое использование постоянной процедуры.
Блок 24. Verilog: синтаксический сахар и ещё несколько возможностей языка.
Блок 25. Вспоминаем дискретную математику: автоматы.
Блок 26. Соответствие между автоматами и схемами.
Блок 27. Пара слов о символьных автоматах.
Блок 28. Verilog: типовая реализация автомата.
Блок 29. Хороший и плохой код. Данные и управление. Операционный и управляющий автоматы.
Блок 30. Как спроектировать операционный автомат.
Блок 31. Как дополнить операционный автомат управляющим.
Блок К1. Кое-что ещё: протоколы передачи данных, общее описание протокола UART.
Блок К2. Кое-что ещё: схемная реализация передатчика UART, автоматы с таймерами.
Блок К3. Кое-что ещё: схемная реализация приёмника UART.
Блок К4. Кое-что ещё: классификация протоколов передачи данных.
Блок К5. Кое-что ещё: SPI для двух устройств.
Материалы будут обновляться по мере проведения занятий.
Упражнения
Упражнения 1. Разработка комбинационных и последовательных схем.
Упражнения 2. Verilog, основы.
Упражнения 3. Verilog: параметры, массивы, блоки генерации.
Упражнения 4. Автоматы.
Упражнения 5. Verilog: операционный и управляющий автоматы.
Материалы будут обновляться по мере проведения занятий.
Прошлогодние
Блок 11. Verilog: от логических значений до комбинационных схем.
Блок 12. Verilog: основы программной симуляции.
Практический блок 2. Verilog и непрерывное присваивание.
Блок 13. Verilog: синтезируемость кода
Блок 14. Verilog: ещё пара слов о процедурных командах.
Блок 15. Verilog: аппаратная семантика постоянной процедуры.
Практический блок 3. Verilog и процедуры.
Блок 16. Вспоминаем дискретную математику: автоматы.
Блок 17. Автоматы и синхронные схемы.
Блок 18. Пара слов о символьных автоматах.
Практический блок 4. Автоматы.
Блок 19. Verilog: немного синтаксического сахара.
Практический блок 5. Verilog и продвинутый синтаксис: параметры, массивы, генерация.
Блок 20. Verilog: как реализовать автомат.
Блок 21. "Грамотная" разработка схем. Данные и управление. Операционный и управляющий автоматы.
Блок 22. Как спроектировать операционный автомат.
Блок 23. Как дополнить операционный автомат управляющим.
Блок 24. Как уменьшить автомат. Автоматы с таймерами.
Практический блок 6. Операционный и управляющий автоматы в Verilog.
Кое-что ещё 1. Протоколы передачи данных. Общее описание протокола UART.
Кое-что ещё 2. Схемная реализация протокола UART.
Кое-что ещё 3. Классификация протоколов передачи данных.
Кое-что ещё 4. Протокол SPI для двух устройств.
Кое-что ещё 5. Протокол SPI для произвольного числа устройств. Состояние высокого импеданса.
Условия получения зачёта
(Cм. слайды "Блок 1") Для получения зачёта достаточно в срок сдать решения четырёх заданий, которые будут выдаваться по мере проведения занятий. Если хотя бы одно решение не сдано в срок, то для получения зачёта потребуется выполнить особое штрафное задание.
Литература
Основная
- Harris, Harris. Digital Design and Computer Architecture, 2nd Edition. Elseveir. 2013.
- Перевод: "Харрис, Харрис. Цифровая схемотехника и архитектура компьютера. ДМК Пресс. 2018."
- В сети в открытом доступе лежат и другие версии перевода (не выпущенные официально в печать).
- Thomas, Moorby. The Verilog Hardware Description Language, 5th Edition. Springer. 2008.
Дополнительная
- Hennesy, Patterson. Computer Organization and Design: The Hardware/Software Interface, 5th Edition. Morgan Kaufmann. 2013.
- Palnitkar. Verilog HDL, 2nd Edition. 2003.
- Vahid. Digital Design with RTL Design, VHDL, and Verilog, 2nd Edition. Wiley. 2010.