3. Thực Thi Hiệu Năng Cao: Single-Cycle Timed Loop (SCTL)
Trong khi một vòng lặp While Loop thông thường mất nhiều chu kỳ đồng hồ để hoàn thành một lần lặp, SCTL là một cấu trúc được tối ưu hóa để thực thi toàn bộ mã bên trong nó chỉ trong một chu kỳ đồng hồ duy nhất. Đây là công cụ cơ bản để đạt được hiệu năng xử lý cao nhất trên FPGA.
Sự Khác Biệt về Cơ Chế Hoạt Động
Trong While Loop, trình biên dịch tự động chèn các thanh ghi (registers) giữa các hàm để thực thi theo dataflow, và mỗi thanh ghi cần một chu kỳ clock để cập nhật. SCTL loại bỏ các thanh ghi trung gian này, tạo ra một đường truyền logic trực tiếp (combinatorial path) từ đầu vào đến đầu ra.
While Loop Thông Thường
Đa chu kỳ (Multi-cycle). Mỗi hàm có thể mất một hoặc nhiều chu kỳ đồng hồ. Tổng thời gian lặp là tổng thời gian của các bước.
Single-Cycle Timed Loop
Đơn chu kỳ (Single-cycle). Toàn bộ chuỗi logic phải hoàn thành trong đúng 1 chu kỳ đồng hồ, cho phép thực thi ở tần số tối đa.
Yêu Cầu về Định Thời (Timing Constraint)
Vì toàn bộ logic phải thực thi xong trong một chu kỳ, độ phức tạp của mã trong SCTL bị giới hạn. Nếu tổng thời gian trễ của tín hiệu khi đi qua chuỗi cổng logic (gọi là độ dài **combinatorial path**) vượt quá chu kỳ của đồng hồ (ví dụ, lớn hơn 25 nano giây đối với đồng hồ 40 MHz), trình biên dịch sẽ báo lỗi **”Timing Violation”**.
Ứng dụng của SCTL: SCTL được sử dụng cho các tác vụ đòi hỏi tốc độ xử lý rất cao, độ trễ thấp và tính tất định tuyệt đối, chẳng hạn như các thuật toán xử lý tín hiệu số (DSP), các giao thức truyền thông tùy chỉnh, hoặc các vòng lặp điều khiển tốc độ cao.