SOI – Khi silicon biết ‘cách ly’ để chạy nhanh hơn và mát hơn
Wed, 16 Jul 2025

Theo dõi những câu chuyện của các học giả và các chuyến thám hiểm nghiên cứu của họ
Trong UVM, class là cấu trúc trung tâm, được định nghĩa trong SystemVerilog bằng từ khóa class
và kết thúc bằng endclass
.
Class bao gồm:
Data members: các biến dữ liệu lưu trữ trạng thái đối tượng.
Methods: các hàm (function
) và tiến trình (task
) định nghĩa hành vi của đối tượng.
Class gốc: Ví dụ uvm_void
, là lớp cơ sở trừu tượng nhất.
Class mở rộng: Ví dụ uvm_object
kế thừa từ uvm_void
, và uvm_transaction
kế thừa từ uvm_object
.
Trong ví dụ trên, my_transaction
là một class mở rộng từ uvm_transaction
. Nó định nghĩa một biến dữ liệu data
và sử dụng macro uvm_object_utils
để hỗ trợ việc đăng ký class này với factory.
Kế thừa: my_transaction
kế thừa tất cả các thuộc tính và phương thức từ uvm_transaction
.
Tái sử dụng: Class này có thể dùng lại trong nhiều môi trường test khác nhau.
Utility là các công cụ, macro, kiểu dữ liệu hoặc thành phần hỗ trợ được UVM cung cấp sẵn, giúp việc xây dựng môi trường kiểm thử trở nên linh hoạt và hiệu quả hơn.
Macro: như uvm_field_int
, uvm_object_utils
Hàm hỗ trợ debug: uvm_report_error
, uvm_report_info
Factory & Configuration: uvm_factory
cho phép tạo đối tượng động và thay đổi hành vi mà không cần sửa code gốc.
Trong ví dụ này:
Macro uvm_component_utils
đăng ký class my_env
với factory.
Hàm uvm_report_info
in thông tin trong phase build_phase
, giúp dễ dàng theo dõi quá trình mô phỏng.
Dễ cấu hình và theo dõi.
Hỗ trợ mở rộng testbench một cách linh hoạt mà không cần sửa code gốc.
Class là nền tảng để định nghĩa logic và cấu trúc chính trong UVM.
Utility là công cụ hỗ trợ giúp tăng hiệu suất phát triển và kiểm thử.
Hiểu rõ hai yếu tố này sẽ giúp bạn xây dựng testbench UVM chuẩn mực, tiết kiệm thời gian, công sức và nâng cao khả năng mở rộng trong các dự án thực tế.
Wed, 16 Jul 2025
Để lại bình luận