STD_LOGIC_VECTOR 不匹配整数文字

STD_LOGIC_VECTOR does not match integer literal

我对 VHDL 非常陌生,我正在尝试编写这段代码,该过程根据输入 SW 驱动输出向量 HEX0。这是我目前所拥有的。

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity top is
    port (SW : in std_logic_vector (3 downto 0);
        LEDR : out std_logic_vector (3 downto 0);
        HEX0 : out std_logic_vector (6 downto 0));
end entity;

architecture top_arch of top is
    begin
        LEDR <= SW;
            -- Decoder process goes here…
            process (SW)
                begin
                    if  (SW = "0000") then
                        HEX0 <= (100000);
                    elsif   (SW = "0001") then
                        HEX0 <= (100111);
                    end if;
        end process;
end architecture;

这是错误信息

10517 HVDL type mismatch error at top.vhd(17): std_logic_vector type does not match integer literal

我对此很陌生,所以我不知道为什么会这样。请让我知道你的想法。谢谢。

HEX0 <= (100000);HEX0 <= (100111); 行中,数字被解释为整数 100000 和 100111,而不是按位序列的 1 和 0。

这是在抱怨您试图将整数分配给 std_logic_vector 类型的信号 - 这是不允许的。

要使用 std_logic_vector 文字,您需要编写:HEX0 <= "100000";HEX0 <= "100111";