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ê

Đức Lê

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

Nổi Bật

Tổng Kết Khóa Học Thiết Kế Vi Mạch Cơ Bản Tháng 6 2024

Tổng Kết Khóa Học Thiết Kế Vi Mạch Cơ Bản Tháng 6 2024

Hôm nay, khóa học Thiết kế Vi mạch Cơ bản tại Trung tâm ICTC đã chính thức khép lại với buổi lễ tổng kết ý nghĩa. Đây là dịp để giảng viên và học viên cùng nhau nhìn lại hành trình học tập, những thành quả đạt được, và chia sẻ cảm nghĩ sau khóa học. Cảm Nghĩ Của Học...

TỔNG KẾT OFFLINE VI MẠCH 07/2024

TỔNG KẾT OFFLINE VI MẠCH 07/2024

Vậy là sau hơn 4 tiếng đồng hồ giao lưu và chia sẻ các kiến thức về tổng quan ngành vi mạch, các vị trí việc làm, tuyển dụng, các kinh nghiệm học tập, phỏng vấn, ... buổi offline ngày hôm nay đã kết thúc thành công tốt đẹp.Rất cảm ơn các bạn đã không ngại đường xá xa...

Bài Viết Mới

Chiếc Máy Tính Nhỏ Hơn Hạt Gạo – MSPM0C1104

Chiếc Máy Tính Nhỏ Hơn Hạt Gạo – MSPM0C1104

Bạn Có Tin Một Máy Tính Có Thể Nhỏ Hơn Hạt Gạo? Texas Instruments đã chứng minh điều đó với MSPM0C1104 – một con chip vi điều khiển có kích thước chỉ 1.38 mm² nhưng sở hữu sức mạnh đáng kinh ngạc. Sức Mạnh Trong Một Kích Thước Siêu Nhỏ Dù nhỏ bé, MSPM0C1104 vẫn mang...

Chứng Chỉ – Giá Trị Từ Nỗ Lực Thực Sự

Chứng Chỉ – Giá Trị Từ Nỗ Lực Thực Sự

Chứng Chỉ Có Quan Trọng Khi Xin Việc? Nhiều người cho rằng chứng chỉ chỉ là “tờ giấy”, nhưng thực tế, nó phản ánh quá trình học tập nghiêm túc, sự nỗ lực không ngừng và khả năng ứng dụng kiến thức vào thực tế. Một chứng chỉ không thể đảm bảo 100% cơ hội việc làm,...

KỈ NIỆM KHÓA HỌC ICTC

KỈ NIỆM KHÓA HỌC ICTC

Còn nhớ thời điểm này năm ngoái là lúc bắt đầu IC1, 2 gì đó mà giờ đã là 19 rồi, thời gian trôi qua nhanh thiệt ^^.Trong buổi khai giảng, tụi mình luôn dành thời gian trao đổi để hiểu rõ mục tiêu của từng bạn khi tham gia. Thông thường, mọi người đến với hành trình...

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