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

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

3天内不再提示

LBIST分区的概念及LBIST安全陈述

PCB线路板打样 来源:LONG 2019-08-12 10:38 次阅读

逻辑内置自测试(LBIST)允许硬件测试自己的操作。无需任何外部硬件或测试设备。 LBIST是符合安全标准的SoC的“必备”功能。但是在复杂的SoC中使用LBIST时必须小心。

整个SoC被划分为各种LBIST分区和LBIST控制器用于在每个分区上运行LBIST。有一个中央控制器控制所有这些LBIST控制器,以便可以从整个SoC的一个点控制LBIST(否则每个LBIST控制器需要单独编程)。上面提到的中央LBIST控制器具有针对LBIST可用的各种选项的位映射以及用于对LBIST进行排序的寄存器

LBIST分区的概念及LBIST安全陈述

上图显示了SoC中分区的基本概念。物理分区和LBIST分区的数量/大小可能因SoC而异。此外,单个物理分区内可以存在多个LBIST分区。每个LBIST分区都有一个专用的LBIST控制器,它将被放置在物理分区内(但在LBIST分区之外)。中央控制器位于顶部分区。

验证LBIST的主要挑战是验证LBIST分区的不同排列和组合。假设一个SoC说“n”个LBIST分区,那么你可以在所有分区上并行运行LBIST,所有顺序运行,或者它们可以分组。例如,您可能希望并行运行前5个,然后依次运行下3个,依此类推。顺序运行所有LBIST将花费大量时间。另一方面,并行运行所有LBIST将导致SoC中的大量电流消耗。因此,要运行的理想序列是在优化电流消耗和最小化LBIST运行时之间的权衡。对于具有“n”个LBIST分区的SoC,将会有n! LBIST组合可能 - 在有限的时间范围内验证所有这些组合是不可能的。因此,我们根据SoC的经验和架构巧妙地选择一些选定的组合。

这会导致验证时遗漏一些问题。本文讨论了这些问题,它们在硅上的调试,以及我们如何在设计周期中避免它们。

在LBIST期间,LBIST下的分区的所有输出将随机切换,可能影响整个SoC功能的重要信号需要“安全声明”,这意味着它们需要在LBIST期间保持安全值这样逻辑的其余部分就不会受到它们的影响。例如,如果在LBIST执行期间(进入SoC的复位控制器)在LBIST分区中的复位输出上发生切换,则将导致整个逻辑的复位,这不是设计意图。因此,为了避免这种情况,需要在LBIST期间将此复位信号安全地设置为安全值。 (在这种情况下,它将是重置的非活动值)。

验证LBIST安全陈述的步骤

由于LBIST扫描链以网表级别插入,因此运行门级仿真以验证SoC中LBIST的正确功能。通过此报告的主要功能问题是缺少对不同LBIST分区的关键输出信号的“安全说明”。

由于在网表中引入了实际的LBIST逻辑,因此在RTL阶段不会发生输出信号的切换在LBIST执行期间。因此,为了模仿实际情况,我们在LBIST执行期间随机切换LBIST分区的输出,以便在RTL级别本身捕获丢失的安全说明问题。然而,实际切换仅在门级仿真中发生,但对于“n”个LBIST分区,不可能在门级仿真中运行每个组合(因为GLS运行时间很大)。大多数情况下,我们运行所选择的组合来解决前面提到的安全陈述问题。但是,由于在模拟中未尝试所有分区组合,因此仍可能存在一些可能影响SoC功能的看不见的安全说明问题。

缺少安全陈述的后硅调试策略 - 样本调试

我们将解释如何调试和根源导致LBIST安全陈述问题硅借助于一个例子:当LBIST在特定配置(序列)中运行时,它失败,状态寄存器中的PLL丢失锁定错误。

调试步骤

首先,我们尝试使用不同时钟源的相同配置。以下是调查结果:

内部RC振荡器时钟通过。

PLL锁定内部RC振荡器时钟 - 通过。

PLL锁定在外部振荡器上 - 出现了问题。

接下来,为了缩小调试范围,我们尝试了各种LBIST分区组合,以找出硅上的失败组合。结果发现,在20个LBIST分区中,当第14和第15个LBIST分区以顺序方式运行时,自检失败,状态寄存器中报告了PLL丢失锁定错误。

第14和第15个LBIST分区单独或并行运行,未发现故障。这给了我们一个强烈的迹象,表明在第14个分区LBIST中有一些切换正在影响第15个分区的LBIST执行。

下一步是找出看到失败的最小模式数。 (在LBIST中,我们对特定数据进行“移入”并期望一些已知的“移出”数据。一个这样的步骤被认为是一个“模式”并且将给我们一定的信号覆盖。对于完整的覆盖,我们运行多个这样的模式,总数被称为“模式计数”)。这很重要,这样我们就可以轻松地模拟验证环境中的故障。这是通过编程开始模式计数和结束模式计数以及应用二进制搜索来找出发现故障的最小模式计数窗口来完成的。

最后,在验证环境中模拟了这个最小的模式计数窗口(网表)。据观察,有些情况受到影响,导致振荡器在两者之间断电,导致PLL失锁,最终导致自检失败,PLL失锁失误。

失败的根本原因

外部振荡器数字控制逻辑本身是14 th LBIST分区的一部分(而振荡器的模拟模块在外面)这个LBIST分区)。据观察,由于从数字控制模块到模拟振荡器模块的断电信号没有安全说明,振荡器正在断电。然而,问题仍然存在,为什么只有在两个分区按顺序运行而不是单独或并行运行时才能看到这种切换。

为了追踪问题,振荡器功率播放逻辑是在设计中追踪。它看起来像这样:

Oscillator_pwrdn = A& B

其中A是14 th 分区的输出信号,B是15 th 分区的输出信号。默认情况下,A和B均为0。 “A”在第11个 th 分区的LBIST期间切换,最终稳定为1.然而,此时“B”保持为0。这解释了为什么两个分区都单独传递。当LBIST在15 th 分区上运行时,“B”切换,因此在顺序情况下,一旦“B”变为1,“Oscillator_pwrdn”信号变为“1”并且故障发生。而在并行的情况下,当“A”变为1时,“B”已经确定为0.由于这个原因,故障也从未在平行情况下看到过。

以下是用于解释行为的波形快照(Xosc_clock - 外部振荡器时钟; Xosc_pwrdn - 外部振荡器掉电信号):

LBIST分区的概念及LBIST安全陈述

波形在顺序LBIST案例(看到失败)

LBIST分区的概念及LBIST安全陈述

波形并行LBIST案例(未见失败)

完成设计修复

使用锁存器安全地声明“Oscillator_pwrdn”信号,以防止在LBIST执行期间切换,以解决此问题设计。

如何避免LBIST安全陈述问题

应注意以下几点以避免此类情况:

需要通过功率估算技术,LBIST运行时分析等来选择各种LBIST组合。在物理设计团队和DFT团队的反馈之后需要进行验证。要提供给客户的自测配置应在设计阶段基于上面的最终确定,以便使用最终配置运行所有门级仿真。这将使我们能够彻底验证客户使用的配置;否则,如前所述,在有限的时间范围内尝试模拟中的所有自测组合是不可能的。

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

    关注

    0

    文章

    2

    浏览量

    6081
  • PCB打样
    +关注

    关注

    17

    文章

    2965

    浏览量

    21389
  • 华强PCB
    +关注

    关注

    8

    文章

    1831

    浏览量

    27460
  • 华强pcb线路板打样

    关注

    5

    文章

    14629

    浏览量

    42578
收藏 人收藏

    评论

    相关推荐

    通过软件触发lbist的时候,application的代码是否还会运行一段时间直到被lbist结束后reset?

    通过软件触发 lbist的时候,application的代码是否还会运行一段时间直到 被lbist 结束后reset?如果applicaiton不运行那么cpu的状态是否是halt?
    发表于 01-22 06:01

    LBIST SMU警报在PORST之后触发的原因?

    我在一个项目中使用 TC322LP。 我正在通过启动软件执行 LBIST 测试。 尽管 LBIST 测试成功通过,但在 PORST 之后,SMU LBIST 警报 (ALM8 [5]) 正在触发
    发表于 01-31 06:55

    中断的概念及51单片机的中断系统

    中断的概念及51单片机的中断系统13-1. 演示范例——声控小车13-2. 中断的概念13-3. P89V51RD2单片中断系统的构成 
    发表于 03-29 10:27

    在HCG中,为什么LBIST和PBIST都无法配置?请问这两个模块是如何执行的?

    本帖最后由 一只耳朵怪 于 2018-5-25 16:02 编辑 在HCG中,为什么LBIST和PBIST都无法配置,请问这两个模块是如何执行的?它们的代码是已经封存在内存中被默认执行还是
    发表于 05-25 03:00

    有关LBIST的问题

    您好!     我想请问下在halcogen生成的LBIST模块中,去检查GIO[4]的状态是起什么作用的?           while((gioPORTA->DIN & 0x10
    发表于 06-21 04:13

    请问LBIST对cortex做什么部分(或寄存器)做了诊断?

    请问LBIST对cortex做什么部分(或寄存器)做了诊断? 执行LBIST能覆盖对MPU寄存器的诊断吗?
    发表于 08-08 07:07

    FPGA与CPLD的概念及其区别PDF

    FPGA与CPLD的概念及其区别
    发表于 08-15 15:46

    怎么提高非随机图形设计的故障覆盖率?

    怎么提高非随机图形设计的故障覆盖率?为LBIST设计提高故障检测能力的技术是什么?
    发表于 05-08 07:11

    串口通讯的概念及接口电路解析,不看肯定后悔

    串口通讯的概念及接口电路解析,不看肯定后悔
    发表于 05-27 06:01

    USB基本概念及从机编程方法介绍

    慕课苏州大学.嵌入式开发及应用.第四章.较复杂通信模块.USB基本概念及从机编程方法0 目录4 较复杂通信模块4.4 USB基本概念及从机编程方法4.4.1 课堂重点4.4.2 测试与作业5 下一
    发表于 11-08 09:14

    嵌入式系统的概念及特点

    文章目录嵌入式系统概要嵌入式系统的概念及特点嵌入式系统硬件嵌入式系统软件嵌入式系统的编程模式微控制器的程序开发方式嵌入式系统概要嵌入式系统的概念及特点1. 概念国外的定义:用于控制、监视或者辅助操作
    发表于 12-22 06:36

    嵌入式系统的概念及特点

    嵌入式系统概要嵌入式系统概要1.嵌入式系统的概念及特点2.嵌入式硬件3.嵌入式系统软件4.嵌入式系统编程模式5.微控制器的程序开发方式嵌入式系统概要1.嵌入式系统的概念及特点2.嵌入式硬件3.嵌入式系统软件4.嵌入式系统编程模式5.微控制器的程序开发方式...
    发表于 12-22 07:21

    如何利用LBIST进行设计的故障检测

    由于LBIST向量的随机性,LogicBIST的设计表现出随机模式电阻,从而导致低故障覆盖率。为了解决这个问题,我们在随机抗性故障分析(RRFA)的帮助下插入测试点。利用LBIST进行设计的故障检测
    的头像 发表于 08-08 15:58 6866次阅读
    如何利用<b class='flag-5'>LBIST</b>进行设计的故障检测

    使用非随机故障分析法为LBIST设计提高故障检测能力

    首先,设计应符合LBIST规则,这意味着它应该是扫描密合(scan stitched)的,并对设计中的所有X源进行标记。X源是状态不定且故障仿真系统未知的逻辑。X源包括LBIST化逻辑的非驱动输入、模拟模块输出、 三态总线与时序异常等类型。应该采用合适的X闭锁机制封禁(b
    发表于 09-14 09:46 1472次阅读
    使用非随机故障分析法为<b class='flag-5'>LBIST</b>设计提高故障检测能力

    逻辑数字部分的自检功能之LBIST

    LBIST是一种片上硬件机制,可用于检测MCU潜在故障。AURIX TC3xx平台的LBIST实现允许对MCU逻辑执行定期自检。
    的头像 发表于 03-29 14:46 193次阅读
    逻辑数字部分的自检功能之<b class='flag-5'>LBIST</b>