設(shè)想一下:如果你駕駛最新款的汽車,以每小時 75 英里的速度在高速公路上疾馳,并一邊欣賞著流行的樂曲。
突然間,引擎管理系統(tǒng)或穩(wěn)定控制系統(tǒng)失效。面對這個情勢,您不僅可能會遭遇嚴重 (甚至致命) 的車禍,而車廠的聲譽也可能遭到損害,如果類似情況不止出現(xiàn)在你身上的話。
隨著汽車在過去 25 年中從純機械設(shè)備演變成高度集成的線控駕駛汽車電子系統(tǒng),設(shè)計人員面臨的挑戰(zhàn)也不斷增加。他們必須把復(fù)雜的電子設(shè)備增添到每一個后續(xù)車型中,同時還得維持高標(biāo)準(zhǔn)的品質(zhì)和可靠性,并滿足嚴格的低成本和大批量生產(chǎn)要求。
傳統(tǒng)上,汽車開發(fā)人員一直依賴于 MCU、ASIC 和碩大的線束來實現(xiàn)和控制電子系統(tǒng),并擴展每一代汽車的功能。如今,這些解決方案正逼近其技術(shù)極限,而且隨著汽車電子的復(fù)雜性呈指數(shù)級增長,其可靠性也引起人們的關(guān)注。為了解決這些問題,許多設(shè)計人員開始轉(zhuǎn)向 FPGA,將其作為下一代汽車電子設(shè)計的靈活及低成本解決方案。
為了確?,F(xiàn)代汽車中各種系統(tǒng)的功能運轉(zhuǎn)正常,必須對元件提出可靠性數(shù)據(jù)的要求。雖然人們已掌握元件可靠性的大部分要素,但是在選擇可編程邏輯器件如 FPGA 的過程中,還得考慮一些特殊的問題。
了解宇宙射線的破壞作用
具體點說,技術(shù)決策人必須預(yù)見到影響可編程邏輯系統(tǒng)的故障源。來自太空 (宇宙射線) 的中子轟擊,這聽起來有點像電影《星際旅行》中的某個情節(jié),但事實上中子導(dǎo)致的錯誤對許多類型的電子設(shè)備都有危害。中子導(dǎo)致的固件錯誤 (firm error) 已經(jīng)從純粹的麻煩事變?yōu)榇髥栴}。例如,如果中子導(dǎo)致基于 SRAM 的FPGA 配置單元被擾亂,就可能使到功能失效。如果出現(xiàn)這種情況,可以造成主系統(tǒng)失常。展望未來,這種問題將更為嚴重,因為將來的 FPGA 會采用深亞微米制造工藝,這將給基于 FPGA 的汽車電子設(shè)計工程師帶來實實在在的挑戰(zhàn)。
中子轟擊造成的單事件擾亂 (SEU) 在任何類型的易失性存儲單元都易于發(fā)生。上述SRAM FPGA 采用內(nèi)部存儲單元來保持 FPGA 的配置狀態(tài) (或個性)。這種存儲器單元存在更為嚴重的可靠性問題。當(dāng)內(nèi)容被更改的時候,我們說器件發(fā)生“軟錯誤”,因為在這種情況下,僅數(shù)據(jù)受影響,而功能未受影響。雖然可以采用校正數(shù)據(jù)成功地重新寫入器件 (對 SRAM 數(shù)據(jù)和寄存器可以分別采用 EDAC (錯誤檢測和校正) 和 TMR (隧道磁阻) 技術(shù)來糾正),但軟錯誤還是可以導(dǎo)致數(shù)據(jù)丟失或“系統(tǒng)意外故障”。
如果 SRAM FPGA 配置存儲器單元受到破壞,我們說器件發(fā)生“固件錯誤”,因為這些錯誤不易檢測或校正,而且本質(zhì)上不是暫時現(xiàn)象。一旦在 FPGA 中出現(xiàn)固件錯誤,必須重新載入初始配置數(shù)據(jù)。在某些情況下,還必須重新上電以清除故障,然后再重新配置。在這些配置單元中,只要有一個遭遇中子導(dǎo)致的 SEU,后果都可以很嚴重。如果某個配置位被擾亂而改變狀態(tài),它可能會改變整個器件的功能,導(dǎo)致重大數(shù)據(jù)崩潰或向系統(tǒng)中的其它電路發(fā)送虛假的信號。在極端情況下,如果固件錯誤長期未被檢測到,那么,就會變成“硬故障 (hard errors)” 并對器件本身或包含該器件的系統(tǒng)造成破壞。這類問題的常見例子是:中子導(dǎo)致的固件錯誤把信號導(dǎo)向錯誤的路徑,從而造成短路。
對采用 SRAM FPGA 來實現(xiàn)關(guān)鍵任務(wù)汽車電子應(yīng)用系統(tǒng)來說,中子導(dǎo)致的錯誤存在嚴重的潛在隱患。由于現(xiàn)有的檢測技術(shù)是通過每隔一段時間讀回 FPGA配置實現(xiàn)檢測,因此,對防止系統(tǒng)內(nèi)的錯誤毫無幫助。此外,能夠檢測受破壞配置的讀回電路本身就易于遭受 SEU 或破壞。再者,隨著這種易受攻擊的FPGA 技術(shù)的廣泛發(fā)展,有可能需要能檢查汽車電子系統(tǒng)對中子導(dǎo)致的固件錯誤免疫能力的全新質(zhì)量評價系統(tǒng),把它添加到 AEC-Q100 標(biāo)準(zhǔn)之中,以補充JEDEC 標(biāo)準(zhǔn) No.89 的不足。此外,目前用于檢測和糾正 FPGA 固件錯誤的方案會增加系統(tǒng)設(shè)計的復(fù)雜性,并大幅增加線路板尺寸和材料成本,進而提高發(fā)現(xiàn)中子導(dǎo)致錯誤的材料清單成本。
中子導(dǎo)致的固件錯誤可能對整個系統(tǒng)的 FIT (failure in time) 率影響很大。這種固件錯誤難于檢測,且?guī)缀醪豢赡茉\斷,給維護和維修帶來棘手的問題,并造成維護費用攀升。在三種主流 FPGA 技術(shù) (反熔絲、Flash 和 SRAM) 之中,只有反熔絲和 Flash 技術(shù)能抵御中子導(dǎo)致的軟錯誤和固件錯誤的影響。
實例:采用 SRAM FPGA 實現(xiàn)的汽車電子系統(tǒng)
本例分析了安裝在駕駛室內(nèi)地板中的系統(tǒng)。有人用 SpaceRad 4.5 (廣泛應(yīng)用的輻射效應(yīng)預(yù)測軟件程序) 計算了美國科羅拉多州丹佛市 5000 英尺高度的中子射線密度。根據(jù)已發(fā)表的輻射數(shù)據(jù),對于采用 0.22 微米技術(shù),密度為百萬門的SRAM FPGA,每天發(fā) 生 SEU 的概率為 1.05E-4。
如果廠商在乘員傳感器和安全氣囊控制模塊中采用百萬門的 SRAM FPGA,把這個 1.054E-4 的 SEU 發(fā)生概率換算成每天每系統(tǒng)的 SEU 發(fā)生概率就是 4.38E-06,或者說系統(tǒng)的 FIT 值為 4,375。這意味著如果該廠商在 50 萬輛車中采用這種百萬門 SRAM FPGA 實現(xiàn)的安全系統(tǒng),這個 1.054E-4 的 SEU 發(fā)生概率乘以路上的車輛/系統(tǒng)數(shù)量,就得到該車輛群體中每天總計會發(fā)生 52.5 次 SEU 事件(假設(shè)車輛一直在運行)。這就相當(dāng)于每 27.4 分鐘出現(xiàn)一次 SEU。即使假定這些車輛平均每天只行駛兩小時,每天仍然會發(fā)生兩起 SEU。由于這些故障是固件故障,因此會持續(xù)下去,直到 SRAM FPGA 被重新加載 (通常需要重新上電或強制重新配置)。
在目前的半導(dǎo)體技術(shù)中,器件中的軟錯誤已經(jīng)受到高度關(guān)注。隨著器件尺寸不斷縮小,大家都認識到這種軟錯誤將成為大問題;這些錯誤可能會極大地降低系統(tǒng)的可用性。因此在許多應(yīng)用場合中,人們都強烈要求避免出現(xiàn)軟錯誤,使到系統(tǒng)的可用性維持在可以接受的水平。
在選擇 FPGA 時,最重要的是評估每一種可編程體系的總體擁有成本,并選擇那些擁有本質(zhì)上可靠的核心技術(shù)的供應(yīng)商,而不是為較低檔次要求應(yīng)用而設(shè)計的二等品質(zhì)供應(yīng)商提供的商業(yè)級產(chǎn)品。
如果采用 SRAM FPGA 來設(shè)計,設(shè)計人員就必須增加檢測和校正配置錯誤的電路,因而會增加系統(tǒng)成本和復(fù)雜性。幸運的是,設(shè)計人員還有別的選擇。輻射測試數(shù)據(jù)表明,以反熔絲和 Flash 技術(shù)為基礎(chǔ)的 FPGA 不易于出現(xiàn)因中子導(dǎo)致的 SEU 事件而造成配置數(shù)據(jù)丟失。這使它們特別適用于要求高可靠性的應(yīng)用。
現(xiàn)在,想象一個稍微不同的場景:你以每小時 75 英里的速度駕駛著最新款的汽車在高速公路奔馳,耳畔聆聽著流行的歌曲。由于知道引擎管理系統(tǒng)中采用的是以非易失性Flash為基礎(chǔ)的FPGA,而不是基于SRAM 的FPGA,你可以繼續(xù)推桿加速,享受著舒適和無憂的旅程。