Спец курс (Верификация цифровых схем)/Практические задания (Лекция 4)
Материал из Wiki
				
								
				< Спец курс (Верификация цифровых схем)
				
				
																
				
				
								
				Версия от 16:44, 3 декабря 2019; Vidokq  (обсуждение | вклад)
Это снимок страницы. Он включает старые, но не удалённые версии шаблонов и изображений.
Лекции ВЦС
Лекции
Практические задания
  | 
Тесты
Табель успеваемости
Экзамен
Доп. материалы
Написание 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 транзакций из мастера в ведомый и должны выводиться сообщения о сранвении транзакций и данных