1. Vai trò thầm lặng nhưng quan trọng của scripting trong design verification
Nhiều người mới bắt đầu với ngành kiểm định thiết kế (design verification – dv) thường cho rằng công việc chỉ xoay quanh việc viết testbench bằng systemverilog, chạy mô phỏng và sửa lỗi. Tuy nhiên, trong các dự án thực tế, đây chỉ là một phần của công việc. Một phần lớn thời gian của kỹ sư dv được dành cho những “công việc nền” – các tác vụ tự động hóa quy trình.
Hãy tưởng tượng một dự án cần chạy hàng nghìn testcase trong mỗi lần kiểm tra hồi quy (regression). Nếu thực hiện thủ công các bước như tạo testcase, chạy mô phỏng, thu thập log, phân tích lỗi, và viết báo cáo thì sẽ rất tốn thời gian, dễ sai sót và không thể mở rộng. Đây là lúc kỹ năng scripting trở nên không thể thiếu.
2. Python: lựa chọn phổ biến nhất cho tự động hóa
Hiện nay, python là ngôn ngữ scripting được ưa chuộng nhất trong ngành vi mạch. Lý do là vì cú pháp của nó dễ đọc, dễ viết và có một hệ sinh thái thư viện khổng lồ, hỗ trợ xử lý nhiều loại dữ liệu khác nhau. Python tích hợp tốt với môi trường linux và các công cụ eda. Nhờ nó, bạn có thể tự động hóa việc tạo testcase, lọc file log để tìm lỗi, viết công cụ chạy regression, hay trích xuất dữ liệu độ phủ (coverage) để làm báo cáo.
3. Perl và shell scripting: những công cụ không thể bỏ qua
Trước khi python phổ biến, perl từng là ngôn ngữ scripting “mặc định” trong môi trường unix nhờ khả năng xử lý văn bản và chuỗi ký tự cực kỳ mạnh mẽ. Nhiều công cụ của các hãng eda lớn vẫn còn dựa trên perl, vì vậy việc biết ngôn ngữ này sẽ là một lợi thế lớn khi làm việc với các quy trình cũ.
Bên cạnh đó, một kỹ sư dv cũng cần biết shell scripting (như bash hoặc csh). Kỹ năng này rất hữu ích khi bạn cần biên dịch thiết kế bằng makefile, viết các vòng lặp để chạy test, hay cấu hình môi trường làm việc trên các máy chủ.
4. Kết luận: scripting là kỹ năng bắt buộc
Tóm lại, nếu systemverilog và uvm giúp bạn kiểm tra logic của thiết kế, thì scripting giúp bạn kiểm soát và tự động hóa toàn bộ quy trình kiểm thử. Một kỹ sư kiểm định thiếu kỹ năng scripting cũng giống như một lập trình viên không biết dùng git.
Việc học scripting càng sớm sẽ giúp bạn tiết kiệm được rất nhiều thời gian làm việc trong tương lai và trở nên chủ động hơn trong mọi dự án. Ví dụ, một đoạn mã kịch bản bằng perl hoặc python có thể tự động chạy toàn bộ testcase và tạo ra một báo cáo tổng hợp kết quả một cách nhanh chóng.
