芯片验证学习计划——第一期

文章介绍了芯片验证的重要性,强调验证与设计的相辅相成,详述了验证的不同阶段和方法,如动态验证、静态验证和硬件加速。同时,提到了验证语言SV和UVM在验证中的应用,以及前端开发流程,包括需求、设计、RTL和验证等步骤。
摘要由CSDN通过智能技术生成

一、首发感慨

人生看的帖子很多,第一次写贴子是为了记录学习验证的笔记,也希望能够分享出来给各位。笔记观感略差,有不足的各位看官还请大方在评论区补充。

二、验证概述

说给小白的话:芯片设计在流程上需要的人手不仅是设计还有验证,可以说验证和设计是相生的。路桑说验证需要的人手比设计需要的更多,工作量更大,需要学习的知识面更多。

芯片验证可以根据很多不同角度划分,在开发周期中分为硅前验证、硅后验证、产品验证,在验证技术手段上分为动态验证技术、静态验证技术、Emulation&硬件加速。

三、要记住的验证要点

1. 验证越到后期所需要成本越高,我看到有文章称后一个开发流程的验证成本是前一个开发流程验证成本的10倍,路桑也说到门级仿真验证需要遍历的东西会比 rtl 级仿真验证的更多更累。

2. 如果学习一门一个学期的芯片验证课程,必须学会就是熟悉一遍验证的开发验证环境,大多数课程都是使用sv(SystemVerilog)语言。而大家都会提及的uvm是基于验证的策略方法学,除了uvm在实际工作中还会接触到别的方法。

3. sv语言学习重点是了解每个特性的应用场景,因为每个都有显著的应用方式,必须要结合实例来看sv能做什么。

4. 验证要证明功能正确,符合设计的功能描述。所以重点在功能验证上。

四、必须了解的前端开发流程

用户需求——根据需求系统设计功能,划分为多个子系统,并写成开发文档——根据开发文档进行 rtl 设计,即将文档转译为硬件描述语言——同样根据开发文档进行开发验证平台,在得到设计代码后对其进行验证——反复设计和验证的过程直至功能完全符合开发文档描述——后端综合布局布线——最后核心数据会送到FAB进行流片。

在上面的开发流程可以看到设计和验证都在前端,但是验证会贯穿整个芯片开发流程,上面写的只是前端的开发。在整个从用户需求到流片的流程中,验证包括了IP级RTL验证、单元/整片级验证、门级验证、形式验证(对综合后网表验证功能等价性)、静态时序分析STA(检查setup&hold time violation)、DFT内部加入测试部分逻辑电路验证、DRC/LVS。对应每个验证步骤都有不同的EDA工具,可以说是十分的庞杂。

五、验证技术

上面有提及从技术手段来划分验证,这里第五大点就介绍这几个手段。

1. 动态验证技术

通俗说就是依靠仿真器对数字电路进行激励发送和结果检查,通过编写代码产生输入信号再根据输出信号作比较来验证功能是否正确。以前使用的定向激励是使用FPGA进行验证,但随着电路复杂度提升,FPGA的容量问题和速度缺陷导致难以进行高效验证。所以现在基本大型项目不会只使用定向激励。

再具体就是动态验证技术的手段有代码覆盖率 Code coverage 检查有无从未使用的死代码、功能覆盖率 Functional coverage 检查功能是否完全符合开发文档、断言 Assertions 对代码进行中途输出来判断是否顺利正常、随机约束 Constrained-random 设置约束条件来遍历 corner(这作用我猜的)。

那么会学习到的语言有sv、c/c++、verilog、脚本语言。因为验证中会对处理器进行操作所以要会c语言进行编译、定向测试。sv是现在越来越多人用的一种专门用于验证的高级语言。verilog非常经典,经典到sv都是在此基础上新增的。脚本语言有python、perl、shell等等,我也看到有验证人只用python来写testbench。这些语言工具基本都要涉猎到。

验证方法学有非常多,不同的公司会基于自己的应用提出各种方法,领头羊就是Synopsys、Cadence、Mentor,但他们都承认uvm这个后来提出的方法学。

2. 静态验证技术

分为人工形式验证和自动形式验证,人工的是通过断言结合形式工具对设计功能进行穷尽检查;自动的是soc集成连接检查、dead lock死锁检查、语义安全检查、代码覆盖范围可及性分析等。

3. 硬件加速

Emulation&FPGA原型开发,近年越来越多人用,在中后期将其作为逻辑功能容器对系统验证,我喜欢的博主“老石谈芯”本年有一篇论文关于这个,我记得内容是结合了悉尼大学的一个映射软件和FPGA原型开发来加快验证速度。

六、测试平台

 使用路科验证的图来描述一下平台。测试平台必不可少的是激励 Stimulator、监控 Monitor、检查对比 Checker,首先是对DUT/DUV创建测试序列也就是激励,接下来把激励放入DUT/DUV中观察输出,最后比较输出和功能描述的结果是否一致。

OK,第一期就是这么多内容。接下来的学习过程我会持续更新直到我学会验证为止,加油吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值