Bên cạnh việc thiết kế RTL, một giai đoạn cực kỳ quan trọng khác trong chuồi thiết kế chip là Kiểm tra (xác minh) Thiết kế – Design Verification.

Design Verification (DV) là gì?
DV là quá trình kiểm tra và đảm bảo thiết kế hoạt động đúng với các yêu cầu đề ra (specification). Mục tiêu chính là phát hiện và khắc phục các lỗi (bug) trước khi RTL được tổng hợp (synthesize) và sản xuất (manufacture).
Nếu RTL Design là viết code để tạo ra một mạch số, thì Verification chính là viết code để “thử” mạch số đó, đảm bảo nó hoạt động đúng chức năng mong muốn.
Verification hoạt động như thế nào?
Verification sử dụng các mô hình kiểm tra (testbench) để gửi các tín hiệu đầu vào và quan sát đầu ra của thiết kế, so sánh kết quả thu được với kết quả mong muốn. Việc kiểm tra được thực hiện thông qua nhiều kỹ thuật khác nhau như:
- Mô phỏng (Simulation): Kiểm tra thiết kế trên phần mềm mô phỏng.
- Kiểm tra formal (Formal Verification): Sử dụng các kỹ thuật toán học để chứng minh tính đúng đắn của thiết kế.
- Kiểm tra trực tiếp (Directed Testing): Viết các tình huống kiểm tra cụ thể dựa trên spec.
- Kiểm tra ngẫu nhiên (Random Verification / Constrained Random Testing): Tạo ra các tín hiệu ngẫu nhiên tuân thủ một số ràng buộc nhất định.
- Coverage Metrics: Đánh giá mức độ bao phủ của verification (đã kiểm tra được bao nhiêu trường hợp có thể xảy ra).
Các bước học Verification
- Nắm vững kiến thức về mạch số: Các nguyên tắc hoạt động của các khối mạch số (Adder, MUX, FSM, …).
- Học ngôn ngữ mô tả phần cứng (HDL): Verilog và đặc biệt là SystemVerilog là ngôn ngữ chính trong Verification.
- Làm quen với UVM (Universal Verification Methodology): framework giúp xây dựng testbench một cách chuẩn hóa và chuyên nghiệp.
- Làm quen với tool mô phỏng như VCS, Questa, ModelSim.
- Học các chuẩn giao tiếp trong chip và peripheral phổ biến như AMBA, UART, I2C, SPI…
- Tập phân tích yêu cầu thiết kế, xây dựng kế hoạch kiểm tra, viết testcase và chạy mô phỏng.
Quá trình phát triển của một kỹ sư Verification
- Fresher – Junior (0-3 năm kinh nghiệm): Viết test case cơ bản, học cách debug, các chuẩn giao tiếp cơ bản. Chủ yếu verify ở IP level.
- Senior (5+ năm kinh nghiệm): Xây dựng và tối ưu testbench, quản lý coverage, review test case. Các Senior Engineer có khả năng verify cho các IP và chuẩn giao tiếp phức tạp. Có kiến thức và kinh nghiệm về system để đảm nhận các khối hoặc subsystem quan trọng trong chip.
- 10 năm kinh nghiệm: Lead Verification team, tham gia xây dựng chiến lược verification. Ở giai đoạn này, kỹ sư Verification không chỉ đơn thuần viết testbench hoặc chạy test mà đã có đủ kinh nghiệm để dẫn dắt một nhóm. Họ chịu trách nhiệm phân chia công việc cho các thành viên trong nhóm, đảm bảo mỗi phần của kế hoạch verification được thực hiện đúng tiến độ và chất lượng. Họ cũng bắt đầu tham gia vào các quyết định kỹ thuật lớn về kiến trúc verification để đảm bảo tính mở rộng (scalability) và hiệu suất (efficiency) của môi trường kiểm tra
- 15+ năm kinh nghiệm: Khi đạt đến mốc 15 năm kinh nghiệm, kỹ sư Verification có thể đảm nhận vai trò Verification Architect, chịu trách nhiệm xây dựng toàn bộ hệ thống verification cho full chip, bao gồm Thiết kế kiến trúc môi trường verification ở cấp độ Full Chip, đảm bảo mọi block và subsystem đều được kiểm tra đúng cách, Xây dựng kế hoạch test từ SoC level, xác định cách thức kiểm tra các giao tiếp phức tạp giữa nhiều IP (protocol verification, performance testing, power-aware verification…)
Verification là công việc thách thức và quan trọng, quyết định chất lượng của chip trước khi sản xuất. Nếu bạn yêu thích debug, phân tích logic và tìm kiếm lỗi, thì Verification chính là lĩnh vực phù hợp dành cho bạn.