Ciclo Repeat
Fa parte della sezione Fondamenti del percorso Verilog di Coddy. Lezione 60 di 90.
Il ciclo repeat esegue un blocco di codice un numero fisso di volte. A differenza del ciclo for, non usa una variabile contatore del ciclo.
Un ciclo repeat viene eseguito un numero specificato di volte. Gli indichi una costante o un'espressione che determina quante iterazioni eseguire.
Sintassi:
repeat (number) begin
// Code to repeat
endEsempio semplice
repeat (5) begin
$display("Hello");
endOutput:
Hello
Hello
Hello
Hello
HelloIl messaggio viene stampato esattamente 5 volte.
Ripeti con un'espressione
integer count = 3;
repeat (count) begin
$display("Looping");
endOutput:
Looping
Looping
LoopingCiclo repeat vs ciclo for
| Ciclo for | Ciclo repeat | |
|---|---|---|
| Variabile contatore | Sì (esplicita) | No |
| Quando usarlo | Serve il valore dell'indice | Serve solo ripetere |
| Esempio | for (i=0; i<5; i=i+1) | repeat (5) |
Generare più cicli di clock
initial begin
clk = 0;
repeat (20) begin
#5 clk = ~clk;
end
endQuesto genera 20 fronti di clock (10 cicli completi).
Regole importanti
| Regola | Spiegazione |
|---|---|
| Il numero deve essere non negativo | Non è possibile ripetere un numero negativo di volte |
| È possibile usare una costante o un'espressione | repeat (10) oppure repeat (count) |
| Non è disponibile una variabile di ciclo | Non è possibile tenere traccia del numero di iterazioni |
Usa begin/end per più istruzioni | È necessario per più di una riga |
Sfida
Cosa fare:
Aggiungi il ciclo repeat mancante per stampare "Verilog" 4 volte.
Provalo tu
module repeat_challenge;
initial begin
$display("Printing 4 times:");
// TODO: Aggiungi un ciclo repeat
// Ripeti 4 volte
// All'interno, stampa "Verilog"
$finish;
end
endmoduleQuesta lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
1Introduzione
Cos'è VerilogHardware e software a confrontoIl tuo primo moduloCommentiLivelli di astrazione della progettazione4Operatori - Parte 1
Operatori aritmeticiOperatore moduloOperatori di confrontoRiepilogo - Matematica sempliceOperatori bitwise7Assegnazioni e porte
Assegnazione continuaAssegnazioni con operatoriPrimitive di porte integratePorte AND, OR e NOTPorte XOR e XNORRiepilogo: circuito con porte logiche10Decisioni
Istruzione ifIf-ElseRiepilogo - Comparatore sempliceIstruzione caseCasex e casezRiepilogo - Progettazione di una ALU5Operatori Parte 2
Operatori logiciOperatori di riduzioneOperatori di scorrimentoOperatore di concatenazioneOperatore condizionaleRiepilogo - Sfida sugli operatori3Sistema numerico
Rappresentazione binariaNumeri con dimensione specificataNumeri senza dimensione specificataNumeri negativiValori speciali X e ZRiepilogo - Formati numerici6Moduli
Struttura di un moduloPorte di input e outputPorte InoutIstanziazione di un moduloMappatura delle porte per nomeMappatura delle porte per ordineRiepilogo - Costruire un modulo9Blocchi procedurali
Blocco alwaysBlocco initialLista di sensibilitàAssegnazione bloccanteAssegnazione non bloccanteRiepilogo: always vs initial12Progetto Multiplexer
Progettazione di un mux da 2 a 1Progettazione di un mux da 4 a 1Esercitati da solo: Compilatore Verilog online