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
      • Hệ thống nhúng
      • LabVIEW FPGA
      • Phần cứng máy tính & Truyền thông công nghiệp
      • FPGA cơ bản
    • Khóa đào tạo nâng cao
      • LabVIEW FPGA High Performance
    • Tài liệu
  • PCCC
  • Liên hệ
  • icon
    097 186 8316    |    0839 799 889
Đào tạo, Khóa đào tạo nâng cao, LabVIEW FPGA High Performance

Bài 6: Các Hàm và Cấu trúc được Hỗ trợ trong SCTL

Đã đăng trên 15/10/202504/10/2025 bởi ThaoNguyen
15
Th10

 

Tổng quan Loạt bài chuyên sâu > Bài 6

Mục tiêu của bài học này là xác định rõ ràng những hàm và cấu trúc nào có thể và không thể sử dụng bên trong một SCTL, và giải thích lý do kỹ thuật đằng sau những hạn chế đó để lập trình hiệu quả.

 

1. Nguyên tắc Hỗ trợ: Ràng buộc “Một Chu kỳ”

Quy tắc quyết định một hàm có được hỗ trợ trong SCTL hay không rất đơn giản: **Nó có thể hoàn thành việc thực thi trong một chu kỳ xung nhịp không?**

Khi trình biên dịch LabVIEW FPGA xử lý mã bên trong SCTL, nó cố gắng chuyển đổi toàn bộ sơ đồ khối thành một mạch tổ hợp (combinatorial circuit) lớn. Tín hiệu đầu vào phải có đủ thời gian để lan truyền qua tất cả các cổng logic của mạch này và tạo ra một kết quả đầu ra ổn định trước khi cạnh lên tiếp theo của xung nhịp đến. Bất kỳ hàm hoặc cấu trúc nào vốn dĩ cần nhiều bước, có trạng thái nội bộ phức tạp, hoặc có thời gian thực thi không xác định sẽ phá vỡ quy tắc này.

Đây là một sự thay đổi tư duy quan trọng: bạn không còn “gọi” một hàm, mà là đang “xây dựng” một mạch logic. Nếu “bản thiết kế” của hàm đó quá lớn hoặc phức tạp để xây dựng thành một mạch có thể hoạt động trong một chu kỳ, trình biên dịch sẽ báo lỗi.

2. Các Hàm và Cấu trúc KHÔNG được Hỗ trợ (và Lý do)

Dưới đây là danh sách các hàm và cấu trúc phổ biến không được phép sử dụng trực tiếp bên trong SCTL.

a. Các cấu trúc Vòng lặp (For Loop, While Loop)

Lý do: Bản chất của các vòng lặp này là thực thi lặp đi lặp lại một đoạn mã nhiều lần. Điều này vi phạm trực tiếp nguyên tắc “một chu kỳ” của SCTL. Một SCTL bản thân nó đã là một vòng lặp ở mức phần cứng, không thể chứa một vòng lặp phần mềm khác bên trong.

b. Các hàm chờ và định thời (Wait, Loop Timer)

Lý do: Các hàm này được thiết kế để tạm dừng việc thực thi, một khái niệm của lập trình phần mềm. Trong mạch phần cứng đồng bộ của SCTL, mọi thứ đều hoạt động theo từng nhịp của xung nhịp. Không có khái niệm “chờ” hay “tạm dừng”.

c. Các hàm toán học đa chu kỳ

Lý do: Một số phép toán đòi hỏi một thuật toán lặp bên trong để tính toán kết quả. Ví dụ:

  • Chia lấy phần dư (Quotient & Remainder)
  • Căn bậc hai (Square Root)

Các thuật toán này cần nhiều chu kỳ để hoàn thành và do đó không thể được đặt trong SCTL.

d. Hầu hết các hàm số thực (Floating-Point)

Lý do: Các phép toán trên số thực (dấu phẩy động) về mặt phần cứng phức tạp hơn nhiều so với số nguyên. Chúng yêu cầu các mạch logic lớn hơn, nhiều tầng hơn, và do đó cần nhiều chu kỳ để tính toán. Các hàm số thực tiêu chuẩn không được tối ưu hóa cho việc thực thi đơn chu kỳ.

3. Các Hàm và Cấu trúc được Hỗ trợ (và Cách chúng Hoạt động)

Ngược lại, các hàm và cấu trúc có thể được triển khai bằng mạch tổ hợp đơn giản và nhanh chóng sẽ được hỗ trợ đầy đủ. Dưới đây là các ví dụ phổ biến và cách chúng được ánh xạ sang phần cứng.

a. Các hàm Logic, So sánh, và Thao tác Bit

Ví dụ: AND, OR, NOT, Equal?, Greater?, Shift, Rotate.

Cách hoạt động: Đây là những khối xây dựng cơ bản nhất của phần cứng số. Mỗi hàm này được chuyển đổi trực tiếp thành một vài cổng logic cơ bản trong các LUT (Look-Up Table), hoạt động gần như tức thời.

b. Các hàm Số học Nguyên cơ bản

Ví dụ: Cộng, Trừ, Nhân.

Cách hoạt động: Phép cộng và trừ được triển khai bằng các mạch cộng (adder circuits). Phép nhân, mặc dù phức tạp hơn, thường được ánh xạ vào các khối nhân phần cứng chuyên dụng trên chip FPGA gọi là DSP slices (Digital Signal Processing slices). Các khối này được tối ưu hóa để thực hiện phép nhân trong một chu kỳ.

c. Case Structure

Cách hoạt động: Cấu trúc này không thực thi tuần tự. Nó được triển khai hiệu quả bằng một bộ đa hợp (multiplexer – MUX) trong phần cứng. Dựa trên giá trị đầu vào của bộ chọn, MUX sẽ ngay lập tức chọn và cho tín hiệu từ một trong các case đi qua.

d. Feedback Node

Cách hoạt động: Đây là công cụ chính để tạo ra các thanh ghi (registers) trong SCTL. Một thanh ghi là một phần tử nhớ có một đầu vào, một đầu ra và một chân xung nhịp. Tại mỗi cạnh lên của xung nhịp, giá trị ở đầu vào sẽ được “chốt” và xuất hiện ở đầu ra. Feedback Node cho phép lưu trữ trạng thái và truyền dữ liệu giữa các chu kỳ lặp của SCTL.

4. Tổng kết nội dung bài học

Việc hiểu rõ giới hạn của SCTL là rất quan trọng để tránh các lỗi biên dịch và thiết kế các thuật toán hiệu quả.

  • Quy tắc “Một Chu kỳ” là Kim chỉ nam: Luôn tự hỏi “Hàm này có thể ánh xạ sang một mạch tổ hợp đủ nhanh không?” khi lập trình trong SCTL.
  • Tránh các cấu trúc lặp và chờ: Các cấu trúc điều khiển luồng thực thi của phần mềm không có ý nghĩa trong SCTL. Mọi thứ diễn ra đồng bộ theo từng nhịp đồng hồ.
  • Sử dụng Feedback Node để lưu trữ và truyền trạng thái: Đối với các thuật toán cần nhiều bước (vốn được thực hiện bằng vòng lặp trong phần mềm), hãy chia nhỏ chúng. Thực hiện một bước trong mỗi lần lặp của SCTL và sử dụng Feedback Node để lưu trữ và truyền kết quả từ bước này sang bước tiếp theo.

Sau khi đã nắm vững các quy tắc cơ bản của SCTL, Phần 2 của loạt bài sẽ bắt đầu đi sâu vào các kỹ thuật thực hành để tối ưu hóa thiết kế của bạn trên cả ba khía cạnh: Thông lượng, Thời gian và Tài nguyên.

 

Đi tới Bài 7: Các Kỹ thuật Tối ưu hóa Thông lượng (Throughput) →

 

Loạt bài chuyên sâu về Lập trình LabVIEW FPGA Hiệu suất cao.

 

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

Bài 5: Tìm hiểu Sâu về SCTL: Lợi ích và Hạn chế
Bài 7: Các Kỹ thuật Tối ưu hóa Thông lượng (Throughput)

1 những suy nghĩ trên “Bài 6: Các Hàm và Cấu trúc được Hỗ trợ trong SCTL”

  1. Pingback: Bài 5: Tìm hiểu Sâu về SCTL: Lợi ích và Hạn chế - AIOT

Để 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
  • iBOX-358H: Từ Thông Số Trên Giấy Tờ Đến Sức Mạnh Thực Chiến Của Máy Tính Công Nghiệp Thế Hệ Mới
  • [Embedded Series – Bài 30] Tổng Kết Lộ Trình Đào Tạo Lập Trình Nhúng
  • [Embedded Series – Bài 29] Tổng Ôn Kiến Thức Hệ Thống Nhúng & STM32 (Phần 2)
  • [Embedded Series – Bài 28] Tổng Ôn Kiến Thức Hệ Thống Nhúng & STM32 (Phần 1)
  • [Embedded Series – Bài 27] Chuyên Sâu Bootloader: Cơ Chế Khởi Động, Quản Lý Vector Table Và Kỹ Thuật Jump Firmware
Danh mục
  • Đào tạo
  • FPGA cơ bản
  • Giải pháp
  • Hệ thống nhúng
  • IoT trong giáo dục
  • IoT trong y tế
  • Khóa đào tạo cơ bản
  • Khóa đào tạo nâng cao
  • LabVIEW FPGA
  • LabVIEW FPGA High Performance
  • Phần cứng máy tính & Truyền thông công nghiệp
  • 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
      • Hệ thống nhúng
      • LabVIEW FPGA
      • Phần cứng máy tính & Truyền thông công nghiệp
      • FPGA cơ bản
    • Khóa đào tạo nâng cao
      • LabVIEW FPGA High Performance
    • Tài liệu
  • PCCC
  • Liên hệ
Zalo
Phone

Đăng nhập

Quên mật khẩu?