降低芯片流片风险的几种方法

@TOC

#说明

该文章仅科普下各方法是如何降低流片失败的可能性的。

#1. UVM方法学

  1. uvm方法学的主要思想是通过用其它高级语言(python、c等)编写参考模型(REF)实现DUT设计相同功能。再使用uvm的一系列验证组件将相同的激励给到REF及DUT,使得二者的结果一致,则认为DUT在这种激励条件下的行为正确。典型的例子是算法转RTL ip。则可在实现了RTL设计后,使用原始算法对实现的RTL进行检查。

  2. 某些复杂的ip三方可提供对应的ip服务,即提供该ip,另外也会提供uvm对应的验证组件vip,使得再待测系统中可使用该vip检查对ip的一系列检查(对该ip的接口操作检查、集成检查)。买ip、vip可大大减少芯片开发的周期,因为对应的ip可能复杂性都比较高。

  3. uvm验证方法学的主题思想是需要提供完整的激励进行覆盖率的收集,重点并不是环境有多么的完美,还是要回到覆盖率本身。需要对所有的功能点进行特定的激励生成。

  4. 对于每个功能点都需要有特定的check,没有自动比对的check机制是不完美的。比如通过波形check的手段,无法保证下一次的再跑该case时的情况是否正确。

软硬件协同

  1. 在soc中将各个子系统进行了整合,那怎么保证这个整合是正确的。uvm的验证可能更偏向于对于每一个子系统进行检查,软硬件协同便可以解决该问题了。软件设计一整套流程,硬件需配合该流程完成一系列操作,如果最终结果正确,既能说明硬件设计正确,软件也正确。

  2. 软件可通过编译,将对应的软件编译文件通过后门访问写入uvm对应组件中,即可进行软硬件问题的定位。

  3. 软硬件验证过程中的用例可作为后续软件开发的SDK提供给用户使用。也是芯片交付的一部分。

#FPGA

1.fpga是指将芯片整体映射到一块可编程的板子上,当然这块板子肯定比真实的芯片大多了。使用fpga可使得软硬件协同验证的收敛速度大大加快。

  1. fpga的速度高于vcs、uvm的仿真。原因是fpga内部的与或非等逻辑都是有真实的硬件存在。而vcs等都是通过电脑的cpu进行该运算的模拟,当芯片规模大起来后,fpga的速度优势更加明显。所以可以在fpga上进行某些用例的回归,跑case快了, 那问题暴露的几率肯定也就是变大了。

  2. fpga发现问题快,但是定位问题却很慢,可通过uvm进行仿真使得问题定位加快;

加速器

个人工作上没咋接触过这个,简单聊聊,说错了请帮忙指正。

  1. 加速器和fpga类似,不过和fpga相比,允许的速度稍微逊色一点,但换来的是问题定位的快速性。加速器内部含有一些用于定位的逻辑,这也是为啥加速器速度不及fpga的主要原因。加速器很贵(几百万级别),可租用。

形式验证Formal

  1. 形式验证主要是减少重提网表后DFT、后端布局布线的工作量。假设后端布局布线已经完成,此时前段发现一个bug需修复,则前段修改代码,后端修改网表。比对二者修改后的内容一致即认为修改正确。formal将网表固定后的修改进行了点对点的对比。

流程规范

这不用多说了吧,芯片那么复杂需要需求、设计、验证、软件等一系列的沟通,单纯口头上的沟通是远远不够的,需要文档记录等一系列的流程规范。

参考文档

降低芯片流片失败风险的"七种武器"

相关推荐
M78佐菲8 小时前
ARM学习笔记(1)
linux·arm开发·笔记·嵌入式硬件·学习
恶魔泡泡糖13 小时前
stm32F103C8T6标准库串口接收之中断方式2
stm32·单片机·嵌入式硬件
充哥单片机设计14 小时前
【STM32开源项目】智能小区充电桩
stm32·单片机·嵌入式硬件·毕业设计·小区充电桩·智能小区充电桩
嵌入式-老费14 小时前
esp32开发与应用(如何解决SoC冷启动的问题)
单片机·嵌入式硬件
JoYER_cc15 小时前
FPGA 调试实录:LED 闪烁程序从踩坑到仿真验证的完整经验总结
fpga开发
充哥单片机设计16 小时前
【STM32开源项目】智能语音台灯
stm32·单片机·嵌入式硬件·毕业设计·单片机设计·智能语音台灯
sunoo-22917 小时前
【嵌入式裸机开发Day04】i.MX6ULL 蜂鸣器驱动详解:从引脚地址查找到代码实现全流程
arm开发·单片机·嵌入式硬件·学习·串口·裸机
Brilliantwxx17 小时前
【STM32】 SPI阻塞式通信与HAL源码 (源码分析)
stm32·单片机·嵌入式硬件
ktd00717 小时前
复旦微开发环境搭建流程备忘录
fpga开发
Doraemomo18 小时前
IMX6ULL裸机开发——PWM
arm开发·嵌入式硬件·imx6ull