Chào mọi người,

Hôm nay mình sẽ chia sẻ với các bạn bài viết về verification - bước chiếm tới 60% thời gian trong quy trình thiết kế vi mạch.

Verification (kiểm tra thiết kế)
là quá trình kiểm tra tính đúng đắn của thiết kế ứng với các tiêu chí đã được đặt, các quy tắc, quy địn,h ràng buộc mà một thiết kế phải tuân theo. Verification được thực hiện ở nhiều công đoạn khác nhau trong quy trình thiết kế vi mạch (ASIC, SoC), và đây là công việc chiếm phần lớn thời gian trong quá trình thiết kế ra một sản phẩm vi mạch (SoC, ASIC).


Các công đoạn kiểm tra thiết kế có thể kể đến như:

(1) RTL level verification: Kiểm tra tính đúng đắn của thiết kế về mặt chức năng RTL

(2) Gate level verification: Kiểm tra tính đúng đắn của thiết kế về mặt chức năng ở mức Gate netlist

(3) Formal verification: Kiểm tra tính ngang bằng của hai thiết kế về mặt logic

(4) Timing verification: Kiểm tra về độ trể (độ delay) của thiết kế

Ứng với các công đoạn kiểm tra khác nhau, dữ liệu đầu vào và cách thức kiểm tra cũng khác nhau. Do đó, verification có thể được chia làm hai loại là dynamic verification và static verification

Static verification: Thực hiện việc phân tích và kiểm tra thiết kế mà không dùng các test-vector để mô phỏng. Ưu điểm của phương pháp này là nhanh, triệt để. Tuy nhiên, phương pháp này không thể kiểm tra về chức năng của thiết kế (functionality).

Dynamic verification: thực hiện kiểm tra thiết kế dựa bằng cách thực thi các test vector . Mục đích chính của phương pháp này là dùng để kiểm tra về chức năng của thiết kế. Tuy nhiên, nhược điểm của phương pháp này là sử dụng nhiều tài nguyên phần cứng (HW, CPU resource) và tiêu tốn nhiều thời gian. Hơn thế nữa, chất lượng của quá trình kiểm tra thiết kế này phụ thuộc vào chất lượng của dữ liệu đầu vào (test vector). Đây là một trong những điều gây ra nhiều khó khăn trong việc hoàn thành công đoạn kiểm tra thiết kế, đặc biệt là đối với các SoC có độ phức tạp cao và thời gian hoàn thành ngày càng ngắn.

Để giải quyết bài toán này, các phương pháp kiểm tra thiết kế mới được đưa ra và sử dụng.

[Quiz]

Trong các phương pháp (1), (2), (3), (4), đâu là dynamic verification và đâu là static verification?