Menu
Coddy logo textTech

Комбинационные ROM-таблицы

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

Фиксированная таблица поиска описывает доступное только для чтения отображение адреса в данные. Полный блок case или function может задавать содержимое. При комбинационном чтении изменение адреса изменяет выходной сигнал без ожидания тактового сигнала. Инструмент синтеза выбирает реализацию; этот исходный код не гарантирует использование конкретного примитива памяти FPGA.

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

function [7:0] lookup;
    input [1:0] addr;
    begin
        case(addr)
            0: lookup=3;
            1: lookup=5;
            2: lookup=8;
            3: lookup=13;
            default: lookup=0;
        endcase
    end
endfunction

Каждый адрес выбирает определённую константу, при этом предыдущее выходное значение не сохраняется.

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

challenge icon

Задание

Средне

Реализуйте комбинационную таблицу поиска с восемью записями. Адреса от 0 до 7 должны возвращать соответственно 3,5,8,13,21,34,55,89. Используйте полную case-функцию на основе function для управления y. Столбцы выходных данных: y. Все значения стимулов являются известными двоичными значениями.

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

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

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

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

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

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