Menu
Coddy logo textTech

Wielokrotnego użytku zadania sprawdzające

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

task w Verilogu grupuje pracę proceduralną i może zwracać wyniki za pomocą argumentów wyjściowych lub wejściowo-wyjściowych. Zadania w środowisku testowym ograniczają powielanie sprawdzeń. W przeciwieństwie do kombinacyjnej function, task może zawierać sterowanie czasem, jeśli jest to odpowiednie, ale te zadania sprawdzające wykonują wyłącznie porównania bez upływu czasu. Używaj zadań automatycznych, jeśli oddzielne wywołania współbieżne wymagają niezależnej pamięci lokalnej; podane tu wywołania są sekwencyjne.

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

task check_value;
    input [7:0] actual,expected;
    output ok;
    begin ok = (actual === expected); end
endtask

Wywołujący otrzymuje wynik sprawdzenia przez jawny argument wyjściowy.

Określ kierunki argumentów task i resetuj zmienne wynikowe przy każdym wywołaniu przed zebraniem niepowodzeń.

challenge icon

Wyzwanie

Średni

Zaimplementuj check_value tak, aby ok miało wartość jeden, gdy actual i expected są zgodne przy porównaniu czterostanowym, a w przeciwnym razie zero. 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 wprowadza zmiany na wejściu i wyświetla wyjścia po ich ustaleniu. Wybiera scenariusz za pomocą argumentu symulatora, takiego jak +CASE=1; standardowe wejście nie jest wymagane. Wyświetlanie wyników i sterowanie scenariuszem pozostaw w zablokowanym testbench; zaimplementuj tylko treść zadania task. Oczekiwane wyjście to jeden wiersz wartości dziesiętnych na każdą obserwację, rozdzielonych pojedynczą spacją i zakończony znakiem nowej linii.

Spróbuj swoich sił

module dut;
    task check_value;
        input [7:0] actual,expected;
        output ok;
        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