Menu
CoddyTech

Vòng lặp repeat

Thuộc phần Kiến thức nền tảng trong hành trình Verilog của Coddy. Bài học 60 trên 90.

Vòng lặp repeat chạy một khối code một số lần cố định. Khác với vòng lặp for, vòng lặp này không dùng biến đếm.

Vòng lặp (loop) repeat chạy một số lần cụ thể. Bạn cung cấp cho vòng lặp một hằng số (constant) hoặc biểu thức (expression) để xác định số lần lặp (iteration) cần thực hiện.

Cú pháp:

repeat (number) begin
  // Code to repeat
end

Ví dụ đơn giản

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

Đầu ra:

Hello
Hello
Hello
Hello
Hello

Thông báo được in ra đúng 5 lần.

Lặp lại với một biểu thức

integer count = 3;

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

Đầu ra:

Looping
Looping
Looping

Vòng lặp repeat và vòng lặp for

 Vòng lặp forVòng lặp repeat
Biến đếmCó (tường minh)Không
Khi nào nên dùngKhi cần giá trị chỉ sốChỉ cần lặp lại
Ví dụfor (i=0; i<5; i=i+1)repeat (5)

Tạo nhiều chu kỳ xung nhịp

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

Đoạn code này tạo ra 20 cạnh xung nhịp (10 chu kỳ hoàn chỉnh).

Quy tắc quan trọng

Quy tắcGiải thích
Số lần lặp bằng 0 hoặc nhỏ hơn sẽ bỏ qua thân vòng lặprepeat (-5) biên dịch và chạy 0 lần
Có thể dùng hằng số hoặc biểu thứcrepeat (10) hoặc repeat (count)
Không có biến vòng lặpKhông thể theo dõi số lần lặp
Dùng begin/end cho nhiều câu lệnhBắt buộc khi có nhiều hơn một dòng
challenge icon

Thử thách

Cần làm gì:

Thêm vòng lặp repeat còn thiếu để in ra "Verilog" 4 lần.

Tự làm thử

module repeat_challenge;
  
  initial begin
    $display("Printing 4 times:");
    
    // TODO: Thêm vòng lặp repeat
    // Lặp lại 4 lần
    // Bên trong vòng lặp, in ra "Verilog"
    
    $finish;
  end
endmodule
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Kiến thức nền tảng

Tự luyện tập: Trình biên dịch Verilog online