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

Материал из Кафедра математической кибернетики
Перейти к: навигация, поиск
Строка 46: Строка 46:
  
 
Спроектировать на языке Verilog основные функциональные блоки процессора (блок 12) для модельной архитектуры системы команд (блок 11). Фактическое число ячеек в памяти данных можно выбирать произвольным - достаточным для полноценной наглядной функциональной симуляции.
 
Спроектировать на языке Verilog основные функциональные блоки процессора (блок 12) для модельной архитектуры системы команд (блок 11). Фактическое число ячеек в памяти данных можно выбирать произвольным - достаточным для полноценной наглядной функциональной симуляции.
 +
 +
== Часть 2 ==
 +
 +
Используя написанные в части 1 модули, спроектировать операционный автомат процессора (блок 16) с модельной архитектурой системы команд (блок 11) на языке Verilog.
 +
 +
''По желанию, рекомендуется'': спроектировать и программно просимулировать однотактовый процессор.
 +
 +
== Часть 3 ==
 +
 +
Добавив к спроектированному в части 2 операционному автомату подходящий управляющий автомат, спроектировать процессор с модельной архитектурой системы команд (блок 11) со следующими особенностями работы:
 +
* он имеет тактовый вход clk, вход сброса rst, а также однобитовые входы hold, step и go;
 +
* он имеет три режима работы: обычный (команды выполняются одна за одной согласно семантике), приостановленный (выполнение команд контролируется сигналами на входах) и заблокированный;
 +
* он выполняет каждую команду оптимально по времени в предположении о том, что каждый основной функциональный блок (блок 12) распространяет сигнал за 1 единицу времени, а остальные подсхемы работают мгновенно;
 +
* по переднему фронту clk: если hold = 1, то процессор не выполняет команду, и вместо этого переходит в приостановленный режим работы;
 +
* в приостановленном режиме
 +
** если step = go = 0 во время переднего фронта clk, то не происходит перезаписи ячеек памяти, и текущая выполняемая команда не изменяется;
 +
** если go = 1 во время переднего фронта clk, то процессор переходит в обычный режим работы;
 +
** если go = 0 и step = 1 во время переднего фронта clk, то процессор выполняет одну команду и переходит в заблокированный режим
 +
* в заблокированном режиме
 +
** если go = 1 во время переднего фронта clk, то процессор переходит в обычный режим работы;
 +
** если go = 0 и step = 0 во время переднего фронта clk, то процессор переходит в приостановленный режим работы;
 +
** если go = 1 и step = 1 во время переднего фронта clk, то не происходит перезаписи ячеек памяти, и текущая выполняемая команда не изменяется.
  
 
= Достаточное техническое оснащение =
 
= Достаточное техническое оснащение =

Версия 02:08, 27 октября 2017

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

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

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

Блок 1. Небольшое вступление и организационные вопросы.

Блок 2. КМОП-транзисторы: как это работает, и причём тут схемы из функциональных элементов.

Блок 3. Комбинационные схемы.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Необходимое и достаточное условие получения зачёта - это выполнение большого задания, коротко описываемого так: спроектировать и функционально протестировать процессор на языке Verilog.

Предыдущая версия задания удалена. Эта версия остаётся достаточной для зачёта, однако задание по умолчанию изменилось.

Часть 1

Спроектировать на языке Verilog основные функциональные блоки процессора (блок 12) для модельной архитектуры системы команд (блок 11). Фактическое число ячеек в памяти данных можно выбирать произвольным - достаточным для полноценной наглядной функциональной симуляции.

Часть 2

Используя написанные в части 1 модули, спроектировать операционный автомат процессора (блок 16) с модельной архитектурой системы команд (блок 11) на языке Verilog.

По желанию, рекомендуется: спроектировать и программно просимулировать однотактовый процессор.

Часть 3

Добавив к спроектированному в части 2 операционному автомату подходящий управляющий автомат, спроектировать процессор с модельной архитектурой системы команд (блок 11) со следующими особенностями работы:

  • он имеет тактовый вход clk, вход сброса rst, а также однобитовые входы hold, step и go;
  • он имеет три режима работы: обычный (команды выполняются одна за одной согласно семантике), приостановленный (выполнение команд контролируется сигналами на входах) и заблокированный;
  • он выполняет каждую команду оптимально по времени в предположении о том, что каждый основной функциональный блок (блок 12) распространяет сигнал за 1 единицу времени, а остальные подсхемы работают мгновенно;
  • по переднему фронту clk: если hold = 1, то процессор не выполняет команду, и вместо этого переходит в приостановленный режим работы;
  • в приостановленном режиме
    • если step = go = 0 во время переднего фронта clk, то не происходит перезаписи ячеек памяти, и текущая выполняемая команда не изменяется;
    • если go = 1 во время переднего фронта clk, то процессор переходит в обычный режим работы;
    • если go = 0 и step = 1 во время переднего фронта clk, то процессор выполняет одну команду и переходит в заблокированный режим
  • в заблокированном режиме
    • если go = 1 во время переднего фронта clk, то процессор переходит в обычный режим работы;
    • если go = 0 и step = 0 во время переднего фронта clk, то процессор переходит в приостановленный режим работы;
    • если go = 1 и step = 1 во время переднего фронта clk, то не происходит перезаписи ячеек памяти, и текущая выполняемая команда не изменяется.

Достаточное техническое оснащение

Для полноценного выполнения задания курса достаточно иметь компьютер с 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