Menu
Coddy logo textTech

Podsumowanie — audyt sumatora

Część sekcji Projektowanie RTL i weryfikacja ścieżki Verilog w Coddy. Lekcja 30 z 38.

challenge icon

Wyzwanie

Średni

Zaimplementuj audyt dla czterobitowego sumatora bez znaku. Zliczaj checked i errors, tak jak w lekcji o scoreboardzie, i zachowaj bity pokrycia: bit 0 oznacza a=b=0, bit 1 oznacza a=b=15, a bit 2 oznacza każdą inną parę wejściową. Porównaj actual z pełną pięciobitową sumą, używając nierówności czterostanowej. Wywołujący inicjuje wszystkie liczniki i flagi. Ten moduł zawiera przeznaczone wyłącznie do symulacji task, wywoływane przez zablokowany testbench. Kolumny wyjściowe: checked, errors, seen.

Uzupełnij design.v i zachowaj nazwy modułów oraz portów. 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. Pozostaw wyświetlanie wyników i sterowanie scenariuszami w zablokowanym testbench; zaimplementuj tylko treść task. Oczekiwany wynik to jeden wiersz wartości dziesiętnych dla każdej obserwacji, oddzielonych pojedynczą spacją i zakończonych znakiem nowej linii.

Spróbuj swoich sił

module dut;
    task audit;
        input [3:0] a,b;
        input [4:0] actual;
        inout integer checked,errors;
        inout [2:0] seen;
        reg [4:0] expected;
        begin
            // Uzupełnij zadanie sprawdzające.
            checked=checked;errors=errors;seen=seen;
        end
    endtask
endmodule

Wszystkie lekcje w sekcji Projektowanie RTL i weryfikacja

Poćwicz samodzielnie: Kompilator Verilog online