Chào các bạn, sau vài tuần chia sẻ về các chủ đề kỹ thuật, tuần này cùng mình và Học Vi Mạch Cùng ICTC đổi không khí một chút, cùng nhìn lại những sai lầm thường gặp của người mới khi bắt đầu với Verification.
Hầu hết những ai mới bắt đầu với Design Verification đều có cảm giác công việc này khá mơ hồ. Không giống design, nơi bạn viết RTL và thấy mạch chạy ngay, verification xoay quanh testbench, log, waveform và những kết quả pass/fail đôi khi khó lý giải. Vì chưa quen với cách tư duy đặc thù này, người mới rất dễ mắc sai lầm dù không hề thiếu kiến thức.
Một sai lầm phổ biến là xem verification chỉ đơn giản là viết test cho chạy được. Khi test pass, nhiều người vội tin rằng thiết kế đã ổn, trong khi thực tế điều đó chỉ cho thấy những gì đã kiểm tra thì không sai. Rất nhiều bug tồn tại đơn giản vì testbench chưa từng chạm tới đúng kịch bản. Verification không những chứng minh thiết kế đúng, mà còn tìm ra những chỗ có thể sai.
Người mới cũng hay viết testbench quá bám sát RTL code. Khi test được xây dựng theo đúng cách thiết kế đang hoạt động, nó dễ trở thành bản sao của RTL, và lúc đó cả hai có thể cùng sai mà vẫn pass. Testbench hiệu quả cần dựa trên RTL spec và giữ khoảng cách nhất định với RTL code để có thể phát hiện sai lệch.
Bên cạnh đó, nhiều người dễ lệ thuộc vào logfile. Khi gặp test fail, họ đọc log từ đầu đến cuối và cố tìm ra điểm sai thay vì dùng log để xác định vị trí và thời điểm fail, rồi kiểm tra waveform để hiểu chuyện gì đã xảy ra.
Một sai lầm khác là ngại đặt câu hỏi và quá sớm chấp nhận những giả định có sẵn. Người mới thường e dè khi không hiểu một hành vi của thiết kế và tự suy đoán thay vì hỏi lại designer hoặc kiểm tra kỹ trong RTL spec. Những giả định ban đầu tưởng như nhỏ này rất dễ len lỏi vào testbench và tồn tại lâu dài, đến khi phát hiện ra thì việc sửa đã trở nên tốn kém.
Cuối cùng, không ít người xem RTL spec chỉ là tài liệu tham khảo và cố gắng cover mọi thứ ngay từ đầu, khiến testbench trở nên phức tạp và khó bảo trì. Trong verification, RTL spec phải là điểm tựa chính và một testbench đơn giản, rõ ràng, mở rộng dần theo thời gian luôn hiệu quả hơn một testbench cầu kỳ nhưng rối rắm.

















