在NXP的Eindhoven總部,採用以MATLAB和深度學習工具箱(Deep Learning Toolbox)設計、訓練的類神經網路來對ADC錯誤進行後校正,進而瞭解ASIC在正常操作條件下消耗的功率狀況。
在製程當中,積體電路(integrated circuits;IC)若稍有缺陷,可能就會造成類比數位轉換器(analog-to-digital converters,ADCs)實現到IC上的錯誤;像是電晶體、電阻器、電容器等類比元件的不匹配(mismatch)可能導致訊號失真,例如不佳的總諧波失真(total harmonic distortion;THD)。
圖1 : 在製程當中,積體電路(IC)若稍有缺陷,可能就會造成類比數位轉換器(ADCs)實現到IC上的錯誤。(source: Science Mill) |
|
至於減少ADC錯誤的方法之一,在於使用更大型的類比元件來擴大設計,這種方法雖可以改善匹配、進而改善失真的數字,但卻需要配置更大的面積及更多電力;第二種方法則是加入校正電路系統,但是這需要額外的矽面積,並增加成本與功耗—而且在執行校正時,通常還必須要知道錯誤發生的原因。
在NXP的Eindhoven總部,我們使用以MATLAB和深度學習工具箱(Deep Learning Toolbox)設計、訓練的類神經網路來對ADC錯誤進行後校正,結果在ASIC上執行實現的時候,這個網路只需要ADC面積的15%,而且在正常操作條件下,消耗的功率大約減少16倍。
設計與訓練類神經網路
在實驗室輸入一組參考訊號給30個ADC樣本(裸晶),再捕捉其數位輸出值來產生訓練資料,並且另外設置了10個樣本來驗證該神經網路。因為ADC的錯誤會受到溫度和電壓的影響,因此,將每一個樣本以九種電壓與溫度的組合來進行測試,總共產生360筆量測資料。
接下來,使用訊號處理的技巧來對資料進行前處理,然後使用量測到的ADC數位輸出值,作為類神經網路的輸入值,網路的係數會隨著校正後輸出訊號與原始參考訊號的比對而更新(圖1)。
在這項專案開始之際,我還沒有太多關於類神經網路的經驗,也不確定網路需要有多高的複雜度。因此,先從在MATLAB建立基礎的兩層和三層網路開始,並且在每一層設置不同數量的神經元。第一層和第二層的神經元使用一個S型激勵函數(sigmoid activation function),輸出層的激勵函數則為線性。成本函數則使用為一個最小均方(least mean squares;LMS)成本函數。
利用我們的資料集完成這些早期網路架構的訓練之後,我發現可以將電壓與溫度的量測值加入為預測因子,用來改善網路的表現。執行這項變更之後,這個網路在各種溫度與電壓條件下的表現有了顯著的改善。
評估IC面積與功率
有了一個可對ADC錯誤進行後校正的類神經網路之後,我想要評估它需要的矽面積與功率。為了進行這項任務,我從MATLAB產生一個訓練過之神經網路的Simulink模型。
接下來,利用定點設計工具箱(Fixed-Point Designer)將網路所有的係數量化,並透過硬體描述語言轉碼器(HDL Coder)產生VHDL程式碼,而我的同事則以HDL設計驗證工具(HDL Verifier)對在Simulink產生出來的VHDL進行協同模擬以作為驗證,然後再使用Cadence Genus來合成設計,他也透過Cadence環境來執行28奈米CMOS技術的物理實現、產生功率報告、計算使用的閘道數和這些閘道需要的面積。
從分析的結果看來,類神經網路能夠以相對較小的面積和較少的功率成本來進行ADC錯誤的校正,一個類神經網路僅需要4600多個閘以及0.0084 mm2 的矽面積,就可以讓訊噪比(signal-to-noise ratio;SNR)改善約17分貝(dB)。在啟用時,該神經網路大約只消耗15 μW的功耗,而ADC會需要233 μW功耗。
對於已校正錯誤的電路來說,面積與功耗兩者的估算都被視為可接受的程度,但再經過優化之後,這些數字會再改善。雖然我在機器學習的經驗相對較少,不過這項將神經網路實現到VHDL所使用的工作流程非常直觀,使得即使是這項流程的新手,從設計到實現這個基於類神經網路的電路所花費的時間,也並不會比傳統的方法來得長。
增加重複使用性與可攜帶性
在近期之內,我們計畫進一步探索幾種方法來驗證透過以類神經網路來進行ADC錯誤校正的成果。
首先,我們希望更了解該訓練的網路執行錯誤校正的效果如何,可以將生產階段可能出現意外行為的風險降到最小。再來,希望擴展我們的資料集,想知道使用一百萬個樣本所達到的結果和使用40個樣本的結果是否相同。
最後,我們希望衡量類神經網路的重複使用性有多高。因為網路可以搭載很廣泛的轉移函數(transfer functions),所以也期待用一個單一神經網路可以比傳統設計能更有效地去彌補橫跨各種類型的ADCs錯誤,然而,我們還是需要再做進一步的測試來驗證這項假設。
(本文由鈦思科技提供;作者Robert van Veldhoven任職於NXP Eindhoven公司)