系统与设计
的意见

改善硬件描述语言(VHDL)

为什么你不需要学习SystemVerilog。

受欢迎程度

在过去的几年里,我有幸担任IEEE 1076 VHDL工作组的主席。在3月份,我们将VHDL LRM的修订版交给了技术编辑,以最终确定用于投票的文档。由于我们正在等待标准过程的完成,我想我将分享我最喜欢的新添加。让我以一个执行摘要开始:

VHDL-2017 +开源VHDL验证方法(OSVVM,http://osvvm.org)使VHDL具有SystemVerilog和UVM的强大、简洁和能力,而不具有复杂性。如果您正在使用VHDL,则没有必要使用SystemVerilog。随着我对测试台和OSVVM的关注,我最喜欢的补充是:

  • 接口
  • 受保护类型的数组
  • 指向受保护类型的指针
  • 实体接口上的共享变量
  • 受保护类型上的泛型
  • 共享变量声明中的泛型受保护类型实例
  • 断言API

在我的列表中最重要的项目是接口,因为它有利于RTL和测试台设计。VHDL-2017接口只是一个记录类型加上一个声明的模式。声明模式允许将整个接口捆绑成一个单独的信号,每个元素都有单独的输入/输出方向(in、out和inout)。对于测试平台,这简化了使用实体和体系结构编写验证组件,并允许使用类似RTL代码或更简单的行为代码的风格。

一般来说,受保护类型对于OSVVM和测试台很重要,因为受保护类型简化了数据结构的创建。OSVVM使用受保护的类型来实现功能覆盖、记分牌、内存模型,甚至随机化。受保护类型的第一对扩展允许使用受保护类型数组和指向受保护类型的指针。受保护类型的数组允许数据结构的数组。指向受保护类型的指针允许在运行时动态调整数组中数据结构的数量。OSVVM计划使用这些来创建一个包含给定测试中所有覆盖模型的单一数据结构。这将允许单个调用来确定和/或报告测试的所有覆盖模型的状态。

对受保护类型的下一个扩展允许在实体接口上共享变量。对于基于osvvm的测试平台,这允许在测试排序器和模型之间传递计分板。对受保护类型的最后扩展允许在受保护类型上使用泛型,并允许在变量/共享变量声明中指定泛型。在基于osvvm的测试台中,这简化了记分牌和内存模型的创建。实际上,这使得使用记分牌、内存模型、列表和fifo就像使用SystemVerilog中的内置数据结构一样简单。在测试台中使用assert来标记错误吗?您是否关心VHDL标准包报告的错误?使用VHDL-2017断言API,您将能够获得这些错误的计数。使用此特性,OSVVM将能够将VHDL断言集成到其警报报告结构中。这只是未来的一个小样本。

您可能想知道为什么制定标准要花这么多时间。VHDL标准由志愿者执行。时间是基于志愿者的数量和他们捐赠的时间。我们一直在寻找一些更有才华的VHDL设计、验证、编译器和/或LRM专家来帮助我们。如果你有这些技能之一,并想要帮助,你可以在EDAwiki



留下回复


(注:此名称将公开显示)

Baidu