CN106098104A - Fpga芯片内嵌bram核的测试系统及方法 - Google Patents
Fpga芯片内嵌bram核的测试系统及方法 Download PDFInfo
- Publication number
- CN106098104A CN106098104A CN201610401905.9A CN201610401905A CN106098104A CN 106098104 A CN106098104 A CN 106098104A CN 201610401905 A CN201610401905 A CN 201610401905A CN 106098104 A CN106098104 A CN 106098104A
- Authority
- CN
- China
- Prior art keywords
- module
- bram
- algorithm
- test
- testing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/56—External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
- G11C29/56004—Pattern generation
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/10—Test algorithms, e.g. memory scan [MScan] algorithms; Test patterns, e.g. checkerboard patterns
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/18—Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
- G11C29/26—Accessing multiple arrays
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
本发明属于集成电路技术领域,具体为基于片内部分重配置的FPGA芯片内嵌BRAM核的测试系统及方法。本发明的测试系统包括:TPG模块、ORA模块、PR_BRAM模块、BUF模块、片内重配置控制模块和位流存储模块。本发明利用FPGA的部分重配置功能,用片内配置接口完成内部自动部分重配置,来实现对内嵌BRAM核的测试;首先,改进测试算法,提高故障覆盖率,在已有方法的基础上提高了对写破坏故障、读破坏故障、干扰耦合故障、写破坏耦合故障、读破坏耦合故障以及BRAM初始化功能故障的覆盖;其次,利用FPGA的片内配置接口实现测试算法的片内自动部分重配置,降低测试配置数,从而降低测试时间。
Description
技术领域
本发明属于集成电路技术领域,具体涉及FPGA芯片内嵌BRAM核的测试系统及方法。
背景技术
随着集成电路的发展,现场可编程门阵列(FPGA)在不断扩大可编程逻辑阵列的同时,内嵌的各种可编程知识产权(IP)核的规模也在不断地扩大,使得FPGA的性能越来越强大。因此,如何高效且全面地对芯片的可编程逻辑阵列及IP核进行测试成为一大课题。而BRAM核作为FPGA内最常用的IP核之一,如何测试其功能的正确性尤为重要。而在芯片测试中,测试时间和测试覆盖率是最重要的两个指标,它直接反映了芯片测试的有效性。对于FPGA芯片的测试来讲,由于其可配置性,因此测试时间的主要受测试配置数目的影响,BRAM作为FPGA内嵌的可配置IP核,也是如此,降低其测试时间的瓶颈在于如何减小测试配置数。
本发明提出的测试方法是针对Xilinx FPGA芯片的内嵌BRAM,对于FPGA内嵌BRAM来说,可以根据需要配置成不同的模式[1]。根据FPGA内嵌BRAM可配置的模式以及SRAM的结构,将BRAM中可能出现的故障分为以下7种,分别为SRAM故障、双端口读写故障、位宽模式故障、ECC功能故障、Cascade功能故障、FIFO功能及标志位故障、初始化功能故障[1]。其中的SRAM故障又可细分为地址译码故障(简称AF)、固定型故障(简称SAF)、开路故障(简称SOF)、转换故障(简称TF)、写破坏故障(简称WDF)、读破坏故障(简称DRDF)、倒置耦合故障(简称CFin)、等幂耦合故障(简称CFid)、状态耦合故障(简称CFst)、干扰耦合故障(简称CFdst)、写破坏耦合故障(简称CFwd)、读破坏耦合故障(简称CFdrd)[2]。
对于FPGA内嵌BRAM核的测试,已有较多文献给出了测试方法。为了在保证故障覆盖率的前提下降低测试配置数以降低测试时间,有些文献采用了部分重配置技术[3,4]。如在文献[5]中,在覆盖SRAM故障时采用了March LR算法[6],可以覆盖地址译码故障、固定型故障、开路故障、转换故障、耦合故障(其中包括全部倒置耦合故障、等幂耦合故障、状态耦合故障及部分干扰耦合故障),同时,还增加配置数覆盖了BRAM的双端口读写功能、多种位宽模式、cascade功能、ECC功能及FIFO功能等可能出现的故障,故障覆盖率较高,最终共使用了5个完整配置,辅以14个部分配置完成对Xilinx Virtex-5 FPGA的测试,但仍存在没有覆盖到的故障,如SRAM故障中的写破坏故障、读破坏故障及部分耦合故障,BRAM功能中的初始化功能故障也未进行测试,同时仍旧存在着测试配置数过多,测试时间长的问题。而在文献[7]中采用的方法中,使用改进的March C-算法,尽管只用了一个完整配置完成对Virtex-4系列FPGA内嵌BRAM的测试,但仅能对部分SRAM故障进行了检测,对BRAM的其他功能如双端口读写功能、多种位宽模式、cascade功能、ECC功能、FIFO功能及初始化功能均没有进行测试,因此,测试的故障覆盖率较低。
参考文献:
[1]Xilinx Inc. Virtex-4 FPGA User Guide, 2008. [2016-3-27].http://www.xilinx.com/.
[2]Hamdioui, Said, d. G. A. J. Van, M. Rodgers. March SS: A test for allstatic simple RAM faults[J]. In: Proc. of IEEE International Workshop onmemory Technology, Design, and Testing, Bendor, France, 2002: 95-100.
[3]Xilinx Inc. Virtex-4 FPGA Configuration User Guide , 2009. [2016-3-27].http://www.xilinx.com/.
[4]Xilinx Inc. Partial Reconfiguration User Guide, 2011. [2016-3-27].http://www.xilinx.com/.
[5]Dailey J L, Garrison B R, Pulukuri, M.D, et al. Built-In Self-Test ofembedded memory cores in Virtex-5 Field Programmable Gate Arrays[C]// SystemTheory (SSST), 2011 IEEE 43rd Southeastern Symposium on Auburn, Alabama.IEEE, 2011: 220-225.
[6]A. van de Goor, G. Gaydadjiev, V. Harmolik, and V. Mikitjuk, March LR:A Test for Realistic Linked Faults, In Proc. IEEE VLSI Test Symposium,Princeton, New Jersey, IEEE, 1996: 272-280.
[7]Gadde P, Niamat M. FPGA memory testing technique using BIST[J].Midwest Symposium on Circuits & Systems, Columbus, Ohio, IEEE, 2013: 473-476.
[8]Ichinomiya Y, Amagasaki M, Iida M, et al. A bitstream relocationtechnique to improve flexibility of partial reconfiguration[C]// Proceedingsof the 12th international conference on Algorithms and Architectures forParallel Processing - Volume Part I. Fukuoka, Japan: IEEE Press, 2012:139-152.。
发明内容
本发明的目的在于提供一种故障覆盖率高、测试时间低的FPGA内嵌BRAM核的测试系统及方法。
本发明提供的FPGA内嵌BRAM核的测试方法和系统,是基于片内部分重配置的。为了便于说明问题,我们示例其中一种典型测试系统的电路架构,请参考图1所示,主要包括:TPG模块、ORA模块、PR_BRAM模块、BUF模块、片内重配置控制模块和位流存储模块;其中,TPG模块是测试向量产生模块,用于产生待测BRAM的测试序列;ORA模块是输出响应比较器,用于比较从待测BRAM中输出的数据是否正确;PR_BRAM模块是待测BRAM部分,主要包含需 要进行测试的BRAM,该模块设计为部分重配置模块;BUF模块是缓冲器模块,是为了保证所有的PR_BRAM模块与其他静态模块的连接均一致,从而实现用单个PR_BRAM模块的部分重配置位流配置其他PR_BRAM模块的目的;片内重配置控制模块是用于控制测试算法的部分重配置流程;位流存储模块则是用于存储部分重配置位流。除了PR_BRAM模块外,其余模块均设为静态模块。
上述测试系统的测试流程为:
首先进行第一个算法的测试,将TPG模块中第一个算法产生的测试序列传输到BUF模块中,经由BUF模块的缓冲功能传输到部分重配置的PR_BRAM模块中,测试序列输入到待测BRAM(PR_BRAM模块)之后,对待测BRAM进行相应的读写操作,然后读出数据;将读出的数据传输到输出BUF模块中,经过BUF模块的缓冲作用,将读出的数据传送到ORA模块中,与正确值进行比较; 如果出现与正确值不一致的情况,则报出错误,否则不报错,直至所有的读出数据均比较完毕,该算法执行完毕;然后,算法执行完毕后,相关信号直接控制片内重配置控制模块从位流存储模块中读出部分重配置位流以实现部分重配置,将部分重配置模块PR_BRAM的配置信息修改为第二个算法所需要的,同时控制TPG模块产生第二个算法的测试序列,开始第二个算法的测试,以此类推。
本发明提出了一种基于片内自动部分重配置的BRAM内建自测试的方法,改进了测试算法,有效地提高了测试的故障覆盖率,同时采用片内自动部分重配置的方式降低了测试配置数目,从而降低了测试时间。
本发明的技术核心点在于:
一是改进测试算法,在已有论文[5]基础上,利用March SS算法覆盖SRAM故障,设计初始化测试算法覆盖BRAM初始化功能故障,从而提升测试的故障覆盖率;
二是利用了FPGA内嵌配置接口进行片内部分重配置,将所有测试算法集成在同一个测试配置里来实现降低测试的完整配置数,最终实现了将测试配置数降低的目的,降低了测试时间。部分重配置位流既可以存储在片外,也可以存储在片内。部分重配置位流存储在片外较常见,本发明给出了将部分重配置位流存储在片内的方法,以提高测试的灵活性。
在FPGA内嵌BRAM核的测试中,最重要的两个因素是测试覆盖率和测试时间。测试方法的故障覆盖率直接决定了该测试方法的有效性。如今的FPGA在功能和性能上均越来越强大,设计的工艺也越来越先进,随之而来的就是芯片故障的类别也越来越多,故障模型也越来越复杂,因此评判一个测试方法是否有效的一个重要标准是是否能够覆盖芯片可能会出现的尽可能多的故障。本发明将继承已有算法中的部分算法,同时修改并增加一些算法以达到更高的测试故障覆盖率。测试时间是芯片测试中的另一个重要因素,直接决定了该测试方法的效率,测试时间的长短会影响测试的人力和时间投入。而在芯片测试中,测试时间一般可由两部分组成,其一为下载配置时间,其二为程序执行时间。对于BRAM来讲,下载配置时间一般都大于程序执行时间,因此需要降低测试时间,主要从降低下载配置时间方面来考虑,而影响下载配置时间的因素主要需要配置的位流。本发明中,将所有的算法均集成在同一个测试配置中,并采用FPGA片内配置接口进行片内部分重配置,部分重配置位流存储在芯片片内,这么做可以大大降低测试配置位流数目,降低配置时间同时可以提高测试的灵活性。
本发明提到的提高故障覆盖率的测试算法是,沿用了文献[5]中采用的Marchs2pf-、March d2pf、MATS+、cascade MATS+、ECC及FIFO的测试算法,在此基础上,使用MarchSS算法取代March LR算法,以覆盖读破坏故障、写破坏故障、干扰耦合故障、读破坏耦合故障以及写破坏耦合故障等[2];此外,增加初始化测试算法,覆盖FPGA内嵌BRAM的初始化功能。依此修改后,在文献[5]的基础上进一步提高了测试覆盖率。
本发明提出的初始化测试算法步骤为,在配置时给每块BRAM初始化一定的数据,并且给每块BRAM写入的数据一致,在程序执行时依次将所有BRAM中的数据按地址读出,数据读出后进行相互比较并与正确值进行比较,看是否存在故障,直至所有地址的数据均比较完毕。一旦检测到某个BRAM读出的数据与正确结果不一致,则说明该BRAM初始化功能存在故障。
本发明提出的降低测试时间的具体步骤为,提取出测试BRAM的所有测试算法实现电路中可通用的模块,并将这些模块置为静态模块,其余模块设计为部分重配置模块,在本发明的设计中,仅仅待测BRAM部分被设置为部分重配置模块,在实际操作时,切换不同的测试算法只需重新配置部分重配置模块的位流即可,可以大幅降低配置时间,从而实现降低测试时间的目的,不同芯片测试时间降低的幅度将视BRAM占芯片中的比例而定。以XilinxVirtex-4的XC4VLX200芯片为例,经过试验发现,待测BRAM部分产生的配置位流仅占整体配置位流的8.7%,理论上单个算法配置时间可以降低91%。
在进行部分重配置时,本发明使用了FPGA片内配置接口(如Xilinx FPGA中的ICAP接口)来是实现,并将重布置技术[8]应用到测试中,实现了将部分重配置位流存储在片内,这是基于两方面的考虑,一是从片内配置接口访问片内存储器的速度要高于片外,有利于降低配置时间,二是将部分重配置位流存储在片内而无需借助片外存储单元,提高了本发明的使用灵活性以及移植性。
本发明尤其适合对FPGA内嵌BRAM进行测试,因为内部配置接口在现代FPGA非常普遍,而且现代FPGA中具有丰富的逻辑资源,因此不用担心其余模块如测试向量发生器等等的硬件开销问题,只需要由硬件描述语言描述出这些模块的功能并采用相应地部分重配置流程实现即可。
技术效果
本发明能够在只需两次完整配置的情况下,利用FPGA芯片内的内部配置接口,进行片内部分重配置,将多个测试算法集成在同一个配置中,从而实现对FPGA内嵌BRAM的测试故障覆盖率达到100%,同时大大降低了测试时间,此外,还实现了将部分重配置位流存储在FPGA芯片,在测试时无需借助外部存储单元。因此,本发明相比于一般测试方法,具备测试覆盖率高,测试时间小,测试时间的可移植性和灵活性较高等特点。
附图说明
图1:测试方法电路架构。
图2:BRAM划分示例。
图3:TPG模块选择电路。
图4:ORA模块实现。
图5:部分重配置控制模块实现流程图。
图6:测试结果判定示例。
具体实施方式
本发明的实现方案根据不同的FPGA芯片略有不同,但基本实现框图都如图1所示。由TPG模块产生测试向量,测试向量通过BUF模块进入到部分重配置模块(PR_BRAM)中,即待测BRAM中,测试向量进入部分重配置模块后,待测BRAM进行相应的读写操作后读出数据,读出数据通过BUF模块输出到ORA模块,ORA模块中集合了所有PR_BRAM模块的输出并对这些输出进行比较,看是否与正确结果一致,如出现任意一个结果与正确结果不一致,均令输出结果为测试出现故障。而部分重配置控制模块则用于控制进行部分重配置操作,当一个算法执行完毕后,由该模块控制进行部分重配置,重新配置待测BRAM的配置方式,同时给出信号到TPG模块中选择新的测试向量进行测试。位流存储模块则用于存储部分重配置位流,部分重配置控制模块在控制进行部分重配置流程时,即从位流存储模块中读取数据进行重配置。
以测试Xilinx公司的XC4VLX200芯片中的BRAM功能为例。该芯片内含有7列共336块BRAM,片内配置接口可以用片内内嵌ICAP核实现。首先我们将整个芯片的BRAM根据在芯片中的位置平分为上半区和下半区,在对上半区BRAM进行测试时,该区间内的BRAM作为待测BRAM,需要切割划分为部分重配置模块,即上文中介绍的PR_BRAM模块,下半区的BRAM则用作位流存储模块,反之亦然。确定了待测BRAM后,将这些BRAM切割划分为部分重配置模块,在划分时以row为最小单位划分部分重配置模块,划分原则为同列的每相邻的四块BRAM构成一个部分重配置模块,在这种划分原则下得到的部分重配置模块位流最小。图2是BRAM划分的示例图。在该例子中,我们对下半区BRAM进行测试,上半区BRAM作为位流存储模块,从图中可以看出,将待测BRAM以每4个为一组构建部分重配置模块。测试上半区BRAM时类似。在测试算法上采用了14个测试算法来实现对该系列FPGA故障的覆盖率100%,参考表1。算法编号中的PR为部分重配置,含义是在实现时以部分重配置的形式进行配置。
表1:14个测试算法以及配置标示意
。
下面将对各个模块的具体实现方式进行说明。
(1)TPG模块。该模块不作为重配置模块而是作为静态模块,也就是说在14个测试算法测试的过程中是无法进行重配置的,而不同的测试算法对应的测试向量不一样。因此,需要将整个测试流程的14个测试算法需要的测试向量全部集成在该模块内,每执行完一个测试算法后在进行重配置下一个位流时通过选择信号切换为相应测试算法需要的测试向量。这是通过一个多路选择器来实现的,选择信号为TPG_count信号,该信号是用来指示当前正在执行的是第几个算法。选择电路如图3所示,通过TPG_count信号来选择14个测试算法中的一个算法传输到待测BRAM中。
(2)ORA模块。本模块的设计思路是两两相互比较,将所有待测BRAM的输出两两进行比较,如图4所示,相邻的两个待测BRAM的输出传输到一个比较模块中进行比较,将所有的比较结果汇总到一起。
(3)PR_BRAM模块。即本设计的部分重配置模块,划分原则如上文所述。
(4)BUF模块。目的是为了保证所有的重配置模块(即PR_BRAM模块)的与其他静态模块的连接均一致。这样可以实现所有重配置模块产生的重配置位流只存在地址的差异,满足重布置的要求,即以单个重配置模块的位流来配置所有的重配置模块。
(5)部分重配置控制模块。在该例子中即为ICAP控制模块。在该模块的设计中,最重要的是实现14个测试算法之间的重配置流程,该过程的实现流程图如图5左侧所示,首先执行测试算法1,该测试算法执行完毕后BIST_done信号将拉高,指示该算法执行完毕,此时开始进行下一个测试算法需要的部分重配置模块的部分重配置,重配置完成后RECONF_done信号拉高,指示着重配置完毕,重配置完毕后,将BIST_done信号置为低电平,此时第二个算法开始执行,以此类推直至所有的算法执行完毕后,则输出测试结果。其中,该流程中,“重配置下一算法”这一步骤由于是通过单个重配置模块的位流通过ICAP来配置所有的重配置模块,此过程的实现需要满足一定的时序要求。具体流程如图5右侧流程图所示,该部分是左侧重配置下一算法步骤的细化,在进行部分重配置模块的部分重配置时,由于整个设计含有多个重配置模块,而所有的重配置模块配置用的位流均为同一个,因此需要依次进行重配置,首先进行第一个部分重配置,增加一个PR_count信号指示当前正在进行配置的重配置模块,读出部分重配置位流,找到该重配置位流中FAR地址部分,根据PR_count的值修改FAR地址的值,修改完毕后通过ICAP配置该位流,配置完成后将PR_count加一以配置下一个重配置模块,以此类推直至所有的重配置模块均配置完毕。其中流程图中的BIST_done信号为算法执行完成信号,RECONF_done信号是重配置结束信号,PR_count信号为在重配置过程中描述当前正在配置重配置模块编号。FAR为配置位流的地址信息。
(6)位流存储模块。该模块是由不进行测试的芯片半区的BRAM组成,用于在片内存储部分重配置时的位流,设计为静态模块。
所有的模块均设计好之后,进行部分重配置流程生成部分重配置位流并进行下载配置进行测试。
对Xilinx Virtex-4 XC4VLX200芯片测试时,将开发好的位流直接下载到FPGA芯片中进行测试,如图6所示,该图中clk为时钟信号,rst_n为复位信号,result为测试结果,该信号为1时表示测试出现异常,TPG[3:0]为测试算法编号,Unit_result信号为每一个存储单元的测试结果,0表示正在测试的存储单元异常,1表示正在测试的存储单元正常。测试过程为:首先等待测试结束,结束的标志是TPG跳转到数值D(下载完毕后等待时间小于1s),测试结束时,观察result的值来判断测试是否出现故障,如果result为0,则说明测试的BRAM无故障,如果result为1,则说明测试的BRAM出现故障。在result出现故障时,可以通过示波器的触发功能触发Unit_result信号确定出现故障的位置,即Unit_result被拉到低电平的位置。
本发明相比于一般测试方法,具备测试覆盖率高,测试时间小,测试时间的可移植性和灵活性较高等特点,而且,该方法还可以应用到FPGA内别的模块如DSP的测试中。
本发明的移植性及通用性较强,在测试其他FPGA的内嵌BRAM时测试方法的开发流程与上述类似。
Claims (6)
1.一种FPGA内嵌BRAM核的测试系统,其特征在于,主要包括:TPG模块、ORA模块、PR_BRAM模块、BUF模块、片内重配置控制模块和位流存储模块;其中:
TPG模块是测试向量产生模块,用于产生待测BRAM的测试序列;
ORA模块是输出响应比较器,用于比较从待测BRAM中输出的数据是否正确;
PR_BRAM模块是待测BRAM部分,主要包含需 要进行测试的BRAM,该模块设计为部分重配置模块;
BUF模块是缓冲器模块,用于确保所有的PR_BRAM模块与其他静态模块的连接均一致,以实现用单个PR_BRAM模块的部分重配置位流配置其他PR_BRAM模块;
片内重配置控制模块是用于控制测试算法的部分重配置流程;
位流存储模块是用于存储部分重配置位流;
除了PR_BRAM模块外,其余模块均设为静态模块。
2. 根据权利要求1所述的 FPGA内嵌BRAM核的测试系统,其特征在于,测试流程为:
首先进行第一个算法的测试,将TPG模块中第一个算法产生的测试序列传输到BUF模块中,经由BUF模块的缓冲功能传输到部分重配置的PR_BRAM模块中,测试序列输入到PR_BRAM模块之后,对待测BRAM进行相应的读写操作,然后读出数据;将读出的数据传输到输出BUF模块中,经过BUF模块的缓冲作用,将读出的数据传送到ORA模块中,与正确值进行比较;如果出现与正确值不一致的情况,则报出错误,否则不报错,直至所有的读出数据均比较完毕,该算法执行完毕;算法执行完毕后,相关信号直接控制片内重配置控制模块从位流存储模块中读出部分重配置位流以实现部分重配置,将部分重配置模块PR_BRAM的配置信息修改为第二个算法所需要的,同时控制TPG模块产生第二个算法的测试序列,开始第二个算法的测试,以此类推。
3.一种基于权利要求1所述测试系统的FPGA内嵌BRAM核的测试方法,其特征在于,具体步骤为:
首先进行第一个算法的测试,将TPG模块中第一个算法产生的测试序列传输到BUF模块中,经由BUF模块的缓冲功能传输到部分重配置的PR_BRAM模块中,测试序列输入到PR_BRAM模块之后,对待测BRAM进行相应的读写操作,然后读出数据;将读出的数据传输到输出BUF模块中,经过BUF模块的缓冲作用,将读出的数据传送到ORA模块中,与正确值进行比较;如果出现与正确值不一致的情况,则报出错误,否则不报错,直至所有的读出数据均比较完毕,该算法执行完毕;
算法执行完毕后,相关信号直接控制片内重配置控制模块从位流存储模块中读出部分重配置位流以实现部分重配置,将部分重配置模块PR_BRAM的配置信息修改为第二个算法所需要的,同时控制TPG模块产生第二个算法的测试序列,开始第二个算法的测试,以此类推。
4.根据权利要求3所述的FPGA内嵌BRAM核的测试方法,其特征在于:
一是改进测试算法,即利用March SS算法覆盖SRAM故障,设计初始化测试算法覆盖BRAM初始化功能故障,以提升测试的故障覆盖率;
二是利用FPGA内嵌配置接口进行片内部分重配置,将所有测试算法集成在同一个测试配置里,以降低测试的完整配置数,从而降低测试时间;并将部分重配置位流存储在片内,以提高测试的灵活性。
5.根据权利要求4所述的FPGA内嵌BRAM核的测试方法,其特征在于:
所述初始化测试算法的步骤为,在配置时给每块BRAM初始化一定的数据,并且给每块BRAM写入的数据一致,在程序执行时依次将所有BRAM中的数据按地址读出,数据读出后进行相互比较并与正确值进行比较,看是否存在故障,直至所有地址的数据均比较完毕;一旦检测到某个BRAM读出的数据与正确结果不一致,则说明该BRAM初始化功能存在故障。
6.根据权利要求4所述的FPGA内嵌BRAM核的测试方法,其特征在于:
所述降低测试时间的具体步骤为,提取出测试BRAM的所有测试算法实现电路中可通用的模块,并将这些模块置为静态模块,其余模块设计为部分重配置模块;切换不同的测试算法只需重新配置部分重配置模块的位流,即可大幅降低配置时间,从而降低测试时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610401905.9A CN106098104B (zh) | 2016-06-11 | 2016-06-11 | Fpga芯片内嵌bram核的测试系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610401905.9A CN106098104B (zh) | 2016-06-11 | 2016-06-11 | Fpga芯片内嵌bram核的测试系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106098104A true CN106098104A (zh) | 2016-11-09 |
CN106098104B CN106098104B (zh) | 2019-07-05 |
Family
ID=57228852
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610401905.9A Active CN106098104B (zh) | 2016-06-11 | 2016-06-11 | Fpga芯片内嵌bram核的测试系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106098104B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108172259A (zh) * | 2017-12-13 | 2018-06-15 | 天津津航计算技术研究所 | 基于bist的板载fpga中ram资源遍历测试定位方法 |
CN109086537A (zh) * | 2018-08-13 | 2018-12-25 | 吉林大学 | 基于fpga的粒子群算法加速方法 |
CN109376049A (zh) * | 2018-12-27 | 2019-02-22 | 南京胜跃新材料科技有限公司 | 一种fpga嵌入式块存储器的性能测试方法 |
CN109801665A (zh) * | 2018-12-14 | 2019-05-24 | 深圳市紫光同创电子有限公司 | Sram自测试系统、架构及方法、存储介质 |
CN111312323A (zh) * | 2020-03-11 | 2020-06-19 | 展讯通信(上海)有限公司 | Sram时序测试电路、方法和存储器 |
CN115543908A (zh) * | 2022-11-28 | 2022-12-30 | 成都航天通信设备有限责任公司 | 基于FPGA的Aurora总线数据交互系统及方法 |
CN117312185A (zh) * | 2023-10-17 | 2023-12-29 | 苏州异格技术有限公司 | 一种fpga内存储融合方法、装置及fpga内存系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6003150A (en) * | 1996-02-02 | 1999-12-14 | Lucent Technologies Inc. | Method for testing field programmable gate arrays |
CN101770812A (zh) * | 2008-12-31 | 2010-07-07 | 中国航空工业第一集团公司第六三一研究所 | 一种存储器在板测试方法 |
CN202049755U (zh) * | 2011-05-11 | 2011-11-23 | 京微雅格(北京)科技有限公司 | 一种可编程器件 |
CN103677916A (zh) * | 2013-12-10 | 2014-03-26 | 中国航空工业集团公司第六三一研究所 | 一种基于fpga的在线重配置系统及方法 |
-
2016
- 2016-06-11 CN CN201610401905.9A patent/CN106098104B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6003150A (en) * | 1996-02-02 | 1999-12-14 | Lucent Technologies Inc. | Method for testing field programmable gate arrays |
CN101770812A (zh) * | 2008-12-31 | 2010-07-07 | 中国航空工业第一集团公司第六三一研究所 | 一种存储器在板测试方法 |
CN202049755U (zh) * | 2011-05-11 | 2011-11-23 | 京微雅格(北京)科技有限公司 | 一种可编程器件 |
CN103677916A (zh) * | 2013-12-10 | 2014-03-26 | 中国航空工业集团公司第六三一研究所 | 一种基于fpga的在线重配置系统及方法 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108172259A (zh) * | 2017-12-13 | 2018-06-15 | 天津津航计算技术研究所 | 基于bist的板载fpga中ram资源遍历测试定位方法 |
CN109086537A (zh) * | 2018-08-13 | 2018-12-25 | 吉林大学 | 基于fpga的粒子群算法加速方法 |
CN109086537B (zh) * | 2018-08-13 | 2023-05-05 | 吉林大学 | 基于fpga的粒子群算法加速方法 |
CN109801665A (zh) * | 2018-12-14 | 2019-05-24 | 深圳市紫光同创电子有限公司 | Sram自测试系统、架构及方法、存储介质 |
CN109801665B (zh) * | 2018-12-14 | 2021-05-11 | 深圳市紫光同创电子有限公司 | Sram自测试系统、架构及方法、存储介质 |
CN109376049A (zh) * | 2018-12-27 | 2019-02-22 | 南京胜跃新材料科技有限公司 | 一种fpga嵌入式块存储器的性能测试方法 |
CN109376049B (zh) * | 2018-12-27 | 2022-04-01 | 山东泉景胜跃信息技术有限公司 | 一种fpga嵌入式块存储器的性能测试方法 |
CN111312323A (zh) * | 2020-03-11 | 2020-06-19 | 展讯通信(上海)有限公司 | Sram时序测试电路、方法和存储器 |
CN115543908A (zh) * | 2022-11-28 | 2022-12-30 | 成都航天通信设备有限责任公司 | 基于FPGA的Aurora总线数据交互系统及方法 |
CN117312185A (zh) * | 2023-10-17 | 2023-12-29 | 苏州异格技术有限公司 | 一种fpga内存储融合方法、装置及fpga内存系统 |
CN117312185B (zh) * | 2023-10-17 | 2024-04-09 | 苏州异格技术有限公司 | 一种fpga内存储融合方法、装置及fpga内存系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106098104B (zh) | 2019-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106098104B (zh) | Fpga芯片内嵌bram核的测试系统及方法 | |
Cheng et al. | Fault emulation: A new methodology for fault grading | |
Murray et al. | Titan: Enabling large and complex benchmarks in academic cad | |
CN109858195A (zh) | 一种sram型fpga上必要位单粒子翻转故障的在线仿真系统 | |
US7743352B2 (en) | Computer implemented method of high-level synthesis for the efficient verification of computer software | |
US10289093B1 (en) | Runtime adaptive generator circuit | |
US8686753B1 (en) | Partial reconfiguration and in-system debugging | |
Attia et al. | StateMover: Combining simulation and hardware execution for efficient FPGA debugging | |
Legat et al. | Automated SEU fault emulation using partial FPGA reconfiguration | |
US8265918B1 (en) | Simulation and emulation of a circuit design | |
US8010918B2 (en) | Method for creating HDL description files of digital systems, and systems obtained | |
Hung et al. | Limitations of incremental signal-tracing for fpga debug | |
US9792395B1 (en) | Memory utilization in a circuit design | |
Bozzoli et al. | COMET: a configuration memory tool to analyze, visualize and manipulate FPGAs bitstream | |
Sridhar et al. | Built-in self-repair (BISR) technique widely Used to repair embedded random access memories (RAMs) | |
Chung et al. | A built-in repair analyzer with optimal repair rate for word-oriented memories | |
US9672094B1 (en) | Interconnect circuitry fault detection | |
Lu et al. | C-testable design techniques for iterative logic arrays | |
Remmers et al. | Hierarchical DFT methodology-a case study | |
Emmert et al. | A fault tolerant technique for FPGAs | |
Paulsson et al. | Exploitation of the external jtag interface for internally controlled configuration readback and self-reconfiguration of spartan 3 fpgas | |
Cheng | Comprehensive study on designing memory BIST: algorithms, implementations and trade-offs | |
Rossmeissl et al. | Partial bitstream 2-d core relocation for reconfigurable architectures | |
Xiang et al. | Parameterized design and formal verification of multi-ported memory | |
US11983478B2 (en) | Selection of full or incremental implementation flows in processing circuit designs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |