Introduction to DFT
服务器使用
- 登陆服务器:输入账号密码
- 打开terminal,保证至少一个terminal窗口是打开的
- 取消Linux操作系统的屏幕保护
- 设置Linux EDA工具配置
// 自定义环境变量设置
gvim ~/.bashrc
// 打开~/.bashrc文件之后,查看其中是否存在下面语句
// 如果存在,关闭文件
// 如果不存在,则添加到文件中
// 配置完成之后,可以直接调用EDA工具
source /xxxx/public/linux_eda_env/00_bashrc
//重新其中 ~/.bashrc
source ~/.bashrc
- 配置vim编辑器中的语法高亮
配置~/.vimrc文件
- 确认自己的id
// 显示当前用户组的权限
id
- 创建自己的工作目录
不要在home目录下进行coding或者流程,home目录空间比较小
/xxx/user_proj/创建自己的目录
- check out项目,使用SVN版本控制软件
// 进入到自己的工作文件夹中
cd user_proj_file
// 切换到svn_proj组
newgrp svn_proj
// check out项目
svn co <lab_path>
- 使用svn,不可以修改linux密码
- 关闭vnc的时候,关闭EDA工具,打开的文档
IC设计流程
Manufacturing Test测试制造
- 早期芯片规模比较小,功能比较少,芯片测试通过功能进行测试
- 芯片规模越来越小,功能比较多,传统的测试方式,时间周期长,成本比较高,需要改变测试方案
制造测试的趋势
- 芯片中包含的cell的数目增加翻倍,但是IO Pin的数量增加不是很多,通过少量的Pin测试很多功能,难度比较大
- 会出现一些传统测试方法无法发现的问题
Design For Test
在设计过程中通过一些手段,实现制造测试的成本降低
- Design - 除了功能方面的设计之外,还需要进行额外的设计,通过额外的设计方便后期芯片测试的成本;这些设计需要写一些RTL并且要造型一些硬件的开销
- For Test - 为了降低测试的成本
Functional Test VS. Structure Test
- 功能测试,不关心功能实现方法,只关心结果,关心coverage,需要跑很多的test case,耗时比较长
- dft - 不依赖于芯片实现的功能,依赖于芯片中的结构进行测试,结构决定功能,根据结构设计一些pattern和向量,对芯片进行测试
- 物理实现之后,芯片的结构就已经确定了,根据芯片的结构设计一些pattern进行测试,dft的验证方法具有通用性
DFT Structure Test
- 芯片结构划分:RAM\Functional Logic(standcell)\PAD\IO...
- 根据不同的structure采用不同的dft方法
其他角度看DFT
- 通过验证保证RTL和Spec的功能是一致的
- 综合之后的门级网表是否和RTL以及Spec功能是否一致--采用形式验证
- 物理设计得到版图的实现,版图的功能是否和网表的功能一致,物理设计过程中是否出错,采用LVS
- 从版图描述到芯片设计的过程中,如何保证芯片和版图的功能是一致的, 可以采用DFT的方式进行实现
Phsical Defects
- 芯片生产过程中有哪些问题或者物理缺陷会导致芯片的功能错误
- DFT - 会检测出这些问题,指到工艺的改进,减少问题出现的几率