Спец курс (Верификация цифровых схем)/Экзамен(Билеты) — различия между версиями
Материал из Wiki
Vidokq (обсуждение | вклад) (→Билет №5) |
Vidokq (обсуждение | вклад) (→Билет №6) |
||
Строка 37: | Строка 37: | ||
# Интерфейс в SystemVerilog? | # Интерфейс в SystemVerilog? | ||
# Возможно ли в SystemVerilog отключать режим рандомизации для отдельных переменных? Если да, то как. | # Возможно ли в SystemVerilog отключать режим рандомизации для отдельных переменных? Если да, то как. | ||
− | # | + | # Описать генератор тактового сигнала используя оператор цикла while. |
# | # | ||
Версия 14:33, 7 января 2017
Лекции ВЦС
Лекции
Практические задания
Тесты
Табель успеваемости
Экзамен
- Экзаменационные билеты
Доп. материалы
Содержание |
Билет №1
- Какие операторы в SystemVerilog используются для организации циклов?
- Перечислите типы UVM компонент используемых в uvm_agent
- Описать класс, в котором создать очередь целых чисел случайной длинны. Реализовать функцию заполнения первых 5 элементов значениями от 1 до 20 причем, остальных случайным образом.
- Создать транзакцию содержащую два поля data, addr ширины 32 бита. Поле addr меньше переменной max_addr и больше min_addr. Если значение поля addr равно 0, то data равен 32'h0000FFFF
Билет №2
- Какие виды ограничений(constraint) доступны в SystemVerilog?
- Для чего может применяется оператор $cast?
- Создать транзакцию, cодержащую два поля dir, data. Поля dir и data однобитные и могут принимать случайные значения. Запустить генерацию транзакции 10 раз.
- Задать группу покрытия для сбора функционального покрытия последовательности значений поля data транзакции из задания 3. Должны проверятся покрытия последовательностей из 2,4,6,8 единиц для поля data.
Билет №3
- Какие типы данных доступны в SystemVerilog?
- Какие встроенные методы можно использовать для ассоциативных массивов в языке SystemVerilog?
- Параметризовать тест строковым аргументом командной строки +S1 и создать класс получающий этот аргумент и содержащий функцию печати полученного аргумента и значения по умолчанию. Запустить моделирование с параметром и без параметра.
Билет №4
- Классы в SystemVerilog?
- Какие встроенные методы можно использовать для работы с динамическими массивами в языке SystemVerilog?
- Записать ограничения на рандомизацию параметров транзакции в соответствии с требованиями спецификации:
- Транзакция содержит поля data, addr, mode
- Ширина данных 32 бита (data)
- Ширина адреса 32 бита (addr)
- Поле mode имеет четыре значения Чтение, Запись, Ожидание, Ошибка (кодирование выбрать самостоятельно)
- Поле addr меньше переменной max_addr и больше min_addr
- В режиме Чтение адрес должен быть выровнен на 2 если значение поля mode равно Запись, то addr выравнен на 4
Билет №5
- Операторы запуска параллельного выполнения в SystemVerilog?
- Какие встроенные методы можно использовать для очереди в языке SystemVerilog?
- Создать тип данных структура, содержащую 4 различных поля. Поля должны иметь тип целочисленный, строковый, бит-вектор. Создать две переменные полученного типа. Проинвертировать все битовые поля в первой переменной. Значение всех полей первой и второй переменных типа структуры вывести в консоль.
Билет №6
- Интерфейс в SystemVerilog?
- Возможно ли в SystemVerilog отключать режим рандомизации для отдельных переменных? Если да, то как.
- Описать генератор тактового сигнала используя оператор цикла while.
Билет №7
- Что такое группы покрытия в SystemVerilog? Для чего они используются и как описываются.
- Опишите бесконечный цикл используя оператор for
- Создайте два процесса, печатающие два разных сообщения с разным интервалом времени, и запустите их на выполнение в параллель.
Билет №8
- Понятие транзакции в UVM методологии верификации?
- В каких случаях допускается использование функций в ограничениях?
Билет №9
- Какие виды массивов реализованы в SystemVerilog?
- Какие операторы позволяют запустить процессы в параллель, опишите их особенности.
Билет №10
- Чем отличается ассоциативные массивы от динамических?
- Какие UVM компоненты используемые в uvm_agent не содержат предопределенного порта?
Билет №11
- Использование функций и циклов в ограничениях.
- Какие операторы используются для назначения события?
Билет №12
- Задание списка чувствительности и событий для проверки групп покрытия
- Какие операторы используются для мониторинга событий?
Билет №13
- Как реализуется проверка последовательности событий в группе покрытия
- Допускается ли наследование классов в языке SystemVerilog? Если да, то какие типы наследования допускаются, если нет то почему.
Билет №14
- В чем отличие при использовании оператора if и оператора импликации при задании ограничений.
- Чем отличается push-сиквенсер (класс uvm_push_sequenser) от обычного сиквенсера (класса uvm_sequencer)?
- Объявить класс, содержащий 3 переменные A, minAi, maxAi. A-массив целых чисел, minAi - минимальное значение, maxAi - максимальное значение в массиве, создать методы класса возвращающие максимальное и минимальное значение в массиве. А также методы вывода значений всех переменных в консоль, функция должна быть виртуальной. Массив заполнить 10 случайными значениями. Создать объект класса и вывести значения переменных в консоль.
Билет №15
- Какие типы данных могут быть использованы для создания упакованных массивов?
- Опишите механизм обмена транзакциями между драйвером и сиквенсером. Какие порты для этого используются.
- Создать два класса содержащие функции вывода сообщения и поместить их в пакет. В top модуле подключить пакет и вызвать методы печати сообщения из каждого класса.
- Подготовить транзакцию, содержащую поля адреса и данных. Для адреса задан запрещенный диапазон значений, для данных - список запрещенных значений.
Билет №16
- Какой из встроенных методов нужно вызвать, чтобы преобразовать строку string str = "def0" в число типа integer?
- Создать очередь массивов фиксированной длины, каждый из которых содержит два элемента. Элементы будут задавать нижнюю и верхнюю границы диапазона значений. Реализовать функцию проверки того, что заданные диапазоны во всех элементах очереди не пересекаются между собой.