应用于FPGA的失效定位方法与流程

文档序号:31521701发布日期:2022-09-14 12:55阅读:37来源:国知局
应用于fpga的失效定位方法
技术领域
:1.本发明涉及芯片失效定位
技术领域
:,尤其涉及应用于fpga的失效定位方法。
背景技术
::2.芯片从生产到应用的各个环节,都有可能会失效,而在逻辑芯片上运行的复杂数字电路一旦失效,由于使用到的芯片资源较为庞大(涉及到的基础资源数量在几千到几万不等),导致定位所需的pattern也会随着用户代码的复杂程度和芯片集成程度的增加而持续增加。这期间所耗费的人力物力财力以及整个定位过程所花费的时间也会随之增加。3.现有技术方案通常有两种:一是针对失效pattern做拆分,将复杂的设计不断细化拆解到小的简单功能板块,去尝试复现失效现象,然后针对复现出失效现象的功能板块继续拆分,循环以上过程,直至得到根本的失效原因。二是使用软件的在线调试工具,将用户代码所例化的信号提取到片外,观察其数据流来做分析。4.针对逻辑芯片的定位会由于芯片本身缺乏足够的dft电路,导致其定位工作较为困难,无论是拆分失效工程,还是使用在线调试工具,都会遇到一个不可避免的问题,即重新生成物理网表。哪怕只是在代码上改一点,甚至只是换一个编译环境,在软件综合时就会因为这点微小的变动导致软件算法决定使用其他的资源,以其他的结构来实现以前的功能,因而,在实际失效定位过程中,会出现如图2所示的情况,即无法复现失效,进而无法进行失效定位工作。技术实现要素:5.本发明提供应用于fpga的失效定位方法,通过保留原始物理网表和复现失效,实现了缩小失效范围和精确定位失效位置。6.本发明一实施例提供应用于fpga的失效定位方法,包括以下步骤:7.根据被测芯片的底层物理网表和原始代码,确定用于失效分析的代码块范围;8.对所述代码块范围对应的底层电路进行二次布线操作,将所述底层电路的多个fabric电路的中间节点数据引出到芯片外;9.根据所述中间节点数据分析所述底层物理网表,生成以代码块为单位的多套测试集,每套测试集包括多个测试pattern;10.根据所述多个测试集对被测芯片进行实测,并收集失效信息;11.根据所述失效信息,定位至芯片失效的物理位置。12.进一步的,根据测试pattern对应的失败信息定位至失效fabric电路,再根据所述失效fabric电路定位至对应的芯片失效的物理位置。13.进一步的,对所述代码块范围对应的底层电路进行二次布线操作,包括以下步骤:14.获取被测芯片的空闲的输出io资源和空闲的fabric电路;15.针对所述代码块范围中的第一代码块,逐个分析所述第一代码块在所述底层物理网表中所使用的资源,得到所述第一代码块的一个或多个资源输出口;16.每次将一个所述第一代码块的资源输出口连接至所述空闲的fabric电路上,并通过所述空闲的fabric电路连接到所述空闲的输出io资源上。17.进一步的,根据所述中间节点数据分析所述底层物理网表,生成以代码块为单位的多套测试集,具体为:18.自动化程序根据所述中间节点数据分析所述底层物理网表,得到fabric电路的连接关系;19.通过电路仿真得到每个fabric电路的期望输入值和期望输出值,并生成以代码块为单位的多套测试集。20.进一步的,每套测试集包括1~999个测试pattern。21.进一步的,所述根据所述多个测试集对失效芯片进行实测的过程为自动化测试过程。22.本发明的实施例,具有如下有益效果:23.本发明提供了应用于fpga的失效定位方法,该方法在保留用户综合出的原有物理网表不变的前提下,使用芯片内其他的资源将原有电路的中间节点引出旁路,此旁路会将中间节点的信号传输到芯片外,通过分析这些信号就可以在失效分析后期,再一次缩小失效范围;由于保留了用户的物理网表,因而完全不用担心失效情况无法复现,截取的中间节点的信号也会如实的反映出电路的内部数据;因而当失效现象出现,就可以快速定位出是哪个代码块的数据流出错导致的。附图说明24.图1是现有技术的失效定位方法的流程示意图;25.图2是本发明一实施例提供的应用于fpga的失效定位方法的流程示意图;26.图3是本发明一实施例提供的应用于fpga的失效定位方法的整体电路的结构示意图;27.图4是本发明一实施例提供的应用于fpga的失效定位方法的单个代码块的结构示意图;28.图5是本发明一实施例提供的应用于fpga的失效定位方法的二次布线示意图;29.图6是本发明一实施例提供的应用于fpga的失效定位方法的测试集的结构示意图;30.图7是本发明一实施例提供的应用于fpga的失效定位方法的针对单个代码块构造测试集的示意图。具体实施方式31.下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。32.如图1所示,本发明一实施例提供的应用于fpga的失效定位方法,包括以下步骤:33.步骤s101:根据被测芯片的底层物理网表和原始代码,确定用于失效分析的代码块范围。具体的,将被测芯片的底层物理网表和原始代码输入失效分析程序,通过用户划定用于失效分析的代码块范围。34.如图3所示,整体电路是由一个个block模块(即代码块)连接构成。每一个block模块之间进行数据的交换和处理,最终得以实现用户代码所期望的功能,所以对于早期分析而言,无论是拆分代码,还是使用在线调试工具,其最小功能子集都只能停留在这些block模块的层面。但如果站在芯片底层设计的角度而言,如图4所示,每一个block模块其本质则在于无数lut资源、dff资源和routing资源的有机组合,所述lut资源、dff资源和routing资源的有机组合即为fabric电路/fabric资源。基于此原理,对于失效定位的精度便可以再向前一步,以往只能最终定位到一个block模块的失效,但是,无论这个block模块的功能再怎么简单,其至少会包含多个fabric电路,而真实失效原因可能只是这些fabric电路中某一块或多块电路发生了物理层面的损坏所导致,并且,这些fabric电路和实际芯片上的物理电路是存在映射关系的。因此,可以通过对这些资源的再分析,再定位,直接锁定到芯片里一个确切的位置;然后交由其他人员对定位到的失效位置做进一步分析即可。35.步骤s102:对所述代码块范围对应的底层电路进行二次布线操作,将所述底层电路的多个fabric电路的中间节点数据引出到芯片外。36.对所述代码块范围对应的底层电路进行二次布线操作,包括以下步骤:37.获取被测芯片的空闲的输出io资源和空闲的fabric电路;38.针对所述代码块范围中的第一代码块,逐个分析所述第一代码块在所述底层物理网表中所使用的资源,得到所述第一代码块的一个或多个资源输出口;39.每次将一个所述第一代码块的资源输出口连接至所述空闲的fabric电路上,并通过所述空闲的fabric电路连接到所述空闲的输出io资源上。40.如图5所示,由于芯片内存在一些空闲布线资源可供调用,因此,可以对用户撰写代码所综合出的底层电路(即所述用于失效分析的代码块范围)进行再布线,将底层电路中的多个fabric电路的中间节点数据,在不破坏原有电路设置的前提下,通过二次布线制造一条或多条旁路引出至芯片外进行分析(即片外分析)。所述旁路为通过空闲fabric电路和空闲io资源从原来的物理网表上所使用的模块里引出的另一条数据输出路径,所述中间节点数据通过空闲io资源输出至芯片外进行分析。41.步骤s103:根据所述中间节点数据分析所述底层物理网表,生成以代码块为单位的多套测试集,每套测试集包括多个测试pattern。具体的,由自动化程序根据所述中间节点数据分析所述底层物理网表,得到fabric电路的连接关系;42.通过电路仿真得到每个fabric电路的期望输入值和期望输出值,并生成以代码块为单位的多套测试集。43.如图6所示,通过电路仿真得到每个fabric电路的期望输入值和期望输出值,并生成以代码块为单位的多套测试集。每套测试集包括1~999个测试pattern。44.步骤s104:根据所述多个测试集对被测芯片进行实测,并收集失效信息。所述根据所述多个测试集对失效芯片进行实测的过程为自动化测试。45.步骤s105:根据所述失效信息,定位至芯片失效的物理位置。具体的,根据测试pattern对应的失败信息定位至失效fabric电路,再根据所述失效fabric电路定位至对应的芯片失效的物理位置。46.如果用户撰写代码所综合出的底层电路较为复杂,可交由自动化程序代为处理,通过分析底层物理网表确定fabric电路的连接关系,通过电路仿真得出每个fabric电路的期望输入值和期望输出值,并生成多套测试集,再根据所述多套测试集对失效芯片进行自动化流水线式的测试。由于事先通过仿真已经得出了其期望输入值和期望输出值,所以一旦出现仿真值和实测值不同,程序会自动将对应pattern的fail信息保留,用户即可通过fail信息直接定位到失效fabric电路,同时也就定位到了芯片失效的物理位置。47.如图7所示,如果用户在前期已经通过拆分工程等方法定位到了某个block模块,或者是某个代码块的失效时,则可将自动化程序的范围进行调整,只针对特定block模块或者特定代码所综合出的电路进行分析,生成只针对特定block模块的测试pattern集,即可避免明知问题点的范围却还是需要对整个工程进行分析的情况,大大减少了重复,无意义的分析过程,加快了分析效率。48.本发明实施例所涉及的术语解释如下:49.逻辑芯片:指用于实现用户数字逻辑的芯片,其功能通常由用户编程决定。50.失效定位:当逻辑芯片无法实现其功能时,认定为芯片已失效,而针对其失效的范围进行缩小的过程,称之为,失效定位。51.物理网表:是由软件算法对用户代码进行处理后所生成的一种文件,可狭义的理解为用于实现代码功能所构建的电路。52.fpga:(fieldprogrammablegatearray)现场可编程门阵列。53.pattern:芯片测试向量。54.dft:(designfortest)指的是在芯片原始设计阶段即插入各种用于提高芯片可测试性(包括可控制性和可观测性)的硬件逻辑,通过这部分逻辑,生成测试向量,达到测试大规模芯片的目的。55.lut:(lookuptable)指的是在逻辑芯片中,用于实现基础的逻辑运算的最小单元。56.dff:(dtypeflip-flop)指的是一种时钟信号的触发器。57.routing:芯片的布线资源,用于传输信号。58.fabric:逻辑芯片的底层基础架构。59.本专利的优点在于,在保留用户综合出的原有物理网表不变的前提下,使用芯片内其他的资源将原有电路的中间节点引出旁路,此旁路会将中间节点的信号传输到芯片外,通过分析这些信号就可以在失效分析后期,再一次缩小失效范围;由于保留了用户的物理网表,因而完全不用担心失效情况无法复现,截取的中间节点的信号也会如实的反映出电路的内部数据;因而当失效现象出现,就可以看到是由于哪块的数据流出错导致的了。60.示例性的,所述计算机程序可以被分割成一个或多个模块,所述一个或者多个模块被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述终端设备中的执行过程。61.所述终端设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器、存储器。62.所称处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述终端设备的控制中心,利用各种接口和线路连接整个终端设备的各个部分。63.所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述终端设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。64.其中,所述终端设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质(即上述可读存储介质)中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。65.需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。66.以上所述是本发明的优选实施方式,应当指出,对于本
技术领域
:的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。67.本领域普通技术人员可以理解实现上述实施例中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1