std_logic ma funkcję rozdzielczości
Nie tylko std_logicmają więcej użytecznych stanów oprócz 1a 0, ma też funkcję zdefiniowaną rozdzielczości.
Funkcja rozdzielczości to koncepcja języka VHDL. Jest to funkcja powiązana z typem, która określa, co się stanie, gdy wiele wartości tego typu zostanie zastosowanych do pojedynczego sygnału. Składnia jest następująca:
SUBTYPE std_logic IS resolved std_ulogic;
gdzie std_ulogicjest nierozwiązana (a przez to znacznie mniej przydatna) wersja std_logic.
W szczególności oznacza to miłe rzeczy 0i 1prowadzi do 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;
Ma to intuicyjny sens, ponieważ rozumiemy Xstan, w którym wiele niezgodnych wartości jest stosowanych do jednego drutu.
std_logic wie także, jak rozwiązać każdą inną możliwą parę sygnałów wejściowych zgodnie z tabelą znajdującą się na LRM.
bit z drugiej strony nie ma funkcji rozdzielczości, a gdybyśmy użyli jej w powyższym przykładzie, doprowadziłoby to do błędu symulacji na GHDL 0.34.
Możliwe wartości std_logicsą dobrym wyborem, ponieważ są znormalizowane przez IEEE 1164 i dotyczą wielu typowych przypadków użycia.