“使用由 MATLAB 和 Deep Learning Toolbox 設(shè)計(jì)和訓(xùn)練的神經(jīng)網(wǎng)絡(luò)來(lái)對(duì) ADC 誤差進(jìn)行后校正后,在 ASIC 上實(shí)現(xiàn)時(shí),恩智浦設(shè)計(jì)的神經(jīng)網(wǎng)絡(luò)所需的面積只有 ADC 的 15%,正常工況下的功耗是 ADC 的大約 1/16。”
以集成電路 (IC) 形式實(shí)現(xiàn)的模數(shù)轉(zhuǎn)換器 (ADC) 容易因 IC 制造缺陷而產(chǎn)生誤差。
晶體管、電阻和電容等模擬元件失配會(huì)導(dǎo)致信號(hào)失真,如導(dǎo)致嚴(yán)重的總諧波失真 (THD)。
減少 ADC 誤差的一種方法是使用更大的模擬元件來(lái)增強(qiáng)設(shè)計(jì)。
這種方法通過(guò)提高匹配來(lái)降低失真系數(shù),但需要更多面積和功耗。
第二種方法是增加校準(zhǔn)電路,但這也需要額外的芯片面積,增加了成本和功耗,而且,這通常還要求了解待校準(zhǔn)誤差的確切成因。
在恩智浦半導(dǎo)體埃因霍溫總部,我和同事使用由 MATLAB 和 Deep Learning Toolbox 設(shè)計(jì)和訓(xùn)練的神經(jīng)網(wǎng)絡(luò)來(lái)對(duì) ADC 誤差進(jìn)行后校正。
在 ASIC 上實(shí)現(xiàn)時(shí),該網(wǎng)絡(luò)所需的面積只有 ADC 的 15%,正常工況下的功耗是 ADC 的大約 1/16。
設(shè)計(jì)和訓(xùn)練神經(jīng)網(wǎng)絡(luò)
我們?cè)趯?shí)驗(yàn)室中向 30 個(gè) ADC 樣本(裸片)輸入?yún)⒖夹盘?hào)并捕獲數(shù)字輸出,從而生成訓(xùn)練數(shù)據(jù)。我們另外留出 10 個(gè)樣本用于驗(yàn)證網(wǎng)絡(luò)。
由于 ADC 誤差同時(shí)受溫度和電壓的影響,我們?cè)诰欧N不同的電壓與溫度組合下測(cè)試每個(gè)樣本,總共獲得 360 個(gè)測(cè)量值。
我們使用信號(hào)處理方法對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,然后使用測(cè)得的 ADC 數(shù)字輸出值作為神經(jīng)網(wǎng)絡(luò)的輸入。我們將校正后的輸出信號(hào)與原始參考信號(hào)進(jìn)行比較,據(jù)此更新網(wǎng)絡(luò)系數(shù)(圖 1)。
圖 1.神經(jīng)網(wǎng)絡(luò)訓(xùn)練設(shè)置。
項(xiàng)目剛開(kāi)始的時(shí)候,我沒(méi)怎么用過(guò)神經(jīng)網(wǎng)絡(luò),因此不確定網(wǎng)絡(luò)該有多復(fù)雜。
最初,我在 MATLAB 中創(chuàng)建了基本的兩層和三層網(wǎng)絡(luò),并在各層嘗試不同的神經(jīng)元數(shù)量。第一層和第二層的神經(jīng)元使用 sigmoid 激活函數(shù),輸出層激活函數(shù)則是線性的。使用的代價(jià)函數(shù)是最小均方 (LMS) 代價(jià)函數(shù)。
我們基于手頭的數(shù)據(jù)集和上述早期配置訓(xùn)練網(wǎng)絡(luò),發(fā)現(xiàn)可以加入電壓和溫度測(cè)量值作為預(yù)測(cè)變量來(lái)提高網(wǎng)絡(luò)性能。經(jīng)過(guò)這一更改,網(wǎng)絡(luò)在各種溫度和電壓條件下的性能都有顯著提升。
計(jì)算 IC 面積和功耗
現(xiàn)在,這個(gè)神經(jīng)網(wǎng)絡(luò)能夠有效地后校正 ADC 誤差,那下一步就是計(jì)算它需要多少芯片面積和功耗。
為此,我從 MATLAB 生成了經(jīng)過(guò)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)的 Simulink 模型。
接下來(lái),我使用 Fixed-Point Designer 量化所有網(wǎng)絡(luò)系數(shù),然后使用 HDL Coder 從網(wǎng)絡(luò)生成 VHDL 代碼。
我的同事通過(guò) HDL Verifier 協(xié)同仿真在 Simulink 中驗(yàn)證生成的 VHDL,然后使用 Cadence Genus 來(lái)綜合設(shè)計(jì)。
他還在 Cadence 平臺(tái)上使用 28 納米 CMOS 制程進(jìn)行物理實(shí)現(xiàn),生成功耗報(bào)告,并計(jì)算使用的柵極數(shù)量和這些柵極所需的面積。
分析結(jié)果表明,使用神經(jīng)網(wǎng)絡(luò)校正 ADC 誤差,面積和功耗成本都相對(duì)較低。
要實(shí)現(xiàn)一個(gè)能將信噪比提高約 17 dB 的網(wǎng)絡(luò),只需 4600 多個(gè)柵極,占據(jù) 0.0084 平方毫米的芯片面積。ADC 的面積是 0.06 平方毫米,是網(wǎng)絡(luò)的七倍多。當(dāng)處于活動(dòng)狀態(tài)時(shí),網(wǎng)絡(luò)功耗大約 15 μW,而 ADC 功耗為 233 μW。
作為誤差校正電路,這樣的面積和功耗估計(jì)值可以說(shuō)是過(guò)關(guān)了,但我相信,我們還可以通過(guò)優(yōu)化改進(jìn)這些數(shù)字。即便我在機(jī)器學(xué)習(xí)方面經(jīng)驗(yàn)尚淺,但用 VHDL 實(shí)現(xiàn)網(wǎng)絡(luò)的這個(gè)工作流并不復(fù)雜。
因此,雖然我是新手,但相比傳統(tǒng)方法,我也并沒(méi)有多花太多時(shí)間,就設(shè)計(jì)和實(shí)現(xiàn)了基于神經(jīng)網(wǎng)絡(luò)的電路。
提高可重用性和可移植性
近期,我們計(jì)劃在幾個(gè)方向進(jìn)行探索,驗(yàn)證神經(jīng)網(wǎng)絡(luò)在 ADC 誤差校正中的應(yīng)用。
首先,我們希望更好地了解經(jīng)過(guò)訓(xùn)練的網(wǎng)絡(luò)是如何執(zhí)行誤差校正的,以便將生產(chǎn)環(huán)境下出現(xiàn)意外行為的風(fēng)險(xiǎn)降至最低。
其次,我們想擴(kuò)展我們的數(shù)據(jù)集。我們需要知道,如果使用 100 萬(wàn)個(gè)而不是僅僅 40 個(gè)樣本,之前的結(jié)果是否依然成立。
最后,我們想衡量神經(jīng)網(wǎng)絡(luò)的可重用性。我們預(yù)計(jì),相比傳統(tǒng)設(shè)計(jì),這一網(wǎng)絡(luò)能夠更有效地補(bǔ)償各種 ADC 上的不同誤差,因?yàn)榫W(wǎng)絡(luò)能夠適應(yīng)各種各樣的傳遞函數(shù)。
不過(guò),我們需要進(jìn)一步的測(cè)試來(lái)驗(yàn)證此假設(shè)。
原文標(biāo)題:MATLAB 芯思路 | 用神經(jīng)網(wǎng)絡(luò)對(duì) ADC 誤差進(jìn)行后校正
文章出處:【微信公眾號(hào):MATLAB】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
審核編輯:湯梓紅
-
芯片
+關(guān)注
關(guān)注
455文章
50816瀏覽量
423666 -
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4771瀏覽量
100772 -
adc
+關(guān)注
關(guān)注
98文章
6498瀏覽量
544658
原文標(biāo)題:MATLAB 芯思路 | 用神經(jīng)網(wǎng)絡(luò)對(duì) ADC 誤差進(jìn)行后校正
文章出處:【微信號(hào):MATLAB,微信公眾號(hào):MATLAB】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論