Проектирование цифровых систем
Для программы:
- Программная инженерия (магистратура)
Содержание курса
Курс строится на трёх разделах: аппаратная теория, язык описания аппаратуры и практическое проектирование.
Раздел 1. Теория цифровых систем
Основа — материал курса «Архитектура ЭВМ» для бакалавриата, дополненный графической нотацией для изображения цифровых электронных схем.
- Шины: виды, протоколы, исторически значимые системные шины; внутренняя и внешняя разрядность процессоров, шин и памяти.
- Прерывания и DMA (MMIO): управление устройствами хранения данных и устройствами реального времени; автоматическая и «ручная» настройка оборудования.
- Графическая нотация цифровых схем: принципы изображения логических элементов, узлов и связей; чтение и интерпретация схем.
- АЛУ, сумматоры, схемы сдвига: арифметика от вычитания до деления; логические вентили, их конструкция и применение.
- Триггеры (RS, D, MS, JK, T), регистры: конструкция, назначение, чтение и запись данных; сдвигающие регистры и счётчики.
Раздел 2. Язык описания аппаратуры
Введение в Hardware Description Languages и открытые инструменты симуляции.
- Место языков описания аппаратуры в жизни инженера; мотивация и история: от схемотехники к программному описанию оборудования.
- Язык Verilog: структурный и поведенческий уровни описания; модули, порты, операторы.
- Язык SystemVerilog: расширения Verilog для тестирования и верификации; интерфейсы, классы, assertion-ы.
- Открытые симуляторы: Icarus Verilog, GTKWave и другие; компиляция, запуск симуляции, анализ волновых диаграмм.
Раздел 3. Практическое проектирование
Построение простых цифровых схем на доступном диалекте Verilog.
- Комбинаторные схемы: мультиплексоры, декодеры, арифметические блоки.
- Последовательностные схемы: триггеры, регистры, счётчики на Verilog.
- Простейшее запоминающее устройство (ОЗУ): проектирование и тестирование.
- Простейший процессор: архитектура, модель памяти команд, цикл «выборка — декодирование — исполнение».
Промежуточная аттестация
Зачёт
Практические задания по проектированию цифровых схем на Verilog:
- проектирование комбинаторных и последовательностных схем;
- разработка и тестирование модуля ОЗУ;
- проектирование простейшего процессора.
Примерные вопросы к экзамену
- Назначение и виды цифровых и аналоговых вычислительных систем; преимущества цифрового представления данных.
- Шины данных, адреса и управления; принципы организации передачи данных между устройствами.
- Прерывания: аппаратные и программные; приоритеты; векторный метод обработки прерываний.
- Прямой доступ к памяти (DMA): принцип работы, области применения, отличия от программного ввода-вывода.
- АЛУ: структура, функции, основные арифметико-логические операции.
- Логические вентили и их комбинации; принцип построения сумматоров и схем сравнения.
- Триггеры: типы (RS, D, JK, T), назначение, характеристики, область применения.
- Регистры: назначение, виды (сдвигающие, параллельные), чтение и запись данных.
- Модель памяти: статическая и динамическая ОЗУ; принцип хранения бита информации.
- Системы команд: CISC и RISC; принципы организации команд процессора.
- Цикл обработки команды: выборка, декодирование, исполнение, запись результата.
- Язык Verilog: модуль и порт; структурное и поведенческое описание; уровни описания.
- Система данных Verilog: типы данных (wire, reg, integer); операторы присваивания.
- Модули и иерархия: instanciation, параметризация, передача данных между модулями.
- Тестирование на Verilog: testbench; моделирование сценариев; анализ волновых диаграмм.
- SystemVerilog: расширения для верификации; интерфейсы, классы, assertion-ы.
- Приёмы проектирования цифровых схем: декомпозиция, иерархический подход, повторное использование модулей.
- Проектирование простейшего процессора: архитектура, набор команд, организация памяти.
- Открытые инструменты: Icarus Verilog, GTKWave; процесс симуляции от исходного кода до анализа результатов.
- Вдумчивые и конструктивные замечания по содержанию курса.
Материалы
Лекционные материалы
Инструменты
- Icarus Verilog — открытый симулятор Verilog (GPL)
- Verilator — открытый симулятор Verilog/SystemVerilog, компиляция в C++ (LGPL)
- GTKWave — анализатор волновых диаграмм (GPL)
- Logisim Evolution — графический симулятор цифровых схем (GPL)
- cocotb — среда тестирования RTL-схем на Python (ISC)
Для быстрого старта без установки: EDA Playground — бесплатная веб-среда с доступом к Icarus, Verilator и другим симуляторам.
Литература
Большинство изданий доступны в виде электронных копий через университетские библиотеки и другие ресурсы.
- Орлов С.А., Цилькер Б.Я. Организация ЭВМ и систем: Учебник для вузов. 2-е изд. — СПб.: Питер, 2011. — 688 с.
- Хорошевский В.Г. Архитектура вычислительных систем: Учеб. пособие. 2-e изд., перераб. и доп. M.: Изд-во МГТУ им. H.Э. Баумана, 2008. 520 c.
- Таненбаум Э., Остин Т. Архитектура компьютера. 6-е изд. — СПб.: Питер, 2013. — 816 с.
- Сара Л. Харрис, Дэвид Харрис. Цифровая схемотехника и архитектура компьютера: RISC-V / пер. с англ. В. С. Яценкова, А. Ю. Романова; под ред. А. Ю. Романова. – М.: ДМК Пресс, 2021. – 810 с.: ил.
- Код. Тайный язык информатики / Чарльз Петцольд ; пер. с англ. О. Сивченко ; [науч. ред. В. Артюхин, А. Гизатулин]. — М.: Манн, Иванов и Фербер, 2019. — 448 с.
- Дональд Томас. Логическое проектирование и верификация систем на SystemVerilog / пер. с анг. А. А. Слинкина, А. С. Камкина, М. М. Чупилко; науч. ред. А. С. Камкин, М. М. Чупилко. – М.: ДМК Пресс, 2019. – 384 с.: ил.
Онлайн-курсы
... рекомендованные в качестве дополнительных материалов
- Computer Architecture Princeton University
- Hardware Description Languages for FPGA Design University of Colorado Boulder
Мультимедиа
- Pirates of Silicon Valley
- Revolution OS
- Micro Men
- Homebrew CPU — примеры машин, ЦП которых были самостоятельно спроектированы и изготовлены энтузиастами