专利名称:一种检测方法和装置的制作方法
技术领域:
本发明涉及电子技术领域,特别涉及一种检测方法和装置。
背景技术:
随着半导体エ艺的不断进步,FPGA (Field Programmable Gate Array,现场可编程门阵列)芯片线宽越来越细,容量越来越大,失效率也越来越高,所以需要对FPGA进行检測,以便及时发现失效的FPGA芯片。FPGA 主要资源模块包括Block RAM (Block Random Access Memory,随机读写存储器块)资源模块、Distributed RAM (Distributed Random Access Memory,分布式随机 读写存储器)资源模块、CLB (Configurable Logic Block,可配置逻辑块)资源模块、DSP(Digital Signal Processing,数字信号处通器)资源模块、PLL (Phase-Locked Loop,锁相环)资源模块和DCM (Digital Clock Manager,数字时钟管理器)资源模块,所以对FPGA芯片的检测也主要是对上述资源模块的检测,但是由于实际需要使用的功能的不同,毎次对FPGA芯片布局布线时所使用的FPGA资源模块也具有不确定性,所以使得对FPGA各种资源模块的全覆盖测试十分困难。尤其是对CLB资源模块的检测,现有技术中需要加载至少几十个配置文件来完成对CLB资源模块的全覆盖检测,测试效率低,难以达到产量化。
发明内容
为了提高对FPGA芯片的测试效率,本发明实施例提供了一种检测方法和装置。所述技术方案如下第一方面,提供了一种检测方法,所述方法包括现场可编程门阵列FPGA加载第一配置文件,根据所述第一配置文件对随机读写存储器RAM资源模块和可配置逻辑块CLB资源模块的第一部分分别进行测试,得到所述RAM资源模块的测试结果和所述CLB资源模块的第一部分的测试结果;所述FPGA加载第二配置文件,根据所述第二配置文件对所述CLB资源模块的第二部分进行测试,得到所述CLB资源模块的第二部分的测试結果。在第一方面的第一种可能的实施方式中,所述FPGA根据所述第一配置文件对RAM资源模块进行测试,得到所述RAM资源模块的测试结果,包括所述FPGA根据所述第一配置文件将随机读写存储器块Block RAM资源模块和分布式随机读写存储器Distributed RAM资源模块例化成多个预设宽度和预设深度的双端ロRAM,将所述例化得到的所述多个双端ロ RAM作为第一测试模块,并对所述第一测试模块进行测试得到所述RAM资源模块的测试結果。结合第一方面,或是在第一方面的第一种可能的实施方式的第二种可能的实施方式中,所述FPGA根据所述第一配置文件对CLB资源模块的第一部分进行测试,得到所述CLB资源模块的第一部分的测试结果,包括所述FPGA根据所述第一配置文件将CLB资源模块的第一部分配置成被测试模块,其中,所述第一部分包括最后一列Slice_XmaxY0到Slice_XmaxYmax之间所有Slice,所述被测试模块中的每个Slice中的触发器和查找表LUT串联,所述LUT被配置成反向器,所述触发器被配置成带异步清零端的D触发器,并将除所述最后一列Slice_XmaXYO到Slice_XmaxYmax之间的Slice配置成测试向量产生模块和测试结果分析模块,并通过所述测试向量产生模块产生测试向量,将所述测试向量输入到所述被测试模块中进行测试,所述测试结果分析模块获取所述被测模块的测试结果,得到所述CLB资源模块的第一部分的测试结果O结合第一方面,或是在第一方面的第一种可能的实施方式,或是在第一方面的第ー种可能的实施方式的第二种可能的实施方式的第三种可能实施方式中,所述FPGA根据所述第二配置文件对所述CLB资源模块的第二部分进行测试,得到所述CLB资源模块的第ニ部分的测试结果,包括所述FPGA根据所述第二配置文件将所述CLB资源模块中的第二部分配置成被测试模块,其中,所述第二部分包括Slice_X0Y0到Slice_Xmax_lYmax之间所有Slice,所述被测试模块中的每个Slice中的触发器和LUT串联,所述LUT被配置成反向器,所述触发器被配置成带异步清零端的D触发器,并将最后一列Slice_XmaxY0到Slice_XmaxYmax配置成 测试向量产生模块和测试结果分析模块,并通过所述测试向量产生模块产生测试向量,将所述测试向量输入到所述被测试模块中进行测试,所述测试结果分析模块获取所述被测模块的测试结果,得到所述CLB资源模块的第二部分的测试結果。第二方面,提供了一种检测装置,所述装置包括第一检测模块,用于加载第一配置文件,根据所述第一配置文件对随机读写存储器RAM资源模块和可配置逻辑块CLB资源模块的第一部分分别进行测试,得到所述RAM资源模块的测试结果和所述CLB资源模块的第一部分的测试結果;第二检测模块,用于加载第二配置文件,根据所述第二配置文件对所述CLB资源模块的第二部分进行测试,得到所述CLB资源模块的第二部分的测试結果。在第二方面的第一种可能的实施方式中,所述第一检测模块,包括第一例化単元,用于根据所述第一配置文件将随机读写存储器块Block RAM资源模块和分布式随机读写存储器Distributed RAM资源模块例化成多个预设宽度和预设深度的双端ロ RAM,将所述例化得到的所述多个双端ロ RAM作为第一测试模块,并对所述第一测试模块进行测试得到所述RAM资源模块的测试結果。结合第二方面,或是在第二方面的第一种可能的实施方式的第二种可能的实施方式中,所述第一检测模块,包括第二例化単元,用于根据所述第一配置文件将CLB资源模块的第一部分配置成被测试模块,其中,所述第一部分包括最后一列Slice_XmaxY0到Slice_XmaxYmax之间所有Slice,所述被测试模块中的每个Slice中的触发器和查找表LUT串联,所述LUT被配置成反向器,所述触发器被配置成带异步清零端的D触发器,并将除所述最后一列Slice_XmaxYO到Slice_XmaxYmax之间的Slice配置成测试向量产生模块和测试结果分析模块,并通过所述测试向量产生模块产生测试向量,将所述测试向量输入到所述被测试模块中进行测试,所述测试结果分析模块获取所述被测模块的测试结果,得到所述CLB资源模块的第一部分的测试結果。结合第二方面,或是在第二方面的第一种可能的实施方式,或是在第二方面的第ー种可能的实施方式的第二种可能的实施方式的第三种可能实施方式中,所述第二检测模块具体用于根据所述第二配置文件将所述CLB资源模块中的第二部分配置成被测试模块,其中,所述第二部分包括Slice_X0Y0到Slice_Xmax_lYmax之间所有Slice,所述被测试模块中的每个Slice中的触发器和LUT串联,所述LUT被配置成反向器,所述触发器被配置成带异步清零端的D触发器,并将最后一列Slice_XmaxY0到Slice_XmaxYmax配置成测试向量产生模块和测试结果分析模块,并通过所述测试向量产生模块产生测试向量,将所述测试向量输入到所述被测试模块中进行测试,所述测试结果分析模块获取所述被测模块的测试结果,得到所述CLB资源模块的第二部分的测试結果。本发明实施例提供的技术方案带来的有益效果是FPGA加载第一配置文件,根据所述第一配置文件对随机读写存储器RAM资源模块和可配置逻辑块CLB资源模块的第一部分分别进行测试,得到所述RAM资源模块的测试结果和所述CLB资源模块的第一部分的测试结果;所述FPGA加载第二配置文件,根据所述第二配置文件对所述CLB资源模块的第二 部分进行测试,得到所述CLB资源模块的第二部分的测试結果。其中对FPGA的测试只需要两个配置文件即可完成RAM资源和CLB资源的100%覆盖测试,配置文件直接在FPGA工作环境上执行,测试时间短,提高了测试效率。
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图I是本发明实施例中提供的一种检测方法流程图;图2是本发明实施例中提供的第一配置文件的结构示意图;图3是本发明实施例中提供的第二配置文件的结构示意图;图4是本发明实施例中提供的一种检测方法流程图;图5是本发明实施例中提供的例化RAM资源模块后的结构示意图;图6是本发明实施例中提供的CLB资源模块的结构示意图;图7是本发明实施例中提供的例化CLB资源模块的第一部分后的结构示意图;图8是本发明实施例中提供的例化CLB资源模块的第二部分后的结构示意图;图9是本发明实施例中提供的例化DSP资源模块后的结构示意图;图10是本发明实施例中提供的例化PLL和DCM资源模块后的结构示意图;图11是本发明实施例中提供的一种检测装置的结构示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进ー步地详细描述。參见图1,本实施例中提供了一种检测方法,所述方法包括10UFPGA加载第一配置文件,根据所述第一配置文件对RAM资源模块和CLB资源模块的第一部分,得到所述RAM资源模块的测试结果和所述CLB资源模块的第一部分的测试结果;102、所述FPGA加载第二配置文件,根据所述第二配置文件对所述CLB资源模块的第二部分进行测试,得到所述CLB资源模块的第二部分的测试結果。本实施例中预先定义了两个配置文件,第一配置文件和第二配置文件,通过第一配置文件和第二配置文件来完成对FPGA资源的全覆盖测试。如图2所示,第一配置文件包括RAM资源测试向量产生模块、待测试RAM资源和RAM资源测试结果分析模块,此部分用于实现对RAM资源模块的测试;第一配置文件还包括DSP资源测试向量产生模块、待测试DSP资源和DSP资源测试结果分析模块,此部分用于实现对DSP资源模块的测试;第一配置文件还包括PLL和DCM资源测试向量产生模块、待测试PLL和DCM资源和PLL和DCM资源测试结果分析模块,此部分用于实现对PLL和DCM资源模块的测试;第一配置文件还包括CLB资源测试向量产生模块、CLB资源测试结果分析模块和待测试CLB部分,此部分用于对CLB资源模块的第一部分进行测试。如图3所示,第二配置文件包括CLB资源测试向量产生模块、CLB资源测试结果分析模块和待测试CLB部分,此部分用于对CLB资源模块的第二 部分进行测试。其中CLB资源模块的第一部分和CLB资源模块的第二部分覆盖了整个CLB资源模块。第一配置文件可以实现对RAM资源模块、DSP资源模块、PLL资源模块和DCM资源模块的全覆盖测试,但由于第一配置文件中对RAM资源模块、DSP资源模块、PLL资源模块、DCM资源模块和被测试CLB资源模块的测试中,测试向量产生和测试结果分析需要用到CLB资源,所以这部分CLB资源在第二配置文件中进行测试,而第二配置文件对被测试部分CLB资源模块的测试,测试向量产生和测试结果分析也需要用到CLB资源,所以CLB资源模块的测试通过第二配置文件和第一配置文件两个文件共同完成了 CLB资源的100%覆盖。其中,在配置文件生成时,通过约束文件对第一配置文件和第二配置文件中被测试CLB资源进行位置約束,使两个配置文件中被测试CLB资源不重复,并且加起来覆盖到整个FPGA芯片的CLB资源。本实施例中加载两个配置文件最后的测试结果可以由FPGA芯片管脚输出和或MPI接ロ输出,对此本实施例不做具体限定。其中,所述FPGA根据所述第一配置文件对RAM资源模块进行测试,得到所述RAM资源模块的测试结果,包括所述FPGA根据所述第一配置文件将Block RAM资源模块和Distributed RAM资源模块例化成多个预设宽度和预设深度的双端ロ RAM,将所述例化得到的所述多个双端ロRAM作为第一测试模块,并对所述第一测试模块进行测试得到所述RAM资源模块的测试结
果O其中,所述FPGA根据所述第一配置文件对CLB资源模块的第一部分进行测试,得到所述CLB资源模块的第一部分的测试结果,包括所述FPGA根据所述第一配置文件将CLB资源模块的第一部分配置成被测试模块,其中,所述第一部分包括最后一列Slice_XmaxY0到Slice_XmaxYmax之间所有Slice(逻辑单元),所述被测试模块中的每个Slice中的触发器和LUT (Look-Up-Table,查找表)串联,所述LUT被配置成反向器,所述触发器被配置成带异步清零端的D触发器,并将除所述最后一列Slice_XmaxY0到Slice_XmaxYmax之间的Slice配置成测试向量产生模块和测试结果分析模块,并通过所述测试向量产生模块产生测试向量,将所述测试向量输入到所述被测试模块中进行测试,所述测试结果分析模块获取所述被测模块的测试结果,得到所述CLB资源模块的第一部分的测试結果。其中,所述FPGA根据所述第二配置文件对所述CLB资源模块的第二部分进行测试,包括所述FPGA根据所述第二配置文件将所述CLB资源模块中的第二部分配置成被测试模块,其中,所述第二部分包括Slice_X0Y0到Slice_Xmax_lYmax之间所有Slice,所述被测试模块中的每个Slice中的触发器和LUT串联,所述LUT被配置成反向器,所述触发器被配置成带异步清零端的D触发器,并将最后一列Slice_XmaxY0到Slice_XmaxYmax配置成测试向量产生模块和测试结果分析模块,并通过所述测试向量产生模块产生测试向量,将所述测试向量输入到所述被测试模块中进行测试,所述测试结果分析模块获取所述被测模块的测试结果,得到所述CLB资源模块的第二部分的测试結果。可选地,所述FPGA加载第一配置文件之后,还包括 所述FPGA根据所述第一配置文件对数字信号处理器DSP资源模块,和/或,锁相环PLL资源模块和数字时钟管理器DCM资源模块分别进行测试,得到所述DSP资源模块的测试结果,和/或,所述PLL资源模块和所述DCM资源模块的测试結果。本实施例中,所述FPGA根据所述第一配置文件对DSP资源模块进行测试,得到所述DSP资源模块的测试结果,包括所述FPGA根据所述第一配置文件将DSP资源模块例化成多个将乘法器,将所述例化得到的所述多个乘法器作为第二测试模块,并对所述第二测试模块进行测试得到所述DSP资源模块的测试結果。本实施例中,所述FPGA根据所述第一配置文件对PLL资源模块和DCM资源模块进行测试,得到所述PLL资源模块和所述DCM资源模块的测试结果,包括所述FPGA根据所述第一配置文件将PLL资源模块中的所有PLL和DCM资源模块中的所有DCM按照ー维阵列串联起来,得到第三测试模块,并对所述第三测试模块进行测试得到所述PLL资源模块和所述DCM资源模块的测试結果。优选地,本实施例中,所述FPGA根据所述第一配置文件将PLL资源模块中的所有PLL和DCM资源模块中的所有DCM按照ー维阵列串联起来,包括 所述FPGA根据所述第一配置文件将工作时钟输入第一个PLL的时钟输入端ロ,将所述第一个PLL输出端ロ连接到第一个DCM的输入端ロ,将所述第一个DCM的时钟输出端口上连接到BUFG (全局时钟缓冲器)的输入端,将所述BUFG的输出端连接到第二个PLL的时钟输入端ロ,再将所述第二个PLL按照所述第一个PLL与所述第一个DCM的连接方式与所述第二个DCM连接,再将所述第二个DCM按照所述第一个DCM与所述第二个PLL的连接方式与所述第三个PLL连接,直至将所有的PLL和DCM串联在一起。本实施例中有益效果包括FPGA加载第一配置文件,根据所述第一配置文件对RAM资源模块和CLB资源模块的第一部分,得到所述RAM资源模块的测试结果和所述CLB资源模块的第一部分的测试结果;所述FPGA加载第二配置文件,根据所述第二配置文件对所述CLB资源模块的第二部分进行测试,得到所述CLB资源模块的第二部分的测试結果。其中对FPGA的测试只需要两个配置文件即可完成RAM资源和CLB资源的100%覆盖测试,配置文件直接在FPGA工作环境上执行,测试时间短,提高了测试效率。
參见图4,本实施例中提供了一种检测方法,本实施例中通过加载第一配置文件和第二配置文件完成对FPGA所有资源的全覆盖测试,具体的包括201、FPGA加载第一配置文件,根据所述第一配置文件对RAM资源模块进行测试。具体的,由于RAM资源模块主要包括Block RAM资源模块和Distributed RAM资源模块,所述FPGA根据所述第一配置文件对RAM资源模块进行测试,包括所述FPGA根据所述第一配置文件将Block RAM资源模块和Distributed RAM资源模块例化成多个预设宽度和预设深度的双端ロ RAM,将所述 例化得到的所述多个双端ロ RAM作为第一预处理测试模块,并对所述第一预处理测试模块进行测试得到RAM的测试結果。其中,优选地,如图5所示,将Block RAM和Distributed RAM例化成36bit宽度1024深度的双端ロ RAM,将每个双端ロ RAM作为最小的测试单元,例化得到多个这样的测试单元,直到用完FPGA芯片所有Block RAM和Distributed RAM资源。其中将对Block RAM和Distributed RAM资源例化后得到的多个测试単元作为第一测试模块。进ー步地,在例化得到第一测试模块后,在外部提供的工作时钟和复位信号控制下,FPGA芯片解复位后,测试向量产生模块产生测试向量,对所有RAM测试单元中的RAM的写端ロ同时进行地址升序写操作,测试结果分析模块同时对所有RAM测试单元中RAM读端ロ进行地址升序的读操作,并将写数据打拍和读数据进行比较,通过读写数据是否一致来判断待测试FPGA芯片RAM资源是否存在失效情況。其中测试向量产生模块和测试结果分析模块由CLB资源构成,值得说明的是本实施例中并不对该测试向量产生模块和测试结果分析模块使用的CLB资源做具体限定。具体的,测试向量产生的背景数为如下四个{{3{4’h0}},(^waddr), waddr};{9{4 ‘hf}};{9 {4 ‘h5}};{9 {4 ‘ha}}。其中,第一个背景数每个地址空间写入值都不一样,主要为地址线测试,后面三组背景数用于RAM存储资源的测试。对第一测试模块的测试过程如下1)FPGA芯片解复位后,在时钟触发下,测试向量产生模块产生第一个背景数作为测试向量,按照地址升序同时写入所有RAM测试单元;2)写地址和写数据送到读操作控制和测试结果分析模块;3)测试结果分析模块根据输入的写地址产生所有RAM测试单元读操作地址,从所有RAM读端ロ取得读数据,并和输入写数据比较,完成测试结果的分析。4)分别生成第二组、第三组、第四组背景数作为测试向量,重复上述1)、2)、3)的测试过程。其中,如果测试结果分析模块分析出所有RAM単元读数据和写数据一致,则说明RAM资源测试通过,否则说明RAM资源测试存在失效。202、FPGA加载第一配置文件,根据所述第一配置文件对CLB资源模块的第一部分分进行测试,当对所述CLB资源模块的第一部分测试成功后,加载第二配置文件,根据所述第二配置文件对所述CLB资源模块的第二部分进行测试。本实施例中,CLB资源是FPGA芯片最主要的资源,CLB资源由Slice组成,Slice由触发器和LUT组成,故测试程序只要能覆盖每ー个触发器和LUT,即可以覆盖CLB资源。如图6所示,FPGA芯片Slice的资源结构图,CLB资源在FPGA芯片中按列排列,CLB资源中的Slice有X和Y两个坐标,坐标值决定其在FPGA芯片中的位置,FPGA芯片资源容量决定了 Slice坐标的最大值Xmax和Ymax。本实施例中,将待测试FPGA的Slice配置成被测试模块、测试向量产生模块、测试结果分析模块三部分。本实施例中,CLB资源由第一配置文件和第二配置文件共同完成测试。所述FPGA根据所述第一配置文件对CLB资源模块的第一部分进行测试,包括所述FPGA根据所述第一配置文件将CLB资源模块的第一部分配置成被测试模块,其中,所述第一部分包括最后一列Slice_XmaxY0到Slice_XmaxYmax之间所有Slice,所述被测试模块中的姆个Slice中的触发器和LUT串联,所述LUT被配置成反向器,所述触发器被配置成带异步清零端的D触发器,并将除所述最后一列Slice_XmaxY0到Slice_XmaxYmax之间的Slice配置成测试向量产生模块和测试结果分析模块,并通过所述测试向量产生模块产生测试向量,将所述测试向量输入到所述被测试模块中进行测试,所述测试结果分析模块获取所述被测模块的测试结果,得到CLB资源的第一部分的测试結果。
如图7所示,在第一配置文件中将最后一列Slice_XmaxY0到Slice_XmaxYmax之间所有Slice配置成被测试模块,被测试模块中的每个Slice中的触发器和LUT串联,所述LUT被配置成反向器,所述触发器被配置成带异步清零端的D触发器,其余Slice用于生成测试向量产生和测试结果分析模块,被测试部分Slice通过约束文件将这部分被测试资源约束到预定位置。当对所述CLB资源模块的第一部分测试成功后,加载第二配置文件,根据所述第ニ配置文件对所述CLB资源模块的第二部分进行测试。其中,所述FPGA根据所述第二配置文件对所述CLB资源模块的第二部分进行测试,包括所述FPGA根据所述第二配置文件将所述CLB资源模块中的第二部分配置成被测试模块,其中,所述第二部分包括Slice_X0Y0到Slice_Xmax_lYmax之间所有Slice,所述被测试模块中的姆个Slice中的触发器和LUT串联,所述LUT被配置成向器,所述触发器被配置成带异步清零端的D触发器,并将最后一列Slice_XmaxY0到Slice_XmaxYmax配置成测试向量产生模块和测试结果分析模块,并通过所述测试向量产生模块产生测试向量,将所述测试向量输入到所述被测试模块中进行测试,所述测试结果分析模块获取所述被测模块的测试结果,得到CLB资源模块的第二部分的测试結果。如图8所示,在第二配置文件中将Slice_X0Y0到Slice_Xmax_lYmax之间所有Slice配置成被测试模块,被测试模块中的每个Slice中的触发器和LUT串联,所述LUT被配置成反向器,所述触发器被配置成带异步清零端的D触发器,剩下最后一列Slice_XmaxYO到Slice_XmaxYmax用于配置测试向量产生模块和测试结果分析模块。配置为被测试部分的Slice,将每个Slice中的触发器和LUT串联起来,即每个触发器后面串联ー个LUT,LUT后面串联ー个触发器,并采用硬件描述语言库文件例化D触发器和LUT,将LUT配置成反向器,触发器配置成带异步清零端的D触发器,这样被检测部分除了 D触发器和LUT的串联外不会有任何其它逻辑。本实施例中,将上述处理后的ー个SI ice封装成最小测试单元。然后例化多个这样的测试单元,并将这些测试単元串联起来组成ー维阵列,得到被测试模块。其中,例化的个数由待测试FPGA器件资源容量确定,由于每个Slice中LUT的数目为偶数,所以虽然LUT被配置成反向器,检测序列不管经过多少个这样的最小测试单元都不会发生改变。对CLB的测试过程如下DFPGA芯片解复位后,在时钟触发下,测试向量产生模块测试序列,并将测试序列输入被测试Slice组成的ー维测试阵列;本实施例中对产生的具体测试序列并不做具体限定,例如产生16’ h5c3e的测试序列。
2)经过N个时钟周期后,测试结果模块开始采集输出的测试结果;由于对于每个待测试FPGA芯片待测试部分Slice数目是确定的,所以其中所包含的触发器数目也是确定的,如果待测试部分Slice包含的Slice数目为N,那么经过N个时钟周期后,每个Slice都经过了测试,则测试结果模块开始采集输出的测试結果。3)测试结果分析模块对采样到的测试结果进行分析。例如输入的测试序列为16’h 5c3e,那么如果ー维Slice阵列输出的测试结果为16’ h 5c3e,则说明待测试部分Slice正常,否则说明Slice资源存在失效。203、所述FPGA根据所述第一配置文件对DSP资源模块进行测试。另ー方面,FPGA也可以通过加载第一配置文件完成对DSP资源模块的测试。所述FPGA根据所述第一配置文件对DSP资源模块进行测试,包括所述FPGA根据所述第一配置文件将DSP资源模块例化成多个将乘法器,将所述例化得到的所述多个乘法器作为第二测试模块,并对所述第二测试模块进行测试得到所述DSP资源模块的测试結果。本实施例中优选地,如图所示9,用DSP 48E Slices例化16bit*16bit的乘法器,ー个16bit*16bit需要用I个DSP 48E Slices基元,将乘法器作为最小测试单元,例化多个这样的测试单元,直到用完所有器件的DSP资源,得到第二测试模块。其中,第二测试模块的测试向量产生模块和测试结果分析模块由CLB资源构成,但本实施例中并不对该测试向量产生模块和测试结果分析模块使用的CLB资源做具体限定。在时钟和复位信号控制下,FPGA芯片解复位后,测试向量产生模块产生16位宽的测试向量,井分别输入所有乘法器的两个乘数输入端ロ,乘法器的乘数输出端ロ输出32位宽的结果,测试结果分析模块对所有乘法器的输出结果进行比较,由于所有乘法器输入乘数相同,故预期所有乘法器结果相等,否则说明DSP资源存在失效。具体的测试过程如下1)FPGA芯片解复位后,在时钟触发下,测试向量产生模块产生分别乘数背景数mult_a 矛ロ mult_b ;2)将乘数背景数mult_a同时输入乘法器的两个乘数输入端,测试结果分析模块比较所有乘法器输出结果;3)将乘数背景数mult_b同时输入乘法器的两个乘数输入端,测试结果分析模块比较所有乘法器输出结果;4)将乘数背景数mult_a输入乘法器的一个乘数输入端ロ,乘数背景数mult_b输入乘法器的另ー个乘数输入端ロ,测试结果分析模块比较所有乘法器输出结果;如果所有乘法器输出结果相等,则说明待测试FPGA芯片DSP资源正常,否则说明DSP资源测试失败,DSP资源存在失效。204、所述FPGA根据所述第一配置文件对PLL资源模块和DCM资源模块进行测试。
另ー方面,FPGA也可以通过加载第一配置文件完成对PLL资源模块和DCM资源模块的测试。所述FPGA根据所述第一配置文件对PLL资源模块和DCM资源模块进行测试,包括所述FPGA根据所述第一配置文件将PLL资源模块中的所有PLL和DCM资源模块中的所有DCM按照ー维阵列串联起来,得到第三测试模块,并对所述第三测试模块进行测试得到PLL和DCM资源模块的测试結果。本实施例中,PLL和DCM资源采用串联的方式检测,将所有PLL和DCM按照ー维阵列串联起来。具体的,如图10所示,所述FPGA根据所述第一配置文件将工作时钟输入第一个PLL的时钟输入端ロ CLKIN,将所述第一个PLL输出端ロ CLK0UTDCM0连接到第一个DCM的输入端ロ CLKIN,将所述第一个DCM的时钟输出端ロ CLKO上连接到BUFG的输入端,将所述BUFG的输出端连接到第二个PLL的时钟输入端ロ CLKIN,再将所述第二个PLL按照所述第一个PLL与所述第一个DCM的连接方式与所述第二个DCM连接,再将所述第二个DCM按照所述第一个DCM与所述第二个PLL的连接方式与所述第三个PLL连接,直至将所有的PLL和DCM串联在一起。值得说明的是,第一个PLL的锁定输出连端ロ LOCKED连接第二个DCM的复位端ロ RST,第二个DCM的锁定端ロ再连接第三个个PLL的复位端ロ,另外,每个PLL和 DCM的CLKFB0UT ロ与自身的CLKFBIN ロ相连,这样ー个PLL带ー个DCM作为最小测试单元PLL2DCM。一般器件的DCM数目和PLL数目会不一致,剩下的DCM或PLL直接例化成最小测试单元PLL或DCM,直接串联在后面PLL2DCM单元后面。例化多个PLL2DCM和PLL或DCM测试单元,直到用完FPGA芯片所有的PLL和DCM资源,得到第三测试模块。其中,第三测试模块的测试向量产生模块和测试结果分析模块由CLB资源构成,但本实施例中并不对该测试向量产生模块和测试结果分析模块使用的CLB资源做具体限定。本实施例中优选地,将串联的PLL设置成三分频,将DCM设置成三倍频,或是将PLL设置成三倍频,将DCM设置成三分频,设置为三分频的PLL或DCM后面接ー个三倍频的PLL或DCM,这样时钟经过多个测试单元组成的一维串联阵列之后时钟频率不会改变。当然也可以将PLL和DCM相对应的设置成四分频和四倍频,或是五分频或是五倍频,对此本实施例并不做具体限定,只能能保证逻辑上经过多个测试单元组成的一维串联阵列之后时钟频率不会改变即可。值得说明的是,每个测试单元的解复位信号由上个测试単元的锁定信号产生,即前ー测试单元锁定之后,串联在其后的下一个测试単元才能解复位开始工作。本实施例中,时钟经过PLL和DCM —维串联阵列所需要的理论时间T为每个PLL和DCM的最长锁定时间之和。每个器件的最长锁定时间是器件的固定參数,可以在器件用户手册查询到,对此本实施例不再赘述,最后一个测试单元输出的锁定信号后,表示所有器件已经锁定并且开始工作,时钟检测模块开始检测PLL和DCM —维串联阵列。理论上最后ー个DCM输出的时钟频率应该和第一个PLL的输入也就是待测试FPGA芯片工作时钟一致,如果检测到两个时钟频率不一致或者系统复位信号RST解复位后经过了最长理论时间T,最后ー个测试单元还没有锁定,说明待测试FPGA芯片的PLL或DCM资源存在失效。值得说明的是上述步骤201-204并不是一定顺序执行的,当加载第一配置文件时完成对RAM、CLB第一部分、DSP、PLL和DCM资源模块的检測,当加载第二配置文件时完成对CLB资源模块的第二部分的检测,具体加载第一配置文件和第二配置文件的顺序,及对每个资源模块的测试顺序本实施例并不做具体限定。另ー方面,在对FPGA测试的实际操作中,在FPGA工作环境上电,进行工作环境系统初始化,FPGA系统初始化完成后,通过FPGA的工作环境的配置文件加载通道加载第一配置文件,文件加载成功后定时等待预设时间,通过FPGA管脚或是MPI接ロ读取测试结果。例如文件加载成功后定时等待10s,通过FPGA管脚或是MPI接ロ读取测试结果;如果测试失败,则说明FPGA芯片的RAM资源或者DSP资源或者PLL资源或者DCM资源或者CLB资源存在失效,FPGA芯片测试结束;如果在加载第一配置文件后测试通过,则利用FPGA工作环境的配置文件加载通道加载第二配置文件;文件加载成功后定时等待预设时间,通过管脚或是MPI接ロ读取测试结果;如果在加载第一配置文件后测试失败,则说明FPGA芯片的CLB资源存在失效。本实施例的有益效果包括FPGA加载第一配置文件,根据所述第一配置文件对随机读写存储器RAM资源模块和可配置逻辑块CLB资源模块的第一部分分别进行测试,得到所述RAM资源模块的测试结果和所述CLB资源模块的第一部分的测试结果;所述FPGA加载 第二配置文件,根据所述第二配置文件对所述CLB资源模块的第二部分进行测试,得到所述CLB资源模块的第二部分的测试結果。其中对FPGA的测试只需要两个配置文件即可完成RAM资源和CLB资源的100%覆盖测试,配置文件直接在FPGA工作环境上执行,测试时间短,提高了测试效率。另ー方面,还可以通过第一配置文件完成对PLL资源、DCM资源和DSP资源的全覆盖测试,通用性强,可实现产业化。參见图11,本发明实施例提供了一种检测装置,该装置包括第一检测模块201和第二检测模块202。第一检测模块201,用于加载第一配置文件,根据所述第一配置文件对随机读写存储器RAM资源模块和可配置逻辑块CLB资源模块的第一部分分别进行测试,得到所述RAM资源模块的测试结果和所述CLB资源模块的第一部分的测试结果;第二检测模块202,用于加载第二配置文件,根据所述第二配置文件对所述CLB资源模块的第二部分进行测试,得到所述CLB资源模块的第二部分的测试結果。其中,所述第一检测模块201,包括第一例化単元,用于根据所述第一配置文件将随机读写存储器块Block RAM资源模块和分布式随机读写存储器Distributed RAM资源模块例化成多个预设宽度和预设深度的双端ロ RAM,将所述例化得到的所述多个双端ロ RAM作为第一测试模块,并对所述第一测试模块进行测试得到所述RAM资源模块的测试結果。其中,第一检测模块201,包括第二例化単元,用于根据所述第一配置文件将CLB资源模块的第一部分配置成被测试模块,其中,所述第一部分包括最后一列Slice_XmaxY0到Slice_XmaxYmax之间所有Slice,所述被测试模块中的每个Slice中的触发器和LUT串联,所述LUT被配置成反向器,所述触发器被配置成带异步清零端的D触发器,并将除所述最后一列Slice_XmaXY0到Slice_XmaxYmax之间的Slice配置成测试向量产生模块和测试结果分析模块,并通过所述测试向量产生模块产生测试向量,将所述测试向量输入到所述被测试模块中进行测试,所述测试结果分析模块获取所述被测模块的测试结果,得到所述CLB资源模块的第一部分的测试結果。本实施例中,所述第二检测模块202具体用于根据所述第二配置文件将所述CLB资源模块中的第二部分配置成被测试模块,其中,所述第二部分包括Slice_XOYO到Slice_Xmax_lYmax之间所有Slice,所述被测试模块中的每个Slice中的触发器和LUT串联,所述LUT被配置成反向器,所述触发器被配置成带异步清零端的D触发器,并将最后一列Slice_XmaxYO到Slice_XmaxYmax配置成测试向量产生模块和测试结果分析模块,并通过所述测试向量产生模块产生测试向量,将所述测试向量输入到所述被测试模块中进行测试,所述测试结果分析模块获取所述被测模块的测试结果,得到所述CLB资源模块的第二部分的测试結果。可选地,所述第一检测模块201还用于在加载第一配置文件之后,根据所述第一配置文件对数字信号处理器DSP资源模块,和/或,锁相环PLL资源模块和数字时钟管理器DCM资源模块分别进行测试,得到所述DSP资源模块的测试结果,和/或,所述PLL资源模块和所述DCM资源模块的测试結果。本实施例中,所述第一检测模块201,还包括第三例化単元,用于根据所述第一配置文件将DSP资源模块例化成多个将乘法 器,将所述例化得到的所述多个乘法器作为第二测试模块,并对所述第二测试模块进行测试得到所述DSP资源模块的测试結果。本实施例中,所述第一检测模块201,包括第四例化単元,用于根据所述第一配置文件将PLL资源模块中的所有PLL和DCM资源模块中的所有DCM按照ー维阵列串联起来,得到第三测试模块,并对所述第三测试模块进行测试得到所述PLL资源模块和所述DCM资源模块的测试結果。其中,所述第四例化単元,包括例化子単元,用于根据所述第一配置文件将工作时钟输入第一个PLL的时钟输入端ロ,将所述第一个PLL输出端ロ连接到第一个DCM的输入端ロ,将所述第一个DCM的时钟输出端口上连接到全局缓冲器BUFG的输入端,将所述BUFG的输出端连接到第二个PLL的时钟输入端ロ,再将所述第二个PLL按照所述第一个PLL与所述第一个DCM的连接方式与所述第二个DCM连接,再将所述第二个DCM按照所述第一个DCM与所述第二个PLL的连接方式与所述第三个PLL连接,直至将所有的PLL和DCM串联在一起。本实施例中的检测装置具体可以为FPGA,上述检测过程由FPGA自身加载第一配置文件和第二配置文件完成。本实施例的有益效果是FPGA加载第一配置文件,根据所述第一配置文件对随机读写存储器RAM资源模块和可配置逻辑块CLB资源模块的第一部分分别进行测试,得到所述RAM资源模块的测试结果和所述CLB资源模块的第一部分的测试结果;所述FPGA加载第二配置文件,根据所述第二配置文件对所述CLB资源模块的第二部分进行测试,得到所述CLB资源模块的第二部分的测试結果。其中对FPGA的测试只需要两个配置文件即可完成RAM资源和CLB资源的100%覆盖测试,配置文件直接在FPGA工作环境上执行,测试时间短,提高了测试效率。需要说明的是上述实施例提供的检测装置中,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的检测装置与检测方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。 本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于ー种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种检测方法,其特征在于,所述方法包括现场可编程门阵列FPGA加载第一配置文件,根据所述第一配置文件对随机读写存储器RAM资源模块和可配置逻辑块CLB资源模块的第一部分分别进行测试,得到所述RAM资源模块的测试结果和所述CLB资源模块的第一部分的测试结果;所述FPGA加载第二配置文件,根据所述第二配置文件对所述CLB资源模块的第二部分进行测试,得到所述CLB资源模块的第二部分的测试結果。
2.根据权利要求I所述的方法,其特征在干,所述FPGA根据所述第一配置文件对RAM资源模块进行测试,得到所述RAM资源模块的测试结果,包括所述FPGA根据所述第一配置文件将随机读写存储器块Block RAM资源模块和分布式随机读写存储器Distributed RAM资源模块例化成多个预设宽度和预设深度的双端ロRAM,将所述例化得到的所述多个双端ロ RAM作为第一测试模块,并对所述第一测试模块进行测试得到所述RAM资源模块的测试結果。
3.根据权利要求I或2所述的方法,其特征在于,所述FPGA根据所述第一配置文件对CLB资源模块的第一部分进行测试,得到所述CLB资源模块的第一部分的测试结果,包括所述FPGA根据所述第一配置文件将CLB资源模块的第一部分配置成被测试模块,其中,所述第一部分包括最后一列Slice_XmaxYO到Slice_XmaxYmax之间所有Slice,所述被测试模块中的每个Slice中的触发器和查找表LUT串联,所述LUT被配置成反向器,所述触发器被配置成带异步清零端的D触发器,并将除所述最后一列Slice_XmaXYO到Slice_XmaxYmax之间的Slice配置成测试向量产生模块和测试结果分析模块,并通过所述测试向量产生模块产生测试向量,将所述测试向量输入到所述被测试模块中进行测试,所述测试结果分析模块获取所述被测模块的测试結果,得到所述CLB资源模块的第一部分的测试结果O
4.根据权利要求1-3任一项所述的方法,其特征在于,所述FPGA根据所述第二配置文件对所述CLB资源模块的第二部分进行测试,得到所述CLB资源模块的第二部分的测试结果,包括所述FPGA根据所述第二配置文件将所述CLB资源模块中的第二部分配置成被测试模块,其中,所述第二部分包括Slice_X0Y0到Slice_Xmax_lYmax之间所有Slice,所述被测试模块中的每个Slice中的触发器和LUT串联,所述LUT被配置成反向器,所述触发器被配置成带异步清零端的D触发器,并将最后一列Slice_XmaxYO到Slice_XmaxYmax配置成测试向量产生模块和测试结果分析模块,并通过所述测试向量产生模块产生测试向量,将所述测试向量输入到所述被测试模块中进行测试,所述测试结果分析模块获取所述被测模块的测试结果,得到所述CLB资源模块的第二部分的测试結果。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述FPGA加载第一配置文件之后,还包括所述FPGA根据所述第一配置文件对数字信号处理器DSP资源模块,和/或,锁相环PLL资源模块和数字时钟管理器DCM资源模块分别进行测试,得到所述DSP资源模块的测试结果,和/或,所述PLL资源模块和所述DCM资源模块的测试結果。
6.根据权利要求5所述的方法,其特征在于,所述FPGA根据所述第一配置文件对DSP资源模块进行测试,得到所述DSP资源模块的测试结果,包括所述FPGA根据所述第一配置文件将DSP资源模块例化成多个将乘法器,将所述例化得到的所述多个乘法器作为第二测试模块,并对所述第二测试模块进行测试得到所述DSP资源模块的测试結果。
7.根据权利要求5所述的方法,其特征在于,所述FPGA根据所述第一配置文件对PLL资源模块和DCM资源模块进行测试,得到所述PLL资源模块和所述DCM资源模块的测试结果,包括所述FPGA根据所述第一配置文件将PLL资源模块中的所有PLL和DCM资源模块中的所有DCM按照ー维阵列串联起来,得到第三测试模块,并对所述第三测试模块进行测试得到所述PLL资源模块和所述DCM资源模块的测试結果。
8.根据权利要求7所述的方法,其特征在于,所述FPGA根据所述第一配置文件将PLL资源模块中的所有PLL和DCM资源模块中的所有DCM按照ー维阵列串联起来,包括所述FPGA根据所述第一配置文件将工作时钟输入第一个PLL的时钟输入端ロ,将所述第一个PLL输出端ロ连接到第一个DCM的输入端ロ,将所述第一个DCM的时钟输出端口上连接到全局时钟缓冲器BUFG的输入端,将所述BUFG的输出端连接到第二个PLL的时钟输入端ロ,再将所述第二个PLL按照所述第一个PLL与所述第一个DCM的连接方式与所述第ニ个DCM连接,再将所述第二个DCM按照所述第一个DCM与所述第二个PLL的连接方式与所述第三个PLL连接,直至将所有的PLL和DCM串联在一起。
9.一种检测装置,其特征在于,所述装置包括第一检测模块,用于加载第一配置文件,根据所述第一配置文件对随机读写存储器RAM资源模块和可配置逻辑块CLB资源模块的第一部分分别进行测试,得到所述RAM资源模块的测试结果和所述CLB资源模块的第一部分的测试结果;第二检测模块,用于加载第二配置文件,根据所述第二配置文件对所述CLB资源模块的第二部分进行测试,得到所述CLB资源模块的第二部分的测试結果。
10.根据权利要求9所述的装置,其特征在于,所述第一检测模块,包括第一例化単元,用于根据所述第一配置文件将随机读写存储器块Block RAM资源模块和分布式随机读写存储器Distributed RAM资源模块例化成多个预设宽度和预设深度的双端ロ RAM,将所述例化得到的所述多个双端ロ RAM作为第一测试模块,并对所述第一测试模块进行测试得到所述RAM资源模块的测试結果。
11.根据权利要求9或10所述的装置,其特征在于,所述第一检测模块,包括第二例化単元,用于根据所述第一配置文件将CLB资源模块的第一部分配置成被测试模块,其中,所述第一部分包括最后一列Slice_XmaxY0到Slice_XmaxYmax之间所有Slice,所述被测试模块中的每个Slice中的触发器和查找表LUT串联,所述LUT被配置成反向器,所述触发器被配置成带异步清零端的D触发器,并将除所述最后一列Slice_XmaXY0到Slice_XmaxYmax之间的Slice配置成测试向量产生模块和测试结果分析模块,并通过所述测试向量产生模块产生测试向量,将所述测试向量输入到所述被测试模块中进行测试,所述测试结果分析模块获取所述被测模块的测试結果,得到所述CLB资源模块的第一部分的测试結果。
12.根据权利要求9-11任一项所述的装置,其特征在于,所述第二检测模块具体用于根据所述第二配置文件将所述CLB资源模块中的第二部分配置成被测试模块,其中,所述第二部分包括Slice_XOYO到Slice_Xmax_lYmax之间所有Slice,所述被测试模块中的每个Slice中的触发器和LUT串联,所述LUT被配置成反向器,所述触发器被配置成带异步清零端的D触发器,并将最后一列Slice_XmaxYO到Slice_XmaxYmax配置成测试向量产生模块和测试结果分析模块,并通过所述测试向量产生模块产生测试向量,将所述测试向量输入到所述被测试模块中进行测试,所述测试结果分析模块获取所述被测模块的测试结果,得到所述CLB资源模块的第二部分的测试結果。
13.根据权利要求9-12任一项所述的装置,其特征在于,所述第一检测模块还用于在加载第一配置文件之后,根据所述第一配置文件对数字信号处理器DSP资源模块,和/或,锁相环PLL资源模块和数字时钟管理器DCM资源模块分别进行测试,得到所述DSP资源模块的测试结果,和/或,所述PLL资源模块和所述DCM资源模块的测试結果。
14.根据权利要求13所述的装置,其特征在于,所述第一检测模块,包括第三例化単元,用于根据所述第一配置文件将DSP资源模块例化成多个将乘法器,将所述例化得到的所述多个乘法器作为第二测试模块,并对所述第二测试模块进行测试得到所述DSP资源模块的测试結果。
15.根据权利要求13所述的装置,其特征在于,所述第一检测模块,包括第四例化単元,用于根据所述第一配置文件将PLL资源模块中的所有PLL和DCM资源模块中的所有DCM按照ー维阵列串联起来,得到第三测试模块,并对所述第三测试模块进行测试得到所述PLL资源模块和所述DCM资源模块的测试結果。
16.根据权利要求15所述的装置,其特征在于,所述第四例化単元,包括例化子単元,用于根据所述第一配置文件将工作时钟输入第一个PLL的时钟输入端ロ,将所述第一个PLL输出端ロ连接到第一个DCM的输入端ロ,将所述第一个DCM的时钟输出端口上连接到全局时钟缓冲器BUFG的输入端,将所述BUFG的输出端连接到第二个PLL的时钟输入端ロ,再将所述第二个PLL按照所述第一个PLL与所述第一个DCM的连接方式与所述第二个DCM连接,再将所述第二个DCM按照所述第一个DCM与所述第二个PLL的连接方式与所述第三个PLL连接,直至将所有的PLL和DCM串联在一起。
全文摘要
本发明公开了一种检测方法和装置,属于电子技术领域。所述方法包括FPGA加载第一配置文件,根据所述第一配置文件对随机读写存储器RAM资源模块和可配置逻辑块CLB资源模块的第一部分分别进行测试,得到所述RAM资源模块的测试结果和所述CLB资源模块的第一部分的测试结果;所述FPGA加载第二配置文件,根据所述第二配置文件对所述CLB资源模块的第二部分进行测试,得到所述CLB资源模块的第二部分的测试结果。本发明对FPGA的测试只需要两个配置文件即可完成RAM资源和CLB资源的100%覆盖测试,配置文件直接在FPGA工作环境上执行,测试时间短,提高了测试效率。
文档编号G01R31/3185GK102830346SQ20121029973
公开日2012年12月19日 申请日期2012年8月22日 优先权日2012年8月22日
发明者石仔良, 涂君, 吴求应 申请人:华为技术有限公司