验证就是验证设计实现是否与设计意图相符,也就是说发现设计人员的错误
验证的过程是保证芯片实现符合规格说明书(specification)的过程
规格说明书(系统的spec,ip的spec等)
功能验证
soc(system on chip)
多少多少nm指的是栅极的长度,5nm芯片指的是栅极的长度是5nm
验证工程师要做的
验证的挑战越来越大
1971年
1971年 | 2021年 | |
晶体管数量 | 2300 | 10亿级 |
引脚的数量 | 16 | 1700 |
4bit | 64bit |
验证是检查RTL code的实现是都符合spec,也就是说发现设计人员的错误
发现错误有时候远远比设计本身还困难
soc芯片集成规模越来越大,功能越来越复杂,对验证的挑战越来越大
时长u低于芯片开发的时间周期要求越来越紧张
使用的人力最多 一个 设计工程师配三个验证工程师(设计工程师最早等于验证工程师)
在流片的芯片上发现了bug,rtl3后发现的bug就进入了eco流程了 需要在netlist修改bug
formality test 在eco流程后 需要进行验证与rtl的一致性
不同的layout就会导致ab两点的连线的三个参数:r(电阻)c(电容)x(电感)这三个参数就会导致延迟
reproduce复现芯片上的问题 check一下是软件的问题还是硬件的问题 看一下有没有软件walk round的方法
show stopper杀手级的bug
验证流程
理解DUT:了解spec(规格说明书)及interface(协议)eg:valid ready协议或者req ack协议、I2C协议
指定验证策略及方法:module验证->subsystem验证->chip system验证(然后搭建验证平台)
提取验证点->执行case(在搭建平台上运行)->检查代码覆盖率
功能验证(动态 simulation 给dut实实在在提供激励 看输出是否满足)vs 时序分析(静态 查看两个信号之间的delay满足要求与否)
动态时序分析:根据电路中提取的延迟参数,通过仿真软件动态的仿真电路以验证时序是否满足要求(后仿真)
静态时序仿真:通过分析设计中所有可能的信号路径以确定时序约束是否满足时序规范
GLS(后仿真)
后仿真环境准备 DUT(netlist+sdf)
选择testcase(考虑关键路径、频率、速率)
setup(采集信息是clk的上升沿滞后,导致无法采集到)的violation
一般的解决方式是选择一个驱动能力强的元器件
gls后门级网表的验证也属于验证工程师的范畴
buffer 反相器