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

Материал из Кафедра математической кибернетики
Перейти к: навигация, поиск
(Дополнительная литература)
 
(не показаны 105 промежуточные версии 3 участников)
Строка 1: Строка 1:
Курс по магистерской программе Дискретные управляющие системы и их приложения.
+
[[Категория:Спецкурсы кафедры МК]]
 +
[[Категория:Лекционные курсы кафедры МК]]
 +
[[Категория:Магистерская программа Дискретные управляющие системы и их приложения]]
  
Чтение курса обеспечивается кафедрой математической кибернетики, лектор к.т.н. Мелик-Адамян Арег Фрикович (areg@cs.msu.ru).
+
''Актуальность информации: осенний семестр 2024/2025 учебного года.''
  
Объем курса 32 ч. Начало курса 01.09.2015, ауд. 704, время уточняется.
+
Обязательный курс для студентов группы 518мк_дус.
 +
Курс проводит [[Подымов Владислав Васильевич|Подымов В.В.]]
  
Цель курса — знакомство студентов с основами проектирования цифровых схем с использованием языка Verilog. Курс решает следующие задачи: понять принципы и методологии цифрового проектирования на уровнях вентильном и схемотехническом с использованием как комбинационной, так и последовательной логики, познакомиться с современными инструментами проектирования, понять принципы тактирования и управления состояниями схем, понять принципы и методологии специфицирования схем и синтеза схем на логическом уровне. Сформировать системное представления об высокоуровневой методологии проектирования цифровых схем.
+
= Материалы занятий =
  
== Структура и содержание курса ==
+
== Лекции ==
<div style="max-width:1000px">
+
{| width="100%" border="1" cellspacing="0" cellpadding="5" align="center"
+
!| №
+
!| Темы
+
!| Трудоёмкость в зач. ед.
+
(количество часов)
+
|-
+
| align="center" | 1
+
| Введение в курс. Цифровая схема. Понятие маршрута проектирования. Типы цифровых схем. Процесс изготовления схем
+
| align="center" | 2
+
|-
+
| align="center" | 2
+
| Элементы синхронного цифрового проектирования – вентили, элементарные логические схемы
+
| align="center" | 2
+
|-
+
| align="center" | 3
+
| Введение в язык Verilog
+
| align="center" | 2
+
|-
+
| align="center" | 4
+
| Последовательные схемы
+
| align="center" | 2
+
|-
+
| align="center" | 5
+
| Введение в симуляцию и синтез. Синтез в ПЛИС
+
| align="center" | 4
+
|-
+
| align="center" | 6
+
| Комбинационные схемы
+
| align="center" | 2
+
|-
+
| align="center" | 7
+
| Управление синхросигналом (timing)
+
| align="center" | 2
+
|-
+
| align="center" | 8
+
| Элементы АЛУ: сумматоры, умножители, регистры
+
| align="center" | 2
+
|-
+
| align="center" | 9
+
| Проектирование конечного автомата. Проектирование однотактового процессора типа MIPS
+
| align="center" | 4
+
|-
+
| align="center" | 10
+
| Параллелизм и конвейеризация. Внешние интерфейсы
+
| align="center" | 2
+
|-
+
| align="center" | 11
+
| Проектирование памяти, и их интеграция в единую цифровую систему
+
| align="center" | 2
+
|}
+
</div>
+
  
== Основная литература ==
+
[[Media: HDL_VP_01.pdf|Блок 1.]] Организационные вопросы.
* Harris, Harris, Digital Design and Computer Architecture, 2nd  Edition, Elseveir, 2013
+
* Thomas, Moorby, The Verilog Hardware Description Language, 5th Edition, Springer, 2008
+
  
== Дополнительная литература ==
+
[[Media: HDL_VP_02.pdf|Блок 2.]] Вспоминаем дискретную математику: булевы функции, булевы формулы, схемы из функциональных элементов.
* S. Palnitkar, Verilog HDL, 2nd Edition, 2003
+
* F. Vahid, Digital Design with RTL Design, VHDL, and Verilog 2nd Edition, Wiley, 2010
+
* J. Hennesy, D. Patterson, Computer Organization and Design: The Hardware/Software Interface, 5th Edition, Morgan Kaufmann, 2013
+
  
[[Категория:Лекционные курсы кафедры МК]]
+
[[Media: HDL_VP_03.pdf|Блок 3.]] Как устроена цифровая аппаратура. Немного физики: как схемы из функциональных элементов связаны с реальным миром.
[[Категория:Магистерская программа Дискретные управляющие системы и их приложения]]
+
 
 +
[[Media: HDL_VP_04.pdf|Блок 4.]] Логические вентили. Комбинационные схемы.
 +
 
 +
[[Media: HDL_VP_05.pdf|Блок 5.]] Вспоминаем дискретную математику: схемы из функциональных элементов с задержкой.
 +
 
 +
[[Media: HDL_VP_06.pdf|Блок 6.]] Комбинационные схемы с обратной связью. Основные триггеры.
 +
 
 +
[[Media: HDL_VP_07.pdf|Блок 7.]] Ещё несколько слов о сигналах: активный уровень, передний фронт, задний фронт, такт.
 +
 
 +
[[Media: HDL_VP_08.pdf|Блок 8.]] Ещё несколько слов о триггерах: синхронные триггеры, асинхронные триггеры, типичные входы триггеров.
 +
 
 +
[[Media: HDL_VP_09.pdf|Блок 9.]] Последовательные схемы.
 +
 
 +
[[Media: HDL_VP_10.pdf|Блок 10.]] Шины. Регистры. Уровень регистровых передач (RTL).
 +
 
 +
[[Media: HDL_VP_11.pdf|Блок 11.]] Verilog: общие вступительные слова.
 +
 
 +
[[Media: HDL_VP_12.pdf|Блок 12.]] Verilog: несхемный "Hello, World!".
 +
 
 +
[[Media: HDL_VP_13.pdf|Блок 13.]] Verilog: схемный "Hello, World!".
 +
 
 +
[[Media: HDL_VP_14.pdf|Блок 14.]] Verilog: схемный "Hello, World!" с картинками (диаграммами сигналов).
 +
 
 +
[[Media: HDL_VP_15.pdf|Блок 15.]] Verilog: логические значения.
 +
 
 +
[[Media: HDL_VP_16.pdf|Блок 16.]] Verilog: арифметическая трактовка значений, знаковость типов и значений, расширение и сужение шин.
 +
 
 +
[[Media: HDL_VP_17.pdf|Блок 17.]] Verilog: константы.
 +
 
 +
[[Media: HDL_VP_18.pdf|Блок 18.]] Verilog: комбинационные выражения и операции.
 +
 
 +
[[Media: HDL_VP_19.pdf|Блок 19.]] Verilog: примеры комбинационных схем с непрерывным присваиванием.
 +
 
 +
[[Media: HDL_VP_20.pdf|Блок 20.]] Verilog: как на самом деле устроена симуляция.
 +
 
 +
[[Media: HDL_VP_21.pdf|Блок 21.]] Verilog: основные виды процессов.
 +
 
 +
[[Media: HDL_VP_22.pdf|Блок 22.]] Verilog: основные процедурные команды и использование задержек.
 +
 
 +
[[Media: HDL_VP_23.pdf|Блок 23.]] Verilog: поддерживаемое использование постоянной процедуры.
 +
 
 +
[[Media: HDL_VP_24.pdf|Блок 24.]] Verilog: синтаксический сахар и ещё несколько возможностей языка.
 +
 
 +
[[Media: HDL_VP_25.pdf|Блок 25.]] Вспоминаем дискретную математику: автоматы.
 +
 
 +
[[Media: HDL_VP_26.pdf|Блок 26.]] Соответствие между автоматами и схемами.
 +
 
 +
[[Media: HDL_VP_27.pdf|Блок 27.]] Пара слов о символьных автоматах.
 +
 
 +
[[Media: HDL_VP_28.pdf|Блок 28.]] Verilog: типовая реализация автомата.
 +
 
 +
[[Media: HDL_VP_29.pdf|Блок 29.]] Хороший и плохой код. Данные и управление. Операционный и управляющий автоматы.
 +
 
 +
[[Media: HDL_VP_30.pdf|Блок 30.]] Как спроектировать операционный автомат.
 +
 
 +
[[Media: HDL_VP_31.pdf|Блок 31.]] Как дополнить операционный автомат управляющим.
 +
 
 +
''Материалы будут появляться по мере проведения занятий.''
 +
 
 +
=== Прошлогодние ===
 +
 
 +
[[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: операционный и управляющий автоматы.
 +
 
 +
''Материалы будут появляться по мере проведения занятий.''
 +
 
 +
= Условия получения зачёта =
 +
 
 +
(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.

Текущая версия на 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.