Комбинационные 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Каждый адрес выбирает определённую константу, при этом предыдущее выходное значение не сохраняется.
Укажите каждую запись таблицы и различайте задержку чтения для комбинационного поиска и зарегистрированную задержку чтения.
Задание
СреднеРеализуйте комбинационную таблицу поиска с восемью записями. Адреса от 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В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Проектирование и верификация RTL
1Надёжная комбинационная RTL-логика
Значения по умолчанию предотвращают защёлкиПриоритетные кодировщикиПроверка One-HotБезопасное декодирование caseПовторение — маршрутизатор запросов4Управляемая последовательная RTL-логика
Приоритет сброса и разрешенияСчётчики с насыщениемКонвейеризация данных и validОбнаружение дискретизированных фронтовПовторение — счётчик событий2Разрядности и знаковая арифметика
Сохранение битов переносаСравнения знаковых чиселАрифметические сдвиги вправоПереполнение и насыщениеПовторение — знаковая разность5Память и таблицы поиска
Комбинационные ROM-таблицыХранилище на массиве регистровПорты чтения с регистрациейПересылка при чтении и записиПовторение — банк с двумя портами чтенияПотренируйтесь самостоятельно: Онлайн-компилятор Verilog