Podsumowanie — router żądań
Część sekcji Projektowanie RTL i weryfikacja ścieżki Verilog w Coddy. Lekcja 5 z 38.
Wyzwanie
ŚredniAkceptuj 4-bitowe żądanie tylko wtedy, gdy ustawiony jest dokładnie jeden bit. Gdy żądanie jest prawidłowe, podaj indeks wybranego bitu w code i ustaw valid. Dla braku żądania lub wielu żądań zarówno code, jak i valid mają wartość zero. Kolumny wyjściowe: code, valid. Wszystkie wartości sygnałów wejściowych są znanymi wartościami binarnymi.
Uzupełnij design.v i zachowaj nazwy modułów oraz porty. Zablokowany testbench.v dostarcza zmiany sygnałów wejściowych 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 danych, opóźnień ani kończenia symulacji. Oczekiwane wyjście to jeden wiersz wartości dziesiętnych na każdą obserwację, oddzielonych pojedynczą spacją i zakończonych znakiem nowej linii.
Spróbuj swoich sił
module dut (input [3:0] req, output reg [1:0] code, output reg valid);
// Zastąp ten kod zastępczy swoim projektem.
initial code = 0;
initial valid = 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 znakiemPoćwicz samodzielnie: Kompilator Verilog online