III. MÔ TẢ PHẦN CỨNG TRONG VHDL
b. Ví dụ về quá trình
Chúng ta hãy quan sát ví dụ 2-12 của phát biểu quá trình trong kiến trúc
Ví dụ 2-12:
LIBRARY IEEE;
USE IEEE.std_logic_1164.ALL;
ENTITY nand2 IS
PORT (a, b: IN STD_LOGIC;
c: OUT STD_LOGIC);
END nand2;
ARCHITECTURE nand2 OF nand2 IS
BEGIN
PROCESS (a,b)
VARIABLE temp : STD_LOGIC;
BEGIN
temp := NOT (a AND b);
IF (temp = ‘1’ ) THEN c <= temp AFTER 6 ns;
ELSIF (temp = ‘0’ ) THEN c <= temp AFTER 5 ns;
ELSE c <= temp AFTER 6 ns;
END IF;
ENDPROCESS;
END and2;
Trong ví dụ này trình bày cách viết mô hình cho một cổng NAND đơn giản có 2 ngõ vào dùng phát biểu tuần tự.
Phát biểu USE khai báo gói VHDL để cung cấp những thông tin cần thiết cho phép xây dựng mô hình cho cổng NAND. Phát biểu USE được dùng để cho mô hình có thể được mô phỏng với trình mô phỏng VHDL mà không cần thêm bước hiệu chỉnh nào.
Thực thể khai báo 3 port cho cổng nand2. Port a và port b là ngõ vào và port c là ngõ ra. Tên của kiến trúc cùng tên với thực thể.
Kiến trúc chỉ chứa một phát biểu, một phát biểu quá trình đồng thời.
Phần khai báo quá trình bắt đầu tại từ khoá PROCESS và kết thúc tại từ khoá BEGIN. Phần phát biểu quá trình bắt đầu tại từ khoá BEGIN và kết thúc tại từ khoá END PROCESS. Phần khai báo quá trình có hai phát biểu tuần tự: một phát biểu gán biến:
Và một phát biểu IF THEN ELSE
IF (temp = ‘1’ ) THEN c <= temp AFTER 6 ns;
ELSIF (temp = ‘0’ ) THEN c <= temp AFTER 5 ns;
ELSE c <= temp AFTER 6 ns;
END IF;
Quá trình chứa danh sách nhạy rõ ràng với 2 tín hiệu chứa bên trong:
PROCESS (a,b)
Quá trình đang thực hiện (nhạy) với 2 tín hiệu a và b. Trong ví dụ này, a và b là 2 port ngõ vào của mô hình. Các port ngõ vào xây dựng các tín hiệu có thể được dùng như các ngõ vào, các port ngõ ra xây dựng các tín hiệu có thể được dùng như các ngõ ra, các port inout xây dựng các tín hiệu có thể được dùng cho cả 2 vào – ra.
Khi port a hoặc b thay đổi giá trị thì phát biểu bên trong quá trình được thực hiện. Mỗi phát biểu được thực hiện theo thứ tự nối tiếp bắt đầu với phát biểu trên cùng của phát biểu quá trình và thực hiện từ trên xuống dưới. Sau khi tất cả các phát biểu đã được thực hiện một lần, quá trình đợi cho đến khi có sự thay đổi tín hiệu hoặc port nằm trong danh sách nhạy.