Skip to content

hurisson/RGU-PyUVM-Verification

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 

Repository files navigation

RGU-PyUVM-Verification

Выпускная квалификационная работа бакалавра на тему «Разработка системы для верификации цифровых схем с применением фреймворков 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-шины протоколу проверка встроена в каждый сценарий

Архитектура решения

Архитектура решения

Эталонная модель (scoreboard)

Функциональная схема эталонной модели:

Функциональная схема эталонной модели

При изменении значения в регистре блока происходит модификация этого регистра в регистровой модели-имитации генератора сброса. Такая модель используется для сравнения полученных данных и ожидаемых результатов при транзакциях на чтение.

Схема обработки APB-транзакций эталонной моделью:

Обработка APB-транзакций

Схема обработки транзакций сброса эталонной моделью:

Обработка транзакций сброса

Результаты

В результате была разработана и внедрена автоматизированная система верификации цифрового блока генератора сбросов с использованием фреймворков cocotb и PyUVM. По окончании верификации было достгнуто 100%-ное покрытие. Выявленные ошибки позволили устранить проблемы в цифровом дизайне, снизив шансы на перевыпуск системы на кристалле. Перспективы дальнейшего развития разработанной системы верификации заключаются в ее переиспользуемости в рамках программ по развитию элементной базы электроники отечественной разработки.

По итогам выполненной работы было проведено сравнение двух подходов к верификации цифровых схем: классического (SystemVerilog и UVM) и инновационного (cocotb и PyUVM). Первый обеспечивает высокую совместимость, но требует значительных временных затрат и глубоких знаний специфики. Второй подход упрощает и ускоряет верификацию, но пока ограничен модульным уровнем ввиду низкой производительности и недостаточной проработке библиотек. Усовершенствование PyUVM позволит создавать полноценные системы верификации систем на кристалле на Python, делая процесс тестирования цифровых схем более гибким и эффективным.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 60.5%
  • Verilog 39.5%