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),但是你真的不应该依赖它。 –