Повторение — банк с двумя портами чтения
Часть раздела Проектирование и верификация RTL путешествия по Verilog на Coddy. Урок 25 из 38.
Задание
СреднеРеализуйте четыре 8-битных слова с одной синхронной записью и двумя зарегистрированными выходами чтения старых данных qa и qb. we выполняет запись по адресу waddr. Синхронный rst очищает только qa и qb. В противном случае re разрешает оба чтения по адресам raddr_a и raddr_b; при отключённых чтениях сохраняются предыдущие значения. Записи на том же фронте тактового сигнала не изменяют старые значения, захваченные этими операциями чтения. Перед чтением тесты инициализируют слова. Столбцы вывода: qa, qb. Все управляющие сигналы и данные стабильны перед каждым возрастающим фронтом тактового сигнала; результаты считываются после него.
Завершите design.v и сохраните имена его модулей и портов. Заблокированный testbench.v подаёт изменения входных сигналов и выводит результаты после их стабилизации. Он выбирает сценарий с помощью аргумента симулятора, например +CASE=1; стандартный ввод не требуется. Не добавляйте в design вывод, задержки или завершение симуляции. Ожидаемый вывод — одна строка десятичных значений для каждого наблюдения, разделённых одним пробелом и завершающихся переводом строки.
Попробуйте сами
module dut (input clk, input rst, input we, input re, input [1:0] waddr, input [1:0] raddr_a, input [1:0] raddr_b, input [7:0] data, output reg [7:0] qa, output reg [7:0] qb);
// Замените этот заполнитель на ваш дизайн.
initial qa = 0;
initial qb = 0;
endmoduleВсе уроки раздела Проектирование и верификация RTL
1Надёжная комбинационная RTL-логика
Значения по умолчанию предотвращают защёлкиПриоритетные кодировщикиПроверка One-HotБезопасное декодирование caseПовторение — маршрутизатор запросов4Управляемая последовательная RTL-логика
Приоритет сброса и разрешенияСчётчики с насыщениемКонвейеризация данных и validОбнаружение дискретизированных фронтовПовторение — счётчик событий2Разрядности и знаковая арифметика
Сохранение битов переносаСравнения знаковых чиселАрифметические сдвиги вправоПереполнение и насыщениеПовторение — знаковая разность5Память и таблицы поиска
Комбинационные ROM-таблицыХранилище на массиве регистровПорты чтения с регистрациейПересылка при чтении и записиПовторение — банк с двумя портами чтенияПотренируйтесь самостоятельно: Онлайн-компилятор Verilog