Khi bạn đặt mã LabVIEW vào một vòng lặp While tiêu chuẩn trên FPGA, trình biên dịch sẽ áp dụng một mô hình gọi là “Luồng dữ liệu Có cấu trúc” (Structured Dataflow). Mô hình này rất giống với cách LabVIEW hoạt động trên máy tính, giúp cho việc chuyển đổi từ lập trình PC sang FPGA trở nên dễ dàng hơn.
Cơ chế Hoạt động
Để đảm bảo luồng dữ liệu, trình biên dịch sẽ tự động chèn các thanh ghi (registers) vào giữa các hàm (nút) trên sơ đồ khối. Vai trò của các thanh ghi này là:
- Đồng bộ hóa: Dữ liệu được “chốt” tại đầu ra của một hàm sau mỗi chu kỳ xung nhịp.
- Điều khiển luồng: Một hàm chỉ thực thi khi tất cả các đầu vào của nó đã nhận được dữ liệu hợp lệ từ các thanh ghi của các hàm phía trước.
Quá trình này tạo ra một chuỗi thực thi tuần tự. Mỗi hàm có thể mất một hoặc nhiều chu kỳ xung nhịp để hoàn thành. Trình biên dịch sẽ tự động quản lý toàn bộ quá trình này mà bạn không cần can thiệp.
Ưu và Nhược điểm
- Ưu điểm: Dễ lập trình, quen thuộc, an toàn. Bạn không cần lo lắng về các vấn đề timing phức tạp ở mức độ thấp.
- Nhược điểm: Tiêu tốn nhiều tài nguyên hơn (do các logic điều khiển và thanh ghi tự động), thời gian thực thi không tất định (số chu kỳ có thể thay đổi sau mỗi lần biên dịch), và hiệu suất không được tối ưu.