【发布时间】:2014-03-21 09:06:00
【问题描述】:
给定一个数组类型:
type enc is array (integer 0 to 1) of std_logic_vector(3 downto 0);
是否可以访问数组子类型(std_logic_vector)的属性?
我原以为这样的事情是可能的:
enc(0)'range -> 3 downto 0 (取元素编号0的范围)
这是我的模拟器中的错误。
查看 LRM(14.1) 有一个数组元素的范围属性:
A'RANGE [(N)]
这个属性似乎只能返回数组维度的范围,即“0到10”,而不是子类型。
一种解决方案可能是制作该类型的常量:
constant tmp : enc :=(
0 => "0000",
1 => "0001"
)
并取该常数的范围:
tmp(0)'range
这行得通,但是我觉得应该可以单独使用该类型,因为它是完全受限的。
【问题讨论】:
标签: arrays attributes range vhdl