Học Systemverilog và UVM sao cho hiệu quả – Phần 1: Systemverilog

Tags:
Thứ Hai, 27 tháng 04, 2026

Sau series Design Verification Engineer làm gì?, chắc mọi người cũng hình dung được công việc DV nó ra sao rồi. Giờ mình đi vào phần chính là SystemVerilog và UVM. Nếu bạn định đi theo Design Verification, gần như sớm muộn gì bạn cũng sẽ gặp SystemVerilog và UVM. Bài này, cùng mình và Học Vi Mạch Cùng ICTC bắt đầu với SystemVerilog trước nhé.

Đầu tiên, Mình thấy ở khá nhiều bạn là học rất chăm, nhưng lại dễ bị kẹt ở một đoạn nào đó. Có người thuộc rất nhiều syntax nhưng khi áp dụng vào thực tế lại lúng túng không biết sử dụng thế nào. Có người nhảy vào UVM khá sớm, nhưng lại không hiểu bản chất bên dưới nên càng học càng rối.

Khi mới bắt đầu, không cố nhớ hết mọi thứ. Data type, array các kiểu… cứ đọc qua để biết nó tồn tại và dùng trong trường hợp nào. Lúc đó bạn chưa cần quá chính xác, vì thật ra mấy thứ này dùng nhiều tự khắc sẽ nhớ. Đoạn đáng chú ý hơn là khi bắt đầu đụng tới fork…join, mailbox, semaphore. Lúc này bạn sẽ thấy testbench không còn chạy một mạch từ trên xuống nữa, mà có nhiều process chạy song song và trao đổi dữ liệu với nhau. Nếu hiểu được đoạn này, bạn sẽ dễ hình dung testbench hoạt động ra sao, thay vì chỉ nhìn nó như một đống code rời rạc.

Nhưng nếu phải chọn một phần đáng để đầu tư thời gian nhất trong SystemVerilog, thì đó chắc chắn là class. SystemVerilog thực sự mạnh ở testbench không phải vì nó có nhiều syntax, mà vì nó cho bạn viết theo kiểu OOP. Ban đầu đọc lý thuyết về class, inheritance hay polymorphism có thể hơi khô, nhưng nếu chuyển sang đọc ví dụ và tự viết lại thì sẽ dễ ngấm hơn nhiều. Ngoài ra, đừng bỏ qua interface. Đây là thứ giúp bạn kết nối testbench với DUT một cách gọn gàng hơn, đặc biệt khi bắt đầu viết driver/monitor. Hiểu interface sớm sẽ giúp code sạch và dễ scale hơn về sau.

Đến đoạn random và constraint, nhiều bạn hay bị ngợp vì nghe có vẻ phức tạp. Nhưng thật ra ở giai đoạn đầu, bạn chỉ cần hiểu nó như một cách để tạo dữ liệu test mà không cần ngồi hardcode từng case. Biết cách dùng rand, viết vài constraint cơ bản và gọi randomize() là đủ để đi tiếp. Những thứ sâu hơn có thể để sau.

Một lỗi khá phổ biến là học xong hết mấy thứ này rồi … dừng. Chưa từng viết một testbench tử tế. Theo mình, tới đây nên chuyển sang làm luôn. Tự build một testbench đơn giản bằng SystemVerilog, ví dụ Counter hoặc Memory. Làm rồi bạn sẽ tự gặp những câu hỏi rất thực tế: driver viết gì, monitor lấy data ở đâu, data flow chạy như thế nào. Những thứ này đọc không bao giờ ngấm bằng tự làm.

Sau khi đã có testbench, quay lại học assertion và functional coverage sẽ dễ hiểu hơn nhiều. Lúc đó bạn sẽ thấy rõ: assertion để check behavior, coverage để biết mình đã test đủ hay chưa.

SystemVerilog không khó vì syntax. Cái khó là không biết học để làm gì, nên dễ bị lan man. Khi xác định rõ là học để build testbench, mọi thứ sẽ đơn giản lại: học cái cơ bản, hiểu cách chạy song song, tập trung vào class, dùng random để tạo test, rồi tự build một testbench trước khi đào sâu thêm

Vậy tóm lại, các bước để học tốt SystemVerilog:

1. Data type, array: học để quen syntax, biết dùng khi nào, không cần nhớ hết

2. fork…join, mailbox, semaphore: hiểu cách testbench chạy song song và giao tiếp với nhau

3. Class & Interface: phần quan trọng nhất, class để hiểu OOP và tổ chức code, interface để kết nối testbench với DUT cho gọn và rõ ràng

4. Random, constraint: biết dùng để generate data, chưa cần đào sâu

5. Build testbench: quan trọng nhất, tự làm để hiểu driver, monitor và data flow

6. Assertion, coverage: học sau khi đã có testbench để thấy rõ nó dùng để làm gì

Vậy chúng ta bắt đầu với 1 Systemverilog testbench vào tuần sau nhé?

——————————————————

Hiện tại ICTC đang mở các khóa học thiết kế vi mạch từ cơ bản đến nâng cao, các bạn có thể tìm hiểu tại các bài viết sau nhé:

 

Truy cập Server EDA Miễn Phí của ICTC để thực hành thiết kế vi mạch:
Truy cập Server EDA Miễn Phí

 

Thứ Hai, 27 tháng 04, 2026

Đội Ngũ Giảng Viên Đến Từ Các Công ty vi mạch hàng đầu với NHiều năm kinh nghiệm

Khóa học thiết kế vi mạch ICTC giảng viên từ Ampere
Khóa học thiết kế vi mạch ICTC giảng viên từ Renesas
Khóa học thiết kế vi mạch ICTC giảng viên từ MediaTek Singapore
Khóa học thiết kế vi mạch ICTC giảng viên từ BOS
Khóa học thiết kế vi mạch ICTC giảng viên từ Marvell
Khóa học thiết kế vi mạch ICTC giảng viên từ Renesas
Khóa học thiết kế vi mạch ICTC giảng viên từ NSING

Nổi Bật

ICTC DV TECH TALK

ICTC DV TECH TALK

Để giúp các bạn hiểu rõ hơn về Design Verification (DV) – một trong những lĩnh vực quan trọng trong ngành IC Design, ICTC sẽ tổ chức một buổi DV Tech Talk nhằm giới thiệu tổng quan về lĩnh vực này cũng như chia sẻ kinh nghiệm học tập và phát triển trong ngành. Buổi...

Workshop Làm Quen Với Linux

Workshop Làm Quen Với Linux

Để giúp các bạn làm quen với command line, terminal trong Linux, ICTC sẽ tổ chức một buổi workshop về Linux với cơ hội thực hành trực tiếp trên Server ICTC cùng host là anh Thông (người xây dựng và quản lý Server ICTC). Nội dung workshop: Hướng dẫn làm quen và thực...

Final Project Của Lớp Thiết Kế Vi Mạch Cơ Bản

Final Project Của Lớp Thiết Kế Vi Mạch Cơ Bản

Boom!  Cảm giác vỡ òa khi màn hình hiện kết quả design của bạn đã "pass" golden model – cửa ải cuối cùng trước khi “tốt nghiệp”!À quên, còn một điều kiện là coverage phải đủ nữa nha  Nhưng mà... cái cảm giác được thông báo ALL_PASSED vẫn là một điều gì đó thật đặc...

Bài Viết Mới

STA là gì? Làm PD có cần hiểu STA?

STA là gì? Làm PD có cần hiểu STA?

Hôm nay mời các bạn theo dõi bài viết tiếp theo của anh PD lead tại Học Vi Mạch Cùng ICTC về chủ đề STA nhé---Một trong những câu hỏi mình gặp khá thường xuyên trong các lớp Physical Design là: “Trong lúc chạy PnR em thấy tool báo setup, hold, rồi WNS, TNS…...

Khoản đầu tư nước ngoài lớn nhất trong lịch sử nước Mỹ

Khoản đầu tư nước ngoài lớn nhất trong lịch sử nước Mỹ

Trong nhiều năm qua, ngành bán dẫn của Mỹ dần mất đi vị thế sản xuất khi phần lớn năng lực fabrication dịch chuyển sang châu Á. Tuy nhiên, khoản đầu tư khổng lồ từ TSMC đang cho thấy một nỗ lực rõ ràng nhằm đảo ngược xu hướng đó. Đây không chỉ là một dự án xây nhà máy...

Đây Có Phải Là Lý Do Khiến Bạn Fail Interview?

Đây Có Phải Là Lý Do Khiến Bạn Fail Interview?

Có một thực tế khá phổ biến trong mảng VLSI: nhiều bạn nhìn qua thì kiến thức không hề yếu, làm project cũng ổn, nhưng khi đi phỏng vấn lại rớt khá nhiều lần. Điều đáng nói là nguyên nhân thường không nằm ở việc thiếu tool hay chưa quen flow, mà lại đến từ một thứ rất...

BẠN CHƯA BIẾT BẮT ĐẦU TỪ ĐÂU?

Sau nhiều năm tư vấn và đào tạo vi mạch cho hàng trăm bạn sinh viên, học sinh và phụ huynh, kết hợp với kinh nghiệm từ các anh chị kỹ sư vi mạch có nhiều năm kinh nghiệm, đây là tất cả những kinh nghiệm và tài liệu mà mình đúc kết, tổng hợp lại được thành một quy trình tìm hiểu ngành vi mạch để các bạn mình mới tham gia vào ngành có thể bắt đầu một cách hiệu quả nhất.

 

Bấm nút bên dưới để tìm hiểu về ngành, về nghề nghiệp cũng như những thứ bản thân cần chuẩn bị để tham gia vào hành trình trở thành kỹ sư vi mạch tuy có phần gian nan nhưng vô cùng thú vị bạn nhé!

LỘ TRÌNH TỰ HỌC VI MẠCHGROUP CHAT HỌC TẬP VI MẠCH