|
楼主 |
发表于 2013-3-31 19:53:41
|
显示全部楼层
本帖最后由 vista2002 于 2013-3-31 19:57 编辑
帖子的话题受到了大家关注, 也被加精 , 受到鼓舞, 一直想继续写完,但时间有限,更主要惰性使然, 一直没有接着写完, 今日得宽裕,继续谈谈数字 IC设计接下来的一些工作
不过在继续之前, 我要说的是, 其实我之前写的也不够完善, 只是想到了就随之敲下来了, 不够完整 ,特别是现在的芯片设计, 不同的产品, 要求不同, 所设计的步骤也不完全一致 。比如, 对于很多设计数字电路可能实现建立软件模型, 来评估我们的频率,资源,或者数字信号处理中的信噪比等一些指标, 这些都是在规格定义之后, 电路设计之前需要做的一些工作。
在芯片完成了设计与验证之后, 我们要做的工作 就是把它装化成GDS网表,就是所谓的implementation(电路实现), 这其中的流程包括综合,DFT, formality, STA, ATPG pattern generation 和仿真(和功能验证一样 也包括前后仿), 再进入后端的PR/LVS/DRC 的流程 ,这个属于物理设计, 当然这个流程 是笼统的 ,这里主要讲几个后端物理设计之前的前端实现的几个步骤 。
综合的原理比较直观,从RTL到GTECH库到厂家工艺库的编译翻译映射与替代, 综合需要输入的就是时钟约束即sdc文件,sdc是设计与产品的使用要求决定的。
DFT包括好几种类型, Scan chain是最常见的一种,这个可以在综合步骤中一起做,也可以 在综合之后进行,扫描链的多少和芯片本身的规模和芯片可提供的可测试芯片管脚有关, 尽量扫描链的长度越短越好,以缩短测试时间;由于有些片子的管脚有限,需要压缩扫描链;甚至有些芯片由于可复用的管脚太少,进入测试模式都需要在功能模式下由主机的设定, 设定后再退出功能模式。
扫描链的插入后可以由工具产生ATPG的 pattern, DFT成功与否要看测试覆盖率,一般在 95%以上说明就差不多ok了, 如果覆盖率偏低 ,需要追究原因,一般看有没有漏掉的DFF,以及为什么会溜掉,一般主要原因不是这个, 是一些不可控的节点造成了覆盖率低, 需要在电路中做一些处理来使之能 有相关 ATPG产生,如加入测试模式生效的 可选的DFF或者电平 /地 。
有些电路包括了ROM/RAM,需要给ROM/RAM本身加入内建自测电路(BIST), 一般如果带有MCU的 SOC,其实也可以通过软件来完成RAM测试,不一定加入BIST, 但是植入CPU软件的 ROM肯定必须有BIST电路来完成自测,自测电路的原理很简单, 就是判断写入和读出的数据是否吻合, 否则会 BIST电路会给出错误的标识。
Boundary scan chain是另一种DFT, 很容易理解的是,我们可以控制芯片各个pad的输入输出值, 这样它的作用可以应用于板级调试。
formaliry或者说equence check, 主要检查综合,DFT以及后端PR之后和各自步骤之前的RTL/网表的等效性。
STA是静态时序分析, 主要用在芯片完成后端流程后,也检查是否满足时序要求, 特别是插入了时钟树之后,这是需要后端工具(ICC/Encounter等) 反标出的sdf文件来进行分析 。细节不表。STA完成后才可以进行功能后仿和ATPG pattern的后仿 。 |
|