专利名称:一种fpga可编程逻辑单元的测试与定位方法
技术领域:
本发明属于集成电路测试技术领域,具体是属于一种FPGA可编程逻辑单元的测试与定位方法。
背景技术:
FPGA (Field-Programmable Gate Array),即现场可编程门阵列,它是在 PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA采用了逻辑单元阵列LCA(Logic Cell Array)的概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连 线(Interconnect)三个部分。FPGA的基本特点1)采用FPGA设计ASIC电路(专用集成电路),用户不需要投片生产,就能得到合用的芯片;2) FPGA可做其它全定制或半定制ASIC电路的中试样片;3) FPGA内部有丰富的触发器和1/0引脚;4) FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一 ;5)FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。因此,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之
O由于FPGA中90 %以上逻辑功能都是由CLB所实现,所以CLB的测试在FPGA测试中占有重要地位。要完成FPGA中所有CLB的测试,需要多次下载不同的配置图形并进行故障扫描。测试可配置功能块最简单的方法是通过编程把每个CLB的输入/输出和FPGA的10连接起来,直接对每个CLB内的逻辑电路进行测试。当然对每个CLB来说,要通过若干次编程才能完成完整测试。要对一个FPGA进行完整的测试,需要对被测FPGA进行反复编程,并对编程实现的电路进行测试。一般来说,测试编程实现的电路所用的时间较短,而对FPGA进行配置/编程则要花费数倍于测试编程实现电路的时间。对CLB进行测试不仅要保证测试的覆盖率,同时也要发现一个FPGA中发生错误的CLB的具体位置,这也是FPGA测试过程中最需关注的问题之一,如果要对FPGA中CLB单元进行全覆盖测试和定位,就必须对一个FPGA中所有CLB单元实现CLB的规则排列。本发明通过分析CLB的特点产生规则布局CLB阵列,在此基础上可以实现FPGA中CLB单元的定位。
发明内容
本发明针对现有的FPGA测试方案中,提出一种具体的测试方法,从而解决以下技术问题(I)减少CLB测试中,编程配置的次数,提高CLB测试的效率;(2)在保证CLB测试覆盖率的前提下,通过产生规则布局的CLB阵列,实现FPGA中CLB单元的定位。实现上述发明目的的技术方案为,一种FPGA可编程逻辑单元的测试与定位方法,该方法包括如下步骤
(I)排列、配置FPGA逻辑单元;具体排列配置方法为将被测FPGA的CLB模块并联布局成多个一维CLB阵列,F-LUT中,所有CLB中的F-LUT和DFF模块配置成为移位串行链,其输入信号是FPGA中所有F-LUT的F1-F3的公共输入端,为并行输入信号;F_LUT的F4为串行输入端口,每行CLB第I个CLB的F4接输入信号端口,其他的CLB单元的F4端口接前一个CLB的DFF输出信号Yl ;每行CLB第I个CLB的cl接该CLB中F-LUT的输出YC,其他的CLB单元的Cl端口接前该CLB的F-LUT输出信号Yc ;每个DFF的elk端并接时钟信号;(2)初始化FPGA单元中的CLB模块;(3)测试定位出错的CLB模块;其步骤为CLB的F4和F1-F3公共输入端输入测试向量,通过时钟信号,把输入的测试向量在CLB间顺序传递,根据输出信号与时钟之间的对应关系,标识并去除出错的CLB,重新循环测试与定位,直至所有的CLB单元完成测试。
(4)采用了简化模型下的测试配置和测试向量。上述步骤⑴中F-LUT模块替换为G-LUT模块时,则对应采用G4为串行输入端口,G1-G3为公共输入端口。构成FPGA的每个CLB由查找表LUT、触发器DFF、编程数据逻辑存储单元和数据选择器相互连接构成,其中查找表LUT和触发器DFF可配置。本发明的技术方案减少了测试CLB过程中的配置次数10倍之多,大大提高CLB测试效率;同时在保证CLB测试覆盖率的前提下,通过产生规则布局的CLB阵列,实现了 FPGA中CLB单元测试过程中的错误定位。
图I是本发明所述FPGA可编程逻辑单元的测试与定位方法流程图;图2是多路选择器MUX的测试配置和测试向量示意图;图3是查找表LUT的测试配置和测试向量示意图;图4a是一个两输入的LUT和一个两输入MUX的配置;图4b是一个两输入的LUT和一个两输入MUX的第二种配置;图4c是一个两输入的LUT和一个两输入MUX的配置第三种配置;图5是FPGA中的CLB的配置结构图。
具体实施例方式为便于本发明技术方案的理解,下面结合具体的实施方式进行介绍,如图I是本发明技术方案的流程图,具体步骤如下(I)排列、配置FPGA逻辑单元;具体排列配置方法为将被测FPGA的CLB模块并联布局成多个一维CLB阵列,以F-LUT为例,所有CLB中的F-LUT和DFF模块配置成为移位串行链,其输入信号是FPGA中所有F-LUT的F1-F3的公共输入端,为并行输入信号;F_LUT的F4为串行输入端口,每行CLB第I个CLB的F4接输入信号端口,其他的CLB单元的F4端口接前一个CLB的DFF输出信号Yl ;每行CLB第I个CLB的Cl接该CLB中F-LUT的输出YC,其他的CLB单元的cl端口接前该CLB的F-LUT输出信号Yc ;每个DFF的elk端并接时钟信号;若上述步骤中LUT模块是G-LUT模块时,则对应采用G4为串行输入端口 ;
(2)初始化FPGA单元中的CLB模块;(3)测试定位出错的CLB模块;其步骤为CLB的F4和F1-F3公共输入端输入测试向量,通过时钟信号,把输入的测试向量在CLB间顺序传递,根据输出信号与时钟之间的对应关系,标识并去除出错的CLB,重新循环测试与定位,直至所有的CLB单元完成测试。上述利用本技术方案测试与定位的FPGA中,每个CLB由查找表LUT、触发器DFF、编程数据逻辑存储单元和数据选择器相互连接构成,其中查找表LUT和触发器DFF可配置。下面结合附图2-5详细描述配置过程的原理,如图2所示,逻辑单元CLB主要由多路选择器MUX、查找表LUT和触发器这三部分组成,其中多路选择器和查找表是可配置的,而触发器是固定的。如图2的A所示为一个简单的MUX,其中DO和Dl是输入数据,A是地址输入信号,O是输出数据,为了完整测试MUX,每一个数据输入端至少要被选中一次,并赋值O、I各一次;要得到MUX完全的测试序列必须依赖于地址输入位,对于η位配置位的MUX,需要2η个测试配置,由于地址输入信号是可配置信号,此MUX有I位地址信号,它能有两种 配置,每种配置施加2个测试向量,如图2中的B和C所示,从这2组测试向量中我们可以归纳出两个适用于每个配置的共同的测试向量。这两个测试向量分别相当于异或XOR和同或XNOR逻辑,如图I中的结果D所示。图3给出一个2输入LUT,从图中可以明显看出2-LUT实质上是一个4-MUX,其中MUX的输入数据可配置,MUX的地址输入信号是LUT的数据输入信号。因此,LUT的测试仍可采用上述多路选择器测试方法,异或XOR和同或XNOR逻辑用于查找表的两个测试配置,而MUX的四个测试配置可用作查找表的四个测试向量,如图3的A和B所不。图4a、图4b和图4c是一个简化模型,图中的模型只包括一个两输入的LUT和一个两输入MUX,在这个模型中包括3个输入位,I个输出位和5个配置位,其中LUT有4个配置位、MUX有I个配置位,如果使用穷举法来进行测试,将有25种不同的配置方式。若利用类似于图2、图3的方法对配置方式进行简化对查找表使用异或XOR和同或XNOR逻辑进行配置,对I个配置位的MUX也仅需使用2个测试配置。由于某些基本器件的测试配置是兼容的,它们可以同时的使用,例如LUT的测试配置如图3的A和MUX的测试配如图2的B相互兼容,它们可以同时使用在图4a和图4b中,所以这4种测试配置可以进一步简化为如图4a、图4b和图4c所示的3种测试配置。在图4c测试配置中,由于LUT的输出没有和输出位相连,为简便起见,LUT的功能可以简单的配置为和它的某一个输入端11/12相等。所以,本发明使用的方法可以减少测试CLB过程中的配置次数仅10倍之多,大大提高CLB测试效率。FPGA芯片没有足够多的I/O端口从外部并行的对每一个CLB输入测试向量,并且并行的将这些结果读出,对每一 CLB单独进行测试在实践中是不太可能的。因此,将CLB连接成一个一维矩阵,矩阵的长度和数目仅受可用I/O端口的限制。例如,将nXn的CLB矩阵分布成η个一维阵列,每个阵列包含有η个CLB。利用这种方案,η个一维的阵列可以并行的进行测试。由η个CLB堆叠构成的一维阵列可以被视为一个重复的电路,每个CLB从上一个CLB接受一个输入,并且为下一个CLB产生一个输出。最左边的输入是可控的输入,最右边的输出的是测试结果。此外,FPGA中的每一个CLB所接受的一系列的可控的基本输入都是公共的。规则布局CLB阵列如图5所示。配置完成后,输入端输入测试向量,通过时钟信号,把输入的测试向量在CLB间顺序传递,当发现输出信号出错时,根据输出信号与时钟之间的对应关系,就能定位第几个CLB出错,最后标示出错CLB并且在串行联接的CLB中去除掉出错CLB和其之后的CLB单元,将输出管脚连接到出错CLB的前一个单元,重新生成配置图形,并进行测试。重复这个过程直到所有的CLB单元都被测试。本发明的方法减少了测试CLB过程中的配置次数仅10倍之多,大大提高CLB测试效率;同时在保证CLB测试覆盖率的前提下,通过产生规则布局的CLB阵列,实现了 FPGA中CLB单元测试过程中的错误定位。以上所述,为本发明的较佳实施案例,并非对本发明作任何限制,凡是根据本发明技术实质对以上实施例所作的任何简单修改、变更以及等效结构变化,均仍属于本发明技术方案的保护范围内。·
权利要求
1.一种FPGA可编程逻辑单元的测试与定位方法,其特征在于,该方法包括如下步骤 (1)排列、配置FPGA逻辑单元;具体排列配置方法为将被测FPGA的CLB模块并联布局成多个一维CLB阵列,所有CLB中的F-LUT和DFF模块配置成为移位串行链,其输入信号是FPGA中所有F-LUT的F1-F3的公共输入端,为并行输入信号;F_LUT的F4为串行输入端口,每行CLB第I个CLB的F4接输入信号端口,其他的CLB单元的F4端口接前一个CLB的DFF输出信号Yl ;每行CLB第I个CLB的cl接该CLB中F-LUT的输出YC,其他的CLB单元的Cl端口接前该CLB的F-LUT输出信号Yc ;每个DFF的elk端并接时钟信号; (2)初始化FPGA单元中的CLB模块; (3)测试定位出错的CLB模块;其步骤为CLB的F4和F1-F3公共输入端输入测试向量,通过时钟信号,把输入的测试向量在CLB间顺序传递,根据输出信号与时钟之间的对应关系以及测试向量方案,标识并去除出错的CLB,重新循环测试与定位,直至所有的CLB单元完成测试。
2.根据权利要求I所述的FPGA可编程逻辑单元的测试与定位方法,其特征在于,步骤(I)中F-LUT模块替换为G-LUT模块时,则对应采用G4为串行输入端口,G1-G3为公共输入端口。
3.根据权利要求I或2所述的FPGA可编程逻辑单元的测试与定位方法,其特征在于,每个CLB由查找表LUT、触发器DFF、编程数据逻辑存储单元和数据选择器相互连接构成,其中查找表LUT和触发器DFF可配置。
全文摘要
本发明公开了一种FPGA可编程逻辑单元的测试与定位方法,该方法包括如下步骤(1)排列、配置FPGA逻辑单元;(2)初始化FPGA单元中的CLB模块;(3)测试定位出错的CLB模块。本发明的技术方案减少了测试CLB过程中的配置次数10倍之多,大大提高CLB测试效率;同时在保证CLB测试覆盖率的前提下,通过产生规则布局的CLB阵列,实现了FPGA中CLB单元测试过程中的错误定位。
文档编号G01R31/3177GK102841306SQ20111020482
公开日2012年12月26日 申请日期2011年7月21日 优先权日2011年7月21日
发明者陈静华, 杨龙, 张东晓 申请人:北京飘石科技有限公司