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

提高IP验证效率的十大技巧

提高IP验证效率的十大技巧

关键字:IP验证   DUT顶层   RTL编码   Verilog   芯片设计  
功能验证正成为IP验证的瓶颈,并影响到整个设计团队。设计工程师想方设法提高验证效率,以实现整个芯片设计的最佳利益。在这里,我们提供10个简单技巧,显著提升您的IP验证效率。
1. 参与验证计划审核

良好的开端是成功的一半!在验证计划上的投入是非常重要的。很多时候,没有明确的微架构文档的验证计划(从白盒验证的观点)是不完整的。前期的投入可以减少很多执行中的障碍。你需要根据设计开发计划确定优先顺序。您还需要对验证计划的完整性有所投入。此外,如果您的验证团队正计划采购第三方验证的IP,请确保它符合DUT的特殊定制需求。

2. 以文档的形式记录接口信号、寄存器和数据流

文档是一种奢侈品!许多设计工程师奉行“代码就是文档”的理念。这是可以理解的,因为你在与时间作战。然而,有关测试器件与测试平台之间的接口的基础文档和基础数据流信息对提高验证效率大有益处。在整个调试过程中这些文档能够充当参考从而避免混淆。

3. 在系统整合前就完成DUT的顶层编译

为了早点把RTL交付给验证团队,工程师常常跳过DUT的RTL顶层编译。你可千万别忽略这一步。每个新写的测试平台都会有自己的问题。而引用未成熟的DUT只会将问题复杂化。因此,最好能给验证团队提供一个没有错误的DUT顶层的RTL编码作为参考。

4. 避免DUT顶层出现dangle信号

dangle信号是内部模块之间的连接信号。然而,由于缺少连接,这些dangle信号最终会被放到顶层的端口上。这破坏了测试平台顶层编译从而导致混乱。你需要在内部把它们连接起来,然后按照规格要求,参照预定义的端口列表交付DUT顶层。

5. 为关键性的假设和接口信号添加必要的断言

随着断言的日益普及,如果你可以多花些精力,添加必要的断言,肯定是有百利而无一害的。这可以是简单的内部FIFO空满断言,也可以基于任何输入激励或任何可能出现的异常的假设的复杂的断言。针对DUT上的接口信号的断言可以提供及时的信息,以判断验证工程师是否正确整合DUT。这些早期的断言可以为后期的调试节省大量的时间。

6. 绕过冗长的初始化序列

许多接口协议规范都列举了很长的初始化序列,以提供配置的灵活性。一些初步的测试过后,验证的焦点会转移到其他环节。大多数的测试是为了验证初始化序列以外的特性,所以你应该提供方法绕过这些长期的初始化序列。

7. 设置可变的计时器时长

设计通常都会使用定时器以避免出现挂起的情况。这些定时器要么符合标准的规范要么由内部定义。通常,这些计时器都设定有非常长的值以防止超时。不过,要测试那些很长的值需要消耗大量的仿真时间。一些值甚至是仿真测试无法实现的。所以,你需要让计时器具有可伸缩性,以确保定时器可以毫不费力地进行缩放。同时,你也应该调整其他相关的配置,总之一定要让计时器顺利进行仿真。

8. 一致性验证

这一步是 “锦上添花”!随着形式验证工具的日益普及,设计师可以做一些一致性验证而无需在测试平台上大量投入。对设计(或设计的主要模块)进行一些非常基本的测试,将大大节省时间,从而加速启动全面验证。

9. 在DUT顶层使用System Verilog接口

设计师钟爱Verilog,但是当今世界大多数的验证都是通过System Verilog实现的。你应该逐渐发掘System Verilog的“设计友好型”的特点。为DUT顶层提供System Verilog接口,而不是 Verilog的端口列表。这会是一个良好的开端,它可以减少集成时间,也可为接口断言提供合适的场所。此外,这将有助于转变设计思维过程,从单纯的Verilog到System Verilog – 从长远看,这无疑是有益之举。

10. 参与功能覆盖率收敛

你可以说,“我已经处理了代码覆盖率收敛。功能覆盖率收敛不关我的事 。”没错。然而,从长远来看,延迟的验证收敛必定让你耗费更多的努力。在时序关键设计领域的后期修复的bug会导致时序收敛的返工(非常痛苦的过程)。因此,你最好能全程参与和指导功能覆盖收敛,尤其是关键或薄弱环节。
返回列表