功能安全之BIST的基本原理

BIST(Built-In Self-Test,内建自测试)是一种将测试功能直接集成到集成电路(IC)或系统内部的设计方法。其基本原理的核心在于:让被测试电路自身(或借助少量专用硬件)来生成测试激励、施加测试、捕获响应并分析结果,从而显著减少对外部自动化测试设备(ATE)的依赖。

以下是BIST的基本原理和关键组成部分:

  1. 核心思想:自主测试

    • 传统测试:需要昂贵的ATE设备从外部向芯片输入管脚施加精心设计的测试向量,再从输出管脚捕获响应并进行分析。
    • BIST: 在芯片内部嵌入专门的、相对简单的硬件模块(称为BIST控制器),让它来自动执行测试向量生成、响应捕获和分析的任务。ATE的角色被简化,可能只需要启动测试和读取最终的“通过/失败”标志。
  2. 关键功能模块:
    BIST的实现通常包含以下三个核心硬件模块:

    • a. 测试向量生成器:

      • 功能: 自动产生用于测试被测电路的输入激励序列。
      • 目的: 激活电路中的潜在缺陷(如固定型故障、桥接故障等)。
    • b. 响应分析器:

      • 功能: 捕获被测电路对测试向量生成的输出响应,并将其压缩成一个签名
      • 原理: 将电路在测试期间的所有输出看作一个很长的位流。MISR像一种特殊的校验和计算器,将这个长位流压缩成一个短签名。如果电路工作正常,其输出的签名会与预期值(称为“黄金签名”)匹配;如果电路有故障,其输出序列会改变,导致计算出的签名与预期值不匹配的概率极高。
    • c. BIST控制器:

      • 功能: 整个BIST操作的“大脑”。
      • 职责:
        • 初始化测试向量生成器和响应分析器(如复位LFSR/MISR)。
        • 控制测试过程的时序(启动、运行、停止)。
        • 协调测试向量施加和响应捕获的同步。
        • 在测试结束时,读取响应分析器(MISR)计算出的签名。
        • 将计算出的签名与存储在芯片内部(通常是在只读存储器或通过设计固定连线)的预期签名进行比较。
        • 产生一个最终的测试结果输出(通常是一个简单的“Pass/Fail”信号)。
        • 可能包含状态机来管理复杂的测试序列。
  3. BIST工作流程:

    1. 启动: 外部信号(或上电自检逻辑)激活BIST控制器。
    2. 初始化: BIST控制器复位测试向量生成器(如LFSR)和响应分析器(如MISR)。
    3. 测试执行:
      • 测试向量生成器在每个时钟周期产生一个测试向量。
      • 该测试向量被施加到被测电路的输入端。
      • 被测电路产生响应输出。
      • 响应分析器(MISR)捕获这些输出,并将其压缩到正在计算的签名中。
    4. 重复: 步骤3重复执行预定的次数(例如,直到LFSR循环一个完整周期或达到预设的测试长度)。
    5. 签名比较: 测试结束后,BIST控制器从响应分析器(MISR)中读取最终的签名。
    6. 结果判定: BIST控制器将读取的签名与内部存储的预期签名进行比较。
    7. 输出结果: 控制器根据比较结果产生一个“Pass”或“Fail”信号,输出到芯片的特定管脚或内部状态寄存器。
  4. BIST的主要优点:

    • 降低测试成本: 大幅减少对昂贵、高速ATE的依赖和占用时间。
    • 提高测试访问性: 解决深亚微米设计和高密度封装带来的物理探测难题,直接访问内部节点。
    • 支持并行测试: 可同时对芯片上多个模块进行BIST,提高整体测试效率。
    • 支持在线测试: 可在系统运行时(例如启动时或空闲时)进行周期性自检,提高系统可靠性。
    • 简化测试接口: 外部只需要简单的启动和读取Pass/Fail信号的接口。
    • 更好的故障诊断: 签名分析有助于定位故障区域(虽然不如扫描链精确)。
  5. BIST的主要挑战/代价:

    • 面积开销: 增加了额外的硬件(TPG, ORA, BIST控制器),占用芯片面积。
    • 性能影响: BIST逻辑可能位于关键路径上,增加延迟。
    • 功耗增加: 测试期间电路切换活动率高,可能导致功耗高于正常工作模式。
    • 设计复杂性: 需要额外的设计和验证工作。
    • 测试覆盖率: 伪随机测试可能无法覆盖所有故障,需要精心设计向量生成策略或结合其他测试方法(如扫描)。
    • 故障屏蔽: MISR压缩存在极小的概率(混叠概率)导致故障响应被压缩成正确的签名(误判为Pass)。

总结:

BIST的基本原理就是将测试功能内建到芯片中,通过专用的硬件模块(测试向量生成器、响应分析器、控制器)自动完成测试激励生成、响应捕获和结果分析(通过与预期签名比较),最终输出一个简单的通过/失败指示。其核心价值在于实现了测试的自主化,从而降低对外部测试设备的依赖和成本,提高测试的可访问性和效率,并支持系统级的在线测试。这是一种通过增加少量芯片面积开销来换取巨大测试便利性和成本效益的设计技术。常见的应用包括处理器、DSP、ASIC的核测试以及嵌入式存储器的测试(MBIST - Memory BIST)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/89634.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/89634.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 程序地址空间

目录 Ⅰ、什么是程序地址空间? Ⅱ、虚拟地址空间是什么样的? 一、虚拟地址空间和页表 1、什么是页表? 2、什么是虚拟地址空间? 3、什么是vm_area_struct? Ⅲ、为什么要用虚拟地址空间? 一、进程的独立性 二、…

【iOS】消息传递和消息转发

文章目录前言一、消息传递:objc_msgSend 的“查字典递归找家长”流程1. 第一步:查“最近调用记录”(方法缓存)—— 最快即快速查找!2. 第二步:翻“自己的字典”(类方法列表查找)——…

MySQL查询优化与事务实战指南

本节用到的员工信息管理表结构放到资源中,需要的同学自取。本节内容以此表为示例: 面试题:innodb与myisam的区别。 外键,事务 特性InnoDBMyISAM事务支持支持不支持外键支持不支持锁粒度行级锁表级锁索引结构聚簇索引非聚簇索引崩…

Windows 10/11 磁盘清理操作指南:彻底解决系统盘空间不足问题

🧑 博主简介:CSDN博客专家、CSDN平台优质创作者,高级开发工程师,数学专业,10年以上C/C, C#,Java等多种编程语言开发经验,拥有高级工程师证书;擅长C/C、C#等开发语言,熟悉Java常用开发…

b-up:Enzo_Mi:深度学习基础知识

1.最近邻差值(Neareast Neighbor Interpolation) 插值算法 | 最近邻插值法_哔哩哔哩_bilibili 上图中最后一行,第一个图像,因为目标像素(放大后,位于第1行第0列的像素)距离它最近的…

微信小程序商品结算功能

整体结算流程概述微信小程序的商品结算涉及前端交互、API调用和数据管理。典型流程包括:用户交互:用户选择商品、填写地址和时间。数据获取:从小程序缓存或后端服务器获取订单信息。逻辑处理:验证参数、应用红包折扣。提交订单&am…

2025年7月份最新一区算法——向光生长算法

注:该算法已按照智能优化算法APP标准格式进行整改,可直接集成到APP中,方便大家与自己的算法进行对比。(近期智能优化算法APP将会迎来超级大更新!请时刻保持关注哦!)向光生长算法(Pho…

脚手架新建Vue2/Vue3项目时,项目文件内容的区别

一. package.json vue版本号不同vue2中会多一个依赖:vue-template-compiler,作用是预编译Vue2模板为渲染函数,减少运行时开销。vue-template-compiler与vue版本要保持一致,否则会报错。eslintConfig中的extends不同 eslintConfig…

微信小程序入门实例_____从零开始 开发一个每天记账的微信小程序

在前面的微信小程序实例中我们开发了体重记录等实用小程序,今天来尝试一个和生活消费紧密相关的 ——“每日记账小程序”。它能帮你随时记录收支情况,让每一笔花费都清晰可查。下面就跟着步骤,一步步构建这个小程序。​体验一个开发者的快乐。…

2026python实战——如何利用海外代理ip爬取海外数据

家人们!随着跨境电商的发展,是不是越来越多的小伙伴们也开始搞海外的数据分析了?不过虽然我们已经整天爬虫、数据采集打交道了,但一到海外数据,还是有不少人掉进坑里。你们是不是也遇到过以下情况:花了一堆…

Spring Boot启动原理:从main方法到内嵌Tomcat的全过程

Spring Boot的启动过程是一个精心设计的自动化流程,下面我将详细阐述从main方法开始到内嵌Tomcat启动的全过程。 1. 入口:main方法 一切始于一个简单的main方法: SpringBootApplication public class MyApplication {public static void m…

小白学Python,网络爬虫篇(1)——requests库

目录 一、网络爬虫的介绍 1.网络爬虫库 2.robots.txt 规则 二、requests 库和网页源代码 1.requests 库的安装 2.网页源代码 三、获取网页资源 1.get () 函数 (1)get() 搜索信息 (2)get() 添加信息 2.返回 Response 对象…

平板可以用来办公吗?从文档处理到创意创作的全面测评

在快节奏的现代职场,一个核心疑问始终萦绕在追求效率的职场人心中:平板电脑,这个轻薄便携的设备,真的能替代笔记本电脑,成为值得信赖的办公伙伴吗? 答案并非简单的“是”或“否”,而是一个充满潜…

docker gitlab 备份 恢复 版本升级(16.1.1到18.2.0)

docker 启动 # 在线 docker pull gitlab/gitlab-ce:latest # 离线 docker save -o gitlab-ce-latest.tar gitlab/gitlab-ce:latest docker load -i gitlab-ce-latest.tardocker run --detach \--publish 8021:80 --publish 8023:22 \ --name gitlab_test \--restart always \-…

web3 区块链技术与用

#53 敲点算法题 瑞吉外卖day4 调整心态 睡眠 及精神 web3 以下是应北京大学肖臻老师《区块链技术与用》公开课的完整教学大纲,综合课程内容、技术模块及前沿扩展,分为核心章节与专题拓展两部分,引用自公开课资料及学员笔记。 &#x1f4…

Redis1:高并发与微服务中的键值存储利器

redis中存储的数据格式为键值对(Key,Value)在高并发的项目和微服务的项目会频繁的用到redisNoSQL型数据库1.初始Redis1.1认识NoSQLSQL:structure query language关系型数据库结构化:有固定格式要求(表关系,…

/字符串/

字符串 个人模板 5. 最长回文子串 93. 复原 IP 地址 43. 字符串相乘 227. 基本计算器 II

我的开发日志:随机数小程序

文章目录前言UI设计代码前言 为什么我要设计这个程序呢?因为我要用,懒得在网上下载了,于是干脆写了一个。 UI设计 UI是我凹出来的,你们要使用,直接新建一个UI.ui文件,然后把下面的东西输进去就可以了。 …

《Oracle SQL:使用 RTRIM 和 TO_CHAR 函数格式化数字并移除多余小数点》

select RTRIM(to_char(1222.11123344,fm9999990.9999),.) from dual 这条 SQL 语句主要用于对数字进行格式化处理,并移除格式化结果右侧多余的小数点。下面将详细拆解该语句的执行过程和各部分作用。语句详细拆解1. to_char(1222.11123344,fm9999990.9999)函数功能&…

「Java案例」方法重装求不同类型数的立方

利用方法重装实现不同类型数值的立方计算 立方计算方法的重载实现 编写一个程序,要求编写重载方法xxx cube(xxx value)实现对不同类型数值计算立方。 # 源文件保存为“CubeCalculator.java” public class CubeCalculator {public static void main(String[] args) {// 测试…