Проектирование цифровых систем

Для программы:

Содержание курса

Курс строится на трёх разделах: аппаратная теория, язык описания аппаратуры и практическое проектирование.

Раздел 1. Теория цифровых систем

Основа — материал курса «Архитектура ЭВМ» для бакалавриата, дополненный графической нотацией для изображения цифровых электронных схем.

  1. Шины: виды, протоколы, исторически значимые системные шины; внутренняя и внешняя разрядность процессоров, шин и памяти.
  2. Прерывания и DMA (MMIO): управление устройствами хранения данных и устройствами реального времени; автоматическая и «ручная» настройка оборудования.
  3. Графическая нотация цифровых схем: принципы изображения логических элементов, узлов и связей; чтение и интерпретация схем.
  4. АЛУ, сумматоры, схемы сдвига: арифметика от вычитания до деления; логические вентили, их конструкция и применение.
  5. Триггеры (RS, D, MS, JK, T), регистры: конструкция, назначение, чтение и запись данных; сдвигающие регистры и счётчики.

Раздел 2. Язык описания аппаратуры

Введение в Hardware Description Languages и открытые инструменты симуляции.

  1. Место языков описания аппаратуры в жизни инженера; мотивация и история: от схемотехники к программному описанию оборудования.
  2. Язык Verilog: структурный и поведенческий уровни описания; модули, порты, операторы.
  3. Язык SystemVerilog: расширения Verilog для тестирования и верификации; интерфейсы, классы, assertion-ы.
  4. Открытые симуляторы: Icarus Verilog, GTKWave и другие; компиляция, запуск симуляции, анализ волновых диаграмм.

Раздел 3. Практическое проектирование

Построение простых цифровых схем на доступном диалекте Verilog.

  1. Комбинаторные схемы: мультиплексоры, декодеры, арифметические блоки.
  2. Последовательностные схемы: триггеры, регистры, счётчики на Verilog.
  3. Простейшее запоминающее устройство (ОЗУ): проектирование и тестирование.
  4. Простейший процессор: архитектура, модель памяти команд, цикл «выборка — декодирование — исполнение».

Промежуточная аттестация

Зачёт

Практические задания по проектированию цифровых схем на Verilog:

Примерные вопросы к экзамену

  1. Назначение и виды цифровых и аналоговых вычислительных систем; преимущества цифрового представления данных.
  2. Шины данных, адреса и управления; принципы организации передачи данных между устройствами.
  3. Прерывания: аппаратные и программные; приоритеты; векторный метод обработки прерываний.
  4. Прямой доступ к памяти (DMA): принцип работы, области применения, отличия от программного ввода-вывода.
  5. АЛУ: структура, функции, основные арифметико-логические операции.
  6. Логические вентили и их комбинации; принцип построения сумматоров и схем сравнения.
  7. Триггеры: типы (RS, D, JK, T), назначение, характеристики, область применения.
  8. Регистры: назначение, виды (сдвигающие, параллельные), чтение и запись данных.
  9. Модель памяти: статическая и динамическая ОЗУ; принцип хранения бита информации.
  10. Системы команд: CISC и RISC; принципы организации команд процессора.
  11. Цикл обработки команды: выборка, декодирование, исполнение, запись результата.
  12. Язык Verilog: модуль и порт; структурное и поведенческое описание; уровни описания.
  13. Система данных Verilog: типы данных (wire, reg, integer); операторы присваивания.
  14. Модули и иерархия: instanciation, параметризация, передача данных между модулями.
  15. Тестирование на Verilog: testbench; моделирование сценариев; анализ волновых диаграмм.
  16. SystemVerilog: расширения для верификации; интерфейсы, классы, assertion-ы.
  17. Приёмы проектирования цифровых схем: декомпозиция, иерархический подход, повторное использование модулей.
  18. Проектирование простейшего процессора: архитектура, набор команд, организация памяти.
  19. Открытые инструменты: Icarus Verilog, GTKWave; процесс симуляции от исходного кода до анализа результатов.
  20. Вдумчивые и конструктивные замечания по содержанию курса.

Материалы

Лекционные материалы

Инструменты

  1. Icarus Verilog — открытый симулятор Verilog (GPL)
  2. Verilator — открытый симулятор Verilog/SystemVerilog, компиляция в C++ (LGPL)
  3. GTKWave — анализатор волновых диаграмм (GPL)
  4. Logisim Evolution — графический симулятор цифровых схем (GPL)
  5. cocotb — среда тестирования RTL-схем на Python (ISC)

Для быстрого старта без установки: EDA Playground — бесплатная веб-среда с доступом к Icarus, Verilator и другим симуляторам.

Литература

Большинство изданий доступны в виде электронных копий через университетские библиотеки и другие ресурсы.

  1. Орлов С.А., Цилькер Б.Я. Организация ЭВМ и систем: Учебник для вузов. 2-е изд. — СПб.: Питер, 2011. — 688 с.
  2. Хорошевский В.Г. Архитектура вычислительных систем: Учеб. пособие. 2-e изд., перераб. и доп. M.: Изд-во МГТУ им. H.Э. Баумана, 2008. 520 c.
  3. Таненбаум Э., Остин Т. Архитектура компьютера. 6-е изд. — СПб.: Питер, 2013. — 816 с.
  4. Сара Л. Харрис, Дэвид Харрис. Цифровая схемотехника и архитектура компьютера: RISC-V / пер. с англ. В. С. Яценкова, А. Ю. Романова; под ред. А. Ю. Романова. – М.: ДМК Пресс, 2021. – 810 с.: ил.
  5. Код. Тайный язык информатики / Чарльз Петцольд ; пер. с англ. О. Сивченко ; [науч. ред. В. Артюхин, А. Гизатулин]. — М.: Манн, Иванов и Фербер, 2019. — 448 с.
  6. Дональд Томас. Логическое проектирование и верификация систем на SystemVerilog / пер. с анг. А. А. Слинкина, А. С. Камкина, М. М. Чупилко; науч. ред. А. С. Камкин, М. М. Чупилко. – М.: ДМК Пресс, 2019. – 384 с.: ил.

Онлайн-курсы

... рекомендованные в качестве дополнительных материалов

  1. Computer Architecture Princeton University
  2. Hardware Description Languages for FPGA Design University of Colorado Boulder

Мультимедиа

  1. Pirates of Silicon Valley
  2. Revolution OS
  3. Micro Men
  4. Homebrew CPU — примеры машин, ЦП которых были самостоятельно спроектированы и изготовлены энтузиастами