Ngôn ngữ mô tả phần cứng VHDL

Print

1. Giới thiệu về VHDL
VHDL là viết tắt của cụm từ Very High Speed Intergrated Circuit Hardware Description Language - ngôn ngữ mô phỏng phần cứng cho các mạch tích hợp tốc độ rất cao.

VHDL là ngôn ngữ mô phỏng 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ỹ. Mục tiêu của việc phát triển VHDL là có được một ngôn ngữ mô phỏng phần cứng tiêu chuẩn và thống nhất cho phép phát triển thử nghiệm các hệ thống số nhanh hơn cũng như cho phép dễ dàng đưa các hệ thống đó vào ứng dụng trong thực tế. Ngôn ngữ VHDL được ba công ty Intermetics, IBM và Texas Instruments bắt đầu nghiên cứu phát triển vào 7/1983. Phiên bản đầu tiên được công bố vào 8/1985. Sau đó VHDL được đề xuất để tổ chức IEEE xem xét thành một tiêu chuẩn. Năm 1987, đã đưa ra tiêu chuẩn về VHDL – tiêu chuẩn IEEE-1076-1987.

VHDL được phát triển để giải quyết các khó khăn trong việc phát triển, thay đổi và lập tài liệu cho các hệ thống số. Như ta đã biết, một hệ thống số có rất nhiều tài liệu mô tả. Ðể có thể vận hành bảo trì sửa chữa một hệ thông ta cần tìm hiểu tài liệu đó kỹ lưỡng. Với một ngôn ngữ mô phỏng phần cứng tốt việc xem xét các tài liệu mô tả trở nên dễ dàng hơn vì bộ tài liệu đó có thể được thực thi để mô phỏng hoạt động của hệ thống. Như thế ta có thể xem xét toàn bộ các phần tử của hệ thống hoạt động trong một mô hình thống nhất.

Trước khi VHDL ra đời, có nhiều ngôn ngữ mô phỏng phần cứng được sử dụng nhưng không có một tiêu chuẩn thống nhất. Các ngôn ngữ mô phỏng phần cứng đó được phát triển để phục vụ các bộ mô phỏng chạy chúng. Vì các ngôn ngữ mô phỏng phần cứng đó được các nhà cung cấp thiết bị phát triển, nên mang các đặc trưng gắn với các thiết bị của nhà cung cấp đó và thuộc sở hữu của nhà cung cấp.

Trong khi đó, VHDL được phát triển như một ngôn ngữ độc lập không gắn với bất kỳ một phương pháp thiết kế, bộ mô phỏng hay công nghệ phần cứng nào. Người thiết kế có thể tự do lựa chọn công nghệ, phương pháp thiết kế trong khi vẫn sử dụng một ngôn ngữ duy nhất.

VHDL có một số ưu điểm hơn hẳn các ngôn ngữ mô phỏng phần cứng khác là:

· 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. VHDL cũng hỗ trợ cho nhiều loại công nghệ xây dựng mạch như sử dụng công nghệ đồng bộ hay không đồng bộ, sử dụng ma trận lập trình được hay sử dụng mảng logic ngẫu nhiê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 trong 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-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. Cũng như, 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.

2. Cấu trúc ngôn ngữ của VHDL

VHDL là ngôn ngữ cho phép mô tả các thiết bị phần cứng số trừu tượng, nó không dựa vào công nghệ thiết bị phần cứng số, phương pháp được sử dụng để thiết kế thiết bị số, mà những khái niệm, mô hình trừu tượng của thiết bị phần cứng số được đưa ra như là nền tảng của ngôn ngữ. Do đó dùng VHDL cho phép mô tả được hầu hết các hệ thống phần cứng số. Các mô hình trừu tượng gồm:

- Mô hình hoạt động (a Model of Behavior).

- Mô hình thời gian (a Model of Time).

- Mô hình cấu trúc (a Model of Structure).

Để thực hiện mô tả cho một hệ thống số nào đó cần thực hiện theo các bước như sau:

+ Phân tích yêu cầu của hệ thống số cần phải thiết kế hoặc cần phải mô tả.

+ Phân tách hệ thống thành những khối con.

+ Xác định mô hình mô tả phù hợp cho mỗi khối con hoặc cho cả hệ thống.

+ Sử dụng ngôn ngữ VHDL để mô tả hệ thống số theo các mô hình đã xác định.

Như vậy việc nắm chắc cấu trúc, cú pháp, các mô hình mô tả của ngôn ngữ là rất quan trọng, quyết định chủ yếu đến thành công trong việc mô tả hệ thống số cần thiết kế. VHDL cũng có nhiều điểm giống như một ngôn ngữ lập trình bậc cao, có cấu trúc, có cú pháp riêng, có cách tổ chức chương trình, có từ khóa, có phương pháp biểu diễn số liệu riêng...

3. Cấu trúc một mô hình hệ thống mô tả bằng VHDL

Thông thường một mô hình VHDL bao gồm ba phần: thực thể, kiến trúc và các cấu hình. Trong một số trường hợp mô hình còn có thêm phần các môi trường kiểm tra.

3.1. Thực thể (Entity)
Khai báo thực thể trong VHDL là câu lệnh định nghĩa các chỉ tiêu phía ngoài của một phần tử hay một hệ thống. Các thông tin có trong phần khai báo thực thể cho phép kết nối phần tử (hệ thống) mà thực thể đó đại diện với các phần tử (hệ thống) khác. Thực chất việc khai báo thực thể chính là khai báo giao diện của hệ thống với bên ngoài. Hoạt động thực chất của hệ thống không được mô tả trong khai báo thực thể. Dưới đây là một ví dụ khai báo thực thể cho một cổng NAND (Một loại cổng số cơ bản thi hành chức năng so sánh hai đường nhập và cho một đường xuất bằng 1 chỉ khi nào hai đường nhập bằng 0. Cổng NAND được tạo từ hai cổng AND và NOT).
 

 


Hình 1. Khai báo thực thể một cổng NAND


Câu lệnh LIBRARY IEEE và USE IEEE.std_logic_1164.ALL cho phép thực thể sử dụng các định nghĩa trong thư viện về các tiêu chuẩn của IEEE. Khai báo thực thể bao gồm tên của thực thể và một tập các cổng và phần chung. Trong đó phần chung GENERIC là các hằng số được truyền cho phần tử (hệ thống). Phần chung có thể coi là các tham số định trước của phần tử, chẳng hạn như độ trễ. Các cổng là phần giao diện vào ra của phần tử. Các cổng có thể tương ứng với các chân IC, hay các đầu nối trên bảng mạch. Các cổng được khai báo là cổng vào, cổng ra, cổng hai chiều hay bộ đệm.
3.2. Kiến trúc (Arrchitecture)
Một khai báo thực thể đều phải đi kèm với ít nhất một kiến trúc tương ứng. VHDL cho phép khai báo nhiều kiến trúc cho một thực thể. Một khai báo kiến trúc có thể bao gồm các khai báo về các tín hiệu bên trong, các phần tử bên trong hệ thống, hay các hàm và thủ tục mô tả hoạt động của hệ thống. Có hai cách mô tả kiến trúc của một phần tử (hệ thống) đó là mô tả theo mô hình hoạt động hay mô tả theo mô hình cấu trúc. Tuy nhiên một hệ thống có thể bao gồm cả mô tả theo mô hình hoạt động và mô tả theo mô hình cấu trúc.
3.2.1. Mô tả kiến trúc theo mô hình hoạt động
Mô hình hoạt động mô tả các hoạt động của hệ thống (hệ thống đáp ứng với các tín hiệu vào như thế nào và đưa các kết quả gì ra đầu ra) dưới dạng các câu lệnh cảu ngôn ngữ lập trình bậc cao. Các câu lệnh đó có thể là PROCESS, WAIT, IF, CASE, FOR-LOOP...Ví dụ, kiến trúc của cổng NAND nói trên có thể mô tả theo mô hình hoạt động như sau.
 

 

Hình 2. Mô tả kiến trúc cổng NAND theo mô hình hoạt động
 

Ta thấy kiến trúc của phần tử NAND có một lệnh gán tín hiệu mô tả chức năng của phần tử. Câu lệnh này được thực thi khi một trong hai cổng a,b thay đổi giá trị. Và câu lệnh gán có độ trễ, tức là tín hiệu ở bên vế trái sẽ thay đổi tương ứng sau thời gian trễ.
3.2.2. Mô tả kiến trúc theo mô hình cấu trúc
Mô hình cấu trúc của một phần tử (hệ thống) có thể bao gồm nhiều cấp cấu trúc bắt đầu từ một cổng logic đơn giản để xây dựng mô tả cho một hệ thống hoàn thiện. Thực chất của việc mô tả theo mô hình cấu trúc là mô tả các phần tử con bên trong hệ thống và sự kết nối của các phần tử con đó. Như với ví dụ mô tả mô hình cấu trúc một flip-flop RS gồm hai cổng NAND như sau.
 

 



Hình 3. Mô tả kiến trúc RS theo mô hình cấu trúc
 

 

3.3. Cấu hình
Việc khai báo cấu hình tương tự như việc liệt kê các phần của bản thiết kế. Khai báo cấu hình thực chất là chỉ ra kiến trúc nào được gắn với thực thể nào. Như vậy các kiến trúc khác nhau có thể cùng được gắc với một thực thể. Ðiều này cho phép thay đổi bản mô tả ở thời điểm mô phỏng hay tổng hợp hệ thống. Việc khai báo cấu hình là tuỳ chọn, cũng có thể sử dụng cấu hình mặc định do VHDL cung cấp, khi đó kiến trúc được khai báo cuối cùng cho một thực thể sẽ được gắn với thực thể đó.
3.4. Môi trường kiểm tra (testbench)
Một trong các nhiệm vụ rất quan trọng là kiểm tra bản mô tả thiết kế. Kiểm tra một mô hình VHDL được thực hiện bằng cách quan sát hoạt động của nó trong khi mô phỏng. Thông thường các bộ mô phỏng có cung cấp khả năng kiểm tra, nhưng cũng có thể xây dựng một môi trường kiểm tra VHDL. Môi trường kiểm tra có thể hiểu như một mạch kiểm tra ảo. Môi trường kiểm tra sinh ra các tác động lên bản thiết kế và cho phép quan sát hoặc so sánh kết quả hoạt động của bản mô tả thiết kế.
 

 



Hình 4. Minh họa một môi trường kiểm tra ảo bằng VHDL

 


4. Cấu trúc chung của một chương trình mô tả VHDL

Mô hình cấu trúc mô tả phần cứng số và phạm vi sử dụng của các đối tượng trong VHDL có thể được tổng kết đơn giản như trong hình dưới đây:
 

 


 


Sau đây là cấu trúc chung đơn giản của một chương trình mô tả VHDL:
-- Ví dụ cấu trúc 1 file mô tả cho một hệ thống phần cứng số dùng VHDL
-- Khai báo thư viện, mặc định cần khai báo thư viện IEEE (thư viện chuẩn đã được xây
--dựng).
library IEEE;...
-- Khai báo gói dữ liệu (package) trong thư viện cần sử dụng:
use IEEE.STD_LOGIC_1164.ALL;...
-- Khai báo thực thể
Entity Tên_thực_thể  is
-- Khai báo các tham số generic nếu cần:
Generic( -- khai báo danh sách các tham số); 
Port(-- Khai báo danh sách các cổng vào/ra);
End Tên_thực_thể;
-- Bắt đầu viết
Architecture Tên_kiến_trúc of Tên_thực_thể  is
{Khai báo: kiểu dữ liệu, các component, các đối tượng constant, signal} 
Begin
{ Viết các mô tả dùng cấu trúc lệnh song song }
Process(-- danh sách tín hiệu kích thích nếu cần)
{Khai báo:kiểu dữ liệu, các đối tượng biến constant, variable } 
Begin
{ Viết các mô tả dùng cấu trúc lệnh tuần tự } End process;
{ Viết các mô tả dùng cấu trúc lệnh song song hay process khác }
End Tên_kiến_trúc;

5. Kết luận

Thiết kế với sự trợ giúp của máy tính của các hệ thống kỹ thuật số được dùng rộng rãi trong công nghiệp. Do đó, ta cần phải hiểu các khái niệm khác nhau trong quá trính thiết kế. Trên đây ta đã xem xét một ngôn ngữ phần cứng khá phổ biến là VHDL. Ta có thể thấy các ưu điểm của VHDL cũng như các cấu trúc cơ bản nhất của VHDL. Tuy nhiên, VHDL là một ngôn ngữ rất phức tạp và không phải là một ngôn ngữ dễ học và dễ làm chủ. Tuy nhiên chúng ta có thể sử dụng VHDL để mô phỏng quan sát kiểm tra hoạt động của các phần cứng mà không cần dùng tới các mạch kiểm tra quá đắt tiền. Ðiều này rất hữu ích trong trường cao đẳng, đại học để xây dựng các bài thí nghiệm mô phỏng hoạt động phần cứng minh hoạ cho giảng dạy. Hơn thế việc nghiên cứu sử dụng VHDL là cần thiết cho các kỹ sư vận hành hệ thống, vì các hệ thống số chúng ta đặt mua sẽ có thể được cung cấp tài liệu dưới dạng các mô hình VHDL.

 

Bạn có đam mê ngành thiết kế vi mạch và bạn muốn có mức lương 1000 usd cùng lúc bạn

đang muốn tìm một Trung tâm để học vậy hãy đến với ngành vi mạch tại SEMICON

     HotLine: 0972 800 931 Ms Duyên
Last Updated ( Wednesday, 18 November 2015 14:57 )