验证
功能验证SystemVerilog与功能
第一章第一章 绪论绪论绪论
1.1功能验证与验证平台
摩尔定律指出集成芯片可容纳的晶体管数目,约每隔18个月便会增加一倍,性能也
将提升一倍。随着半导体制造工艺的改进,大规模SOC 和多核设计出现,专用集成芯片设计的复杂度以指数增长;这使得验证工作成为芯片设计流程中的关键瓶颈,数据表明接近70-80%的设计时间花费在功能验证中。目前,专用集成芯片已经可以达到上亿门,设计上复杂度的提高,迫切要求在功能验证方面需要有新的技术和方法学。
验证平台(Testbench )需要提供更多的自动化机制来提高每一个测试用例(test ca )功能覆盖率和减少创建测试用例的时间。然而,我们也要折中考虑到验证平台的复杂度和投入在开发验证平台的时间。验证平台的开发不应该成为专用集成芯片开发的关键路径;与此同时,一定程度提高验证平台复杂性可以减少创建多个测试用例所消耗的时间,为此这是一个很难的抉择。
这本书,我们将分两部分:第一部分,介绍验证的基本概念和流程,业界最新的验证技术和方法学;第二部分;介绍SystemVerilog 语法以及使用技巧,如何使用SystemVerilog 搭建一个高效,可重用的验证平台。
1.1.1 1 专用芯片设计流程专用芯片设计流程专用芯片设计流程
图1-1举例说明了一个高层的专用集成芯片的设计流程,从制定设计规范到投片。
卧底归来下载
图1-1 基本的ASIC 设计流程红色血栓
目前,整个流程中关键的部分在于功能验证。在图1-1中功能验证只作为一个独立的模块,但它是一个相当复杂的过程――包括定义测试用例,创建测试环境,运行测试用例,保证所有要求的用例被覆盖到。
验证活动从设计规范完成就可以开始,而且持续到版图完成,在很多情况下,验证可能超出了版图完成的阶段。下一节,我们将进一步详细介绍功能验证和验证流程。
1.1.2 2 什么是验证什么是验证什么是验证??
验证是确保设计和预定的设计期望一致(吻合)的过程。设计期望通常是通过一个或者多个设计规范来定义的。对于专用集成芯片设计,在不同的阶段存在多种形式的验证:
1.寄存器传输级(RTL -Register Transfer Level )的功能验证
2.门级的仿真,为了验证综合后网表和期望的功能是否一致
3.形式验证(等价性检查)来确保门级网表和RTL代码的一致性
4.时序验证,为了验证设计能否在特定的频率上运行,通常采用静态验证工具
特指寄存器传输级((RTL)的功能验证。
我们提到的验证((verification)特指寄存器传输级
对于这本书,我们提到的验证
其他形式的验证都不在本书的讨论范围内。
功能验证在专用集成芯片设计流程中关注设计的行为,几乎所有的功能都在RTL层次被验证。录音怎么转换成mp3格式
图1-2展示了一个高层次的功能验证视图。一个专用集成芯片设计可以被看成拥有一系列输入和输出的集合,设计的输出是基于设计的输入和当前的状态。在功能验证的过程中,工程师在被测设计(DUT-Design Under Test)外搭建验证平台。验证平台被用来应用一个或者多个测试激励,并发送到设计的输入中。激励可以通过验证平台产生,或者通过手动创建。输出将进行比较,看结果是否正确。结果检查可以通过验证平台或者脚本或者手工来实现。
高层抽象建模,也就是所谓的基于事务级的验证(transaction bad verification )。
图1-3 手工创建的二进制激励
渴望追求
图1-4 通过Verilog 的任务(task )生成激励
工作汇报标题在一个更加先进的验证平台中,激励可以根据用户指定的约束,完全通过验证平台自动产生,这就所
谓的约束随机激励产生(constrained random stimulus generation),如图1-5所示。例如,用户要把包的大小约束在64比特和1522比特之间,并且在最大和最小之间做一个权重配置方案。验证平台将可以自动生成和注入随机包到被测设计中。
房屋租赁合同免费
诫子书译文
图1-5 复杂的验证平台采用激励产生器生成激励
1.1.3.2 2 应用二进制激励应用二进制激励应用二进制激励
基本模数
最终,验证平台将把一个或者多个激励序列注入到被测设计中。验证平台通过高层次的操作应用高层次的用户激励,二进制激励通过验证平台生成并且通过对应的接口发送到被