«Случай — это псевдоним Бога, когда Он не хочет подписываться своим собственным именем.» А. Франс

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

Материал из Wiki
Перейти к: навигация, поиск
Строка 6: Строка 6:
 
= Задание =
 
= Задание =
 
# Описать интерфейс по спецификации.
 
# Описать интерфейс по спецификации.
## Интерфейс должен включать тактовый сигнал clk и сигнал сброса rst_n.
+
## Интерфейс должен включать тактовый сигнал clk и сигнал сброса rst_n (кроме UART).
## Если интерфейс включает в себе шины адреса\данных, то ширины шин должны задаваться параметрами.
+
## Если интерфейс содержит в себе шины адреса\данных, то ширины шин должны задаваться параметрами.
 
# Описать класс транзакций для заданной спецификации.
 
# Описать класс транзакций для заданной спецификации.
 
## Класс транзакции должен включать все необходимые поля (например: адрес, данные, тип транзакции).
 
## Класс транзакции должен включать все необходимые поля (например: адрес, данные, тип транзакции).
Строка 26: Строка 26:
 
## Тестбенч должен демонстрировать работоспособность драйвера, а студент должен быть готов объяснять работу тестбенча.
 
## Тестбенч должен демонстрировать работоспособность драйвера, а студент должен быть готов объяснять работу тестбенча.
  
= Спецификации =
+
= Варианты (Спецификации) =
 
== 1) APB 2 ==
 
== 1) APB 2 ==
 
* [https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=5&ved=2ahUKEwiVxa-M8dPeAhUElSwKHd5SDBEQFjAEegQIAhAC&url=http%3A%2F%2Fsoc.eecs.yuntech.edu.tw%2FCourse%2FSoC%2Fdoc%2Famba.pdf&usg=AOvVaw1LUIakTq36vC2i0nNQL-DW amba_protocol_spec.pdf]
 
* [https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=5&ved=2ahUKEwiVxa-M8dPeAhUElSwKHd5SDBEQFjAEegQIAhAC&url=http%3A%2F%2Fsoc.eecs.yuntech.edu.tw%2FCourse%2FSoC%2Fdoc%2Famba.pdf&usg=AOvVaw1LUIakTq36vC2i0nNQL-DW amba_protocol_spec.pdf]

Версия 00:37, 15 ноября 2018

Лекции ЯВА

Лекции

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

Тесты

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

Экзамен

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

Содержание

Пример

https://www.edaplayground.com/x/4Cis

Задание

  1. Описать интерфейс по спецификации.
    1. Интерфейс должен включать тактовый сигнал clk и сигнал сброса rst_n (кроме UART).
    2. Если интерфейс содержит в себе шины адреса\данных, то ширины шин должны задаваться параметрами.
  2. Описать класс транзакций для заданной спецификации.
    1. Класс транзакции должен включать все необходимые поля (например: адрес, данные, тип транзакции).
    2. Поля должны быть объявлены, как случайные.
    3. Класс должен иметь метод конвертации в строку.
  3. Описать класс мастер драйвера для заданной спецификации.
    1. Одним из полей драйвера должна быть ссылка на интерфейс. Эту ссылку необходимо передавать в конструктор драйвера.
    2. Драйвер должен иметь метод task run(), который должен описывать логику работы драйвера.
    3. Драйвер должен сбрасываться заднему фронту сигнала сброса и продолжать свою работу на следующем переднем фронте тактового сигнала после переднего фронта сигнала сброса.
    4. Драйвер должен обрабатывать только одну транзакцию за раз.
    5. Транзакции на обработку должны поступать в драйвер через очередь или мейлбокс.
    6. После обработки транзакции драйвер должен поместить эту транзакцию в очередь или мейлбокс ответов.
  4. Создать простой тестбенч, в котором создать объект драйвера и интерфейса.
    1. Описать параллельные процессы для генерации тактового сигнала и слуайного управления сигналом сброса.
    2. Описать еще один процесс, в котором создать драйвер, передав ему ссылку на интерфейс, запустить метод run() драйвера.
    3. Параллельно запуску метода run() запустить процесс создания объектов транзакции. Этот процесс должен создавать объект транзакции, рандомизировать ее и передавать в драйвер для исполнения.
    4. При необходимости, реализовать в тестбенче дополнительные процессы управления входными сигналами для драйвера. Например, для APB2 спецификации нужно реализовать процесс управления сигналами PREADY, PRDATA.
    5. Тестбенч должен демонстрировать работоспособность драйвера, а студент должен быть готов объяснять работу тестбенча.

Варианты (Спецификации)

1) APB 2

2) UART

3) SPI

4) Ready Valid

  • Интерфейс содержит следующие сигналы:
    • input clk - тактовый сигнал.
    • rst_n - сигнал сброса.
    • input ready - сигнал от слейва к мастеру, который означает, что data и resp валидны.
    • output valid - сигнал от мастера к слейву. Сигнализирует о запросе на вычитку данных слейва. Установив этот сигнал в значение 1, мастер обязан дождаться момента, когда слейв установит ready в 1.
    • input data (N-битная шина) - шина данных. Значения на ней валидны только когда ready == 1.
    • input resp - сигнал, сигнализирующий об ошибке. Значение валидно только при ready == 1. Значение 1 соответствует ошибке, 0 - ОК.
    • Транзакция считается завершенной, когда по переднему фронту тактового сигнала и ready, и valid имеют значение 1.

Пример взаимодействия