How We Verify Custom Hardware
Bài tóm tắt Hudson River Trading 2021 3. Quy mô lớn Độ khó: Khó
Hudson River Trading · 2021 · 3. Quy mô lớn · Độ khó: Khó — bài gốc
Bối cảnh
- HRT dùng FPGA trong hệ giao dịch để giảm latency, chịu burst dữ liệu tốt hơn và giảm độ phức tạp. Phần cứng song song ở mức phần mềm hiếm gặp nên dễ lỗi timing, và mỗi thiết bị phải đúng chức năng, tuân thủ risk check của HRT và luật của sàn.
- Mục tiêu của môi trường verification: đúng chức năng; năng suất (giao dịch nhạy với thời gian ra thị trường); dùng lại code C++/Python vốn đã nói chuyện với cùng các sàn (tránh bug do viết lại lần hai); bắt bug sớm ngay khi vào codebase; tận dụng compute sẵn có.
Thay đổi chính
- Loại các cách phổ biến: test vector (bảng chân lý theo thời gian; giòn, khó với giao diện song song, mất ngữ cảnh khi debug, không cho nhiều kết quả đúng); testbench viết bằng HDL và UVM (vẫn là Verilog, kém biểu đạt và kém công cụ hơn C++/Python; HRT mượn khái niệm driver/monitor của UVM).
- Chọn co-simulation: simulator chỉ mô phỏng Verilog, test viết bằng ngôn ngữ khác qua FFI của Verilog (VPI/DPI).
- cocotb (Python, độc lập simulator, có scheduler coroutine cho tính song song của phần cứng) + Verilator (dịch Verilog thành class C++, mô phỏng trong process). Chỉ dùng simulator thương mại khi cần tính năng Verilator chưa hỗ trợ (delay control, Verilog mã hoá).
- Không vướng license nên mỗi developer chạy được hàng nghìn mô phỏng cùng lúc thay vì tranh nhau vài license.
- Test mô phỏng toàn chip được viết để chạy được cả trong lab trên FPGA thật: bắt chỗ mô phỏng lệch phần cứng (timing constraint, script, bug công cụ) và chạy ở thang thời gian mô phỏng không với tới.
- CI (Jenkins và nền tảng khác): tìm hồi quy, thử seed ngẫu nhiên mới, build, chạy test trong lab, deploy; chạy công cụ EDA trên nền tảng vốn cho phần mềm có khó nhưng theo HRT là đáng.
Vì sao
- Dùng ngôn ngữ và hệ sinh thái chung của công ty cho cả kiểm chứng phần cứng, và để license không còn là trần của số test chạy được.
Bài học cho SWE
- Tách "mô phỏng" khỏi "kiểm thử": công cụ chuyên dụng chỉ làm phần nó giỏi, logic test viết bằng ngôn ngữ mạnh nhất có sẵn.
- License công cụ là giới hạn ẩn của CI; công cụ mở cho phép song song hoá ồ ạt.
- Một test chạy được cả trên mô phỏng lẫn phần cứng thật là lưới an toàn cho chính công cụ mô phỏng.
Liên quan
- Hudson River Trading 2026 (bước tiếp của cùng hướng công cụ mở cho phần cứng) · Hudson River Trading 2022
- Hệ thống độ trễ thấp (low latency) · CI và build ở quy mô lớn · Kiểm thử độ tin cậy (chaos, fault injection, mô phỏng tất định)
Hệ thống độ trễ thấp (low latency)CI và build ở quy mô lớnKiểm thử độ tin cậy (chaos, fault injection, mô phỏng tất định)
#FPGA#hardware verification#SystemVerilog#test vectors#HDL testbench#UVM#co-simulation#VPI#DPI#cocotb#Verilator#proprietary simulator licenses#lab testing#Jenkins
Được nhắc tới trong
Chủ đề (3)
Công ty (1)
Bài tóm tắt (1)