SOC验证中,植入了烧入ROM的软件,在仿真验证系统中,使用的一般是存储器的模型加上文本格式的代码文件,一般实现是直接通过系统读入指令把文件读入到存储器模型中 。(有些仿真工具可以直接通过选项导入,类似SDF文件,如工具nscim),仿真器可以直接写 出指令执行的log以用于debug,不过现在有更先进的方式用于复杂SOC验证,如Codelink工具,能够在原仿真器的基础上,建立起MCU和HDL电路已经软件的关系,通过展示波形和固件(firmware)源码的链接进行更方 便的debug 。
下面需要说的实现部分,就是综合,DFT, STA ,ATPG等,准备合在一起写,感兴趣的朋友也可以接着我的写,我暂时不做这方面的更新,希望朋友们玩个接力 。(此处略去若干回帖 。。。。。)帖子的话题受到了大家关注,也被加精,受到鼓舞,一直想继续写完,但时间有限,更主要惰性使然,一直没有接着写完,今日得宽裕,继续谈谈数字 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电路会给出错误的标识 。
【testbench,TestBench】Boundary scan chain是另一种DFT, 很容易理解的是,我们可以控制芯片各个pad的输入输出值,这样它的作用可以应用于板级调试 。formaliry或者说equence check, 主要检查综合,DFT以及后端PR之后和各自步骤之前的RTL/网表的等效性 。STA是静态时序分析,主要用在芯片完成后端流程后,也检查是否满足时序要求,特别是插入了时钟树之后,这是需要后端工具(ICC/Encounter等)反标出的sdf文件来进行分析。
- 把人放大一亿倍,芯片放大一亿倍
- 自主研发比率达到100%,华为芯片是自主研发吗
- 芯片行业专题报告,海光芯片
- 张忠谋对大陆的态度,台积电创始人张忠谋对大陆芯片发展的看法
- a7108芯片 a7108
- 升压芯片,12v升压变压器
- Tizen系统,tizen系统
- 如何把下拉显示芯片的功能关掉?
- 华为发布鲲鹏芯片,鲲鹏920和麒麟980哪个好
- vivov1芯片 vivov1
