中文 英语
知识中心
导航
知识中心

e

硬件验证语言
受欢迎程度

描述

该语言是一种早期的硬件验证语言(HVL),最初由Yoav Hollander开发。它在2006年被标准化为IEEE 1647。该语言实现了可重用的验证测试平台。

关键特性

  • 支持随机和约束随机刺激生成
  • 支持可用于编写断言的时态语言
  • 可以在编译模式或解释模式下运行,并且不强制细化
  • e重用方法学(eRM)已被用作开放验证方法学(OVM)和通用验证方法学(UVM)的基础
  • 与DUT无关的语言:您可以使用一个e测试平台来验证一个SystemC/ c++模型、一个RTL模型、一个门级模型,甚至是一个驻留在硬件加速箱中的DUT(使用UVM加速for e方法论)。

面向方面的编程支持
该语言使用面向方面编程(AOP)方法,这是面向对象编程方法的扩展,以满足功能验证需求。AOP ine允许验证工程师在方面中构造他们的测试平台。因此,对象是其所有方面的总和,这些方面可能分布在多个文件中。

AOP允许用户以非侵入式的方式轻松地将附加功能附加到现有代码上。这使得重用和代码维护变得容易——这在硬件领域是一个巨大的好处,因为在整个项目生命周期中,设计都在不断地进行调整,以满足市场需求。AOP还通过允许用户轻松扩展特定结构的特定实例或所有实例以添加功能来解决横切关注点(横切代码的各个部分的特性)。用户可以扩展多个结构来添加与特定特性相关的功能,并将扩展绑定到单个文件中,以便更有组织地进行文件分区。因此,它为衍生环境提供了更容易的重用和更快速的“可扩展性”(无需更改和重新验证每个模块)。

此外,由于e自动支持并行编译,对优化编译代码的完全调试可见性,以及加载/编译新代码的完全灵活性,因此调试周期生产力大大提高。

约束随机子类型机制
如果没有面向方面的特性,面向对象语言就无法实现子类型。子类型允许验证工程师向已经定义/实现的类添加功能,而不必从基类派生。

“∞”随机化
在e中,每个字段默认是随机的。字段随机化可以由硬约束、软约束控制,甚至完全关闭。软约束被用作默认值,如果发生冲突,可能会被测试层自动覆盖。否则,它就像一个常规约束。

重新播种和动态加载
模拟引擎支持会话持久性,因为整个模拟状态可以保存到磁盘,然后在不同的进程中从同一点恢复(可能多次)。这意味着您可以运行模拟到某个点,保存其状态,并在以后的多个进程中恢复它。

为了利用这一点,一种方法是在恢复模拟状态后更改随机种子。由于随机生成的结果不同,新的种子将导致测试场景从恢复点向前改变。这种方法称为重新播种,可以应用于所有使用随机生成来创建测试场景的验证环境。

另一种方法是在恢复模拟之后加载额外的文件。加载的代码可以包含约束和额外的功能,这些功能可以从加载点开始改变结果测试场景的行为。这种方法称为动态加载。

当动态加载和重新播种一起使用时,极大地提高了验证效率。

内置时态和数据断言
E支持带有时态表达式的断言,时态表达式描述时间行为。时间表达式与字段和方法在同一语法级别上使用,因此本质上是声明性的。

内置功能覆盖
E支持根据抽样事件分组的覆盖率,并且这些组在内部用项目进行结构化。项目可以是简单的,也可以是复杂的,比如交叉项目或过渡项目。


用验证语言进行面向方面的编程:测试平台开发人员的实用指南(硅上系统)

硬件验证语言(信息技术:传输、处理和存储)


相关的人


相关的实体


相关技术

Baidu