引言: 2018年4月11日, 工業和資訊化部, 公安部和交通運輸部聯合發布 '關於印發《智能網聯汽車道路測試管理規範 (試行) 》的通知' , 為我國智能網聯汽車道路測試提供了相關法律依據. 三部委在賦予智能網聯汽車上路資格的同時, 也提出了若干嚴格的條件.
其中, 在第二章 '測試主體, 測試駕駛人及測試車輛' 的第七條第 (四) 點中, 三部委要求: 具備車輛狀態記錄, 存儲及線上監控功能, 能即時回傳下列第1, 2, 3項資訊, 並自動記錄和存儲下列各項資訊在車輛事故或失效狀況發生前至少90秒的數據, 數據存儲時間不少於3年:
1. 車輛控制模式; 2. 車輛位置; 3. 車輛速度, 加速度等運動狀態; 4. 環境感知與響應狀態; 5. 車輛燈光, 訊號即時狀態; 6. 車輛外部360度視頻監控情況; 7. 反映測試駕駛人和人機交互狀態的車內視頻及語音監控情況; 8. 車輛接收的遠程式控制制指令 (如有) ; 9. 車輛故障情況 (如有) .
由此可以看出, 上述條件除了對進行道路測試的智能網聯汽車有若干功能性要求外, 還在相關領域將推動若干新一代通信, 監控, 控制和存儲等技術的發展, 為智能網聯汽車專用SoC的開發提供新的市場機會.
嵌入式FPGA (eFPGA) 將在這類晶片中扮演重要角色. 如為了滿足第六條中提到的車輛外部360度視頻監控數據的獲取和處理, 採用eFPGA來設計相關功能晶片具有很明顯的優勢. 作為同時提供獨立FPGA晶片和eFPGA IP產品的公司, Achronix可以幫助智能汽車SoC設計人員先在FPGA晶片上開發和調試相關功能, 而在市場進入批量化應用後無需顯著修改設計, 立即將設計移植到搭載了eFPGA的SoC之上.
有關eFPGA如何支援嵌入式360度視域視覺系統設計, 請閱讀Achronix Semiconductor資深產品營銷經理Alok Sanghavi的文章, 標題為 '將eFPGA應用於嵌入式360度視域視覺系統中' .
將eFPGA應用於嵌入式360度視域視覺系統中
作者: Alok Sanghavi, Achronix Semiconductor資深產品營銷經理
帶有多個高解析度攝像頭的嵌入式360°視域視覺系統已經進入了各種應用中, 如汽車感測器融合, 視頻監控, 目標檢測, 運動分析等. 在此類系統中, 多個即時攝像機的視頻流 (最多6個) 被匯聚在一起逐幀處理, 進行失真和其他映像偽影校正, 調整曝光和白平衡, 然後動態拼接成一個360°全景視圖, 以4K清晰度和60 fps幀頻輸出, 最終投影到一個球形坐標空間上.
目前用於此類應用的高解析度魚眼相機鏡頭通常具有一個廣角視域 (FOV) . 環視相機系統最大的瓶頸之一是: 即時到或從外部存儲器存儲/讀取和訪問多路攝像機輸入數據, 然後將其作為一個單一幀進行處理. 硬體需要在一幀延遲內, 在輸入攝像機傳入的原始感測器數據和拼接輸出視頻之間完成處理運行.
高性能計算平台一直朝著與CPU一起協同使用FPGA的方向發展, 以便為即時映像處理任務提供專門的硬體加速. 這種配置使得CPU能專註於特別複雜的演算法, 其中它們可以快速切換線程和上下文, 並將重複性任務分配給一個FPGA, 以充當可配置的硬體加速器/協處理器/卸載引擎. 即使將FPGA和CPU作為分立器件使用, 系統也可以提高整體效率, 因為這些技術不會發生衝突, 而是像將手套戴在手上一樣來配合在一起.
例如, 從魚眼鏡頭獲得的映像遭受嚴重失真之苦, 因而基於多個相機視頻生成的拼接操作是高度計算密集型的任務, 其原因為它是點像素操作. 這種拼接需要大量的即時映像處理和高度並行化的架構. 但是, 這種下一代的應用超過了FPGA可不斷接續實現的性能, 主要是由於晶片吞吐數據的延遲. 這反過來會影響整個系統的整體延遲, 吞吐速度和性能.
在一個SoC中加入可與CPU一起嵌入的eFPGA半導體智慧財產權 (IP) . 與一個獨立的FPGA晶片加CPU解決方案相比, 嵌入式FPGA陣列結構具有獨特的優勢, 主要優勢在於性能更強. 一個eFPGA可通過一個寬的並行介面直接連接到ASIC (無I / O緩衝器) 上, 提供顯著提高的吞吐量, 以及以個位數時鐘周期來計數的延遲. 低延遲是複雜的映像即時處理過程的關鍵, 例如糾正魚眼鏡頭的失真這樣的處理.
利用Speedcore eFPGA IP, 客戶可以定義其邏輯, 記憶體和DSP資源需求, 然後Achronix可配置其IP以滿足他們的需求. 查找表 (LUTs) , RAM單元塊和DSP64單元塊可以像積木一樣進行組合, 為任何給定的應用建立最佳的可編程結構.
除了標準邏輯, 嵌入式存儲器和DSP單元模組之外, 客戶還可以在Speedcore eFPGA結構裡面定義他們自己的功能塊. 通過把這些定製功能模組與傳統構建模組一起整合到邏輯陣列結構中, 可添加優化過的功能來減少面積和提高目標應用的性能, 可使eFPGA的性能得到極大的提高, 特別是對嵌入式視覺和映像處理演算法非常有效.
用自定義單元塊來成功地解決高性能映像處理就是一個很好的例子, 在實現您只看一次 (YOLO) 這一種使用了神經網路的, 最先進的, 即時對象檢測演算法時, 可以優於早期的方法大大提高性能. 該演算法依賴於大量的矩陣乘法器, 而在FPGA中實現時, 這些矩陣乘法器需要使用DSP和RAM模組來構建; YOLO所需要的DSP和RAM模組之間的最佳配置, 與一個典型的FPGA陣列結構中發現的不匹配之處就會出現問題. 例如, FPGA陣列結構可能提供18×27乘法/累加單元塊和32×128 RAM的DSP單元塊, 而此時的最佳解決方案可能是帶有48×1024 RAM的16×8 DSP單元塊. 通過建立實現最佳DSP和RAM模組配置的定製單元塊, 所得到的Speedcore陣列結構所使用的晶片面積就會減少40% , 來實現相同的功能並且能獲得更高級別的系統性能.
在SoC中嵌入FPGA陣列結構提供了兩個額外的系統級好處:
更低的功耗 - 可編程I / O電路占獨立FPGA晶片總功耗的一半, 而一個eFPGA可以與主控SoC中的其他模組直接內部線路連接, 完全不需要大型可編程I / O緩衝器.
更低的系統成本 - 由於eFPGA只需實現特定功能, eFPGA的裸片尺寸遠小於等效的獨立FPGA晶片, 這是因為eFPGA不再需要可編程的I / O緩衝器和不必要的介面邏輯.
藉助超低延遲和即時處理功能, 可以有效實現基於360°視域的視覺系統, 具有定製單元塊的Speedcore eFPGA與同一主控SoC中的一個CPU配合使用, 非常適合去實現專用功能, 如目標檢測和映像識別, 變形和失真校正, 以及最後將最終映像拼接在一起. 在SoC中嵌入FPGA陣列結構是超深亞微米時代系統整合的一個自然發展過程.