Verilog là gì ? Tìm hiểu về ngôn ngữ mô tả phần cứng thông dụng nhất và sự khác nhau cơ bản với các ngôn ngữ lập trình khác.

Thứ sáu, 12 tháng 04, 2024

Phần 1. Verilog là gì ? Khái niệm về Verilog.

Verilog, được tiêu chuẩn hóa thành IEEE 1364, là ngôn ngữ mô tả phần cứng (hardware description language, viết tắt: HDL) được sử dụng để mô hình hóa các hệ thống điện tử. Nó được sử dụng phổ biến nhất trong thiết kế và xác minh các mạch số ở mức thanh ghi (Register Transfer Level – RTL). Nó cũng được sử dụng trong việc xác minh các mạch tương tự (analog) va mạch tín hiệu hỗn hợp (mixed signal). Vào năm 2009, tiêu chuẩn Verilog (IEEE 1364-2005) đã được hợp nhất vào tiêu chuẩn System Verilog, tạo ra tiêu chuẩn IEEE 1800-2009. Kể từ đó, Verilog chính thức là một phần của ngôn ngữ System Verilog. Phiên bản hiện tại là tiêu chuẩn IEEE 1800-2017.

Một loại ngôn ngữ HDL phổ biến khác bên cạnh Verilog là VHDL (Very high speed integrated citcuit HDL). Trước đây VHDL thường được sử dụng ở các nước phương Tây, đặc việt là châu Âu,  còn Verilog phổ biến hơn ở các nước châu Á. Nhưng hiện nay, với sự nổi lên của System Verilog, Verilog có vẻ như đang chiếm ưu thế hơn so với VHDL bởi sự tương thích của nó với System Verilog.

Phần 2. Chức năng của Verilog. Sự khác nhau giữa Verilog cho thiết kế và Verilog cho kiểm tra, xác minh

Trong phạm vi bài viết này, tác giả chỉ đề cập đến mạch số (digital).

Như đã trình bày ở trên, Verilog là ngôn ngữ mô tả phần cứng HDL và được dùng để mô ta các hệ thống điện tử. Đối với mạch số, Verilog có 2 chứng năng chính

  • Thiết kế mạch số, dùng trong khâu RTL Design
  • Kiểm tra xác minh mạch số, dùng trong khâu Design Verification.

Chi tiết về hai khâu này, các bạn có thể tham khảo bài viết.

CÔNG VIỆC CỦA KỸ SƯ THIẾT KẾ RTL (RTL DESIGN) – THÍCH LẬP TRÌNH CÓ NÊN LÀM RTL DESIGN? – Trung Tâm Đào Tạo Thiết Kế Vi Mạch ICTC
CÔNG VIỆC CỦA KỸ SƯ KIỂM TRA RTL (DESIGN VERIFICATION) – BÍ MẬT ĐẰNG SAU VIỆC ĐẢM BẢO THÀNH CÔNG CHO SILICON. – Trung Tâm Đào Tạo Thiết Kế Vi Mạch ICTC

Có sự khác nhau giữa hai mục đích này như sau:

Khi được dùng để thiết kế mạch số, người thiết kế phải tuân theo một số nguyên tắc chặt chẽ để RTL code của mình có thể được tổng hợp (synthesis) thành cổng logic.

Tổng hợp logic là quá trình được thực hiện bởi EDA tool (phần mềm chuyên dụng dùng cho quá trình thiết kế chip), nhằm chuyển RTL code thành các cổng logic AND, OR, NOT…, latch, flip-flop… Nhưng không phải mã RTL nào cũng tổng hợp được, chỉ các mã RTL tuân thủ các quy tắc thiết kế mới có thể tổng hợp thành cổng logic (synthesizable – khả tổng hợp).

Dưới đây là ví dụ về một đoạn code Verilog được tổng hợp thành cổng logic.

Mục đích chính thứ hai của Verilog là dùng trong việc kiểm tra, xác minh thiết kế (Design Verification). Các kĩ sư DV sẽ dùng Verilog để xây dựng môi trường mô phỏng (simulation environment), viết các model, test cases … để kiểm tra thiết kế. Verilog phục vụ cho mục đích này không cần thiết phải tổng hợp thành cổng logic, nên các kĩ sư DV có thể tận dụng được mọi tính năng của nó mà không cần quan tâm đến các quy tắc ràng buộc như các kĩ sư thiết kế.

Phần 3. Sự khác nhau cơ bản giữa Verilog dành cho thiết kế RTL và các ngôn ngữ lập trình khác.

Quay lại ví dụ về thiết kế trên, ta sẽ thấy mạch được tổng hợp sẽ có 3 cổng AND cùng mức level, và ngõ ra Z được tạo thành từ ngõ ra của 3 cổng AND trên.

Đối với các ngôn ngữ lập trình thông thường, việc viết các dòng code tuần tự sẽ dẫn đến thực thi một cách tuần tự từ trên xuống, nhưng đối với Verilog thì khác, ngõ ra sẽ phụ thuộc vào các ngõ vào, nên nếu ta đảo thứ tự code của ví dụ trên, mạch được sinh ra sau quá trình tổng hợp không có gì thay đổi.

Sự khác nhau cơ bản này có thể làm cho một số bạn cảm thấy hơi rối và khó hiểu lúc ban đầu. Những gì chúng ta cần làm là nẵm rõ cấu trúc mạch để biết đâu là ngõ ra, đâu là ngõ vào và sự phụ thuộc lẫn nhau giữa chúng để viết code cho đúng.

Phần 4. Học Verilog như thế nào ?

Để học được Verilog, các bạn phải có kiến thức cơ bản về hệ thống số, các kiến thức cơ bản về cổng logic, mạch tổ hợp, mạch tuần tự … Những kiến thức này có thể được học trong môn kỹ thuật số trong các trường đại học.

Sau khi nắm được kiến thức nền tảng, chúng bắt đầu học các syntax của Verilog, cách mô tả các mạch logic để có thể áp dụng và thiết kế các module cơ bản từ dễ đến khó. Sau đó tiếp tục nghiên cứu cách xây dựng môi trường mô phỏng, cách viết testbench, testcase để kiểm tra thiết kế. Tất cả các tính năng của Verilog sẽ được vận dụng vào công việc này.

Một điểm khó của Verilog khiến nó khó tiếp cận hơn chính là cần công cụ biên dịch, tổng hợp, mô phỏng đặc biệt. Nếu học trong trường đại học các bạn có thể liên hệ với thầy cô, phòng lab để được cung cấp công cụ.

Ngoài ra các bạn có thể tham gia khóa học thiết kế vi mạch cơ bản của ICTC. Khóa học sẽ cung cấp cho bạn tất cả các kiến thức nền tảng cần thiết, sau đó đi sâu vào cách thiết kế và kiểm tra mạch tích hợp dùng ngôn ngữ Verilog. Tất cả các công việc trên đều được thực hành trên server đã tích hợp sẵn EDA tool cần thiết cho việc thiết kế, biên dịch, mô phỏng, hoàn toàn giống với môi trường server của công ty mà sau này các bạn sẽ đi làm.

Chi tiết khóa học các bạn có thể tham khảo tại:

Khóa Học Thiết Kế Vi Mạch Cơ Bản – Trung Tâm Đào Tạo Thiết Kế Vi Mạch ICTC

Phần 5: Lời kết

Verilog là ngôn ngữ thiết kế và kiểm tra RTL phổ biến nhất hiện nay. Hiện tại System Verilog cũng ngày càng trở nên thông dụng nhưng Verilog vẫn giữ vị trí quan trọng trong nền công nghiệp vi mạch. Sự so sánh giữa Verilog và System Verilog cũng giống như so sánh hai ngôn ngữ C và C++ trong lập trình phần mềm. Tiếp cận và hiểu rõ Verilog sẽ giúp cho việc sử dụng System Verilog trở nên đơn giản và hiệu quả hơn. Dĩ nhiên, đây là quan điểm cá nhân của tác giả, chúng ta vẫn có thể học và khám phá các tính năng System Verilog một cách thoải mái mà không cần học Verilog. Cũng giống như bạn có thể học C++ mà không cần học qua ngôn ngữ C vậy.


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

Tìm hiểu lộ trình cho người mới bắt đầu để hiểu thêm về công việc, ngành nghề, đãi ngộ và những kiến thức cần thiết để học thiết kế vi mạch và tham gia vào thị trường vi mạch.
Lộ Trình Bắt Đầu Ngành Thiết Kế Vi Mạch Bán Dẫn

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í

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é:

Thứ sáu, 12 tháng 04, 2024
Đức Lê

Co-Founder ICTC - RTL Design Engineer

Mình đã có hơn 10 năm làm việc trong lĩnh vực vi mạch, tập trung vào khâu thiết kế RTL. Dù là một ngành nghề đang phát triển mạnh mẽ, thế nhưng, thông tin về thiết kế vi mạch vẫn còn khá mơ hồ, không rõ ràng. Điều này làm cho những người trẻ, đặc biệt là những ai mới bước vào lĩnh vực này, gặp không ít khó khăn khi muốn tìm hiểu và tiếp cận kiến thức. Nhận thức được những khó khăn này, chúng mình quyết định thành lập ICTC - một nơi không chỉ chia sẻ kiến thức mà còn truyền đạt những thông tin thực tế, từ cơ bản đến chuyên sâu về lĩnh vực thiết kế vi mạch. Mục tiêu của ICTC là giúp các bạn trẻ nắm vững kiến thức, hiểu rõ về ngành nghề và từ đó, có thể xây dựng một hướng đi đúng đắn cho sự nghiệp trong tương lai của mình. Chúng mình tin rằng, với sự đam mê và kiến thức chuyên sâu, mọi khó khăn đều có thể vượt qua, và hành trình chinh phục thế giới vi mạch sẽ trở nên thú vị hơn bao giờ hết.

Độ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
Nguyễn Thanh Vương

Nguyễn Thanh Vương

Design Verification Engineer - FPT Semiconductor

"Khóa học quá oke ấy chứ ạ. Lúc trước em fail 3 lần pv và nhận ra mình thiếu project vs tool EDA thực tế, khóa học có server vs thạo VIM em thấy lợi thế hơn hẳn luôn ấy."

Lê Tiến Đạt

Lê Tiến Đạt

Semiconductor Engineer - SemiFive

"Mình chuyển sang vi mạch thực sự khoảng đầu năm nay, mông lung và mất định hướng. Trong quá trình tự học thì biết đến ICTC, cũng nghĩ mục tiêu ban đầu là học để có cái nhìn tổng quát về ngành chứ không nghĩ là sẽ nhận được nhiều như vậy từ các anh. Mình phỏng vấn lần đầu tiên vào tháng 1, sau 6 tháng nỗ lực và tham gia cùng với ICTC thì mình nhận được offer."

Phan Minh Khôi

Phan Minh Khôi

PD Engineer - ADT Technology & SNST

"Nhờ các kiến thức của khóa học tại trung tâm nên em có cái nhìn chi tiết hơn về ngành, giúp em trả lời tốt các câu hỏi tạo điểm cộng trong mắt nhà tuyển dụng."

Nổi Bật

TỔNG KẾT VÀ TRAO CHỨNG CHỈ CHO CÁC LỚP THIẾT KẾ VI MẠCH CƠ BẢN T4 – T5. TUYỂN SINH LỚP VI MẠCH CƠ BẢN VÀ SYSTEM VERILOG UVM THÁNG 09, 10!

TỔNG KẾT VÀ TRAO CHỨNG CHỈ CHO CÁC LỚP THIẾT KẾ VI MẠCH CƠ BẢN T4 – T5. TUYỂN SINH LỚP VI MẠCH CƠ BẢN VÀ SYSTEM VERILOG UVM THÁNG 09, 10!

Vừa qua, ICTC đã có buổi tổng kết lớp kết hợp Offline và Online (cho các bạn không tham dự trực tiếp) để trao chứng chỉ cho các bạn hoàn thành đồ án cuối khóa. Đây là điều kiện tiên quyết để nhận chứng chỉ. Chúc mừng các bạn đã đạt thành tích tốt trong 3 tháng vừa...

HỌC VIÊN ICTC NHẬN ĐƯỢC OFFER TỪ SEMIFIVE 

HỌC VIÊN ICTC NHẬN ĐƯỢC OFFER TỪ SEMIFIVE 

HỌC VIÊN ICTC NHẬN ĐƯỢC OFFER TỪ SEMIFIVE , ICTC NÂNG CẤP SERVER EDA, TIẾP TỤC KHAI GIẢNG CÁC KHOÁ THIẾT KẾ VI MẠCH CƠ BẢN CUỐI THÁNG 8! Trong thời gian vừa qua ICTC đã liên tục nâng cấp hệ thống server EDA thiết kế vi mạch cho gần 100 học viên, giảng viên và các...

Bài Viết Mới

Khai Giảng Khóa Học Thiết Kế Vi Mạch Cơ Bản Tháng 26/08/2024

Khai Giảng Khóa Học Thiết Kế Vi Mạch Cơ Bản Tháng 26/08/2024

Cuối tháng 8 vừa rồi, ICTC đã tiến hành khai giảng lớp thiết kế vi mạch cơ bản (Fundamental IC Design & Verification) thứ 2 trong tháng với anh giảng viên đến từ Synopsys - công ty hàng đầu về thiết kế IP & EDA tools cho vi mạch. Buổi khai giảng đã diễn ra vui...

TỔNG KẾT VÀ TRAO CHỨNG CHỈ CHO CÁC LỚP THIẾT KẾ VI MẠCH CƠ BẢN T4 – T5. TUYỂN SINH LỚP VI MẠCH CƠ BẢN VÀ SYSTEM VERILOG UVM THÁNG 09, 10!

TỔNG KẾT VÀ TRAO CHỨNG CHỈ CHO CÁC LỚP THIẾT KẾ VI MẠCH CƠ BẢN T4 – T5. TUYỂN SINH LỚP VI MẠCH CƠ BẢN VÀ SYSTEM VERILOG UVM THÁNG 09, 10!

Vừa qua, ICTC đã có buổi tổng kết lớp kết hợp Offline và Online (cho các bạn không tham dự trực tiếp) để trao chứng chỉ cho các bạn hoàn thành đồ án cuối khóa. Đây là điều kiện tiên quyết để nhận chứng chỉ. Chúc mừng các bạn đã đạt thành tích tốt trong 3 tháng vừa...

Lịch Sử Vi Điều Khiển 8051

Lịch Sử Vi Điều Khiển 8051

Nếu bạn đang học môn vi xử lý thì không thể nào không biết đến con 8051 huyền thoại này Lịch sử của vi điều khiển 8051 bắt đầu từ cuối những năm 1970 khi Intel phát triển dòng MCS-51, được phát hành vào năm 1980. Intel 8051 là một vi điều khiển 8-bit rất phổ...

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