数字IC设计验证平台的搭建.ppt
《数字IC设计验证平台的搭建.ppt》由会员分享,可在线阅读,更多相关《数字IC设计验证平台的搭建.ppt(31页珍藏版)》请在三一办公上搜索。
1、数字IC验证流程,一、数字IC验证流程,验证的流程并行于设计流程验证工程师阅读硬件规范并拟定验证计划,然后依照计划创建测试来检查RTL代码是否准确实现了所有特性。1.1 制定验证计划:验证计划是和硬件规范紧密联系在一起的,它描述了需要验证什么样的特性,以及采用哪些技术。验证技术可能包含有定向或随机的测试、断言、软硬件协同验证、硬件仿真、形式验证(formality工具比较RTL与网表是否一致),以及对验证IP的使用。,1.1 验证计划的制定,制定验证计划分为三部分:制定功能验证需求书、指定验证平台的抽象层次、激励的产生和结果检查方案。功能验证需求书的内容是确认设计的哪些功能是需要被验证的,它主
2、要是测试用例(testcase)和功能点(testpoint)的一个列表,构成了整个验证计划的基础。基于覆盖率驱动的验证环境中功能覆盖率是功能测试完备程度的指标。功能覆盖率就是对功能点的覆盖。,1.1 验证计划的制定,制定验证平台的抽象层次:验证平台搭建优先考虑制定验证平台的抽象层次,高层次的抽象建模可以让平台中低层次的功能自动化,提高验证平台的效率。激励的产生和检查方案:有四种激励产生器:基元产生器、场景产生器、多流产生器和基于状态的产生器。这四种激励产生器均是自动化生成激励,扩展基类即可实现。基元产生器用于生成相互独立的事务,事务之中的数据变量是相互无关的。场景发生器生成的是一个数据或事务
3、描述符的序列。多流发生器即多个数据流的发生器。基于状态的发生器是使随机化生成过程依赖于外部状态信息。,1.1 验证计划的制定,检查方案:一般公司均采用计分板(scoreboard)检查机制。Scoreboard的工作原理:DUT产生的响应input_stream压栈到queue1中,expect_stream为DUT的期望响应,expect_stream压栈到queue2中,然后将两个队列弹栈进行数据比对,同时scoreboard在仿真过程中report自检查的统计结果。,1.2搭建验证平台,搭建验证平台的方法:搭建模块级验证平台时,信号层、被测设计(DUT)和验证环境(program tes
4、t)必须在顶层模块实例化。,1.2搭建验证平台,搭建验证平台的注意点:1.VIP的验证组件的使用可以大大缩短平台搭建的开发周期。2.sub_env组件的使用,实现模块级到子系统级的复用,提高平台的可重用性。3.个性化代码。由callback实现,使用回调方法来检测流过事务处理器的数据流,利用回调(callback)插入异常(erro injection)和收集功能覆盖率。4.在搭建模块级验证平台时,使用好的代码风格易实现模块级代码的复用。5.验证平台搭建好后,跟RTL代码一样,是一个不断完善的过程。在验证的过程中不断完善自己的平台,使其方便、准确的验证我们的项目。,1.3 回归测试与覆盖率收敛
5、,全部测试用例被成功运行后,验证就进入回归测试和覆盖率收敛阶段。回归测试要求能够周期的批处理运行、测试用例必须能够容易得到重现、成功与失败能够自动检测。覆盖率显示出设计被测试的程度,是验证收敛的重要标准。所有的测试应该在每天或者每周做回归而且周期性的运行。设计人员或者验证工程师应该查看覆盖率,从而修改或者添加更多的测试用例,从而尽可能达到100%。,二、VMM分层次验证平台,VMM是IC设计领域的一种高级验证方法学,主要由ARM和synopsys公司的设计验证领域的专家共同设计,用于开发先进的验证环境,已成为当前业内公认的验证方法标准。VMM验证方法学的基础是systemverilog语言。S
6、ystemverilog是一种由verilog发展过来的硬件描述、硬件验证统一语言,前者是2005年版verilog的扩展,而后者的功能验证特性以面向对象程序设计技术为基础。VMM所有的方法学基础来自于systemverilog,并吸收了C语言的一些先进思想。,2.1 VMM验证方法学的特点,1.受约束的随机激励2.覆盖率驱动3.使用事务处理器的分层测试平台4.对所用测试用例通用的测试平台5.独立于测试平台之外的个性化代码建立VMM风格的测试平台所需要的时间要比传统的定向测试平台多得多,但对于验证大规模的电路来说,VMM验证平台要比传统的定向测试平台功能验证的齐备性要高得多,大大提高流片的成功
7、率,并且平台的可重用性在后期的验证工作中将发挥节约测试时间和人力资源的功效。,2.2 基于事务的验证环境,事务(Transaction)是指验证平台与DUT之间通过设计的特定接口(interface)进行的高层次的数据或者控制信号的传输。接口包含了连接、同步、甚至两个或者更多块之间的通信功能,它们连接了设计块和测试平台。基于事务的验证技术是对底层信号的封装,这样验证人员可以关注工程中的事务级验证,而不是过分关注底层的逻辑和时序的实现。因此是在对更高抽象级别上对系统硬件的建模,在接口组件上交换数据或执行事件。,2.2.1 VMM分层次验证平台,VMM验证方法学是一种基于事务的层次化验证方法学。层
8、次化是把验证的步骤分层进行,把验证工作提高到更高的抽象层次,即事务层。VMM验证平台分为五层,每一层完成独立的功能,层与层之间通过接口相互连接。,2.2.1 VMM分层次验证平台,2.2.1 VMM分层次验证平台,测试层即测试用例,是顶层模块,控制着整个环境的运行;设定约束使激励产生器生成相应的命令操作和数据;定义新的随机场景,同步不同的事务并创建直接测试用例。场景层即产生器(generator),产生应用于功能层数据和事务描述符。产生器根据指定的约束和随机场景来生成相应的命令操作和数据。带约束的随机测试在此层引入。测试场景是一系列随机的有着某种关联的事务,每种测试场景代表着一种独立的事务来针
9、对一个特殊的边界功能。功能层是对DUT功能验证的核心部件。功能层从场景层接收到数据和事务描述符,事务描述符主要是选择事务处理的类型,例如是读操作还是写操作。接收的数据一般是对DUT施加的激励,分为DUT的配置信息和DUT的交换数据。此外,功能层还包含比较器和功能覆盖模块,比较器负责检查DUT的功能是否满足设计规范,功能覆盖模块用于统计和记录DUT的功能覆盖情况。,2.2.1 VMM分层次验证平台,命令层主要包含驱动器和监视器这两种事务处理器。驱动器从通道接收到功能层传递下来的事务,将事务激励转化为信号级激励信号,通过接口对DUT进行驱动。驱动器中的事务被定义为基于接口的最小数据传输或命令操作,
10、比如寄存器的读写、发送包数据等。监视器检测DUT的各个引脚信号的变化,将引脚信号所表征的信息转换为事务,通过事务通道反馈给验证平台的高层模块。最底层为信号层,完成验证平台与DUT的引脚连接。该层提供的信号可以被上层直接访问,给平台带来了极大的灵活性。信号层是用systemverilog编写的接口,在接口中定义了信号的同步或异步时序关系,对应于DUT的引脚信号的时序。一旦DUT的引脚发生了变化只需要修改systemverilog定义的信号,使得验证工程师的精力可以集中在更高的抽象层次上。以事务级的角度看VMM验证环境的基础架构,可以看到从测试用例到最后BFM(总线功能模型)的处理,都是对事务的处
11、理。,2.2.1 VMM分层次验证平台,BFM(bus function model)的作用是把底层总线的时序封装起来,向上层提供一个统一的任务接口,使上层不用关心底层的实现细节,而专注于testcase的设计。这一点同c+的面向对象的概念很类似,在c+里,对象相当于命令或调用,而对象的成员函数实现具体细节,外部无需关心它的内部细节。,2.2.2 VMM数据与事务,数据与事务就像整个VMM验证平台的细胞,它存在于验证环境中的每个组件。VMM的场景层(generator)用于生成验证环境的数据和事务描述符,而VMM的其他验证组件均是对事务进行处理的处理器(除测试层和信号层外)。Synopsys公
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 IC 设计 验证 平台 搭建

链接地址:https://www.31ppt.com/p-6294307.html