🛠️ Capstone: bộ lọc thời gian thực trên FPGA bằng Verilog

By Everwise Intern

Mục tiêu

Capstone này khép lại phần triển khai nhúng: bạn chuyển bộ lọc đã thiết kế và đã lượng tử hóa ở bài trước thành một mô-đun Verilog tổng hợp được, rồi chứng minh nó đúng bằng testbench đối chiếu với mô hình tham chiếu (golden model) trong Python.

Sản phẩm nộp gồm ba tệp:

  • fir_filter.v: mô-đun lọc, cấu hình bằng tham số N_TAP, DATA_W, COEF_W.
  • tb_fir_filter.v: testbench tự kiểm tra (self-checking), nạp vector từ tệp .hex và so sánh với kỳ vọng.
  • gen_vectors.py: sinh hệ số lượng tử hóa Q1.15 và vector kích thích, xuất cả kết quả tham chiếu.

Đặc tả kỹ thuật của hệ thống

Chốt đặc tả trước khi viết dòng Verilog đầu tiên, vì mọi quyết định về độ rộng bit đều suy ra từ đây.

Hạng mục Giá trị
Loại lọc FIR thông thấp, 31 tap, tuyến tính pha
Tần số lấy mẫu 48 kHz
Dữ liệu vào 16 bit có dấu, định dạng Q1.15
Hệ số 16 bit có dấu, Q1.15, đối xứng h[n] = h[N-1-n]
Giao diện clk, rst_n, valid_in, sample_in[15:0] → valid_out, sample_out[15:0]
Thông lượng 1 mẫu/chu kỳ, không có khoảng trống (no stall)
Độ trễ Cố định, khai báo bằng tham số LATENCY

Ba con số then chốt cần nhớ:

  • Hệ số đối xứng nên chỉ cần 16 bộ nhân thay vì 31: cộng các cặp mẫu trước, nhân sau. Phép cộng này cần thêm 1 bit dư.
  • Tích hai số Q1.15 là Q2.30, phải dịch phải 15 bit trước khi bão hòa (saturation) về 16 bit.
  • Bộ tích lũy (accumulator) phải rộng hơn 16 bit khoảng $\log_2 N$ bit dư; với 31 tap dùng 32 bit là an toàn.

Hệ số FIR tuyến tính pha thỏa _____, nhờ đó số bộ nhân giảm còn khoảng _____. Tích hai toán hạng Q1.15 cho kết quả định dạng _____, nên cần dịch phải _____ bit. Bộ tích lũy cần thêm khoảng _____ bit dư (guard bits) để tránh tràn khi cộng dồn.

In this lesson

  • Lộ trình thực hiện
  • Tiêu chí nghiệm thu
  • Bảng ôn tập nhanh
  • Chốt capstone và bước tiếp theo

About this course

Part of Thiết kế DSP trên FPGA: triển khai bộ lọc thời gian thực — Khóa học ngắn dành cho người đã nắm lý thuyết DSP cơ bản, đi theo trục chính là triển khai nhúng thời gian thực. Người học đi từ đặc tả thiết kế, thiết kế bộ lọc FIR/IIR, mô phỏng và kiểm chứng bằng scipy.signal, đến kiến trúc pipeline trên FPGA và capstone triển khai bộ lọc thời gian thực bằng Verilog.

Level
Intermediate
Language
Vietnamese
Focus
Triển khai nhúng thời gian thực trên FPGA (Verilog/VHDL), thiết kế pipeline và tài nguyên song song Thiết kế bộ lọc số FIR và IIR (cửa sổ, Parks-McClellan, bilinear transform) Mô phỏng và kiểm thử bằng MATLAB/Python (scipy.signal)
Practice
Capstone project
Time
~3.5h
Voice
Một giảng viên hướng dẫn luận văn, chặt chẽ về lý thuyết và phương pháp luận

This lesson is premium content. Sign in and purchase the course to view the full content. Sign in