Выпускная квалификационная работа бакалавра на тему «Разработка системы для верификации цифровых схем с применением фреймворков cocotb и PyUVM»
Студент: С. А. Минеева
Группа: М8О-410Б-21
Цель работы – создание и внедрение системы верификации для цифрового блока генератора сбросов, которая обеспечит автоматизацию тестирования и выявление потенциальных сбоев в работе блока, проверка функциональной корректности блока и подготовка отчета по результатам верификации, подтверждающего качество блока.
Для достижения поставленной цели были решены следующие задачи:
- составление стратегии и плана верификации, основанных на изученной документации верифицируемого блока;
- программная разработка верификационного окружения, эталонной модели, тестовых сценариев, модели покрытия;
- проведение верификации рассматриваемого блока для выявления ошибок RTL дизайна, достижение 100%-ного функционального и кодового покрытия;
- оценка результатов разработки верификационной системы с использованием фреймворков cocotb и PyUVM.
- root/
- images/ # Схемы
- pyuvm/ # Верификационное окружение
- coverage/ # Модель сбора покрытия
- env/
- cfg/ # Конфигурация
- rgu_dict.py # Словарь входных и выходных сигналов сброса
- rgu_env.py # Окружение
- rgu_model.py # Регистровая модель-имитация блока
- rgu_pkg.py # Импортирование
- rgu_scoreboard.py # Эталонная модель
- seq/ # Последовательности транзакций
- test/ # Тесты
- rtl_wrapper/ # Модуль-обертка
№ | Характеристика | Тестовый сценарий |
---|---|---|
1 | адресное протранство: доступ, значения по сбросу | подача случайных APB-транзакций, подача случайного сброса с последующим чтением из каждого регистра |
2 | приоритет сигналов | рандомизированная одновременная подача сигналов сброса |
3 | работа системы антидребезга | подача глитчей со стороны кнопочного сигнала сброса |
4 | работа автоматической обработки сигналов сброса | параллельно: рандомизация подач сигналов сброса, сбоев работы генератора тактового сигнала для APB-шины |
5 | время срабатывания сигнала сброса после глобального сброса системы | подача кнопочного сигнала сброса после системного сброса |
6 | удержание системы в сбросе | случайные APB-транзакции во время сброса |
7 | цикл работы сбросов | проверка встроена в каждый сценарий |
8 | корректность работы таймеров | проверка встроена в каждый сценарий |
9 | внешние и внутренние запросы сброса | проверка встроена в каждый сценарий |
10 | соответсвие APB-шины протоколу | проверка встроена в каждый сценарий |
Функциональная схема эталонной модели:
При изменении значения в регистре блока происходит модификация этого регистра в регистровой модели-имитации генератора сброса. Такая модель используется для сравнения полученных данных и ожидаемых результатов при транзакциях на чтение.
Схема обработки APB-транзакций эталонной моделью:
Схема обработки транзакций сброса эталонной моделью:
В результате была разработана и внедрена автоматизированная система верификации цифрового блока генератора сбросов с использованием фреймворков cocotb и PyUVM. По окончании верификации было достгнуто 100%-ное покрытие. Выявленные ошибки позволили устранить проблемы в цифровом дизайне, снизив шансы на перевыпуск системы на кристалле. Перспективы дальнейшего развития разработанной системы верификации заключаются в ее переиспользуемости в рамках программ по развитию элементной базы электроники отечественной разработки.
По итогам выполненной работы было проведено сравнение двух подходов к верификации цифровых схем: классического (SystemVerilog и UVM) и инновационного (cocotb и PyUVM). Первый обеспечивает высокую совместимость, но требует значительных временных затрат и глубоких знаний специфики. Второй подход упрощает и ускоряет верификацию, но пока ограничен модульным уровнем ввиду низкой производительности и недостаточной проработке библиотек. Усовершенствование PyUVM позволит создавать полноценные системы верификации систем на кристалле на Python, делая процесс тестирования цифровых схем более гибким и эффективным.