Efficient System-Level Verification: UVM and Embedded C/C++