Hãy viết chương trình architecture khai báo mạch có bảng chân trị như sau: Sử dụng câu lệnh When/else
Để viết chương trình VHDL khai báo mạch với bảng chân trị sử dụng câu lệnh when/else
, bạn cần phải xác định rõ ràng tình huống mà các tín hiệu logic của bạn sẽ được áp dụng.
Đây là một ví dụ đơn giản của một bộ mã hóa 2-4 bằng câu lệnh "when/else". Bộ mã hóa này sẽ có 2 tín hiệu đầu vào và 4 tín hiệu đầu ra.
Trước hết, bạn cần khai báo các tín hiệu đầu vào và đầu ra, sau đó bạn có thể sử dụng câu lệnh when/else
để xác định hành vi của mạch.
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity Encoder is
Port (
A : in STD_LOGIC_VECTOR (1 downto 0);
Y : out STD_LOGIC_VECTOR (3 downto 0)
);
end Encoder;
architecture Behavioral of Encoder is
begin
process(A)
begin
case A is
when "00" =>
Y <= "0001";
when "01" =>
Y <= "0010";
when "10" =>
Y <= "0100";
when "11" =>
Y <= "1000";
when others =>
Y <= "0000"; -- Error case
end case;
end process;
end Behavioral;
Trong ví dụ này:
entity
định nghĩa các cổng đầu vào/đầu ra của mạch.architecture Behavioral
chứa phần khai báo hành vi của mạch.process
được dùng để mô tả các hành động xảy ra khi tín hiệu đầu vào thay đổi.case
được sử dụng để lựa chọn các giá trị của tín hiệu đầu vào và tương ứng đặt các giá trị của tín hiệu đầu ra.Ready để tự tạo ra các mạch phức tạp hơn chưa? Nếu có khó khăn gì hoặc muốn tìm hiểu thêm, hãy ghé ngay trituenhantao.io để kiếm thêm vài tip xịn xò nữa nhé! VHDL mà đọc mãi không hiểu thì ai cũng phải bật cười đấy!