Liczby o określonej szerokości
Część sekcji Podstawy ścieżki Verilog w Coddy. Lekcja 14 z 90.
W Verilog można zadeklarować liczbę o określonym rozmiarze. Nazywa się ją liczbą o określonym rozmiarze. Jest to przydatne, ponieważ zapobiega nieporozumieniom co do liczby bitów w liczbie i zapewnia, że sprzęt działa dokładnie zgodnie z oczekiwaniami.
Liczba o określonym rozmiarze ma następujący format: [bits]'[format][value]
<strong>bits</strong>: liczba bitów (na przykład8)<strong>'</strong>: apostrof oddzielający rozmiar od formatu (wymagany)
<strong>format</strong>: podstawa liczby:bdla systemu binarnego,ddla dziesiętnego,hdla szesnastkowego lubodla ósemkowego<strong>value</strong>: właściwa liczba (na przykład1010)
Na przykład:
4'b1010: 4 bity, liczba binarna 1010 (dziesiętnie 10)8'd255: 8 bitów, liczba dziesiętna 255 (binarnie 11111111)16'hFF: 16 bitów, liczba szesnastkowa FF (binarnie 0000000011111111)3'b1: 3 bity, liczba binarna 001 (najbardziej znaczące bity są uzupełnione zerami)
Przykład kodu:
reg [7:0] data;
data = 8'b10101010; // 8 bits, binary 10101010
data = 8'd170; // 8 bitów, dziesiętnie 170
data = 8'hAA; // 8 bits, hex AAWszystkie trzy przykłady przypisują tę samą wartość do data.
Dlaczego rozmiar ma znaczenie
Bez określenia rozmiaru:
reg [7:0] data;
data = 1; // Co to oznacza? 1 bit? 8 bitów?Verilog domyślnie zakłada, że małe liczby mają 32 bity, co może powodować problemy.
Z określonym rozmiarem:
reg [7:0] data;
data = 8'b00000001; // Clear: 8-bit value 1Dopełnianie zerami
Gdy przypisujesz mniejszą wartość do większego wektora, Verilog wypełnia lewe bity zerami:
reg [7:0] data;
data = 4'b1010; // Becomes 8'b00001010Wyzwanie
Uzupełnij kod, wpisując liczby o odpowiednim rozmiarze.
Co należy zrobić:
- Ustaw
ana 8-bitową liczbę binarną odpowiadającą liczbie dziesiętnej 170 (binarnie 10101010) - Ustaw
bna 4-bitową liczbę binarną odpowiadającą liczbie dziesiętnej 12 (binarnie 1100) - Ustaw
cna 16-bitową liczbę szesnastkową odpowiadającą liczbie dziesiętnej 255 (szesnastkowo FF)
Spróbuj swoich sił
module sized_challenge;
reg [7:0] a;
reg [3:0] b;
reg [15:0] c;
initial begin
a = ______; // 8-bitowa liczba binarna dla 170 (10101010)
b = ______; // 4-bitowa liczba binarna dla 12 (1100)
c = ______; // 16-bitowa liczba szesnastkowa dla 255 (FF)
$display("a = %b", a);
$display("b = %b", b);
$display("c = %h", c);
$finish;
end
endmoduleTa lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
1Wprowadzenie
Czym jest VerilogSprzęt a oprogramowanieTwój pierwszy modułKomentarzePoziomy abstrakcji projektu4Operatory, część 1
Operatory arytmetyczneOperator moduloOperatory porównaniaPowtórka — prosta matematykaOperatory bitowe7Przypisania i bramki
Przypisanie ciągłePrzypisanie z operatoramiWbudowane prymitywy bramekBramki AND, OR i NOTBramki XOR i XNORPodsumowanie — układ z bramek logicznych10Podejmowanie decyzji
Instrukcja ifIf-elsePowtórka – prosty komparatorInstrukcja caseCaseX i CaseZPowtórka – projektowanie ALU13Odmierzanie czasu i opóźnienia
Czym są opóźnieniaOpóźnienia bramekOpóźnienia przypisańDyrektywa timescaleGenerowanie zegaraPodsumowanie — kontrola czasu2Typy danych
Typ WireTyp RegLiczby całkowite i rzeczywisteWektoryTabliceParametryPowtórka — deklarowanie sygnałów5Operatory — część 2
Operatory logiczneOperatory redukcjiOperatory przesunięciaOperator konkatenacjiOperator warunkowyPowtórzenie — wyzwanie z operatorami11Pętle
Pętla forPętla whilePętla repeatPętla nieskończonaInstrukcja wyłączaniaPowtórka — wzorce pętli3System liczbowy
Reprezentacja binarnaLiczby o określonej szerokościLiczby o nieokreślonej szerokościLiczby ujemneWartości specjalne X i ZPodsumowanie — formaty liczb6Moduły
Struktura modułuPorty wejściowe i wyjściowePorty dwukierunkoweInstancjonowanie modułuMapowanie portów według nazwMapowanie portów według kolejnościPodsumowanie — zbuduj moduł9Bloki proceduralne
Blok alwaysBlok initialLista czułościPrzypisanie blokującePrzypisanie nieblokującePodsumowanie — always a initial12Projekt multipleksera
Projekt multipleksera 2 do 1Projekt multipleksera 4 do 115Sterownik sygnalizacji świetlnej
Definiowanie stanówLogika maszyny stanówPoćwicz samodzielnie: Kompilator Verilog online