std_logic có chức năng phân giải
Không chỉ std_logiccó trạng thái hữu ích hơn ngoài 1và 0, nó cũng có chức năng phân giải được xác định.
Hàm phân giải là một khái niệm ngôn ngữ VHDL. Đây là một hàm được liên kết với một loại và nó xác định điều gì sẽ xảy ra khi nhiều giá trị của loại đó được áp dụng cho một tín hiệu. Cú pháp là:
SUBTYPE std_logic IS resolved std_ulogic;
nơi std_ulogiclà chưa được giải quyết (và do đó ít nhiều hữu ích) phiên bản của std_logic.
Đặc biệt, điều này ngụ ý những điều tốt đẹp như 0và 1dẫn đến X:
library ieee;
use ieee.std_logic_1164.all;
entity std_logic_tb is
end std_logic_tb;
architecture behav of std_logic_tb is
signal s0 : std_logic;
begin
s0 <= '0';
s0 <= '1';
process
begin
wait for 1 ns;
assert s0 = 'X';
wait;
end process;
end behav;
Điều này có ý nghĩa trực quan, vì chúng tôi hiểu Xlà trạng thái nơi nhiều giá trị không tương thích được áp dụng cho một dây.
std_logic cũng biết cách giải quyết mọi cặp tín hiệu đầu vào có thể khác theo một bảng có trên LRM.
bit mặt khác, không có chức năng phân giải và nếu chúng ta đã sử dụng nó trong ví dụ trên, nó sẽ dẫn đến lỗi mô phỏng trên GHDL 0,34.
Các giá trị có thể std_logiclà một lựa chọn tốt vì chúng được chuẩn hóa bởi IEEE 1164 và xử lý nhiều trường hợp sử dụng phổ biến.