设想一下:如果你驾驶最新款的汽车,以每小时 75 英里的速度在高速公路上疾驰,并一边欣赏着流行的乐曲。突然间,引擎管理系统或稳定控制系统失效。面对这个情势,您不仅可能会遭遇严重 (甚至致命) 的车祸,而车厂的声誉也可能遭到损害,如果类似情况不止出现在你身上的话。
随着汽车在过去 25 年中从纯机械设备演变成高度集成的线控驾驶汽车电子系统,设计人员面临的挑战也不断增加。他们必须把复杂的电子设备增添到每一个后续车型中,同时还得维持高标准的品质和可靠性,并满足严格的低成本和大批量生产要求。
传统上,汽车开发人员一直依赖于 MCU、ASIC 和硕大的线束来实现和控制电子系统,并扩展每一代汽车的功能。如今,这些解决方案正逼近其技术极限,而且随着汽车电子的复杂性呈指数级增长,其可靠性也引起人们的关注。为了解决这些问题,许多设计人员开始转向 FPGA,将其作为下一代汽车电子设计的灵活及低成本解决方案。
为了确保现代汽车中各种系统的功能运转正常,必须对元件提出可靠性数据的要求。虽然人们已掌握元件可靠性的大部分要素,但是在选择可编程逻辑器件如 FPGA 的过程中,还得考虑一些特殊的问题。
了解宇宙射线的破坏作用
具体点说,技术决策人必须预见到影响可编程逻辑系统的故障源。来自太空 (宇宙射线) 的中子轰击,这听起来有点像电影《星际旅行》中的某个情节,但事实上中子导致的错误对许多类型的电子设备都有危害。中子导致的固件错误 (firm error) 已经从纯粹的麻烦事变为大问题。例如,如果中子导致基于 SRAM 的FPGA 配置单元被扰乱,就可能使到功能失效。如果出现这种情况,可以造成主系统失常。展望未来,这种问题将更为严重,因为将来的 FPGA 会采用深亚微米制造工艺,这将给基于 FPGA 的汽车电子设计工程师带来实实在在的挑战。
中子轰击造成的单事件扰乱 (SEU) 在任何类型的易失性存储单元都易于发生。上述SRAM FPGA 采用内部存储单元来保持 FPGA 的配置状态 (或个性)。这种存储器单元存在更为严重的可靠性问题。当内容被更改的时候,我们说器件发生“软错误”,因为在这种情况下,仅数据受影响,而功能未受影响。虽然可以采用校正数据成功地重新写入器件 (对 SRAM 数据和寄存器可以分别采用 EDAC (错误检测和校正) 和 TMR (隧道磁阻) 技术来纠正),但软错误还是可以导致数据丢失或“系统意外故障”。
如果 SRAM FPGA 配置存储器单元受到破坏,我们说器件发生“固件错误”,因为这些错误不易检测或校正,而且本质上不是暂时现象。一旦在 FPGA 中出现固件错误,必须重新载入初始配置数据。在某些情况下,还必须重新上电以清除故障,然后再重新配置。在这些配置单元中,只要有一个遭遇中子导致的 SEU,后果都可以很严重。如果某个配置位被扰乱而改变状态,它可能会改变整个器件的功能,导致重大数据崩溃或向系统中的其它电路发送虚假的信号。在极端情况下,如果固件错误长期未被检测到,那么,就会变成“硬故障 (hard errors)” 并对器件本身或包含该器件的系统造成破坏。这类问题的常见例子是:中子导致的固件错误把信号导向错误的路径,从而造成短路。
对采用 SRAM FPGA 来实现关键任务汽车电子应用系统来说,中子导致的错误存在严重的潜在隐患。由于现有的检测技术是通过每隔一段时间读回 FPGA配置实现检测,因此,对防止系统内的错误毫无帮助。此外,能够检测受破坏配置的读回电路本身就易于遭受 SEU 或破坏。再者,随着这种易受攻击的FPGA 技术的广泛发展,有可能需要能检查汽车电子系统对中子导致的固件错误免疫能力的全新质量评价系统,把它添加到 AEC-Q100 标准之中,以补充JEDEC 标准 No.89 的不足。此外,目前用于检测和纠正 FPGA 固件错误的方案会增加系统设计的复杂性,并大幅增加线路板尺寸和材料成本,进而提高发现中子导致错误的材料清单成本。
中子导致的固件错误可能对整个系统的 FIT (failure in time) 率影响很大。这种固件错误难于检测,且几乎不可能诊断,给维护和维修带来棘手的问题,并造成维护费用攀升。在三种主流 FPGA 技术 (反熔丝、Flash 和 SRAM) 之中,只有反熔丝和 Flash 技术能抵御中子导致的软错误和固件错误的影响。
实例:采用 SRAM FPGA 实现的汽车电子系统
本例分析了安装在驾驶室内地板中的系统。有人用 SpaceRad 4.5 (广泛应用的辐射效应预测软件程序) 计算了美国科罗拉多州丹佛市 5000 英尺高度的中子射线密度。根据已发表的辐射数据,对于采用 0.22 微米技术,密度为百万门的SRAM FPGA,每天发 生 SEU 的概率为 1.05E-4。
如果厂商在乘员传感器和安全气囊控制模块中采用百万门的 SRAM FPGA,把这个 1.054E-4 的 SEU 发生概率换算成每天每系统的 SEU 发生概率就是 4.38E-06,或者说系统的 FIT 值为 4,375。这意味着如果该厂商在 50 万辆车中采用这种百万门 SRAM FPGA 实现的安全系统,这个 1.054E-4 的 SEU 发生概率乘以路上的车辆/系统数量,就得到该车辆群体中每天总计会发生 52.5 次 SEU 事件(假设车辆一直在运行)。这就相当于每 27.4 分钟出现一次 SEU。即使假定这些车辆平均每天只行驶两小时,每天仍然会发生两起 SEU。由于这些故障是固件故障,因此会持续下去,直到 SRAM FPGA 被重新加载 (通常需要重新上电或强制重新配置)。
在目前的半导体技术中,器件中的软错误已经受到高度关注。随着器件尺寸不断缩小,大家都认识到这种软错误将成为大问题;这些错误可能会极大地降低系统的可用性。因此在许多应用场合中,人们都强烈要求避免出现软错误,使到系统的可用性维持在可以接受的水平。
在选择 FPGA 时,最重要的是评估每一种可编程体系的总体拥有成本,并选择那些拥有本质上可靠的核心技术的供应商,而不是为较低档次要求应用而设计的二等品质供应商提供的商业级产品。
如果采用 SRAM FPGA 来设计,设计人员就必须增加检测和校正配置错误的电路,因而会增加系统成本和复杂性。幸运的是,设计人员还有别的选择。辐射测试数据表明,以反熔丝和 Flash 技术为基础的 FPGA 不易于出现因中子导致的 SEU 事件而造成配置数据丢失。这使它们特别适用于要求高可靠性的应用。
现在,想象一个稍微不同的场景:你以每小时 75 英里的速度驾驶着最新款的汽车在高速公路奔驰,耳畔聆听着流行的歌曲。由于知道引擎管理系统中采用的是以非易失性 Flash 为基础的 FPGA,而不是基于 SRAM 的FPGA,你可以继续推杆加速,享受着舒适和无忧的旅程。