通用从站的实际表达式不能引用信号
Actual expression for generic slaves cannot reference a signal
在 Quartus 中,我收到以下错误消息:
错误 (10795):通用从站的实际表达式无法引用信号
该代码有一个带有泛型的组件实例化,如下所示:
architecture rtl of System is
component spi_master
generic(
slaves : INTEGER := 1;
port(clock : IN STD_LOGIC;
sclk : BUFFER STD_LOGIC;
ss_n : BUFFER STD_LOGIC_VECTOR(slaves - 1 DOWNTO 0);
end component spi_master;
signal spi_slaves : INTEGER := 1;
begin
spi : component spi_master
generic map(
slaves => 1,
)
port map(clock => clk_clk,
sclk => dac_sclk,
ss_n => slave_sel,
);
end architecture rtl;
错误指向行"generic map("。我发现我也不能在端口声明中使用 "slaves"。
问题:
- 我该如何解决这个问题?
谢谢!
代码与问题描述不符,因为slaves => 1
没问题,包括在声明BUFFER STD_LOGIC_VECTOR(slaves - 1 DOWNTO 0)
中重用。
问题可能是失败的代码使用了 slaves => spi_slaves
,其中 spi_slaves
是一个信号,这是非法的。
将 spi_slaves
的声明更改为:
constant spi_slaves : INTEGER := 1;
在 Quartus 中,我收到以下错误消息:
错误 (10795):通用从站的实际表达式无法引用信号
该代码有一个带有泛型的组件实例化,如下所示:
architecture rtl of System is
component spi_master
generic(
slaves : INTEGER := 1;
port(clock : IN STD_LOGIC;
sclk : BUFFER STD_LOGIC;
ss_n : BUFFER STD_LOGIC_VECTOR(slaves - 1 DOWNTO 0);
end component spi_master;
signal spi_slaves : INTEGER := 1;
begin
spi : component spi_master
generic map(
slaves => 1,
)
port map(clock => clk_clk,
sclk => dac_sclk,
ss_n => slave_sel,
);
end architecture rtl;
错误指向行"generic map("。我发现我也不能在端口声明中使用 "slaves"。
问题: - 我该如何解决这个问题?
谢谢!
代码与问题描述不符,因为slaves => 1
没问题,包括在声明BUFFER STD_LOGIC_VECTOR(slaves - 1 DOWNTO 0)
中重用。
问题可能是失败的代码使用了 slaves => spi_slaves
,其中 spi_slaves
是一个信号,这是非法的。
将 spi_slaves
的声明更改为:
constant spi_slaves : INTEGER := 1;