«Работать добросовестно — значит: работать, повышая свою квалификацию, проявляя инициативу в совершенствовании продукции, технологий, организации работ, оказывая не предусмотренную должностными инструкциями помощь другим сотрудникам (включая и руководителей) в общей им всем работе.

Спец курс (Верификация цифровых схем)/Практические задания 3 — различия между версиями

Материал из Wiki
Перейти к: навигация, поиск
м (Дополнительно)
(Как выбрать варинат)
Строка 1: Строка 1:
 
{{ВЦС_TOC}}
 
{{ВЦС_TOC}}
== Как выбрать варинат ==
+
== Создание интерфейса ==
 +
1. Объявить интерфейс который содержит тактовый сигнал clk, сигнал сброса rst, и сигнал test.
 +
2. Создать модуль и в нем инстанциировать интерфейс
 +
3. Объявить переменную типа reg по имени  clk_i, rst_i.
 +
4. В initial блоке создать генератор тактового сигнала и сброса используя переменные clk_i,rst_i;
 +
5. Подключить сигналы clk_i, rst_i к интерфейсу.
 +
== Создание класса конвертации транзакции в воздействия на  проводном интерфейсе==
 +
1. Создать класс с названием driver_t.
 +
2. В классе объявить переменную типа virtual interface.
 +
3. Объявить event get_next_item_e;
 +
4. Реализовать task run_phase  в этом классе.(должен содержать бесконечный цикл, который ожидает события get_next_item_e). После получения события класс должен ожидать события posedge  на сигнале clk(на интерфейсе), после брать значения из объекта транзакции и печатать их в консоль.
 +
== Запуск конвертации ==
 +
5. Создать объект в модуле, объявленом в предыдущем задании.
 +
6. Передать указатель на интерфейс в обьект driver 
 +
7. Запустить task run_phase
 +
8. Создать в модуле класс транзакции из лаб2, передать указатель на транзакцию в класс driver.
 +
9. Вызвать триггер для события get_next_item_e.
 +
10. Повторить генерацию транзакций 10 раз со случайным интервалом от 1 до 10 us.
 +
== Как выбрать вариант ==
 
{{ЖЛампа|24px}}Для задания 1 варианты выбираются согласно  [[Спец курс (Верификация цифровых схем)/Табель успеваемости | табелю успеваемости]].
 
{{ЖЛампа|24px}}Для задания 1 варианты выбираются согласно  [[Спец курс (Верификация цифровых схем)/Табель успеваемости | табелю успеваемости]].
  

Версия 18:00, 30 октября 2018

Лекции ВЦС

Лекции

Практические задания
Тесты

Табель успеваемости

Экзамен

Доп. материалы

Содержание

Создание интерфейса

1. Объявить интерфейс который содержит тактовый сигнал clk, сигнал сброса rst, и сигнал test. 2. Создать модуль и в нем инстанциировать интерфейс 3. Объявить переменную типа reg по имени clk_i, rst_i. 4. В initial блоке создать генератор тактового сигнала и сброса используя переменные clk_i,rst_i; 5. Подключить сигналы clk_i, rst_i к интерфейсу.

Создание класса конвертации транзакции в воздействия на проводном интерфейсе

1. Создать класс с названием driver_t. 2. В классе объявить переменную типа virtual interface. 3. Объявить event get_next_item_e; 4. Реализовать task run_phase в этом классе.(должен содержать бесконечный цикл, который ожидает события get_next_item_e). После получения события класс должен ожидать события posedge на сигнале clk(на интерфейсе), после брать значения из объекта транзакции и печатать их в консоль.

Запуск конвертации

5. Создать объект в модуле, объявленом в предыдущем задании. 6. Передать указатель на интерфейс в обьект driver 7. Запустить task run_phase 8. Создать в модуле класс транзакции из лаб2, передать указатель на транзакцию в класс driver. 9. Вызвать триггер для события get_next_item_e. 10. Повторить генерацию транзакций 10 раз со случайным интервалом от 1 до 10 us.

Как выбрать вариант

Bombilla amarilla - yellow Edison lamp.pngДля задания 1 варианты выбираются согласно табелю успеваемости.

Например: если вариант 3.2 - это значит что необходимо разработать транзакцию SPI без использования UVM макросов.

Спецификации

  1. APB
  2. UART
  3. SPI

Задание

  1. По спецификации интерфейса (*) блока разработать транзакцию, позволяющую описать все доступные операции на заданном интерфейсе:
    1. с использованием UVM макросов.
    2. без использования UVM макросов.
  2. Создать пакет, реализующий весь функционал агента (сиквенсер, драйвер, монитор) из существующих файлов описания всех составных блоков и скомпилировать его. (Использовать файлы из проекта https://www.edaplayground.com/x/3ru7)
  3. Реализовать объект конфигурации агента, который содержит методы настройки в три режима: по умолчанию активный ведущий, пассивный, активный ведомый режимы

Дополнительно

  1. Реализовать фазу сброса в драйвере
  2. Реализовать фазу, предшествующую фазе сброса
  3. Подменить драйвер в агенте, из окружения в фазе создания компонент
  4. Создать домен фазы выполнения для агента и подключить агент к этому домену

Спецификация APB интерфейса

  • IHI0024C_amba_apb_protocol_spec.pdf

Спецификация UART интерфейса

Спецификация SPI интерфейса