10 вопросов для интервью Verilog (с примерами)

Verilog — это компьютерный язык описания оборудования, используемый для описания электронных систем и схем. Он был изобретен в 1980-х годах и с тех пор является одним из самых популярных языков описания. Если вы готовитесь к собеседованию на должность, использующую язык Verilog, вам необходимо ознакомиться с некоторыми из наиболее часто задаваемых вопросов на собеседовании в Verilog. В этой статье мы рассмотрим 10 вопросов Verilog, основанных на знаниях, и примеры успешных ответов.

10 вопросов Verilog, часто задаваемых на собеседовании (с примерами ответов)

Прежде чем встретиться с менеджером по найму или работодателем для собеседования, важно потратить некоторое время на отработку ответов на распространенные вопросы интервью. Вот 10 распространенных вопросов для интервью Verilog с примерами ответов:

1. В чем разница между блокировкой и неблокировкой?

Пример: «Verilog имеет два типа процедурных операторов присваивания, блокирующий и неблокирующий. Оба идентифицируются с помощью операторов присваивания, представленных символами = и <=. Блокирующий оператор присваивания ведет себя аналогично старым языкам программирования. оператор завершается сразу, прежде чем управление переходит к следующему оператору. Однако неблокирующий оператор оценивает все правые части для текущей единицы времени и назначает левые части позже по завершении единицы времени».

2. Объясните полный случай Verilog и параллельный случай.

Пример: «Полные операторы case — это операторы, в которых каждый двоичный шаблон потенциального case-выражения может сопоставляться либо с элементом case, либо со значением по умолчанию. бинарное выражение case, которое не соответствует ни одному из определенных элементов case, оператор case не будет считаться полным.

Параллельный оператор case — это оператор, в котором можно сопоставить только выражение case, только один элемент case. Если вы можете найти выражение case, которое подходит более чем к одному элементу case, совпадающие элементы case называются «перекрывающимися элементами case», и оператор case не будет параллельным».

3. В чем разница между задачей и функцией?

Пример: «Функция не может активировать задачу, но функции могут активировать другие функции, внутри функций не допускаются никакие события, операторы управления временем или задержки, и в каждой функции всегда должен быть как минимум один аргумент. Кроме того, функции могут дают только одно значение и не могут использовать операторы ввода или вывода. Кроме того, задачи могут включать функцию и включать дополнительные версии определенной задачи. Задачи могут содержать любые операторы и могут использовать ноль или более аргументов, включая вывод, ввод или Вход.”

4. Что такое ПЛИ?

Пример: «Интерфейс языка программирования, или PLI, представляет собой механизм, который позволяет взаимодействовать между программами Verilog и программами, написанными на языке C. Он также обеспечивает механизм доступа к внутренним базам данных симулятора в программе C. Пользователи используют PLI для реализации системы. вызовы, которые сложны, а иногда и невозможны при использовании синтаксиса Verilog. Использование PLI позволяет вам использовать преимущества как параллельных, так и аппаратных функций Verilog, а также последовательного выполнения программы на языке C».

5. В чем разница между == и ===?

Пример: «Вывод == может быть либо 1, 0, либо X. Однако вывод === может быть только 0 или 1. Если вы сравниваете два номера с помощью == и если один или оба числа имеют один или более битов как X, то вывод будет X. Но, если вы использовали ===, вывод будет 0 или 1. == можно использовать только для сравнения 1 и 0, так как он не может сравнивать X. Чтобы сравнить X, вам нужно будет включить ===».

6. Что такое $monitor, $display и $strobe?

Пример: «Все эти команды имеют схожий синтаксис и отображают текст на экране во время моделирования. Как правило, они менее удобны в использовании, чем инструменты формирования сигналов, такие как cwaves. $display и $strobe появляются один раз при каждом их выполнении. , но $monitor отображается каждый раз, когда вы изменяете один из параметров.”

Ключевое различие между $display и $strobe заключается в том, что $strobe отображает параметры в конце текущей единицы времени симуляции, а не в момент ее выполнения. Последовательность форматирования похожа на C/C++ и иногда содержит символы форматирования. Обычно используемые символы формата включают «%d» для десятичного, «%h» для шестнадцатеричного, «%b» для двоичного, «%c» для символа, «%s» для строки, «%t» для времени и «%». m” для уровня иерархии.

7. Как бы вы выполнили блокирующие и неблокирующие операторы?

Пример: «Чтобы выполнить блокирующие присваивания, вы обычно должны выполнить простой процесс, состоящий из оценки уравнения правой части и обновления выражения левой части без вмешательства другого оператора Verilog. Функция блокирующего присваивания состоит в том, чтобы блокировать замыкающие присваивания. до тех пор, пока не завершится текущее присваивание.И наоборот, процесс выполнения неблокирующих присваиваний включает два шага: оценить правую часть всех неблокирующих операторов в начале временного шага и обновить левую часть все неблокирующие операторы в конце временного шага».

8. Объясните транспортную задержку и инерционную задержку.

Пример: «Задержка передачи — это задержка, вызванная проводами, соединяющими ворота. Провода задерживают сигнал, который они передают, из-за сопротивления провода, индуктивности и капитана. Задержка передачи — это в основном задержка распространения по проводу. В Verilog задержка передачи моделируется следующим образом: a <= #10 b. Инерционная задержка — это время, которое требуется вентилю для изменения своего выхода. В Verilog инерционная задержка моделируется следующим образом: присвоить #10 a = b;.

9. Каковы основные различия между Verilog и VDHL?

Пример: «Verilog синтаксически похож на язык программирования типа C, в то время как VHDL больше похож на язык ADA. Verilog легко выучить и просто написать, но VHDL требует больше времени для изучения и требует более сложного написанного кода. Verilog также поддерживает логическое представление более низкого уровня, а VHDL — нет».

10. К чему относятся термины wire и reg?

Пример: «Провод — это физическое соединение между структурными элементами, которые необходимы для функционирования Verilog. Его значение обозначается непрерывным назначением или выходом логического элемента. Тип регистра, также называемый reg, integer, time, real и real-time, представляет собой абстрактный элемент хранения данных, ему присваиваются значения только в рамках оператора always или начального оператора.

Основное различие между wire и reg заключается в том, что wire не может хранить значение, если нет связи между a и b. Без такого соединения, как a->b, провод теряет ценность. Однако reg может хранить значение, даже если физического соединения нет. Значения wire и reg по умолчанию — Z и X соответственно».

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *