std_logic
memiliki fungsi resolusi
Tidak hanya std_logic
memiliki negara yang lebih berguna selain 1
dan 0
, ia juga memiliki fungsi resolusi yang ditentukan.
Fungsi resolusi adalah konsep bahasa VHDL. Ini adalah fungsi yang dikaitkan dengan suatu jenis, dan itu menentukan apa yang terjadi ketika beberapa nilai dari jenis itu diterapkan pada satu sinyal. Sintaksnya adalah:
SUBTYPE std_logic IS resolved std_ulogic;
di mana std_ulogic
versi yang belum terselesaikan (dan karenanya jauh kurang berguna) dari std_logic
.
Secara khusus, ini menyiratkan hal-hal baik seperti 0
dan 1
mengarah ke 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;
Ini masuk akal secara intuitif, seperti yang kita pahami X
sebagai keadaan di mana banyak nilai yang tidak kompatibel diterapkan ke satu kabel.
std_logic
juga tahu bagaimana menyelesaikan setiap pasangan sinyal input yang mungkin menurut tabel yang ada pada LRM.
bit
di sisi lain, tidak memiliki fungsi resolusi, dan jika kita menggunakannya pada contoh di atas, itu akan menyebabkan kesalahan simulasi pada GHDL 0,34.
Nilai yang mungkin dari std_logic
adalah pilihan yang baik karena mereka distandarisasi oleh IEEE 1164 dan menangani banyak kasus penggunaan umum.