Вы находитесь на странице: 1из 15

Системное проектирование

В чем заключаются особенности HW/SW деление системы?


● Это одно из самых сложных решений, в основе которого лежит
компромисс стоимость-производительность

Чем характеризуется аппаратная реализация проекта?


● Увеличением производительности, повышением затрат на
проектирование

Чем характеризуется программная реализация проекта?


● Уменьшением стоимости и времени проектирования, снижением
производительности устройства

Какая цель начальной верификации устройства на системном уровне?


● Проверка спецификации устройства и его архитектуры

Какая цель верификации устройства на уровне интеграции?


● Выполнение тестирования интерфейсов между блоками

Какая верификация выполняется при тестировании устройства на уровне


блоков?
● Функциональная верификация отдельных блоков

Какая цель функциональной верификации устройства?


● Проверка функции, крайних ситуации, построение testbench для
выполнения дальнейшей верификации

Какая цель временной верификации устройства?


● Проверка временных параметров, обнаружение и анализ критических
путей схемы

Какая цель вентильной(gate level) верификации устройства?


● Проверка соответствия вентильной схемы, сформированной в
результате синтеза, модели RTL-уровня

Что такое формальная верификация?


● Это математические методы, используемые для верификации
эквивалентности между RTL-кодом и вентильной моделью или между
поведенческой и вентильной моделями.
Какое из описаний соответствует Hard IP?
● Блок описан на физическом уровне, полностью реализован и
верифицирован для одного или нескольких технологических процессов
производства микросхем.

Какое из описаний соответствует Soft IP?


● Блок представлен в виде синтезируемого HDL-кода и может быть
реализован на любой аппаратной платформе

Какая характеристика соответствует IP Core разрабатываемых фирмами,


создающими программное обеспечение для проектирования (EDA
vendors)?
● Разработка IP Core ведется с целью создания завершенного комплекса
программного обеспечения для проектирования цифровых устройств

Направление деятельности fabless компаний?


● Фирма создает собственные IP Core для своих проектов. Акцент
деятельности компании направлен на продажу готовых микросхем, при
этом фирма не имеет собственных заводов по их изготовлению.

Направление деятельности system компаний (System Companies)?


● Направление работы компании – продажа целых цифровых систем.
Имеют собственные SW IP, которые разрабатываются в случае
невозможности их покупки.

Какая характеристика относится к событийному моделированию?


● Обрабатывается каждое событие схемы до достижения в ней
устойчивого состояния. Вычисление нового значения выполняется
только по активному фронту синхросигнала. Все комбинационные
фрагменты заменяются уравнениями и вычисляются за один такт.

Какая характеристика относится к cycle-based моделированию?


● Вычисление нового значения выполняется только по активному фронту
синхросигнала. Все комбинационные фрагменты заменяются
уравнениями и вычисляются за один такт.

Какая характеристика относится к transaction-based моделированию?


● Высокий уровень представления и верификации цифровых устройств, в
котором передача информации между блоками может обрабатываться
как одно событие.
Какая характеристика относится к HW/SW со-моделированию?
● Использование программы отладки software вместе с основанными на
событийном моделировании программами проектирования hardware, для
верификации функционирования системы в целом.

Модели уровня транзакций

Как называется модель, поддерживающая cycle-timed описание


функциональности и коммуникаций?
● RTL -модель

Как называется модель с un-timed детализацией времени для


функциональности и коммуникаций?
● SAM - модель (System Architectural Model)

Какая из TLM-моделей является самой распространенной?


● BFM-модель (Bus Functional Model)

Какое из описаний соответствует языку SystemC?


● Язык, созданный для проектирования SoC–устройств на ESL-уровне.
Является адаптированной для системного проектирования и
стандартизированной версией языка Си++.

Какое из описаний соответствует языку SystemVerilog?


● Язык описания и верификации аппаратуры (HDVL), который является
расширением стандарта IEEE 1364 Verilog-2001.

Типы данных

Какой класс аппаратуры моделирует оператор always_comb в


SystemVerilog?
● Комбинационную схему.

Какой класс аппаратуры моделирует оператор always_ff в SystemVerilog?


● Последовательностное устройство, управляемое фронтом
синхросигнала
Какой класс аппаратуры моделирует оператор always_latch в
SystemVerilog?
● Последовательностное устройство, управляемое уровнем синхросигнала

Какой класс аппаратуры моделирует оператор always_flipflop в Verilog?


● Такого оператора нет в Verilog

Что означает следующее выражение forever #5ns clock = ~clock;


(SystemVerilog)?
● Генерирование синхросигнала clock c периодом 10 ns.

Какое из определений соответствует логическому(logic) типу данных?


● Тип данных, имеющий четыре состояния, который может получать
значения в операторе непрерывного присвоения assign и в процедурных
операторах

Какие из перечисленных типов данных относятся к типам данных с двумя


состояниями?
● bit, byte, shortint, int, longint

Для чего предназначена функция $cast?


● Системная функция преобразования типов данных

Какой номер имеет элемент RED в типе перечисления определенным


следующим образом?
● 0

Из каких меток состоит следующий тип перечисления?


● RESET, S0, S1, S2, S3, S4, W6, W7, W8, W9

Какой тип данных по умолчанию используется для хранения индексов


меток типа перечисления?
● int

Какая ошибка содержится в следующем выражении?


● Тип logic позволяет индексировать только две метки

Определена структура
Что означает следующее выражение?
● Запрещенная конструкция
● Все поля структуры IW будут установлены в 0
Что такое упакованная структура?
● Упакованные структуры хранятся как непрерывное множество битов без
дополнительного неиспользуемого пространства.

Что означает выражение?


● Структура pixel_p_s является упакованной

Что означает данное выражение?


● Упакованная структура packed_in сдвигается на два разряда влево и
присваивается структуре packed_out.

Какие ограничения существуют при определении упакованных


объединений?
● Все элементы объединения должны иметь одинаковую длину в битах

Типы данных (Массивы)

Что означает данное выражение?


● Неупакованный массив из 1024 одноразрядных слов
● Массив из 256 8-разрядных векторов
● Неупакованный массив вещественных чисел из 1024 элементов
● Трехмерный неупакованный массив из целых чисел
● Двумерный массив с индексацией от 0 до 7, от 0 до 3
● Декларацию двух динамических массивов
● Декларацию и инициализацию очереди
● Ассоциативный массив assoc для 64 разрядных слов и 64разрядный
вектор idx

Что такое упакованный массив?


● Непрерывная последовательности битов, которая не имеет
неиспользуемых пространств

Что такое неупакованный массив?


● Массив, каждый элемент которого сохраняется в виде слова, размером
32-битов
Что означает следующее выражение?
● Создание и инициализация неупакованного массива из элементов int
● Создание и инициализация двумерного неупакованного массива из
элементов int
● Создание двумерного упакованного массива из элементов bit размером
4x8
● Массив из трех упакованных массивов размером 4 на 8

Какое из определений может быть применено к динамическим массивам?


● Массивы, которые декларируются без указания их длины с пустыми
скобками []. Для выделения памяти под массив используется оператор
new[].

Что такое очередь?


● Массивы, размер которые может быть увеличен или уменьшен в
процессе работы с ним. Допускается добавлять или удалять элементы с
начала, конца и середины массива.

Что такое ассоциативный массив?


● Список, сохраняющий значение и индекс каждого элемента.
Используется для хранения больших разреженных массивов.

SystemVerilog3
Какую ошибку содержит следующее выражение?
● Блок always_comb не имеет списка чувствительности.
● Оператор управляется фронтом сигнала и требует указывать фронт в
списке чувствительности

Что такое программа?


● Оболочка, которая используется для описания тестовых конструкций в
SystemVerilog

Какое из определений соответствует семафору?


● Семафоры позволяют контролировать доступ к общим ресурсам

Для чего используются mailbox?


● Используется для передачи информации между процессами.
Среда верификации

Какие объекты в TestBench относятся к уровню сигналов?


● DUT

Какие объекты в TestBench относятся к уровню команд?


● Driver, Assertion, Monitor

Какие объекты в TestBench относятся к функциональному уровню?


● Agent, Scoreboard, Checker

Какие объекты в TestBench относятся к уровню сценария?


● Generator

Интерфейсы

Какое из выражений не может быть применено к описанию интерфейса?


● В интерфейсе нельзя использовать оператор always

Какое из выражений не может быть применено к описанию интерфейса?


● Интерфейс может содержать операторы реализации модулей

Какое отличие между интерфейсом и модулем является неверным?


● Интерфейс не может содержать процедурные блоки initial, always и final,
модуль может

С помощью, каких операторов сигналы интерфейса должны получать


значения?
● Неблокирующих

Какое из определений нельзя применить к конструкции modport?


● В конструкции modport при описании порта указывается его направление,
тип данных и разрядность.

Каким образом можно указывать используемый режим modport?


● Либо в декларации портов модуля, либо в операторе реализации
модуля, но не в обоих местах одновременно
Ассерции, последовательности, свойства

Какое определение соответствует последовательности?


● Это упорядоченная совокупность булевых выражений, которая включают
нулевое, конечное или бесконечное множество линейных
последовательностей

Какое определение соответствует свойству?


● Позволяют задавать проверку поведения системы.

Когда считываются значения переменных для анализа в параллельных


ассерциях?
● По событию синхросигнала

Что описывает следующий код?


● Свойство, управляется передним фронтом синхросигнала. Проверяет,
что после последовательности "a=истина и на следующем такте
b=истина", должна следовать последовательность "с=истина и на
следующем такте d=истина". Проверка второй последовательности
выполняется, только если первая последовательность возвращает
значение истина, иначе все свойство имеет значение истина.
● Последовательность, синхронизируется передним фронтом clk1.
Возвращает значение истина, если последовательность "а "имеет
значение "истина" на первом синхротакте, а "b" - на следующем.
● Параллельная ассерция управляемая свойством master_prop
● Свойство. Возвращает значение истина, если req=0 на первом
синхротакте; gnt=0 на втором синхротакте; младший бит gnt
переключится в 1 на третьем синхротакте
● Прямая ассерция, проверяет, что переменная bus.cb.grant = 01, иначе
формируется сообщение об ошибке

Ассерции, последовательности, свойстваю Ч 2

Какое из выражений не может быть использовано при определении


последовательности (sequence)?
● a |=>b

Какое из выражений не может быть использовано при определении


последовательности (sequence)?
● a |->b
Какое выражение соответствует данной последовательности?
● a ##1 b ##1 b ##1 b ##1 c
● a ##1 ((!b [*0:$] ##1 b) [*2:10]) ##1 !b[*0:$] ##1 c
● a ##1 ((!b[*0:$] ##1 b) [*2:10]) ##1 c

Функциональное покрытие

Какое из определений не подходит к описанию покрытия коде (code


coverage)?
● Использует пользовательскую метрику, определяющую, какая часть
спецификации проекта, указанная в плане тестирования, была
проверена.

Какое из определений не подходит к описанию покрытия кода (code


coverage)?
● Собирает информацию о покрытии переменных и выражений, а также о
перекрестном покрытии значений между ними.

Какое из определений не подходит к описанию функционального


покрытия (functional coverage)?
● Оценивает полноту тестирования с точки зрения проверки операторов,
описывающих модель устройства. Выполняет автоматическое или
пользовательское создание корзин покрытия

Какое из определений не подходит к описанию функционального


покрытия (functional coverage)?
● Точки покрытия автоматически формируется на основе кода проекта

Какое из определений не подходит к описанию функционального


покрытия (functional coverage)?
● Точки покрытия автоматически формируется на основе кода проекта

Сколько корзин будет автоматически создано в следующей группе


покрытия?
● 3
● 4
● 10
● 8
● 16
● 8
Сколько корзин будет автоматически создано для перекресного покрытия
переменных kind и port?
● 32

Сколько корзин будет автоматически создано для перекресного покрытия


переменных color и pixel_adr?
● 48
● 192

Сколько корзин может будет создано для покрытия переменной tr.kind?


● 11

В какую корзину попадет значение переменной tr.kind равное 9?


● hi_9

В какую корзину попадет значение переменной tr.kind равное 1?


● lo

Сколько корзин может будет создано для покрытия переменной v_a?


● 6

Что означает следующее выражение?


● Группу покрытия, собирающий информацию о значениях
последовательно принимаемых сигналом port. Анализируемые
последовательности – после нуля, порт переключается в 1, 2 или 3

Сколько корзин будет создано в следующей группе покрытия?


● 24

Что такое auto_bin_max?


● Опция, определяющая максимальное количество создаваемых
автоматически корзин для точки покрытия или группы покрытия

Для чего используется функция sample вместе с экземпляром


covergroup?
● Выполняет сбор информации для точек покрытия группы покрытия.
Генерация псевдослучайных значений
Какое из определений нельзя использовать с модификатором rand?
● Генерирует псевдослучайную последовательность данных, значения в
которой не будут повторять, пока не будут перебраны все возможные
значения заданного для поля класса типа данных

Какое из определений нельзя использовать с модификатором randc?


● Генерирует псевдослучайную последовательность данных,
произвольным образом

Какие вероятности появления значений для переменной src?


● 0 - 40/220; 1 - 60/220; 2 - 60/220; 3 - 60/220

Какие вероятности появления значений для переменной dst?


● 0 - 40/100; 1 - 20/100; 2 - 20/100; 3 - 20/100

Какие из значений не допустимы для переменных b,c и d?


● b= 27; с = 27; d = 26

Какая комбинация значений не допустима для переменных x и y?


● x=0; y=1

Какая комбинация значений не допустима для переменных x и y?


● x=0; y=0

Какие значения не могут принимать поля класса Stim?


● type = READ; congestion_test = 1; len = 1; src = 1; dst = 1

Какие значения не могут принимать поля класса Stim?


● type = READ; congestion_test = 0; len = 1; src = 1; dst = 1

Какие значения не могут принимать поля класса Stim?


● type = READ; congestion_test = 1; len = 1; src = 10; dst = 1000

UVM
Какие из следующих UVM-объектов формируются один раз в начале моделирования?
● квазистатическим
● river, monitor, scoreboard, sequencer, agent, environment.
Какие из UVM-объектов относят к динамическим?
● транзакции и sequence

Какой объект управляет последовательностью sequence в UVM?


● Sequence

Какой UVM блок может считывать значение сигналов DUT и подавать тестовые наборы?
● Sequencer

Какой UVM блок коллекционирует транзакции?


● Sequence Item

Какой UVM блок является оболочкой для секвенсера, драйвера и монитора”?


● тест?

Какие из блоков могут присутствовать в пассивном агенте?


● транзакции события

Каким образом выполняется конфигурация наследников класса uvm_object, для


поддержки методов, предлагаемых базовым классом?
● Factory
● Config db(Configuration)

Каким образом выполняется конфигурация наследников класса uvm_component, для


поддержки методов, предлагаемых базовым классом?
● В отличие от объекта, метод new класса компонента вторым аргументом
получает ссылку на компонент родителя.

Тема UVM TLM


Какие порты предлагает TLM-интерфейс в UVM?
Какой тип должен иметь порт в классе, реализующем фукнцию передачи?
put
Какой порт позволяет выполнять передачу транзакций на несколько компонентов одновременно?

port-to-export

port-to-port

export-to-export

Какой тип портов использует функцию put для передачи транзакции?


Какой тип портов использует функцию get для получения транзакции?
Какие интерфейсы относятся к однонаправленным?
put get
Какие интерфейсы относятся к двунаправленным?
Какой из интерфейсов позволяет разорвать синхронизации между producer и consumer, что дает им
возможность работать независимо?
Analysis

Блокирующие Неблокирующие Описание

put try_put, can_put Посылает транзакцию


другого компонента

get try_get, can_get Получает новую транзакцию


от другого компонента

peek try_peek, can_peek Читает копию транзакции,


не забирая ее

transport no_transport Посылает запрос


транзакции и возвращает
ответ транзакции в одном
вызове задачи

Тема Интерфейсные UVС


Какие UVM-классы участвуют в формировании и подаче тестовых последовательностей?
Для реализации процесса генерирования тестовых данных в UVM определены следующие классы:
1. Sequence item. (Данные, представляющие транзакцию)
2. Sequence (Последовательность транзакций)
3. Sequencer (Управляет последовательностью или последовательностями, запускает
генерирование данных)
Driver (Получает данные от секвенсора и передает их в DUT)

Какие существуют разновидности агентов ?


Для каких блоков агент служит оболочкой?

Какой класс описывает транзакцию?


apb_transfer
Sequence item

Какой/ие классы передают тестовые наборы в DUT?


apb_transfer

Через какой механизм драйвер подключается к DUT?


виртуальный интерфейс для подключения к DUT

Какой класс определяет порядок формирования последовательностей?


ЧТО ТАКОЕ ДРАЙВЕР

Какой класс выполняет генерирование последовательностей?


хз

Какие порты используются для передачи данных между секвесором и драйвером?


Драйвер и секвенсор соединяются через ​tlm-​порты, при этом порт ​seq_item_port ​ драйвера
подключается к порту ​seq_item_export ​секвенсора. Компонент, который будет содержать драйвер и
секвенсор должен реализовывать соединение между портами компонентов.
Какие классы непосредственно составляют среду верификации в UVM?
pb_env extends uvm_env;