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
Lê Tiến Đạt

Lê Tiến Đạt

DFT 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."

Nguyễn Thị Phương Quỳnh

Nguyễn Thị Phương Quỳnh

Technical Engineer - Synopsys

"Trong mùa hè muốn phát triển bản thân, mình đã chọn tham gia khóa học IC Overview tại ICTC để củng cố kiến thức về RTL và DV. Trước đây, mình chỉ tập trung coding module mà bỏ qua kỹ năng thiết kế - điều cốt lõi của kỹ sư vi mạch. Qua khóa học, mình hiểu rõ hơn vai trò và công việc thực tế của một kỹ sư vi mạch. Đội ngũ giảng viên giàu kinh nghiệm đã hỗ trợ tận tình cả trong và ngoài lớp học, giúp mình cải thiện đáng kể, đặc biệt khi phỏng vấn cho các offer hiện tại của mình. Xin cảm ơn anh Ân và ICTC rất nhiều!"

Phan Vinh Phong

Phan Vinh Phong

RTL Design Engineer - BOS Semiconductor

"Những ngày tu luyện miệt mài trên server của ICTC được đền đáp bằng một offer RTL Design đầu tiên, một thành quả không tưởng với bản thân mình của 3 tháng trước. Mình thực sự rất biết ơn các anh giảng viên trong đội ngũ ICTC đã tạo nên một môi trường học tập vô cùng chuyên nghiệp, tâm huyết và đầy cảm hứng để các bạn trẻ như mình, dù xuất phát điểm trái ngành, vẫn có thể tự tin theo đuổi và hiện thực hóa giấc mơ của trong lĩnh vực vi mạch."

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ê Duy Thức

Lê Duy Thức

Technical Engineer - Synopsys

"Khóa học thiết kế vi mạch cơ bản do anh Ân phụ trách thật sự rất bổ ích. Anh Ân dạy rất dễ hiểu, lại còn cực kỳ thân thiện và luôn sẵn sàng hỗ trợ tụi em khi gặp khó khăn. Em thấy nội dung khóa học giúp ích rất nhiều cho quá trình phỏng vấn thực tập sau này. Đặc biệt, phần final project khiến em nắm vững hơn về cách đọc và hiểu code RTL, cực kỳ thực tế và sát với công việc. Đây là một khóa học đáng giá cho những ai muốn học và làm về thiết kế vi mạch."

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

VLSI Testing – Phần 3: Testing Trong Quy Trình Sản Xuất IC

VLSI Testing – Phần 3: Testing Trong Quy Trình Sản Xuất IC

Bài viết nằm trong series về VLSI Testing Hình dưới đây mô tả các bước để làm ra 1 con chip. Sau khi chip đã được thiết kế hoàn chỉnh, một số con chip mẫu (prototype chip) sẽ được gửi về để test (prototype test). Sau khi quá trình testing hoàn tất và fix tất cả các...

VLSI Testing – Phần 2: Test Là Quá Trình Đưa Ra Quyết Định

VLSI Testing – Phần 2: Test Là Quá Trình Đưa Ra Quyết Định

Bài viết nằm trong series bài viết về VLSI Testing Các Khả Năng Xảy Ra Khi Test Chip Có 4 khả năng xảy ra khi test chip 1.True PASS: tất cả các tính năng của chip đều được test một cách chính xác, chip hoạt động tốt, không có defect nào cả. 2.Test escape: quá trình...

VLSI Testing – Phần 1: VLSI Testing (Chip Testing) Là Gì?

VLSI Testing – Phần 1: VLSI Testing (Chip Testing) Là Gì?

Bài viết nằm trong series bài viết về VLSI Testing. VLSI Testing là gì? VLSI testing, hay chip testing là quá trình diễn ra sau IC đã được sản xuất, nhằm xác định một phần hoặc toàn bộ chip hoạt động đúng tính năng hay không (PASS or FAIL).Testing là công đoạn bắ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