我目前正在Quartus中设计一个简单的多输入SPI主控制器 . 鉴于它是一个串行协议,我有一个串行时钟和一个存储当前位索引的信号 .

我写的一个过程看起来像这样:

store_bits : process(bit_clk) is
begin
    if rising_edge(bit_clk) and bit_index >= LEADING_BITS and bit_index < LEADING_BITS+DATA_BITS then
        data_valid <= '0';

        for input in 0 to INPUTS-1 loop
            data(input)(bit_index - LEADING_BITS) <= spi_miso(input);
        end loop;

        if bit_index = LEADING_BITS+DATA_BITS-1 then
            data_valid <= '1';
        end if;
    end if;
end process store_bits;

现在, bit_indexbit_clk 的下降沿以单独的进程递增 . 上面的过程 shouldn'tbit_index 过渡敏感,所以我把它从灵敏度列表中删除了 .

不幸的是,Quartus II在分析期间发出警告:

10492 VHDL过程语句警告在multi_spi.vhd(68):信号“bit_index”在Process语句内读取但不在Process Statement的灵敏度列表中

这是对的吗?我应该将它添加到灵敏度列表中,即使实际过程只会在还有 bit_clk 上升沿时执行任何操作吗?