Спец курс (Верификация цифровых схем)/Практические задания (Лекция 4)
Материал из Wiki
Лекции ВЦС
Лекции
Практические задания
|
Тесты
Табель успеваемости
Экзамен
Доп. материалы
Написание UVM окружения
- Разработать драйвер, позволяющую выполнять базовые операции на заданном интерфейсе (spi/csr/apb/т.д.).
- Разработать монитор, позволяющий собрать базовые операции на заданном интерфейсе в транзакцию и отправлять ее в uvm_analyze_port порт
- Собрать агент из готовых компонентов (driver, monitor, sequencer, coverage_collector), реализовать фазы создания и подключения в зависимости от параметров объекта конфигурации.
- Создать SV пакеты.
- Реализовать SV пакет агента (название пакета XXX_agent_pkg, XXX - название интерфейса который соответствует вашему варианту : spi/csr/apb/т.д. )
- Разработать блок (uvm_component) сравнения пары транзакций (tr_comparator).
- Блок должен иметь два входных порта expected и actual типа uvm_analyze_*.
- В порт expected приходят транзакции которые мы отправили.
- В порт actual приходят транзакции которые мы получили.
- После получения пары транзакций блок должен сравнивать их и выводит содержимое транзакций в лог и сообщение PASS / FAIL (в случае если транзакции совпали/не совпали)
- Разработать блок (uvm_component) сравнения произвольной последовательности данных (data_comparator).
- Блок должен иметь два входных порта expected и actual типа uvm_analyze_*.
- В порт expected приходят транзакции которые мы отправили.
- В порт actual приходят транзакции которые мы получили.
- В блок приходят транзакции с произвольным адресом и данными.
- Блок аккумулирует заданное число данных(адрес игнорируется) в очередь и после заполнения очереди сравнивает последовательность данных (блок должен быть параметризован значением, которое определяет размер очереди)
- Реализовать окружение (uvm_env), в котором будет два агента (spi/csr/apb/т.д.), отличающихся шириной шины адреса и данных (адрес/данные 11/32 , 20/64).
- Реализовать окружение (uvm_env), в котором будет два агента (spi/csr/apb/т.д.), один в режиме мастер, другой в режиме ведомый.
- Интерфейс агента мастера должен быть подключен к интерфейсу агента ведомого.
- Реализовать SV пакет окружения.
- Создать базовый тест.
- В базовом тесте подключить пакет окружения и создать объект окружения.
- Создать тест (master_to_slave_test) наследуемый от базового
- Создать сиквенс, которая генерирует 100 случайных транзакций.
- Запустить сиквенс master_to_slave_test тесте на сиквенсере из мастер агента.
- В результате должна пройти передача 100 транзакций из мастера в ведомый и должны выводиться сообщения о сранвении транзакций и данных