CN105677525B - 基于可重复配置单元的fpga局部互联资源自动化测试方法 - Google Patents

基于可重复配置单元的fpga局部互联资源自动化测试方法 Download PDF

Info

Publication number
CN105677525B
CN105677525B CN201610017611.6A CN201610017611A CN105677525B CN 105677525 B CN105677525 B CN 105677525B CN 201610017611 A CN201610017611 A CN 201610017611A CN 105677525 B CN105677525 B CN 105677525B
Authority
CN
China
Prior art keywords
fpga
interconnection
configuration unit
output
test
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.)
Active
Application number
CN201610017611.6A
Other languages
English (en)
Other versions
CN105677525A (zh
Inventor
来金梅
杨震
王健
杨萌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fudan University
Original Assignee
Fudan University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fudan University filed Critical Fudan University
Priority to CN201610017611.6A priority Critical patent/CN105677525B/zh
Publication of CN105677525A publication Critical patent/CN105677525A/zh
Application granted granted Critical
Publication of CN105677525B publication Critical patent/CN105677525B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2215Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test error correction or detection circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

本发明属于集成电路技术领域,具体为基于可重复配置单元的FPGA局部互联资源自动化测试方法。包括对FPGA芯片中所有局部互联线段和所有局部可编程互联开关的测试。本发明充分利用FPGA阵列的规律性,将FPGA局部互联与邻近的逻辑电路资源配置成可重复配置单元模版,然后将这些单元模版依次首尾相连,重复遍历至整个FPGA阵列。本发明可测试的故障包括了互联线段的开路、短路故障和互联开关的常开、常闭故障。本发明能够完成对FPGA芯片内部所有局部互联资源的测试,并且对于不同结构和规模的FPGA都具有很高的适用性。测试所需要的配置数目、配置难度和测试时间都能得到极大地优化。

Description

基于可重复配置单元的FPGA局部互联资源自动化测试方法
技术领域
本发明属于集成电路技术领域,具体涉及一种FPGA(现场可编程门阵列)中局部互联资源的遍历测试方法。
背景技术
现场可编程门阵列(Field Programmable Gate Array, FPGA),作为一种可编程逻辑器件,既解决了专用集成电路设计周期长,制造成本高和生产工艺复杂的不足,又避免了原有可编程逻辑器件门电路数量有限和工作频率较低的缺点。FPGA可以通过硬件描述语言对其编程,用户使用硬件描述语言设计电路,再通过相应的FPGA配套软件进行布局布线后,生成位流文件下载到FPGA芯片中,从而将FPGA芯片快速配置成用户所需要的电路。
互联资源是FPGA芯片中最重要的部分,大概占据了60~80%的硬件资源1-2,所以对互联资源的测试是FPGA测试过程中最为重要的部分。FPGA互联测试一般可分为与应用无关的测试3和与应用相关的测试4两种形式,这其中以前者更为重要。首先,与应用无关的互联测试要遍历测试到FPGA芯片中所有的互联资源,以确保在任意的用户配置下,FPGA都能正确地工作。其次,由于FPGA中局部互联资源与周围的逻辑电路单元是紧密相关的,所以对局部互联的测试就不可避免地需要配置逻辑电路单元,这也给局部互联测试增加了难度。最后,现代FPGA中通常会包含一些IP核,所以对FPGA局部互联的遍历测试也应该包含这些与IP核相关的局部互联资源。
通常情况下,在测试中对FPGA芯片施加激励和读取响应的时间是很短,主要的时间则耗费在对FPGA的编程下载上,一般情况下这一时间可以达到数秒到数分钟5。所以,衡量一种测试方法优劣的标准就包括了故障覆盖率和测试所需时间,也就是测试中所用到的配置数目。
目前国际上FPGA互联测试集中在全局互联测试上,对局部互联测试方法研究相对较少。现有FPGA局部互联测试方法大多是基于学术界使用的连接盒和开关盒(CB和SB)模型,将局部互联简单地抽象为多路选择器,然后用类似总线测试的方法和异或树的结构实现对FPGA局部互联的遍历测试6。但是,实际FPGA局部互联的复杂程度远远超过多路选择器这样的学术研究模型,所以这类测试方法会导致局部互联故障覆盖率的大大下降而不实用。对FPGA局部互联的测试不同于对全局互联的测试,主要体现在测试全局互联资源时,仅全局线网和全局开关被配置和使用到,FPGA中的逻辑资源很少或没有被使用到。这是由于全局互联资源与FPGA的逻辑电路资源相对独立,测试时不需要特别配置逻辑电路资源。但是对于局部互联资源,因为其与周围的逻辑电路是紧密相连的,绝大部分的开关和线段只有在逻辑电路被使用到时才能被测试到。所以,对FPGA局部互联的测试就需要先配置好相应的逻辑电路资源。另一种测试局部互联的方法是采用内建自测试(BIST)的思想,将FPGA中一部分资源配置好来测试另一部分资源。然后再通过解决图的着色问题来获得最少的测试配置数目7。然而,随着FPGA的规模越来越大,局部互联资源通常含有百万量级的互联线段和开关,导致该方法的复杂度急剧增加。
参考文献:
[1] Marrakchi Z, Mrabet H, Farooq U, et al. FPGA interconnecttopologies exploration[J]. International Journal of Reconfigurable Computing,2009, 2009: 6.
[2] Ruan A W, Tian W, Ni B, et al. A hierarchical switch matrix andinterconnect resources test in Virtex-5 FPGA[C]//Integrated Circuits (ISIC),2014 14th International Symposium on. IEEE, 2014: 111-114.
[3] Tahoori M B, Mitra S. Application-independent testing of FPGAinterconnects[J]. Computer-Aided Design of Integrated Circuits and Systems,IEEE Transactions on, 2005, 24(11): 1774-1783.
[4] Tahoori M. Application-dependent testing of FPGAs[J]. Very LargeScale Integration (VLSI) Systems, IEEE Transactions on, 2006, 14(9): 1024-1033.
[5] Tahoori M B, Mitra S. Automatic configuration generation for FPGAinterconnect testing[C]// IEEE, 2003: 134.
[6] Renovell M, Portal J M, Figueras J, et al. Testing the LocalInterconnect Resources of SRAM-Based FPGA's[J]. Journal of ElectronicTesting, 2000, 16(5): 513-520.
[7] Sun X, Xu J, Alimohammad A, et al. Minimal test configurationsfor FPGA local interconnects[C]//Electrical and Computer Engineering, 2002.IEEE CCECE 2002. Canadian Conference on. IEEE, 2002, 1: 427-432.
[8] FU, Yong, et al. "A Full Coverage Test Method for ConfigurableLogic Blocks in FPGA." Chinese Journal of Electronics 22.3 (2013).。
发明内容
本发明的目的在于针对现代FPGA的互联结构,提出一种配置次数少、可移植性好、复杂度低的FPGA局部互联的高故障覆盖率测试方法。
一种典型的FPGA结构如图1所示,其中每个Tile代表一个逻辑电路单元,整个FPGA芯片就是由这样的一个个逻辑电路单元块组成的阵列。Tile之间的资源为互联线段,可以将不同的Tile连接起来。每个Tile内部包含了一个基本的逻辑电路单元(LOGIC BLOCK)和一个与之相连的互联模块(GRM),这个基本的电路逻辑单元可以是CLB(可编程逻辑单元),BRAM(块RAM),DSP(数字信号处理器),IOB(输入输出单元)或者其他IP核。一般地,FPGA中的互联资源可以分为全局互联资源和局部互联资源。全局互联是指全局布线通道内的互联线段和互联开关,主要是将信号在Tile与Tile之间传递。局部互联是指那些将逻辑电路单元的输入输出信号与全局互联相连接的互联资源,包括了局部线网和局部开关。一种典型的FPGA互联结构如图2所示。
对于FPGA局部互联的遍历测试,为了降低测试配置的难度同时保证较高的故障覆盖率,就需要充分利用FPGA片内丰富的逻辑电路资源以及阵列的规律性。在本发明中,将局部互联与周围的逻辑电路组合到一起,构成可重复的配置单元。然后将这些单元的上级输出作为下级的输入,依次首位相连,重复至整个FPGA阵列,如图3所示。
本发明中,重复配置单元的构建可以有多种方法,例如:
对于CLB和局部互联组成的重复配置单元,可以采用课题组提出的方法8,将CLB中的查找表配置成异或的逻辑运算形式,使得其输出信号与输入信号完全相同,这样就可以将多个重复单元依次串联起来。同理,
对于DSP和局部互联组成的重复配置单元,可以将DSP配置成乘累加的运算形式,使得上一级的运算输出结果作为下一级的运算输入数据。
对于BRAM和局部互联组成的重复配置单元,可以将BRAM配置成只读的ROM工作模式,使得ROM的输出结果作为下一级ROM的地址信号。
对于IOB和局部互联组成的重复配置单元,可以将IOB配置成串并转换的工作模式,如此类推。
当所有重复配置单元模版构建好后,将这些模版的上级输出作为搜索测试路径的起点,下级输入作为搜索路径的终点,利用自动化算法遍历所有的测试路径组合,确保覆盖到所有的局部互联资源,如图7所示。该自动化算法的具体过程是:依次选择某一个输出端口,将连接到此输出端口的所有开关和线网都测试一遍;然后选择下一个输出端口,重复上述过程,直至所有的输出端口都被测试过。
在这样的配置方式下,如果片内所有局部互联资源没有故障,那么最后的输出结果就应该与预期结果一致。反之,如果某个局部互联线段或者开关发生了某种故障,那么这种故障的表现形式就会不断地传递下去,导致最终的输出结果与预期结果不同。通过在最后的输出端对比输出信号与预期结果,就可以判断FPGA内部的局部互联是否存在故障。
对于实际FPGA电路,本发明可以极大地降低测试配置的生成难度,降低对布线条件的要求,极大地减少所需的配置数目,易于实现,并且具有高的故障覆盖率。
技术效果
本发明能够完成对FPGA内部所有局部互联资源的遍历测试,包括所有的局部互联线段和局部互联开关。可测试到的故障类型包括短路、开路、常开和常闭等故障。相比于已有的测试方法,本发明可以极大地降低配置生成难度,减少配置数目、降低对于布线的要求,同时显著地减少对IO端口的占用,并且具有高故障覆盖率。另外,本发明与具体的FPGA结构和规模无关,具有很好的移植性。
附图说明
图1为一种典型的FPGA结构。
图2为一种典型的互联结构。
图3为基于可配置重复单元的测试方法。
图4为CLB与局部互联的一种重复配置模版。
图5为DSP与局部互联的一种重复配置模版。
图6为BRAM与局部互联的一种重复配置模版。
图7为局部互联自动化测试方法。
具体实施方式
重复配置单元的构建可以有多种方法,其中的配置方法如下:
对于CLB和局部互联组成的重复配置单元,将CLB中的查找表按图4所示的方式配置8,具体来说,是将相邻的八个LUT配置成特定运算形式,所有输入信号都连接到前四个LUT的输入端,对于后四个LUT,其中某一个输入信号来自特定前级LUT的输出(如第五个LUT的某个输入来自第一个LUT的输出,第六个LUT的某个输入来自第二个LUT的输出,以此类推),其他输入信号都与前四个LUT输入信号完全一致。其中的逻辑运算结果确保输出信号与输入信号完全一致。对于CLB中的其他输入端,如使能输入、复位输入和时钟输入等,分别将其分配到不同的测试配置中进行测试。
对于DSP和局部互联组成的重复配置单元,将DSP按图5所示的方式配置,其中,所有DSP的A端口和B端口信号来自外部输入,C端口来自上级运算结果的输出。在统一的时钟信号控制下,所有DSP同步工作。将DSP配置成乘累加的工作模式,每一级的输出作为下一级的输入。由于DSP的输入输出端口非常多,如果将所有的输出信号都引到IO口输出的话,芯片的IO资源会不够用。所以,在DSP的互联测试中,采用了异或树的结构。将所有 DSP的输出对应端口进行异或操作,再将异或的结果做或操作输出。若输出结果为低电平,则所有DSP以及局部互联工作正常,若输出为高电平,则DSP或者互联资源中存在故障。为了避免所有与DSP相关的局部互联出现相同的故障(尽管这一事件发生的概率极低),将某一个DSP的所有输出引出观测,只要这一个DSP的输出正常并且异或输出的结果是低电平,则所有的DSP和互联工作正常。
对于BRAM和局部互联组成的重复配置单元,将BRAM按图6所示的方式配置成ROM的工作模式,具体来说,是将上一级BRAM的输出连接到下一级BRAM的地址输入端,从而使上级选到的特定地址内的输出值作为下一级BRAM的地址输入;在BRAM中预先计算并存储好地址值,使得与上一级输出信号地址值对应的单元恰好存储的是下一级的地址,然后依次相连。如果与BRAM相关的某个局部互联线段或开关发生故障,则这一级的输出地址值与预期不同,导致下一级的输入值也会与预期不同,这样故障就会逐级地传递到最后直至被观测到。
当所有可重复配置单元都构建完成后,将这些单元的输出端作为搜索测试路径的起点,单元的输入端作为搜索路径的终点,采用自动化的测试方法,遍历所有可能的输入输出组合,如图7所示。

Claims (3)

1.一种基于可重复配置单元的FPGA局部互联资源自动化测试方法,其特征在于具体步骤为:
首先,将局部互联与周围的逻辑电路组合到一起,构建成可重复的配置单元;
然后,将这些单元的上级输出作为下级的输入,依次首位相连,重复至整个FPGA阵列;
所述可重复的配置单元的构建方法如下:
对于CLB和局部互联组成的重复配置单元,将CLB中的查找表配置成异或的逻辑运算形式,使得其输出信号与输入信号完全相同,将多个重复单元依次串联起来;
对于DSP和局部互联组成的重复配置单元,将DSP配置成乘累加的运算形式,使得上一级的运算输出结果作为下一级的运算输入数据;
对于BRAM和局部互联组成的重复配置单元,将BRAM配置成只读的ROM工作模式,使得ROM的输出结果作为下一级ROM的地址信号;
对于IOB和局部互联组成的重复配置单元,将IOB配置成串并转换的工作模式,如此类推;
当所有重复配置单元模版构建好后,将这些模版的上级输出作为搜索测试路径的起点,下级输入作为搜索路径的终点,利用自动化算法遍历所有的测试路径组合,确保覆盖到所有的局部互联资源;
这里,CLB、DSP、BRAM、IOB为FPGA中的基本的电路逻辑单元,CLB是可编程逻辑单元,BRAM是块RAM,DSP是数字信号处理器,IOB是输入输出单元。
2.根据权利要求1所述的测试方法,其特征在于所述自动化算法的具体过程是:依次选择某一个输出端口,将连接到此输出端口的所有开关和线网都测试一遍;然后选择下一个输出端口,重复上述过程,直至所有的输出端口都被测试过。
3.根据权利要求2所述的测试方法,其特征在于在最后的输出端对比输出信号与预期结果,判断FPGA内部的局部互联是否存在故障。
CN201610017611.6A 2016-01-12 2016-01-12 基于可重复配置单元的fpga局部互联资源自动化测试方法 Active CN105677525B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610017611.6A CN105677525B (zh) 2016-01-12 2016-01-12 基于可重复配置单元的fpga局部互联资源自动化测试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610017611.6A CN105677525B (zh) 2016-01-12 2016-01-12 基于可重复配置单元的fpga局部互联资源自动化测试方法

Publications (2)

Publication Number Publication Date
CN105677525A CN105677525A (zh) 2016-06-15
CN105677525B true CN105677525B (zh) 2019-05-03

Family

ID=56300091

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610017611.6A Active CN105677525B (zh) 2016-01-12 2016-01-12 基于可重复配置单元的fpga局部互联资源自动化测试方法

Country Status (1)

Country Link
CN (1) CN105677525B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106546912B (zh) * 2016-10-14 2019-06-21 电子科技大学 一种应用相关型fpga自动化测试配置方法
CN106814306A (zh) * 2016-12-23 2017-06-09 深圳市紫光同创电子有限公司 一种iol测试验证方法和装置
CN106909728B (zh) * 2017-02-21 2020-06-16 电子科技大学 一种基于增强学习的fpga互联资源配置生成方法
CN107450516B (zh) * 2017-08-03 2019-09-20 爱普(福建)科技有限公司 一种基于元件的闭环测试方法
CN109815583B (zh) * 2018-02-27 2021-03-30 上海安路信息科技股份有限公司 Fpga的布线资源的布线方法和测试方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101865977A (zh) * 2010-05-27 2010-10-20 复旦大学 基于查找表结构的fpga可编程逻辑单元的遍历测试方法
CN102116840A (zh) * 2009-12-30 2011-07-06 中国科学院沈阳自动化研究所 一种基于贪心策略的fpga局部互联测试方法
CN102116841A (zh) * 2011-01-04 2011-07-06 复旦大学 基于模型量化的fpga互联结构评估方法
CN104617928A (zh) * 2015-01-13 2015-05-13 复旦大学 基于fpga硬件结构的时钟网络遍历测试方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102116840A (zh) * 2009-12-30 2011-07-06 中国科学院沈阳自动化研究所 一种基于贪心策略的fpga局部互联测试方法
CN101865977A (zh) * 2010-05-27 2010-10-20 复旦大学 基于查找表结构的fpga可编程逻辑单元的遍历测试方法
CN102116841A (zh) * 2011-01-04 2011-07-06 复旦大学 基于模型量化的fpga互联结构评估方法
CN104617928A (zh) * 2015-01-13 2015-05-13 复旦大学 基于fpga硬件结构的时钟网络遍历测试方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于局部重配置的FPGA互连测试诊断;马珂洁,包杰,周学功,王伶俐;《计算机工程》;20110330(第5期);第249-252页

Also Published As

Publication number Publication date
CN105677525A (zh) 2016-06-15

Similar Documents

Publication Publication Date Title
CN105677525B (zh) 基于可重复配置单元的fpga局部互联资源自动化测试方法
CN105866665B (zh) 面向高性能SoC FPGA的功能遍历测试方法
Hayes A unified switching theory with applications to VLSI design
CN104617928B (zh) 基于fpga硬件结构的时钟网络遍历测试方法
Hwang et al. Sequential circuit fault simulation using logic emulation
Doumar et al. Defect and fault tolerance FPGAs by shifting the configuration data
Tahoori Application-dependent testing of FPGAs
CN106098104B (zh) Fpga芯片内嵌bram核的测试系统及方法
CN115859885B (zh) 一种fpga冗余容错方法及fpga芯片
US9304881B2 (en) Trace routing network
US8181139B1 (en) Multi-priority placement for configuring programmable logic devices
Ruan et al. Insight into a generic interconnect resource model for Xilinx Virtex and Spartan series FPGAs
Tahoori et al. Fault grading FPGA interconnect test configurations
Chen et al. TRACER-fpga: a router for RAM-based FPGA's
Quinton et al. Post-silicon debug using programmable logic cores
CN105634468B (zh) 一种fpga的布线方法和宏单元
Yang et al. A new automatic method for testing interconnect resources in FPGAs based on general routing matrix
Huang et al. Fault tolerance of switch blocks and switch block arrays in FPGA
US8661381B1 (en) Method and apparatus for performing optimization using Don't Care states
Banik et al. Test configuration generation for different FPGA architectures for application independent testing
US6779170B1 (en) Method and apparatus for performing logic emulation
US20110225558A1 (en) Reconfigurable circuit generation device, method, and program
Jahanirad et al. BIST-based online test approach for SRAM-based FPGAs
Gomes et al. Vericonn: a tool to generate efficient interconnection networks for post-silicon debug
Das et al. On line testing of single feedback bridging fault in cluster based FPGA by using Asynchronous element

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