std_logic
çözünürlük fonksiyonu var
Sadece gelmez std_logic
yanında daha yararlı durumlarına sahip 1
ve 0
aynı zamanda tanımlanmış bir çözünürlük işlevi vardır.
Çözünürlük işlevi bir VHDL dil konseptidir. Bir türle ilişkilendirilmiş bir işlevdir ve bu türün birden çok değeri tek bir sinyale uygulandığında ne olacağını belirler. Sözdizimi:
SUBTYPE std_logic IS resolved std_ulogic;
std_ulogic
çözümlenmemiş (ve dolayısıyla çok daha az kullanışlı) sürümü nerede std_logic
.
Özellikle, bu gibi güzel şeyleri ima eder 0
ve aşağıdakilere 1
yol açar 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;
X
Tek bir kabloya birden fazla uyumsuz değerin uygulandığı durum olduğumuzu anladığımız için bu sezgisel bir anlam ifade eder.
std_logic
ayrıca LRM'de bulunan bir tabloya göre olası her bir giriş sinyali çiftinin nasıl çözüleceğini de bilir.
bit
Öte yandan, bir çözünürlük fonksiyonuna sahip değildir ve yukarıdaki örnekte kullansaydık, GHDL 0.34'te bir simülasyon hatasına yol açacaktır.
Olası değerler std_logic
iyi bir seçimdir çünkü IEEE 1164 ve birçok yaygın kullanım durumu ile ilgilidir.