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

Материал из Кафедра математической кибернетики
Перейти к: навигация, поиск
Строка 1: Строка 1:
''Актуальность информации: осенний семестр 2018/2019 учебного года.''
+
''Актуальность информации: осенний семестр 2019/2020 учебного года.''
  
 
Обязательный курс для студентов группы 518/2. Курс проводит [[Подымов Владислав Васильевич|Подымов В.В.]]
 
Обязательный курс для студентов группы 518/2. Курс проводит [[Подымов Владислав Васильевич|Подымов В.В.]]
 
<!--
 
{| border="2" cellpadding="5" cellspacing="0"
 
|-
 
| '''ВНИМАНИЕ!!!'''
 
* В архиве с макроопределениями для isa обнаружены опечатки, файл по ссылке обновлён и теперь работает как надо.
 
* Обнаружилось, что в простом варианте управляющего автомата в основном задании курса нет состояний (это схема с комбинационным функционалом). Реализовать этот автомат по-прежнему достаточно для получения зачёта (раз не уследил, то сам виноват).
 
|}
 
-->
 
  
 
= Материалы занятий =
 
= Материалы занятий =
Строка 16: Строка 7:
 
''Слайды будут обновляться по мере проведения занятий''
 
''Слайды будут обновляться по мере проведения занятий''
  
'''[[Media: Hdl_lecture_01.pdf|Блок 1.]]''' Небольшое вступление и организационные вопросы.
+
'''[[Media: Hdl_lecture_01.pdf|Блок 1.]]''' Организационные вопросы.
  
'''[[Media: Hdl_lecture_02.pdf|Блок 2.]]''' КМОП-транзисторы: как это работает, и причём тут схемы из функциональных элементов.
+
'''[[Media: Hdl_lecture_02.pdf|Блок 2.]]''' Вспоминаем дискретную математику: булевы функции, булевы формулы, схемы из функциональных элементов.
  
'''[[Media: Hdl_lecture_03.pdf|Блок 3.]]''' Комбинационные схемы.
+
'''[[Media: Hdl_lecture_03.pdf|Блок 3.]]''' Как устроена цифровая аппаратура. Немного физики: как схемы из функциональных элементов связаны с реальным миром.
 +
 
 +
== Временный архив материалов прошлых лет ==
  
 
'''[[Media: Hdl_lecture_04.pdf|Блок 4.]]''' Последовательные схемы, и немного о тактовом сигнале
 
'''[[Media: Hdl_lecture_04.pdf|Блок 4.]]''' Последовательные схемы, и немного о тактовом сигнале
Строка 58: Строка 51:
 
= Условия получения зачёта =
 
= Условия получения зачёта =
  
Необходимое и достаточное условие получения зачёта - это выполнение большого задания, коротко формулируемого так: спроектировать и функционально протестировать упрощённый процессор на языке Verilog.
+
(Cм. слайды "Блок 1")
 
+
Для получения зачёта достаточно '''в срок''' сдать решения четырёх заданий, которые будут выдаваться по мере проведения занятий.
Обязательное требование для операционного и управляющего автоматов процессора (части 1-3):
+
Если хотя бы одно решение не сдано в срок, то для получения зачёта потребуется выполнить особое ''штрафное задание''.
'''они должны полностью удовлетворять стандарту синтеза''' (блок 13).
+
 
+
[[Media: Hdl isa macros.zip|Макроопределения для удобной работы с архитектурой системы команд блока 11.]]
+
 
+
== Часть 1 ==
+
 
+
Спроектировать на языке Verilog основные функциональные блоки процессора (блок 12) для модельной архитектуры системы команд (блок 11). Фактическое число ячеек в памяти данных можно выбирать произвольным - достаточным для полноценной наглядной функциональной симуляции.
+
 
+
По согласованию может быть выбран и другой набор особенностей архитектуры процессора (другая система команд, другая конфигурация блоков, ...).
+
 
+
== Часть 2 ==
+
 
+
Используя написанные в части 1 модули, спроектировать операционный автомат процессора (блок 16) с модельной архитектурой системы команд (блок 11) на языке Verilog.
+
 
+
''По желанию, рекомендуется'': спроектировать и программно просимулировать однотактовый процессор (блок 16).
+
 
+
По согласованию может быть выбрана другая архитектура системы команд (например, совместимая с архитектурой MIPS).
+
 
+
== Часть 3 ==
+
 
+
Добавив к спроектированному в части 2 операционному автомату подходящий управляющий автомат (блок 17), спроектировать процессор с модельной архитектурой системы команд (блок 11) со следующими особенностями работы:
+
* Он имеет тактовый вход clk, вход сброса rst, а также однобитовые входы change, step.
+
* Входы change и step являются синхронными: значения считываются в моменты передних фронтов сигнала clk (тактов).
+
* Он имеет два режима работы: обычный и приостановленный.
+
* После сброса процессор оказывается в приостановленном режиме.
+
* Если на предыдущем такте change=0, а на текущем change=1, то режим работы процессора переключается (с обычного на приостановленный, с приостановленного на обычный), в противном случае не переключается.
+
* Последовательность инструкций, выполняемых процессором, определяется архитектурой системы команд, каждая инструкция выполняется один такт.
+
* В обычном режиме инструкции выполняются на каждом такте.
+
* В приостановленном режиме выполнение инструкций управляется сигналом на входе step:
+
** если на предыдущем такте step=0, а на текущем step=1, то инструкция выполняется;
+
** в противном случае (сейчас step=0; и на предыдущем такте, и сейчас step=1) инструкция не выполняется.
+
 
+
== Часть 4 ==
+
 
+
Описать модули тестирования (блок 9), демонстрирующие работу процессора, спроектированного в части 3, корректную с точки зрения функциональной симуляции.
+
 
+
= Достаточное техническое оснащение =
+
 
+
Для полноценного выполнения задания курса достаточно иметь компьютер с Linux и установленными на нём (как правило, стандартными) пакетами
+
* '''iverilog''' (компилятор схемных дизайнов) и
+
* '''gtkwave''' (визуализатор диаграмм сигналов).
+
 
+
Допускается (хотя и не поощряется ввиду возможных проблем и неудобств) работа в Windows: достаточно скачать и установить '''[http://iverilog.icarus.com/ Icarus Verilog]''', в стандартной комплектации содержащий исполняемые файлы
+
* '''iverilog.exe''' (компилятор схемных дизайнов),
+
* '''vvp.exe''' (средство исполнения скомпилированных дизайнов) и
+
* '''gtkwave.exe''' (визуализатор диаграмм сигналов).
+
 
+
Работа со схемными дизайнами при помощи других средств не возбраняется.
+
  
 
= Литература =
 
= Литература =
 
== Основная ==
 
== Основная ==
* Harris, Harris, Digital Design and Computer Architecture, 2nd  Edition, Elseveir, 2013
+
* Harris, Harris. Digital Design and Computer Architecture, 2nd  Edition. Elseveir. 2013.
* Thomas, Moorby, The Verilog Hardware Description Language, 5th Edition, Springer, 2008
+
** Перевод: "Харрис, Харрис. Цифровая схемотехника и архитектура компьютера. ДМК Пресс. 2018."
 +
** В сети в открытом доступе лежат и другие версии перевода (не выпущенные официально в печать).
 +
* Thomas, Moorby. The Verilog Hardware Description Language, 5th Edition. Springer. 2008.
  
 
== Дополнительная ==
 
== Дополнительная ==
* J. Hennesy, D. Patterson, Computer Organization and Design: The Hardware/Software Interface, 5th Edition, Morgan Kaufmann, 2013
+
* Hennesy, Patterson. Computer Organization and Design: The Hardware/Software Interface, 5th Edition. Morgan Kaufmann. 2013.
* S. Palnitkar, Verilog HDL, 2nd Edition, 2003
+
* Palnitkar. Verilog HDL, 2nd Edition. 2003.
* F. Vahid, Digital Design with RTL Design, VHDL, and Verilog 2nd Edition, Wiley, 2010
+
* Vahid. Digital Design with RTL Design, VHDL, and Verilog, 2nd Edition. Wiley. 2010.

Версия 09:22, 4 сентября 2019

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

Обязательный курс для студентов группы 518/2. Курс проводит Подымов В.В.

Материалы занятий

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

Блок 1. Организационные вопросы.

Блок 2. Вспоминаем дискретную математику: булевы функции, булевы формулы, схемы из функциональных элементов.

Блок 3. Как устроена цифровая аппаратура. Немного физики: как схемы из функциональных элементов связаны с реальным миром.

Временный архив материалов прошлых лет

Блок 4. Последовательные схемы, и немного о тактовом сигнале

Блок 5. Модули. Шины. Регистры. RTL.

Блок 6. Практика: построение последовательных схем.

Блок 7. ASIC и ПЛИС.

Блок 8. Verilog: базовый синтаксис.

Блок 9. Verilog: симуляция.

Блок 10. Практика: Verilog (база).

Блок 11. Что такое процессор. Архитектура системы команд.

Блок 12. Основные функциональные блоки процессора.

Блок 13. Verilog: синтез.

Блок 14. Понятия операционного и управляющего автоматов.

Блок 15. Как спроектировать операционный автомат. Комбинационный управляющий автомат.

Блок 16. Процессор: операционный автомат, комбинационный управляющий автомат.

Блок 17. Как спроектировать управляющий автомат.

Блок 18. Verilog: немного синтаксического сахара.

Блок 19. Verilog: реализация управляющего автомата.

Блок 20. Практика: 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.