Menu
Coddy logo textTech

Przepełnienie i nasycenie

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

Przepełnienie ze znakiem oznacza, że wynik matematyczny nie mieści się w wybranej szerokości signed. Różni się od przeniesienia bez znaku. W przypadku dodawania signed przepełnienie występuje, gdy składniki o tym samym znaku dają wynik o innym znaku. Nasycenie ogranicza wynik do reprezentowalnej wartości granicznej zamiast zawijania.

Odpowiedni fragment; otaczające deklaracje i połączenia są podane w wyzwaniu.

assign overflow = (a[7] == b[7]) && (sum[7] != a[7]);

Dane wejściowe o różnych znakach nie mogą powodować przepełnienia przy dodawaniu signed; dla danych wejściowych o takich samych znakach trzeba sprawdzić znak wyniku.

Sprawdzaj przepełnienie ze znakiem niezależnie od przeniesienia; przed implementacją nasycenia rozszerz typ.

challenge icon

Wyzwanie

Średni

Dodaj do siebie 8-bitowe liczby signed a i b. Zwróć obcięty wynik signed y, a overflow=1 tylko wtedy, gdy dokładna suma matematyczna wykracza poza zakres od -128 do 127. Kolumny wyjściowe: y, overflow. Wszystkie wartości pobudzające są znanymi wartościami binarnymi.

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. Nie dodawaj do projektu wyświetlania, opóźnień ani kończenia symulacji. Oczekiwane wyjście 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 (input signed [7:0] a, input signed [7:0] b, output signed [7:0] y, output overflow);
    // Zastąp ten symbol zastępczy swoim projektem.
    assign y = 0;
    assign overflow = 0;
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