​汽车芯片的可靠性设计:控制亚稳态,提升稳定性

news2024/11/21 21:12:14

【作者简介】Dr. Roy 复睿微 IC后端工程师,南开大学与韩国首尔国立大学联合培养博士。博士期间发表高水平学术期刊论文多篇,其中一作一区封面文章2篇;授权发明专利5项。同时,在先进工艺大芯片的静态时序分析、芯片设计流程提效优化、SPICE仿真等领域拥有丰富的工作经验。

【摘要】汽车电动化、智能化、物联化对汽车电子的安全性提出了更高的要求。为了避免不可靠数据的产生与传播而造成芯片功能安全风险,设计者可以采用同步器处理跨时钟域信号交互的问题。这需要设计者对亚稳态的产生与恢复、同步器的原理与表征方式有更加全面地认识。

【关键词】汽车电子、可靠性、同步器、亚稳态

引言

在人工智能、5G、先进半导体等技术引领下,汽车电动化、智能化、物联化发展已成必然趋势。从需求端来看,随着消费者对安全舒适、经济稳定、娱乐交互等方面的需求提高,消费者对汽车产品智能化的需求显著增加,驱动汽车不断朝电动化、智能化和物联化方向发展,汽车电子在汽车整车中的占比越来越高。然而,与消费电子相比,汽车电子关系到驾驶员和乘客的生命安全,同时也面临更加严苛的使用条件。因此,人们对于车载芯片的产品质量要求更为严格。

芯片作为汽车的核心控制部件之一,为了适配不同的应用场景,通常有许多并行运行的独立功能或计算单元,而每个单元通常使用自己的局部时钟。因此,对于大规模的芯片来说内部的时钟域数量十分庞大。

当不同时钟域之间存在数据交互时,为了降低亚稳态的产生概率,保证可靠的数据传输,设计人员通常会采用插入同步器的方式进行时钟数据的同步处理。这些同步器一般由多个级联的主从触发器构成;通过增加触发器的级数可以大大提高芯片可靠性。但是,同步器会增加数据传输的延迟,因此需要在增加的延迟和同步器可靠性之间进行权衡。表征同步器电路以估计其可靠性对于帮助做出此权衡决策非常重要。

亚稳态

什么是亚稳态?从字面上看,亚稳态是指一种“不太稳定”的状态,轻微的扰动就会使系统失去状态。在数字电路中除了逻辑“1”和“0”状态以外,还有一个中间状态--处于“1”和“0”之间未能被正确识别的状态。该状态是由于锁存器的固有反馈设计,输出可能会漂移一段时间。

从设计的角度来看,亚稳态可能会产生以下后果:

1. 如果不稳定的数据被馈送到设计中的其他地方,可能会导致局部高电流,最坏的情况下甚至会烧毁芯片。

2. 不同的扇出锥可能会读取不同的信号值,并可能导致设计进入未知的功能状态,从而导致设计出现功能问题。

3. 目标输出可能会稳定到新值,也可能会返回到旧值。但是,传播延迟可能会很高,从而导致时序问题。

以互耦反相器环为例简单阐述一下亚稳态的产生与恢复过程。图1(a)和(b)分别表示互耦反相器的原理图和晶体管级互连示意图,第一个反相器的输入由第二个反相器的输出驱动,反之亦然。当顶部反相器的输出(N2)为“1”时,M4和M1导通。同样,当输出为 “0” 时,M3 和 M2 导通。如果输出反相器的电压保持在 VDD 或 GND 以外的任何值,则 M4 和 M1 会尝试将输出拉向 “1”,而另外两个晶体管将其拉向 “0”。最终设定值(”0“ 或 “1”)取决于其初始值拉力的强弱。但是,如果 M4 和 M1 的初始拉力组合等于 M3 和 M1,则输出不会移动。在维持平衡之前,输出可能会保持在该水平一段时间。

如图1(c)所示的输出曲线,如果系统受到扰动,强行改变了输出值,即使是很小的值,它也会经过反馈调节,输出会稳定在 “0” 或 “1”,具体取决于强制改变的方向。这种干扰可能是由于外部因素(例如外部强制电压)或内部因素(例如串扰)造成的。所以,如果任由它自己脱离亚稳态,脱离亚稳态的时间是未知的。

图1. 互耦反相器(a)原理图,(b)晶体管互连图,(c)输出曲线

数字电路中的所有寄存器都定义了信号时序要求,每个寄存器需要在其输入端正确捕获数据并产生输出信号。为确保可靠运行,寄存器输入必须在时钟边沿之前稳定至少一段时间(寄存器建立时间,tSU),并在时钟边沿之后稳定最短时间(寄存器保持时间,tH)。如果数据信号转换违反了寄存器的 tSU 或 tH 要求,则寄存器的输出可能会进入亚稳态,如图2所示。在亚稳态下,寄存器输出在高电平状态和低电平状态之间的某个值上徘徊一段时间,这意味着输出到定义的高电平或低电平状态的转换延迟会超过时钟端到输出端的延迟要求( tCO)。

图2. D触发器的(a)输入与(b)输出,其中信号S2, S3,S4会产出亚稳态输出[1]

同步器与跨时钟域路径

在同步系统中,设计者可以通过合理的时序约束文件对芯片进行约束,输入信号必须始终满足寄存器时序要求,因此不会出现亚稳态,如图3(a)所示。但是由于芯片覆盖场景越来越多,芯片不可避免的会出现跨时钟域路径。当信号在不相关或异步时钟域中的电路之间传输时,通常会出现亚稳态问题,如图3(b)所示。在这种情况下,设计人员无法保证信号满足 tSU 和 tH 要求,因为信号可以相对于目标时钟随时到达。但是,并非每个违反寄存器 tSU 或 tH 的信号转换都会导致亚稳态输出。寄存器进入亚稳态的可能性和返回稳定状态所需的时间取决于用于制造设备的工艺技术和操作条件。在大多数情况下,寄存器将快速返回到稳定的定义状态。

图3. 同时钟域路径(a)与跨时钟域路径(b)电路示意图

如图 4所示,在时钟边沿对数据信号进行采样的寄存器可以看作是一个球落在山上。山的两侧代表稳定状态——在信号转换后的旧数据值和新数据值——以及山顶代表亚稳态。如果球落在山顶,它可能会在那里无限期地保持平衡,但实际上它会稍微落到山顶的一侧并滚下山坡。球离山顶越远,它越快到达底部的稳定状态。如果数据信号在时钟边沿和最小 tH 之后转换,则类似于将球掉到山的“旧数据值”一侧,并且输出信号在该时钟转换期间保持原始值。当一个寄存器的数据输入在时钟边沿和最小 tSU 之前转换,并保持在最小 tH 之后,这类似于将球落在山的“新数据值”一侧,输出达到稳定的新状态足够快以满足定义的 tCO 时间。但是,当寄存器的数据输入违反 tSU 或 tH 时,就类似于将球扔到山上。如果球落在山顶附近,则球到达底部的时间太长,这会增加从时钟转换到超过定义的 tCO 的稳定输出的延迟。

图4. 小球落在山上类比时钟与数据的信号相位关系[2]

为了保障芯片正常工作,设计者通常会采用插入一种被称为同步器的特殊结构来避免亚稳态问题。常用的同步器结构都是多级同步寄存器,允许同步器有足够的时间振荡并稳定下来,确保在目标域中获得稳定的输出。如图5展示了一个简单跨时钟域路径,其中DFF2与DFF3组成了两极同步寄存器用于同步信号B。这种结构在设计中主要用于单比特和多比特控制信号以及单比特数据信号。多位数据信号需要其他类型的同步方案,例如 MUX 再循环、握手和 FIFO。

图5(b)阐述了两级同步器的同步过程,由于第二级寄存器DFF3的存在,在下一个clock2时钟上升沿DFF3捕捉到信号B并识别为高电平,输出信号Sync B,但是在下下个clock2时钟上升沿时,信号B已从亚稳态电平恢复到稳态电平即正确的低电平,那么经过DFF3再次采样会输出和B完全同步的Sync B信号,也就是解决了亚稳态问题[3]。这种额外的同步触发器提供的额外时间增加了亚稳态解决的可能性,并降低了设计失败的可能性。与此同时,同步器的成本则是增加了设计延迟。

图5. 两级同步器电路结构示意图(a)及其时序图(b)

同步器电路的可靠性

同步器降低了亚稳态事件导致系统故障的可能性;同步器的级数越多,电路的可靠性越高。然而,在任何非纯同步的系统中,永远无法完全避免亚稳态问题,而且同步器的级数也不能无限制的增加。设计者通常使用平均故障间隔时间 (MTBF) 指标来量化由于亚稳态导致系统故障的可能性[4,5]。MTBF值越大,芯片的可靠性就越高。

其中fd,fc分别表示数据时钟域和接收时钟域的频率;t0表示寄存器的时间窗口即(tSU+tH);表示信号电平重新恢复位逻辑可识别状态所需的特征时间常数,可以通过仿真得到。

而对于N级同步寄存器,其MTBF可表示为:

其中第一项即分母项可表示亚稳态的产生阶段;第二项即分子项是关于同步器级数、时钟周期等因子的一个指数函数,可表示亚稳态的恢复阶段,表示第i级寄存器的时钟端到输出端之间的延迟,表示第i+1级寄存器的建立时间要求,表示金属网络上的延迟。MTBF与正相关,与其他有关因子负相关。

考虑到最悲观的场景,各级同步器之间的建立时间检查刚好满足预设的裕量要求,即setup slack=0。下表列出了特定场景下的MTBF值与同步器级数之间的关系,不难发现,同步寄存器的级数增加,能大大的提高芯片的可靠性。

表1. MTBF与同步器级数对应关系示例

N级同步寄存器的MTBF公式可用于指导芯片设计:

1. 同步器类型的选取方面,需要综合考虑同步器单元延迟及其时间窗口大小;

2. 同步器级数设计方面,需要根据芯片对MTBF可靠性要求进行预估;

3. 后端物理实现方面,需要预设时序裕量、时序检查、同步器类型检查、MTBF计算等操作。

结语

芯片的可靠性是一个永恒的话题,亚稳态的产生虽然无法避免,但是设计者可以通过反馈机制、冗余设计等方式保证关键功能不出错。本文介绍了亚稳态的产生过程,并列举了一种最简单的减小亚稳态影响的方法,即同步器链。除此以外的握手反馈机制、异步FIFO格雷码等方式可能会消耗更多的资源,需要设计者对各种方式的优劣势与芯片可靠性需求进行权衡决策。

reference

1.  Seo, Hwa-Jeong, and Ho-Won Kim. "Always Metastable State True Random Number Generator." Journal of information and communication convergence engineering 10.3 (2012): 253-257.

2. Altera Corporation, “Understanding Metastability in FPGAs-White Paper”:

https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/wp/wp-01082-quartus-ii-metastability.pdf

3.   Cummings, Clifford E. "Clock domain crossing (CDC) design & verification techniques using SystemVerilog." SNUG-2008, Boston (2008).

4.  Golson, Steve. "Synchronization and Metastability." SNUG Silicon Valley (2014).

5.   Reiher, Justin James. Synchronizer analysis and design tool: an application to automatic differentiation. Diss. University of British Columbia, 2020.

关于复睿微

复睿微电子植根于创新驱动的文化,通过技术创新改变人们的生活、工作、学习和娱乐方式。公司成立于2022年1月,目标成为世界领先的智能出行时代的大算力方案提供商,致力于为汽车电子、人工智能、通用计算等领域提供以高性能芯片为基础的解决方案。

目前主要从事汽车智能座舱、ADS/ADAS芯片研发,以领先的芯片设计能力和人工智能算法,通过底层技术赋能,推动汽车产业的创新发展,提升人们的出行体验。

复睿微电子拥有一支业内顶级,能够全流程覆盖芯片的研发设计、解决方案、市场销售、服务支持等完整架构的车规级大算力芯片团队。团队集聚全球顶尖数字芯片人才,核心成员拥有在海内外领先的优秀企业的工作经验。

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

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

相关文章

对某擦边站点的一次渗透

更新时间:2022.07.05 2022年11月21日21:50:12 1. 说明 在上半年的时候,在线浏览网页的时候,突然跳转到了一个sese的界面,然后要下载app,本着弹出即下载的原则,我就欣然安装了: app本身长这样…

Dubbo架构设计与源码解析(一) 架构设计

作者:黄金 一、架构演变 单应用架构 ----> 垂直架构 ----> 分布式架构 ----> 微服务架构 ----> 云原生架构 二、Dubbo总体架构 1、角色职能 • Container:服务容器 (tomcat、jetty、weblogic) • Provider&#xf…

Web Spider NEX XX国际货币经纪 - PDF下载 提取关键词(二)

Web Spider NEX XX国际货币经纪 - PDF下载 & 解析 首先声明: 此次案例只为学习交流使用,切勿用于其他非法用途 文章目录Web Spider NEX XX国际货币经纪 - PDF下载 & 解析前言一、任务说明1.PDF下载2.PDF解析提取关键词数据二、Pip模块安装三、网站分析四、核…

【解决】Unity Player Log 自生成造成磁盘满占用率问题

开发平台:Unity 2020 编程平台:Visual Studio 2022 编程语言:CSharp   问题描述 Unity 工程完成打包与发布过程后,在运行时生成大量 Player Log 的日志文件导致其所在盘占用率满额问题。通常情况下,这类日志文件信息…

微信小程序开发—入门到跑路(三)

3、微信小程序第三天 1、学习目标 知识点名称知识点内容难度系数要求程度页面导航声明式导航、编程式导航、导航传参3星掌握页面事件下拉刷新、上拉触底、上拉触底案例、自定义编译模式3星掌握生命周期生命周期分类、应用生命周期、页面生命周期3星掌握wxs学习认识wxs及应用场…

百度工程师带你探秘C++内存管理(ptmalloc篇)

作者 | daydreamer 前篇《探秘C内存管理(理论篇)》主要介绍了Linux C程序内存管理的理论基础,本文作为系列文章《探秘C内存管理》的第二篇,将会探讨经典内存管理器ptmalloc如何管理C程序的内存。借助剖析ptmalloc解决问题的着重点…

攻防世界-easyphp

题目 访问url进入靶场&#xff0c;阅读php代码 <?php highlight_file(__FILE__); $key1 0;//值赋值 $key2 0;$a $_GET[a];//get方法获取值 $b $_GET[b];if(isset($a) && intval($a) > 6000000 && strlen($a) < 3){ //a的值需要大于 6000000&…

Python:如何使用正则表达式快速处理字符串

文章目录前言一、正则表达式1、元字符详解2、等价方法&#xff08;速记&#xff09;二、常用的表达式1、常用的正则表达式2、先行断言和后行断言三、Python匹配函数1、Match函数2、Search函数3、Findall函数四、regex101网站推荐前言 1、正则表达式是对字符串操作的一种逻辑公…

Android Studio使用Mob实现短信验证功能遇到的问题解决

一、Mob短信验证 全球领先的数据智能科技平台-MobTech袤博解决 进行注册登入 登入成功后&#xff0c;点击开发者服务中的短信验证&#xff0c;进入开发者平台 填好信息创建成功后显示下图&#xff0c;可以看到对应信息如下&#xff08;注意记住AppKey和AppSecretKey&#xff…

怎样让Odoo 16自动根据销售订单创建采购订单或生产订单

我们在销售产品时通常只处理销售过程&#xff0c;但是&#xff0c;在根据消费者的要求交付给消费者之前&#xff0c;产品会必须有库存。这时候&#xff0c;货物要么从车间「生产」&#xff0c;要么从供应商「采购」。当销售订单确认但商品缺货时&#xff0c;我们偶尔不得不先获…

vite.config.ts--服务器、简化导入写法、element-plues按需导入的配置

vite.config.ts--服务器、简化导入写法、element-plues按需导入的配置说明一、服务器server二、简化导入写法三、element-plus按需导入完说明 本教程适用于vite创建的前端项目服务器server简化导入写法element-plus按需导入 一、服务器server import { defineConfig } from …

MFC界面控件BCGControlBar v33.3 - 编辑控件功能升级

BCGControlBar库拥有500多个经过全面设计、测试和充分记录的MFC扩展类。 我们的组件可以轻松地集成到您的应用程序中&#xff0c;并为您节省数百个开发和调试时间。 BCGControlBar专业版和BCGSuite for MFC v33.3已正式发布了&#xff0c;该版本包含了增强的Ribbon自定义、新的…

[附源码]计算机毕业设计Python点餐系统(程序+源码+LW文档)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

智能座舱进入多元化交互时代,本土芯片厂商如何领跑?

“智能座舱市场正在进入一个全新的发展阶段。”芯驰科技资深产品市场总监金辉在2022高工智能汽车年会上表示&#xff0c;智能座舱已经进入了多屏互动、多模交互、多人交互等多元化交互时代。 芯驰科技资深产品市场总监金辉 作为未来的“第三生活空间”以及主机厂差异化竞争的焦…

【问答篇】Java 线程篇 面试题(一)

每天进步一点~ (ps: 文章内容及图片出处来自本人公众号~) 01、问&#xff1a;请谈谈你对并发编程优缺点的认识与理解 ~ 答&#xff1a; 优点&#xff1a;充分利用多核CPU的计算能力&#xff0c;通过并发编程的形式将多核CPU的计算能力发挥到极致&#xff0c;性能得到提升。 …

【Java编程】MVC框架和经典三层结构

MVC框架和经典三层结构1.MVC框架 JSP&#xff0c;全称 Java Server Pages&#xff0c;中文名是 Java 服务器页面&#xff0c;其实是一种以 Java 为主的跨平台 Web 开发语言。JSP 文件由传统网页 HTML 文件插入 Java 程序段所形成&#xff0c;实现了 HTML 语法的 Java 扩张。在…

一篇文章了解 Apache Druid

前言 本文隶属于专栏《大数据技术体系》&#xff0c;该专栏为笔者原创&#xff0c;引用请注明来源&#xff0c;不足和错误之处请在评论区帮忙指出&#xff0c;谢谢&#xff01; 本专栏目录结构和参考文献请见大数据技术体系 概述 Apache Druid 是一个实时分析型数据库&#xf…

图文结合带你搞懂MySQL日志之Error Log(错误日志)

GreatSQL社区原创内容未经授权不得随意使用&#xff0c;转载请联系小编并注明来源。GreatSQL是MySQL的国产分支版本&#xff0c;使用上与MySQL一致。作者&#xff1a;KAiTO文章来源&#xff1a;社区原创 往期回顾&#xff1a; 图文结合带你搞懂MySQL日志之Redo Log(重做日志)…

[附源码]计算机毕业设计Python的云网盘设计(程序+源码+LW文档)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

极智AI | 谈谈昇腾CANN量化

欢迎关注我的公众号 [极智视界]&#xff0c;获取我的更多笔记分享 大家好&#xff0c;我是极智视界&#xff0c;本文介绍一下 谈谈昇腾CANN量化。 昇腾CANN的量化体现在AMCT工具&#xff0c;也即模型压缩工具&#xff0c;后面再来说AMCT&#xff0c;这篇先聊一下昇腾CANN的量…