Языки описания схем — различия между версиями
PodymovVV (обсуждение | вклад) м |
PodymovVV (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
− | ''Актуальность информации: осенний семестр | + | ''Актуальность информации: осенний семестр 2018/2019 учебного года.'' |
Обязательный курс для студентов группы 518/2. Курс проводит [[Подымов Владислав Васильевич|Подымов В.В.]] | Обязательный курс для студентов группы 518/2. Курс проводит [[Подымов Владислав Васильевич|Подымов В.В.]] | ||
+ | <!-- | ||
{| border="2" cellpadding="5" cellspacing="0" | {| border="2" cellpadding="5" cellspacing="0" | ||
|- | |- | ||
Строка 9: | Строка 10: | ||
* Обнаружилось, что в простом варианте управляющего автомата в основном задании курса нет состояний (это схема с комбинационным функционалом). Реализовать этот автомат по-прежнему достаточно для получения зачёта (раз не уследил, то сам виноват). | * Обнаружилось, что в простом варианте управляющего автомата в основном задании курса нет состояний (это схема с комбинационным функционалом). Реализовать этот автомат по-прежнему достаточно для получения зачёта (раз не уследил, то сам виноват). | ||
|} | |} | ||
+ | --> | ||
= Материалы занятий = | = Материалы занятий = | ||
− | '' | + | ''Слайды будут обновляться по мере проведения занятий'' |
'''[[Media: Hdl_lecture_01.pdf|Блок 1.]]''' Небольшое вступление и организационные вопросы. | '''[[Media: Hdl_lecture_01.pdf|Блок 1.]]''' Небольшое вступление и организационные вопросы. | ||
Строка 54: | Строка 56: | ||
= Условия получения зачёта = | = Условия получения зачёта = | ||
− | Необходимое и достаточное условие получения зачёта - это выполнение большого задания, коротко | + | Необходимое и достаточное условие получения зачёта - это выполнение большого задания, коротко формулируемого так: спроектировать и функционально протестировать упрощённый процессор на языке Verilog. |
Обязательное требование для операционного и управляющего автоматов процессора (части 1-3): | Обязательное требование для операционного и управляющего автоматов процессора (части 1-3): | ||
Строка 63: | Строка 65: | ||
== Часть 1 == | == Часть 1 == | ||
− | Спроектировать на языке Verilog основные функциональные блоки процессора (блок 12) для модельной архитектуры системы команд (блок 11). Фактическое число ячеек в памяти данных можно выбирать произвольным - достаточным для полноценной наглядной функциональной симуляции. По согласованию может быть выбран и другой набор особенностей архитектуры процессора (другая система команд, другая конфигурация блоков, ...). | + | Спроектировать на языке Verilog основные функциональные блоки процессора (блок 12) для модельной архитектуры системы команд (блок 11). Фактическое число ячеек в памяти данных можно выбирать произвольным - достаточным для полноценной наглядной функциональной симуляции. |
+ | |||
+ | По согласованию может быть выбран и другой набор особенностей архитектуры процессора (другая система команд, другая конфигурация блоков, ...). | ||
== Часть 2 == | == Часть 2 == | ||
Строка 69: | Строка 73: | ||
Используя написанные в части 1 модули, спроектировать операционный автомат процессора (блок 16) с модельной архитектурой системы команд (блок 11) на языке Verilog. | Используя написанные в части 1 модули, спроектировать операционный автомат процессора (блок 16) с модельной архитектурой системы команд (блок 11) на языке Verilog. | ||
− | ''По желанию, рекомендуется'': спроектировать и программно просимулировать однотактовый процессор. | + | ''По желанию, рекомендуется'': спроектировать и программно просимулировать однотактовый процессор (блок 16). |
− | + | По согласованию может быть выбрана другая архитектура системы команд (например, совместимая с архитектурой MIPS). | |
== Часть 3 == | == Часть 3 == | ||
− | Добавив к спроектированному в части 2 операционному автомату подходящий управляющий автомат, спроектировать процессор с модельной архитектурой системы команд (блок 11) со следующими особенностями работы | + | Добавив к спроектированному в части 2 операционному автомату подходящий управляющий автомат (блок 17), спроектировать процессор с модельной архитектурой системы команд (блок 11) со следующими особенностями работы: |
− | + | * Он имеет тактовый вход clk, вход сброса rst, а также однобитовые входы change, step. | |
− | + | * Входы change и step являются синхронными: значения считываются в моменты передних фронтов сигнала clk (тактов). | |
− | + | * Он имеет два режима работы: обычный и приостановленный. | |
− | * Он имеет тактовый вход clk, вход сброса rst, а также однобитовые входы | + | * После сброса процессор оказывается в приостановленном режиме. |
− | * Он имеет | + | * Если на предыдущем такте change=0, а на текущем change=1, то режим работы процессора переключается (с обычного на приостановленный, с приостановленного на обычный), в противном случае не переключается. |
− | * | + | * Последовательность инструкций, выполняемых процессором, определяется архитектурой системы команд, каждая инструкция выполняется один такт. |
− | + | * В обычном режиме инструкции выполняются на каждом такте. | |
− | + | * В приостановленном режиме выполнение инструкций управляется сигналом на входе step: | |
− | * | + | ** если на предыдущем такте step=0, а на текущем step=1, то инструкция выполняется; |
− | + | ** в противном случае (сейчас step=0; и на предыдущем такте, и сейчас step=1) инструкция не выполняется. | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | * | + | |
− | * | + | |
− | * В | + | |
− | ** если | + | |
− | + | ||
− | ** | + | |
− | + | ||
== Часть 4 == | == Часть 4 == | ||
− | Описать модули тестирования (блок 9), демонстрирующие работу | + | Описать модули тестирования (блок 9), демонстрирующие работу процессора, спроектированного в части 3, корректную с точки зрения функциональной симуляции. |
= Достаточное техническое оснащение = | = Достаточное техническое оснащение = |
Версия 15:40, 6 сентября 2018
Актуальность информации: осенний семестр 2018/2019 учебного года.
Обязательный курс для студентов группы 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: реализация управляющего автомата.
Условия получения зачёта
Необходимое и достаточное условие получения зачёта - это выполнение большого задания, коротко формулируемого так: спроектировать и функционально протестировать упрощённый процессор на языке Verilog.
Обязательное требование для операционного и управляющего автоматов процессора (части 1-3): они должны полностью удовлетворять стандарту синтеза (блок 13).
Макроопределения для удобной работы с архитектурой системы команд блока 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: достаточно скачать и установить Icarus Verilog, в стандартной комплектации содержащий исполняемые файлы
- iverilog.exe (компилятор схемных дизайнов),
- vvp.exe (средство исполнения скомпилированных дизайнов) и
- gtkwave.exe (визуализатор диаграмм сигналов).
Работа со схемными дизайнами при помощи других средств не возбраняется.
Литература
Основная
- Harris, Harris, Digital Design and Computer Architecture, 2nd Edition, Elseveir, 2013
- 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
- S. Palnitkar, Verilog HDL, 2nd Edition, 2003
- F. Vahid, Digital Design with RTL Design, VHDL, and Verilog 2nd Edition, Wiley, 2010