声明了受保护的类型和包含的主体,例如:
type flag_pt is protected
procedure asg(val : boolean);
impure function get return boolean;
end protected flag_pt;
type flag_pt is protected body
...
end protected body flag_pt;
如何制作flag_pt
的数组?
尝试显而易见的事情:
type flag_array_pt is array (0 to 1) of flag_pt;
在ModelSim中生成此错误:
复合类型中不允许使用受保护类型的元素(flag_pt)。
任何有关变通方法的建议也将受到赞赏;一个明显的想法是将数组属性构建到flag_pt
中,但是必须在所有方法中显式处理索引参数非常繁琐,并且对于更复杂的数据结构会变得更糟。