0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于BIST利用ORCA结构测试FPGA逻辑单元的方法

电子设计 来源:郭婷 作者:电子设计 2018-11-28 09:02 次阅读

引 言

现场可编程门阵列FPGA(Field ProgrammableGate Array)是一种新型器件,它将门阵列的通用结构与现场可编程的特性结合于一体,因而受到广泛关注。FPGA 测试中,测试激励的多种测试生成方法,都有其一定局限性,不能求出所有故障,而且随着集成电路规模的迅速膨胀,电路结构也越来越复杂,大量的故障变得不可测。所以,人们把视线转向了电路系统的设计过程。如果设计的电路容易测试,容易找到测试码,对测试和测试码的生成问题就大大简化,这就是可测性设计问题。可测性设计问题的一个主要解决方法就是内建自测法BIST(Built-in self-test)。

利用FPGA可重复编程的特性,通过脱机配置,建立BIST逻辑,即使由于线路被操作系统的重新配置而令BIST结构消失,可测性也可实现。本文给出一种基于BIST利用ORCA(Optimized Reconfigurable Cell Array)结构测试FPGA逻辑单元PLB(Programmable Logic Block)的方法,该方法对逻辑单元PLB 进行了分类、分阶段的测试,同时进行电路模拟实验。

BIST测试结构

这种基于BIST的测试方法是一系列测试阶段顺序进行的结果,每一阶段都包括以下几步:1)对电路进行配置;2)测试初始化;3)生成测试图形;4)对响应进行分析;5)读出测试结果。

图1 给出了利用ORCA测试方法过程中FPGA的配置结构。在用于完全测试BUT (Block Under Test)的绝大部分配置中,TPG以二进制计数器的模式工作,为BUT的m个输入端提供随机的测试模式。由于PLB的输入要多于输出,所以需要将一些PLB通过编程构造成m位的计数器,在存储器的操作模式中,存储器被配置为随机存储器。TPG作为p字节(p

基于BIST利用ORCA结构测试FPGA逻辑单元的方法

图1 测试FPGA的ORCA结构

不同的TPG一定要满足BUT的需求,BUT的输出要与ORA相符合,因此,TPG的数目要求为c,c同时也是与一个ORA相符合的PLB的输出管脚数。ORA由一个LUT和一个触发器组成,其中LUT用于从c 组BUT 相应的输出作比较,触发器记录第一次不匹配的情况。从触发器输出到LUT 输入的反馈信息会在ORA第一次错误记录之后进一步做比较。通常,一些ORA会在同一个PLB中实施,这依赖于PLB中相互独立的LUT的个数。这里,如果LUT的输入序列至少与一个PLB 是分离的,则认为此LUT是独立的。每一个TPG驱动一组共n个BUT,每个BUT有m个输入和k个输出,则BUT中共有c*n*k个输出与k 组n个ORA作比较,每个ORA监控c个输出,ORA的第i组接收n个BUT的第i个输出。

例如,在ORCA结构的PLB中,存在2个独立的LUT,每个LUT 有5个输入,由于反馈的存在,需令c=4。又由于每个PLB有18个输入,TPG生成随机测试向量所要求的触发器的数量也是18。因为一个PLB中有f=4个触发器,所以需要5个PLB来构成随机TPG,其中只有4个PLB是用于产生RAM模式测试进而构成TPG状态机的。最后,每个必须与ORA作比较的PLB中有k=5个输出。表1对以上数据进行了概括,并将Xilinx 4000与Altera Flex 8000系列中的FPGA各项参数进行了对比,对FPGA这些结构参数、TPG输出信号计数n以及BIST所需步骤的数目进行了分析。多数商业用途的FPGA进行完全测试需两个测试步骤,而一些其他规模的FPGA则需要三个步骤。

测试实施

在测试实施阶段利用故障interwetten与威廉的赔率体系 来评价不同BIST步骤中的故障覆盖率。为ORCA结构的PLB建立了一个完全的门级电路模型,包括代表基本输入值的PLB配置,那些输入值在每一阶段是“固定”的。允许模拟影响配置位的stuck-at故障。LUT、FF和Output Mux三个模组中每一个的随机测试用于检测无法探查的故障(LUT中为3个故障,FF中为4 个故障),这些故障从故障目录表中被移除。PLB中共2224个stuck-at门级故障,其中1538个在LUT中,440个在FF 中,224个在输出MUX中,完全测试每个PLB共需9次这样的配置结构。对3个模组中每一阶段所检测出的新故障数目、检测故障累积的总数及故障覆盖率等故障模拟结果见表2。

表1 FPGA结构参数对比

基于BIST利用ORCA结构测试FPGA逻辑单元的方法

表2 PLB故障模拟测试结果

基于BIST利用ORCA结构测试FPGA逻辑单元的方法

从表2中可以看出,第一阶段为LUT提供了一个完全的测试,而接着的5个阶段检测了FF中所有的故障,对输出MUX所有的故障检测需要9步。这9次配置结构可以根据为三个模组中每一个而设定的模式来描述。一个ORCA输出利用9*1 MUX来选择4个LUT输出中的任一个,或者4个FF输出的任一个,也就是LUT在以快速加法器操作方式进行工作。这9*1MUX证实了完全测试输出MUX 块的配置数量。

ORCA结构的LUT有4个不同的操作模式:RAM、fast adder 、5 变量的LUT-based逻辑功能、4变量的LUT-based逻辑功能。它们在PLBBIST前4步中进行测试,如表3所示。在RAM模式中,TPG被配置为产生标准RAM 测试序列,而在其他步骤中被配置为二进制计数器。一旦LUT已经在RAM模式下测试,余下的BIST步骤中,依靠LUT中的棋盘模式来确定LUT输出的所有可能模式。FF有以下操作模式供选择:1)FF/Latch;2)Set/Reset;3)falling edge/rising edge ofclock等,与这些选择相关的数据太大,不易考虑。因此,可根据对PLB 门级电路模型的故障模拟来选择。5 次配置对完全测试FF 模组是足够的。

表3 PLB BIST配置

基于BIST利用ORCA结构测试FPGA逻辑单元的方法

从表3的后半部分可知FF 模组各种操作模式的不同选择情况。在这9次BIST配置中,ORCA的典型应用包括54%的连线资源可编程线段以及87%的PLB和LUT。尽管多数ORCA只需要2个测试阶段,还需18次的配置结构来测试所有的PLB。这18次配置结构与通常应用ORCA结构测试的32次配置相比,结果比较令人满意。

测试中遇到的问题

路线资源的限制

作为伪随机测试,PLB的测试包括PLB大多数的I/0管脚,但IC系列ORCA路由于资源有限,不能支持所有TPG输出到BUT以及所有的BUT输出到ORA。为解决这个问题,基于伪随机测试的准则允许对每一次配置有一点“偏差”,只对在该阶段确实用到的输入采用随机测试,并观察其输出。表3给出了每一步BIST所用到的PLB管脚数目,路线资源可以满足系统要求。

缺少详细的配置控制

在一般的应用中,用户只需要将FF的输出与PLB的输出相连,而不管是具体哪个输出,这是特定的布线算法和路由算法决定的。在本方法中,为了得到完全的测试,必须保证每一个输出矩阵依次与它的9个输入(4个FF输出,4个LUT输出,1个加法器进位)相连,因此有一种与这9次配置都不同的选择。但是CAD工具不允许用户控制输出的多路复用器(用户模式下没有输出多路开关),因此,解决方法是修改中间的设计文件或者配置位流,来控制输出的多路输出选择。

结 语

本文方法的最大优点是不需专用测试仪器,只需要观察测试响应检验电路ORA的输出即可,因此所需输入、输出单元少,故障覆盖率高,不可测故障较其他方法大大降低。实验数据表明,本方法的测试结果令人满意。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1629

    文章

    21735

    浏览量

    603122
  • 集成电路
    +关注

    关注

    5388

    文章

    11541

    浏览量

    361719
  • 计数器
    +关注

    关注

    32

    文章

    2256

    浏览量

    94517
收藏 人收藏

    评论

    相关推荐

    FPGA内部逻辑结构实现的基础

    只有在脑海中建立了一个个逻辑模型,理解FPGA内部逻辑结构实现的基础,才能明白为什么写Verilog和写C整体思路是不一样的,才能理解顺序执行语言和并行执行语言的设计
    发表于 08-25 11:12 928次阅读

    FPGA学习笔记:逻辑单元的基本结构

    逻辑单元FPGA器件内部,用于完成用户逻辑的最小单元
    的头像 发表于 10-31 11:12 1804次阅读
    <b class='flag-5'>FPGA</b>学习笔记:<b class='flag-5'>逻辑</b><b class='flag-5'>单元</b>的基本<b class='flag-5'>结构</b>

    DFT和BIST在SoC设计中的应用

    ,它可以防止设计重复或者至少能减少重复的次数。 当SoC设计包含有嵌入式存储器时,从测试的角度看有效处理这些模块的方法之一是利用存储器BIST。针对存储器
    发表于 12-15 09:53

    FPGA的基本结构

    一、FPGA的基本结构 FPGA由6部分组成,分别为可编程输入/输出单元、基本可编程逻辑单元
    发表于 07-16 15:32

    FPGA的基本结构

    一、FPGA的基本结构 FPGA由6部分组成,分别为可编程输入/输出单元、基本可编程逻辑单元
    发表于 08-23 10:33

    FPGA的基本结构

    一、FPGA的基本结构 FPGA由6部分组成,分别为可编程输入/输出单元、基本可编程逻辑单元
    发表于 09-18 11:15

    FPGA的基本结构

    一、FPGA的基本结构 FPGA由6部分组成,分别为可编程输入/输出单元、基本可编程逻辑单元
    发表于 10-08 14:43

    【案例分享】玩转FPGA必学的复杂逻辑设计

    (Interconnect)三个部分。 现场可编程门阵列(FPGA)是可编程器件,与传统逻辑电路和 门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构
    发表于 08-11 04:30

    FPGA的基本结构

    一、FPGA的基本结构 FPGA由6部分组成,分别为可编程输入/输出单元、基本可编程逻辑单元
    发表于 09-24 11:54

    基于BIST的编译码器IP核测试

    介绍了用于IP核测试的内建自测试方法(BIST)和面向测试的IP核设计方法,指出基于IP核的系统
    发表于 12-13 17:09 10次下载

    针对FPGA可编程逻辑模块的离线BIST测试方法

    ,另一类是在线BIST。离线BIST测试方法,是指测试在被测电路退出原先的T作状态,冉运用BIST
    发表于 11-08 14:21 1次下载
    针对<b class='flag-5'>FPGA</b>可编程<b class='flag-5'>逻辑</b>模块的离线<b class='flag-5'>BIST</b><b class='flag-5'>测试</b><b class='flag-5'>方法</b>

    基于测试系统的FPGA测试方法研究与实现

    部分组成。对FPGA进行测试要对FPGA内部可能包含的资源进行结构分析,经过一个测试配置(TC)和向量实施(TS)的过程,把
    发表于 11-18 10:44 2629次阅读
    基于<b class='flag-5'>测试</b>系统的<b class='flag-5'>FPGA</b><b class='flag-5'>测试</b><b class='flag-5'>方法</b>研究与实现

    基于SRAM结构FPGA逻辑资源的测试编程

    随着现场可编程门阵列( FPGA)芯片在商业、军事、航空航天等领域越来越广泛的应用,其可靠性和可测试性也显得尤为重要。本文介绍一种基于SRAM结构FPGA
    发表于 11-23 14:48 5117次阅读

    FPGA硬件基础之FPGA逻辑单元的工程文件免费下载

    本文档的主要内容详细介绍的是FPGA硬件基础之FPGA逻辑单元的工程文件免费下载。
    发表于 12-10 15:00 19次下载

    详解逻辑单元的内部结构

    逻辑单元(Logic Element,LE)在FPGA器件内部,用于完成用户逻辑的最小单元。一个逻辑
    的头像 发表于 06-15 16:50 4004次阅读