有 VHDL-2008 标准类型保护类型实现吗?

Pae*_*els 5 vhdl

我需要一个 VHDL-2008 中类型为“boolean”的共享变量。

我不能使用标准类型 BOOLEAN,因为它不是新样式共享变量所需的受保护类型。

我看到许多快速标准类型实现是受保护的类型,因此我可以编写自己的一组 bool、int、pos、nats ……但这有必要吗?

VHDL-2008 在通用包中是否有一组这样的类型?

直到现在,我才看到用户实现的受保护类型。

这是来自OSVVM受保护 BOOLEAN示例。

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 ; 
Run Code Online (Sandbox Code Playgroud)

JHB*_*ius 0

我将在答案中发布 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 中:

给定受保护类型声明中指定的每个子程序都定义一个称为方法的抽象操作,该操作以原子方式且独占地对受保护类型的单个对象进行操作。

方法函数是不纯粹的,独占访问是抽象的,没有硬件强制。目前还没有一组得到广泛认可的有用对象和抽象操作来证明验证标准化的必要性。还有其他验证方法。

所有荣誉归用户155120所有