Phần 1: Các công ty đang yêu cầu kỹ năng gì từ kỹ sư verification (DV)
Các công ty trong lĩnh vực thiết kế vi mạch tích hợp (VLSI) luôn tìm kiếm những kỹ sư Verification (DV) có kỹ năng và kiến thức sâu rộng nhằm đảm bảo chất lượng và hiệu suất của sản phẩm. Khi các chip ngày càng trở nên phức tạp hơn, nhu cầu về những công cụ mạnh mẽ để kiểm tra thiết kế cũng gia tăng, giúp đảm bảo tiến độ hoàn thành và chất lượng tối ưu của chip.
Khi dạo một vòng trên LinkedIn, bạn sẽ dễ dàng thấy rằng các công việc tuyển dụng cho vị trí Design Verification Engineer luôn đòi hỏi kiến thức về UVM. Các công ty lớn như Marvel, Synopsys, Ampere,… đều không ngoại lệ. Vậy hãy cùng phân tích UVM để hiểu lý do tại sao nó lại được các công ty yêu cầu cao đến vậy.
Phần 2: UVM là gì?
UVM (Universal Verification Methodology) là một trong những phương pháp xác minh tiêu chuẩn được sử dụng rộng rãi trong ngành công nghiệp thiết kế vi mạch tích hợp (IC), UVM được xây dựng dựa trên ngôn ngữ lập trình Systemverilog, các lý do chính khiến các công ty lựa chọn sử dụng UVM:
- Tính tiêu chuẩn hóa: Điều này giúp các kỹ sư khi vào công ty nhanh chóng tiếp cận được nguồn database to lớn của công ty và không mất nhiều thời gian để bắt kịp công việc
- Khả năng tái sử dụng cao (Reusable): Các khối chứng năng được thiết kế và đóng gói có thể được sử dụng qua nhiều dự án khác nhau, từ IP-level đến SoC-level.
- Quán lý dòng dữ liệu: UVM hỗ trợ mô hình transaction, giúp dễ dàng quản lý và theo dõi các stimulus tác động đến DUT, điều này mang lại hiệu quả cao trong quá trình debugging
Theo dõi các Stimulus đang lái DUT
Ngoài những lợi ích nổi bật đã đề cập, UVM còn sở hữu nhiều điểm mạnh khác mà chúng ta sẽ khám phá thêm trong các bài viết sau. Bây giờ, hãy cùng tiếp tục tìm hiểu về cấu trúc cơ bản của một UVM testbench trong phần 3 nhé!
Phần 3: UVM testbench
Mô hình UVM testbench architecture
Một testbench UVM được tổ chức thành nhiều khối chức năng riêng biệt, mỗi khối đóng một vai trò thiết yếu trong quá trình xác minh thiết kế. Dưới đây là các khối chức năng chính trong UVM.
- UVM Environment: Tạo ra và cấu hình các khối chức năng như UVM agent và UVM scoreboard, tổ chức các thành phần con của testbench. Một cách dễ hiểu, bạn có thể hình dung UVM Environment như một “phòng thí nghiệm” kiểm tra. Trong phòng thí nghiệm này, bạn có đầy đủ các dụng cụ và thiết bị (các thành phần UVM) cần thiết để kiểm tra xem thiết kế vi mạch của bạn có hoạt động đúng hay không.
- UVM Scoreboard: Đánh giá độ chính xác của thiết kế (DUT – Design Under Test) bằng cách so sánh các giá trị thực tế với các giá trị kỳ vọng, giúp xác định các lỗi và vấn đề trong thiết kế. Bạn có thể hình dung scoreboard như một “bảng điểm” trong phòng thí nghiệm kiểm tra của bạn vậy.
- UVM Agent: Chứa các thành phần liên quan đến một giao thức cụ thể (như APB, AHB, I2C, UART…), giúp quản lý và thực hiện các giao tiếp với DUT. Agent có thể được hiểu như một “nhân viên kiểm tra” trong phòng thí nghiệm của bạn.
- UVM Driver: Giống như một “người lái xe”, nhiệm vụ của UVM_driver là điều khiển và gửi các tín hiệu kiểm tra (stimulus) tới thiết kế của bạn. Nó lấy các lệnh kiểm tra từ sequencer và chuyển chúng thành các tín hiệu cụ thể mà thiết kế có thể hiểu và phản ứng
- UVM Sequencer: Giống như người lập kế hoạch, sequencer quyết định thứ tự và cách mà các tín hiệu kiểm tra được gửi đi. Nó tạo ra các chuỗi lệnh kiểm tra mà driver sẽ thực hiện. Thường thì sequencer sẽ nhận thông tin từ sequence và chuyển tiếp chúng đến driver để điều khiển DUT.
- UVM Monitor: Giống như một người quan sát, monitor sẽ theo dõi các tín hiệu đầu ra từ thiết kế và thu thập dữ liệu để gửi đến scoreboard hoặc các thành phần khác để phân tích và đánh giá.
- Interface: giúp kết nối giữa các “dụng cụ kiểm tra” và thiết kế mà bạn đang kiểm tra. Bạn có thể hình dung interface như một “dây cáp” trong phòng thí nghiệm của bạn. Interface đóng vai trò kết nối và tương tác giữa UVM và DUT. Các khối chức năng của UVM không điều khiển trực tiếp DUT mà thông qua interface để thực hiện các tác vụ này.
- UVM Test: giống như một “bài kiểm tra cuối kỳ” mà bạn chuẩn bị cho học sinh của mình. Nó sẽ bao gồm tất cả các câu hỏi và bài tập mà bạn muốn học sinh thực hiện. UVM Test đảm nhận ba chức năng chính: khởi tạo môi trường, cấu hình môi trường thông qua cơ chế uvm_config_db, và khởi tạo UVM sequence để điều khiển các đầu vào của DUT.
Mỗi khối trong cấu trúc này góp phần tạo nên một testbench UVM mạnh mẽ và hiệu quả, giúp tối ưu hóa quá trình xác minh và đảm bảo chất lượng thiết kế.M mạnh mẽ và hiệu quả, giúp tối ưu hóa quá trình xác minh và đảm bảo chất lượng thiết kế.
Phần 4: Lời kết
Hy vọng rằng qua bài viết này, bạn đã có cái nhìn tổng quan về những yêu cầu đối với các kỹ sư Design Verification (DV) cũng như vai trò quan trọng của UVM. Điều này sẽ giúp bạn định hình chiến lược học tập và nghiên cứu của mình, từ đó tạo ra lợi thế cạnh tranh đáng kể trong các cuộc phỏng vấn trong tương lai.