汽车功能安全--TC3xx LBIST触发时机讨论

目录

1. LBIST架构

2. LBIST寄存器配置

3. LBIST触发时机


LBIST,全称Logic Built-in Self Test。

在TC3xx中,LBIST是一种硬件功能安全机制,目的是为了探测MCU内部逻辑电路的潜伏故障(latent faults)。

从使用者角度来看,只需要知道TC3xx的LBIST,它是基于对MCU进行量产测试的DFT(Design Fot Test)结构。这些测试逻辑是在芯片设计过程中被引入,流片后在ATE(自动测试仪)设备上通过对芯片进行测试,挑出有制造缺陷的芯片并淘汰掉,保证芯片的良率。

因此首先我们来熟悉熟悉LBIST架构。

1. LBIST架构

TC3xx LBIST结构如下图所示:

它主要由PRPG(Pseudo-Random Pattern Generator)、Scan Chains、MISR(Multiple-Input Signature Register)、LBIST Controller组成。

LBIST执行时,首先PRPG使用LFSR(Linear Feedback Shift Register )生成伪随机测试向量,送入到扫描链进行测试,然后compactor将得到结果通过异或门进行压缩,产生最终MISR签名,送入到LBIST Controller的相关寄存器中,以便应用软件比较。

基本原理看起来比较简单,但是我们知道,给用户端呈现得越简单,实际芯片设计过程就越复杂,所以接下来我们看看,LBIST模块相关寄存器有多简单(毕竟我也不懂DFT)。

2. LBIST寄存器配置

LBIST Controller相关寄存器总计只有4个,分别是LBISTCTRL0\1\2\3

  • LBISTCTRL0

该寄存器主要用于设置LBIST Pattern个数、触发LBIST、表征LBIST测试状态、复位LBIST Controller等,是用户端主要关心的寄存器。

  • LBISTCTRL1

该寄存器比较常用的是位域BODY,用于决定LBSIT执行时GPIO对外状态,一般建议配置为弱上拉 

  • LBISTCTRL2

该寄存器用于配置扫描链最大长度

  • LBISTCTRL3

该寄存器存放MISR的签名值,可由软件读出,进行比对。

在最开始接触的时候,大家估计对寄存器中每个位域该如何配置非常困惑,毕竟pattern长什么样、个数应该怎么配置、签名的目标值是多少,对于使用者来说都是模糊的。

因此,英飞凌在每款芯片的具体UserManaul里都给出了推荐配置,例如TC37x AA LBIST配置推荐如下:

需要注意的是LBISTCTRL3是一个RH类型寄存器, 这里给的签名是给软件去做对比用的。

3. LBIST触发时机

LBIST的触发时间选择比较关键,因为根据文档描述,LBIST执行结束后会执行一个reset,

因此,一般多用在启动时进行一次LBIST测试, 英飞凌提供了两种选择:

  • 通过UCB.BMHD.BMI的LSENAx位域,在BootRom阶段由SSW触发;

  • 在应用启动阶段由软件进行触发

LBIST始终会触发Warm Reset,并且签名值的比较只能由用户软件处理,因此在设计LBIST触发时,我们应该先搞懂其运行逻辑,具体如下:

上图中,灰色部分为英飞凌的SSW软件,不可更改,只能通过UCB配置影响启动逻辑;绿色部分为应用软件部分,由用户实现。

  • 系统从冷复位起来后,首先进入到SSW,该软件依次判断是否是Cold Reset、BMI.LBIST是否使能,如使能则触发LBIST,完成后进行warm reset,SSW会判断是否完成了LBIST,如果完成则跳转至用户代码(注意,SSW逻辑复杂,这里仅讨论LBIST相关);
  • 用户启动后,去判断LBIST是否完成,如果LBIST已经完成了,就判断签名值是否匹配,不匹配则判断LBIST重试次数是否达到阈值,如没有则继续Trigger LBIST;

个人认为,英飞凌提出了使用UCB触发和软件自动触发的原因应该是最开始认为用户可以自定义去配置LBIST Pattern,但是我们发现,我们根本就看不懂这些寄存器说明,所以还是老老实实使用推荐配置。

既如此,那么上述逻辑就可以更进一步优化,使用时固定配置UCB.BMI.LBENAx打开,这样在SSW里就可以触发LBIST,那么Reset类型就为Warm Reset。因此在用户代码逻辑里,我们只要判断只要不是cold reset,我们就去比较签名值,这样就能节省启动时间。如下图:

当然,软件的设计是各种各样的,还可以直接读取复位状态寄存器RSTSTAT.LBTERM,如置位了就可以直接比较签名值,无论怎么样最终目的还是为了既能有效执行LBIST,又能加快启动时间。

最后,我们来考虑,上述代码应该在哪里执行?汽车ECU典型的用户代码分为Bootloader、App;个人理解既然LBIST是关系到MCU的内部逻辑电路,那么最好就是最早处理,因为一旦LBIST不成功,意味着代码就难以继续运行,故在Bootloader里做能及早发现问题。

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

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

相关文章

基于x86 平台opencv的图像采集和seetaface6的图像质量评估功能

目录 一、概述二、环境要求2.1 硬件环境2.2 软件环境三、开发流程3.1 编写测试3.2 配置资源文件3.3 验证功能一、概述 本文档是针对x86 平台opencv的图像采集和seetaface6的图像质量评估功能,opencv通过摄像头采集视频图像,将采集的视频图像送给seetaface6的图像质量评估模块…

63. 不同路径 II -dp7

63. 不同路径 IIhttps://leetcode.cn/problems/unique-paths-ii/ 输入:obstacleGrid [[0,0,0],[0,1,0],[0,0,0]] 输出:2 解释:3x3 网格的正中间有一个障碍物。 从左上角到右下角一共有 2 条不同的路径: 1. 向右 -> 向右 ->…

对各项数据的统计汇总,集中展示,便于查看厂区情况的智慧物流开源了。

智慧物流视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。构建基于Ai技术的…

关于kafka的分区和消费者之间的关系

消费者和消费者组 当生产者向 Topic 写入消息的速度超过了消费者(consumer)的处理速度,导致大量的消息在 Kafka 中淤积,此时需要对消费者进行横向伸缩,用多个消费者从同一个主题读取消息,对消息进行分流。 …

yolov8 安装流程

1、克隆远端代码 git clone https://gitcode.com/gh_mirrors/ul/ultralytics.git 2、配置pyshon环境安装 3.10的版本,注意3.12后期会出现标注都在顶部的问题 使用idea可以在项目结构中直接添加python SDK 3、下载依赖,安装8.0210,注意新依赖…

脑靶向肽 ;SHp ;CLEVSRKNC ;缺血归巢肽

【脑靶向肽 SHp 简介】 SHp多肽是一种抗肿瘤多肽,它可以通过激活P53基因,调节细胞凋亡相关基因的蛋白表达,从而抑制肿瘤细胞的增殖并诱导细胞凋亡。在最新的研究中,SHp多肽被发现可以促进T细胞对肿瘤细胞的杀伤作用,显…

Vue3源码调试-第三篇

前言 上两篇已经调试完packages/runtime-dom/src/index.ts下的createApp函数的第一行了,接下来我们看下一行 injectNativeTagCheck 首先说下这个__DEV__估计也是定义在dev.js下,又或者是哪里的,这里控制台输出是true,那我估计是…

深入解析css-学习小结

绪论 盒模型 层叠 优先级 继承 层叠 层叠指规则冲突时,如何选择规则。规则冲突解决顺序: 样式表来源 用户代理样式 用户代理样式:浏览器默认样式 作者样式表:你自己写的css样式 作者样式表会覆盖用户代理样式,因…

Java 入门指南:Java IO流 —— 字节流

何为Java流 Java 中的流(Stream) 是用于在程序中读取或写入数据的抽象概念。流可以从不同的数据源(输入流)读取数据,也可以将数据写入到不同的目标(输出流)。流提供了一种统一的方式来处理不同…

2024.8.27 作业

1> 提示并输入一个字符串&#xff0c;统计该字符串中字母个数、数字个数、空格个数、其他字符的个数 #include <iostream>using namespace std;int main() {string s;cout << "请输入字符串>>>";getline(cin,s);int letter0,digit0,blank0,…

华为eNSP:静态路由配置、浮动路由配置

静态路由&#xff1a; 一、拓扑图 二、路由器配置 2.1&#xff1a;配置接口 R1&#xff1a; [r1]int g0/0/0 [r1-GigabitEthernet0/0/0]ip add 192.168.1.254 24 [r1-GigabitEthernet0/0/0]qu [r1]int g0/0/1 [r1-GigabitEthernet0/0/1]ip add 10.1.1.1 24 [r1-GigabitEth…

CMake之PUBLIC、PRIVATE、INTERFACE

竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生~ 个人主页&#xff1a; rainInSunny | 个人专栏&#xff1a; C那些事儿、 Qt那些事儿 文章目录 写在前面抽象版解释头文件和链接库传递测试代码结构PUBLIC传递PRIVATE传递INTERFACE传递 写在前面 使用CMake必然离不开target_include_dir…

第2章 双向链表

双向链表 概念 对链表而言&#xff0c;双向均可遍历是最方便的&#xff0c;另外首尾相连循环遍历也可大大增加链表操作的便捷性。因 此&#xff0c;双向循环链表&#xff0c;是在实际运用中是最常见的链表形态。 基本操作 与普通的链表完全一致&#xff0c;双向循环链表虽然…

FPGA 如何进入 AI 领域的思考

FPGA在AI领域如何发力&#xff0c;如何抢碗饭吃&#xff1f;大多数提到是硬件加速&#xff0c;在AI工程里&#xff0c;完成数据前处理&#xff08;加速&#xff09;。大家很少提到AI模型的本身的推理过程&#xff0c;让FPGA成为AI模型的推理/算力芯片&#xff0c;这自然是 FPGA…

2535. 解密 [CSP-J 2022]

代码 #include <bits/stdc.h> using namespace std; long long m,n; int check(int x){if(x * (m - x) n) return 0;if(x * (m - x) < n) return 1;if(x * (m - x) > n) return 2; } int main(){int k;cin >> k;while(k--){long long e, d,p0,q0;scanf(&q…

如何抠去PPT图片的背景?推荐这款AI智能抠图软件!

做ppt的过程中&#xff0c;我们会用到各式各样的图片素材&#xff0c;其中有些图片不能完全满足我们的需求&#xff0c;得先对图片进行处理&#xff0c;最常见的是抠图&#xff0c;去除图片原有的背景&#xff0c;得到一张包含透明像素的图片&#xff0c;方便我们排版PPT页面上…

高德企业用车负责人:以AI技术革新出行服务体验

在助力产业数字化转型的大潮中&#xff0c;高德企业用车以其前沿的科技理念和创新服务&#xff0c;正在成为出行领域的领跑者。近日接受采访时&#xff0c;高德地图行业合作业务总经理姜义丹先生分享了AI技术在出行领域应用的思考&#xff0c;以及如何提升企业服务智能化水平&a…

【C/C++】typedef用法

typedef用法讲解&#xff0c;时隔半年&#xff0c;再看typedef。 &#x1f381;typedef可以简化结构体关键字 #include<iostream> using namespace std;struct Person {char name[64];int age; };void test01() {struct Person p { "张三",18 };//不用type…

005、架构_数据节点

​DN组件总览 ​ DN节点包含进程 dbagent进程:主要提供数据节点高可用、数据导入导出、数据备份恢复、事务一致性、运维类功能、集群的扩缩容、卸数等功能;MySQL进程:主要提供数据一致性、分组管理、快同步复制、高低水位等;

卡在恢复模式怎么办?这样操作一键轻松退出iPhone 恢复模式

iOS 18beta版本发布后&#xff0c;已经成功升级到iOS 18beta并享受新功能的小伙伴们真是太幸运了。但是还有一些小伙伴在更新iOS 18beta的过程中遇到了各种问题&#xff0c;比如iPhone卡在恢复模式是常见问题。如果你也遇到此问题&#xff0c;不要着急&#xff0c;接下来我们将…