你不一定知道芯片逆向工程的那些事儿~ 您所在的位置:网站首页 逆向工程设计的过程主要应用哪三大技术指标表示 你不一定知道芯片逆向工程的那些事儿~

你不一定知道芯片逆向工程的那些事儿~

2023-09-15 05:10| 来源: 网络整理| 查看: 265

二、 辅助类工具软件。

当然,除了这三大EDA厂商的IC设计工具外,Altera 、Xilinx、Keil Software这三家公司的软件quartus ii、ISE、KEIL开发环境等,都是对于IC设计流程中比不可少的工具。它们分别是用于FPGA、单片机ARM芯片的开发。这类软件在芯片的CP测试和芯片应用方案开发上会有用到。

版图提取工具,NetEditorLite、ChipAnalyzer,这两个工具主要是针对芯片反向设计而言的。

算法设计工具,MATLAB,此工具应用范围很广,但对于芯片设计来说,它较为适用于算法原型开发,例如,通信算法。

PCB版图工具,Altium Designer,Orcad,Allegro。其中,目前Orcad,Allegro是属于cadence电路系统设计套件内的主要软件,而Altium Designer是最常用的软件,它的前身是Protel。

Labview与数字源表,这一对软硬件主要用于芯片电气参数的半自动化测试,特别是模拟芯片。其目的是芯片设计公司用于分析芯片样品参数用。

对于这些工具的该如何使用,我会在下面的文章中进行说明。ps:没有具体说明软件使用环境的,一般是在windows环境下使用。

先从反向设计说起。下面是我整理的芯片反向设计的流程图。

一、反向设计总体规划

在进行一块新品芯片的开发前期必须要有一个设计总体规划,其中最主要的问题就是,这颗芯片是否能带来收益,毕竟公司要靠产品吃饭。如何评估芯片能否带来收益?这需要多年的经验才能进行准确的评估。一般是看市场上哪几款芯片销量好,并且未来几年的销量看涨,并且评估本公司是否有能力设计并且有渠道销售出去。要考虑的芯片成本有以下几项:

1,芯片拍片成本;

2,芯片从立项到交货的时间成本,时间过程导致芯片即使设计出来了,市场已经不需要了;

3,流片成本;

4,工具软件的授权使用成本;

5,测试成本,包括CP测试和成品测试以及搭建测试平台所需要的其它成本;

6,封装成本。

1,芯片拍片成本;

2,芯片从立项到交货的时间成本,时间过程导致芯片即使设计出来了,市场已经不需要了;

3,流片成本;

4,工具软件的授权使用成本;

5,测试成本,包括CP测试和成品测试以及搭建测试平台所需要的其它成本;

6,封装成本。

将这些成本进行适当预估之后,再来看收益。对于收益这块,这是和市场的需求和销量走向有关,需要涉及到许多其他方面的考虑。在收益问题解决了之后,明确此项目可以获得收益,那么就可以正式开工,前面说的一堆东西其实就是项目可行性分析的一部分。但其实有些公司并不会考虑那么多,因为这些可行性分析本身非常困难。反向哪一家的芯片?选择大公司的芯片进行反向一般来说成功率会更高。选定芯片后就进行拍片了,芯片进行解剖拍片一般周期在1周到1个月之间,这视芯片的大小而定。

二、工艺选择

这个要依据拍片回来的芯片版图来决定,通过对芯片版图的识别,判断待反向的芯片版图使用的工艺是什么,再根据公司自己拥有的工艺文件(这些工艺文件都由国内或者国外的芯片制造厂提供,前提是公司得与它们合作才能得到工艺文件),两者进行比对,选择一个适合的工艺进行后续的仿真、版图绘制和流片。工艺选择的问题,需要对公司所拥有的工艺非常熟悉,并且对版图也要熟悉的工程师来解决,他要能够通过版图明确的识别所用的工艺。当然,工艺有时候会在设计过程中反复的更换,因为会有许多参数、流片成功率等各种复杂因素的考量。这一步其实也就叫工艺可行性分析,其实也应该归于项目可行性分析的一部分,但是由于必须要拍片才能进行,所以只能单独说明。

三、版图提取

在上一步工艺可行性分析完之后,确认有工艺可以和该版图匹配,那么就可以进行版图提取工作。这部分的工作其实主要是识别版图中的管子并用符号表示出来。所用到工具有:

NetEditorLite或者ChipAnalyzer,这是版图提取工具,在不同的公司进行芯片拍片,会用到不同的版图提取工具。该类软件的作用就是一个图片查看器,拍摄的版图就是数据就是照片。

cadence IC5141 里的virtuoso schematic软件,这是电路图绘制软件。

整个工作的流程是用NetEditorLite或者ChipAnalyzer打开拍片的芯片版图数据,人工肉眼识别里面的管子(二极管、三极管、MOS管之类),再使用virtuoso schematic将管子用符号表示出来,并把管子之间的连接关系连接上。

版图提取所要注意的问题:

初次进行版图提图,可能会不认识管子,需要有经验的人来帮助识别,熟悉之后就容易了;

不同工艺的版图管子的形状是不一样的,所以碰到不认识的管子,要么靠别人帮忙,要么就只能自己去推理;

要有良好的管子命名习惯,这个每个公司都应该有规定的,这对于后续的工作会有很大帮助;

尽量按照版图的布局来放置管子的布局(在virtuoso schematic上的电路图布局),这样可以加快以后对比电路图和版图时找管子的速度;

在整理提取出的电路时一定要新建一个电路图来放置整理的电路,不要在刚提取的电路图上整理,方便整理时和版图数据对比。

四、电路整理

在版图提取完毕之后,下一个步骤就是电路整理。提取完的电路图是混乱的,没有层次关系。那么如何将其整理成具有层次关系,让人一看就懂呢?

1、这就涉及到有关芯片的一些常识了。芯片分为数字芯片和模拟芯片,但是数字芯片必定会包含模拟电路,而模拟芯片却可以不包含数字电路。它们有如下一般特征:

A、数字芯片,必有时钟振荡电路、复位电路这些模拟电路。必有寄存器,而且整个数字部分最耗面积的部分往往都是寄存器。寄存器的使用量是很大的,因此,在版图上呈现的就是有大数量的图像一模一样的电路,这种电路往往都是寄存器。

B、模拟芯片,有带隙基准电路。

2、说完了芯片版图常识,另外一个重要的有助于理解所提取的电路的工具就是待反向的芯片的数据手册!这是最重要的,我们所有有关于芯片的信息都是从数据手册上得来的。所以一定要善用DATASHEET!在芯片数据手册上,一般会对芯片的功能进行说明,对芯片如何运行进行说明,这些说明将有助于我们对于电路的整理。

比如说,芯片手册上说道用了I2C,那么电路中肯定有一大块电路是属于I2C的。一般来说,版图的布局都是将同属于一种功能的管子会集中放置在一起。I2C电路的特征,从I2C协议的原理上可以知道,它就两根信号线,一根时钟,另一根数据线。数据在芯片内部一般是并行传输比较方便,所以,I2C电路一定会有串并转换电路,而串并转换电路一般是寄存器,而且一般是8位。根据这个推断结果,就在提取的电路中去寻找8个在一起的寄存器,它们其中一组就是I2C电路的一部分,再根据芯片版图的I2C PAD位去寻找,看连接到了那一组寄存器上,那么整个I2C的电路就被识别出来了。因此,

a、靠着芯片手册对芯片功能的说明,

b、加上芯片的一些常识性知识,

c、加个人的这种对电路原理的推理,就可以相对较快的将电路分层次的整理出来。逐步的理解整个芯片的原理。当然,由于芯片电路的庞大的关系,有时候电路并不是需要完全理清楚,对于不那么重要的电路可以不理会。只要保证连接关系没连接错就行。这阶段,只会用到cadence ic5141的virtuoso schematic软件。

五、 电路仿真及修改

电路整理好了,下一步就是进行电路的仿真及修改了,根据工艺选择步骤选择的工艺来进行。先说明一下这阶段所使用的工具:

1、cadence spectre,一般集成在cadence ic5141里面,是模拟电路仿真工具(ps:最原始的版本是集成在IC5141内部,但功能不全,所以需要单独安装新版本,软件名为MMSIM61,随着版本的升级,它的名字也在修改),当然,数字电路也可以进行仿真,数字电路的本质还是模拟电路;

2、synopsys公司的 Hspice,与spectre一样的仿真工具,另有些差别。

3、Mentor公司的 Modelsim,主要在windows上使用,用于verilog网表的仿真。

模拟电路仿真工作流程:在cadence中搭建好仿真环境,设置好仿真参数,选用spectre或者hspice,然后就可以进行仿真的。另外,也可以将电路导出成CDL网表,拷贝到Windows上,用Windows版本的Hspice进行仿真,这样做的优点是Windows易于操作。另外说明一下spectre和hspice的一项区别。spectre仿真的时候会保存所有电路节点的数据,这样做优点是方便查看各个节点的数据,缺点是仿真消耗的时间太长,保存的数据文件太大,这一点在遇到大型电路的时候会很耗时(不知道最新版本改进这一点没有,鄙人没有用过最新版的spectre)。hspice仿真之前可以自己选定所要查看的节点,这样做就可以减少仿真时间和减小数据文件的大小。

数字电路仿真工作流程:在virtuoso schematic中将整理好的电路路中数字电路部分导出成网表文件,再拷贝到windows系统上进行仿真。windows系统上数字电路网表的仿真采用Modelsim。(这么做的原因是linux系统不太方便)使用Modelsim仿真,最重要的是写好testbench(貌似这句是废话)。

关于电路的修改,这部分其实不好总结,因为每一款芯片都有不同的参数,所要修改的地方都不太一样,我所知道的是,必定要考虑修改的地方往往都是有关模拟电路的,例如,时钟振荡、复位电路、开漏输出管、带隙等,修改的目的是为了与当前所选用的工艺适配,以满足芯片datasheet的参数要求。另外,数字部分的电路其实一般来说是不需要修改的,但有时为了节省版图面积,会缩小寄存器管子的尺寸,毕竟缩小一个,就等于缩小了几十个。这一阶段其实是一个不断的迭代过程,它要和版图绘制结合起来,这样才能够保证芯片功能和性能的完整。

六、版图绘制

这部分在电路整理完之后就可以开始进行了,并配合电路仿真与修改,逐步晚上版图的绘制。该阶段所使用的主要工具有 1、cadence ic5141的版图绘制软件;2、cadence Dracula Diva或者Calibre,这两个用于版图DRC(设计规则检查)、LVS(版图一致性检查);一般而言,calibre会更加常用一些,毕竟这可是Mentor公司的招牌软件之一。在版图绘制好并进行各种检查无误之后,就可以tapeout,准备流片了。

七、测试规范

IC设计师在芯片tapeout之后就要准备制定CP测试规范了,这是接下来CP测试流程的总纲,非常重要。测试规范的测试项主要来源于芯片datasheet,将重要的参数设置为测试项,并规定参数的合理分布范围以及每一个测试项的测试方法(流程)。这些测试参数以及测试方法将决定CP测试开发时所用到的测试环境ATE(auto test environment)。

八、CP测试开发

根据测试规范,可以选定所需要的测试工具以进行整个测试环境的搭建工作。我所知道到用于芯片测试的测试仪有JUNO DTS-1000,ASL1000,V777,STS8200等。每一种测试仪适用于不同种类的芯片测试,测试仪主要分为数字测试,模拟测试,数模混合测试这三大类。CP测试开发所需要做的工作有:1,测试仪的选择(ps:这个阶段还要考虑一个重要的因素就是一次测试多少颗裸芯,也就是CP测试常说的多少个site,这关系到后续测试程序的编写,以及DUT板的制作,非常重要);2,根据测试仪开发测试程序;3,制作测试裸芯片用DUT板,扎PAD位的针由测试厂制作并焊接在DUT上(ps:DUT板有时候也叫针卡);4,自制测试仪(可选),当测试仪并不能完成某些特殊测试项的要求时,还得自己制作测试仪。例如,红外接收芯片测试所需要用到的扫频仪,若采用非自制扫频仪,测试时间将非常长,必须自己制作。5,测试数据的分析。对测试数据的分析有助于对测试方法的改进和对芯片设计的改进。CP测试在整个芯片反向设计中占据着重要位置,所花费的人力、物力是非常多的,还需要频繁和测试厂交流,所以CP测试显得非常复杂。在CP测试开发完之后,会进行COB测试,之后才进行CP测试的调试阶段,以及正式批量测试阶段。

九、COB测试

所谓COB测试,其实就是Chip On Board(将裸芯打线在PCB板上或者将封装好的芯片焊接在PCB上,并将引脚引出),它是在CP测试进行之前进行的一项测试(也在成品测试之后进行),用于初步判断芯片的功能和性能,如果这批次随机采样的几颗芯片功能和性能都很烂就暂时不必进行CP测试了。另外,COB测试相比于CP测试具有



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有