2
我想用std_logic_vector作爲索引的數組,例如:VHDL如何使用std_logic_vector作爲索引數組
Data: in std_logic_vector(7 downto 0);
signal counter : std_logic_vector(3 downto 0);
output <= Data(counter);
由於VHDL語法檢查告訴我,我應該使用和整數數據處理爲索引,我想問是否可以使用std_logic_vector作爲索引。
在不情況下,如果使用這樣的計數器:
signal counter : integer range 0 to 7 := 7;
合成器將創建一個8位計數器(因爲圖7是最大值),或者它會創建一個32位計數器?我問這個問題,因爲如果我分配一個值8來反擊vhdl語法檢查並不告訴我這是一個錯誤。
合成器不執行VHDL標準(不像ModelSim這樣的好模擬器)。根據VHDL標準,將8分配給「範圍0至7」是不合法的。合成器可能會接受它(可能會分配0),但是你真的不應該依賴它。 –