Chuyển đến nội dung
AIOTAIOT
  • Trang chủ
  • Giới thiệu
  • Tin tức
  • Sản phẩm
  • Giải pháp
    • Chấm công bằng Face ID
    • Thiết bị đọc căn cước
    • IoT trong giáo dục
    • IoT trong quản lý năng lượng
    • IoT trong y tế
  • Đào tạo
    • Khóa đào tạo cơ bản
    • Khóa đào tạo nâng cao
    • Tài liệu
  • PCCC
  • Liên hệ
  • icon
    097 186 8316    |    0839 799 889
Đào tạo, Khóa đào tạo cơ bản, LabVIEW FPGA

Bài 7: Đồng Hồ và Định Thời trong LabVIEW FPGA (Clocks & Timing)

Đã đăng trên 24/09/202521/09/2025 bởi ThaoNguyen
24
Th9

 

Khác với các hệ thống dựa trên bộ xử lý, hoạt động của FPGA được điều khiển bởi các tín hiệu đồng hồ (Clock) có tần số ổn định. Việc nắm vững các khái niệm về định thời (timing) là yếu tố then chốt để khai thác được tính tất định (determinism) và hiệu năng cao của phần cứng FPGA.

 

Giải Thích Thuật Ngữ: “Tính Tất Định” (Determinism) là gì?

Tính tất định có nghĩa là một hành động sẽ luôn luôn tạo ra cùng một kết quả trong cùng một khoảng thời gian, không có sai lệch. Đây là sự khác biệt cơ bản giữa FPGA và CPU:

  • Trên CPU (Không tất định): Thời gian thực thi một đoạn mã có thể thay đổi. Cùng một tác vụ, lúc này có thể mất 10ms, lúc khác có thể mất 12ms do bị ảnh hưởng bởi hệ điều hành, các tiến trình khác, ngắt (interrupts), v.v.
  • Trên FPGA (Tất định): Một tác vụ được thiết kế để hoàn thành trong 50 chu kỳ clock sẽ luôn luôn mất đúng 50 chu kỳ clock để hoàn thành, chính xác đến từng nano giây. Toàn bộ hoạt động được điều khiển trực tiếp bởi phần cứng, không có yếu tố ngoại lai nào có thể can thiệp vào thời gian thực thi.

Nói cách khác, “tính tất định” đảm bảo sự đáng tin cậy tuyệt đối về mặt thời gian, một yêu cầu bắt buộc trong các ứng dụng điều khiển tốc độ cao, đo lường chính xác và an toàn hệ thống.

1. Tín Hiệu Đồng Hồ (Clocks) – Nền Tảng Của Mạch Logic

Mỗi tín hiệu đồng hồ là một chuỗi xung vuông tuần hoàn. Tại mỗi cạnh lên (rising edge) của xung, các thanh ghi (registers) trên FPGA sẽ lấy mẫu và cập nhật giá trị. Tần số của đồng hồ, đo bằng Hertz (Hz), quyết định trực tiếp tốc độ xử lý của mạch logic. Ví dụ, một đồng hồ 40 MHz tương ứng với 40 triệu chu kỳ xử lý mỗi giây.

Các Loại Đồng Hồ Chính Trong Project

Trong một project LabVIEW FPGA, có ba loại đồng hồ chính cần quản lý:

  • Base Clock (Đồng hồ cơ sở): Đây là tín hiệu đồng hồ gốc được tạo ra bởi bộ dao động thạch anh (crystal oscillator) trên phần cứng. Hầu hết các bo mạch NI RIO đều có Base Clock mặc định là 40 MHz. Bạn có thể thêm các Base Clock khác (nếu phần cứng hỗ trợ) bằng cách nhấp chuột phải vào FPGA Target và chọn New > FPGA Base Clock.
  • Derived Clock (Đồng hồ dẫn xuất): Từ một Base Clock, bạn có thể tạo ra các đồng hồ mới với tần số là bội số hoặc ước số của tần số gốc (ví dụ: tạo ra clock 80 MHz hoặc 20 MHz từ clock 40 MHz). Việc này rất hữu ích để tối ưu hóa các vùng logic khác nhau trong thiết kế.
  • Top-Level Clock (Đồng hồ cấp cao nhất): Đây là đồng hồ mặc định cho toàn bộ các đoạn mã nằm bên ngoài cấu trúc Single-Cycle Timed Loop. Bạn có thể thay đổi Top-Level Clock để điều chỉnh tốc độ thực thi chung của VI. Để thay đổi, nhấp chuột phải vào FPGA Target, chọn **Properties**, và vào mục **Top-Level Clock**.

2. Các Hàm Định Thời Cơ Bản (Sử Dụng Trong While Loop)

Để kiểm soát thời gian thực thi trong một vòng lặp While Loop thông thường, LabVIEW FPGA cung cấp ba công cụ định thời chính, cho phép thực hiện các tác vụ như lấy mẫu định kỳ, tạo độ trễ, hoặc đo lường khoảng thời gian.

A. Loop Timer Express VI

  • Chức năng: Đảm bảo một vòng lặp While Loop được thực thi với chu kỳ cố định. Ví dụ, đọc giá trị cảm biến mỗi 100 micro giây.
  • Cơ chế hoạt động: Ở mỗi lần lặp, hàm sẽ tạm dừng cho đến khi đủ khoảng thời gian đã định cấu hình (tính bằng số chu kỳ clock) trôi qua kể từ lần lặp trước.
  • Ứng dụng: Các vòng lặp lấy mẫu (sampling loops), các vòng điều khiển (control loops) yêu cầu chu kỳ thực thi ổn định.

B. Wait Express VI

  • Chức năng: Tạo một độ trễ cố định, tạm dừng luồng thực thi tại vị trí của nó trong một khoảng thời gian xác định.
  • Khác biệt với Loop Timer: Loop Timer điều khiển chu kỳ lặp lại của cả vòng lặp, trong khi Wait chỉ tạo ra một khoảng trễ đơn lẻ tại một điểm cụ thể.
  • Ứng dụng: Tạo độ trễ giữa hai sự kiện, ví dụ: kích hoạt một ngõ ra, chờ 50 mili giây, sau đó đọc giá trị từ một ngõ vào.

C. Tick Count Express VI

  • Chức năng: Trả về giá trị của một bộ đếm (counter) nội bộ, hoạt động như một đồng hồ bấm giờ kể từ khi VI FPGA bắt đầu chạy.
  • Cơ chế hoạt động: Bằng cách ghi lại giá trị Tick Count tại hai thời điểm khác nhau và lấy hiệu số, ta có thể đo chính xác khoảng thời gian (tính bằng số chu kỳ clock) giữa hai sự kiện.
  • Ứng dụng: Đo độ rộng xung (pulse width), đo tần số/chu kỳ của tín hiệu, hoặc đo thời gian thực thi của một đoạn mã.

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.


Kết luận

Kiểm soát định thời là một kỹ năng cơ bản và thiết yếu trong lập trình FPGA. Bằng cách sử dụng hợp lý các loại đồng hồ, các hàm định thời, và đặc biệt là cấu trúc SCTL, bạn có thể thiết kế các hệ thống có hiệu suất và tốc độ xử lý cao, vốn là ưu điểm của kiến trúc FPGA so với các hệ thống dựa trên CPU.

 

 

Mục nhập này đã được đăng trong Đào tạo, Khóa đào tạo cơ bản, LabVIEW FPGA và được gắn thẻ LabVIEW FPGA.
ThaoNguyen

Bài 6: Xử Lý Song Song & Tranh Chấp Tài Nguyên (Arbitration)
Bài 8: Xây Dựng Mã Module Hóa – SubVI trong FPGA

Để lại một bình luận Hủy

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Bài viết mới
  • Bài 11: Giảm Độ trễ (Latency) thông qua Song song hóa
  • Bài 10: Các Kỹ thuật Tối ưu hóa Thời gian (Timing)
  • Bài 9: Giảm Khoảng thời gian Khởi tạo (Initiation Interval)
  • Bài 8: Giảm thiểu Đường dẫn Tới hạn (Critical Path) và Kỹ thuật Pipelining
  • Bài 7: Các Kỹ thuật Tối ưu hóa Thông lượng (Throughput)
Danh mục
  • Đào tạo
  • Giải pháp
  • IoT trong giáo dục
  • Khóa đào tạo cơ bản
  • Khóa đào tạo nâng cao
  • LabVIEW FPGA
  • LabVIEW FPGA High Performance
  • Sản xuất công nghiệp
  • Thiết bị dịch vụ thông minh
  • Thiết bị đọc căn cước
  • Tin tức

CÔNG TY CỔ PHẦN HỆ THỐNG AIOT

VPGD: Số A21-TT9 Đường Foresa 1 KĐT Xuân Phương, Phường Xuân Phương, Hà Nội.

Địa chỉ kinh doanh: Đường Phú Diễn, Tổ dân phố 18, phường Phú Diễn, Thành phố Hà Nội, Việt Nam

Hotline/Zalo: 097 186 8316 | 0839 799 889

Email: aiot@aiots.vn

VỀ CHÚNG TÔI

Giới thiệu

Sản phẩm

Giải pháp

Đào tạo

Tin tức

QUY ĐỊNH & CHÍNH SÁCH

Chính sách thanh toán

Chính sách vận chuyển

Chính sách bảo hành

Chính sách đổi trả

Chính sách bảo mật

ĐỊA CHỈ VĂN PHÒNG GIAO DỊCH

Copyright 2024 © Bản quyền thuộc về AIOT. Thiết kế bởi Jamina JSC
  • Trang chủ
  • Giới thiệu
  • Tin tức
  • Sản phẩm
  • Giải pháp
    • Chấm công bằng Face ID
    • Thiết bị đọc căn cước
    • IoT trong giáo dục
    • IoT trong quản lý năng lượng
    • IoT trong y tế
  • Đào tạo
    • Khóa đào tạo cơ bản
    • Khóa đào tạo nâng cao
    • Tài liệu
  • PCCC
  • Liên hệ
Zalo
Phone

Đăng nhập

Quên mật khẩu?