在下面的代码中,我有一行row_count <= row_count + 1;
,下一行我row_count
用来访问一个数组,col_mask <= display(conv_integer(row_count));
。我的期望是,当 if 块被触发时,row_count
它会增加,并且新值将用于访问数组。row_count
但是,当我运行代码时,从数组中检索到的值比我期望的值落后 1,这表明数组在递增之前是用当前值索引的。
我的问题是,为什么会这样?我很容易通过将计数器从 1 开始而不是 0 来弥补这一点,但我很好奇它为什么会这样。
if col = "10000000" then
-- Left rotate row
row <= row(6 downto 0) & row(7);
-- increment row count
row_count <= row_count + 1;
-- get column mask from current position in array
col_mask <= display(conv_integer(row_count));
end if;