“使用由 MATLAB 和 Deep Learning Toolbox 設(shè)計和訓(xùn)練的神經(jīng)網(wǎng)絡(luò)來對 ADC 誤差進(jìn)行后校正后,在 ASIC 上實現(xiàn)時,恩智浦設(shè)計的神經(jīng)網(wǎng)絡(luò)所需的面積只有 ADC 的 15%,正常工況下的功耗是 ADC 的大約 1/16?!?/p>
以集成電路 (IC) 形式實現(xiàn)的模數(shù)轉(zhuǎn)換器 (ADC) 容易因 IC 制造缺陷而產(chǎn)生誤差。
晶體管、電阻和電容等模擬元件失配會導(dǎo)致信號失真,如導(dǎo)致嚴(yán)重的總諧波失真 (THD)。
減少 ADC 誤差的一種方法是使用更大的模擬元件來增強(qiáng)設(shè)計。
這種方法通過提高匹配來降低失真系數(shù),但需要更多面積和功耗。
第二種方法是增加校準(zhǔn)電路,但這也需要額外的芯片面積,增加了成本和功耗,而且,這通常還要求了解待校準(zhǔn)誤差的確切成因。
在恩智浦半導(dǎo)體埃因霍溫總部,我和同事使用由 MATLAB 和 Deep Learning Toolbox 設(shè)計和訓(xùn)練的神經(jīng)網(wǎng)絡(luò)來對 ADC 誤差進(jìn)行后校正。
在 ASIC 上實現(xiàn)時,該網(wǎng)絡(luò)所需的面積只有 ADC 的 15%,正常工況下的功耗是 ADC 的大約 1/16。
設(shè)計和訓(xùn)練神經(jīng)網(wǎng)絡(luò)
我們在實驗室中向 30 個 ADC 樣本(裸片)輸入?yún)⒖夹盘柌⒉东@數(shù)字輸出,從而生成訓(xùn)練數(shù)據(jù)。我們另外留出 10 個樣本用于驗證網(wǎng)絡(luò)。
由于 ADC 誤差同時受溫度和電壓的影響,我們在九種不同的電壓與溫度組合下測試每個樣本,總共獲得 360 個測量值。
我們使用信號處理方法對數(shù)據(jù)進(jìn)行預(yù)處理,然后使用測得的 ADC 數(shù)字輸出值作為神經(jīng)網(wǎng)絡(luò)的輸入。我們將校正后的輸出信號與原始參考信號進(jìn)行比較,據(jù)此更新網(wǎng)絡(luò)系數(shù)(圖 1)。

圖 1.神經(jīng)網(wǎng)絡(luò)訓(xùn)練設(shè)置。
項目剛開始的時候,我沒怎么用過神經(jīng)網(wǎng)絡(luò),因此不確定網(wǎng)絡(luò)該有多復(fù)雜。
最初,我在 MATLAB 中創(chuàng)建了基本的兩層和三層網(wǎng)絡(luò),并在各層嘗試不同的神經(jīng)元數(shù)量。第一層和第二層的神經(jīng)元使用 sigmoid 激活函數(shù),輸出層激活函數(shù)則是線性的。使用的代價函數(shù)是最小均方 (LMS) 代價函數(shù)。
我們基于手頭的數(shù)據(jù)集和上述早期配置訓(xùn)練網(wǎng)絡(luò),發(fā)現(xiàn)可以加入電壓和溫度測量值作為預(yù)測變量來提高網(wǎng)絡(luò)性能。經(jīng)過這一更改,網(wǎng)絡(luò)在各種溫度和電壓條件下的性能都有顯著提升。
計算 IC 面積和功耗
現(xiàn)在,這個神經(jīng)網(wǎng)絡(luò)能夠有效地后校正 ADC 誤差,那下一步就是計算它需要多少芯片面積和功耗。
為此,我從 MATLAB 生成了經(jīng)過訓(xùn)練的神經(jīng)網(wǎng)絡(luò)的 Simulink 模型。
接下來,我使用 Fixed-Point Designer 量化所有網(wǎng)絡(luò)系數(shù),然后使用 HDL Coder 從網(wǎng)絡(luò)生成 VHDL 代碼。
我的同事通過 HDL Verifier 協(xié)同仿真在 Simulink 中驗證生成的 VHDL,然后使用 Cadence Genus 來綜合設(shè)計。
他還在 Cadence 平臺上使用 28 納米 CMOS 制程進(jìn)行物理實現(xiàn),生成功耗報告,并計算使用的柵極數(shù)量和這些柵極所需的面積。
分析結(jié)果表明,使用神經(jīng)網(wǎng)絡(luò)校正 ADC 誤差,面積和功耗成本都相對較低。
要實現(xiàn)一個能將信噪比提高約 17 dB 的網(wǎng)絡(luò),只需 4600 多個柵極,占據(jù) 0.0084 平方毫米的芯片面積。ADC 的面積是 0.06 平方毫米,是網(wǎng)絡(luò)的七倍多。當(dāng)處于活動狀態(tài)時,網(wǎng)絡(luò)功耗大約 15 μW,而 ADC 功耗為 233 μW。
作為誤差校正電路,這樣的面積和功耗估計值可以說是過關(guān)了,但我相信,我們還可以通過優(yōu)化改進(jìn)這些數(shù)字。即便我在機(jī)器學(xué)習(xí)方面經(jīng)驗尚淺,但用 VHDL 實現(xiàn)網(wǎng)絡(luò)的這個工作流并不復(fù)雜。
因此,雖然我是新手,但相比傳統(tǒng)方法,我也并沒有多花太多時間,就設(shè)計和實現(xiàn)了基于神經(jīng)網(wǎng)絡(luò)的電路。
提高可重用性和可移植性
近期,我們計劃在幾個方向進(jìn)行探索,驗證神經(jīng)網(wǎng)絡(luò)在 ADC 誤差校正中的應(yīng)用。
首先,我們希望更好地了解經(jīng)過訓(xùn)練的網(wǎng)絡(luò)是如何執(zhí)行誤差校正的,以便將生產(chǎn)環(huán)境下出現(xiàn)意外行為的風(fēng)險降至最低。
其次,我們想擴(kuò)展我們的數(shù)據(jù)集。我們需要知道,如果使用 100 萬個而不是僅僅 40 個樣本,之前的結(jié)果是否依然成立。
最后,我們想衡量神經(jīng)網(wǎng)絡(luò)的可重用性。我們預(yù)計,相比傳統(tǒng)設(shè)計,這一網(wǎng)絡(luò)能夠更有效地補(bǔ)償各種 ADC 上的不同誤差,因為網(wǎng)絡(luò)能夠適應(yīng)各種各樣的傳遞函數(shù)。
不過,我們需要進(jìn)一步的測試來驗證此假設(shè)。
原文標(biāo)題:MATLAB 芯思路 | 用神經(jīng)網(wǎng)絡(luò)對 ADC 誤差進(jìn)行后校正
文章出處:【微信公眾號:MATLAB】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
審核編輯:湯梓紅
-
芯片
+關(guān)注
關(guān)注
463文章
54017瀏覽量
466293 -
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4838瀏覽量
107823 -
adc
+關(guān)注
關(guān)注
100文章
7513瀏覽量
556053
原文標(biāo)題:MATLAB 芯思路 | 用神經(jīng)網(wǎng)絡(luò)對 ADC 誤差進(jìn)行后校正
文章出處:【微信號:MATLAB,微信公眾號:MATLAB】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
AI知識科普 | 從無人相信到萬人追捧的神經(jīng)網(wǎng)絡(luò)
卷積神經(jīng)網(wǎng)絡(luò)如何使用
【案例分享】基于BP算法的前饋神經(jīng)網(wǎng)絡(luò)
【案例分享】ART神經(jīng)網(wǎng)絡(luò)與SOM神經(jīng)網(wǎng)絡(luò)
如何構(gòu)建神經(jīng)網(wǎng)絡(luò)?
基于BP神經(jīng)網(wǎng)絡(luò)的PID控制
卷積神經(jīng)網(wǎng)絡(luò)模型發(fā)展及應(yīng)用
遺傳神經(jīng)網(wǎng)絡(luò)及其在非線性校正中的應(yīng)用
基于神經(jīng)網(wǎng)絡(luò)的傳感器非線性誤差校正
小波神經(jīng)網(wǎng)絡(luò)在遙感測溫數(shù)據(jù)的應(yīng)用
BP神經(jīng)網(wǎng)絡(luò)概述
神經(jīng)網(wǎng)絡(luò)在ADC誤差校正中的應(yīng)用
評論