El numeric_std.vhdl dice esto:
type UNSIGNED is array (NATURAL range <>) of STD_LOGIC;
type SIGNED is array (NATURAL range <>) of STD_LOGIC;
¿Esto significa que los no firmados y firmados tienen std_logic como sus subtipos?
¿Por qué entonces es que cuando tengo una entidad con un puerto de tipo firmado o sin firmar y conecto un std_logic_vector (3 downto 0) a él, obtengo un error?
por ejemplo
component dummy is
port(
a: in std_logic_vector(3 downto 0);
b: in signed(3 downto 0);
c: in unsigned(3 downto 0);
d: out std_logic
);
end component;
Si transfiero un puerto de std_logic_vector a b o c obtengo errores:
Signal "b" is type ieee.std_logic_1164.STD_LOGIC_VECTOR; expecting type ieee.NUMERIC_STD.SIGNED.
¿Por qué?