Menu
Coddy logo textTech

Цикл повторения

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

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

Цикл repeat выполняется заданное количество раз. Ему передаётся константа или выражение, определяющее количество выполняемых итераций.

Синтаксис:

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

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

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

Вывод:

Hello
Hello
Hello
Hello
Hello

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

Повторение с выражением

integer count = 3;

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

Вывод:

Looping
Looping
Looping

Repeat и For Loop

 For LoopRepeat Loop
Переменная-счётчикДа (явно)Нет
Когда использоватьНужно значение индексаНужно только повторение
Пример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 (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Проверьте себя

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

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

Потренируйтесь самостоятельно: Онлайн-компилятор Verilog