测试平台实际上是整个验证系统的总称,它包括有验证结构中的各个组件、组件之间的组成关系、测试平台的配置和控制,从更系统的意义来讲,它还包括有编译仿真的流程、结果分析报告和覆盖率检查等。从狭义上讲,我们主要关注验证平台的结构和组件部分,他们从整体上可以产生设计所支持的各种输入,也在此基础上进行设计功能的检查。
我们首先给出一幅经典的测试平台结构图,从图中可以看到:
- 各个组件之间是互相独立的
- 验证组件与设计之间需要通过连接
- 验证组件之间也需要进行必要的通信
- 验证环境也需要一致的时钟和复位信号的驱动
验证平台从实现语言来看,这么多年以后经过了需要的不断变化,常用的语言有VHDL、Verilog、Open Vera、e、SystemC、C/C++、SystemVerilog等。不同语言的选择以及测试平台语言应用的趋势可以从下图看到:
不难发现,近年以来SystemVerilog的比例明显占据主要地位,我们会在日后的SystemVerilog部分通过介绍它的重点特性,来对比不同的语言,体现它的优势。此外,对于SystemC和C/C++在验证部分的应用,我们也将会在验证方法的高级应用部分进行介绍。
对于验证师而言,构建一个验证平台,除了需要对设计部分的充分了解之外,他也需要考虑在平台上给出更丰富完备的测试场景,并且有能力使得验证组件针对丰富的激励可以做出细致的判断,最终合理地分析设计的功能是否符合硬件描述。
在下一节,我们将具体围绕整个第二部分的设计进行介绍,包括它的结构、功能、时序描述。作为验证工作展开的第一步,我们有理由相信只有对设计结构足够了解,才能进行验证结构的规划和搭建。
谢谢你对路科验证的关注,也欢迎你分享和转发真正的技术价值,你的支持是我们保持前行的动力。