Введение
Создание цифровых устройств, как правило, представляет из себя итеративный процесс. Требования к устройству частично могут измениться уже на этапе его разработки. Также часто приходится модифицировать RTL-код после получения отчетов от инструментов синтеза и имплементации. По этой причине желательно предпринять определенные шаги для облегчения поддержки кода и внесения возможных изменений. Иными словами, нужно настроить процесс непрерывной интеграции. В этой статье на примере Github Actions и разработанного нами ранее сумматора с AXI-Stream интерфейсами мы поговорим о том, как может выглядеть процесс непрерывной интеграции при создании цифровых устройств.
GitHub Flow
Для начала кратко рассмотрим, каким образом обычно ведется современная разработка RTL-модулей. Так как сейчас цифровое устройство представляет из себя код на одном из языков описания аппаратуры, для его сопровождения необходимо пользоваться системой контроля версий. На текущий момент наиболее популярной системой является Git. Есть несколько подходов ее использования, но мы остановимся, наверное, на самом простом, который называется GitHub Flow. Давайте рассмотрим, что он из себя представляет.