Заключение
В завершении курса, важно отметить, что изученный материал и проделанные работы позволили Вам сделать первый шаг на пути к глубокому погружению в мир процессорных архитектур, языков описания аппаратуры и современного проектирования цифровых систем. Вы познакомились различными инструментами моделирования и проектирования цифровых устройств и ядра процессора. Однако, чтобы преуспеть в этой области, важно продолжать изучение следующих направлений, возможно выбрав более специфическое направление в сфере разработки для RISC-V и других микропроцессорных систем.
Для дальнейших шагов в сфере разработки микропроцессорных систем и цифровой электроники предлагается следующие материалы, которые помогут вашему профессиональному росту или выбору специализации.
Для более глубокого понимания архитектур процессоров и принципов функционирования ЭВМ рекомендуется изучить следующие переводные русскоязычные издания:
- "Цифровая схемотехника и архитектура компьютера" авторства Д. Харрис и С. Харрис [6], где пошагово даются примеры цифровых устройств, также авторы рассматривают существующие архитектуры и микроархитектуры процессоров. Желательно изучить и материал данных авторов, посвященный ARM архитектуре [7].
- Таненбаум Э., Остин Т. Архитектура компьютера. 6-е изд [5]. В данной книге авторы раскрывают организацию ЭВМ, особенности работы с памятью, дают краткое изложение интерфейсов и шин для получения представления о принципах их работы. Рассматривается процесс ассемблирования программ.
Из англоязычной литературы, написанной с простым изложением текста следует ознакомиться с "Computer Organization and Design RISC-V Edition. The Hardware/ Software interface" авторства David A. Patterson [16]. В данном издании рассматриваются особенности архитектуры RISC-V, а также современные процессорные решения. Приводятся результаты тестирования различных решений, а также организация блоков для решений RISC, сравнение ISA RISC процессоров.
В итоговой главе курса были написаны ряд простых программ для тестирования ядра процессора, для понимания основ программирования для RISC-V и получения практического опыта. В тоже время, следует изучить ряд материалов и документацию по системе команд процессора, а также инструментарию разработчика. Направление по разработке прикладных решений на базе процессоров RISC-V желательно начать с курсов от "Альянса RISC-V":
- "Основы программирования на языке Assembler под архитектуру RISC-V" [8], где рассматривается основа синтаксиса языка ассемблера, имеются рабочие примеры для освоения синтаксиса. Описывается порядок развертывания инструментов разработки и симуляции.
- "Сквозной лабораторный практикум по технологиям RISC-V" [9]. Авторы практикума на базе виртуального инструмента "Syntacore Kit" пошагово решают задачи по разработке и отладке программ на языке ассемблера и Си для процессора RISC-V, работающего под управлением операционной системы FreeRTOS.
- Практическая работа с доступным широкому кругу разработчиков микроконтроллером ESP-32-C3 рассматривается в переводном издании С. Смита (хотя издание в принципе не привязано к аппаратной платформе, как таковой) "Программирование на языке ассемблера RISC-V". В данном труде автор доступно на примерах демонстрирует работу с базовыми инструкциями RISC-V и результат их выполнения. В отдельных главах приводятся приемы работы с операциями умножения и числами с плавающей точкой. Также описывается особенность программирования RISC-V Linux применительно к одноплатному компьютеру StarFive VisionFive 2 и эмулятору QEMU.
Доступной с точки зрения изложения материала на английском языке, с простыми примерами, которые легко можно повторить и разобраться в коде, можно считать книгу авторства Warren W. Gay "RISC-V Assembly Language Programming. Using the ESP32-C3 and QEMU" [15]. Данное издание можно отнести к хорошему, более подробному дополнению книги "Программирование на языке ассемблера RISC-V".
Направление разработки цифровых устройств на языке Verilog рекомендуется начать с изучения книги авторства Валерия Соловьева "Язык Verilog в проектировании встраиваемых систем на FPGA" [2]. Автор сам руководствовался данной книгой при разработке данного курса. Из немногочисленных русскоязычных изданий по языку Verilog данное издание отличает простота и качество изложения материала, а также большое количество примеров. Материал книги адаптирован для среды Quartus Prime.
Большое количество примеров разработок и идей для вдохновения можно найти в статьях на сайте marsohod.org [11].
Среди англоязычной литературы рекомендуется изучить две книги:
- "Fundamentals of Digital Logic with Verilog Design" авторства S. Brown and Z. Vranesic [13]. В данной книге раскрываются, как и сказано в названии, фундаментальные основы цифровой схемотехники. Авторы подробнейшим образом описывают особенности устройства комбинационных и синхронных схем. Рассматривается процесс проектирования, расчёта и построения конечных автоматов. Для приведенных функциональных схем дается описание на языке Verilog HDL.
- Подробным пособием по проектированию цифровых устройств можно считать издание "Digital Logic Design Using Verilog Coding and RTL Synthesis" авторства V.Taarate [17]. Данный труд фокусирует читателя на практических вопросах и сценариях, которые возникают при проектировании цифровых схемы использованием RTL. Материал книги включает в себя самые разнообразные примеры - от простых до сложных практических сценариев. Также автор выделил отдельные главы, посвященные логическому синтезу, статическому анализу времени и определению ограничений для ASIC.
Практические приемы разработки на языке Verilog применительно к архитектуре RISC-V можно найти в двух следующих изданиях:
- "Цифровой синтез: RISC-V" под общей редакцией А.Ю. Романова [1]. Данная книга содержит в себе материал по проектированию модулей и узлов в цифровой технике. Приводятся примеры создания тестовых окружений, а также работы с инструментами среды Quartus Prime. Рассматривается временной анализ результатов проектирования и оптимизация проектов. Данные моменты не были освещены в курсе, но являются важными этапами работы.
- "Inside an Open-Source Processor. An Introduction to RISC-V" авторства Monte Dalrymple [14]. Эта книга посвящена реализации процессора, использующего 32-битную архитектуру команд RISC-V ISA с акцентом на функциональные возможности, необходимые для встроенных систем управления. Книга охватывает процесс реализации дизайна процессора RISC-V для FPGA Xilinx. Приведенные в книге инструкции RISC-V увязаны с особенностями реализации ядра процессора.
Для изучения процесса временного анализа и верификации схем рекомендуется ознакомиться со следующими источниками:
- "Временной анализ программируемых логических интегральных схем" автор В.В. Соловьева [3]. В книге рассмотрены основные принципы работы с временным анализатором TimeQuest пакета Quartus Prime. Приведены теоретические основы статистического временного анализа цифровых систем на программируемых логических интегральных схемах (ПЛИС). Рассмотрены такие явления, как метастабильность регистров. Описаны методики создания временных ограничений на языках SDC и Tcl. Дано описание языка скриптов Tcl в случае его использования для временного анализа в среде Quartus Prime.
- "Static Timing Analysis for Nanometer Designs A Practical Approach" авторы J. Bhasker, Rakesh Chadha [12]. Данная книга сконцентрирована на теоретических и практических аспектах статического анализа времени (STA). Она объясняет, как анализировать логические пути и критические сигналы в сложных проектах - понятия, которые необходимы для работы в TimeQuest Timing Analyzer.
Отличным материалом для подготовки в сфере верификации устройств на базе RISC-V служит курс Чусова С.А "Введение в функциональную верификацию RISC-V" предоставляемый "Альянсом RISC-V" [10]. В данном курсе автор с использованием инструментов для временного анализа, инструментария создания кода, а также тестового окружения вводит слушателя в достаточно сложную, но увлекательную профессию верификатора.
Таким образом, приведенные выше источники помогут в получении глубоких знаний и качественных практических навыков, а материал курса - это только базис, позволяющий заложить основу для дальнейшего профессионального роста.
Список литературы для самостоятельного изучения
- Цифровой синтез RISC-V. под ред. Романова А.Ю. - М.: ДМК Пресс, 2024. - 636 с.: ил.
- Соловьев В.В. Язык Verilog в проектировании встраиваемых систем на FPGA. - М: Горячая линия - Телеком, 2022. - 440 с.: ил.
- Соловьев В.В. Временной анализ программируемых логических интегральных схем. - М.: Горячая линия - Телеком, 2023. - 359 с.: ил.
- Смит С. Программирование на языке ассемблера RISC-V. пер. с англ. Логунов А. под. ред. А.Ю. Романова -М.: ДМК Пресс, 2024. - 276 с.: ил.
- Таненбаум Э., Остин Т. Архитектура компьютера. 6-е изд. - СПб: Питер, 2021. - 621 с.: ил.
- Харрис C., Харрис Д. Цифровая схемотехника и архитектура компьютера RISC-V/ пер. с англ. В.С. Яценкова, А.Ю. Романова; под. ред. А.Ю. Романова -М.: ДМК Пресс, 2021. - 810 с.: ил.
- Харрис C., Харрис Д. Цифровая схемотехника и архитектура компьютера. Дополнение по архитектуре АРМ. ДМК Пресс,2019. - 356 с.: ил.
- Курс "Основы программирования на языке Assembler под архитектуру RISC-V" http://github.com/RISCV-Alliance-Education/RISCV-Curricula/blob/main/LFD117x-RU/Основы%20программирования%20на%20языке%20Assembler%20под%20архитектуру%20RISC-V.docx
- СКВОЗНОЙ ЛАБОРАТОРНЫЙ ПРАКТИКУМ ПО ТЕХНОЛОГИЯМ RISC-V http://github.com/RISCV-Alliance-Education/RISCV-Curricula/tree/main/Labs
- Курс "Введение в функциональную верификацию RISC-V" http://github.com/RISCV-Alliance-Education/Contest-2023_Verification
- Сайт "Марсоход. Open Source Hardware Project" http://marsohod.org
- Bhasker J., Rakesh Chadha. Static Timing Analysis for Nanometer Designs A Practical Approach. :Springer, 2009, 592 p.
- Brown S., Vranesic Z. Fundamentals of Digital Logic with Verilog Design.: McGraw-Hill, 2014, 846 p.
- Dalrymple Monte. Inside an Open-Source Processor. An Introduction to RISC-V. : Elektor International Media B.V., 2022, 270 p.
- Gay Warren RISC-V Assembly Language Programming. Using the ESP32-C3 and QEMU.: Elektor International Media B.V., 2022, 267 p.
- Patterson David A. Computer Organization and Design RISC-V Edition. The Hardware/ Software Interface.: Morgan Kaufmann, 2020, 736 p.
- Taarate V. Digital Logic Design Using Verilog Coding and RTL Synthesis.: Springer, 2016, 439 p.