我目前正在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_index
在 bit_clk
的下降沿以单独的进程递增 . 上面的过程 shouldn't 对 bit_index
过渡敏感,所以我把它从灵敏度列表中删除了 .
不幸的是,Quartus II在分析期间发出警告:
10492 VHDL过程语句警告在multi_spi.vhd(68):信号“bit_index”在Process语句内读取但不在Process Statement的灵敏度列表中
这是对的吗?我应该将它添加到灵敏度列表中,即使实际过程只会在还有 bit_clk
上升沿时执行任何操作吗?