Menu
Coddy logo textTech

Zachowywanie bitów przeniesienia

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

Szerokość sygnału określa, które bity można reprezentować. Wyraźnie określ zamierzony sposób wykonywania działań arytmetycznych, rozszerzając operandy przed wykonaniem działania. Dodanie dwóch 8-bitowych wartości bez znaku może wymagać dziewięciu bitów wyniku; przypisanie tylko ośmiu bitów zachowuje młodsze osiem i gubi bit przeniesienia.

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

wire [8:0] total;
assign total = {1'b0,a} + {1'b0,b};

Każdy operand ma jawnie szerokość dziewięciu bitów, co odpowiada pełnej sumie.

Wybierz wymaganą szerokość wyniku i rozszerz operandy przed wykonaniem działań arytmetycznych.

challenge icon

Wyzwanie

Średni

Dodaj bez znaku 8-bitowe a i b, nie tracąc przeniesienia. Zwróć pełną 9-bitową sumę w total. Jawnie rozszerz oba operandy do dziewięciu bitów. Kolumny wyjściowe: total. Wszystkie wartości pobudzające są znanymi wartościami binarnymi.

Uzupełnij design.v i zachowaj nazwy modułów oraz porty. Zablokowany testbench.v dostarcza zmiany wejść i wyświetla wyjścia po ich ustabilizowaniu. 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 zakończenia symulacji. Oczekiwane wyjście to jeden wiersz wartości dziesiętnych dla każdej obserwacji, oddzielonych pojedynczą spacją i zakończony znakiem nowej linii.

Spróbuj swoich sił

module dut (input [7:0] a, input [7:0] b, output [8:0] total);
    // Zastąp ten kod zastępczy swoim projektem.
    assign total = 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