Pętla repeat
Część sekcji Podstawy ścieżki Verilog w Coddy. Lekcja 60 z 90.
Pętla repeat wykonuje blok kodu określoną liczbę razy. W przeciwieństwie do pętli for nie używa zmiennej licznika pętli.
Pętla repeat wykonuje się określoną liczbę razy. Podajesz jej stałą lub wyrażenie, które określa, ile iteracji należy wykonać.
Składnia:
repeat (number) begin
// Code to repeat
endProsty przykład
repeat (5) begin
$display("Hello");
endWynik:
Hello
Hello
Hello
Hello
HelloKomunikat wyświetla się dokładnie 5 razy.
Powtarzanie z wyrażeniem
integer count = 3;
repeat (count) begin
$display("Looping");
endWynik:
Looping
Looping
LoopingRepeat a pętla for
| Pętla for | Pętla repeat | |
|---|---|---|
| Zmienna licznika | Tak (jawna) | Nie |
| Kiedy używać | Gdy potrzebujesz wartości indeksu | Gdy potrzebujesz tylko powtórzeń |
| Przykład | for (i=0; i<5; i=i+1) | repeat (5) |
Generowanie wielu cykli zegara
initial begin
clk = 0;
repeat (20) begin
#5 clk = ~clk;
end
endGeneruje to 20 zboczy zegara (10 pełnych cykli).
Ważne zasady
| Zasada | Wyjaśnienie |
|---|---|
| Liczba musi być nieujemna | Nie można powtarzać ujemną liczbę razy |
| Można użyć stałej lub wyrażenia | repeat (10) lub repeat (count) |
| Brak dostępnej zmiennej pętli | Nie można śledzić numeru iteracji |
Użyj begin/end dla wielu instrukcji | Wymagane przy więcej niż jednej linii |
Wyzwanie
Co należy zrobić:
Dodaj brakującą pętlę repeat, aby wyświetlić "Verilog" 4 razy.
Spróbuj swoich sił
module repeat_challenge;
initial begin
$display("Printing 4 times:");
// TODO: Dodaj pętlę repeat
// Powtórz 4 razy
// Wewnątrz wypisz "Verilog"
$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