Menu
Coddy logo textTech

Modele referencyjne i wyniki

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

Testbench z samokontrolą oblicza oczekiwane zachowanie niezależnie od wyjścia projektu. Model referencyjny może używać prostych działań arytmetycznych, nawet gdy implementacja ma inną strukturę. Tablica wyników zlicza obserwacje i niezgodności. Inicjalizuj jej liczniki raz na scenariusz i porównuj wyniki dopiero po ustaleniu się wyjścia projektu.

Odpowiedni fragment; pozostałe deklaracje i połączenia są podane w wyzwaniu.

expected = {1'b0,a} + {1'b0,b};
checked = checked + 1;
if(actual !== expected) errors = errors + 1;

Oczekiwana wartość wynika z określonego zachowania wejścia, a nie z kopiowania wartości actual.

Obliczaj wartości oczekiwane niezależnie, próbkuj w określonym czasie i śledź każdy sprawdzony wynik.

challenge icon

Wyzwanie

Średni

Zaimplementuj kontrolę referencyjną dla bez znaku, czterobitowego sumatora. Oblicz pełne, pięciobitowe matematyczne a+b, a następnie zwróć ok=1 tylko wtedy, gdy actual dokładnie odpowiada temu wynikowi w porównaniu czterostanowym. Ten moduł zawiera wywoływane przez zablokowany testbench zadanie task, przeznaczone wyłącznie do symulacji. Kolumny wyjściowe: ok.

Uzupełnij design.v i zachowaj nazwy modułów oraz portów. Zablokowany testbench.v podaje zmiany wejść i wypisuje wyjścia po ich ustaleniu. Wybiera scenariusz za pomocą argumentu symulatora, takiego jak +CASE=1; standardowe wejście nie jest wymagane. Pozostaw wypisywanie i sterowanie scenariuszami w zablokowanym testbench; zaimplementuj tylko ciało zadania task. 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;
    task check_sum;
        input [3:0] a,b;
        input [4:0] actual;
        output ok;
        reg [4:0] expected;
        begin
            // Uzupełnij zadanie sprawdzające.
            ok=0;
        end
    endtask
endmodule
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Projektowanie RTL i weryfikacja

Poćwicz samodzielnie: Kompilator Verilog online