一种FPGA芯片中存储元件的检测电路及检测方法与流程

文档序号:13139407阅读:1536来源:国知局
一种FPGA芯片中存储元件的检测电路及检测方法与流程

本发明涉及集成电路芯片测试领域,更具体地,涉及sram型fpga芯片中存储元件的检测电路及检测方法。



背景技术:

fpga(field-programmablegatearray),即现场可编程门阵列,它是在pal、gal、cpld等可编程器件的基础上进一步发展的产物。

xilinx7系列fpga包括artix-7、kentix-7与virtex-7三个子类,三类器件的可配置逻辑块(clb)结构相同,如图1所示。每个clb由2个切片(slice)组成,每个切片具有唯一的物理位置编号(如x0y0,x2y1)。

存储元件(storageelement)是fpgaslice中实现可编程时序逻辑的功能模块,是进行同步设计、建立流水线结构、提升fpga内部逻辑运行速度的关键单元。7系列fpga在每个slice中集成了8个可编程的单bit存储元件,按功能可以将其分为两组,每组4个,其中一组可以实现触发器与锁存器的功能(称为ff组),另一组只能实现触发器功能(称为5ff组),具体原语及功能见表1:

表1

现有关于存储元件的检测方法及优缺点如下:

现有关于存储元件的检测方法都是对xilinx早期virtex、virtex-ii等型号存储元件的检测方法,由于virtex-7系列的clbslice的结构发生了较大改进,早期virtex、virtex-ii使用的检测电路与检测方法对于virtex-7并不适用,目前尚没有一种对virtex-7fpga存储元件的触发器与锁存器功能进行检测、并对检测到的故障进行定位的方法。



技术实现要素:

本发明提供一种克服上述问题或者至少部分地解决上述问题的fpga芯片中存储元件的检测电路及检测方法。

第一方面,本发明提供一种fpga芯片中存储元件的检测电路,包括:

至少一个切片,每个切片包括多个连接通道,每个所述连接通道包括依次连接的一个第一存储元件、一个查找表和一个第二存储元件,每个所述连接通道的第二存储元件连接下一个连接通道的第一存储元件,每个所述第一存储元件和所述第二存储元件还具有用于接收时钟信号的时钟信号输入端;

所述第一存储元件和第二存储元件,用于在接收到第一时钟信号时,接收并存储第一检测信号,在接收到第二时钟信号时,接收存储第一参考信号,并输出第一检测结果,以根据所述第一检测结果确定所述第一存储元件和第二存储元件是否可存储所述第一检测信号;

所述第一参考信号与所述第一检测信号为不同的信号;

所述查找表,用于将所述第一存储元件输出的第一检测信号和第一参考信号译码后输出给所述第二存储元件。

优选的,所述第一存储元件和所述第二存储元件还具有用于接收异步复位信号、异步置位信号、同步复位信号或同步置位信号的第一功能信号输入端;

相应地,所述第一存储元件和所述第二存储元件,还用于:接收异步复位信号、异步置位信号、同步复位信号或同步置位信号,并在所述异步复位信号、异步置位信号、同步复位信号或同步置位信号生效后,生成并存储第一异步复位初始信号、第一异步置位初始信号、第一同步复位初始信号或第一同步置位初始信号;接收第三时钟信号,并在接收到第三时钟信号时,接收存储第二参考信号,并输出第二检测结果,以根据所述第二检测结果确定所述第一存储元件和所述第二存储元件是否异步复位、异步置位、同步复位或同步置位;

所述查找表,还用于将所述第一存储元件输出的所述第一异步复位初始信号、第一异步置位初始信号、第一同步复位初始信号或第一同步置位初始信号以及第二参考信号,译码后输出给所述第二存储元件;

所述第一异步复位初始信号、第一异步置位初始信号、第一同步复位初始信号或第一同步置位初始信号均为与所述第一参考信号不同的信号,所述第一异步复位初始信号、第一异步置位初始信号、第一同步复位初始信号或第一同步置位初始信号均为所述第二参考信号不同的信号。

第二方面,本发明还提供一种fpga芯片中存储元件的检测电路,包括:多个可配置逻辑块,每个所述可配置逻辑块包含两个切片,其中一个切片为被测电路,另一个切片为检测电路,所述被测电路包括多个待测的第三存储元件,所述检测电路包括多个连接通道,每个所述连接通道包括相互连接的查找表和第四存储元件,每个连接通道的第四存储元件连接下一个连接通道的查找表的第一信号输入端,每个所述第三存储元件连接一个所述查找表的第二信号输入端,所述查找表配置为选择器,每个所述第四存储元件还具有用于接收时钟信号的时钟信号输入端;

所述第三存储元件,用于接收存储第二检测信号,并将所述第二检测信号输出给所述查找表;

所述查找表,用于接收所述第二检测信号和第三参考信号,并将所述第二检测信号和所述第三参考信号输出给所述第四存储元件;

所述第四存储元件,用于在接收到所述第四时钟信号时,接收并存储所述第二检测信号,在接收到第五时钟信号时,接收并存储所述第三参考信号,并输出第三检测结果,以根据所述第三检测结果确定所述第一存储元件是否可存储所述第二检测信号;

所述第三参考信号与所述第二检测信号为不同的信号。

优选的,所述第三存储元件还具有用于接收异步复位信号或异步置位信号的第二功能信号输入端;

相应地,所述第三存储元件,还用于接收并存储第三检测信号;接收异步复位信号或异步置位信号,并在所述异步复位信号或所述异步置位信号生效后,生成并存储第二异步复位初始信号或第二异步置位初始信号,并将所述第二异步复位初始信号或第二异步置位初始信号输出给所述查找表;

所述查找表,还用于接收所述第二异步复位初始信号或第二异步置位初始信号,并将所述第二异步复位初始信号或第二异步置位初始信号输出给所述第四存储元件;接收第四参考信号,并将所述第四参考信号传输给所述第四存储元件;

所述第四存储元件,还用于在接收到第六时钟信号时,接收并存储所述第二异步复位初始信号或第二异步置位初始信号,在接收到第七时钟信号时,接收存储所述第四参考信号,并输出第四检测结果,以根据所述第四检测结果确定所述第三存储元件是否异步复位或异步置位;

其中,所述第三检测信号与所述第二异步复位初始信号或第二异步置位初始信号不同,所述第三参考信号和所述第四参考信号均与所述第二异步复位初始信号或第二异步置位初始信号不同。

第三方面,本发明还提供一种fpga芯片中存储元件的检测方法,包括:

第一存储元件和第二存储元件在接收到第一时钟信号时,接收并存储第一检测信号;

所述第一存储元件和第二存储元件在接收到第二时钟信号时,接收存储第一参考信号,并输出第一检测结果,以根据所述第一检测结果确定所述第一存储元件和第二存储元件是否可存储所述第一检测信号;

所述第一参考信号与所述第一检测信号为不同的信号;

查找表接收所述第一检测信号和所述第一参考信号,译码后输出给所述第二存储元件。

优选的,所述方法还包括:

所述第一存储单元和所述第二存储单元接收异步复位信号、异步置位信号、同步复位信号或同步置位信号,并在所述异步复位信号、异步置位信号、同步复位信号或同步置位信号生效后,生成并存储第一异步复位初始信号、第一异步置位初始信号、第一同步复位初始信号或第一同步置位初始信号;接收第三时钟信号,并在接收到第三时钟信号时,接收存储第二参考信号,并输出第二检测结果,以根据所述第二检测结果确定所述第一存储元件和所述第二存储元件是否异步复位、异步置位、同步复位或同步置位;

所述查找表接收所述第一存储元件输出的所述第一异步复位初始信号、第一异步置位初始信号、第一同步复位初始信号或第一同步置位初始信号以及第二参考信号,译码后输出给所述第二存储元件;

所述第一异步复位初始信号、第一异步置位初始信号、第一同步复位初始信号或第一同步置位初始信号均为与所述第一参考信号不同的信号,所述第一异步复位初始信号、第一异步置位初始信号、第一同步复位初始信号或第一同步置位初始信号均为所述第二参考信号不同的信号。

第四方面,本发明还提供一种fpga芯片中存储元件的检测方法,包括:

第三存储元件接收存储第二检测信号,并将所述第二检测信号输出给查找表;

所述查找表接收所述第二检测信号和第三参考信号,并将所述第二检测信号和所述第三参考信号输出给第四存储元件;

所述第四存储元件在接收到所述第四时钟信号时,接收并存储所述第二检测信号,在接收到第五时钟信号时,接收并存储所述第三参考信号,并输出第三检测结果,以根据所述第三检测结果确定所述第一存储元件是否可存储所述第二检测信号;

所述第三参考信号与所述第二检测信号为不同的信号。

优选的,所述方法还包括:

所述第三存储元件接收并存储第三检测信号;

所述第三存储元件接收异步复位信号或异步置位信号,并在所述异步复位信号或所述异步置位信号生效后,生成并存储第二异步复位初始信号或第二异步置位初始信号,并将所述第二异步复位初始信号或第二异步置位初始信号输出给所述查找表;

所述查找表接收所述第二异步复位初始信号或第二异步置位初始信号,并将所述第二异步复位初始信号或第二异步置位初始信号输出给所述第四存储元件;

所述第四存储元件在接收到第六时钟信号时,接收并存储所述第二异步复位初始信号或第二异步置位初始信号;

所述查找表接收第四参考信号,并将所述第四参考信号传输给所述第四存储元件;

所述第四存储元件在接收到第七时钟信号时,接收存储所述第四参考信号,并输出第四检测结果,以根据所述第四检测结果确定所述第三存储元件是否异步复位或异步置位;

其中,所述第三检测信号与所述第二异步复位初始信号或第二异步置位初始信号不同,所述第三参考信号和所述第四参考信号均与所述第二异步复位初始信号或第二异步置位初始信号不同。

由上述技术方案可知,本发明利用将多个用于测试的存储元件串联成链的方式,先将检测信号存储到待测的存储元件中,再将检测信号存储到用于测试的存储元件中,用于测试的存储元件再接收存储参考信号,输出检测结果,若检测结果中均为检测信号,则确定待测的存储元件可以存储检测信号,确认该待测的存储元件没有故障,反之,若检测结果中包括参考信号,则确定对应的待测的存储元件并未存储进检测信号,而根据错误信号出现的位置就可以定位到故障的待测存储元件编号。

附图说明

图1为现有技术中fpga中可配置逻辑块的示意图;

图2为本发明一实施例的fpga芯片中存储元件的检测电路的结构示意图;

图3为本发明另一实施例的fpga芯片中存储元件的检测电路的结构示意图。

具体实施方式

下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。

本发明检测电路包括fdce检测电路、fdpe检测电路、fdre检测电路、fdse检测电路、ldce检测电路和ldpe检测电路,其中,fdce检测电路、fdpe检测电路、fdre检测电路、fdse检测电路基本相同,差别仅在于所使用的存储元件电路原语的一个控制引脚的定义不同(分别对应异步复位clr、异步置位pre、同步复位r、同步置位s),如图2所示,统称为“触发器功能检测电路”。

本发明中的fpga芯片包括多个可配置逻辑块clb,每个clb包含两个切片slice,每个slice构成一个fdce、fdpe、fdre、fdse功能检测电路最小单元。

图2为本发明一实施例提供的fpga芯片中存储元件的检测电路的结构示意图。

如图2所示的一种fpga芯片中存储元件的检测电路,包括:

至少一个切片,每个切片包括多个连接通道,每个所述连接通道包括依次连接的一个第一存储元件、一个查找表和一个第二存储元件,每个所述连接通道的第二存储元件连接下一个连接通道的第一存储元件,每个所述第一存储元件和所述第二存储元件还具有用于接收时钟信号的时钟信号输入端;

所述第一存储元件和第二存储元件,用于在接收到第一时钟信号时,接收并存储第一检测信号,在接收到第二时钟信号时,接收存储第一参考信号,并输出第一检测结果,以根据所述第一检测结果确定所述第一存储元件和第二存储元件是否可存储所述第一检测信号;

所述第一参考信号与所述第一检测信号为不同的信号;

所述查找表,用于将所述第一存储元件输出的第一检测信号和第一参考信号译码后输出给所述第二存储元件。

作为一种优选实施例,所述第一存储元件和所述第二存储元件还具有用于接收异步复位信号、异步置位信号、同步复位信号或同步置位信号的第一功能信号输入端;

相应地,所述第一存储元件和所述第二存储元件,还用于:接收异步复位信号、异步置位信号、同步复位信号或同步置位信号,并在所述异步复位信号、异步置位信号、同步复位信号或同步置位信号生效后,生成并存储第一异步复位初始信号、第一异步置位初始信号、第一同步复位初始信号或第一同步置位初始信号;接收第三时钟信号,并在接收到第三时钟信号时,接收存储第二参考信号,并输出第二检测结果,以根据所述第二检测结果确定所述第一存储元件和所述第二存储元件是否异步复位、异步置位、同步复位或同步置位;

所述查找表,还用于将所述第一存储元件输出的所述第一异步复位初始信号、第一异步置位初始信号、第一同步复位初始信号或第一同步置位初始信号以及第二参考信号,译码后输出给所述第二存储元件;

所述第一异步复位初始信号、第一异步置位初始信号、第一同步复位初始信号或第一同步置位初始信号均为与所述第一参考信号不同的信号,所述第一异步复位初始信号、第一异步置位初始信号、第一同步复位初始信号或第一同步置位初始信号均为所述第二参考信号不同的信号。

可以理解的是,第一存储元件和第二存储元件均为触发器,即上述检测电路为对存储元件的触发器功能进行检测的电路。

图2中显示的为一个切片中的检测电路的结构,其中,包括4个第一存储元件、4个查找表和4个第二存储元件,其中,4个第一存储元件分别为5ffd、5ffc、5ffb和5ffa,4个查找表分别为lutd、lutc、lutb和luta,4个第二存储元件分别为ffd、ffc、ffb和ffa,共构成4个连接通道,分别为第一连接通道、第二连接通道、第三连接通道和第四连接通道,其中,第一连接通道包括:5ffd、lutd和ffd;第二连接通道包括:5ffc、lutc和ffc;第三连接通道包括:5ffb、lutb和ffb;第四连接通道包括:5ffa、luta和ffa;5ffd的输入数据由外部信号d给出,5ffd的数据输出端口连到lutd的a[0]地址输入da[0]上,lutd的数据输出端口od连到ffd的数据输入端口,ffd的数据输出端口连到5ffc的数据输入端口,依次类推,最终ffa的数据输出端口连到外部信号q上。

八个存储元件(4个第一存储元件和4个第二存储元件)均设置为fdce功能,有clr、clk和ce控制引脚连接八个存储元件的时钟信号输入端,且八个存储元件的时钟信号clk、使能信号ce、复位信号clr由统一的外部信号提供,每个查找表均为6输入查找表,存储的数据均为64’h0000_0000_0000_0001,每个查找表的a[5:1]地址由外部信号统一提供。

对于多个图2所示的检测电路,需要将前一级检测电路的q连接到下一级检测电路的d上,依次串联成链,最多可级联fpga内部全部切片slice。

在图2所示的具体实施例中,lutd先接收5ffd输出的第一检测信号或第一参考信号,译码后将第一检测信号或第一参考信号输出给ffd,ffd接收存储后输出给5ffc,5ffc接收存储第一检测信号或第一参考信号后输出给lutc,lutc接收第一检测信号或第一参考信号,译码后输出给ffc,ffc接收存储第一检测信号或第一参考信号后输出给5ffb,5ffb接收存储第一检测信号或第一参考信号后输出给lutb,lutb接收第一检测信号或第一参考信号,译码后输出给ffb,ffb接收存储第一检测信号或第一参考信号后输出给5ffa,5ffa接收存储第一检测信号或第一参考信号后输出给luta,luta接收第一检测信号或第一参考信号,译码后输出给ffa,ffa接收存储第一检测信号或第一参考信号后从q端口输出。

值得说明的是,需要先设定好存储元件的位置,即确定每个存储元件的编号所对应的位置。

采用上述的检测电路可对存储元件的fdce、fdpe、fdre和fdse功能的检测。

一种fpga芯片中存储元件的检测方法,包括:

第一存储元件和第二存储元件在接收到第一时钟信号时,接收并存储第一检测信号;

所述第一存储元件和第二存储元件在接收到第二时钟信号时,接收存储第一参考信号,并输出第一检测结果,以根据所述第一检测结果确定所述第一存储元件和第二存储元件是否可存储所述第一检测信号;

所述第一参考信号与所述第一检测信号为不同的信号;

查找表接收所述第一检测信号和所述第一参考信号,译码后输出给所述第二存储元件。

作为一种优选实施例,所述方法还包括:

所述第一存储单元和所述第二存储单元接收异步复位信号、异步置位信号、同步复位信号或同步置位信号,并在所述异步复位信号、异步置位信号、同步复位信号或同步置位信号生效后,生成并存储第一异步复位初始信号、第一异步置位初始信号、第一同步复位初始信号或第一同步置位初始信号;接收第三时钟信号,并在接收到第三时钟信号时,接收存储第二参考信号,并输出第二检测结果,以根据所述第二检测结果确定所述第一存储元件和所述第二存储元件是否异步复位、异步置位、同步复位或同步置位;

所述查找表接收所述第一存储元件输出的所述第一异步复位初始信号、第一异步置位初始信号、第一同步复位初始信号或第一同步置位初始信号以及第二参考信号,译码后输出给所述第二存储元件;

所述第一异步复位初始信号、第一异步置位初始信号、第一同步复位初始信号或第一同步置位初始信号均为与所述第一参考信号不同的信号,所述第一异步复位初始信号、第一异步置位初始信号、第一同步复位初始信号或第一同步置位初始信号均为所述第二参考信号不同的信号。

下面提供fdce、fdpe、fdre和fdse的具体检测方法。

(1)fdce检测方法

1)设置a[5:1]=5’b0,d=1,ce=1,clr=0;

2)通过clk端口连续给出8n(n为切片数量)个时钟信号;

3)设置d=0,通过clk端口连续给出8n个时钟信号,同时从最后一个切片中的检测电路的q端口读出8n个数据,若数据为全1则功能正常,如过程中读出0,则根据0出现的位置可以定位到故障的存储元件编号;

4)设置d=1,通过clk端口连续给出8n个时钟信号,同时从最后一个切片的检测电路的q端口读出8n个数据,若数据为全0则功能正常,如过程中读出1,则根据1出现的位置可以定位到故障的存储元件编号;

5)设置clr=1,一个时钟周期后设置clr=0,过程中clk端口不施加时钟信号;

6)通过clk端口连续给出8n个时钟信号,同时从最后一个切片的检测电路的q端口读出8n个数据,若数据为全0则功能正常,如过程中读出1,则根据1出现的位置可以定位到故障的存储元件编号。

(2)fdpe检测方法

1)设置a[5:1]=5’b0,d=0,ce=1,pre=0;

2)通过clk端口连续给出8n(n为检测电路数量)个时钟信号;

3)设置d=1,通过clk端口连续给出8n个时钟信号,同时从最后一个检测电路的q端口读出8n个数据,若数据为全0则功能正常,如过程中读出1,则根据1出现的位置可以定位到故障的存储元件编号;

4)设置d=0,通过clk端口连续给出8n个时钟信号,同时从最后一个检测电路的q端口读出8n个数据,若数据为全1则功能正常,如过程中读出0,则根据1出现的位置可以定位到故障的存储元件编号;

5)设置pre=1,一个时钟周期后设置pre=0,过程中clk端口不施加时钟信号;

6)通过clk端口连续给出8n个时钟信号,同时从最后一个检测电路的q端口读出8n个数据,若数据为全1则功能正常,如过程中读出0,则根据0出现的位置可以定位到故障的存储元件编号;

(3)fdre检测方法

1)设置a[5:1]=5’b0,d=1,ce=1,r=0;

2)通过clk端口连续给出8n(n为检测电路数量)个时钟信号;

3)设置d=0,通过clk端口连续给出8n个时钟信号,同时从最后一个检测电路的q端口读出8n个数据,若数据为全1则功能正常,如过程中读出0,则根据0出现的位置可以定位到故障的存储元件编号;

4)设置d=1,通过clk端口连续给出8n个时钟信号,同时从最后一个检测电路的q端口读出8n个数据,若数据为全0则功能正常,如过程中读出1,则根据1出现的位置可以定位到故障的存储元件编号;

5)设置r=1,通过clk端口给出1个时钟信号;

6)设置r=0,通过clk端口连续给出8n个时钟信号,同时从最后一个检测电路的q端口读出8n个数据,若数据为全0则功能正常,如过程中读出1,则根据1出现的位置可以定位到故障的存储元件编号;

(4)fdse检测方法

1)设置a[5:1]=5’b0,d=0,ce=1,s=0;

2)通过clk端口连续给出8n(n为检测电路数量)个时钟信号;

3)设置d=1,通过clk端口连续给出8n个时钟信号,同时从最后一个检测电路的q端口读出8n个数据,若数据为全0则功能正常,如过程中读出1,则根据1出现的位置可以定位到故障的存储元件编号;

4)设置d=0,通过clk端口连续给出8n个时钟信号,同时从最后一个检测电路的q端口读出8n个数据,若数据为全1则功能正常,如过程中读出0,则根据0出现的位置可以定位到故障的存储元件编号;

5)设置s=1,通过clk端口给出1个时钟信号;

6)设置s=0,通过clk端口连续给出8n个时钟信号,同时从最后一个检测电路的q端口读出8n个数据,若数据为全1则功能正常,如过程中读出0,则根据0出现的位置可以定位到故障的存储元件编号。

值得说明的是,给出时钟信号是可以保证在时钟信号的上升沿到来时,第一存储元件和第二存储元件将加在该存储元件输入端口的数据存进该存储元件的存储区,且输出存储的数据。

本发明利用将多个存储元件串联成链的方式,先将第一检测信号存储到存储元件中,再接收存储第一参考信号,输出第一检测结果,若第一检测结果中均为第一检测信号,则确定存储元件可以存储第一检测信号,确认该存储元件没有故障,反之,若第一检测结果中包括第一参考信号,则确定对应的存储元件并未存储进第一检测信号,而根据错误信号出现的位置就可以定位到故障的存储元件编号。

本发明检测电路还包括ldce检测电路”与“ldpe检测电路”,其中,ldce检测电路”与“ldpe检测电路的结构也基本相同,差别也在于所使用的存储元件电路原语有一个控制引脚的定义不同(分别对应异步复位r与异步置位s),如图3所示,统称为“锁存器功能检测电路”。

图3为本发明一实施例提供的fpga芯片中存储元件的检测电路的结构示意图。

如图3所示一种fpga芯片中存储元件的检测电路,包括:多个可配置逻辑块,每个所述可配置逻辑块包含两个切片,其中一个切片为被测电路,另一个切片为检测电路,所述被测电路包括多个待测的第三存储元件,所述检测电路包括多个连接通道,每个所述连接通道包括相互连接的查找表和第四存储元件,每个连接通道的第四存储元件连接下一个连接通道的查找表的第一信号输入端,每个所述第三存储元件连接一个所述查找表的第二信号输入端,所述查找表配置为选择器,每个所述第四存储元件还具有用于接收时钟信号的时钟信号输入端;

所述第三存储元件,用于接收存储第二检测信号,并将所述第二检测信号输出给所述查找表;

所述查找表,用于接收所述第二检测信号和第三参考信号,并将所述第二检测信号和所述第三参考信号输出给所述第四存储元件;

所述第四存储元件,用于在接收到所述第四时钟信号时,接收并存储所述第二检测信号,在接收到第五时钟信号时,接收并存储所述第三参考信号,并输出第三检测结果,以根据所述第三检测结果确定所述第一存储元件是否可存储所述第二检测信号;

所述第三参考信号与所述第二检测信号为不同的信号。

作为一种优选实施例,所述第三存储元件还具有用于接收异步复位信号或异步置位信号的第二功能信号输入端;

相应地,所述第三存储元件,还用于接收并存储第三检测信号;接收异步复位信号或异步置位信号,并在所述异步复位信号或所述异步置位信号生效后,生成并存储第二异步复位初始信号或第二异步置位初始信号,并将所述第二异步复位初始信号或第二异步置位初始信号输出给所述查找表;

所述查找表,还用于接收所述第二异步复位初始信号或第二异步置位初始信号,并将所述第二异步复位初始信号或第二异步置位初始信号输出给所述第四存储元件;接收第四参考信号,并将所述第四参考信号传输给所述第四存储元件;

所述第四存储元件,还用于在接收到第六时钟信号时,接收并存储所述第二异步复位初始信号或第二异步置位初始信号,在接收到第七时钟信号时,接收存储所述第四参考信号,并输出第四检测结果,以根据所述第四检测结果确定所述第三存储元件是否异步复位或异步置位;

其中,所述第三检测信号与所述第二异步复位初始信号或第二异步置位初始信号不同,所述第三参考信号和所述第四参考信号均与所述第二异步复位初始信号或第二异步置位初始信号不同。

可以理解的是,第三存储元件为待测的锁存器,第四存储元件为触发器,即上述检测电路为对存储元件的锁存器功能进行检测的电路。

图3中显示的为一个被测电路和一个检测电路的结构,其中,包括4个第三存储元件为锁存器,分别为latd、latc、latb和lata,均设置为ldce或ldpe功能,每个锁存器的d、g、ge和clr都由外部信号统一给出,4个锁存器的输出分别为lqa、lqb、lqc和lqd。

检测电路中包括4个2选1的选择器(查找表)和4个触发器(第四存储元件),按照对应的位置将4个2选1的选择器分别命名为muxd、muxc、muxb和muxa,4个触发器分别为ffd、ffc、ffb和ffa。其中选择器由该slice中的查找表实现,触发器由同一slice中的存储元件实现。选择器的通道选择信号srl_sel和触发器的时钟信号fclk、时钟使能fce和复位fclr由外部统一提供,全部触发器的fce固定为1(始终使能),fclr固定为0(不复位)。

上述检测电路中共包括4个连接通道,分别为第五连接通道、第六连接通道、第七连接通道和第八连接通道,其中,第五连接通道包括:latd、muxd和ffd;第六连接通道包括:latc、muxc和ffc;第七连接通道包括:latb、muxb和ffb;第八连接通道包括:lata、muxa和ffa。

每个被测锁存器的输出端口连到对应选择器的1个输入端口上,即lqa连到muxa、lqb连到muxb、lqc连到muxc、lqd连到muxd。

每个选择器的输出连到对应触发器的输入端口上,即muxa连到fda、muxb连到fdb、muxc连到fdc、muxd连到fdd。

每个触发器的输出连到下一级选择器的另一个端口上,即fqd连到muxc、fqc连到muxb、fqb连到muxa,muxd的另一个输入端口由外部输入信号srl_d提供,fqa通过srl_q端口输出到检测电路外部。

当srl_sel输入信号为0时,muxa的输出/输入为lqa、muxb的输出/输入为lqb、muxc的输出/输入为lqc、muxd的输出/输入为lqd;当srl_sel输入信号为1时,muxd的输出/输入为srl_d、muxc的输出/输入为fqd、muxb的输出/输入为fqc、muxa的输出/输入为fqb。

多个图3所示的由clb构成的最小检测模块可以实现级联,不同clb公用相同的d、g、ge、clr、srl_sel、fclk、fce和fclr,前一级模块的srl_q连到下一级单元的srl_d上,最多可级联fpga内部全部clb。

值得说明的是,需要先设定好作为锁存器的位置,即确定每个锁存器的编号所对应的位置。

采用上述的检测电路可对存储元件的ldceh和ldpe功能的检测。

一种fpga芯片中存储元件的检测方法,包括:

第三存储元件接收存储第二检测信号,并将所述第二检测信号输出给查找表;

所述查找表接收所述第二检测信号和第三参考信号,并将所述第二检测信号和所述第三参考信号输出给第四存储元件;

所述第四存储元件在接收到所述第四时钟信号时,接收并存储所述第二检测信号,在接收到第五时钟信号时,接收并存储所述第三参考信号,并输出第三检测结果,以根据所述第三检测结果确定所述第一存储元件是否可存储所述第二检测信号;

所述第三参考信号与所述第二检测信号为不同的信号。

作为一种优选实施例,所述方法还包括:

所述第三存储元件接收并存储第三检测信号;

所述第三存储元件接收异步复位信号或异步置位信号,并在所述异步复位信号或所述异步置位信号生效后,生成并存储第二异步复位初始信号或第二异步置位初始信号,并将所述第二异步复位初始信号或第二异步置位初始信号输出给所述查找表;

所述查找表接收所述第二异步复位初始信号或第二异步置位初始信号,并将所述第二异步复位初始信号或第二异步置位初始信号输出给所述第四存储元件;

所述第四存储元件在接收到第六时钟信号时,接收并存储所述第二异步复位初始信号或第二异步置位初始信号;

所述查找表接收第四参考信号,并将所述第四参考信号传输给所述第四存储元件;

所述第四存储元件在接收到第七时钟信号时,接收存储所述第四参考信号,并输出第四检测结果,以根据所述第四检测结果确定所述第三存储元件是否异步复位或异步置位;

其中,所述第三检测信号与所述第二异步复位初始信号或第二异步置位初始信号不同,所述第三参考信号和所述第四参考信号均与所述第二异步复位初始信号或第二异步置位初始信号不同。

下面提供ldce和ldpe的具体检测方法。

(5)ldce检测方法

1)设置srl_sel=0,d=0,g=1,ge=1,clr=0,通过fclk端口给出一个周期的时钟信号;

2)设置srl_sel=1,srl_d=1,通过fclk端口给出4n(n为clb数量)个周期的时钟信号,同时从最后一级clb的srl_q端口读出4n个数据,若数据全部为0则功能正常,若过程中读出1,则根据1出现的位置可以定位到故障的存储元件编号;

3)设置srl_sel=0,d=1,通过fclk端口给出一个周期的时钟信号;

4)设置srl_sel=1,srl_d=0,通过fclk端口给出4n(n为clb数量)个周期的时钟信号,同时从最后一级clb的srl_q端口读出4n个数据,若数据全部为1则功能正常,若过程中读出0,则根据0出现的位置可以定位到故障的存储元件编号;

5)设置srl_sel=1,srl_d=1通过fclk端口给出4n(n为clb数量)个周期的时钟信号;

6)设置srl_sel=0,d=1,clr=1,通过fclk端口给出一个周期的时钟信号;

7)设置clr=0,srl_sel=1,srl_d=1,通过fclk端口给出4n(n为clb数量)个周期的时钟信号,同时从最后一级clb的srl_q端口读出4n个数据,若数据全部为0则功能正常,若过程中读出1,则根据1出现的位置可以定位到故障的存储元件编号。

(6)ldpe检测方法

1)设置srl_sel=0,d=0,g=1,ge=1,pre=0,通过fclk端口给出一个周期的时钟信号;

2)设置srl_sel=1,srl_d=1,通过fclk端口给出4n(n为clb数量)个周期的时钟信号,同时从最后一级clb的srl_q端口读出4n个数据,若数据全部为0则功能正常,若过程中读出1,则根据1出现的位置可以定位到故障的存储元件编号;

3)设置srl_sel=0,d=1,通过fclk端口给出一个周期的时钟信号;

4)设置srl_sel=1,srl_d=0,通过fclk端口给出4n(n为clb数量)个周期的时钟信号,同时从最后一级clb的srl_q端口读出4n个数据,若数据全部为1则功能正常,若过程中读出0,则根据0出现的位置可以定位到故障的存储元件编号;

5)设置srl_sel=0,d=0,pre=1,通过fclk端口给出一个周期的时钟信号;

6)设置pre=0,srl_sel=1,srl_d=0,通过fclk端口给出4n(n为clb数量)个周期的时钟信号,同时从最后一级clb的srl_q端口读出4n个数据,若数据全部为1则功能正常,若过程中读出0,则根据0出现的位置可以定位到故障的存储元件编号。

值得说明的是,给出时钟信号是可以保证在时钟信号的上升沿到来时,第四存储元件将加在该存储元件输入端口的数据存进该存储元件的存储区,且输出存储的数据。

本发明将多个第四存储元件串联成链的方式,第三存储元件先存储第二检测信号,通过查找表将第二检测信号输出给第四存储元件,第四存储元件再接收查找表输出的第三参考信号,输出第三检测结果,若第三检测结果中均为第二检测信号,则确定第三存储元件可以存储第二检测信号,确认该第三存储元件没有故障,反之,若第三检测结果中包括第三参考信号,则确定对应的第三存储元件并未存储进第二检测信号,而根据错误信号出现的位置就可以定位到故障的存储元件编号。

本发明检测电路和检测方法适用virtex-7fpga的检测。

值得说明的是,上述检测电路和检测方法需要多次配置来覆盖fpga中全部存储元件,当器件规模较大时,为了便于设计的实现,可进行一定的物理分割。

本发明以slice为触发器功能的最小测试单元,以clb为锁存器的最小测试单元,便于在不同型号fpga间进行移植。

本发明的检测电路部分采用流水线结构,具有运行速度快、时序收敛、测试结果稳定等优点。

最后,本申请的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1