Menu
Coddy logo textTech

Цикл Repeat

Часть раздела Основы путешествия по Verilog на Coddy — урок 60 из 90.

Цикл repeat выполняет блок кода фиксированное количество раз. В отличие от цикла for, он не использует переменную-счётчик цикла.

Цикл repeat выполняется указанное количество раз. Вы передаете ему константу или выражение, которое определяет, сколько итераций необходимо выполнить.

Синтаксис:

repeat (number) begin
  // Код для повторения
end

Простой пример

repeat (5) begin
  $display("Hello");
end

Вывод:

Hello
Hello
Hello
Hello
Hello

Сообщение выводится ровно 5 раз.

Repeat с выражением

integer count = 3;

repeat (count) begin
  $display("Looping");
end

Вывод:

Looping
Looping
Looping

Repeat vs For Loop

 Цикл ForЦикл Repeat
Переменная-счётчикДа (явная)Нет
Когда использоватьНужно значение индексаНужно просто повторение
Примерfor (i=0; i<5; i=i+1)repeat (5)

Генерация нескольких тактовых циклов

initial begin
  clk = 0;
  repeat (20) begin
    #5 clk = ~clk;
  end
end

Это генерирует 20 фронтов тактового сигнала (10 полных циклов).

Важные правила

ПравилоОбъяснение
Число должно быть неотрицательнымНельзя выполнять repeat отрицательное количество раз
Можно использовать константу или выражениеrepeat (10) или repeat (count)
Нет доступной переменной циклаНевозможно отслеживать номер итерации
Используйте begin/end для нескольких операторовТребуется для более чем одной строки
challenge icon

Задание

Что нужно сделать:

Добавьте пропущенный цикл repeat, чтобы вывести "Verilog" 4 раза.

Попробуйте сами

module repeat_challenge;
  
  initial begin
    $display("Printing 4 times:");
    
    // TODO: Добавить цикл repeat
    // Повторить 4 раза
    // Внутри напечатать "Verilog"
    
    $finish;
  end
endmodule
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы