首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于SystemVerilog语言的验证方法学(5)

基于SystemVerilog语言的验证方法学(5)

3 SystemVerilog验证方法学:ESL

      3.1系统级验证介绍      通常术语中,电子系统指的是一个设计总包含模块独立设计,模块独立验证以及模块之间底层互联。系统级验证指的是对这些独立模块(block)之间是否能正确交互的验证。每一个模块,包括内部互联结构,需要各自独立验证。因此系统级验证着眼于模块之间结合的功能性。一些功能完全包含在模块中则更适合于模块级验证。

      系统级验证不受系统规模的限制,可在数万门到上千万门设计中进行。所有情况中需要遵循的验证原则是对规范功能验证并达到指定的目标。系统架构人员针对系统中大量单元建立执行(performance),latency,以及广泛目标。执行团队必须达到那些目标。验证团队根据到达目标情况,必须验证执行中涉及到的所有边界情况,并对无效状态或无法达到状态行为进行说明。

      对一个系统设计团队来说,最大挑战不在于许多设计模块规范定义及集成,更重要是于对最终设计正确性所能获取的信心度。此篇文章描述了在系统级验证中应用方法学及验证任务。关注系统级集成验证模块,系统级架构人员,验证工程师将对此感兴趣。

      3.2可扩展的验证单元
      分层验证平台方法所产生的独立处理器(transctors)能在模块级到系统级环境中被重用。从系统级角度考虑这些处理器,他们可能需要扩展或结合(combine)在模块级的能到系统级功能。独立处理器被集成到系统级处理器,被称为可扩展的验证单元(XVC)。

      XVC提供系统级验证环境中可重用,可升级,标准形式的基本单元结构。目的是使测试建立开销最小化。XVC能用于驱动模块互联结构或外部接口。也能通过监控系统状态,提供提示信息支持其他XVC单元。

      XVC意图是支持系统级集成和在统一方法学指引下通过直接和带约束随机测试进行功能验证。XVC结构对不同系统级设计来说是非常方便。一个XVC将成熟的验证或系统级功能压缩成标准模式。不论功能方面可能有如何大的变化,XVC用户在验证平台级别的感受不会因此而改变。这样有助于减少学习过程,并使系统级验证平台控制机制连续一致。

      一个XVC对验证IP来说是一个容器,分为两个层次,如图7所示。发生器(generator)层用户对测试行为可扩展库,XVC可通过集成到验证环境中定义好的行为接口而对此执行。驱动层集成了各个独立的处理器,用于执行连接到DUT接口的物理层或事务层的行为。发生器层控制驱动层的处理器。


Figure 7 XVC结构分为两层:发生器和驱动器


      发生器层的行为接口容许测试激励一致。XVC发生器验证环境接口能直接连接到一个XVC管理器。一个XVC管理器能同时支持多个XVC,通过接口调度给定XVC各自行为执行。XVC也能传递数据,状态底层的测试控制部分与相同环境中的其他XVC进行通信交流。

      经验表明大部分系统验证执行中,当模块因为系统公共资源发生冲突时,都可观察。通过执行一个单线程的测试无法有效产生竞争的测试情节。类似的,通过独立的激励流到互不相关的外部接口上,也无法可靠的产生这种需要的测试情节。因此验证单元产生的激励能够与实际需求激励一致。当有一个以单一,中心的XVC管理器协同多个XVC执行时,这样的需求很容易实现。
继承事业,薪火相传
返回列表