Podsumowanie — bank z dwoma portami odczytu
Część sekcji Projektowanie RTL i weryfikacja ścieżki Verilog w Coddy. Lekcja 25 z 38.
Wyzwanie
ŚredniZaimplementuj cztery 8-bitowe słowa z jednym synchronicznym zapisem i dwoma zarejestrowanymi wyjściami odczytu starych danych qa i qb. we zapisuje pod adresem waddr. Synchroniczne rst zeruje tylko qa i qb. W przeciwnym razie re włącza oba odczyty z raddr_a i raddr_b; gdy odczyt jest wyłączony, jego wartość jest podtrzymywana. Zapisy wykonywane na tym samym zboczu nie zmieniają starych wartości przechwyconych podczas tych odczytów. Testy inicjalizują słowa przed odczytem. Kolumny wyjściowe: qa, qb. Wszystkie sygnały sterujące i dane są stabilne przed każdym narastającym zboczem zegara; wyniki są odczytywane po nim.
Uzupełnij design.v i zachowaj nazwy modułów oraz porty. Zablokowany testbench.v dostarcza zmiany wejść i wypisuje wyjścia po ich ustabilizowaniu. Wybiera scenariusz za pomocą argumentu symulatora, takiego jak +CASE=1; standardowe wejście nie jest wymagane. Nie dodawaj do projektu wypisywania, opóźnień ani kończenia symulacji. Oczekiwane wyjście to jeden wiersz wartości dziesiętnych na obserwację, oddzielonych pojedynczą spacją i zakończonych znakiem nowej linii.
Spróbuj swoich sił
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);
// Zastąp ten kod zastępczy własnym projektem.
initial qa = 0;
initial qb = 0;
endmoduleWszystkie 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