我需要一个类型为' boolean'的共享变量。在VHDL-2008中。
我无法使用标准类型BOOLEAN,因为它不是新样式共享变量所需的受保护类型。
我看到许多快速标准类型实现作为受保护类型,因为我可以编写自己的bool,int,pos,nats,但这是必要的吗?
VHDL-2008是否在一个公共包中有一组这样的类型?
到目前为止,我刚刚看到用户实现了受保护的类型。
以下是来自protected BOOLEAN的OSVVM示例。
type LocalBooleanPType is protected
procedure Set (A : boolean) ;
impure function get return boolean ;
end protected LocalBooleanPType ;
type LocalBooleanPType is protected body
variable GlobalVar : boolean := FALSE ;
procedure Set (A : boolean) is
begin
GlobalVar := A ;
end procedure Set ;
impure function get return boolean is
begin
return GlobalVar ;
end function get ;
end protected body LocalBooleanPType ;
答案 0 :(得分:-1)
我会在回答中发布user1155120的评论,因此这个问题没有显示为未答复。开始引用:
如果您要查看IEEE Std 1076-2008 Annex D Potentially nonportable constructs
,则共享变量列为“不保证可移植”。共享变量对象应为受保护类型(6.4.2.4,第3段)。
5.6.1受保护的类型定义:
...受保护类型实现顺序语句的可实例化区域,每个区域都保证对共享数据的独占访问。共享数据是一组可能被多个进程作为一个单元访问的变量对象。
您是否在询问标准化方法? (5.6.2第4段)。 (答案是否定的。)
此外,在5.6.2中:
在给定的受保护类型声明中指定的每个子程序定义一个抽象操作,称为方法,它以原子方式独占于受保护类型的单个对象进行操作。
方法功能是不纯的,独占访问是抽象的,没有硬件命令。目前还没有广泛认可的有用对象和抽象操作集证明了在验证中需要标准化。还有其他验证方法。
所有荣誉都转到user155120