Menu
CoddyTech

Pętla for

Część sekcji Podstawy ścieżki Verilog w Coddy. Lekcja 58 z 90.

Pętle w Verilogu umożliwiają wielokrotne wykonanie bloku kodu. Są szczególnie przydatne w testbenchach do generowania powtarzalnych wzorców testowych, inicjalizowania pamięci i iterowania po tablicach. W przeciwieństwie do opisów sprzętu, które działają równolegle, pętle wykonują się sekwencyjnie, dzięki czemu idealnie nadają się do symulacji i testowania.

Najczęściej używaną pętlą jest for pętla, która powtarza się określoną liczbę razy. Pętla for wielokrotnie wykonuje blok kodu, a zmienna pętli zmienia się przy każdej iteracji. Dokładnie określasz, ile razy ma się wykonać.

Składnia:

for (initialization; condition; increment) begin
  // Kod do powtarzania
end
CzęśćCo robiPrzykład
initializationUstawia wartość początkowąi = 0
conditionOkreśla, kiedy zatrzymaći < 10
incrementZmienia się przy każdej iteracji pętlii = i + 1

Prosty przykład

integer i;

for (i = 0; i < 5; i = i + 1) begin
  $display("i = %d", i);
end

Wynik:

i = 0
i = 1
i = 2
i = 3
i = 4

Pętla wykonuje się 5 razy (i = 0, 1, 2, 3, 4).

Pętla for w modułach testowych

Pętle for są często używane do testowania wszystkich kombinacji wejściowych:

integer test_value;

for (test_value = 0; test_value < 16; test_value = test_value + 1) begin
  $display("test_value = %d", test_value);
end

To testuje wszystkie 16 możliwych wartości sygnału 4-bitowego.

Pętla for z tablicami

reg [7:0] memory [0:9];
integer i;

initial begin
  for (i = 0; i < 10; i = i + 1) begin
    memory[i] = i * 8;
  end
end

Inicjuje to 10 lokalizacji pamięci.

Ważne zasady

ZasadaWyjaśnienie
Zmienna pętli musi mieć typ integer lub reg Nie może mieć typu wire
Używaj begin/end dla wielu instrukcjiWymagane, gdy kod ma więcej niż jedną linię
Unikaj nieskończonych pętliUpewnij się, że warunek w końcu stanie się fałszywy
W kodzie syntezowalnym używaj stałych granicSynteza rozwija pętlę, tworząc jedną kopię logiki na każdą iterację
challenge icon

Wyzwanie

Co należy zrobić:

Dodaj brakującą pętlę for, aby wyświetlić liczby od 0 do 3.

Spróbuj swoich sił

module for_challenge;
  integer i;
  
  initial begin
    $display("Printing 0 to 3:");
    
    // TODO: Dodaj pętlę for
    // Zainicjalizuj i = 0
    // Wykonuj pętlę, dopóki i < 4
    // Zwiększ i = i + 1
    // Wewnątrz pętli wypisz za pomocą: $display("i = %d", i);
    
    $finish;
  end
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 Podstawy

Poćwicz samodzielnie: Kompilator Verilog online