Kombinacyjne tablice ROM
Część sekcji Projektowanie RTL i weryfikacja ścieżki Verilog w Coddy. Lekcja 21 z 38.
Stała tablica wyszukiwania opisuje mapowanie adresu na dane tylko do odczytu. Pełna instrukcja case lub function może wyrazić jej zawartość. Przy odczycie kombinacyjnym zmiana adresu zmienia wyjście bez oczekiwania na sygnał zegarowy. Narzędzie syntezy wybiera implementację; ten kod źródłowy nie gwarantuje użycia konkretnego prymitywu pamięci FPGA.
Odpowiedni fragment; otaczające deklaracje i połączenia są podane w wyzwaniu.
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
endfunctionKażdy adres wybiera zdefiniowaną stałą, a poprzednie wyjście nie jest zachowywane.
Określ każdy wpis tabeli i rozróżnij kombinacyjne wyszukiwanie od opóźnienia odczytu z rejestrem.
Wyzwanie
ŚredniZaimplementuj kombinacyjną tablicę wyszukiwania z ośmioma wpisami. Adresy od 0 do 7 zwracają odpowiednio 3,5,8,13,21,34,55,89. Użyj kompletnej case-owej function, aby sterować sygnałem y. Kolumny wyjściowe: y. Wszystkie wartości wymuszeń są znanymi wartościami binarnymi.
Uzupełnij design.v i zachowaj nazwy modułów oraz porty. Zablokowany testbench.v dostarcza zmiany wejść i wyświetla wyjścia po ich ustaleniu. Wybiera scenariusz za pomocą argumentu symulatora, takiego jak +CASE=1; standardowe wejście nie jest wymagane. Nie dodawaj do projektu wyświetlania, opóźnień ani kończenia symulacji. Oczekiwane wyjście to jeden wiersz wartości dziesiętnych dla każdej obserwacji, rozdzielonych pojedynczą spacją i zakończony znakiem nowej linii.
Spróbuj swoich sił
module dut (input [2:0] addr, output [7:0] y);
// Zastąp ten symbol zastępczy swoim projektem.
assign y = 0;
endmoduleTa lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Projektowanie RTL i weryfikacja
1Niezawodna logika kombinacyjna RTL
Wartości domyślne zapobiegają zatrzaskomKoder priorytetowyWeryfikacja kodu one-hotBezpieczne dekodowanie casePodsumowanie — router żądań2Szerokości i arytmetyka ze znakiem
Zachowywanie bitów przeniesieniaPorównania ze znakiemArytmetyczne przesunięcia w prawoPrzepełnienie i nasyceniePodsumowanie — różnica ze znakiem5Pamięć i tablice wyszukiwania
Kombinacyjne tablice ROMPrzechowywanie w tablicy rejestrówRejestrowane porty odczytuPrzekazywanie danych przy odczycie i zapisiePodsumowanie — bank z dwoma portami odczytuPoćwicz samodzielnie: Kompilator Verilog online