Языки описания схем — различия между версиями

Материал из Кафедра математической кибернетики
Перейти к: навигация, поиск
м
 
(не показаны 27 промежуточные версии 1 участника)
Строка 1: Строка 1:
 +
[[Категория:Спецкурсы кафедры МК]]
 
[[Категория:Лекционные курсы кафедры МК]]
 
[[Категория:Лекционные курсы кафедры МК]]
 
[[Категория:Магистерская программа Дискретные управляющие системы и их приложения]]
 
[[Категория:Магистерская программа Дискретные управляющие системы и их приложения]]
  
''Актуальность информации: осенний семестр 2022/2023 учебного года.''
+
''Актуальность информации: осенний семестр 2024/2025 учебного года.''
  
Обязательный курс для студентов группы 518мк_дус. Курс проводит [[Подымов Владислав Васильевич|Подымов В.В.]]
+
Обязательный курс для студентов группы 518мк_дус.
 +
Курс проводит [[Подымов Владислав Васильевич|Подымов В.В.]]
  
 
= Материалы занятий =
 
= Материалы занятий =
  
'''[[Media: Hdl_lecture_01.pdf|Блок 1.]]''' Организационные вопросы.
+
== Лекции ==
  
'''[[Media: Hdl_lecture_02.pdf|Блок 2.]]''' Вспоминаем дискретную математику: булевы функции, булевы формулы, схемы из функциональных элементов.
+
[[Media: HDL_VP_01.pdf|Блок 1.]] Организационные вопросы.
  
'''[[Media: Hdl_lecture_03.pdf|Блок 3.]]''' Как устроена цифровая аппаратура. Немного физики: как схемы из функциональных элементов связаны с реальным миром.
+
[[Media: HDL_VP_02.pdf|Блок 2.]] Вспоминаем дискретную математику: булевы функции, булевы формулы, схемы из функциональных элементов.
  
'''[[Media: Hdl_lecture_04.pdf|Блок 4.]]''' Логические вентили. Комбинационные схемы.
+
[[Media: HDL_VP_03.pdf|Блок 3.]] Как устроена цифровая аппаратура. Немного физики: как схемы из функциональных элементов связаны с реальным миром.
  
'''[[Media: Hdl_lecture_05.pdf|Блок 5.]]''' Вспоминаем дискретную математику: схемы из функциональных элементов с задержкой.
+
[[Media: HDL_VP_04.pdf|Блок 4.]] Логические вентили. Комбинационные схемы.
  
'''[[Media: Hdl_lecture_06.pdf|Блок 6.]]''' Комбинационные схемы с обратной связью. Основные триггеры.
+
[[Media: HDL_VP_05.pdf|Блок 5.]] Вспоминаем дискретную математику: схемы из функциональных элементов с задержкой.
  
'''[[Media: Hdl_lecture_07.pdf|Блок 7.]]''' Ещё несколько слов о сигналах: активный уровень, передний фронт, задний фронт, такт.
+
[[Media: HDL_VP_06.pdf|Блок 6.]] Комбинационные схемы с обратной связью. Основные триггеры.
  
'''[[Media: Hdl_lecture_08.pdf|Блок 8.]]''' Ещё несколько слов о триггерах: синхронные триггеры, асинхронные триггеры, типичные входы триггеров.
+
[[Media: HDL_VP_07.pdf|Блок 7.]] Ещё несколько слов о сигналах: активный уровень, передний фронт, задний фронт, такт.
  
'''[[Media: Hdl_lecture_09.pdf|Блок 9.]]''' Последовательные схемы.
+
[[Media: HDL_VP_08.pdf|Блок 8.]] Ещё несколько слов о триггерах: синхронные триггеры, асинхронные триггеры, типичные входы триггеров.
  
'''[[Media: Hdl_lecture_10.pdf|Блок 10.]]''' Шины. Регистры. Уровень регистровых передач (RTL).
+
[[Media: HDL_VP_09.pdf|Блок 9.]] Последовательные схемы.
  
'''[[Media: Hdl_practice_01.pdf|Практический блок 1.]]''' Разработка комбинационных и последовательных схем.
+
[[Media: HDL_VP_10.pdf|Блок 10.]] Шины. Регистры. Уровень регистровых передач (RTL).
  
'''[[Media: Hdl_lecture_11.pdf|Блок 11.]]''' Verilog: от логических значений до комбинационных схем.
+
[[Media: HDL_VP_11.pdf|Блок 11.]] Verilog: общие вступительные слова.
  
'''[[Media: Hdl_lecture_12.pdf|Блок 12.]]''' Verilog: основы программной симуляции.
+
[[Media: HDL_VP_12.pdf|Блок 12.]] Verilog: несхемный "Hello, World!".
  
'''[[Media: Hdl_practice_02.pdf|Практический блок 2.]]''' Verilog и непрерывное присваивание.
+
[[Media: HDL_VP_13.pdf|Блок 13.]] Verilog: схемный "Hello, World!".
  
'''[[Media: Hdl_lecture_13.pdf|Блок 13.]]''' Verilog: синтезируемость кода
+
[[Media: HDL_VP_14.pdf|Блок 14.]] Verilog: схемный "Hello, World!" с картинками (диаграммами сигналов).
  
'''[[Media: Hdl_lecture_14.pdf|Блок 14.]]''' Verilog: ещё пара слов о процедурных командах.
+
[[Media: HDL_VP_15.pdf|Блок 15.]] Verilog: логические значения.
  
'''[[Media: Hdl_lecture_15.pdf|Блок 15.]]''' Verilog: аппаратная семантика постоянной процедуры.
+
[[Media: HDL_VP_16.pdf|Блок 16.]] Verilog: арифметическая трактовка значений, знаковость типов и значений, расширение и сужение шин.
  
'''[[Media: Hdl_practice_03.pdf|Практический блок 3.]]''' Verilog и процедуры.
+
[[Media: HDL_VP_17.pdf|Блок 17.]] Verilog: константы.
  
'''[[Media: Hdl_lecture_16.pdf|Блок 16.]]''' Вспоминаем дискретную математику: автоматы.
+
[[Media: HDL_VP_18.pdf|Блок 18.]] Verilog: комбинационные выражения и операции.
  
'''[[Media: Hdl_lecture_17.pdf|Блок 17.]]''' Автоматы и синхронные схемы.
+
[[Media: HDL_VP_19.pdf|Блок 19.]] Verilog: примеры комбинационных схем с непрерывным присваиванием.
  
'''[[Media: Hdl_lecture_18.pdf|Блок 18.]]''' Пара слов о символьных автоматах.
+
[[Media: HDL_VP_20.pdf|Блок 20.]] Verilog: как на самом деле устроена симуляция.
  
'''[[Media: Hdl_practice_04.pdf|Практический блок 4.]]''' Автоматы.
+
[[Media: HDL_VP_21.pdf|Блок 21.]] Verilog: основные виды процессов.
  
'''[[Media: Hdl_lecture_19.pdf|Блок 19.]]''' Verilog: немного синтаксического сахара.
+
[[Media: HDL_VP_22.pdf|Блок 22.]] Verilog: основные процедурные команды и использование задержек.
  
'''[[Media: Hdl_practice_05.pdf|Практический блок 5.]]''' Verilog и продвинутый синтаксис: параметры, массивы, генерация.
+
[[Media: HDL_VP_23.pdf|Блок 23.]] Verilog: поддерживаемое использование постоянной процедуры.
  
'''[[Media: Hdl_lecture_20.pdf|Блок 20.]]''' Verilog: как реализовать автомат.
+
[[Media: HDL_VP_24.pdf|Блок 24.]] Verilog: синтаксический сахар и ещё несколько возможностей языка.
  
'''[[Media: Hdl_lecture_21.pdf|Блок 21.]]''' "Грамотная" разработка схем. Данные и управление. Операционный и управляющий автоматы.
+
[[Media: HDL_VP_25.pdf|Блок 25.]] Вспоминаем дискретную математику: автоматы.
  
'''[[Media: Hdl_lecture_22.pdf|Блок 22.]]''' Как спроектировать операционный автомат.
+
[[Media: HDL_VP_26.pdf|Блок 26.]] Соответствие между автоматами и схемами.
  
'''[[Media: Hdl_lecture_23.pdf|Блок 23.]]''' Как дополнить операционный автомат управляющим.
+
[[Media: HDL_VP_27.pdf|Блок 27.]] Пара слов о символьных автоматах.
  
'''[[Media: Hdl_lecture_24.pdf|Блок 24.]]''' Как уменьшить автомат. Автоматы с таймерами.
+
[[Media: HDL_VP_28.pdf|Блок 28.]] Verilog: типовая реализация автомата.
  
'''[[Media: Hdl_practice_06.pdf|Практический блок 6.]]''' Операционный и управляющий автоматы в Verilog.
+
[[Media: HDL_VP_29.pdf|Блок 29.]] Хороший и плохой код. Данные и управление. Операционный и управляющий автоматы.
  
'''[[Media: Hdl_lecture_aux_01.pdf|Кое-что ещё 1.]]''' Протоколы передачи данных. Общее описание протокола UART.
+
[[Media: HDL_VP_30.pdf|Блок 30.]] Как спроектировать операционный автомат.
  
'''[[Media: Hdl_lecture_aux_02.pdf|Кое-что ещё 2.]]''' Схемная реализация протокола UART.
+
[[Media: HDL_VP_31.pdf|Блок 31.]] Как дополнить операционный автомат управляющим.
  
'''[[Media: Hdl_lecture_aux_03.pdf|Кое-что ещё 3.]]''' Классификация протоколов передачи данных.
+
''Материалы будут появляться по мере проведения занятий.''
  
'''[[Media: Hdl_lecture_aux_04.pdf|Кое-что ещё 4.]]''' Протокол SPI для двух устройств.
+
=== Прошлогодние ===
  
'''[[Media: Hdl_lecture_aux_05.pdf|Кое-что ещё 5.]]''' Протокол SPI для произвольного числа устройств. Состояние высокого импеданса.
+
[[Media: HDL_VP_R01.pdf|Блок К1.]] Кое-что ещё: протоколы передачи данных, общее описание протокола UART.
 +
 
 +
[[Media: HDL_VP_R02.pdf|Блок К2.]] Кое-что ещё: схемная реализация передатчика UART, автоматы с таймерами.
 +
 
 +
[[Media: HDL_VP_R03.pdf|Блок К3.]] Кое-что ещё: схемная реализация приёмника UART.
 +
 
 +
[[Media: HDL_VP_R04.pdf|Блок К4.]] Кое-что ещё: классификация протоколов передачи данных.
 +
 
 +
[[Media: HDL_VP_R05.pdf|Блок К5.]] Кое-что ещё: SPI для двух устройств.
 +
 
 +
[[Media: HDL_VP_R06.pdf|Блок К6.]] Кое-что ещё: SPI для произвольного числа устройств, состояние высокого импеданса.
 +
 
 +
== Упражнения ==
 +
 
 +
[[Media: HDL_VP_s01.pdf|Упражнения 1.]] Разработка комбинационных и последовательных схем.
 +
 
 +
[[Media: HDL_VP_s02.pdf|Упражнения 2.]] Verilog, основы.
 +
 
 +
[[Media: HDL_VP_s03.pdf|Упражнения 3.]] Verilog: параметры, массивы, блоки генерации.
 +
 
 +
[[Media: HDL_VP_s04.pdf|Упражнения 4.]] Автоматы.
 +
 
 +
[[Media: HDL_VP_s05.pdf|Упражнения 5.]] Verilog: операционный и управляющий автоматы.
 +
 
 +
''Материалы будут появляться по мере проведения занятий.''
  
 
= Условия получения зачёта =
 
= Условия получения зачёта =
Строка 82: Строка 108:
 
(Cм. слайды "Блок 1")
 
(Cм. слайды "Блок 1")
 
Для получения зачёта достаточно '''в срок''' сдать решения четырёх заданий, которые будут выдаваться по мере проведения занятий.
 
Для получения зачёта достаточно '''в срок''' сдать решения четырёх заданий, которые будут выдаваться по мере проведения занятий.
Если хотя бы одно решение не сдано в срок, то для получения зачёта потребуется выполнить особое ''штрафное задание''.
+
Если хотя бы одно решение не сдано в срок, то для получения зачёта потребуется выполнить особое ''штрафное задание'', включающее в себя, в числе прочего, все темы, которые не сданы в срок.
  
 
= Литература =
 
= Литература =

Текущая версия на 12:12, 17 ноября 2024


Актуальность информации: осенний семестр 2024/2025 учебного года.

Обязательный курс для студентов группы 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 для двух устройств.

Блок К6. Кое-что ещё: SPI для произвольного числа устройств, состояние высокого импеданса.

Упражнения

Упражнения 1. Разработка комбинационных и последовательных схем.

Упражнения 2. Verilog, основы.

Упражнения 3. Verilog: параметры, массивы, блоки генерации.

Упражнения 4. Автоматы.

Упражнения 5. Verilog: операционный и управляющий автоматы.

Материалы будут появляться по мере проведения занятий.

Условия получения зачёта

(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.