.png)
VHDL vs. Verilog: Hiểu về Ngôn ngữ Mô tả Phần cứng cho Thiết kế FPGA và ASIC
Cùng tìm hiểu về VHDL và Verilog
Verilog là một trong hai ngôn ngữ mô tả phần cứng thông dụng và được sử dụng phổ biến trong công nghiệp hiện nay, ngôn ngữ còn lại là VHDL, tên viết tắt của VHSIC (Very High Speed Integrated Circuits) Hardware Description Language. Do có nhiều sự so sánh hơn thua giữa Verilog và VHDL, chúng ta nên học và sử dụng thành thạo ngôn ngữ có thể phục vụ trực tiếp và tốt nhất cho công việc, sở thích và đam mê của mình, đó sẽ là lựa chọn tốt nhất . Từ nền tảng đó, bạn có thể dễ dàng mở rộng thêm các ngôn ngữ khác khi cần thiết. "Một nghề cho chín còn hơn chín nghề" là câu nói rất đáng để suy ngẫm đối với người làm kỹ thuật.
Lý thuyết
1. 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.
2. VHDL là một ngôn ngữ mô tả phần cứng (HDL) được sử dụng để mô tả một hệ thống thiết kế logic. Được dùng trong thiết kế CPLD hoặc FPGA, phần mềm sẽ nạp chương trình vào CPLD hoặc FPGA để có được một hệ thống logic mà chúng ta đã thiết kế.
VHDL viết tắt của VHSIC Hardware Description Language. VHSIC là viết tắt của Very High Speed Integrated Circuit. VHDL là ngôn ngữ mô tả phần cứng được phát triển dùng cho chương trình VHSIC (Very High Speed Intergrated Circuit) của bộ quốc phòng Mỹ.
Hầu hết câu lệnh trong VHDL xảy ra đồng thời (song song với nhau), chứ không phải là xảy ra tuần tự như C, C++.... Điều này là một khó khăn cho những người bắt đầu lập trình VHDL. Tuy nhiên, khi đã quen với cách lập trình của ngôn ngữ mô tả phần cứng, điều này sẽ rất dễ dàng. Nên các bạn cứ yên tâm.
Các thuật ngữ quan trọng của Verilog
Xuyên suốt chuỗi bài này và các bài viết khác liên quan đến Verilog, bạn có thể bắt gặp nhiều thuật ngữ mới. Có 4 thuật ngữ quan trong sau đây:
- HDL: Là viết tắt của Hardware Description Language (ngôn ngữ mô tả phần cứng) dựa trên ngôn ngữ lập trình mà được sử dụng cho việc mô hình phần cứng. Khi bạn sử dụng HDL, có hai cách để bạn mô hình hoá mạch số của bạn, đó là Behavior Modeling (mô hình hành vi) và Structural Modeling (mô hình cấu trúc).
- RTL: Là viết tắt của Register Transfer Level, là một thuật ngữ thông dụng dùng để mô tả phong cách Behavior Modeling mà định nghĩa mối quan hệ giữa các input và output theo các thao tác data-flow (dòng dữ liệu) bên trong mô hình phần cứng của bạn. Cấu trúc RTL là có thể tổng hợp được. Synthesis (tổng hợp) đề cập đến cả việc chuyển đổi và việc tối ưu HDL code thành mạch số theo một công nghệ cụ thể. Một số ví dụ điển hình là Lookup Table và Flip-Flop của FPGA. RTL Synthesis đơn giản chỉ đề cập đến việc chuyển đổi mô hình RTL.
- Behavior Modeling: Là một thành phần được mô tả bởi đáp ứng Input/output của nó.
- Structural Modeling: Là một thành phần được mô tả bởi các kết nối mức thấp giữa các thành phần con của mạch.
Ưu điểm của VHDL
Tính công cộng: VHDL được phát triển dưới sự bảo trợ của chính phủ Mỹ và hiện nay là một tiêu chuẩn của IEEE, VHDL không thuộc sở hữu của bất kỳ cá nhân hay tổ chức nào. Do đó VHDL được hỗ trợ của nhiều nhà sản xuất thiết bị cũng như nhiều nhà cung cấp công cụ thiết kế mô phỏng hệ thống. Ðây là một ưu điểm nổi bật của VHDL, giúp VHDL trở nên ngày càng phổ biến.
– Khả năng hỗ trợ nhiều công nghệ và phương pháp thiết kế: VHDL cho phép thiết kế bằng nhiều phương pháp như phương pháp thiết kế từ trên xuống, hay từ dưới lên dựa vào các thư viện có sẵn. Như vậy VHDL có thể phục vụ tốt cho nhiều mục đích thiết kế khác nhau, từ việc thiết kế các phần tử phổ biến đến việc thiết kế các IC ứng dụng đặc biệt (Application Specified IC).
– Ðộc lập với công nghệ: VHDL hoàn toàn độc lập với công nghệ chế tạo phần cứng. Một mô tả hệ thống dùng VHDL thiết kế ở mức cổng có thể được chuyển thành các bản tổng hợp mạch khác nhau tuỳ thuộc vào công nghệ chế tạo phần cứng nào được sử dụng (dùng CMOS, nMOS, hay GaAs). Ðây cũng là một ưu điểm quan trọng của VHDL nó cho phép người thiết kế không cần quan tâm đến công nghệ phần cứng khi thiết kế hệ thống, như thế khi có một công nghệ chế tạo phần cứng mới ra đời nó có thể được áp dụng ngay cho các hệ thống đã thiết kế.
– Khả năng mô tả mở rộng: VHDL cho phép mô tả hoạt động của phần cứng từ mức hệ thống số (hộp đen) cho đến mức cổng. VHDL có khả năng mô tả hoạt động của hệ thống trên nhiều mức nhưng chỉ sử dụng một cú pháp chặt chẽ thống nhất cho mọi mức. Như thế ta có thể mô phỏng một bản thiết kế bao gồm cả các hệ con được mô tả ở mức cao và các hệ con được mô tả chi tiết.
– Khả năng trao đổi kết quả: Vì VHDL là một tiêu chuẩn được chấp nhận, nên một mô hình VHDL có thể chạy trên mọi bộ mô phỏng đáp ứng được tiêu chuẩn VHDL và các kết quả mô tả hệ thống có thể được trao đổi giữa các nhà thiết kế sử dụng công cụ thiết kế khác nhau nhưng cùng tuân theo chuẩn VHDL. Hơn nữa, một nhóm thiết kế có thể trao đổi mô tả mức cao của các hệ thống con trong một hệ thống; trong khi các hệ con đó được thiết kế độc lập
– Khả năng hỗ trợ thiết kế mức lớn và khả năng sử dụng lại các thiết kế: VHDL được phát triển như một ngôn ngữ lập trình bậc cao, vì vậy nó có thể sử dụng để thiết kế một hệ thống lớn với sự tham gia của một nhóm nhiều người. Bên trong ngôn ngữ VHDL có nhiều tính năng hỗ trợ việc quản lý, thử nghiệm và chia sẻ thiết kế. VHDL cũng cho phép dùng lại các phần đã có sẵn.
Vậy thì VHDL hay Verilog?
Một số điều cần lưu ý:
- VHDL được gõ mạnh mẽ. Điều này làm cho nó khó khăn hơn để làm sai như một người mới bắt đầu bởi vì trình biên dịch sẽ không cho phép bạn viết mã sai. Verilog bị đánh máy yếu. Nó cho phép bạn viết mã sai, nhưng ngắn gọn hơn.
- Verilog trông gần gũi hơn với một ngôn ngữ phần mềm như C. Điều này làm cho nó dễ dàng hơn cho một người biết C cũng đọc và hiểu những gì Verilog đang làm.
- VHDL đòi hỏi rất nhiều đánh máy. Verilog thường yêu cầu ít mã hơn để làm điều tương tự.
- VHDL là rất xác định, nơi Verilog là không xác định trong những trường hợp nhất định.
Tuy nhiên không yếu tố nào trong số này là quan trọng nhất. Bạn nên tìm hiểu VHDL hoặc Verilog dựa trên việc bạn có nhiều khả năng sử dụng trong trường học hoặc trong công việc . Nếu trường đại học của bạn sử dụng Verilog, hãy học Verilog! Nếu các công ty xung quanh bạn nơi bạn có thể muốn làm việc sử dụng VHDL, hãy học VHDL! Sự phân tích những người sử dụng VHDL và Verilog phụ thuộc nhiều vào nơi bạn đang sống. Nếu bạn nhấn mạnh vào VHDL so với Verilog vào Google Xu hướng, bạn có thể bắt đầu nhận được một ý tưởng khá hay về ngôn ngữ bạn nên học trước tiên.