«…лишь недалекие люди боятся конкуренции, а люди подлинного творчества ценят общение с каждым талантом…» А. Бек, Талант.

Спец курс (Верификация цифровых схем)/Экзамен(Билеты)

Материал из Wiki
< Спец курс (Верификация цифровых схем)
Версия от 14:27, 7 января 2017; Vidokq (обсуждение | вклад)

Это снимок страницы. Он включает старые, но не удалённые версии шаблонов и изображений.
Перейти к: навигация, поиск
Лекции ВЦС

Лекции

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

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

Экзамен
  • Экзамен(Билеты)

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

Содержание

Билет №1

  1. Какие операторы в SystemVerilog используются для организации циклов?
  2. Перечислите типы UVM компонент используемых в uvm_agent
  3. Описать класс, в котором создать очередь целых чисел случайной длинны. Реализовать функцию заполнения первых 5 элементов значениями от 1 до 20 причем, остальных случайным образом.
  4. Создать транзакцию содержащую два поля data, addr ширины 32 бита. Поле addr меньше переменной max_addr и больше min_addr. Если значение поля addr равно 0, то data равен 32'h0000FFFF

Билет №2

  1. Какие виды ограничений(constraint) доступны в SystemVerilog?
  2. Для чего может применяется оператор $cast?
  3. Создать транзакцию, cодержащую два поля dir, data. Поля dir и data однобитные и могут принимать случайные значения. Запустить генерацию транзакции 10 раз.
  4. Задать группу покрытия для сбора функционального покрытия последовательности значений поля data транзакции из задания 3. Должны проверятся покрытия последовательностей из 2,4,6,8 единиц для поля data.

Билет №3

  1. Какие типы данных доступны в SystemVerilog?
  2. Какие встроенные методы можно использовать для ассоциативных массивов в языке SystemVerilog?
  3. Параметризовать тест строковым аргументом командной строки +S1 и создать класс получающий этот аргумент и содержащий функцию печати полученного аргумента и значения по умолчанию. Запустить моделирование с параметром и без параметра.

Билет №4

  1. Классы в SystemVerilog?
  2. Какие встроенные методы можно использовать для работы с динамическими массивами в языке SystemVerilog?

Билет №5

  1. Операторы запуска параллельного выполнения в SystemVerilog?
  2. Какие встроенные методы можно использовать для очереди в языке SystemVerilog?

Билет №6

  1. Интерфейс в SystemVerilog?
  2. Возможно ли в SystemVerilog отключать режим рандомизации для отдельных переменных? Если да, то как.

Билет №7

  1. Что такое группы покрытия в SystemVerilog? Для чего они используются и как описываются.
  2. Опишите бесконечный цикл используя оператор for
  3. Создайте два процесса, печатающие два разных сообщения с разным интервалом времени, и запустите их на выполнение в параллель.

Билет №8

  1. Понятие транзакции в UVM методологии верификации?
  2. В каких случаях допускается использование функций в ограничениях?

Билет №9

  1. Какие виды массивов реализованы в SystemVerilog?
  2. Какие операторы позволяют запустить процессы в параллель, опишите их особенности.

Билет №10

  1. Чем отличается ассоциативные массивы от динамических?
  2. Какие UVM компоненты используемые в uvm_agent не содержат предопределенного порта?

Билет №11

  1. Использование функций и циклов в ограничениях.
  2. Какие операторы используются для назначения события?

Билет №12

  1. Задание списка чувствительности и событий для проверки групп покрытия
  2. Какие операторы используются для мониторинга событий?

Билет №13

  1. Как реализуется проверка последовательности событий в группе покрытия
  2. Допускается ли наследование классов в языке SystemVerilog? Если да, то какие типы наследования допускаются, если нет то почему.

Билет №14

  1. В чем отличие при использовании оператора if и оператора импликации при задании ограничений.
  2. Чем отличается push-сиквенсер (класс uvm_push_sequenser) от обычного сиквенсера (класса uvm_sequencer)?
  3. Объявить класс, содержащий 3 переменные A, minAi, maxAi. A-массив целых чисел, minAi - минимальное значение, maxAi - максимальное значение в массиве, создать методы класса возвращающие максимальное и минимальное значение в массиве. А также методы вывода значений всех переменных в консоль, функция должна быть виртуальной. Массив заполнить 10 случайными значениями. Создать объект класса и вывести значения переменных в консоль.

Билет №15

  1. Какие типы данных могут быть использованы для создания упакованных массивов?
  2. Опишите механизм обмена транзакциями между драйвером и сиквенсером. Какие порты для этого используются.
  3. Создать два класса содержащие функции вывода сообщения и поместить их в пакет. В top модуле подключить пакет и вызвать методы печати сообщения из каждого класса.

Билет №16

  1. Какой из встроенных методов нужно вызвать, чтобы преобразовать строку string str = "def0" в число типа integer?
  2. Создать очередь массивов фиксированной длины, каждый из которых содержит два элемента. Элементы будут задавать нижнюю и верхнюю границы диапазона значений. Реализовать функцию проверки того, что заданные диапазоны во всех элементах очереди не пересекаются между собой.