Giới thiệu dự án

Bệnh lý tim mạch (Cardiovascular Diseases - CVDs) hiện là nguyên nhân gây tử vong hàng đầu trên toàn cầu. Theo thống kê từ Tổ chức Y tế Thế giới (WHO), mỗi năm có khoảng 17,9 triệu người tử vong do các biến chứng tim mạch, chiếm 32% tổng số ca tử vong trên thế giới. Trong đó, các cơn nhồi máu cơ tim cấp và đột quỵ thường xuất phát từ những rối loạn nhịp tim (Arrhythmia) diễn tiến âm thầm. Điện tâm đồ (Electrocardiogram - ECG) là công cụ chẩn đoán không xâm lấn then chốt nhằm ghi nhận hoạt động điện sinh học của tim, phản ánh trực tiếp sự co bóp của các buồng tâm nhĩ và tâm thất thông qua các sóng đặc trưng $P$, phức bộ $QRS$, sóng $T$, và các khoảng thời gian $PR$, $RR$, $QT$.

           R
          / \
         /   \
  P     /     \     T
 _/\_  /       \_  _/\_
/    \/         \/     \
     Q           S
|<--- PR --->|
|<-- QRS -->|
|<------- QT ------->|
|<------- RR Interval ------->|

Việc theo dõi liên tục và tự động phát hiện nhịp tim bất thường trên các thiết bị y tế nhúng đối mặt với hai thách thức kỹ thuật lớn:

  1. Hạn chế của phương pháp dựa trên đặc điểm (Feature-based): Phụ thuộc chặt chẽ vào việc trích xuất chính xác các điểm cơ sở (Fiducial Points). Khi tín hiệu bị nhiễu cơ (EMG), trôi đường cơ sở (Baseline Wander) hoặc nhiễu tần số nguồn (50/60 Hz), thuật toán dễ nhận diện sai đỉnh $R$ và các ranh giới sóng.
  2. Hạn chế của phương pháp dựa trên hình dạng (Morphology-based): Gặp khó khăn khi phân loại những dạng nhịp bất thường có hình thái gần giống nhịp bình thường (như nhịp nhĩ sớm - PAC), hoặc đòi hỏi dung lượng bộ nhớ lớn để lưu trữ mẫu đối chuẩn (Template).
  3. Nút thắt tính toán trên nền tảng phần mềm nhúng: Các bộ xử lý tuần tự (MCU/CPU) không đáp ứng được yêu cầu xử lý đa kênh thời gian thực với mức tiêu thụ năng lượng thấp.

Khóa luận tốt nghiệp chuyên ngành Kỹ thuật Máy tính tại Trường Đại học Công nghệ Thông tin - ĐHQG-HCM, do sinh viên Phạm Duy Lộc và Văn Ngọc Thành thực hiện dưới sự hướng dẫn của TS. Trần Thị Điểm (2024), đã đề xuất giải pháp thiết kế kiến trúc phần cứng chuyên dụng trên FPGA. Giải pháp này kết hợp thuật toán phân cụm mẫu thích ứng (Template Clustering) nhằm tự động phát hiện và phân loại các dạng nhịp tim bất thường trong thời gian thực.

Dự án xác định 4 mục tiêu kỹ thuật cụ thể:

  1. Xây dựng và tối ưu hóa giải thuật phân cụm mẫu 2 giai đoạn (Phân cụm thích ứng và Phân loại nhịp) kết hợp đồng thời tỷ lệ khoảng cách $RR$ và hệ số tương quan Pearson ($r$).
  2. Thiết kế hoàn chỉnh kiến trúc phần cứng ở mức Register-Transfer Level (RTL) bằng ngôn ngữ Verilog HDL, ứng dụng các kỹ thuật quản lý bộ nhớ đệm BRAM và điều khiển FSM (Finite State Machine).
  3. Tích hợp hệ thống trên vi mạch (System-on-Chip - SoC) thông qua giao thức bus AMBA AXI4 trên nền tảng FPGA Xilinx Zynq UltraScale+ MPSoC ZCU102.
  4. Đạt độ chính xác chẩn đoán ($\text{Accuracy} \ge 92%$), độ đặc hiệu ($\text{Specificity} \ge 80%$), tần số xung nhịp cực đại ($f_{max} \ge 150\text{ MHz}$) và độ trễ xử lý $\le 1\text{ s}$ trên mỗi bản ghi dữ liệu chuẩn.

Phạm vi nghiên cứu tập trung vào việc tiền xử lý và phân loại 4 nhóm nhịp tim chính: Nhịp bình thường (Normal - $N$), Co tâm thất sớm (Premature Ventricular Contraction - $V$), Nhịp nhĩ sớm (Premature Atrial Contraction - $A$), và Nhịp kết hợp giữa thất và bình thường (Fusion of ventricular and normal beat - $F$), được kiểm chứng trên tập dữ liệu chuẩn y tế MIT-BIH Arrhythmia Database từ PhysioNet. Giới hạn đề tài chưa mở rộng sang việc phân loại đa đạo trình chuyên sâu (12-lead ECG) và tập trung khai thác đạo trình MLII.


Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Các phương pháp phát hiện nhịp bất thường hiện nay được chia thành ba nhóm tiếp cận chính:

Phương pháp Ưu điểm Nhược điểm Khả năng triển khai phần cứng
Dựa trên đặc điểm (Feature-based) Tiết kiệm bộ nhớ, tính toán nhanh dựa trên khoảng $RR$ Dễ sai sót khi mất điểm mốc; không phân biệt được nhịp kết hợp $F$ Trung bình (cần logic trích xuất đỉnh chính xác)
Dựa trên hình dạng (Morphology-based) Nhận diện tốt các biến dạng cơ thất ($V$, $F$) Tốn bộ nhớ lưu mẫu; bỏ sót nhịp nhĩ sớm ($A$) do hình thái tương tự nhịp $N$ Thấp (đòi hỏi dung lượng RAM và bộ nhân lớn)
Phân cụm mẫu lai (Đề xuất) Kết hợp tỷ lệ $RR$ và độ tương quan Pearson; tự động cập nhật trọng số Phức tạp trong việc điều phối luồng dữ liệu RTL Tối ưu hóa cao trên kiến trúc song song FPGA

Phân tích yêu cầu chức năng hệ thống theo mô hình MoSCoW:

  • Must have: Module khởi tạo cụm mẫu ban đầu; Module cập nhật cụm mẫu theo trung bình có trọng số; Module tối ưu hóa loại bỏ cụm ngoại lai; Giao tiếp dữ liệu bus AXI4-Lite/AXI4-Stream.
  • Should have: Khối phân loại 4 loại nhịp ($N, V, A, F$); Tần số hoạt động trên 150 MHz; Khả năng nạp và đọc dữ liệu qua DMA/BRAM.
  • Could have: Tự động điều chỉnh ngưỡng tương quan động theo từng bệnh nhân.
  • Won't have (trong phiên bản hiện tại): Bộ phân tích đa đạo trình đồng thời 12 kênh và mô hình học sâu CNN tích hợp.

Thiết kế hệ thống

Hệ thống được tổ chức theo kiến trúc SoC dị thể (Heterogeneous SoC), kết hợp giữa Hệ thống xử lý (Processing System - PS) chứa lõi vi xử lý ARM và Vùng logic khả trình (Programmable Logic - PL) trên chip Xilinx Zynq UltraScale+.

+-------------------------------------------------------------------------------+
|                      Xilinx Zynq UltraScale+ MPSoC                            |
|                                                                               |
|  +---------------------------+              +------------------------------+  |
|  | Processing System (PS)    |              | Programmable Logic (PL)      |  |
|  | - ARM Cortex-A53 Core     |              |                              |  |
|  | - DDR4 Controller         |              |  +------------------------+  |  |
|  | - System Control Firmware |              |  | AXI SmartConnect       |  |  |
|  +-------------+-------------+              |  +-----------+------------+  |  |
|                |                            |              |               |  |
|         AXI4 Interconnect                   |    +---------+----------+    |  |
|                +-------------------------------->| Custom ECG IP Core |    |  |
|                                             |    |                    |    |  |
|                                             |    | +----------------+ |    |  |
|                                             |    | | Init & Update  | |    |  |
|                                             |    | +----------------+ |    |  |
|                                             |    | | Optimization   | |    |  |
|                                             |    | +----------------+ |    |  |
|                                             |    | | Classification | |    |  |
|                                             |    | +----------------+ |    |  |
|                                             |    | | Dual-Port BRAM | |    |  |
|                                             |    | +----------------+ |    |  |
|                                             |    +--------------------+    |  |
|                                             |                              |  |
|                                             |  +------------------------+  |  |
|                                             |  | Processor System Reset |  |  |
|                                             |  +------------------------+  |  |
|                                             +------------------------------+  |
+-------------------------------------------------------------------------------+

Stack công nghệ và công cụ thiết kế:

  • Ngôn ngữ mô tả phần cứng: Verilog HDL (IEEE 1364-2001).
  • Môi trường phát triển: AMD Xilinx Vivado Design Suite v2022.x / v2023.x.
  • IP Core sử dụng: Block Memory Generator v8.4 (IP BRAM 32-bit width, depth 3000 words), AXI SmartConnect v1.0, Processor System Reset v5.0.
  • Phần cứng mục tiêu: Xilinx ZCU102 Evaluation Board (FPGA XCZU9EG-2FFVB1156E MPSoC).

Thiết kế bộ nhớ và đường truyền: Hệ thống sử dụng các khối Dual-Port BRAM chuyên dụng để chứa các vector sóng điện tâm đồ ($S[i]$) và các vector mẫu trung tâm ($C_T$). Nhằm tối ưu diện tích và chân giao tiếp, một bộ dồn kênh 2-to-1 Multiplexer (MUX 2-1) kết hợp thanh ghi điều khiển được tích hợp tại đầu vào BRAM, cho phép chuyển đổi linh hoạt giữa dữ liệu nạp từ bus ngoại vi và dữ liệu cập nhật nội tại từ datapath.

Giao thức AXI4 được thiết kế chuẩn hóa với 5 kênh độc lập: Read Address (AR), Read Data (R), Write Address (AW), Write Data (W), và Write Response (B), áp dụng cơ chế bắt tay 2 bước (VALID/READY) để đảm bảo không thất thoát dữ liệu giữa miền xung nhịp PS và PL.

Methodology

Phương pháp luận thiết kế hệ thống tuân theo quy trình Hardware/Software Co-Design tiêu chuẩn:

[Mô hình hóa phần mềm (Python/C)] ---> [Định dạng số dấu phẩy tĩnh (Fixed-point)]
                                                |
                                                v
[Tổng hợp & Thực thi (Vivado)] <--- [Mô tả phần cứng RTL (Verilog HDL)]
            |
            v
[Phân tích Timing & Tài nguyên] ----> [Kiểm thử trên Kit ZCU102 FPGA]

Kế hoạch thực hiện dự án:

  • Cột mốc 1 (Tuần 1 - 4): Nghiên cứu lý thuyết giải thuật Pan-Tompkins, hệ số Pearson và kiểm chứng thuật toán phân cụm trên tập MIT-BIH bằng phần mềm.
  • Cột mốc 2 (Tuần 5 - 10): Thiết kế chi tiết kiến trúc RTL cho 3 khối chức năng: Khởi tạo/Cập nhật, Tối ưu hóa cụm, và Phân loại nhịp.
  • Cột mốc 3 (Tuần 11 - 14): Mô phỏng hành vi (Behavioral Simulation) trên Vivado Simulator, đóng gói IP Core và tích hợp hệ thống SoC với AXI SmartConnect.
  • Cột mốc 4 (Tuần 15 - 18): Thực thi cấu hình bitstream lên FPGA ZCU102, đo đạc thông số thời gian, công suất và phân tích độ chính xác chẩn đoán.

Implementation và kết quả

Development process

Thuật toán xử lý và phân loại nhịp tim đề xuất được chia thành 4 pha liên hoàn:

1. Tiền xử lý phát hiện phức bộ QRS (Pan-Tompkins Algorithm)

Tín hiệu ECG từ cơ sở dữ liệu MIT-BIH (tần số lấy mẫu ban đầu 360 Hz hoặc chuẩn hóa 200 Hz) được đưa qua bộ lọc thông dải số (Bandpass Filter, $5 - 12\text{ Hz}$) tạo bởi sự ghép tầng của bộ lọc thông thấp (Low-pass Filter): $$y(nT) = 2y(nT - T) - y(nT - 2T) + x(nT) - 2x(nT - 6T) + x(nT - 12T)$$ và bộ lọc thông cao (High-pass Filter): $$y(nT) = 32x(nT - 16T) - [y(nT - T) + x(nT) - x(nT - 32T)]$$

Tiếp theo, tín hiệu được tính đạo hàm 5 điểm xấp xỉ tuyến tính đến 30 Hz: $$y(nT) = \frac{1}{8T} [-x(nT - 2T) - 2x(nT - T) + 2x(nT + T) + x(nT + 2T)]$$ Bình phương biên độ để khuếch đại năng lượng $QRS$: $y(nT) = [x(nT)]^2$, sau đó tích hợp qua cửa sổ di chuyển (Moving Window Integrator với $N = 30$ mẫu): $$y(nT) = \frac{1}{N} \sum_{k=0}^{N-1} x(nT - kT)$$ Các đỉnh $R$ được định vị bằng hệ thống hai ngưỡng thích ứng (Adaptive Thresholds).

2. Khởi tạo và Cập nhật cụm mẫu (Initialization & Update)

Mỗi mẫu cụm được cấu thành bởi bộ 3 thông số: Dạng sóng nhịp ($C_T$), Khoảng cách $RR$ ($C_RR$), và Số lượng nhịp tích lũy ($C_C$). Tỷ lệ khoảng cách $RR$ giữa nhịp bình thường chuẩn ($RR_N$) và nhịp khảo sát ($RR_A$) được tính theo công thức: $$RR_{ratio} = \min\left(1, \frac{RR_N}{RR_A}\right)$$ Độ tương đồng hình thái sóng giữa nhịp hiện tại $S[i]$ và mẫu trung tâm $C_T[p]$ được lượng hóa thông qua hệ số tương quan Pearson $r$: $$r_{xy} = \frac{\sum_{k=1}^{n} (X_k - \bar{X})(Y_k - \bar{Y})}{\sqrt{\sum_{k=1}^{n} (X_k - \bar{X})^2 \sum_{k=1}^{n} (Y_k - \bar{Y})^2}}$$

Khi nhịp mới có $RR_{ratio}$ và $r$ thỏa mãn ngưỡng tương quan, cụm mẫu $p$ được cập nhật theo trung bình có trọng số: $$C_T[p] = \frac{C_C[p] \cdot C_T[p] + S[i]}{C_C[p] + 1}$$ $$C_RR[p] = \frac{C_C[p] \cdot C_RR[p] + listRR_intervals[i]}{C_C[p] + 1}$$ $$C_C[p] = C_C[p] + 1$$

3. Tối ưu hóa cụm mẫu (Optimization)

Cụm có số nhịp $C_C$ lớn nhất được chọn làm cụm đại diện cho nhịp bình thường (Normal Baseline). Các cụm ngoại lai không đạt ngưỡng tương đồng sẽ bị loại bỏ hoặc gom nhóm, giúp giảm thiểu tối đa không gian lưu trữ BRAM.

4. Hiện thực phần cứng bằng Verilog HDL

Kỹ thuật điều khiển FSM đa giai đoạn sử dụng Flag bắt tay:

// Finite State Machine điều phối chuyển task giữa các module
always @(posedge clk or posedge rst) begin
    if (rst) begin
        setup <= 0;
        index4 <= 0;
        done_template <= 0;
    end else if (done_class_beat == 1'b1 && done_template == 1'b0) begin
        if (index4 < 100) begin // Luu template = center_vector[max]
            case (setup)
                3'd0: begin
                    setup <= 3'd1;
                    en_tc <= 1'b1;
                    wr_tc <= 1'b0;
                    addr_tc <= max_groups * 100 + index4;
                end
                3'd1: setup <= 3'd2;
                3'd2: begin
                    setup <= 3'd3;
                    en_template <= 1'b1;
                    wr_template <= 1'b1;
                    addr_template <= index4;
                    in_template <= out_tc;
                end
                3'd3: setup <= 3'd4;
                3'd4: begin
                    setup <= 3'd0;
                    wr_template <= 1'b0;
                    index4 <= index4 + 1;
                end
            endcase
        end else begin
            done_template <= 1'b1;
            en_tc <= 1'b0;
            en_template <= 1'b0;
            wr_tc <= 1'b0;
            wr_template <= 1'b0;
        end
    end
end

Kỹ thuật ghép nối BRAM IP với bộ Mux 2-1:

// Ghép nối BRAM IP với bộ Mux 2-1 chọn nguồn ghi dữ liệu
integer addr_RR_ratio = -1;
reg en_RR_ratio = 0, wr_RR_ratio = 0, s_mux1 = 0;
wire signed [31:0] out_RR_ratio, out_mux1;
reg signed [31:0] in_RR_ratio = 32'b0;

// Module MUX 2-1 tham số hóa độ rộng 32-bit
mux_param #(32) mux1 (
    .sel(s_mux1),
    .in0(RR_ratio_ab),
    .in1(in_RR_ratio),
    .out(out_mux1)
);

// Khởi tạo lõi Block Memory Generator từ thư viện Xilinx IP
BRAM_RR_ratio_ab ram_RR_ratio (
    .clka(clk),
    .ena(en_RR_ratio),
    .wea(wr_RR_ratio),
    .addra(addr_RR_ratio),
    .dina(out_mux1),
    .douta(out_RR_ratio)
);

Testing và validation

Hệ thống được kiểm thử toàn diện trên 8 tập bản ghi chuẩn từ cơ sở dữ liệu MIT-BIH Arrhythmia Database (Records: 100, 101, 102, 103, 106, 107, 108, 109). Mỗi bản ghi bao gồm 30 phút tín hiệu ECG hai kênh với đầy đủ nhãn phân loại từ các chuyên gia tim mạch.

Kết quả tổng hợp và thực thi trên FPGA Xilinx ZCU102:

  • Ràng buộc thời gian (Timing Constraints): Đạt giá trị chu kỳ xung nhịp $T_{clk} = 6,024\text{ ns}$, tương đương tần số hoạt động cực đại $f_{max} = 166,00\text{ MHz}$ mà không vi phạm Setup/Hold Slack (Worst Negative Slack - WNS $> 0$).
  • Thời gian xử lý: Thời gian trích xuất và phân loại cho mỗi mẫu tín hiệu xấp xỉ $1,0\text{ giây}$, hoàn toàn đáp ứng tiêu chuẩn xử lý dòng dữ liệu sinh học thời gian thực (Real-time stream).
Tần số hoạt động cực đại (fmax):
+-------------------------------------------------------+
| Đề xuất (ZCU102): 166.00 MHz                          |
| Nghiên cứu [18]:  95.00 MHz                           |
| Nghiên cứu [19]:  50.00 MHz                           |
+-------------------------------------------------------+
0MHz            50MHz           100MHz          150MHz        200MHz

Kết quả đạt được

Các chỉ số thống kê chẩn đoán y tế được tính toán theo tiêu chuẩn: $$\text{Sensitivity (Độ nhạy - Se)} = \frac{TP}{TP + FN}$$ $$\text{Specificity (Độ đặc hiệu - Sp)} = \frac{TN}{TN + FP}$$ $$\text{Accuracy (Độ chính xác - Acc)} = \frac{TP + TN}{TP + TN + FP + FN}$$

Tổng hợp kết quả phân loại trên các bản ghi MIT-BIH:

  • Độ chính xác tổng thể (Accuracy): Đạt 92,96%.
  • Độ đặc hiệu (Specificity): Đạt 80,35%.
  • Phân loại thành công: 4 dạng nhịp tim lâm sàng ($N, V, A, F$).

Đổi mới và đóng góp

Các cải tiến kỹ thuật cốt lõi

  1. Cơ chế phân cụm mẫu 2 tiêu chí đồng thời ($RR_{ratio}$ + Pearson): Khắc phục triệt để nhược điểm của các nghiên cứu đơn tiêu chí. Việc kết hợp tỷ lệ $RR$ giải quyết bài toán phát hiện nhịp ngoại tâm thu thất (PVC) và ngoại tâm thu nhĩ (PAC), trong khi hệ số Pearson xử lý chính xác các trường hợp nhịp kết hợp thất - bình thường (Fusion Beat $F$) vốn có khoảng $RR$ không đổi nhưng biến dạng sóng.
  2. Kỹ thuật cập nhật trực tiếp và giải phóng bộ nhớ (On-the-fly Weighted Average): Thay vì lưu trữ toàn bộ chuỗi xung ECG thô vào bộ nhớ ngoài (DDR4), hệ thống tính toán trung bình có trọng số trực tiếp cho vector cụm mẫu ngay khi có nhịp mới. Kỹ thuật này giảm dung lượng chiếm dụng BRAM trên FPGA hơn 60%.
  3. Sắp xếp cụm theo trọng số ưu tiên: Sắp xếp các cụm mẫu theo số lượng nhịp giảm dần giúp quá trình đối sánh nhịp mới dừng ngay ở cụm đầu tiên (trong hơn 85% trường hợp nhịp bình thường), giúp giảm thiểu độ phức tạp tính toán và tiết kiệm năng lượng động (Dynamic Power).

So sánh với các công trình nghiên cứu hiện có

Công trình nghiên cứu Nền tảng triển khai Tần số ($f_{max}$) Số loại nhịp phân loại Độ chính xác (Acc) / Độ nhạy (Se)
Nghiên cứu [17] Phần cứng FPGA Thấp ($< 30\text{ MHz}$) 16 loại Độ chính xác thấp, không khả thi cho Real-time
Nghiên cứu [18] Phần cứng FPGA $95\text{ MHz}$ 2 loại ($N, V$) $\text{Acc} = 100%$ (Chỉ xét dạng sóng đỉnh $R$)
Nghiên cứu [19] Phần cứng FPGA $50\text{ MHz}$ 4 loại ($N, V, A, F$) $\text{Se} = 75,00%$ (Chưa công bố Acc tổng thể)
Nghiên cứu [20] Phần mềm (PC/C++) N/A (Offline) 4 loại ($N, V, A, F$) $\text{Acc} = 96,86%$ (Chỉ chạy trên 8 bản ghi chọn lọc)
Nghiên cứu [21] Phần mềm (PC/Python) N/A (Offline) 4 loại ($N, S, V, F$) $\text{Acc} = 99,93%$ (Tốn tài nguyên tính toán)
Giải pháp đề xuất FPGA Zynq ZCU102 $166,00\text{ MHz}$ 4 loại ($N, V, A, F$) $\text{Acc} = 92,96%$, $\text{Sp} = 80,35%$

So với các giải pháp phần cứng trước đây, thiết kế đề xuất cải thiện 74,7% tần số hoạt động so với nghiên cứu [18] (166 MHz so với 95 MHz) và 232% so với nghiên cứu [19] (166 MHz so với 50 MHz), đồng thời đảm bảo phân loại ổn định 4 lớp nhịp tim bệnh lý.


Ứng dụng thực tế và triển khai

Kịch bản ứng dụng thực tiễn

  1. Thiết bị Holter ECG đeo tay thông minh (Wearable Edge-AI Monitor): Nhờ mức tiêu thụ tài nguyên phần cứng thấp và tốc độ xử lý cao, IP Core có thể được đóng gói vào các chip FPGA công suất thấp (như Artix-7 hoặc Zynq-7000) tích hợp trong máy theo dõi tim mạch di động 24/7.
  2. Bộ tiền xử lý thông minh cho phòng Hồi sức cấp cứu (ICU): Đóng vai trò là module phần cứng lọc và phân loại tức thời tín hiệu ECG trước khi gửi cảnh báo nguy cấp đến hệ thống trung tâm của bệnh viện, giảm thiểu độ trễ báo động.
  3. Công cụ tạo nhãn tự động cho tập dữ liệu Y tế (Auto-labeling Engine): Hệ thống cho phép thay đổi linh hoạt các ngưỡng giá trị ($RR_{ratio}$ và Pearson) để tự động trích xuất và gán nhãn hàng nghìn giờ dữ liệu ECG thô, phục vụ cho việc huấn luyện các mô hình Machine Learning / Deep Learning phức tạp hơn.
+------------------+      +-------------------+      +----------------------+
|  Bệnh nhân đeo   | ---> | Module FPGA Edge  | ---> | Cảnh báo Bác sĩ/     |
|  Điện cực ECG    |      | Phân loại nhịp    |      | Máy chủ Trung tâm    |
+------------------+      | (f = 166 MHz)     |      +----------------------+
                          +-------------------+

Yêu cầu triển khai và tích hợp hệ thống

  • Phần cứng yêu cầu: Kit phát triển Xilinx Zynq UltraScale+ MPSoC ZCU102, Cáp nạp JTAG Platform Cable USB II, Cảm biến thu nhận tín hiệu điện tim ECG Front-End (ví dụ AD8232 hoặc ADS1298) kết nối qua giao tiếp SPI/GPIO.
  • Phần mềm & Toolchain: AMD Xilinx Vivado ML Edition 2022+, PetaLinux OS / FreeRTOS chạy trên lõi ARM Cortex-A53 để quản lý tầng ứng dụng và truyền dữ liệu.

Hạn chế và hướng phát triển

Hạn chế kỹ thuật hiện tại

  • Giải thuật hiện tại được kiểm thử tối ưu trên tín hiệu đơn đạo trình (Single-lead MLII). Trong các ca lâm sàng phức tạp, việc thiếu các đạo trình ngực ($V1 - V6$) có thể ảnh hưởng đến khả năng phát hiện một số rối loạn dẫn truyền nhánh.
  • Các giá trị ngưỡng tương quan Pearson và tỷ lệ $RR$ hiện được cấu hình cố định theo kinh nghiệm kiểm thử, chưa có cơ chế tự động học thích ứng theo từng thể trạng riêng biệt của bệnh nhân.

Hướng nâng cấp và mở rộng

  • Mở rộng đa kênh (Multi-lead ECG): Thiết kế song song hóa các pipeline xử lý trên FPGA để phân tích đồng thời 12 đạo trình tiêu chuẩn mà không làm suy giảm tần số $f_{max}$.
  • Tích hợp bộ học ngưỡng mờ (Fuzzy Threshold Tuning): Bổ sung khối logic mờ hoặc mạng nơ-ron trọng số thấp để tự động vi chỉnh ngưỡng tương quan theo thời gian thực.
  • Chuyển đổi sang ASIC (Application-Specific Integrated Circuit): Tối ưu hóa kiến trúc RTL đề xuất để sản xuất vi mạch chuyên dụng tiêu thụ năng lượng ở mức miliwatt (mW), thích hợp tuyệt đối cho thiết bị y tế cấy ghép.

Đối tượng hưởng lợi

  • Sinh viên & Học viên cao học ngành Kỹ thuật Máy tính / Điện tử y sinh: Nguồn tài liệu tham khảo hoàn chỉnh về quy trình thiết kế phần cứng RTL, làm chủ giao thức bus AXI4, kỹ thuật điều khiển BRAM và phương pháp xử lý tín hiệu y sinh trên FPGA.
  • Kỹ sư thiết kế FPGA & Hệ thống nhúng: Bộ khung kiến trúc (Design Pattern) về FSM phối hợp cờ báo hiệu, kỹ thuật ghép nối MUX-BRAM và tối ưu hóa thời gian thực (Timing Closure).
  • Doanh nghiệp Thiết bị Y tế (MedTech): Giải pháp lõi IP Core đã được kiểm chứng với độ chính xác cao, sẵn sàng thương mại hóa và tích hợp vào các thiết bị đo điện tim cầm tay thế hệ mới.
  • Nhà nghiên cứu Y sinh & Bác sĩ tim mạch: Công cụ hỗ trợ chẩn đoán tự động đáng tin cậy, giúp giảm tải khối lượng công việc phân tích biểu đồ ECG thủ công và hạn chế sai sót chủ quan.

Câu hỏi thường gặp

1. Yêu cầu phần cứng tối thiểu để tổng hợp và triển khai thiết kế này là gì?

Hệ thống yêu cầu bo mạch phát triển FPGA hỗ trợ họ Xilinx Zynq-7000 hoặc Zynq UltraScale+ (khuyến nghị kit ZCU102 với chip XCZU9EG). Công cụ phần mềm yêu cầu Xilinx Vivado Design Suite 2020.1 trở lên với dung lượng RAM máy tính tối thiểu 16 GB để thực hiện Synthesis và Implementation.

2. Vì sao giải thuật kết hợp $RR_{ratio}$ và hệ số Pearson lại vượt trội hơn các phương pháp truyền thống?

Phương pháp đơn lẻ dựa trên khoảng cách $RR$ sẽ bỏ sót nhịp kết hợp ($F$) do thời gian giữa các đỉnh $R$ không đổi. Ngược lại, phương pháp chỉ dùng hình dạng sẽ nhận diện nhầm nhịp nhĩ sớm ($A$) là nhịp bình thường ($N$) do dạng sóng tương đồng. Việc kết hợp đồng thời cả 2 tiêu chí cho phép bao quát toàn bộ đặc trưng hình học và thời gian của xung tim.

3. Thiết kế có thể giao tiếp với các bộ xử lý mềm như MicroBlaze hoặc chip ARM ngoài không?

Có. Thiết kế IP Core tuân thủ nghiêm ngặt tiêu chuẩn giao diện kết nối AXI4 của ARM. Người dùng có thể kết nối trực tiếp IP Core vào vi xử lý MicroBlaze trên FPGA hoặc hệ thống chip xử lý ARM Cortex thông qua các thanh ghi AXI4-Lite và bộ điều khiển DMA.

4. Tài nguyên Block RAM (BRAM) trên FPGA được quản lý như thế nào để không bị tràn bộ nhớ?

Hệ thống sử dụng các IP BRAM cấu hình độ rộng 32-bit và độ sâu 3000 từ. Nhờ cơ chế cập nhật trung bình có trọng số tuần tự (On-the-fly), dữ liệu sóng cũ được tích lũy trực tiếp vào vector mẫu và giải phóng ngay, không cần lưu trữ toàn bộ lịch sử xung tim, giúp lượng tài nguyên BRAM tiêu thụ luôn nằm trong ngưỡng an toàn của chip.

5. Khả năng đáp ứng thời gian thực (Real-time) của hệ thống được chứng minh như thế nào?

Với tần số xung nhịp $f_{max} = 166,00\text{ MHz}$, hệ thống chỉ mất xấp xỉ $1,0\text{ giây}$ để hoàn tất phân loại toàn bộ một tập mẫu nhịp phức tạp. Tốc độ này nhanh hơn hàng trăm lần so với tốc độ phát xung sinh học tự nhiên của tim người (trung bình 60 - 100 nhịp/phút, tức 1 nhịp mỗi 0,6 - 1,0 giây), đảm bảo không xảy ra trễ dữ liệu.


Kết luận

Đề tài "Thiết kế phần cứng phát hiện nhịp tim bất thường trong tín hiệu điện tâm đồ dựa trên thuật toán phân cụm mẫu" của nhóm tác giả Phạm Duy Lộc, Văn Ngọc Thành dưới sự hướng dẫn của TS. Trần Thị Điểm (Trường Đại học Công nghệ Thông tin - ĐHQG-HCM) đã giải quyết trọn vẹn bài toán tự động hóa phân tích ECG thời gian thực trên nền tảng phần cứng chuyên dụng.

Bằng việc kết hợp sáng tạo giữa tỷ lệ khoảng $RR$ và độ tương quan Pearson trong một kiến trúc RTL tối ưu trên kit FPGA Xilinx Zynq UltraScale+ MPSoC ZCU102, hệ thống đạt độ chính xác ấn tượng 92,96%, độ đặc hiệu 80,35% và tần số vận hành đỉnh cao 166 MHz. Kết quả này không chỉ chứng minh tính khả thi vượt trội của phương pháp đồng thiết kế phần cứng/phần mềm trong y tế số, mà còn mở ra triển vọng to lớn trong việc sản xuất các thiết bị giám sát tim mạch cá nhân thông minh, góp phần nâng cao chất lượng chăm sóc sức khỏe cộng đồng.