-
2.3.2. Thực thể (Entity)
Một thực thể VHDL chỉ rõ tên của thực thể, các port của thực thể và thông tin liên quan đến thực thể. Mọi thiết kế đều đợc tạo ra bằng cách sử dụng một hay nhiều thực thể.
Ví dụ đơn giản của một thực thể:
Entity mux is
port ( a, b, c, d : in bit;
s0, s1 : in bit;
x, : out bit);
end mux;
Từ khoá entity mang ý nghĩa đây là nơi bắt đầu của một phát biểu thực
thể. Tên của thực thể là mux, thực thể có 7 port trong đó 6 port ở chế độ in, 1 port ở chế độ out và dữ liệu đều là kiểu bit.
Thực thể mô tả giao tiếp với thế giới bên ngoài. Thực thể chỉ ra số port, hớng của các port và kiểu của các port. Nhiều thông tin hơn nữa có thể đợc đặt vào bên trong thực thể.
-41-
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.
Kiến trúc đợc mô tả theo cú pháp sau:
Architecture tên kiến trúc oftên thực thể is
{ phần khai báo của kiến trúc}
Begin
{Các kết cấu thực hiện đồng thời}
end {tên cấu trúc}
2.3.3.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 có thể mô tả theo mô hình hoạt động nh sau.
Architecture behaviour of nand is
Begin
C <=not(a and b) after10ns
Endbehaviour
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
-42-
đổ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ễ.
2.3.3.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.-
2.3.4. Cấu hình (Configuration)
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ắn 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ể đó
Cú pháp mô tả của cấu hình:
-43-
{ phần khai báo của cấu hình}
for đặc tả của khối {mệnh đề use}
{các phần tử của cấu hình}
end for;
Ví dụ về khai báo cấu hình
Configuration muxcon1 of mux is
for netlist
for U1,U2 :
inverter use entity WORK.myinv(version1);
end for;
for U3,U4,U5,U6 : andgate use entityWORK.myand(version1);
end for;
for U7 : orgate use entityWORK.myor(version1);
end for;
end for;
end muxcon1;