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

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

Материал из Wiki
Перейти к: навигация, поиск
(Новая страница: «{{ВЦС_TOC}}»)
 
 
(не показаны 3 промежуточные версии 1 участника)
Строка 1: Строка 1:
 
{{ВЦС_TOC}}
 
{{ВЦС_TOC}}
 +
 +
1. Записать ограничения на рандомизацию параметров транзакции в соответствии с требованиями спецификации.
 +
 +
:'''Вариант 1.''' Спецификация 1
 +
*Транзакция содержит поля data, addr, strob, mode
 +
*Ширина данных 32 бита (data)
 +
*Ширина адреса 32 бита (addr)
 +
*Для поля Addr используется побайтовая адресация
 +
*Ширина строба 4 бита (strob), каждый строб отвечает за один байт в data
 +
*Поле mode имеет четыре значения Чтение, Запись, Ожидание, Ошибка (кодирование выбрать самостоятельно)
 +
*Поле strob имеет только непрерывное заполнение единицами, т.е. значения 0000, 1010, 1101 и др. недопустимы
 +
*Поле data принимает значения 0101….01 и 1010….10 с вероятностью 10% каждое, выпадение остальных значений равновероятно
 +
*Поле addr меньше переменной max_addr и больше min_addr
 +
*В режиме чтения адрес должен быть выровнен на 2
 +
*Если значение поля mode равно Запись, то addr выравнен на 4
 +
 +
:'''Вариант 2.''' Спецификация 2
 +
*Транзакция содержит поля data, addr, strob, mode, status
 +
*Ширина данных 128 бита (data)
 +
*Ширина адреса 32 бита (addr)
 +
*Ширина строба (strob) равна числу байт в шине данных
 +
*Поле mode имеет четыре значения Чтение, Запись, Ожидание, Ошибка
 +
*Поле strob имеет только непрерывное заполнение единицами, т.е. значения 0000, 1010, 1101 и др. недопустимы
 +
*Поле data принимает значения 0101….01 и 1010….10 с вероятностью 10%
 +
*Поле data принимает максимальное и минимальное значения с вероятностью 1%
 +
*Поле addr меньше переменной max_user_addr и меньше максимально возможного MAX_BUS_ADDR
 +
addr должен иметь значения адресующие только по 8 байт, если значение поля mode равно Чтение
 +
*Заполнение 1 поля strob должно начинаться с бита, номер которого равен значению младших 3-разрядов адреса.
 +
*Поле статус всегда равно OK, если mode равен Запись, иначе UNDEF
 +
 +
:'''Вариант 3.''' Спецификация 3
 +
*Транзакция содержит поля data, addr, strob, mode, status, delay_en, write_delay, read_delay
 +
*Ширина данных 64 бита (data)
 +
*Ширина адреса 32 бита(addr)
 +
*Ширина строба (strob) равна числу байт в шине данных
 +
*Поле mode имеет четыре значения Чтение, Запись, Ожидание, Ошибка
 +
*Поле strob имеет только непрерывное заполнение единицами
 +
*Поле data принимает значения 0101….01 и 1010….10 с вероятностью 5%
 +
*Поле data принимает максимальное и минимальное значения с вероятностью 1%
 +
*Поля с именем *delay принимают целые значения большие или равные 0
 +
*Если значение поля delay_en равно 0, то переменные write_delay, read_dealy равны 0.
 +
*Значение поля write_delay меньше 10, если dealy_en равен 1
 +
*Значение поля read_delay меньше 200, если dealy_en равен 1
 +
 +
:'''Вариант 4.''' Спецификация 4
 +
*Транзакция содержит поля data, addr, strob, mode
 +
*Ширина данных 64 бита, поле data - очередь из N данных
 +
*Ширина адреса 32 бита, поле addr - очередь из N адресов
 +
*Ширина строба равна числу байт в шине данных, strob - очередь из N стробов
 +
*Число элементов в очередях адреса, данных и стробов должно совпадать и должно быть не более 16.
 +
*Поле mode имеет два значения Чтение, Запись
 +
*Поле strob имеет только непрерывное заполнение единицами, с учетом очереди слов (т.е. Множество единиц в словах составленных друг за другом не должны перемешиваться 0, другими словами все стробы со 2-го и до предпоследнего  всегда равны всем 1, если 1-й и последний стробы больше 0)
 +
*Поле data принимает значения 0101….01 и 1010….10 с вероятностью 25%
 +
*Поле data принимает максимальное и минимальное значения с вероятностью 6%
 +
 +
2. Задать группу покрытия для сбора функционального покрытия в соответствии с требованиями плана верификации (В конце моделирования вывести процент покрытия ковер-группы).
 +
 +
:'''Вариант 1.''' Группа покрытия должна покрывать множество тестов представленных массивом строк.
 +
:'''Вариант 2.''' Группа покрытия должна содержать точку покрытия, в которой покрываются последовательности событий: Проверить что было чтение по адресу 0,1,2,3,4,F после записи по этим же адресам, по-очереди по каждому адресу. Проверить, что во время команды чтения был произведен сброс, затем команда чтения, затем снова сброс.
 +
:'''Вариант 3.''' Сделать ковер-группу, которая проверяет, что все размеры очереди в режиме чтения и записи транзакции из Спецификации 4 были проверены в тесте.

Текущая версия на 10:28, 21 ноября 2016

Лекции ВЦС

Лекции

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

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

Экзамен

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

1. Записать ограничения на рандомизацию параметров транзакции в соответствии с требованиями спецификации.

Вариант 1. Спецификация 1
  • Транзакция содержит поля data, addr, strob, mode
  • Ширина данных 32 бита (data)
  • Ширина адреса 32 бита (addr)
  • Для поля Addr используется побайтовая адресация
  • Ширина строба 4 бита (strob), каждый строб отвечает за один байт в data
  • Поле mode имеет четыре значения Чтение, Запись, Ожидание, Ошибка (кодирование выбрать самостоятельно)
  • Поле strob имеет только непрерывное заполнение единицами, т.е. значения 0000, 1010, 1101 и др. недопустимы
  • Поле data принимает значения 0101….01 и 1010….10 с вероятностью 10% каждое, выпадение остальных значений равновероятно
  • Поле addr меньше переменной max_addr и больше min_addr
  • В режиме чтения адрес должен быть выровнен на 2
  • Если значение поля mode равно Запись, то addr выравнен на 4
Вариант 2. Спецификация 2
  • Транзакция содержит поля data, addr, strob, mode, status
  • Ширина данных 128 бита (data)
  • Ширина адреса 32 бита (addr)
  • Ширина строба (strob) равна числу байт в шине данных
  • Поле mode имеет четыре значения Чтение, Запись, Ожидание, Ошибка
  • Поле strob имеет только непрерывное заполнение единицами, т.е. значения 0000, 1010, 1101 и др. недопустимы
  • Поле data принимает значения 0101….01 и 1010….10 с вероятностью 10%
  • Поле data принимает максимальное и минимальное значения с вероятностью 1%
  • Поле addr меньше переменной max_user_addr и меньше максимально возможного MAX_BUS_ADDR

addr должен иметь значения адресующие только по 8 байт, если значение поля mode равно Чтение

  • Заполнение 1 поля strob должно начинаться с бита, номер которого равен значению младших 3-разрядов адреса.
  • Поле статус всегда равно OK, если mode равен Запись, иначе UNDEF
Вариант 3. Спецификация 3
  • Транзакция содержит поля data, addr, strob, mode, status, delay_en, write_delay, read_delay
  • Ширина данных 64 бита (data)
  • Ширина адреса 32 бита(addr)
  • Ширина строба (strob) равна числу байт в шине данных
  • Поле mode имеет четыре значения Чтение, Запись, Ожидание, Ошибка
  • Поле strob имеет только непрерывное заполнение единицами
  • Поле data принимает значения 0101….01 и 1010….10 с вероятностью 5%
  • Поле data принимает максимальное и минимальное значения с вероятностью 1%
  • Поля с именем *delay принимают целые значения большие или равные 0
  • Если значение поля delay_en равно 0, то переменные write_delay, read_dealy равны 0.
  • Значение поля write_delay меньше 10, если dealy_en равен 1
  • Значение поля read_delay меньше 200, если dealy_en равен 1
Вариант 4. Спецификация 4
  • Транзакция содержит поля data, addr, strob, mode
  • Ширина данных 64 бита, поле data - очередь из N данных
  • Ширина адреса 32 бита, поле addr - очередь из N адресов
  • Ширина строба равна числу байт в шине данных, strob - очередь из N стробов
  • Число элементов в очередях адреса, данных и стробов должно совпадать и должно быть не более 16.
  • Поле mode имеет два значения Чтение, Запись
  • Поле strob имеет только непрерывное заполнение единицами, с учетом очереди слов (т.е. Множество единиц в словах составленных друг за другом не должны перемешиваться 0, другими словами все стробы со 2-го и до предпоследнего всегда равны всем 1, если 1-й и последний стробы больше 0)
  • Поле data принимает значения 0101….01 и 1010….10 с вероятностью 25%
  • Поле data принимает максимальное и минимальное значения с вероятностью 6%

2. Задать группу покрытия для сбора функционального покрытия в соответствии с требованиями плана верификации (В конце моделирования вывести процент покрытия ковер-группы).

Вариант 1. Группа покрытия должна покрывать множество тестов представленных массивом строк.
Вариант 2. Группа покрытия должна содержать точку покрытия, в которой покрываются последовательности событий: Проверить что было чтение по адресу 0,1,2,3,4,F после записи по этим же адресам, по-очереди по каждому адресу. Проверить, что во время команды чтения был произведен сброс, затем команда чтения, затем снова сброс.
Вариант 3. Сделать ковер-группу, которая проверяет, что все размеры очереди в режиме чтения и записи транзакции из Спецификации 4 были проверены в тесте.