Menu
Coddy logo textTech

Комбинационные функции

Часть раздела Проектирование и верификация RTL путешествия по Verilog на Coddy. Урок 11 из 38.

Функция Verilog function упаковывает вычисление, выполняющееся за нулевое время, для повторного использования внутри модуля. Объявите разрядность возвращаемого значения, входные аргументы и локальные переменные, затем с помощью assign присвойте результат имени function. Комбинационные функции не содержат задержек или элементов управления событиями; цикл с фиксированными границами может описывать повторяющуюся логику.

Соответствующий фрагмент; окружающие объявления и соединения предоставлены в задании.

function [7:0] gray;
    input [7:0] value;
    begin gray = value ^ (value >> 1); end
endfunction

Вызов function вычисляет выражение, не добавляя времени моделирования.

Присваивайте результат function на каждом пути и не используйте элементы управления временем в комбинационных функциях.

challenge icon

Задание

Средне

Реализуйте функцию Verilog function gray, которая преобразует беззнаковое 8-битное двоичное значение в код Грея, используя XOR значения со значением, сдвинутым вправо на один разряд. Управляйте y, вызывая function с a. Столбцы вывода: y. Все значения стимулов являются известными двоичными значениями.

Завершите design.v и сохраните имена его модулей и порты. Заблокированный testbench.v задаёт изменения входных данных и выводит результаты после их стабилизации. Он выбирает сценарий с помощью аргумента симулятора, например +CASE=1; стандартный ввод не требуется. Не добавляйте в design вывод, задержки или завершение симуляции. Ожидаемый вывод — одна строка десятичных значений для каждого наблюдения, разделённых одним пробелом и заканчивающихся переводом строки.

Попробуйте сами

module dut (input [7:0] a, output [7:0] y);
    // Замените этот заполнитель своим дизайном.
    assign y = 0;
endmodule
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Проектирование и верификация RTL

Потренируйтесь самостоятельно: Онлайн-компилятор Verilog